如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
C语言课程设计报告院系:机械与电子信息学院姓名:王鹏飞班号:07310126学号:20101003558指导教师:龚文引日期:2011年7月学生成绩管理系统题目要求设计一个学生成绩管理程序,对在校某班学生几门课程的考试成绩进行统一管理。每个学生记录包括学号、姓名、年龄、数学、英语、物理成绩,默认以学号为序存放。(1)一个文件按以班为单位存储学生记录。(2)将允许的操作分为四种,以A、B、C、D、E、F为标志(若设置菜单操作更佳):A:插入一个新的学生记录(录入学生信息);B:修改学生记录;C:删除一个学生记录;D:登记成绩;E:修改成绩;F:浏览全班成绩。(3)计算学生的总成绩。(4)按学号排序输出全班成绩表。二、需求分析根据题目要求,由于学生信息是存放在文件中,所以应提供文件的输入、输出等操作;在程序中需要浏览学生的信息,应提供添加、修改、删除、排序等操作;另外还应提供键盘式选择菜单实现功能选择。三、总体设计根据上面的需求分析,可以将这个系统的设计分为8个模块,数据输入,添加数据,修改数据,删除数据,修改成绩,学号排序,浏览成绩,退出模块.学生成绩管理系统数据输入添加数据修改数据删除数据修改成绩学号排序浏览成绩退出模块四.详细设计1、主函数【分析】将各个功能模块设置为菜单选项,方便调用,且执行完每部分功能模块后能够方便返回到系统界面.【流程图】:开始显示一系列功能选项N输入n,判断n是否是A-H间的字母Y根据n的值调用各功能模块函数结束【程序代码】:menu()/*主界面*/{intw1;charn;/*.变量n保存选择菜单数字,w1判断输入的数字是否在功能菜单对应数字范围内*/do{puts("\t\t***************菜单****************\n\n");puts("\t\t\t\tA.录入学生信息");puts("\t\t\t\tB.修改学生记录");puts("\t\t\t\tC.删除一个学生记录");puts("\t\t\t\tD.登记成绩");puts("\t\t\t\tE.修改成绩");puts("\t\t\t\tF.浏览全班成绩");puts("\t\t\t\tG.退出");puts("\n\n\t\t************************************\n");printf("操作选择(A-H):[]\b\b");n=getchar();printf("\n");if(n<'A'||n>'H')w1=1;/*对选择的数字作判断*/elsew1=0;}while(w1==1);switch(n)/*选择功能*/{case'A':enter();break;/*输入模块*/case'B':modify();break;/*修改模块*/case'C':delete();break;/*删除模块*/case'D':add();break;/*登记成绩模块*/case'E':modify_score();break;/*修改成绩模块*/case'F':browse();break;/*浏览模块*/case'G':exit(0);/*退出模块*/}}main()/*主函数*/{menu();}2、各功能模块设计(1)输入模块【数据分析】:单看各数据信息,学号﹑年龄以及数学﹑英语﹑物理各科成绩和总分均是整型,姓名可以采用字符型数组.数据信息存放在文件中,一条记录对应一个学生,既符合习惯也方便信息管理.把学生的学号﹑姓名﹑年龄﹑各科成绩及总分作为结构体成员,存放若干个学生信息就用结构体数组.【流程图】:输入用户要输入学生记录的个数ni从0到n-1调用输入函数input(i)i!=0Y调用保存函数save(n)【程序代码】enter()/*输入模块*/{inti,n;printf("Howmanystudents(1-%d)?:",N);scanf("%d",&n);/*要输入的记录个数*/printf("\nEnterdatanow\n\n");for(i=0;i<n;i++){printf("\nInput%dthstudentrecord.\n",i+1);input(i);/*调用输入函数*/}if(i!=0)save(n);/*调用保存函数*/printf_back();/*一个任务结束时让用户选择是浏览还是返回*/}(2)修改模块【分析】:该模块的功能是显示所有学生信息,考虑到记录很多,故采用分屏显示