1、c语言学生信息管理系统课程设计学生课程设计报告课程设计题目:学生信息管理系统 一、课程设计内容 通过一个系统窗口,选择要执行的功能:(1)成绩的录入,依次输入学生的个数,学号,姓名三门成绩;(2)成绩的查询(学号或姓名);(3)成绩统计(平均成绩);(4)成绩按平均分排名;(5)任意键退出二、技术路线利用C语言编写程序,构造结构体,构造及调用函数实现这些功能。三、设计与实现/*头文件*/#include stdio。hinclude include stdlib。h/*常量*/#define MENU_NUM 7#define N 3define MAX 100 /记录的最大数量/*结构体*/
2、struct student char no10 ; /*学号由10个字符组成/ char name15 ; /*学生姓名*/ float scoreN ; /各门课成绩*/ float sum ; /总分*/ float average ; /*平均分/; /*全局变量*/int count ; /记录学生总人数struct student studMAX; /记录学生信息/*函数声明*/void input(); /输入学生信息void output(); /输出学生信息void PrintMenu(); /显示菜单void computer(); /计算学生成绩void find();
3、/根据学号或姓名查询成绩void sort(); /成绩排名int cmp(const void a , const void * b ); /排序规则/*主函数*/void main() int choose ; count = 0; while(1) PrintMenu(); scanf(%d,choose); switch(choose) case 1 : input(); /输入成绩 break ; case 2 : find(); /查询成绩 break ; case 3 : computer(); /统计成绩 break ; case 4 : / sort(); /按成绩排序,按名
4、次输出成绩 qsort(stud,count,sizeof(struct student),cmp); /调用库函数中的排序方法 output(); break ; case 5 : exit(0); printf(”nn); /*排序规则*/int cmp(const void * a , const void * b ) struct student *aa = (struct student *)a ; struct student bb = (struct student *)b ; if( aasum != bb-sum ) return aasum sum ? 1 : 1; els
5、e if(aascore0 != bbscore0) return aa-score0 score0 ? 1 : -1; return aa-score2 bb-score2 ? 1 : -1; return 0 ;/*函 数 名:PrintMenu*描 述:显示操作菜单*入口参数:无*出口参数:无*/void PrintMenu() printf(-n”); printf( 学生成绩管理系统 n”); printf(| 1。.成绩录入 n); printf(” 2.。.。成绩查询(学号或姓名) n”); printf(”| 3.。.成绩统计(平均成绩) n); printf( 4.。.成绩排
6、名 n”); printf(| 5.。任意键退出 |n”); printf(”-”); printf(”n”); printf(”n”); printf(”请输入您要进行的操作:); /*函 数 名:input描 述:输入学生信息*入口参数:无*出口参数:无*/void input() int n,i ; float temp ; printf(请输入要录入的学生的人数:”); scanf(”d,n); for(i=0;in;i+) printf(输入第 %d 个学生信息n,i+1); printf(学号: ); scanf(”%s,studcount+i。no); printf(”姓名:);
7、 scanf(s”,studcount+i。name); printf(成绩1:); scanf(”f”,studcount+i.score0); printf(成绩2:”); scanf(”%f”,studcount+i.score1); printf(”成绩3:”); scanf(”%f”,&studcount+i.score2); count += n ;/*函 数 名:find*描 述:根据学号或姓名查询成绩*入口参数:无*出口参数:无*/void find() int i ; char ch15; printf(请输入学号或姓名:); scanf(”s”,ch); printf(-n
8、”); printf(” 学号 姓名 |成绩1|成绩2|成绩3|总分 |平均分|n”); for(i=0;icount;i+) if( !strcmp(ch,studi。no) | !strcmp(ch,studi。name) ) i。score2,studi.sum,studi.average); printf(-n); return ; printf(”没有找到该学生的信息!n); printf(”-n”);/*函 数 名:computer*描 述:计算学生总成绩和平均成绩*入口参数:无*出口参数:无*/void computer() int i ; for(i = 0 ; i count
9、 ; i + ) studi。sum = studi.score0 +studi.score1 +studi.score2 ; studi.average = (studi。score0 +studi。score1 +studi。score2)/N; output();/*函 数 名:output*描 述:输出学生所有信息*入口参数:无*出口参数:无*/void output() int i ; printf(”-n”); printf( 学号 | 姓名 |成绩1|成绩2|成绩3|总分 |平均分|n”); studi.no,studi.name,studi.score0,studi。score
10、1,studi。score2,studi.sum,studi.average); printf(”-n”);/*函 数 名:sort描 述:排序入口参数:无*出口参数:无*/void sort() for(i = 0 ; i count1 ; i +) studi。sum = studi.score0 + studi.score1 + studi。score2 ; studi。average = (studi.score0 + studi.score1 + studi.score2)/3; k = i ; for(j = i + 1 ; j count ; j +) if(studk。sum studj。sum) k = j ; if(k != i) temp = studi; studi = studk; studk = temp; printf( 学生成绩排名 n); printf(” 按名次 n); output();四、测试结果 (1)(2)(3)(4)(5)五、感想和体会通过这次课程设计,前期的查找资料和学习探索,后期的设计与测试,终于完成了这次设计,我们队的每个人表现得很积极,充分体会到了团队合作力量的强大。这一周的设计,不仅让我们对专业知识有了更深的了解,还提高了我们实践能力和钻研努力的品质。总之,这次的成果将会激励着我们探索出更多新的东西,为以后的路上积累了经验。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1