1、 程序设计基础课程设计程序设计基础课程设计 课程设计报告课程设计报告 设计题目 小学生成绩管理系统 学生姓名 学生班级 学生学号 指导教师 成绩评定 完成时间 2016-05-31 1 一、一、 目的与要求目的与要求 通过本课程设计的实践,全面总结 C+课程学习中的的数据类型、程序结 构、数组、函数、指针、结构体、链表等基本概念,掌握其使用方法。掌握面 向对象程序设计中有关类、对象、继承、重载、多态性、输入输出流类体系、 文件操作的基本概念, 初步学会用类与对象这种面向对象的程序设计方法编写 应用程序。培养使用面向对象的程序设计方法编写计算机程序的能力。 通过设计一个小学生成绩统计管理 ,进一
2、步熟悉 C+中类的概念、类的 封装、继承的实现方式。了解系统开发的需求分析、类层次设计、模块分解、编 码测试、模块组装与整体调试的全过程,加深对 C+的理解与 Visual C+环境的 使用;逐步熟悉程序设计的方法,并养成良好的编程习惯。程序设计是一门实践 性很强的课程,必须十分重视实践环节。许多实际的知识不是靠听课和看书学到 的,而是通过长时间的实践积累的。 二、二、 设计内容设计内容 学生成绩管理系统学生成绩管理系统 1基本功能: a) 成绩的输入(学号、姓名、语文、英语、数学) ; b) 成绩统计(各科平均成绩、各科成绩“优秀” 、 “良好” 、 “中等” 、 “及 格” 、 “不及格”
3、的人数及其所占比例) ; c) 总成绩统计(学生的总成绩、平均成绩及成绩排名) d) 成绩的统计结果显示。 2扩展功能: a) 学生数据的添加、修改、与删除 b) 学生数据的读取与存储 3设计要求 a)采用面向对象的思想和方法完成设计,最好能够基于 windows 图形界 面 。 b)至少设计四个类;学生类(描述学生基本信息) ;成绩类:班级类; 课程类(描述课程信息:课程编号,科目名称(数学,英语等) ;学生成绩及课 程信息用文件保存,每个类一个文件,程序执行时从文件读入。 三、三、 过程与结果过程与结果 主要内容如下:主要内容如下: 1.1. 关键类的设计,继承层次关系,代码:关键类的设计
4、,继承层次关系,代码: 首先,创建了一个 student 类.在 student 类的共有部分声明程序所需函数; 然后就是 student 类的函数实现部分, 其中定义 student 类的带参数及不带参数 构造函数;再是常用函数的调用,并定义系统菜单函数及其界面;最后就是主函 数文件。 2 Student 类的声明如下: 主要功能函数的设计:主要功能函数的设计: 1. 关于计算总成绩和平均成绩以及评定成绩等级的函数,而用于成绩统计中优 秀、良好、中等、及格、不及格的计算,不过为便于表达,此程序采用字母 A,B,C,D,E 来分别表达上述 等级;代码如下: 2.2.此函数为查找函数的实现过程,
5、通过 while switch 和 if 语句以及制 表格和 setw 的使用将输入的数据以表格的形式打印出来,等级一栏宽度略小; 3 3.此函数为删除函数的实现部分,巧妙运用字母 i,定义 i 的值 0 为数据不 存在,1 为数据存在的情况,删除时考虑数据存在与否的问题; 4 4.排序函数中分四种情况排序,分别按学号,总分,平均分来排序,排序 结果也能有升序或降序操作,通过 while else 语句以及制表格和 case 的使用将 输入的数据排序出来;因函数体过于庞大,在后面代码清单罗列出来时会标示出 来。 数据输入设计:数据输入设计:数据输入以输出方式打开文件,通过 this 指针和地址
6、引用把写 入的数据加在文件末尾; 程序测试结果:程序测试结果: 5 1 运行程序.会出现如下画面,按照提示进行选择. 2. 首先选择 1,然后按 Enter 键.按照提示对学生情况进行输入.如图: 6 3. 按任意键程序自动保存第一个同学的数据,并返回菜单,按照刚才的步骤继 续输入第二个、第三个同学等等的数据; 4. 选择 4, 然后按 Enter 键.对数据进行进行有目的性的排序.如图: 5譬如选择 2 按总分排序,按 Enter 键,再在接下来的提示框中选择降序排序 类型,再按一次 Enter 键,排序结果如图:符合设计要求,但各科成绩“优秀” 、 “良好” 、 “中等” 、 “及格” 、 “不及格”的人数及其所占比例因个人能力有限未能 设计出来; 7 6.按任意键又返回菜单,继续接下来的操作; 四、四、 设计总结设计总结 这次课程设计基本上涵盖了大学一年级学习到的 C+ 语言知识点,课程设 计题目要求不仅要求对课本知识有较深刻的了解, 同时要求程序设计者有较强的 思维和动手能力。这次课设使我了解我编程思想和编程技巧,也认