




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、重庆科技学院C语言程序设计课程设计报告学 院:电气与信息工程学院 专业班级:自动化2013-03学生姓名:高跃跃 学 号:设计地点(单位)计算机基础自主学习中心设计题目:学生成绩管理系统的设计与实现完成日期:2014 年09月25日指导教师评语:成绩(五级记分制):指导教师(签字): 一课程设计任务书设计题目:学生成绩管理系统的设计与实现学生姓名高跃跃课程名称C语言课程设计专业班级自动化2013地 点计算机基础自主学习起止时间2014.9.9-2014.9.2设 计 内 容 及 要 求内容中心6强化C语言中有关结构体数组及外部义件的内容,独立设计学生成绩管理系统,并编程实现以下功能:1、整个系
2、统均用C语言实现;2、利用结构体数组来实现学生成绩的数据结构设计;3、系统具有输入、显示、查询、删除、排序、插入、保存、 读 取等基本功能;4、系统的各个功能模块都用函数的形式来实现;5、要求能将学生成绩信息保存在文件中;6、要求能从文件中读取学生信息并进行相关处理。设 计 参 数1、每 条记录包K 个学生的学号、姓名、3门成绩、平均成 绩。2、输入功能:进入后可以进行多条记录的输入并保存。3、显示功能:完成全部 学生或满足指定条件记录的显示。4、查找功能:完成按 学号或姓名查找 学生记录,并显示。5、排序功能:按 学生学号或平均成绩进行排序。6、插入功能:按 学生学号或平均成绩高低插入一条学
3、生记录。7、保存功能.将学生厄家保存在自te 乂名称的文件中。8、读取功能:将保存在义件中的 学生记录读取出来。9、有一个文本菜单来调用各个功能。进 度 要 求1 .布置设计题目,讲解要求和说明2014.9.92 .确定设计任务,确定具体的功能,熟悉相关知识2014.9.93 .按功能需求确定程序的主要模块2014.9.104 .编程实现程序的功能2014.9.11-2014.9.155 .调试并完善程序2014.9.16-2014.9.226 .撰写课程设计报告2014.9.23 -2014.9.247.提交课程设计报告并答辩2014.9.25工 谭浩强,C语言程序设计(第三版),清华大学出
4、版社,2005.2 匕1.本表应在每次实施前一周由负责教帅填写二份,院系审批后交院需办备案,一份由负责教师留用。口目f .若填写内容较多可另纸附后。明3.一题多名学生共享的,在设计内容、参数、要求等方面应有所区_SU学生成绩管理系统是为了实现学校对学生成绩管理的系统化、规范化和自动化,从 而提高学校管理效率而设计的。它完全取代了原来一直用人工管理的工作方式,避免了 由于管理人员的工作疏忽以及管理质量问题所造成的各种错误,为及时、准确、高效的 完成学生成绩管理提供了强有力的工具和管理手段。学生成绩管理系统是一个中小型数 据库管理系统,它界面美观、操作简单、安全性高,基本满足了学生成绩管理的要求。
5、本系统是在以Microsoft Visual C+ 6.0作为后台来开发的。学生成绩管理系统在运行阶段,效果好,数据准确性高,提高了工作效率,同时也实现了学生成绩管理计 算机化。关键词:成绩管理系统C语言目录1. 软件需求说明 11.1 程序的界面要求11.2 程序的功能12. 程序的分析与设计 12.1 程序的数据结构分析42.2 程序的算法设计 63. 程序的实现 73.1 主函数 73.2 定义数据结构 84. 程序试用说明 104.1 主页面 114.2 录入信息页面 185. 总结 195.1 致谢 195.2 参考文献 19软件需求说明1.1.1 程序的界面要求整个系统均用CS言实
6、现; 利用结构体数组来实现学生成绩的数据结构设计; 系统具有输入、显示、查询、删除、排序、插入、保存、读取等基本功 系统的各个功能模块都用函数的形式来实现; 要求能将学生成绩信息保存在文件中; 要求能从文件中读取学生信息并进行相关处理。1.2 程序的功能每一条记录包括一个学生的学号、姓名、3门成绩、平均成绩。输入功能:进入后可以进行多条记录的输入并保存。显示功能:完成全部学生或满足指定条件记录的显示。查找功能:完成按学号或姓名查找学生记录,并显示。排序功能:按学生学号或平均成绩进行排序。插入功能:按学生学号或平均成绩高低插入一条学生记录。保存功能:将学生记录保存在自定义名称的文件中。读取功能:
7、将保存在文件中的学生记录读取出来。有一个文本菜单来调用各个功能。1.系统分析与设计2.1 程序的数据(结构)分析2.1.1 定义结构体本程序需要定义多个结构体,用于存放学生的相关信息用于存放学生的相关信息typedef struct CStudentchar Name32;/* 学生姓名*/int Sno;/* 学号 */double dDataStruct;/*数据结构成绩*/double dMath;/*数学成绩*/*英语成绩*/double dEnglish;double aver;/* 平均成绩*/CStudent;2.1 . 2 main ()主函数主函数功能比较简单,用while
8、循环语句和switch 多重选择语句来显示主界面和调用函数。在主函数的前面要写必须的头文件,预定义语句以及全局变量的结构体。2.1.3 del( ) 删除函数在C语言中无法做到删除和移动数据,所以删除记录要先将所有记录从文件中读出,删除后再将记录写回文件中。每读出一条记录,按其在文件中的顺序做好指针链接关系,然后查处要删除的学生信息,将其在链表中删除,最后再将变动的记录重新写回文件中。用指针, else/if 结构来实现查找出要删除的学生。2.1.4 insert( ) 插入函数在插入函数中利用指针,while 循环和 else/if 语句来实现输入的数据按照插入相应的位置。2.1.5 读取函
9、数利用指针、链表打开已经储存的信息。void Read()/* 从文档读取*/char p128 = "file.txt"FILE *fp;if (fp=fopen("file.txt","r")=NULL)printf("Open file %s error! Strike any key to exit!",p);system("pause");exit(0);SavePos = 0;while(!feof(fp)fscanf(fp,"Name:%sn",exampleS
10、avePos.Name);fscanf(fp,"Sno:%dn",&exampleSavePos.Sno);fscanf(fp,"Score(DS)%lfn",&exampleSavePos.dDataStruct) ;fscanf(fp,"Score(M)%lfn",&exampleSavePos.dMath) ;fscanf(fp,"Score(E)%lfn",&exampleSavePos.dEnglish) ;fscanf(fp,"Score(Average)%lf
11、n",&exampleSavePos.aver) ;fscanf(fp,”*n");SavePos+;fclose(fp);Display();2.1.6 save( )保存函数主要利用指针来把信息保存在文件中。void Save()/* 保存到文档*/int j=0;const char fname128 = "file.txt"FILE* fp;/open filefp = fopen(fname, "w");/write in filefor(j=0;j<SavePos;j+) /fprintf(fp,"
12、This is the file.n")fprintf(fp,"Name:%sn",examplej.Name) ;fprintf(fp,"Sno:%dn",examplej.Sno);fprintf(fp,"Score(DS)%fn",examplej.dDataStruct) ;fprintf(fp,"Score(M)%fn",examplej.dMath) ;fprintf(fp,"Score(E)%fn",examplej.dEnglish) ;fprintf(fp,"
13、;Score(Average)%fn",examplej.dEnglish) ;fprintf(fp,”*n");/close filefclose(fp);printf("保存成功 n");2.2 程序的算法设计学生成绩管理系统插从 文 件 读 入.2开始杳从 键 盘 喻输入a删统功能模墉a 学 生信输住换据也0,图2.2输入模块7结束图2.2查询模块2.3.1主函数int main()开始7入学/Yr 存在、/图2 2璃焚殿/程序制实现int choicel = 1,choice2;int i = 1,s = 1;doprintf(" 欢迎
14、使用学生成绩管理系统n");printf(" 请选择程序功能n");printf("1、信息录入n");printf("2 、信息查询n");printf("3、插入n");printf("4 、排序 n");printf("5、保存n");printf("6、删除n");printf("7 、读取并显示n");printf("8 、退出程序n");scanf("%d",&cho
15、ice1);2.2 定义数据结构用一个类的嵌套定义struct student *next ;用整型数据定义学号和成绩,用 char 定义姓名。typedef struct CStudentchar Name32;int Sno;double dDataStruct;double dMath;double dEnglish;double aver;CStudent;CStudent example1024;int SavePos = 0;3.3 函数说明链表定义头指针stu *s , switch/* 学生姓名*/* 学号 */*数据结构成绩*/*数学成绩*/*英语成绩*/* 平均成绩*/函数
16、中用了8 个 case。case 1: Record(SavePos);break; / 录入学生信息case 2: Search_Name( ); Search_Sno ();break;/ 查询学生信息case 3: Insert_Score();break;/插入学生信息case4:Sort_Sno( ) ; Sort_Score( );break;/ 学生信息排序case 5: Save( ) student(s);break;/保存学生信息case 6: Delete_Sno( ); Delete_Name( ); break;/ 删除学生信息case 7: Read( )stude
17、nt(s);break;/读取学生信息case 8: exit(0);break;/ 退出系统2.3 文件录入功能void Record(int j)/*录入 */printf(" 信息录入n");printf("姓名:");scanf("%s",examplej.Name);printf("学号:");scanf("%d",&examplej.Sno);printf(" 数据结构:");scanf("%lf",&examplej.dDat
18、aStruct);printf(" 数学:");scanf("%lf",&examplej.dMath);printf(" 英语:");scanf("%lf",&examplej.dEnglish);printf(" 平均成绩:");scanf("%lf",&examplej.aver);2.4 文件读取功能读取功能运用文件指针的方法,与While 循环语句完成。void Read()/* 从文档读取*/char p128 = "file.t
19、xt"FILE *fp;if (fp=fopen("file.txt","r")=NULL)printf("Open file %s error! Strike any key to exit!",p);system("pause");exit(0);SavePos = 0;while(!feof(fp)fscanf(fp,"Name:%sn",exampleSavePos.Name);fscanf(fp,"Sno:%dn",&exampleSavePos.
20、Sno);fscanf(fp,"Score(DS)%lfn",&exampleSavePos.dDataStruct) ;fscanf(fp,"Score(M)%lfn",&exampleSavePos.dMath) ;fscanf(fp,"Score(E)%lfn",&exampleSavePos.dEnglish) ;fscanf(fp,"Score(Average)%lfn",&exampleSavePos.aver) ;fscanf(fp,"*n");Sa
21、vePos+;fclose(fp);Display();2.5 插入功能首先建立循环,检测插入的学号是否已存在,若存在则停止插入;若不存在,则继续进行输入学生信息。void Insert_Score()int i , j, m, flag;i = SavePos;do flag=1;while(flag)flag = 0;printf("请输入第 d 位:n",i+1);printf("请输入学号检验该生是否已经存在n");scanf("%d”,&examplei.Sno);for(j=0;j<i;j+)if(examplei.S
22、no = examplej.Sno)printf("已存在该号,请检查重新录入!n");flag=1;break;/*重复立即退该层循环,提高判断速度*/Record(i);printf("录入完毕 nn");Sort_Score();while(0);3.程序使用说明4.1 主页面将写好的程序用 Microsoft Visual C+6.0打开并运行,首先出现的是主页面,如图4-1 所示。图4-14.2 录入信息页面输入数字1,按提示进行学生成绩的录入,并按数字5保存信息。继续录入按数字9,结束录入按数字0。如图4-2图4-24.3 信息查询页面返回主页面,按数字2,进行学生信息查询,分为按学号查询和姓名查询。如图 4-3-1 。图 4-3-1按数字1与按数字2查询结果页面如图4-3-2所示。图 4-3-24-3-24.4 插入信息页面返 回 主 页 面 , 按 数 字 3, 首 先 检 验 该 学 号 是 否 存 在 , 若
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 门座式起重机司机特种作业证水平自测试题带答案
- 高二入学考试试题及答案
- 工程经济考试试题及答案
- 专业厨师考试试题及答案
- 大专司法考试试题及答案
- 防水工证考试试题及答案
- 社区公职考试试题及答案
- 阜新高专考试试题及答案
- 河北国企考试试题及答案
- 单招笔试考试试题及答案
- 电梯维保服务考核标准及评分办法
- (正式版)JBT 3300-2024 平衡重式叉车 整机试验方法
- 2024全新校医合作协议(重点条款版)
- 小脑梗死的护理查房
- 水产养殖公司合伙人股权分配协议
- 特殊教育导论 课件 第一章 特殊教育的基本概念
- 急救医疗资源整合优化研究
- 牛津译林7A-Unit3、4单元复习
- 专题四“挺膺担当”主题团课
- 国家义务教育质量监测初中美术试题
- 超声波探伤作业指导书
评论
0/150
提交评论