您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 学生作业完成情况管理程序
11问题要求及任务描述1.1题目要求学生作业完成情况管理程序(2人)1)问题描述请设计一个学生作业完成情况管理程序。假设某门课程一学期要留10次作业,每次老师要进行批改,给出分数后还要进行登记。学期期末要根据每次作业的成绩计算出最终的平时成绩(满分100)。作业登记信息应该包含:学号、姓名、10次作业的完成情况。2)基本要求该程序应该具有下列功能:(1)通过键盘输入某位学生某次作业的分数;(2)给定学号,显示某位学生作业完成情况;(3)给定某位学生的学号,修改该学生的作业完成信息;(4)给定某位学生的学号,删除该学生的信息;(5)按学生的最终平时成绩进行排序;(6)输出平均分数。1.2主要任务1、学生信息和成绩的输入2、学生信息的查询3、学生信息的修改4、学生信息的删除2解决问题的主要思路和方法2.1关键问题学生信息的输入2.2拟采用解决问题的方法我使用了循环语句进行输入,先输入人数,然后输入学生信息,再输入学生成绩2.3主要算法和处理流程图开始2YN3程序实现3.1程序实现时应考虑的问题main函数里面有switch开关语句main函数调用H1函数main函数调用H2函数main函数调用H3函数main函数调用H4函数main函数调用H5函数main函数调用H6函数3.2主要源代码及说明main函数Switch函数选择H1函数输入人数nin?输入学生的信息结束3#includestdio.h#includestdlib.h//这个与exit()有关#includestring.h//这与字符串处理函数有关#includeconio.h//这与getch()有关#definemax10structstudent{charname[15];intnumber;intzuoye[10];intzongfen;}stu[max];staticintn;voidH1(){inti,j;printf(请问你要输入几位学生:);scanf(%d,&n);for(i=0;in;i++){printf(\n第%d位学生的名字:,i+1);scanf(%s,stu[i].name);printf(学号:);scanf(%d,&stu[i].number);for(j=0;j10;j++){printf(第%d次作业:,j+1);scanf(%d,&stu[i].zuoye[j]);stu[i].zongfen+=stu[i].zuoye[j];}}printf(\n\n输入完毕!按任意键返回主菜单!);4getch();//getch有停顿作用}voidH2(){inti,k,j;for(i=0;in;i++){printf(名字:%s学号:%d\n,stu[i].name,stu[i].number);}printf(请输入你要查看学生的学号:);scanf(%d,&k);printf(注:0分表示没做作业\n);for(i=0;in;i++){if(k==stu[i].number){printf(名字:%s学号%d\n,stu[i].name,stu[i].number);for(j=0;j10;j++){printf(第%d次作业:%d\n,j+1,stu[i].zuoye[j]);}}}printf(\n\n查看完毕!按任意键返回主菜单!);getch();//getch有停顿作用}voidH3(){inti,k,j;for(i=0;in;i++){5printf(名字:%s学号:%d\n,stu[i].name,stu[i].number);}printf(请输入你要修改学生的学号:);scanf(%d,&k);printf(修改他的第几次作业:);scanf(%d,&j);for(i=0;in;i++){if(k==stu[i].number){printf(修改为:);scanf(%d,&stu[i].zuoye[j-1]);}}printf(\n\n修改完毕!按任意键返回主菜单!);getch();//getch有停顿作用}voidH4(){inti,k,j;for(i=0;in;i++){printf(名字:%s学号:%d\n,stu[i].name,stu[i].number);}printf(请输入你要删除学生的学号:);scanf(%d,&k);for(i=0;in;i++){if(k==stu[i].number){for(j=i;jn;j++){stu[j]=stu[j+1];6}n=n-1;}}printf(\n\n删除完毕!按任意键返回主菜单!);getch();//getch有停顿作用}voidH5(){inti,j;structstudenttemp;printf(从高到低排序:\n);for(i=0;in-1;i++){for(j=i+1;jn;j++){if(stu[j].zongfenstu[i].zongfen){temp=stu[j];stu[j]=stu[i];stu[i]=temp;}}}for(i=0;in;i++){printf(%d姓名:%s总分:%d\n,i+1,stu[i].name,stu[i].zongfen);}printf(\n\n排序完毕!按任意键返回主菜单!);getch();//getch有停顿作用}voidH6(){7inti;for(i=0;in;i++){printf(姓名:%s平均分:%d\n,stu[i].name,stu[i].zongfen/10);}printf(\n\n显示完毕!按任意键返回主菜单!);getch();//getch有停顿作用}main(){intm;while(1){system(cls);printf(\n\t\t\t学生作业完成情况管理);printf(\n\t\t\t1输入作业分数);printf(\n\t\t\t2学生作业情况);printf(\n\t\t\t3修改作业分数);printf(\n\t\t\t4删除作业信息);printf(\n\t\t\t5平时成绩排序);printf(\n\t\t\t6输出平均分数);printf(\n\t\t\t7退出系统);printf(\n\t\t\t请选择:);scanf(%d,&m);switch(m){case1:system(cls);H1();break;case2:8system(cls);H2();break;case3:system(cls);H3();break;case4:system(cls);H4();break;case5:system(cls);H5();break;case6:system(cls);H6();case7:exit(0);default:;}}}4测试4.1测试结果及分析程序菜单:9成绩录入:10信息修改:11删除信息:信息排序:12平均分:5小结135.1本问题解决方法及程序实现小结1、system函数直接引用#includestdio.h2、exit(0)函数引用#includeconio.h和#includestdlib.h3、getch()函数引用#includeconio.h4、printf和scanf引用#includestdio.h5.2尚未解决的问题及下一步工作思路系统很多地方对输入错误的数据没有进一步的判断和申明,导致系统不怎么完善.6参考文献《C语言》苏小红电子工业出版社2010年5月出版
本文标题:学生作业完成情况管理程序
链接地址:https://www.777doc.com/doc-6287367 .html