




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、内蒙古科技大学课程设计论文内蒙古科技大学本科生课程设计论文 题 目:学生成绩管理系统学生姓名:胡书培学 号:1067111106专 业:计算机科学与技术班 级:10级计算机1班指导教师:周李涌 2010年 12 月 30 日目录内蒙古科技大学课程设计任务书3学生成绩管理系统4【摘要】41论文题目:学生成绩管理系统42技术参数、设计步骤:43设计理论分析方法:54.设计结论及分析:54.1 各个函数功能简单分析:54.1.1主菜单函数(main):54.1.2输入函数(input):54.1.3输出函数(display):64.1.4查找(find):64.1.5修改(change):64.1.
2、6删除(del):64.1.7添加(add):64.1.8读入(read):64.1.9保存(save):64.1.10排序(sort):64.1.11学号排序(sortx):74.1.12不及格输出(no_pass):74.1.13输出(shuchu):75参考文献:76. 附录:86.1 程序部分:8内蒙古科技大学课程设计任务书课程名称C语言课程设计设计题目学生成绩管理系统指导教师周李涌时间2010.12.272010.12.31一、教学要求1. 巩固和加深学生对C语言课程的基本知识的理解和掌握2. 掌握C语言编程和程序调试的基本技能3. 利用C语言进行基本的软件设计4. 掌握书写程序设计
3、说明文档的能力5. 提高运用C语言解决实际问题的能力二、设计资料及参数每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。某班学生成绩管理,包括以下功能:v 从键盘输入包括学号、姓名、各门课程成绩(不少于2门),并将其保存在磁盘文件student里v 打开文件后,计算每个人的总分和平均分,排序并保存v 具有在文件中进行单项查询或多项查询的功能(即能够按照给定的关键字,如姓名等找出满足条件的纪录)v 具有输出文件数据信息的功能三、设计要求及成果1. 分析课程设计题目的要求2. 写出详细设计说明3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用
4、4. 设计完成后提交课程设计报告四、进度安排第一天 选择课程设计题目,分析课题的要求第二天 编程第三天 编程及调试第四天 写课程设计报告第五天 提交课程设计报告(打印稿及电子稿)五、评分标准1. 根据平时上机考勤、表现和进度,教师将每天点名和检查2. 根据课程设计完成情况,必须有可运行的软件。3. 根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。六、建议参考资料1C语言程序设计,谭浩强,清华大学出版社2C语言程序设计课程设计,刘振安,机械工业出版社学生成绩管理系统【摘要】通过课程设计,让我对C语言有了更深的理解,让我
5、们把学到的理论应用于具体实践中,锻炼了我们各方面的能力,从而让我们更快提高。通过一些简单函数的叠加构成了功能比较完备的学生成绩管理系统,从输入到处理再到输出,你将体会到完美的真正含义。学生成绩管理系统具有以下简单功能:1.从键盘输入包括学号、姓名、各门课程成绩(不少于2门),并将其保存在磁盘文件里2.打开文件后,计算每个人的总分,排序并保存3.具有在文件中进行单项查询或多项查询的功能(即能够按照给定的关键字,如姓名等找出满足条件的纪录)4.具有输出文件数据信息的功能1论文题目:学生成绩管理系统2技术参数、设计步骤:本程序包含输入(input)、输出(display)、查找(find)、修改(c
6、hange)、删除(del)、添加(add)、读入(read)、保存(save)等基本功能。先分别定义各种全局函数和全局变量now,同时定义结构体及结构体数组(本程序为实现简单操作暂定义长度为3)。其中now作为现有学生信息的一个标记作用尤为重要。每次执行完函数就返回主菜单。共含有四个开关语句,依次在main,display,find,change中,使界面更友好,用户操作更简单。设计共分四步完成,依次为简单设计,添加细节,上机调试,先改错再修改。遇到的问题可以查资料或向老师提问。 3设计理论分析方法:应有全局的概念,拿到题目首先进行总体功能分析,只有对整体功能有了全局把握才能去里自己用那部分
7、知识进行编写。这个阶段好比盖房子,如果这个阶段做好了,说明房子已改好了。剩下任务就是怎么去装修了。确定了大体方向接下来就是功能实现阶段了,即所谓装修阶段。同样需要逐一地先写出能实现此功能的简单程序。比如学生成绩管理系统,先写出最简单的输入、输出、排序等功能函数。然后通过简单函数的互相调用、嵌套构成一个新功能的复杂函数。淡然这中间要加很多其他东西,这就需要我们多看书,多问老师同学啦。等到所有功能都能“正常”(按提示正确输入)实现,再考虑一些细节问题,例如:如果所有都能简单运行,可是有些时候有些输入错误或正确它都运行,这就需要我们通过改写程序使之在正确输入时运行,在错误输入时给出出错提示。就像性别
8、问题,输入M/W时运行,输入其他就不让它运行,同时给出正确输入的提示。这样就好很多了。后面的一一修改就可以了。同时还要考虑到见名知意,如: 输入(input)、输出(display)、查找(find)、修改(change)、删除(del)、添加(add)、读入(read)、保存(save)、排序(sort)、按学号排序(sortx)、不及格(no_pass)、输出(shuchu)。当然还有其他问题需要注意,在这里不一一细说。4.设计结论及分析:4.1 各个函数功能简单分析:4.1.1主菜单函数(main):主函数为一个死循环,前几个是功能实现函数,只有9是退出。也就是说每执行完一个函数,他就自
9、动返回主菜单。只有选择9(退出)时才跳出循环。当然每选择一次它就自动清空屏幕,所以运行结果更直观。4.1.2输入函数(input):先输入要添加的学生数量n,同时now标记现有学生的数量。执行n次循环,输入n个学生的信息;其中输入性别时只有为M/W(M为男,W为女,均大写)时才跳出循环。如果出错,有提示信息。最后自动求和并保存。4.1.3输出函数(display): 三部分1.按总分名次输出2.按学号顺序输出3.输出有不及格课程的学生4.1.4查找(find):查找分为按学号查找和按姓名查找,查找成功就输出,查找失败就返回,输出提示信息继续输入。4.1.5修改(change):输入学号,然后选
10、择修改项,修改完后,提示用户“是否继续修改”,只有输入N/n时退出,输入其它字符都是继续。4.1.6删除(del):输入要删除学生的学号,如果找到就删除其信息,并提示用户删除成功,如果没找到就提示用户删除失败。4.1.7添加(add):根据信息总容量(结构体数组的长度)和第一次输入的信息量判断是否能继续添加。如果添加后信息已满,则提示用户不能继续添加,同时屏蔽了添加选项。4.1.8读入(read):从文件读入,避免了用户多次大量输入数据。4.1.9保存(save):每次执行完修改信息包括添加、录入、修改、删除等都需要保存信息。当然在每个修改函数最后都需要调用一下保存函数。4.1.10排序(so
11、rt):按总成绩名次排序(冒泡法排序)。n为要排序的学生数量,为形参。4.1.11学号排序(sortx):按学号先后顺序进行排序(冒泡法排序)。n为要排序的学生数量,为形参。4.1.12不及格输出(no_pass):输出不及格的学生信息。4.1.13输出(shuchu):输出第n个学生信息。5参考文献:(1)C语言程序设计,谭浩强,清华大学出版社(2)C语言程序设计课程设计,刘振安,机械工业出版社6. 附录:6.1 程序部分:#include<stdio.h>#include<conio.h>#include<string.h>#include<std
12、lib.h>#define max 3void input();void display();void find();void change();void del();void read();void save();void add();void sort(int n);void sortx(int n);void shuchu(int n);void no_pass();int now=0;/*标记位*/struct studentint num;char name20;char sex;int NO;float score1;float score2;float sum;struct
13、 student stumax+1;void main()/*主函数(菜单)*/int as;doprintf("nttt欢迎使用学生成绩管理系统nn");printf("ntttt1.录入学员信息ntttt2.显示学员信息ntttt3.查找学员信息ntttt4.修改学员信息ntttt5.删除学员信息ntttt6.添加学员信息ntttt7.读入学员信息ntttt8.保存学员信息ntttt9.退出");printf("nnntttt请选择");scanf("%d",&as);switch(as)case 1:
14、system("cls");input();break;case 2:system("cls");display();break;case 3:system("cls");find();break;case 4:system("cls");change();break;case 5:system("cls");del();break;case 6:system("cls");add();break;case 7:system("cls");read();b
15、reak;case 8:system("cls");save();break;case 9:system("cls");exit(0);while(1);void input()/*输入函数*/int i,n,j; for(i=0;i+) printf("n请输入添加的学生数量(在%d以内):",max-now); scanf("%d",&n); if(n>max)printf("n请确保添加的数量在%d以内t!",max); if(n<=max)break; now=n;f
16、or(i=0;i<n;i+)printf("ntttt输入第%d个学生的信息n",i+1);printf("n输入学生的学号:");scanf("%d",&stui.num);getchar();printf("n输入学生的姓名:");gets();printf("n请输入学生的性别(M/W):");for(j=0;j+)stui.sex=getchar();if(stui.sex='M'|stui.sex='W')break;el
17、se printf("nttt请确保输入性别的正确性(区分大小写)!");getchar();printf("n请输入学生成绩1:");scanf("%f",&stui.score1);printf("n请输入学生成绩2:");scanf("%f",&stui.score2);stui.sum=stui.score1+stui.score2;sort(n);save(); system("cls");void display()/*整体输出函数*/int as
18、,i;printf("nttt班级学生成绩列表nnn");printf("ntttt请选择nnttt1.按名次输出nttt2.按学号输出nttt3.不及格的学生信息nttt");scanf("%d",&as);switch(as) case 1:sort(now);for(i=0;i<now;i+)shuchu(i);break; case 2:sort(now);sortx(now);for(i=0;i<now;i+)shuchu(i);break;case 3:no_pass();break;void find
19、()/*查询函数*/int num,as,i;char name20;printf("nttt请选择nnn");printf("nttt1.按学号查找nttt2.按姓名查找nttt"); scanf("%d",&as);switch(as) case 1:system("cls");printf("请输入要查找的学号:"); doscanf("%d",&num); for(i=0;i<now;i+) if(num=stui.num) shuchu(i);
20、break; if(i>=now) printf("ntt该生信息不存在!请重新输入学号:");while(i>=now);break; case 2:system("cls");getchar();printf("请输入要查找的学生姓名:"); do gets(name); for(i=0;i<now;i+) if(strcmp(name,)=0) shuchu(i);break; if(i>=now) printf("nnttt该生信息不存在!请重新输入姓名:"); w
21、hile(i>=now);break;void change()/*修改函数*/int num,as,j,i,m;char a; printf("nttt请输入要修改的学生的学号:");scanf("%d",&num);for(i=0;i<now;i+)if(stui.num=num)for(j=0;j<6;j+)printf("nttt请选择nnn"); printf("nttt1.修改学号nttt2.修改姓名nttt3.修改性别(M/W)nttt4.修改成绩1nttt5.修改成绩2nttt&qu
22、ot;);scanf("%d",&as);switch(as)case 1:printf("请输入新的学号:");scanf("%d",&stui.num);break;case 2:printf("请输入新的姓名:");getchar();gets();break;case 3:printf("请输入新的性别:");getchar(); for(m=0;m+) stui.sex=getchar(); if(stui.sex='M'|stui.s
23、ex='W')break; else printf("nttt请确保输入性别的正确性(区分大小写)!"); getchar(); break;case 4:printf("请输入新成绩1:");scanf("%f",&stui.score1);break;case 5:printf("请输入新成绩2:");scanf("%f",&stui.score2);break;stui.sum=stui.score1+stui.score2;printf("n是否
24、继续修改该生信息?(Y/N)"); getchar();a=getchar();if(a='N'|a='n')break; sort(now); save();break;if(i>=now)printf("nntttt学号输入有误!nn");void del()/*删除函数*/int num,i;printf("nttt输入要删除的学生学号");scanf("%d",&num);for(i=0;i<=now;i+)if(i>=now)printf("nnn
25、ttt学号输入有误!删除失败!nn");break;if(stui.num=num)if(i=now-1)now-=1;else stui=stunow-1; now-=1; printf("nnttt删除成功!nn"); sort(now);break;save();void add()/*添加函数*/char ch;int j;printf("ntttt还能添加%d个学生信息!nn",max-now);if(now<max) do printf("ntttt输入新插入学生的信息n"); printf("n
26、输入学生的学号:"); scanf("%d",&stunow.num); getchar(); printf("n输入学生的姓名:"); gets(); printf("n输入学生的性别(M/W):"); for(j=0;j+) stunow.sex=getchar();if(stunow.sex='M'|stunow.sex='W')break;else printf("nttt请确保输入性别的正确性(区分大小写)!");getchar();
27、 printf("n输入学生的成绩1:"); scanf("%f",&stunow.score1); printf("n输入学生的成绩2:"); scanf("%f",&stunow.score2); stunow.sum=stunow.score1+stunow.score2; now=now+1; sort(now); if(now>=max) printf("nnntt存储空间已满无法继续添加!nn");break; printf("nttt是否继续添加?(Y/N)"); getchar(); ch=getchar(); while(ch!='n'|ch!='n');void save()/*文件保存函数*/FILE *fp;/*fp为文件指针*/int i;if(fp=fopen("stu_infer","wb")=NULL)printf("nnttt文件打开失败!");return;for(i=0;i<max+1;i+)if(fwrite(&stui,sizeof(struct student),1,f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CAQI 25-2017新风净化系统施工质量验收规范
- T/CAQI 204-2021红外非接触式人体表面温度快速筛查系统
- T/CAQI 140-2020便携式甲醛检测仪
- 飞行英语面试题及答案
- 教练实践考试题及答案
- 烘焙服务考试题及答案
- 东阳保姆面试题及答案
- 创业管理考试题及答案
- 嘉峪关语文面试题及答案
- 大厂offer面试题及答案
- 消费者权益保护工作培训课件
- 长城:一部世界文化遗产的史诗
- 二次供水水箱清洗合同
- 地脚螺栓安装方案
- 工厂管理制度制度
- 餐饮服务食品安全监督量化分级管理制度
- 2023年中国财税服务行业市场全景评估及未来投资趋势预测
- 医疗卫生事业单位面试题型及答题技巧
- 肿瘤科运用PDCA循环提高疼痛评估的规范率品管圈成果汇报
- 管道安全检查表
- 心理剧比赛点评金句
评论
0/150
提交评论