班级成绩管理系统.doc
《班级成绩管理系统.doc》由会员分享,可在线阅读,更多相关《班级成绩管理系统.doc(29页珍藏版)》请在咨信网上搜索。
1、课 程 设 计 报 告课程名称 C语言程序设计 课题名称 班级成绩管理系统 专 业 信息管理与信息系统 班 级 学 号 姓 名 指导教师 赵锦元、李峰、罗敬 2011 年 6 月 22 日湖南工程学院课 程 设 计 任 务 书课程名称 C语言程序设 课 题 班级成绩管理系统 专业班级 学生姓名 学 号 指导老师 赵锦元、李峰、罗敬 审 批 任务书下达日期 2011 年 6月4 日任务完成日期 2011 年 6 月 22 日一、设计内容与设计要求1.课程设计目的全面熟悉、掌握C语言基本知识,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若
2、干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为后继课程(数据结构和数据库等课程)的实验以及课程设计打下较扎实的基础。2.课题题目 班级成绩管理系统 班级档案管理系统 飞机订票系统 猜数字游戏 电子英汉词典设计 通讯录管理系统3.设计要求 (1)掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的中型问题,为将来开发软件积累一些典型的案例处理经验。具体要求如下:设计课题题目:每位同学根据自己学号除以6所得的余数加一选择相应题号的课题。原则上不予换提,私自换题者不记成绩。(2)根据自己对应的课题完成以下主要工
3、作:完成系统需求分析:包括系统设计目的与意义;系统功能需求;输入输出的要求。完成系统概要设计:程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模块的功能;课题涉及的数据结构和数据库结构;即要存储什么数据,这些数据是什么样的结构,它们之间有什么关系等。完成系统详细设计:包括采用C语言定义相关的数据类型;写出各模块的类C码算法;画出函数的调用关系图。调试分析、设计体会、测试数据:准备典型的测试数据和测试方案,包括正确的输入及输出结果和含有错误的输入及输出结果;程序调试中遇到的问题以及解决问题的方法;课程设计过程经验教训、心得体会。关键源程序(带注释) 按规定格式完成课程设计报告,将
4、其打印稿(A4纸)上交给老师存档。不得抄袭他人程序、课程设计报告,每个人应体现自己的个性设计。二、进度安排第 17 周 星期一 8时:00分11时:30分 星期二 8时:00分11时:30分 星期四 8时:00分11时:30分 星期五 8时:00分11时:30分第18周 星期一 8时:00分11时:30分 第18周 星期二 14时:30分18时:00分 目录1.系统需求分析11.1问题描述11.2功能需求11.3算法提示:11.4测试数据:21.5其它22.概要设计22.1程序的模块组成22.2各模块的功能23.详细设计33 .1采用C语言定义相关的数据类型332显示主界面的函数433成绩录入
5、函数534成绩显示函数53 .5成绩保存函数536成绩排序函数637成绩修改函数638成绩统计函数74.系统调试84.1函数关系调用图84.2 程序中出现的问题及解决方法95.运行结果105.1 主界面、成绩录入105.2成绩显示 、保存115.3成绩排序125.4成绩修改以及修改后保存135.5 成绩统计146.心得体会157.附录167.1源代码167.2参考文献228 评分表231.系统需求分析1.1问题描述 对一个有N个学生的班级,每个学生有M门课程。该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。1.2功能需求(1)本系统采用一个结构体数组,每个数据的结构应当包括:学
6、号、姓名、M门课程名称。(2)本系统显示这样的菜单:请选择系统功能项:a、 成绩录入b、 成绩显示c、 成绩保存d、 成绩排序e、 成绩修改(要求先输入密码)f、 成绩统计(1)显示每门课程成绩最高的学生的基本信息(2)显示每门课程的平均成绩(3)显示超过某门课程平均成绩的学生人数g、 退出系统(3)执行一个具体的功能之后,程序将重新显示菜单。 (4)将学生成绩保存到文件中。1.3算法提示:1、数据结构:结构体类型数组。2、数据库结构:下表构成该系统的基本数据库。姓名学号课程名称1课程名称2charCharfloat float1.4测试数据:学生人数N=10课程门数M=4课程名:数学、语文、
7、英语、政治1.5其它对该系统有兴趣的同学可以在实现上述基本功能后,完善系统的其它功能。2.概要设计2.1程序的模块组成整个系统除了主函数外,另外还有7个函数,实现七大功能:成绩录入功能、成绩显示功能、成绩保存功能、成绩排序功能、成绩修改功能、成绩统计功能、退出系统功能。 2.2各模块的功能 (1)主函数 main() 利用while()输出函数主界面和swithch()实现选择函数以及各函数的 调用,系统根据输入的数字选项来调用相应的函数。 a、主界面函数 利用while(xz)语句,只要输入的xz!=0,就会输出主界面。 b、菜单选择函数 用switch(XZ)开关语句,进入“功能选择”的界
8、面,在这个界面里有显 示系统的七大功能,当XZ=?时,根据每个功能前面的序号(XZ=)进行选择。等执行完每一个函数功能后,返回菜单。 (2)成绩录入函数(xxlr) void xxlr(struct student stu,int n) 实现对每个学生学号,姓名,四门课程的成绩,总成绩,平均成绩的录入。 (3)成绩显示函数(xxxs) void xxxs(struct student stu,int n) 实现对每个学生的学生信息的输出。 (4)成绩保存函数(xxbc) void xxbc(struct student stu,int n) 实现对输入的信息保存在cstudent.txt中,并
9、且能从中读取学生的信息。 (5)成绩排序函数(xxpx) void xxpx(struct student stu,int n) 实现对学生总成绩的从大到 小的排序。(6)成绩修改函数(xxxg) void xxxg(struct student stu,int n) 实现对几个学生信息修改,再次选择xz=3,4可将修改的程序重新保存。(7) 成绩统计函数(xxtj) void xxtj(struct student stu,int n) 实现以下三个分功能: a、 每门课程成绩最高的学生信息;b、 每门课程的平均成绩;c、 显示超过某门课程平均成绩的人数。 (8)退出系统函数 用if语句表示
10、 if(xz=0) break;即选择0时就表示退出系统了。3.详细设计3 .1采用C语言定义相关的数据类型 对要输入的学生信息采用结构体数组的形式,这样既方便又明了,而且也使我自己对这种方式的表达更加熟悉。 Struct student /结构体数组关于学生的信息 char num11; char name10; float score4; float total; float aver; stu11; 本程序对要定义的学生信息中不同的信息采用了不同的数据类型,例如:在对学生的学号和名称用字符型(char num11; char name10;),在对学生的四门成绩,总成绩和平均成绩采用浮点
11、型(float score4; float total; float aver;)。并且对后文程序中要定义的采用了相对应的类型(int i,j;)。32显示主界面的函数用while()语句实现,如: while(1) printf(*学生成绩管理系统*n); printf(=n); printf( 1.学生成绩录入 n); printf( 2.学生成绩显示 n); printf( 3.学生成绩保存 n); printf( 4.学生成绩排序 n); printf( 5.学生成绩修改 n); printf( 6.学生成绩统计 n); printf( 0.结束程序 n); printf(=n); p
12、rintf(choose 1,2,3,4,5,6,0: n);只要括号中的数不为0,就输出主界面。33成绩录入函数 int i; for(i=0;in;i+) printf(输入学号 姓名:n); scanf(%s%s,stui.num,stui.name); printf(n数学成绩,语文成绩,英语成绩,政治成绩n);scanf(%f,%f,%f,%f,&stui.score0,&stui.score1,&stui.score2,&stui.score3); 利用循环语句,分别对每个学生的信息进行录入34成绩显示函数 int i; printf(n学生信息:学号 姓名 数学成绩 语文成绩 英
13、语成绩 政治成绩 总成绩 平均成绩n); for(i=0;in;i+) printf(n%s,%s,%f,%f,%f,%f,%f,%fn,stui.num,stui.name,stui.score0,stui.score1,stui.score2,stui.score3,stui.total,stui.aver); printf(n);和3.3一样,只是让成绩整体输出,在屏幕上显现出来而已。3 .5成绩保存函数 fp=fopen(c:student.txt,w);先定义一个文件fp,把要输入的信息保存在c:student.txt中。 for(i=0;in;i+) fprintf(fp, n%s
14、,%s,%f,%f,%f,%f,%f,%fn,stui.num,stui.name,stui.score0,stui.score1,stui.score2,stui.score3,stui.total,stui.aver); fclose(fp); 用fprintf语句使信息输入到文件中,并保存。 fp=fopen(c:student.txt,r); for(i=0;in;i+) fscanf(fp, n%,%,%f,%f,%f,%f,%f,%fn,stui.num,stui.name,stui.score0,stui.score1,stui.score2,stui.score3,stui.t
15、otal,stui.aver);再次用只读的形式打开文件,在fscanf语句后再用printf输出学生信息。36成绩排序函数struct student t; /定义结构体变量,用于下面的交换for(i=0;in-1;i+) /第i个学生 for(j=i+1;jstui.total) t=stuj; stuj=stui; stui=t; 用选择法的方式将总成绩最高的学生放在最前面,实现从大到小的排序。37成绩修改函数 首先对密码的设置,用语句if(strcmp(pass,password)=0),如果正确就进行下步操作。输入要修改的学生学号,gets(no); 再次进行stui.num 和no
16、的比较if(strcmp(stui.num,no)=0),就对此学生的成绩进行修改,并输出。38成绩统计函数此函数对三个进行统计:(1) for(j=0;j4;j+) max=stu0.scorej; /先赋初值 k=0; / k表示第k +1个学生 for(i=0;imax) max=stui.scorej; k=i; 这样就得到了每门课成绩最高分的学生,然后在输出他的全部信息。(2)for(j=0;j4;j+) sum=0; for(i=0;in;i+) sum=sum+stui.scorej; aver_courj=sum/n; printf(第%d门课,课程的平均成绩为%fn,j+1,
17、aver_courj); 对每门课程求取平均分。(3)for(j=0;j4;j+) k=0; /k表示超过某门课平均成绩的人数 for(i=0;iaver_courj) k+; printf(第%d门课有%d个同学超过平均分n,j+1,k); 实现了计算超过某门课平均成绩的人数。 总之,在一个函数中,用三个循环语句就实现了所要求的。4.系统调试4.1函数关系调用图 开始main函数 0、退出系统xxtc 1、成绩录入函数 xxlr 2、成绩显示函数xxxs 3、成绩保存函数xxbc 4、成绩排序函数xxpx 5、成绩修改函数xxxg 6、成绩统计函数xxtj结束4.2 程序中出现的问题及解决方
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 班级 成绩管理系统
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。