《C语言程序设计》课程设计报告书

上传人:daj****de 文档编号:174128369 上传时间:2022-12-14 格式:DOCX 页数:14 大小:140.38KB
收藏 版权申诉 举报 下载
《C语言程序设计》课程设计报告书_第1页
第1页 / 共14页
《C语言程序设计》课程设计报告书_第2页
第2页 / 共14页
《C语言程序设计》课程设计报告书_第3页
第3页 / 共14页
资源描述:

《《C语言程序设计》课程设计报告书》由会员分享,可在线阅读,更多相关《《C语言程序设计》课程设计报告书(14页珍藏版)》请在装配图网上搜索。

1、课程设计课程名称 C语言程序设计_题目名称学生成绩管理系统_学生学院专业班级.学 号学生姓名指导教师 20011 年 01 月 13 日一,总体设计此程序所能实现的功能模块: 功能一:根据键盘输入的学生信息,能够计算出平均值。 功能二:根据键盘输入的学生信息,能够按照平均分高低进行排序。 功能三:根据键盘输入的学生学号,能够显示该学生的各门成绩以及平均分。 功能四:能够按照学生学号对学生的成绩信息进行删除。 功能五:能够按照学生学号对学生的成绩信息进行修改。 功能六:能够按照平均分的高低插入一位学生的成绩信息。 功能七:能够将所输入的学生成绩信息储存在文件 Student.dat 中。 功能八

2、:能够提供一个界面来调用各个功能。二,详细设计模块一:实现排序功能设计函数 Sort流程图如下:通过 Sort 函数对 Student.dat 文件中的学生成绩信息实现排序功能。 程序运行时的主菜单:Kl Kl Kl Kl Kl Kl Kl Kl Kl Kl Kl Kl Kl Kl Kl Kl Kl Kl Kl Kl Kl Kl Kl Kl Kl Kl Kl Kl Kl Kl Kl Kl Kl Kl彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、a)1录入b)2排

3、序c)3显示d)4查询e)5插入f )6 修改g)7删除h)8退出Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki 彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、此时输入2,调用排序Sort函数。排序后的界面如下:E班别学号姓名e语言001m英语90-0B9-B 耽.尊平均分盍键继续.90.089.Q88.08

4、0.090.B87.01116 111S 111?1S0.088.689.0臥新建文衿实谱趕说讯D畐屈淳生成绥言慝兰遂垂宪曲至此,完成对Student.dat文件中的学生成绩信息实现排序功能。模块二:实现显示功能设计函数 Display 程序运行时的主菜单:Kl 彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、a) 1录入b) 2排序c) 3显示d) 4查询e) 5插入f) 6修改g)7删除h)8退出KiKi彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、

5、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、此时输入 3,在上面完成了成绩排序后,此处调用 Display 函数,显示排序后的 学生成绩列表。运行的结果:另TI学号姓名数学英语平均分2 130 0 0IBS Slilt11151117、二王小三服爼99.9S7.0or.a请按任意键继续.上備建文件夹谓程tg讯D4ug浮主战绩信慝笔誇歪匕亍e -请按任意键继绫rrr至此,完成显示功能。模块三:实现查询功能设计函数 Search 程序运行时的主菜单:Kl 彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、

6、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、a)1录入b)2排序c)3显示d)4查询e)5插入f)6修改g)7删除h)8退出KiKi彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、此时输入4,调用函数Search,然后按照提示输入所要查询的学生学号,运行 的结果:(此处查询学号为1115的学生为例)匚 W!氓XTM-KQK任口 1 I、I*ULJ 申子HJOXrmEl 三 *:SFDfe输人需

7、要查找学生的学号三1115埔虻LflllS瞬迂小一高婕幅-0 煜目予设#:89-0 人语= 96.0 平均分泅9 盹至此完成了查找学生成绩的功能。模块四:实现插入功能设计函数 Insert 流程图如下:程序设计如下int Insert(Student stud,int n) char x10;printf(学生班级:);scanf(%s,&studn.Class);printf(学生学号:);scanf(%d,&studn.Number);printf(学生姓名:);scanf(%s,&studn.Name);printf(学生高数成绩:);scanf(%f,&studn.Math);prin

8、tf(学生C程序设计成绩:);scanf(%f,&studn.C);printf(学生英语成绩:);scanf(%f,&studn.Eng);studn.ave=(studn.Math+studn.C+studn.Eng)/3;gets(x);n+;Sort(stu,n);printf(tt 插入成功! n);return(n);通过函数Insert进行按照平均分的高低插入一位学生的成绩信息的操作。 程序运行时的主菜单:彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、

9、彳、a)1录入b)2排序c)3显示d)4查询e)5插入f)6修改g)7删除h)8退出Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki 彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、此时选择5,调用Insert函数。此时按照提示依次输入需要插入学生的新班级, 新学号,新姓名以及新的各门成绩。运行的结果如下:眺别学

10、号姓名数学。语言英语平均分632 eei 删41116 111S ill?1118、二四169.9 es.a 8?.a 77.090.0S9.0&S.0?7-01 7 1 w W1-成功录;遨屛憎疫程意键继练.阴胡90087.078.090.089.088.Q?7-3至此完成了在原本的学生成绩记录中插入“王小四”同学的成绩信息。 模块五:实现修改功能设计函数 Change 程序设计如下:void Change(Student stud,int n) system(cls);int s;int i=0;printf(“输入需要修改成绩学生的学号:);scanf(%d,&s); while(stu

11、di.Number-s)!=0&in) i+;if(i=n) printf(tt 没有该学生的成绩 n);return;printf(tt该生的信息n);printf(班别t学号t姓名t数学tC语言t英语t平均分n); printf(n);studi-1.ave=(studi-1.Math+studi-1.C+studi-1.Eng)/3; printf(%st%dt%st% .1ft%.1ft%.1ft%.1fn,studi-1.Class, studi-1.Number,studi-1.Name,studi-1.Math,studi-1.C,studi-1.Eng, studi-1.ave

12、);printf(噺班级:);scanf(%s,&studi.Class);printf(噺学号:);scanf(%d,&studi.Number);printf(噺姓名:);scanf(%s,&studi.Name);printf(新数学成绩:);scanf(%f,&studi.Math);printf(新C程序设计成绩:);scanf(%f,&studi.C);printf(噺英语成绩:);scanf(%f,&studi.Eng); studi-1.ave=(studi-1.Math+studi-1.C+studi-1.Eng)/3;printf(该生的平均分为:fn,studi.ave)

13、;程序运行时的主菜单:a) 1录入b) 2排序c) 3显示d) 4查询e) 5插入f) 6修改g) 7删除h)8退出#J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J*此时选择6,调用函数Change,对Student.dat文件中已有的学生成绩信息进 行修改。然后按照提示输入需要修改成绩信息

14、的学生学号。通过提示继续分别输 入新班级,新学号,新姓名和新的各门成绩。运行结果如下:输入需要修改成绩学生的学号生的信息 班别 学号 姓名 数学 匚语言英语1117 王小三 晞0新班级訥飾4新学号-=1110新壅伶段计血责讨成功录履87-0平均分88.0意键继绿至此,完成了改程序的修改功能。模块六:实现删除功能设计函数 Delete程序设计如下:int Delete(Student stud,int n) int s;int i=0,j;printf(“输入需要删除学生的学号:); scanf(%d,&s);while(studi.Number-s)!=0&in) i+;if(i=n)prin

15、tf(tt 无法找到该学生 n); return(n);for(j=i;j 彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、a)1录入b)2排序c)3显示d)4查询e)5插入f)6修改g)7删除h)8退出Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki Ki

16、Ki 彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、此时选择7,调用函数Delete,对Student.dat文件中已有的学生成绩信息进行 删除。按照提示输入要删除的学生学号。运行的结果如下:输入需要删除学生的学号;输入需要删除学生的学号隸1個r 册意键继续-最后,调用一次Display函数,显示删除了学号为1110的学生后的运行结果:班别学号姓名数学c语百英语平均分”诫1116王/、二100.S58-083-0?0.B0011115三丿、一88_89-03-0

17、89.K酗g1117-;1=89-088_87-088.请兹任意犍继绑模块七:退出程序程序运行时的主菜单:#J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J*a)1录入b)2排序c)3显示d)4查询e)5插入f)6修改g)7删除h)8退出#J* #J* #J* #J* #J* #J* #J*

18、#J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* #J* 此时选择 8,则可以直接退出该程序。三, 设计描述 功能介绍,参数说明1,结构体struct Student char Class20;unsigned long Number;char Name10;float ave;float Math;float C;float Eng;2,成绩排序vo

19、id Sort(Student stud,int n)Student w;system(cls);int i,j,k;float s;char w20;for(i=0;in-1;i+)for(j=0;jn-1-i;j+)if(studj.avestudj+1.ave)w=studj;studj=studj+1;studj+1=w;班级,一维字符数组 学号,一维数组 姓名,一维字符数组 平均分,一维数组 高等数学,一维数组C 程序设计成绩,一维数组 大学英语成绩,一维数组对 Sort 进行函数声明进行一次清屏采用冒泡法进行排序利用中间变量w交换前后值printf(n);printf(”班别t学号

20、t姓名t数学tC语言t英语t平均分n);printf(n);for(i=1;in+1;i+)对 Search 函数进行声明 进行一次清屏输入学号对于出错操作给出出错提示显示该学号学生各门成绩对 Change 函数进行声明进行一次清屏输入学号对于出错操作给出出错提示studi-1.Number,studi-1.Name,studi-1.Math,studi-1.C,studi-1.Eng,studi-1.ave); 输出排序后的成绩列表 完成排序3,成绩查询void Search(Student stud,int n) system(cls);int s;int i=0;printf(“输入需要

21、查找学生的学号:);scanf(%d,&s);while(studi.Number-s)!=0&in) i+;if(i=n)printf(tt 无该学生的信息 n);return; d 11*X* *X* *X* *X* *X* *X* *X* *X* *X* *X* *X* *X* *X* *X* 1nnTiffi 不不不不不不不不不不不不不不不不不不不不不不不不不不不门 printfC 班级:sn,studi.Class); printfC 学号:dn,studi.Number); printfC 姓名:sn,studi.Name); printf(高数:.lfn,studi.Math);

22、 printf(C 程序设计:.1fn,studi.C); printfC 英语:.1fn,studi.Eng); printfC 平均分:.2fn,studi.ave);4,成绩修改void Change(Student stud, Int n) system(cls);int s;int i=0;printf(“输入需要修改成绩学生的学号:); scanf(%d, &s);while(studi.Number-s)!=0&in) i+; if(i=n) printf(tt 没有该学生的成绩 n);return;studi-1.Number,studi-1.Name,studi-1.Math

23、,studi-1.C,studi-1.Eng, studi-1.ave);printf(噺班级:);scanf(%s,&studi.Class);printf(噺学号:);scanf(%d,&studi.Number);printf(噺姓名:);scanf(%s,&studi.Name);printf(新数学成绩:);scanf(%f,&studi.Math);printf(新C程序设计成绩:);scanf(%f,&studi.C);printf(噺英语成绩:);scanf(%f,&studi.Eng);studi-1.ave=(studi-1.Math+studi-1.C+studi-1.E

24、ng)/3; 计算新平均分printf(该生的平均分为:fn,studi.ave);5,成绩删除int Delete(Student stud,int n)对 Delete 函数进行声明 int s;int i=0,j;printf(输入需要删除学生的学号:); scanf(%d,&s);while(studi.Number-s)!=0&in) i+; if(i=n)printf(tt 无法找到该学生 n); return(n);对于出错操作给出出错提示返回函数值for(j=i;jn-1;j+)strcpy(studj.Class,studj+1.Class); studj.Number=st

25、udj+1.Number; strcpy(studj.Name,studj+1.Name); studj.Math=studj+1.Math; studj.C=studj+1.C; studj.Eng=studj+1.Eng;删除后,返回函数值printf(tt 删除成功 n); return(n-1);四, 总结这次的课程设计中,自己所设计的程序可以实现要求中的大部分功能 如学生成绩的录入,排序,查询,插入以及修改和删除。但是仍然有一些 功能要求没有实现,比如说统计功能。很多次在进行读写文件时出错,都是因为自己没有注意文件的使用方 式,所以导致文件无法打开,经过一段时期的使用,对文件熟悉以后,自 己出错就少很多。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有 理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理 论中得出结论,才能提高自己的实际动手能力和独立思考的能力。在设计 的过程中遇到问题,第一次做的,所以遇到过各种各样的问题,同时在设 计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深 刻,掌握得不够牢固,比如说结构体,指针通过这次课程设计之后, 可以说是把前面所学过的知识又复习了一遍。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!