C语言课程设计-学生成绩管理系统(17页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《C语言课程设计-学生成绩管理系统(17页).doc》由会员分享,可在线阅读,更多相关《C语言课程设计-学生成绩管理系统(17页).doc(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-C语言课程设计-学生成绩管理系统-第 17 页中 国 地 质 大 学本科生课程论文封面课程名称 C语言课程设计 教师姓名 李章林 本科生姓名 本科生学号 本科生专业 所在院系 类别: 日期: 2013年12月31日 课程设计评语对课程论文的评语:平时成绩:课程论文成绩:总 成 绩:评阅人签名:注:1、无评阅人签名成绩无效;2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。目 录课程设计评语2目 录31课程论文题目42程序设计思路43功能模块图54数据结构设计55算法设计66程序代码107程序运行结果188编程中遇到的困难及解决方法229总结
2、心得及良好建议2210致谢23一、课程论文题目:学生成绩管理系统1:题目要求请设计学生成绩管理系统,实现学生信息的录入,显示,查找,添加,保存,删除,插入等功能模块。要求功能选择用菜单实现,数据输入和结果输出要求有文件存放。原始数据文件格式:学号 姓名 英语 C语言 高等数学 平均成绩01 张三 75 85 80 8002 李四 2:需求分析根据题目要求,由于学生信息总是存放在文件中,所以应提供文件的输入,输出等操作;在程序中需要浏览学生的信息,应提供显示,查找,排序等操作;另外还应提供键盘式选择菜单实现功能选择。3:总体设计根据上面的需求分析,可以将这个系统的设计分为:数据输入模块、数据显示
3、模块、数据查找模块、数据插入模块、成绩排序模块和成绩保存模块等。二、程序设计思路这次是初次要自主设计一个程序系统。系统要求实现学生信息的录入、显示、查找、添加以及成绩排序等功能。对于几个功能,可分别设置7个部分。根据需求分析,可以将这个系统分为以下模块:输入模块,录入模块,修改模块,保存模块,查询功能模块,删除功能模块,以及排序模块.1、 用户输入模块在此模块中用户根据自己的需求输入数字17中的任意一个数字,实现相应的功能。2、 信息录入功能模块此模块可以让用户输入每个学生的信息:学号、姓名、英语成绩、C语言成绩、高等数学成绩、平均成绩。用户可以连续输入学生的信息,或者删除或者查询,也可以保存
4、当前已录入的信息。3、 修改学生成绩模块用户可以根据实际情况的变化修改已录入的学生成绩的信息,跟实际同步。4、 文件保存模块用户可以在确定已录入的信息无误之后将学生的信息存为一个数据文件。已保存的信息可以再文件中查看也可以在程序中进行查看。用户输入的学生信息可以随时保存。5、 查询功能模块在此模块里,用户可以根据提示输入所想要查询的学生的学号以查询学生的信息。6、 删除功能模块、在此模块里,用户可以根据自己的需求选择想要删除的学生信息,选择之后程序会再次确认,以防误删。 7、排序功能模块 在此模块中,程序会将用户已录入的信息按平均成绩由低到高进行排序。三、功能模块图:开始x值 1值 2值 7值
5、 6值 5值 4值 3查询模块修改退出排序模块保存模块删除模块添加模块用户输入并将值保存至xx结束四、数据结构设计struct xueshengchengji /*声明学生成绩数据结构体*/char xuehao10; /*学生学号*/char name10; /*学生姓名*/float cyuyan; /*c语言成绩*/float math; /*高数成绩*/float english; /*英语成绩*/ float average; /*平均成绩*/struct xueshengchengji chengji100,*p=chengji; /*声明记录学生成绩情况的100个元素的结构体数组
6、*/五、算法设计开始选择需要的功能输入学生信息结束1、添加模块void add() printf (t请输入学生学号:);fflush(stdin); /*清除键盘缓冲区*/gets(chengji+n.xuehao);printf(tttt请输入学生姓名:);gets(chengjin.name);printf(tttt请输入该学生的英语成绩:);scanf(%f,&chengjin.cyuyan);printf(tttt请输入该学生的C语言成绩:);scanf(%f,&chengjin.math);printf(tttt请输入该学生的高等数学成绩:);scanf(%f,&chengjin.
7、english); /*计算总成绩*/chengjin.average=(chengjin.cyuyan+chengjin.math+chengjin.english)/3; /*输出内容*/printf(ntttt该学生成绩为:%f,chengjin.average);开始输入要修改的学生学号输入新的学生信息结束printf(nntttt按任意键返回.);getch();2、修改模块void modify ( )char xuehao10; /*接收学生学号字符数组*/int i; /*循环变量*/if (n=-1) /*人数为0说明成绩记录尚未添加*/printf(nntt当前还没有学生成
8、绩记录,按任意键返回主菜单.);getch( );return;printf(t请输入学生学号:); /*提示信息*/gets(xuehao); /*从键盘读取字符串*/for (i=0;i=n;i+) /*在学生总数范围内循环查找*/if(strcmp(chengjii.xuehao,xuehao)=0) /*比较并找到*/*显示该学生成绩情况*/printf(nttt 该学生成绩情况如下: );printf(nttt=nn); printf(学号 姓名 平均成绩); printf(英语 C语言 高等数学); printf(%-6s%-6s,chengjii.xuehao,chengjii.
9、name); printf(%,chengjii.cyuyan,chengjii.math,chengjii.english,chengjii.average);/*接受该学生新的成绩情况*/ printf(ntt 请输入该学生新的英语成绩: );scanf (%f,&chengjii.cyuyan); printf(ntt 请输入该学生新的C语言成绩: );scanf (%f,&chengjii.math); printf(ntt 请输入该学生新的高等数学成绩: );scanf (%f,&chengjii.english);3、查询模块开始输入要查询的学生学号输出学生信息结束/*查询学生成绩
10、(依据学号)*/void find()char xuehao10; /*接收学生学号字符数组*/ int i; /*循环变量*/ if(n=-1) /*人数为0说明成绩记录尚未添加*/printf(nntt当前还没有学生成绩,按任意键返回主菜单.);getch();return;printf(t请输入学生学号:); /*提示信息*/gets(xuehao); /*从键盘读取字符串*/for(i=0;i=n;i+) /*在职工总数范围内循环查找*/if(strcmp(chengjii.xuehao,xuehao)=0) /*比较并找到*/printf(n 该学生成绩情况如下:); printf(
11、n=nn);printf(学号 姓名);printf(英语 C语言 高等数学 平均成绩);printf(%-6s%-6s%,chengjii.xuehao,chengjii.name);printf(%,chengjii.cyuyan,chengjii.math,chengjii.english,chengjii.average);printf(n 按任意键返回主菜单.);getch();break;if(i=n+1)printf(ntt您所输入的学生学号有误或不存在!);printf(按任意键返回主菜单.);getch();return;4、删除模块输入要删除学生学号开始判断是否要删除删除学
12、生记录结束语NYvoid del()char xuehao10; int i,j; char d; printf(t请输入待删除学生学号:);gets(xuehao);for(i=0;i=n;i+) if(strcmp(chengjii.xuehao,xuehao)=0)printf(ntt你确认要删除%s号学生成绩信息么(y/n)?,chengjii.xuehao );d=getche();if(d=y|d=Y) if(i=n) n-;else for(j=i;j=n;j+) strcpy(chengjij.xuehao,chengjij+1.xuehao);strcpy(chengjij.
13、name,chengjij+1.name);chengjij.english=chengjij+1.english;chengjij.math=chengjij+1.math; chengjij.cyuyan=chengjij+1.cyuyan;n-;printf(nntt该学生记录成功删除,按任意键返回主菜单.);getch();break; else printf(nntt你选择了不删除该学生记录,按任意键返回主菜单.);getch();return;if(i = n+1) printf(ntt本班级无此学号,按任意键返回主菜单.);getch();开始选择需要的功能按成绩低到高排序结束5
14、、排序模块void rank() int i,j; printf(t按平均成绩排序如下n);for (i=0;in;i+)for(j=i+1;jchengji j.average)*p=chengjij;chengjij=chengjii;chengjii=*p;printf(%-6s%-6s,学号,姓名); printf(%-12s%-6s%12s%-9sn,英语,C语言,高等数学,平均成绩);for(i=0;i=n;i+) printf(%-6s%-6s,chengjii.xuehao,chengjii.name); printf(%9.2f%n,chengjii.cyuyan,cheng
15、jii.math,chengjii.english,chengjii.average); printf(nntttt按任意键返回.); getch();六、程序代码nclude /*基本的输入输出函数*/#include /*getch()及getche()函数包含在此*/#include /*字符串相关函数*/#include #define TRUE 1/*以下函数为自定义函数声明语句*/void read(); /*从数据文件中读取学生成绩数据*/void write(); /*从学生成绩数据文件写入记录*/void find(); /*查询学生成绩数据记录*/void modify()
16、; /*修改学生成绩数据记录*/void add(); /*向学生成绩数据文件中增加记录*/void del(); /*从学生成绩数据文件中删除记录*/void rank(); /*排列学生成绩*/struct xueshengchengji /*声明学生成绩数据结构体*/char xuehao10; /*学生学号*/char name10; /*学生姓名*/float cyuyan; /*c语言成绩*/float math; /*高数成绩*/float english; /*英语成绩*/float average; /*平均成绩*/struct xueshengchengji chengji
17、100,*p=chengji; /*声明记录学生成绩情况的100个元素的结构体数组*/int n = -1; /*声明统计学生人数的变量*/void main() char ch;read(); /*从数据文件中读取学生成绩数据并初始化学生成绩结构体数组*/while(TRUE) system(cls); /*清屏命令*/printf(tt请选择(1-7):n);printf(tt=n); printf(ttt 1.查询学生成绩记录n);printf(ttt 2.修改学生成绩记录n);printf(ttt 3.添加学生成绩记录n);printf(ttt 4.删除学生成绩记录n);printf(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 学生 成绩管理系统 17
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内