C语言程序设计学生成绩管理系统课程设计报告_第1页
C语言程序设计学生成绩管理系统课程设计报告_第2页
C语言程序设计学生成绩管理系统课程设计报告_第3页
免费预览已结束,剩余7页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、重庆科技学院«C语言程序设计课程设计报告学院:电气与信息工程学院专业班级:白动化2013-03学生姓名:高跃跃学号:设计地点(单位)计算机基础自主学习中心设计题目:学生成绩管理系统的设计与实现完成日期:2014年09月25日指导教师评语:成绩(五级记分制):指导教师(签字):课程设计任务书设计题目:学生成绩管理系统的设计与实现高跃跃学生姓名课程名称-内容强化c语言中有关结构体数组及外部文件的内容,独立设计C语言课程设计计算机基础自主学习中专业班级起止时间自动化20132014.9.9-2014.9.26学生成绩管理系设计内容及要求统,并编程实现以下功能:1、整个系统均用涌言实现;2、

2、利用结构体数组来实现学生成绩的数据结构设计;3、系统具有输入、显示、查询、删除、排序、插入、保存、读取等基本功设计参数能;4、系统的各个功能模块都用函数的形式来实现;5、要求能,字学生成绩信息保存在文件中;6、要求能从文件中读取学生信息并进行相关处理。1、每一条十己录包括一个学生的学号、姓名、30成绩、平均成绩。2、输入功能:进入后可以进行多条记录的输入并保存。3、显示功能:完成全部学生或满足指定条件十己录的显示。4、查找功能:5、排序功能:6、插入功能:7、保存功能:完成按学号或姓名查找学生记录,并显示。按学生学号或平均成绩进行排序。按学生学号或平均成绩高低插入一条学生十己录。,字学生十己录

3、保存在自定义名称的文件中。进度要求8、读取功能:,字保存在文件中的学生十己录读取出来。9、有一个文本菜单来调用各个功能。1. 布置设计题目,讲解要求和说明2. 确定设计任务,确定具体的功能,3. 按功能需求确定程序的主要模块4. 编程实现程序的功能-2014.9.155. 调试并完善程序-2014.9.226. 撰写课程设计报告2014.9.247.提交课程设计报告并答辩2014.9.9熟悉相关知识2014.9.92014.9.102014.9.112014.9.162014.9.23-2014.9.25谭浩强,C语言程序设计(第三版),清华大学出版社,2005.2明1.本表应在母次实施前一周

4、由负责教师填与一份,院系审批后交院系办遍案,一份由负责教师留用。2. 若填写内容较多可另纸附后。3. 一题多名学生共旱的,在设计内容、参数、要求等方面应有所区别。摘要学生成绩管理系统是为了实现学校对学生成绩管理的系统化、规范化和自动化,从而提高学校管理效率而设计的。它完全取代了原来一直用人工管理的工作方式,避免了由丁管理人员的工作疏忽以及管理质量问题所造成的各种错误,为及时、准确、高效的完成学生成绩管理提供了强有力的工具和管理手段。学生成绩管理系统是一个中小型数据库管理系统,它界面美观、操作简单、安全性高,基本满足了学生成绩管理的要求。本系统是在以MicrosoftVisualC+6.0作为后

5、台来开发的。学生成绩管理系统在运行阶段,效果好,数据准确性高,提高了工作效率,同时也实现了学生成绩管理计算机化。关键词:成绩管理系统C语言1. 目录软件需求说明11.1程序的界面要求12. 1.2程序的功能1程序的分析与设计12.1程序的数据结构分析43. 2.2程序的算法设计6程序的实现73.1主函数74. 3.2定义数据结构8程序试用说明104.1主页面115. 4.2录入信息页面18总结195.1致谢195.2参考文献191.本程序需要定义多个结构体,用于存放学生的相关信息typedefstructCStudentcharName32;/*学生姓名*/intSno;/*学号*/doubl

6、edDataStruct;/*数据结构成绩*/doubledMath;/*数学成绩*/软件需求说明 1.1程序的界面要求整个系统均用C语言实现;利用结构体数组来实现学生成绩的数据结构设计;读取等基本功系统具有输入、显示、查询、删除、排序、插入、保存、系统的各个功能模块都用函数的形式来实现;要求能将学生成绩信息保存在文件中;要求能从文件中读取学生信息并进行相关处理。 1.2程序的功能每一条记录包括一个学生的学号、姓名、3门成绩、平均成绩输入功能:进入后可以进行多条记录的输入并保存。 显示功能:完成全部学生或满足指定条件记录的显示。 查找功能:完成按学号或姓名查找学生记录,并显示。 排序功能:按学

7、生学号或平均成绩进行排序。 插入功能:按学生学号或平均成绩高低插入一条学生记录。 保存功能:将学生记录保存在自定义名称的文件中。 读取功能:将保存在文件中的学生记录读取出来。 有一个文本菜单来调用各个功能。2.系统分析与设计2.1程序的数据(结构)分析2.1.1定义结构体/*英语成绩*/doubledEnglish;doubleaver;/*平均成绩*/CStudent;2.1.2main()主函数主函数功能比较简单,用while循环语句和switch多重选择语句来显示主界面和调用函数。在主函数的前面要写必须的头文件,预定义语句以及全局变量的结构体。2.1.3 del()删除函数在C语言中无法

8、做到删除和移动数据,所以删除记录要先将所有记录从文件中读出,删除后再将记录写回文件中。每读出一条记录,按其在文件中的顺序做好指针链接关系,然后查处要删除的学生信息,将其在链表中删除,最后再将变动的记录重新写回文件中。用指针,else/if结构来实现查找出要删除的学生。2.1.4 insert()插入函数在插入函数中利用指针,while循环和else/if语句来实现输入的数据按照插入相应的位置。2.1.5读取函数利用指针、链表打开已经储存的信息。voidRead()/*从文档读取*/charp128="file.txt"FILE*fp;if(fp=fopen("fi

9、le.txt","r")=NULL)printf("Openfile%serror!Strikeanykeytoexit!",p);system("pause");exit(0);SavePos=0;while(!feof(fp)fscanf(fp,"Name:%sn”,exampleSavePos.Name);fscanf(fp,"Sno:%dn",&exampleSavePos.Sno);fscanf(fp,"Score(DS)%lfn",&example

10、SavePos.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");SavePos+;fclose(fp);Display();2.1.6save()保存函数主要利用指针来把信息保存在文

11、件中。voidSave()/*保存到文档*/intj=0;constcharfname128="file.txt"FILE*fp;/openfilefp=fopen(fname,"w");/writeinfilefor(j=0;j<SavePos;j+)/fprintf(fp,"Thisisthefile.n")fprintf(fp,"Name:%sn”,examplej.Name);fprintf(fp,"Sno:%dn",examplej.Sno);fprintf(fp,"Score(

12、DS)%fn",examplej.dDataStruct);fprintf(fp,"Score(M)%fn",examplej.dMath);fprintf(fp,"Score(E)%fn",examplej.dEnglish);fprintf(fp,"Score(Average)%fn",examplej.dEnglish);fprintf(fp,"*n");/closefilefclose(fp);printf("保存成功n");2.2程序的算法设计输入信息<._q从文件读入

13、如开始输样据查询信息钏输入.2按*号查询7结束学生成绩管理系统修改信息整理信息1L1LJ插删学生信输出信息学生信息统功能模琪密学生信息息开um图2.2查询模块输出至屏幕输出至文件name3.3.1主函数intmain()(,程序即实现Yintchoicel=1,choice2;inti=1,s=1;doprintf("欢迎使用学生成绩管理系统n");printf("请选择程序功能n");printf("1、信息录入n");printf("2、信息查询n");printf("3、插入n");pri

14、ntf("4、排序n");printf("5、保存n");printf("6、删除n");printf("7、读取并显示n");printf("8、退出程序n");scanf("%d",&choice1);3.2定义数据结构用一个类的嵌套定义structstudent*next;用整型数据定义学号和成绩,用char定义姓名。typedefstructCStudentcharName32;intSno;doubledDataStruct;doubledMath;doub

15、ledEnglish;doubleaver;CStudent;CStudentexample1024;intSavePos=0;3.3函数说明链表定义头指针stu*s,switch/*学生姓名*/*学号*/*数据结构成绩*/*数学成绩*/*英语成绩*/*平均成绩*/函数中用了8个case。case1:Record(SavePos);break;/录入学生信息case2:Search_Name();Search_Sno();break;/查询学生信息case3:Insert_Score();break;/插入学生信息case4:Sort_Sno();Sort_Score();break;/学生信

16、息排序case5:Save()student(s);break;/保存学生信息case6:Delete_Sno();Delete_Name();break;/删除学生信息case7:Read()student(s);break;/读取学生信息case8:exit(0);break;/退出系统3.3文件录入功能voidRecord(intj)/*录入*/printf("信息录入n");printf("姓名:");scanf("%s",examplej.Name);printf("学号:");scanf("%

17、d",&examplej.Sno);printf("数据结构:");scanf("%lf",&examplej.dDataStruct);printf("数学:");scanf("%lf",&examplej.dMath);printf("英语:");scanf("%lf",&examplej.dEnglish);printf("平均成绩:");scanf("%lf",&examplej

18、.aver);3.4文件读取功能读取功能运用文件指针的方法,与While循环语句完成。voidRead()/*从文档读取*/charp128="file.txt"FILE*fp;if(fp=fopen("file.txt","r")=NULL)printf("Openfile%serror!Strikeanykeytoexit!",p);system("pause");exit(0);SavePos=0;while(!feof(fp)(fscanf(fp,"Name:%sn"

19、,exampleSavePos.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(Avera

20、ge)%lfn",&exampleSavePos.aver);fscanf(fp,"*n");SavePos+;fclose(fp);Display();3.5插入功能首先建立循环,检测插入的学号是否已存在,若存在则停止插入;若不存在,则继续进行输入学生信息。voidInsert_Score()(inti,j,m,flag;i=SavePos;do(flag=1;while(flag)(flag=0;printf("请输入第%d位:n",i+1);printf("请输入学号检验该生是否已经存在n");scanf(&q

21、uot;%d",&examplei.Sno);for(j=0;j<i;j+)if(examplei.Sno=examplej.Sno)printf("已存在该号,请检查重新录入!n");flag=1;break;/*重复立即退该层循环,提高判断速度*/Record(i);printf("录入完毕nn");Sort_Score();while(0);程序使用说明4.1主页面将写好的程序用MicrosoftVisualC+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-2图4-3-24.4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论