成绩记录簿课程设计.doc_第1页
成绩记录簿课程设计.doc_第2页
成绩记录簿课程设计.doc_第3页
成绩记录簿课程设计.doc_第4页
成绩记录簿课程设计.doc_第5页
免费预览已结束,剩余25页可下载查看

下载本文档

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

文档简介

石河子大学信息科学与技术学院程序设计基础课程设计报告题目名称: 成绩记录簿 学生姓名: 曾凡荣 学 号: 2011508047 专业班级: 计算机科学与技术 指导教师: 郭理 2012年06月27日 目录1.课程设计题目与要求31.1设计题目31.2设计要求32. 总体设计42.1程序结构与功能总体示意图42.2各子模块的功能介绍43. 详细设计63.1类的设计63.2主模块设计64.运行结果144.1程序主界面144.2显示所有144.3查询信息154.4增加记录164.5修改数据174.6删除数据204.7成绩分析主界面225. 课程设计总结286.参考文献291.课程设计题目与要求1.1设计题目 成绩记录簿1.2设计要求1问题描述(功能要求):编织一个C+语言成绩记录簿,每个学生信息包括:学号,姓名,c+语言成绩。具体功能:(1)创建信息链表并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的成绩;(3)按学号或姓名查询成绩;(4)添加成绩记录;(5)修改指定姓名或学号的学生的成绩并可存盘;(6)显示输出60分以下、6079、8089、90分以上各分数段的学生信息。2问题解决方案:根据功能要求,可以将问题解决分为以下步骤:(1)分析系统中的各个实体之间的关系及其属性和行为;(2)根据问题的描述,设计系统的层次;(3)完成类层次中的各个类的描述(包括属性和方法)(4)完成类中各个成员函数的定义;(5)完成系统的应用模块;(6)功能调试;(7)完成系统总结报告以及系统使用说明书;3其他要求:(1)只能使用C/C+语言,源程序要有适当的注释,使程序容易阅读;(2)至少采用文本菜单界面(图形菜单更好);(3)学生科自动增加新功能模块;2. 总体设计 2.1程序结构与功能总体示意图(图1)成绩记录簿建立学生成绩文件显示所有信息查询成绩成绩分析显示所有学生成绩修改学生信息删除学生信息增加学生信息按学号查询按姓名查询按学号修改按姓名修改按学号删除按姓名删除数学成绩排名按总分排名英语成绩排名C+成绩排名单科成绩分段显示图12.2各子模块的功能介绍1. 建立学生成绩记录簿 建立一个学生成绩包括其他基本信息在内的一个ASCII文件,并存入磁盘;2. 显示所有学生成绩显示一个班所有学生的成绩,包括数学,英语,C+成绩;3. 查询学生信息此功能分按学生学号查询和姓名查询两种方式,可供用户在使用时根据情况选择,用户只需输入相应学生的学号或姓名即可单一的查看某学生的所有信息;4. 修改学生信息此功能分按学生学号修改和姓名修改两种方式,用户只需输入相应学生的学号或姓名即可对某一学生的信息进行修改,并且修改后的学生信息将更新原有的信息,但不会对未修改的学生信息造成影响;5. 删除学生信息此功能分按按学生学号删除和姓名删除两种方式,用户只需输入相应学生的学号或姓名即可删除某一学生的全部信息,并更新所有学生的信息,但不会对其造成影响;6. 增加学生信息用户只需按提示依次输入学生的各项信息,即可将增加的学生信息保存至原文件的末尾。7. 成绩分析此项功能为该程序的主要功能,该功能可以使用户在查看学生成绩的同时,查看每个学生的总成绩排名,单科排名,单科中学生成绩各分数段的学生信息并统计相应段的学生人数,在末尾还可以查看该科目学生总体的评价分,利于用户评估。3. 详细设计3.1类的设计本程序共有一个Student内,共有7个数据成员,分别是学号(num)、姓名(name)、性别(sex)、年龄(age)、数学(math)、英语(english)、C+(cpp)。其中含有一个构造函数,用来对每个学生信息进行初始化。具体代码如下:class Studentpublic:Student(long n=100000,string na=无,string se=男,int a=18,float m=0,float e=0,float c=0):num(n),name(na),sex(se),age(a),math(m),english(e),cpp(c);long num;string name;string sex;int age;float math;float english;float cpp;3.2主模块设计1. 建立学生成绩记录簿程序流程图如下(图2)图2该函数将输入的学生信息以ASCII文件的方式保存至磁盘,该程序使用for循环语句控制输入的学生人数,当达到输入的学生人数时自动弹出循环。2显示所有学生成绩程序流程图如下(图3)开始学号不等于100000 且i80输出学生成绩结束假真图3该程序建立了80个Student类的对象数组,而实际学生人数小于80人,因此提供了较大的空间保证将文件信息全部读取完,在使用for循环语句依次输入信息时使用的条件是学号不等于100000,这是因为默认的学生信息的学号为100000,如果不加这一条件,程序将会多输出很多无用的信息。3查询学生信息程序流程图如下(图4)开始按学号查询输入学num1学号是否等于num1输出学生信息结束假真真假按姓名查询输入姓名name1姓名是否等于name1输出学生信息结束选择查询方式图4程序使用首先使用了switch语句进行功能的分支,然后进入相应的子程序中,在判断学号(姓名)是否等与输入的学号(姓名)时,使用了for循环语句,只有当数据相等时,才输出,否则不输出任何信息。4. 修改学生信息按提示依次输入修改信息输入姓名更新原来的信息输入学号重新保存到文件开始按学号修改结束图5按姓名修改修改方式程序流程图入下(图5)z程序也分为按学号和姓名进行修改学生信息,输入学生学号或姓名后按提示输入其他信息,程序的关键部分在于将修改后的信息重新保存到文件,为了实现这个功能,程序首先先读取原来的学生信息的文件,然后用户输入一组数据,用for循环语句根据学号(姓名)找到相应的学生,将这一组数据赋值给原来的信息,然后以输出方式打开文件,同样用for循环依次保存学生信息,此时被修改的信息也被存入原来的文件相应的位置。5. 删除学生信息程序流程图如下(图6)读取文件学号(姓名)在文件中存在输入姓名输入学号依次保存学生信息,遇到该学生的学号(姓名),跳过按姓名删除按学号删除结束删除方式开始假真图8该程序分学号和姓名两种方式删除学生信息,实现这个功能的主要思想是部分文件存入磁盘,当用户输入一个学生的学号或姓名时,通过for循环语句找到相应的学生,在存入文件时,如果学号或姓名不等于输入的信息,则保存,这就把需删除的信息屏蔽了,留下剩下的信息。6. 增加学生信息开始新建一个增加信息.dat文件输入增加学生的信息保存到文件增加信息.dat打开文件学生信息.dat将增加信息.dat的数据保存到学生信息.dat的末尾结束程序流程图如下(图7)图7此段程序包含两个函数,一个是负责将增加的学生信息保存到一个新文件里,另一个负责将增加的信息存入到原文件的末尾,然后一起存入磁盘。7. 成绩分析程序流程图如下(图8)图8开始总分排名显示所有学生名次,总分显示所有学生名次,单科成绩单科排名单科分段排名显示各分数段人数,学生信息结束作为学生成绩记录簿,该程序是核心部分,本程序分了三个功能,分别是按总分排名,单科排名,查看单科中各分数段的学生人数,在最后一个功能中同时加入了显示单科班级平均分一项功能,总体上满足实际需求。需要说明的是这几个函数所用的算法都是冒泡法。4.运行结果4.1程序主界面(图9)4.2显示所有(图10)4.3查询信息(图11)1.按学号查询信息(图12)2.按姓名查询(图13)4.4增加记录(图14)4.5修改数据(图15)1.修改学生信息界面(图16)2.按学号修改数据(图17)3修改后的情况(图18)4.修改前的数据(图19)5.按姓名修改信息(图20)6.修改后的信息(图21)4.6删除数据(图22)1.删除后的信息(图23)2按姓名删除信息(图24)3.修改后的信息(图25)4.7成绩分析主界面(图26)1.按总分排名(图27)2.按数学成绩排名(图28)3.按英语成绩排名(图29)4按C+成绩排名(图30)5.数学成绩分段显示(图31、图32)6.英语成绩分段显示(图33、图34)7.C+成绩分段显示(图35、36)5. 课程设计总结通过对学生成绩记录簿的编写,我初步认识了对一个系统编写的基本思路,就拿学生成绩记录簿为例,在编写前我们应分析该系统的主要数据成员,然后再考虑其应该实现的一些功能,将功能划分为几块,然后分别定义一些实现这些功能的函数。当系统的初步模型建立后,就要开时写程序,这时我们必须考虑怎样将那些数据成员有条理的汇集在一起,到底是使用类还是结构体。将这些基本信息定义好后,就可以开始写功能函数了,在编写程序中,我发现将一个功能定义为一个函数,每次编写完后,即调试,看该段程序是否有错。如果有错,马上修改,直到函数运行成功为止。这样能很好的避免因代码段过多而不易修改程序的问题。同时也显得比较有条理。该程序总体

温馨提示

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

评论

0/150

提交评论