C语言课程设计报告(分数统计)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

东华理工大学机械与电子工程学院课程设计报告课程名称C语言课程设计题目学生试卷分数统计专业班级自动化二班学号20131321502学生姓名章洪高指导教师黄河2014年09月24日东华理工大学机械与电子工程学院课程设计任务书课程名称:C语言课程设计设计题目:学生试卷分数统计专业:自动化班级:二班完成时间:2014-09-24指导教师:黄河专业负责人:罗金牛主要内容作为教师,考试完成后需要对试卷进行分析和研究。本课程设计要求用C语言编写程序完成以下功能:1.从键盘输入若干名(=20人)学生的平时成绩和期末成绩2.输入完毕后,显示所有学生的学号、平时成绩和期末成绩,并将成绩保存在文件analysis.dat中。3.读文件analysis.dat,根据文件中保存成绩的分布情况画出直方图,并显示在屏幕上。4.计算总评成绩、平时成绩和期末成绩的平均分和标准差。5.计算完毕后,在屏幕上显示总评成绩,平时成绩和期末成绩的平均分和标准差。基本要求按照课程设计任务的要求,对题目进行需求分析、概要设计和详细设计,并用C进行编码实现,最后形成一份内容充实、条理清晰、分析严谨、结果正确、格式规范的课程设计报告。提交内容:1.程序代码(必须有注释)2.课程设计报告3.文件analysis.dat参考资料[1]谭浩强.C程序设计(第四版):清华大学出版社.[2]谭浩强.C程序设计(第四版)学习辅导:清华大学出版社【软件课程设计报告目录】1、需求分析说明程序设计的任务,强调的是程序要做什么,明确规定:(1)输入的形式和输入值的范围;(2)输出的形式;(3)程序所能达到的功能;(4)测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。2、概要设计说明本程序中用到的所有抽象数据类型的定义、主程序的流程以及各程序模块之间的层次(调用)关系。3、详细设计实现概要设计中定义的所有数据类型,对每个操作只需要写出伪码算法;对主程序和其他模块也都需要写出伪码算法;画出函数的调用关系。4、使用说明、测试分析及结果(1)说明如何使用你编写的程序;(2)测试结果与分析;(3)调试过程中遇到的问题是如何解决提以及对设计与实现的回顾讨论和分析;(4)运行界面。5、课程设计总结(设计心得)(1)你在编程过程中用时多少?多少时间在纸上设计?多少时间上机输入和调试?多少时间在思考问题?(2)遇到了哪些难题?你是怎么克服的?(3)你对算法有什么改正想法吗?(4)你的收获有哪些?参考文献1.课程设计目的全面熟悉、掌握C语言基本知识,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为后继课程(数据结构、数据库和汇编语言等课程)的实验以及课程设计打下较扎实的基础。2.需求分析1.1从键盘输入若干名(=20人)学生的平时成绩和期末成绩。输入完毕后,成绩保存在文件analysis.dat中。1.1.1程序能够对用户的错误输入给出提示。1.1.2用户不需要先输入学生人数,在输入完成任意一个学生的所有信息后用户可以方便的结束输入,程序会自动的计算出学生人数。1.1.3用户能设定学生的平时成绩的次数(即学生课程数),以便于用户每次使用本程序时即使学生的平时成绩次数不一样,用户也能方便的使用本程序。1.1.4用户可以设定进入本程序的密码,以防止其他人进入程序修改其信息。当用户忘记密码时,用户也可以回答密保问题来找回密码。1.2读文件analysis.dat,显示所有学生的学号、平时成绩和期末成绩,并将根据文件中保存成绩的分布情况画出直方图,并显示在屏幕上。1.2.1当用户发现某个学生的成绩输入出了错时,用户可以直接修改此学生的成绩。1.2.2当用户发现还有部分学生的成绩忘记了输入时,也可以继续添加输入。1.2.3用户也可以删除某个学生。1.3计算总评成绩、平时成绩和期末成绩的平均分和标准差。1.4计算完毕后,在屏幕上显示总评成绩,平时成绩和期末成绩的平均分和标准差。1.4.1用户可以选择输出总评成绩在前N名的优秀学生。1.5用户可以建立多个文件来存储多个班级的学生成绩,在程序刚进入时用户可以选择打开相应班级的文件,并操作。1.5.1用户在新建文件时,要输入学生的学号、姓名、成绩等内容(即程序不允许建立空文件)。1.5.2程序也允许用户要删除文件。1.6为了用户能更的使用本程序,在程序中用户可以查看帮助文档。3.概要设计2.1本程序中用到的抽象数据类型的定义如下:typedefstructstudent{charnum[15];//学号charname[15];//姓名floatscore[10];//平时成绩floatSCORE;//总评成绩}STU;2.2主程序的流程如图1.1开始输出:欢迎使用本程序读程序系统文件输入菜单选择调用新建文件函数调用打开文件的函数调用设置密码函数输出帮助文档退出程序12345结束是否设置过密码否输入密码密码正确?是是输出:密码错误是否找回密码?否否输入密保问题的答案回答正确?输出密码是是否图1.1,main函数的流程2.3各程序模块之间的层次(调用)关系如图1.2所示Accept_data()输入学生成绩并存储在文件中New()建立文件Show_data()读文件并输出学生成绩和相关数据Draw()画直方图并输出Add_data()增加学生Delete_data()删除学生主函数New_file()新建文件函数Open_file()打开文件函数Password()设置密码函数Help()打开帮助文档的函数Good_nstu()输出前n个优秀学生Updata()修改学生成绩图1.2,各程序模块之间的调用4.详细设计4.1程序开始预编译部分如下:#includestdio.h#includestring.h#includestdlib.h#includemath.htypedefstructstudent{charnum[15];//学号charname[15];//姓名floatscore[10];//平时成绩floatSCORE;//总评成绩}STU;intFile_n;//学生成绩管理文件的个数4.2对menu_1()函数的设计如下://菜单1voidmenu_1(){system(modeconcols=100lines=25);//窗口宽度system(color0B);//窗口颜色system(date/T);//显示日期system(TIME/T);//显示时间charpassword[7];intflag;FILE*fp;//文件指针if((fp=fopen(系统文件.txt,r))==NULL){printf(系统文件不存在!\n);exit(0);}fscanf(fp,%d%s%d,&flag,password,&File_n);fclose(fp);printf(\t\t\t您的当前位置:学生成绩管理\n\n);printf(\t\t\t\t╪╪╪╪╪╪╧╧╧╧╧╧╧╧╧╪╪╪╪╪╪\n);printf(\t\t\t\t╔════╧╧学生成绩管理╧╧════╗\n);printf(\t\t\t\t║║\n);printf(\t\t\t\t║※1.新建一个学生成绩管理文件║\n);printf(\t\t\t\t║║\n);printf(\t\t\t\t║※2.打开已有的学生成绩管理文件(%3d)║\n,File_n);printf(\t\t\t\t║║\n);printf(\t\t\t\t║※3.设置密码║\n);printf(\t\t\t\t║║\n);printf(\t\t\t\t║※4.打开帮助文档║\n);printf(\t\t\t\t║║\n);printf(\t\t\t\t║※5.退出系统║\n);printf(\t\t\t\t╚═══════════════════╝\n);}4.3对menu_2()函数的设计如下//菜单2voidmenu_2(){system(modeconcols=100lines=1000);//窗口宽度system(color0E);//窗口颜色system(date/T);//显示日期system(TIME/T);//显示时间printf(\t\t\t您的当前位置:学生成绩管理-新建一个学生成绩管理文件\n\n);printf(\t\t\t\t╪╪╪╪╪╪╧╧╧╧╧╧╧╧╧╪╪╪╪╪╪╪╪╪╪\n);printf(\t\t\t\t╔═══╧╧新建一个学生成绩管理文件╧╧═══╗\n);printf(\t\t\t\t║║\n);printf(\t\t\t\t║※1.输出刚才新建的文件和学生的总体成绩║\n);printf(\t\t\t\t║║\n);printf(\t\t\t\t║※2.输出成绩的直方图║\n);printf(\t\t\t\t║║\n);printf(\t\t\t\t║※3.输出总评成绩排在前n名的学生║\n);printf(\t\t\t\t║║\n);printf(\t\t\t\t║※4.清屏║\n);printf(\t\t\t\t║║\n);printf(\t\t\t\t║※5.返回上一级║\n);printf(\t\t\t\t║║\n);printf(\t\t\t\t║※6.退出系统║\n);printf(\t\t\t\t╚═══════════════════════╝\n);}4.4对menu_3()函数的设计如下//菜单voidmenu_3(){system(modeconcols=100lines=1000);//窗口宽度system(color0E);//窗口颜色system(date/T);//显示日期system(TIME/T);//显示时间printf(\t\t\t您的当前位置:学生成绩管理-打开已有的学生成绩管理文件\n\n);printf(\t\t\t\t╪╪╪╪╪╪╧╧╧╧╧╧╧╧╧╪╪╪╪╪╪╪╪╪╪╪\n);printf(\t\t\t\t╔═══╧╧打开已有的学生成绩管理文件╧╧═══╗\n);printf(\t\t\t\t║║\n);printf(\t\t\t\t║※1.输出此文件和学生的总体成绩║\n);printf(\t\t\t\t║║\n);printf(\t\t\t\t║※2.输出此文件的学生成绩的直方图║\n);printf(\t\t\t\t║║\n);printf(\t\t\t\t║※3.输出此文件总评成绩排在前n名的学生║\n);printf(\t\t\t\t║║\n);printf(\t\t\t\t║※4.向此文件里增加学生║\n);printf(\t\t\t\t║║\n);printf(\t\t\t\t║※5.在此文件里删除学生║\n);printf(\t\t\t\t║║\n);printf(\t\t\t\t║※6.修改此文件里的学生的成绩║\n);printf(\t\t\t\t║║\n);printf(\t\t\t\t║※7.清屏║\n);printf(\t\t\t\t║║\n);printf(\t\t\t\t║※8.返回上一级║\n);printf(\t\t\t\t║║\n);printf(\t\t\t\t║※9.退出系统║\n);printf(\t\t\t\t╚════════════════════════╝\n);}4.5对menu_4()函数的设计如下//菜单4voidmenu_4(){system(modeconcols=100lines=1000);//窗口宽度system(color0A);//窗口颜色system(date/T);//显示日期system(TIME/T);//显示时间printf(\t\t\t您的当前位置:学生成绩管理-设置密码\n\n);printf(\t\t\t\t╪╪╪╪╪╪╧╧╧╧╧╧╧╧╧╪

1 / 49
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功