c语言 课程设计报告学生成绩管理系统.doc
《c语言 课程设计报告学生成绩管理系统.doc》由会员分享,可在线阅读,更多相关《c语言 课程设计报告学生成绩管理系统.doc(24页珍藏版)》请在沃文网上搜索。
1、目 录第一章 菜单设计11.1 设计题目及要求11,2 设计思路21.3流程图21.4具体实现21.5 程序运行截图5第二章 使用数组和指针统计成绩62.1 设计题目及要求62.2 设计要求62.3 设计思路72.4 流程图72.5 具体实现72.6 程序运行截图8第三章 学生成绩管理系统93.1 设计题目及要求93.2 设计思路113.3流程图123.4 具体实现123.5 程序运行截图20小 结23参考文献24第一章 菜单设计1.1 设计题目及要求一菜单内容:程序运行后,给出5个菜单项的内容和输入提示:1 FindNum2 FindRoot3 Bear4 Diamond5 Goodbye二
2、、设计要求使用数字1-5来选择菜单项,其它输入则不起作用。三、设计实例:首先编写一个菜单程序,输入1-6以进入相应选择项,从程序测试结构可知,当选择相应选择项时候,其输出信息为:FindNum、FindRoot、Bear、Diamond、Goodbye!l 使用switch语句实现功能选择l 应该设计一个函数用来输出提示信息和处理输入,这个函数应该返回一个数值,以便提供给switch语句使用四、增加菜单项的处理功能l FindNum功能:一只老鼠咬坏了账本,公式中符号()代表是被老鼠咬掉的地方。要想恢复下面的等式,应在()中填上哪个相同的数字l FindRoot这里要求编制一个求方程ax2+b
3、x+c=0的根程序l Bear本题是一个笑话,话说有一只狗熊到玉米地里掰玉米,一边掰一边吃,第一天吃了一半,又拿走了一个回去喂狗熊。第二天又去吃了剩下的一半,走时仍然带一个回去喂狗熊。以后每天都吃前一天的一半,拿走一个。到第十天时,地里只剩下一个玉米。求地里一共有多少玉米l Diamondl Goodbye!1,2 设计思路由题目可以知道,可以设置一下几个模块:首先选择菜单程序模块, FindNum题目模块 , FindRoot题目模块, , Bear题目模块 , Diamond题目模块 .使用调用函数来完成第二个模块设计,例如:void FindNum(),void FindRoot()等函
4、数调用来对题目编写完成。该次设计的程序使用switch语句,printf语句输出菜单,主要是通过调用函数来完成相应菜单程序的编写查看。 1.3流程图 1.4具体实现#include#includevoid FindNum();void FindRoot();void Bear();void Diamond();void Goodbye();void ShowMenu()int n;printf(Input a number from 1-3:n1 FindNnm;n2 FindRoot ;n3 Bear;n4Diamond;n5 Goodbyen);scanf(%d,&n);switch(n)
5、case 1:FindNum(); break;case 2: FindRoot (); break;case 3: Bear (); break;case 4: Diamond(); break;case 5: Goodbye(); break;default: printf(Error! Input again!);ShowMenu();/老鼠啃账本void FindNum()int i;printf(3623733564n);for(i=1;i10;i+)if(30+i)*6237=(10*i+3)*3564)printf(3%d6237%d33564n,i,i);ShowMenu();
6、/求根void FindRoot() float a,b,c;float delta; printf(求一个二元方程ax2+bx+c=0的根的问题); printf(input a, b, c:); scanf(%f%f%f, &a, &b, &c); delta = (b*b - 4*a*c); /*b2 - 4ac*/ if (delta 0) printf(no fact root.n); else if (delta 0 , have 2 root.*/ printf(root1 = %0.2f, root2 = %0.2fn, -1*b + sqrt(delta)/ (2*a), -
7、1*b - sqrt(delta)/(2*a); ShowMenu();/狗熊吃玉米void Bear() int day, x1, x2; printf(狗熊到玉米地吃了包谷); printf(第一天吃了一半又拿走一个回去喂小狗熊。n); printf(第二天又去吃了剩下的一半,走是任然带一个回去。/n); printf(以后每天都吃前一天剩下的一半,拿走一个。/n); printf(到了第十天时,地里只剩下一个包谷。求地里一共有多少包谷。/n); day=10; x2=1;while (day0) x1=(x2+1)*2; x2=x1; day-; printf(包谷总数=%dn,x1);
8、ShowMenu(); /钻石void Diamond()int i,j,k;for(i=0;i7;i+)if(i4)for(j=0;j15-i;j+)printf( );for(k=0;k2*i+1;k+)printf(*);elsefor(j=0;ji+9;j+)printf( );for(k=0;k13-2*i;k+)printf(*);printf(n); ShowMenu();void Goodbye()printf(Goodbye!n);void main()ShowMenu();1.5 程序运行截图第二章 使用数组和指针统计成绩2.1 设计题目及要求l 设计题目:假设给定班级各科
9、考试平均成绩的原始资料如下:数学:75 物理:80 外语:83 政治:85 体育:86 人数:30l 要求统计出全班学期总平均成绩以及得分最低的科目和该科目的成绩。要求的输出结果如下:原始信息如下:数学:75 物理:80 外语:83 政治:85 体育:86 人数:30平均成绩:0 最低分数科目的成绩:0 最低分数的科目:全班各科平均成绩如下:数学:75 物理:80 外语:83 政治:85 体育:86 人数:30统计结果如下:人数:30平均成绩:81最低分数科目的成绩:75最低分数的科目:数学2.2 设计要求l 实现本设计功能的方法很多,这里给出4种难易成度不同的要求,以便加深对数组和指针知识的
10、理解。对存放原始数据的要求如下:l 使用整形数组a存放数学、物理、外语、政治、体育、人数、平均成绩、最低分科目的成绩l 使用字符串数组name存放数学、物理、外语、政治、体育、最低分数的科目l 使用字符串数组MeanLow存放人数、平均成绩、最低分数科目的成绩、最低分数的科目。l 使用字符指针指向字符数组(这个题目的要求超出一般的教材,但对理解指针很有用途。) 2.3 设计思路将数组a的内容存入到分配的内存中,使用指针实现对内存内容的存取和计算。为字符分配内存,并将字符数组的内容也存入所分配的内存中,使用这些指针实现设计要求。2.4 流程图2.5 具体实现#includeint main()i
11、nt average,i,sum,min;int a6=75,80,83,85,86,30;char p6=数学,物理,外语,政治,体育,人数;char m3= 总平均成绩” ,最低分数科目的成绩”, 最低分数科目”;printf(原始数据n);for(i=0;i8;i+)printf(%c,%fn,pi,ai);printf(m0:n);printf(m1:n);printf(m2:nn);printf(全班各科平均成绩如下:n);for(i=0;i8;i+)printf(%c,%fn,pi,ai);printf(统计结果如下:n);printf(p5:%dn,a5);for(i=0;i5;
12、i+)sum+=ai;average=sum/5;printf(m0:%dn,average);for(i=1;i5;i+)if(a0ai)min=a0;elsemin=ai;printf(m1:%dn,min);printf(m2:%sn,数学);return 0; 2.6 程序运行截图第三章 学生成绩管理系统3.1 设计题目及要求设计要求1. 功能设计要求设计要求实现的功能较多,所以将它们分为几个部分叙述。建立文件l 可以使用默认文件名或指定文件名将记录存储到文件;l 文件保存成功返回0,失败返回-1;l 设置保存标志savedTag作为是否对记录进行存储操作的信息;l 写同名文件将覆盖原
13、来文件的内容;增加学生记录l 可在已有记录后面追加新的记录l 可以随时用它增加新的记录,它们仅保存在结构数组中;l 可以将一个文件读入,追加在已有记录之后;l 如果已经采取文件追加的方式,在没有保存到文件之前,将继续保持文件追加状态,以便实现连续文件追加操作方式;l 如果没有记录存在,给出提示信息。显示记录l 如果没有记录可供显示,给出提示信息;l 可以随时显示内存中的记录文件存储l 可以按默认名字或指定名字存储记录文件;l 存储成功返回0.,否则返回-1;l 更新存储标志;读取文件l 可以按照默认名字或指定名字将记录文件读入内存;l 读取成功返回0,否则返回-1;l 可以将指定或默认文件追加
14、到现有记录并更新记录的尾部;l 可以将文件连续追加到现有记录并更新记录的名词;l 更新存储标志;删除记录l 可以按“学好”、“姓名”、“名词”方式删除记录;l 给出将删除记录的信息,经确认后在删除;l 如果已经是空表,删除时给出提示信息并返回菜单;l 如果没有要删除的信息,输出没有找到的信息;l 应该更新其他记录的名词;l 删除操作权限于内存,只有执行存记录时,才能覆盖原记录;修改记录l 可以按“学号”、“姓名”、“名次”方式修改记录内容;l 给出将修改记录的信息,经确认后进行修改;l 如果已经是空表,应给出提示信息并返回主菜单;l 如果没有找到需要要改的信息,输出提示信息;l 应该同时更新其
15、他记录的名词;l 修改操作权限于内存,只有进行存储操作时,才能覆盖原记录;l 更新存储标志;查询记录l 可以按“学号”、“姓名”、“名次”方式修改记录内容;l 能给出查询记录的信息;l 如果查询的信息不存在,输出提示信息;对记录进行排序l 可以按学好进行升序或降序排序;l 可以按名称进行升序和降序排序;l 可以按名词进行升序或降序排序;l 如果属于选择错误,可以立即退出排序;l 更新存储标志;头文件l 使用条件编译定义头文件;l 函数原型声明;l 数据结构及包含文件;测试程序l 应列出测试大纲对程序进行测试;l 应保证测试用例测试到程序的各种边缘情况;l 以上是基本要求,希望通过对本章设计的理
16、解,重新考虑如何进行设计。2. 总体设计最初的整体规划只是说明它们的可行性,不要求制定函数的具体实现,甚至不需要考虑函数原型。完成整体规划后,可以按照流程描述各个模块之间的接口功能。本课程设计对模块设计的要求如下:l 要求使用对文件方式实现设计;l 要求在各个文件内实现结构化设计;l 每个模块作为一个单独的C文件,每个文件内的函数如表121所示,表中给出了各个函数的功能说明;l 宏和数据结构等放在头文件中,并使用条件编译。3.2 设计思路(1) 主函数: 主函数 main,功能: 通过调用 creat, search, del, add, print, ststistics, save, ta
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c语言 课程设计报告 学生成绩管理系统 语言 课程设计 报告 学生 成绩管理系统
