C语言课程设计实习报告_第1页
C语言课程设计实习报告_第2页
C语言课程设计实习报告_第3页
C语言课程设计实习报告_第4页
C语言课程设计实习报告_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、长江大学工程技术学院C语言课程设计实习报告 学生成绩管理系统学生姓名:潘志坤 学号:班类序号:14专业班级:应化61101指导老师:孟宪婷报告日期: 2012年06月24日学生成绩信息管理系统设计第一部分 课程设计的题目与要求1.问题的提出(1) 用记事本新建一个文本文件(3) 用主函数列一个主菜单并利用主菜单调用各个子菜单,通过各个函数来 实现以下功能:读取学生成绩基本信息;姓名查询;性别查询;计算总成绩;按姓名排序;按总成绩排序;添加;按姓名删除;按学号删除;实现修改功能;计算学生的加权平均分。2.功能要求1)实现查询显示功能:按姓名查询;按性别查询;显示全部信息,将满足查询条件的学生信息

2、显示在屏幕上。2)计算每位同学的总成绩,并重写在另一个文本文件中。3)实现排序功能:按姓名排序;按总成绩排序,将排序后的所以学生的信息显示在屏幕上。4)实现添加功能:录入新的学生信息数据。在录入新的学生信息前首先判断该学生的学号是否存在,如果不存在,则可进行数据录入并依次输入学生的相关信息;如果该学生的学号存在则提示不能进行添加操作。5)实现删除功能:按姓名删除按学号删除,先入学生的学号或姓名,若系统中有此学生的信息,则删除该学生的所有的信息;若无此学生的信息,则提示系统中无此学生信息。6)实现修改功能:先输入要修改的学生学号,如果该学生存在,则根据需要修改学生的相关信息;若该学生不存在,则提

3、示系统中无此学生信息。7)计算每个学生的加权平均分(英语的学分为5,数学的学分为4,C语言的学分为4.5,物理的学分为3)加权平均分的小数为保留两位。按加权平均分原始数据文件分成2个,分别为:加权平均分在分加权平均分在分以下的其中,这2个文件中的内容为:学号 姓名 英语数学C语言物理 总成绩 加权平均分 赵鹏 9878 72 65 刘季红 7882 71 67 第二部分 课程设计题目功能1.系统功能模块框图设计学生成绩信息数据读入进入界面 主菜单系统功能 排序查询和显示修改删除 添加总成绩计算学生总成绩1读取学生信息2按姓名查询3按姓名查询4按总成绩排序5按学生成绩排序6添加学生成绩信息7按姓

4、名删除8按学号删除按学生成绩修改2.数据结构说明struct stud /结构体名 char num10; /字符型结构体数组存放学号 char name10; /字符型结构体数组存放姓名 char sex4; /字符型结构体数组存放性别 char date10; /字符型结构体数组存放出生日期int English; /整型变量存放int m=7; /整型变量用于存放英语成绩 int i, j; /整型变量int math; /整型变量用于存放数学成绩int C /整型变量用于存放C语言成绩int wuli; /整型变量用于存放物理成绩本程序使用c语言作为编程工具,主要采用结构体数组进行临时

5、的数据储存,主要应用数组、文件作为数据存贮的方式。3.详细设计主要函数:void ReadFile() /在main函数中被调用,函数从YH0114.txt文件中读取读取学生成绩的信息。 void chaxun() /在main函数中被调用,函数按姓名查询。 void sex() /在main函数中被调用,函数按性别查询。 void zcj() /在main函数中被调用,函数计算各位同学的总成绩,并从写入另一个文本文件。 void paixuname() /在main函数中被调用,函数按姓名排序 void paixuzcj() /在main函数中被调用,函数按学生的总成绩排序 void tia

6、njia() /在main函数中被调用,函数会录入新学生的信息。 void shanchuxm() /在main函数中被调用,函数按姓名删除。 void shanchuxh() /在main函数中被调用,函数按学号删除。 void xiougai() /在main函数中被调用,函数修改学生的信息。 void Ave() /在main函数中被调用,函数计算学生的加权平均数。 main() /主函数模块功能说明:按物性名查询学生成绩信息的函数:void chaxun() /*按物性名查找学生成绩信息*/ if(strcmp(,stud)=0) /*用比较法判断该学生的姓名是否存

7、在*/ if(strcmp(studi.sex,stud)!=0) /*用比较法来判断该学生的性别是否存在*/void zcj() /*计算各位学生的总成绩*/FILE *fp;if(fp=fopen(zcj0114.txt, w) = NULL)printf(创建总成绩文件失败n);fprintf(fp,学号姓名性别 出生日期英语数学 C语言 物理总成绩n);for(i=0;i0)temp=stui;stui=stuj;stuj=temp;/*做完比较后交换void paixuzcj() /*按学生的总成绩排序*/if(sti.English+sti.math,sti.C+sti.wulis

8、tj.English+stj.math+stj.C+stj.wuli)temp=sti;sti=stj;stj=temp;/*把总成绩看成一个整体进行比较然后交换void tianjia() /*按学生的学号添加*/ for(i=0;iM;i+)if(!strcmp(str, studi.num)/*For-if比较输入的学号和源文件是否相同*/ voidshanchuxm() /*按姓名删除*/ FILE *fp; /*定义文件的指针变量名fp*/ if(!strcmp(str,)for(j=i;jM-1;j+)studj=studj+1;hasBook=1; /*比较源

9、文件和输入的姓名是否有相同的,如果有用它的后一组数据来覆盖,循环.fp=fopen(F:tjzj.txt,w); /*打开一个供写入得文件 */ fclose(fp); /*文件的关闭*/ void shanchuxh() /*按学生的学号删除*/ FILE *fp; /*定义文件的指针变量名fp*/int hasBook=0;for(i=0;iM+1;i+)if(!strcmp(str,)for(j=i;jM-1;j+)studj=studj+1;hasBook=1; /*比较后,如果是有后一个循环向前面覆盖*/if(!hasBook)printf(未找到学生学号n);g

10、oto num;if(fp=fopen(YH0114.txt, w) = NULL)printf(打开文件失败n);fprintf(fp, 学号姓名性别出生日期英语数学C语言物理总成绩n);for(i=0;iM-1;i+)fscanf(fp, %s%s%s%s%d%d%d%dn,studi.num,,studi.sex,studi.date,&studi.English,&studi.math,&studi.C,&studi.wuli); printf(%s%s%s%s%d%d%d%dn,studi.num,,studi.sex,studi.date ,

11、studi.English,studi.math,studi.C,studi.wuli); /*输出删除后的信息*/fclose(fp);/*关闭指针*/printf(修改成功!n); void xiougai() /*实现学生成绩信息修改功能*/printf(请输入学生学号:);scanf(%d, &n);if(n=M) /*判断学号是否存在printf(学号:);printf(学号:);scanf(%s,str);strcpy(studn-1.num,str);printf(姓名:);scanf(%s,str);strcpy(,str);studn-1.math=i

12、;printf(C语言:);scanf(%d,&i);studn-1.C=i;printf(物理:);scanf(%d,&i);*/*输入学生成绩的修改信息*/void Ave() /*计算学生的加权平均分*/ FILE *fp;/*定义文件的指针变量名fp*/if(fp=fopen(Ave0114.txt, w) = NULL)打开Ave.txt文件fprintf(fp,学号姓名性别 出生日期英语数学 C语言 物理总成绩Aven); /*将各标题录入Ave.txt中*/for(i=0;iM;i+) /*利用循环将每一位同学的成绩写进Ave.txt中*/4.调试与测试1. 用ReadFile(

13、)函数从YH0114.txt文件中读取学生成绩信息: 2.实现学生姓名查询3.实现学生性别查询4.计算各位学生的总成绩5.实现学生姓名的排序 7.实现添加功能8.实现学生的姓名删除9.实现学生学号删除的功能10实现学生的修改功能11.实现学生的加权平均分的查询第三部分 课程设计总结课程设计是培养学生综合运用所学的知识,发现、提出、分析和解决问题,锻炼实践能力的重要环节。在此次课程设计的过程中遇到了很多问题,可以说是困难重重,但这毕竟是第一次做,难免会遇到各种各样的问题,同时在设计的过程中发现了自己的很多不足之处,对前面学过的知识理解不够深刻,掌握的不够牢固,比如说 :结构体,查询,排序等,到后面写功能函数时就一下子蒙了,例如在查询时只能查询文件中存在的物品信息,却不能显示不存在的物品;在排序时,老师说如果调整一个物品那它的所有信息都要跟着换,在这个程序上纠结了好久,有把以前学过的知识重新复习了一遍,最后在老师的耐心讲解和同学的热情帮助下我还是顺利完成了此次的编程。2个星期的课设到此就要结束了,在此次课设编程中,我学习到了很多课本所学习不到的知识,明白了做一个小型软件的步骤和流程。还能够把以前所学过的知识运用到实践中,更好地掌握这些知识。同时也感受到了编程的乐趣,能够把自己的大脑中的想法变成一个实实在在的程序。在做课程

温馨提示

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

评论

0/150

提交评论