C语言程序设计学生成绩管理系统课程设计报告_第1页
C语言程序设计学生成绩管理系统课程设计报告_第2页
C语言程序设计学生成绩管理系统课程设计报告_第3页
C语言程序设计学生成绩管理系统课程设计报告_第4页
C语言程序设计学生成绩管理系统课程设计报告_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

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每 条记录包括 个学生的学号、姓名、3门成绩、平均成 绩。2、输入功能:进入后可以进行多条记录的输入并保存。3、显示功能:完成全部 学生或满足指定条件记录的显示。4、查找功能:完成按 学号或姓名查找 学生记录,并显示。5、排序功能:按 学生学号或平均成绩进行排序。6、插入功能:按 学生学号或平均成绩高低插入一条学生

3、记录。7、保存功能.将学生记录保存在自疋乂名称的文件中。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 .本表应在每次实施刖周由 系办备案,一份由负责教师留用 说.若填写内容较多可另纸附后 3. 一题多名学生共享的,在设计 别。负责教帅填写二份,院糸审批后交院冃。、。十内容、参数、要求等方面应有所区摘要学生成绩管理系统是为了实现学校对学生成绩管理的系统化、规范化和自动化,从 而提高学校管理效率而设计的。它完全取代了原来一直用人工管理的工作方式,避免了 由于管理人员的工作疏忽以及管理质量问题所造成的各种错误,为及时、准确、高效的 完成学生成绩管理提供了强有力的工具和管理手段。学生成绩管理系统是一个中小型数 据库管理系统,它界面美观、操作简单、安全性高,基本满足了学生成绩管理的要

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 参考文献 191.软件需求说明1.1 程序的界面要求 整个系

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

7、定义名称的文件中。 读取功能:将保存在文件中的学生记录读取出来。 有一个文本菜单来调用各个功能。1.系统分析与设计2.1 程序的数据(结构)分析2.1.1 定义结构体本程序需要定义多个结构体,用于存放学生的相关信息typedef struct CStudent/* 学生姓名 */* 学号 */ 数据结构成绩 */ 数学成绩 */char Name32;int Sno;double dDataStruct; /*double dMath; /*double dEnglish; /* 英语成绩 */double aver; /* 平均成绩 */CStudent;2.1. 2 main ()主函数主

8、函数功能比较简单,用 while 循环语句和 switch 多重选择语句来显示主界面和 调用函数。在主函数的前面要写必须的头文件,预定义语句以及全局变量的结构体。2.1.3 del( ) 删除函数在C语言中无法做到删除和移动数据,所以删除记录要先将所有记录从文件中读出, 删除后再将记录写回文件中。 每读出一条记录, 按其在文件中的顺序做好指针链接关系, 然后查处要删除的学生信息, 将其在链表中删除, 最后再将变动的记录重新写回文件中。 用指针, else/if 结构来实现查找出要删除的学生。2.1.4 insert( ) 插入函数在插入函数中利用指针, while 循环和 else/if 语句

9、来实现输入的数据按照插入相 应的位置。2.1.5 读取函数利用指针、链表打开已经储存的信息。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,

10、"Name:%sn",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) ;f

11、scanf(fp,"Score(Average)%lfn",&exampleSavePos.aver) ;fscanf(fp,H*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;

12、j<SavePos;j+) /fprintf(fp,"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"

13、;,examplej.dEnglish) ;fprintf(fp,"Score(Average)%fn",examplej.dEnglish) ;fprintf(fp,H*n");/close filefclose(fp);printf("保存成功 n");2.2程序的算法设计输入信息LJ查询信息IJf1修改信息X-J学生成绩管理系统插整理信息从 文 件 读 入.2从 键 盘 喻输入数据幵始喻删统功能模块图学生 信'息/图2.2输入模块7结束图2.2查询模块输出信息输输出出至至屏文幕输入name该学号 "已存在、幵始 入学Y2

14、.3.1主函数int mai n()程序的实现int choice1 = 1,choice2;int i = 1,s = 1;doprintf("欢迎使用学生成绩管理系统 n");printf("请选择程序功能 n");printf("1、信息录入 n");printf("2、信息查询 n");printf("3、插入 n");printf("4、排序n");printf("5、保存 n");printf("6、删除 n");print

15、f("7、读取并显示 n");printf("8、退出程序 n");scanf("%d",&choice1);2.2 定义数据结构用一个类的嵌套定义 struct student *next ;用整型数据定义学号和成绩,用 char 定义姓名。typedef struct CStudentchar Name32;/* 学生姓名 */int Sno;/* 学号 */double dDataStruct;/*数据结构成绩 */double dMath;/*数学成绩 */double dEnglish;/*英语成绩 */double

16、 aver;/* 平均成绩 */CStudent;CStudent example1024;int SavePos = 0;3.3 函数说明链表定义头指针 stu *s ,switch 函数中用了8个 case。case 1:Record(SavePos);break; / 录入学生信息case 2:Search_Name( );Search_Sno ();break;/查询学生信息case 3:Insert_Score();break;/插入学生信息case 5:Save( ) student(s);break;/保存学生信息case 6:Delete_Sno( ); Delete_Name

17、( ) ; break;/ 删除学生信息case 7:Read( )student(s);break;/ 读取学生信息case 8:exit(0);break;/ 退出系统case4: Sort_Sno( ) ;Sort_Score( );break;/学生信息排序2.3 文件录入功能录入 */void Record(int j) /*printf(" 信息录入 n");printf(" 姓名: ");scanf("%s",examplej.Name); printf(" 学号: ");scanf("%d

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

19、,&examplej.aver);2.4 文件读取功能 读取功能运用文件指针的方法,与 While 循环语句完成 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(!f

20、eof(fp) fscanf(fp,"Name:%sn",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",&exampleSa

21、vePos.dEnglish) ; fscanf(fp,"Score(Average)%lfn",&exampleSavePos.aver) ;*n");fscanf(fp,SavePos+;fclose(fp);Display();2.5 插入功能首先建立循环,检测插入的学号是否已存在,若存在则停止插入;若不存在, 则继续进行输入学生信息。void Insert_Score()int i , j, m, flag;i = SavePos;doflag=1; while(flag) flag = 0;printf(”请输入第 %d 位:n",i+

22、1);printf(”请输入学号检验该生是否已经存在n");sea nf("%d",&examplei.S no);for(j=0;j<i;j+)if(examplei.S no = examplej.S no)printf("已存在该号,请检查重新录入!n");flag=1;break; /*重复立即退该层循环,提高判断速度*/Record(i);printf("录入完毕 nn");Sort_Score();while(0);3.程序使用说明4.1主页面将写好的程序用 Microsoft Visual C+6.0打开并运行,首先出现的是主页面,如图4-1 所示。图4-13.2录入信息页面输入数字1,按提示进行学生成绩的录入,并按数字5保存信息。继续录入按数字9,结束录入按数字0。如图4-2图4-23.3信息查询页面返回主页面,按数字2,进行学生信息查询,分为按学号查询和姓名查询。如 图 4-3-1。图 4-3-1按数字1与按数字2查询结果页面如图4-3-2所示。图 4-3-2图 4-3-23.

温馨提示

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

评论

0/150

提交评论