C语言程序设计实验报告
湖南工业大学学生成绩管理系统
学 院 计算机与通信学院 专 业 通 信 工 程 班 级 103 班 学 生 姓 名 蔡 丝 柳 学 号 10408200322 指 导 教 师 朱 文 球 1 / 16
目录
(一) 题目与要求............................................................... 3 (二) 功能设计图............................................................... 3 1) 程序运行的截图 .................................................... 4 进入系统的主页面 ................................................ 4 输入密码 ................................................................ 5 成绩分析页面 ........................................................ 5 2) 程序编写 ................................................................ 6 (三) C语言实验报告总结 ........................................... 15
2 / 16
(一) 题目与要求
本程序要求学生和老师都可以根据不同身份按密码进入系统,所不同的是老师不仅可以进入成绩输入系统,还可以进入成绩查询系统,而学生只可以进入成绩查询系统。根据系统程序的设计,可以获知成绩分数,优秀率,补考率,优秀人数,补考人数。是否专业优秀,是否应该重修等功能,并对学生成绩按成绩高低顺序排列输出。学生和老师得按各自密码输入,方能进入系统,否则只能等待重新输入。
本程序设计的知识点 变量的定义,输入输出函数,if语句,for语句,switch语句等等。 (二) 功能设计图 学生成绩管理系统 访问人:老师 成绩输入 访问人:学生 成绩查询(暂时不开放) 成绩浏览 成绩分析
3 / 16
1) 程序运行的截图
进入系统的主页面
4 / 16
输入密码
成绩分析页面
,
5 / 16
2) 程序编写 #include void chakan(); #define STU_NUM 100 struct student { char stu_id[20]; float score[6]; float total; float aver; }; int mima(char as) { if(as=='t') { char mima[10]=\"000\"; 6 / 16 e:printf(\"请输入密码:\"); } else if(as=='s') { char haoma[10]=\"111\"; scanf(\"%s\if(strcmp(mima,\"000\")==0) return 1; else printf(\"对不起,您输入的密码有误\"); goto e; l:printf(\"请输入密码\"); scanf(\"%s\ if(strcmp(haoma,\"111\")==0) {printf(\"抱歉!暂时对学生无法开放\"); return 2;} 7 / 16 else { printf(\"对不起,您输入的密码有误!\"); goto l; } } } void SortScore(student *stu,int n) { student stud; for(int i = 0; i < n-1; i++) for(int j = i+1 ; j < n; j++) { if(stu[i].total < stu[j].total) { stud = stu[i]; stu[i] = stu[j]; 8 / 16 stu[j] = stud; } } } void chakan() { } void main( ) { float x=0,y=0; char t,s; int n; printf(\"\\n\\\欢迎来到学生成绩管理系统\\n\\n\"); printf(\"\\n\通信103班蔡丝柳制作!\\n\\n\"); printf(\"请按任意键继续\\n\"); printf(\"\\老师请输入 t ,学生请输入 s\\n\"); scanf(\"%c\scanf(\"%c\int h,a; 9 / 16 h=mima(t); a=mima(s); if(h) { getch(); system(\"cls\"); printf(\"\\n\\请输入学生人数:\\n\"); scanf(\"%d\student stu[STU_NUM]; for(int i = 0; i printf(\"\\请输入第 %d 个学生的学号:\\n\ scanf(\"%s\ printf(\"输入第%d个学生的数学成绩:\\n\ scanf(\"%f\ printf(\"输入第%d个学生的英语成绩:\\n\ scanf(\"%f\ printf(\"输入第%d个学生的计算机成绩:\\n\ scanf(\"%f\ 10 / 16 printf(\"输入第%d个学生的C语言成绩:\\n\ scanf(\"%f\ printf(\"输入第%d个学生的军事理论成绩:\\n\ scanf(\"%f\ printf(\"输入第%d 个学生的思修成绩:\\n\ scanf(\"%f\ stu[i].total = stu[i].score[0]+stu[i].score[1]+stu[i].score[2]+stu[i].score[3]+stu[i].score[4]+stu[i].score[5]; stu[i].aver = stu[i].total/6; } printf(\"\\n\"); SortScore(stu,n); for(i = 0; i < n; i++) { printf(\"序号: %d\\\n\ 11 / 16 printf(\"学号:%s\\\n\ printf(\"数学:%f\\\n\ printf(\"英语:%f\\\n\ printf(\"计算机:%f\\\n\ printf(\"C语言:%f\\\n\ printf(\"军事理论:%f\\\n\ printf(\"思修:%f\\\n\ printf(\"平均成绩:%f\\\n\ printf(\"总分:%f\\\n\ if(stu[i].score[0]>=80&&stu[i].score[3]>=80) if(stu[i].total>=480) { printf(\"该学生总成绩为:优秀\");x++; printf(\"\\n\\该生专业成绩优秀\\"); } else if(stu[i].total<360) { printf(\"该学生总成绩应该: 补考\" );y++; } if((stu[i].score[0]<60||stu[i].score[3]<60)&&(stu[i].total<360)) 12 / 16 printf(\"\\n\\该生应该重修\\n\"); printf(\"\\n\\n\"); } printf(\"***************************************\\n\\n\\n\"); printf(\"\优秀人数为:%f\\n\ printf(\"\优秀率为:%f\\n\printf(\"\补考人数为:%f\\n\printf(\"\补考率为:%f\\n\\n\\n\printf(\"***************************************\"); } { char a; if(a) { getch(); 13 / 16 system(\"cls\"); chakan(); { w:printf(\"是否查看成绩?Y/N\"); switch(a) { case 'Y': system(\"cls\"); break; a=getch(); getchar(); case'N': system(\"cls\"); exit(0); default:printf(\"你的输入有误\"); getchar(); system(\"cls\"); } 14 / 16 } goto w; } while(1) getch(); } } (三) C语言实验报告总结 在这次编程中发现了很多自己知识不熟练的地方,恩多东西都需要要上网查,很多功能自己能够想到就是不会编译,问了很多同学,想尽办法将难题一一攻克,从最初只有简单成绩输入功能,到后来增加了排序,优秀率,不及格率等的计算,以及页面布局,到有密码程序的输入,每一个过程都是艰辛的,但每一个成果都是令人快乐的。程序写起来之所以比较棘手,关键还在于自己不够熟练,很多东西学的还不够牢固。最后是报告的最终形成,一些流程图的书写仍然是一个比较大的问题。好在功夫不负苦心人,一篇c语言程序报告终于能按要求完成。 这次设计过程让我明白了我学业上的不足,也让我明白了平时自己不足的知识点,更让我明白做学问是一个非常严谨的问题,需要我们谨慎对待,要有一颗沉得下来的心,不急不躁,方能成功。 15 / 16 致谢: 本次设计过程,伍柏林和李方同学帮我想了很多的办法将我所想的功能用程序编写出来了,也让接触到了一些我不曾看到过的语句写法。 参考文献 百度了部分功能语句的书写 16 / 16 因篇幅问题不能全部显示,请点此查看更多更全内容