C++课程设计报告-学生成绩管理系统_计算机-.NET.pdf
《C++课程设计报告-学生成绩管理系统_计算机-.NET.pdf》由会员分享,可在线阅读,更多相关《C++课程设计报告-学生成绩管理系统_计算机-.NET.pdf(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、.资料.中南大学 二一二二一三学年第二学期 信息科学与工程学院 C+程序设计语言 课程设计报告 课程名称:C+程序设计语言 班 级:电气信息类 1206 班 学 号:0909120629 姓 名:邬继阳 指导教师:王磊 二 0 一三年零七月 -.可修编.目录 1.课程设计目的 3 2.系统描述(需求分析)3 2.1 需要处理的基础数据 3 2.2 系统的基本功能 3 2.3 可行性分析 4 3.功能模块设计 4 3.1 类的分析与设计 4 3.1.1 Course 类 4 3.1.2 Stu 类 5 3.2 整体流程 6 4.主要模块的算法说明 7 4.1 信息的保存和读取 7 4.2 对信息
2、的处理 7 4.2.1 数据的录入和插入 7 4.2.2 数据的查询 7 4.2.3 数据的修改 7 4.2.4 数据的删除 7 4.2.5 数据的排序 8 5.程序运行结果 8 5.1 菜单欢迎界面 8 5.3 信息的显示 9 5.4 信息的查询 9 5.5 信息的修改 10 5.6 信息的删除 11 5.7 按平均分降序排列 11 5.8 查看全部信息 12 5.9 输出不及格学生信息 12 5.10 退出系统 13 6.课程设计总结 13 7.参考文献 14 8.附录(源代码)14 电气信息类班学号姓名邬继阳指导教师王磊二一三年零七月资料目录课程设计目的系统描述需求分析需要处理的基础数据
3、系统的基本功能可行性分析功能模块设计类的分析与设计类类整体流程主要模块的算法说明信息的保存和读取显示信息的查询信息的修改信息的删除按平均分降序排列查看全部信息输出不及格学生信息退出系统课程设计总结参考文献附录源代码可修编课程设计目的使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构存储软件设计的能力使学生掌握使用各种计算机资料和有关参考资料提高学生进行程序设计的基本能力系统描述需求分析需要处理的基础数据学生基本信息如班级学号性别年龄宿舍等学生选修课程的基本信息课程编号课程名称考试成绩 -.可修编.1.课程设计目的 1.1 使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结
4、构、存储结构和操作实现算法,以及它们在程序中的使用方法。1.2 使学生掌握软件设计的基本容和设计方法,并培养学生进行规化软件设计的能力。1.3 使学生掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计的基本能力。2.系统描述(需求分析)2.1 需要处理的基础数据 学生基本信息:如班级、学号、性别、年龄、宿舍、等。学生选修课程的基本信息:课程编号、课程名称、考试成绩、平时成绩、综合成绩、学分、重修否等。2.2 系统的基本功能 数据的录入:如录入学生的基本信息,以及该学生选修课程的基本信息;数据的修改:如修改指定学号、或者指定的学生信息,或者修改其选修课程信息;数据的插入:插入某个学生信息
5、 数据的查询:如按学号查询、按查询等;数据的删除:如删除指定学号、或者指定的学生及其选修课的信息;平均成绩的计算:计算每个学生各门功课的平均成绩,并按平均成绩从高到低的次序输出 学生信息;列出不及格学生清单(学号、不及格的课程和成绩)。考虑用文件把数据保存起来(可选)。电气信息类班学号姓名邬继阳指导教师王磊二一三年零七月资料目录课程设计目的系统描述需求分析需要处理的基础数据系统的基本功能可行性分析功能模块设计类的分析与设计类类整体流程主要模块的算法说明信息的保存和读取显示信息的查询信息的修改信息的删除按平均分降序排列查看全部信息输出不及格学生信息退出系统课程设计总结参考文献附录源代码可修编课程
6、设计目的使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构存储软件设计的能力使学生掌握使用各种计算机资料和有关参考资料提高学生进行程序设计的基本能力系统描述需求分析需要处理的基础数据学生基本信息如班级学号性别年龄宿舍等学生选修课程的基本信息课程编号课程名称考试成绩 -.可修编.2.3 可行性分析 2.3.1 如上所示,该系统要求处理一些学生成绩的基本数据,包括两个方面:学生身份信息和学生成绩信息。具体可以考虑创建两个类,一个学生基本信息类,一个学科基本信息类。这样既可以保持二者的独立性,也可以使之相关联。2.3.2 该系统不仅要求能录入一些基本数据外,还要能对这些数据进行处理,比如
7、修改,删除,插入,查询等。对这些操作的实现可以暂时放开面向对象,而采用面向过程的方法。另外,因为对数据库了解不多,可以考虑用文件保存的形式将数据保存起来,最后在查找的时候采用文件读取。3.功能模块设计 3.1 类的分析与设计 由上面的需求分析可以知道,在本程序中,需要处理两大类数据:一个是学生的身份基本信息,另一个是该同学的课程基本信息。而且要求二者既要相互联系,又不能太相互制约。于是可以考虑创建两个类:Stu 类(学生信息类)和 Course 类(课程信息类)。为了使二者相互关联,可以让 Course 的一个类对象作为 Stu 对象的一个基本数据成员。具体如下:3.1.1 Course 类
8、由于学生只需要一些课程信息,故在该类中只有一些基本的成员数据,不涉及成员函数之类的对数据进行操作的函数。把对学生信息进行处理的函数放在 Stu 类中。成员 成员属性 访问类型 course_num 数据成员 public course_name 数据成员 public regular_score 数据成员 public Final_score 数据成员 public average_score 数据成员 public study_score 数据成员 public rebulid 数据成员 public 由于这些数据信息是作为 Stu 类的一个信息的,为了使 stu 类中的函数可以访问这些成员
9、数据,故要将访问类型定义为 public型。电气信息类班学号姓名邬继阳指导教师王磊二一三年零七月资料目录课程设计目的系统描述需求分析需要处理的基础数据系统的基本功能可行性分析功能模块设计类的分析与设计类类整体流程主要模块的算法说明信息的保存和读取显示信息的查询信息的修改信息的删除按平均分降序排列查看全部信息输出不及格学生信息退出系统课程设计总结参考文献附录源代码可修编课程设计目的使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构存储软件设计的能力使学生掌握使用各种计算机资料和有关参考资料提高学生进行程序设计的基本能力系统描述需求分析需要处理的基础数据学生基本信息如班级学号性别年龄宿
10、舍等学生选修课程的基本信息课程编号课程名称考试成绩 -.可修编.3.1.2 Stu 类 正如上面所述,Course 类的一个对象作为 Stu 类的一个数据成员,但是正常情况下,一个同学是不只一门科目的,所以要定义一个 Course 类的数组来存放同一学生的不同科目信息 Course course20。为了其信息的隐蔽性,我们把所有的数据成员都声明为 private。接下来,要处理的就是函数了。有两种处理方式,但到底是采用成员函数还是采用友元函数呢?在本例中,我采用的是友元函数。原因如下:(1)采用友元函数,可以使类的结构变得更加简单,有助于整个设计过程的思考。(2)使用友元函数,将函数独立于类
11、的结构之外而采用类对象传参的方式,可以使该函数的独立性大大提高,有助于在其他地方的使用。具体如下:成员 成员属性 访问类型 Class_num 数据成员 private num 数据成员 private name 数据成员 private sex 数据成员 private age 数据成员 private room 数据成员 private tel 数据成员 private average 数据成员 private Num_of_course 数据成员 private order 数据成员 private Course20 数据成员 private 电气信息类班学号姓名邬继阳指导教师王磊二一三
12、年零七月资料目录课程设计目的系统描述需求分析需要处理的基础数据系统的基本功能可行性分析功能模块设计类的分析与设计类类整体流程主要模块的算法说明信息的保存和读取显示信息的查询信息的修改信息的删除按平均分降序排列查看全部信息输出不及格学生信息退出系统课程设计总结参考文献附录源代码可修编课程设计目的使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构存储软件设计的能力使学生掌握使用各种计算机资料和有关参考资料提高学生进行程序设计的基本能力系统描述需求分析需要处理的基础数据学生基本信息如班级学号性别年龄宿舍等学生选修课程的基本信息课程编号课程名称考试成绩 -.可修编.友元函数:Input(S
13、tu stud)输入学生信息 Statistic(Stu stud)学生信息输出 Lookup(Stu stud)查找学生信息 Modify(Stu stud)修改学生信息 Delete(Stu stud)删除学生信息 Output(Stu stud)输出全部信息 Sort(Stu stud)对学生进行排序 Insert(Stu stud)插入学生信息 Showfail(Stu stud)查找不及格学生 Write(Stu stud)文件写入函数 Read(Stu stud)文件读取函数 void menu()菜单函数,以供选择 3.2 整体流程 上面已经主要分开介绍了两个独立的类及其部成员,
14、现在来介绍整个学生系统功能实现的流程。主菜单函数 Switch 语句选择 查询 删除 显示 不及格 显示 全部 输入 修改 插入 文件读取 文件保存 排序查看学生成绩 电气信息类班学号姓名邬继阳指导教师王磊二一三年零七月资料目录课程设计目的系统描述需求分析需要处理的基础数据系统的基本功能可行性分析功能模块设计类的分析与设计类类整体流程主要模块的算法说明信息的保存和读取显示信息的查询信息的修改信息的删除按平均分降序排列查看全部信息输出不及格学生信息退出系统课程设计总结参考文献附录源代码可修编课程设计目的使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构存储软件设计的能力使学生掌握使用
15、各种计算机资料和有关参考资料提高学生进行程序设计的基本能力系统描述需求分析需要处理的基础数据学生基本信息如班级学号性别年龄宿舍等学生选修课程的基本信息课程编号课程名称考试成绩 -.可修编.4.主要模块的算法说明 4.1 信息的保存和读取 在本次课程设计中,因为还没有接触到数据库的有关知识,故采用文件流来写入和读取信息。主要涉及到 fstream 类。在系统运行过程中,会利用该类将学生的基本身份信息和基本课程信息全部存到自定义的一个文件中,当需要使用这些数据时,例如查询,修改,显示等,再将需要的读取出来进行相关的操作。4.2 对信息的处理 4.2.1 数据的录入和插入 数据的录入和插入基本一样,
16、这里只介绍录入。当在主菜单里选择信息录入时,会跳出录入页面,只需依次输入提示的信息即可。在整个大体框架上,采用一个 while 语句判断是否继续录入。注意在录入学生成绩信息时。需要输入要登记的课程数目。其中成绩信息的各科综合成绩和是否重修不需要手动录入,它会在登记完平时成绩和末考成绩后自动生成。当所有信息录入完成后,该生所有科目的平均成绩average 也会自动计算。4.2.2 数据的查询 所谓数据的查询,就是把存放在文档中的学生数据读取出来并加以输出。当只针对某个人的查询时,需要输入学号或,再调用 read()函数将相关的数据读取出来,至于需要输出哪些,可以自己控制。当要输出所有学生的数据是
17、时,首先调用 read()函数返回数据的个数 count,即学生的个数。最后采用 for 循环控制依次输出每一个学生的信息。4.2.3 数据的修改 当修改数据时,只需输入需要修改学生的学号即可。首先会将该生的相关信息输出出来。然后再提示重新输入信息。执行到这里时基本就和前面的数据录入,插入一样了。4.2.4 数据的删除 本例中,对数据的删除比较简单。只需输入学号或,当查找到该生的相关信息后。将后面一个学生的信息赋值给他,相当于该生的信息被覆盖,也就是删除。电气信息类班学号姓名邬继阳指导教师王磊二一三年零七月资料目录课程设计目的系统描述需求分析需要处理的基础数据系统的基本功能可行性分析功能模块设
18、计类的分析与设计类类整体流程主要模块的算法说明信息的保存和读取显示信息的查询信息的修改信息的删除按平均分降序排列查看全部信息输出不及格学生信息退出系统课程设计总结参考文献附录源代码可修编课程设计目的使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构存储软件设计的能力使学生掌握使用各种计算机资料和有关参考资料提高学生进行程序设计的基本能力系统描述需求分析需要处理的基础数据学生基本信息如班级学号性别年龄宿舍等学生选修课程的基本信息课程编号课程名称考试成绩 -.可修编.4.2.5 数据的排序 在需求分析中,有一项功能,按学生成绩平均分降序排列。此功能还是比较好实现的。在输入学生数据时,当
19、所有课程分数输入完毕,会自动生成一个平均分,该数值就是学生类Stu 中的 average 数据成员。然后采用冒泡法比较大小,把这些学生的数据重新排列,最后再依次输出。5.程序运行结果 5.1 菜单欢迎界面 5.2 信息的录入 电气信息类班学号姓名邬继阳指导教师王磊二一三年零七月资料目录课程设计目的系统描述需求分析需要处理的基础数据系统的基本功能可行性分析功能模块设计类的分析与设计类类整体流程主要模块的算法说明信息的保存和读取显示信息的查询信息的修改信息的删除按平均分降序排列查看全部信息输出不及格学生信息退出系统课程设计总结参考文献附录源代码可修编课程设计目的使学生进一步理解和掌握课堂上所学各种
20、基本抽象数据类型的逻辑结构存储软件设计的能力使学生掌握使用各种计算机资料和有关参考资料提高学生进行程序设计的基本能力系统描述需求分析需要处理的基础数据学生基本信息如班级学号性别年龄宿舍等学生选修课程的基本信息课程编号课程名称考试成绩 -.可修编.如上所示,依次输入需要填写的信息,其中“该门课的综合成绩”和“是否重修”是不需要输入,系统自动执行的。最后还会提示是否继续填写(YN)。5.3 信息的显示 在这个功能里面主要显示全部同学的身份信息和平均分:5.4 信息的查询 信息的查询分两种方式:电气信息类班学号姓名邬继阳指导教师王磊二一三年零七月资料目录课程设计目的系统描述需求分析需要处理的基础数据
21、系统的基本功能可行性分析功能模块设计类的分析与设计类类整体流程主要模块的算法说明信息的保存和读取显示信息的查询信息的修改信息的删除按平均分降序排列查看全部信息输出不及格学生信息退出系统课程设计总结参考文献附录源代码可修编课程设计目的使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构存储软件设计的能力使学生掌握使用各种计算机资料和有关参考资料提高学生进行程序设计的基本能力系统描述需求分析需要处理的基础数据学生基本信息如班级学号性别年龄宿舍等学生选修课程的基本信息课程编号课程名称考试成绩 -.可修编.当你选择 1 时,表示按学号查询,当你选择 2 时,表示按查询。下面介绍的是按学号查询
22、。如上所示,当输入需要查询的同学的学号时,会输出该同学的身份信息以及每一门课的综合成绩,还有这些课的平均成绩。5.5 信息的修改 当输入需要修改的学生学号时,会首先输出该同学现在的已经存在的信息:然后提示重新输入:输入完成后,会提示是否保存:电气信息类班学号姓名邬继阳指导教师王磊二一三年零七月资料目录课程设计目的系统描述需求分析需要处理的基础数据系统的基本功能可行性分析功能模块设计类的分析与设计类类整体流程主要模块的算法说明信息的保存和读取显示信息的查询信息的修改信息的删除按平均分降序排列查看全部信息输出不及格学生信息退出系统课程设计总结参考文献附录源代码可修编课程设计目的使学生进一步理解和掌
23、握课堂上所学各种基本抽象数据类型的逻辑结构存储软件设计的能力使学生掌握使用各种计算机资料和有关参考资料提高学生进行程序设计的基本能力系统描述需求分析需要处理的基础数据学生基本信息如班级学号性别年龄宿舍等学生选修课程的基本信息课程编号课程名称考试成绩 -.可修编.5.6 信息的删除 信息的删除也分两种类型:选择不同的方式,进入不同的界面 按删除 按学号删除 5.7 按平均分降序排列 会输出学生的一些基本信息和平均分与名次。电气信息类班学号姓名邬继阳指导教师王磊二一三年零七月资料目录课程设计目的系统描述需求分析需要处理的基础数据系统的基本功能可行性分析功能模块设计类的分析与设计类类整体流程主要模块
24、的算法说明信息的保存和读取显示信息的查询信息的修改信息的删除按平均分降序排列查看全部信息输出不及格学生信息退出系统课程设计总结参考文献附录源代码可修编课程设计目的使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构存储软件设计的能力使学生掌握使用各种计算机资料和有关参考资料提高学生进行程序设计的基本能力系统描述需求分析需要处理的基础数据学生基本信息如班级学号性别年龄宿舍等学生选修课程的基本信息课程编号课程名称考试成绩 -.可修编.5.8 查看全部信息 由于一个同学的全部信息较多,于是分成两部分输出:身份信息和成绩信息 在身份信息中,主要包括班级,学号,年龄,性别,宿舍,等。在成绩信息
25、中,包括该同学的各科成绩,是否重修,获得的学分,以及所有科目的平均分。5.9 输出不及格学生信息 当选择该功能时,首先会输出该同学的学号,和班级,然后再输出他的不及格科目以及分数,如下所示。电气信息类班学号姓名邬继阳指导教师王磊二一三年零七月资料目录课程设计目的系统描述需求分析需要处理的基础数据系统的基本功能可行性分析功能模块设计类的分析与设计类类整体流程主要模块的算法说明信息的保存和读取显示信息的查询信息的修改信息的删除按平均分降序排列查看全部信息输出不及格学生信息退出系统课程设计总结参考文献附录源代码可修编课程设计目的使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构存储软件设
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计 报告 学生 成绩管理系统 计算机 NET
限制150内