** 学 院
面向对象程序设计课 程 设 计
题
目
学生成绩管理程序设计
系 (部)
计算机科学与技术
班
姓
学
级
名
号
指导教师
4070207114
2010 年 7 月 12 日至 7 月 16 日 共 1 周
2010 年 7 月 16 日
面向对象程序设计 课程设计任务书
一、设计题目、内容及要求
1、设计题目:学生成绩管理程序设计
2、设计内容及要求:
利用 MFC 应用程序,ODBC API、MFC ODBC 类、MFC DAO 类、MFC 的 OLE/DB、
ActiveX 数据对象 ADO 等几种 Visual C++数据库连接技术,设计一个学生成绩管理程序。
要求学生记录中包含学号、姓名、至少 3 门课程的成绩、总分、平均分和名次等信息。
程序实现数据录入、删除、修改、浏览、查找以及排序功能。
二、要求的设计成果(课程设计说明书、设计实物、图纸等)
1、用 Visual C++进行编码,实现应用程序的功能。注重编码质量,代码要有适当的注释;
2、撰写课程设计说明书一份,不少于 2000 字。课程设计说明书应包括封面、任务书、
正文(设计的基本思路、设计的步骤及主要代码解释)、参考文献(资料)、附录(程序
代码)等内容。
三、进程安排
7 月 12 日:完成需求分析,确定程序功能,确立程序设计思想;
7 月 13 日~7 月 14 日:进行详细设计,实现编码;
7 月 15 日:进行程序测试,完善编码;撰写设计说明书,准备答辩;
7 月 16 日:答辩。
四、主要参考资料
[1] 王育坚.Visual C++面向对象编程教程.第 2 版.北京:清华大学出版社,2008
[2] 侯俊杰.深入浅出 MFC.第 2 版.广东:南方出版社,2007
[3] 李涛 等.Visual C++ +SQL Server 数据库开发与实例.北京:清华大学出版社,2006
指导教师(签名):
教研室主任(签名):
注:可以附页
课程设计成绩评定表
出勤天数
缺勤天数
出勤情况及设计过程表现(20 分)
课设答辩(20 分)
设计成果(60 分)
总成绩(100 分)
出勤
情况
成
绩
评
定
提问
(答辩)
问题
情况
综
合
评
定
指导教师签名:
年 月 日
1 引言
1.1 VC++语言简介
众所周知,面向对象的程序设计是当今流行的编程技术,而 C++语言是当今最流行
的面向对象的程序设计语言。Visual C++起源于 MicrosoftC/C++8.0 之后,1998 年,微软
公司推出了 Visual C++6.0,它除了保留 Visual C++5.0 对 ActiveX 的支持外,还支持
DHTML,更新了 MFC 及 ATL 的类库,并对模板也有所扩充,用户可以方便地开发出类
似 Web 浏览器界面的应用程序。VC++是 Windows 平台上的 C++编程环境,Windows 下
编程需要了解 Windows 的消息机制以及回调(callback)函数的原理;MFC 是 Win32API
的包装类,需要理解文档视图类的结构,窗口类的结构,消息流向等等。
Visual C++编译环境使用了向导,向导(Wizard)是 Visual C++的一个重要功能,是
帮助、引导用户工作的工具;集成的数据库访问技术,可以使用 ODBC 类来访问各种数
据库管理系统,也可以使用 DAO 类通过编程评议来访问和操纵数据中的数据;强大的微
软类库支持,通过这些类的继承,可以简单快捷地完成应用程序的开发。
1.2 Access 数据库简介
Microsoft Access 是一种关系式数据库,关系式数据库由一系列表组成,表又由一
系列行和列组成,每一行是一个记录,每一列是一个字段,每个字段有一个字段名,字
段名在一个表中不能重复。Access 数据库以文件形式保存,文件的扩展名是 MDB[2]。
Access 数据库由七种对象组成,它们是表、查询、窗体、报表、宏、页和模块。表
是数据库的基本对象,是创建其他 5 种对象的基础。表由记录组成,记录由字段组成,
表用来存贮数据库的数据,故又称数据表。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,
它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,
使用计算机对学生成绩信息进行管理,具有手工管理所无法比拟的优点。例如,检索迅
速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极
大地提高学生档案管理的效率,也是企业的科学化,正规化管理,与世界接轨的重要条
件。因此,开发学生成绩管理系统很有必要。
2 总体设计
学生成绩管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建
立和维护和维护以前前端应用程序的开发两个方面。对于前者要求建立起数据一致性和
完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。
2.1 功能实现
本系统主要按班级和年级来完成学生成绩的管理,包括添加、删除、查询、排序等
方面以及显示所学科目和科目的任课老师。系统可以对不同的班级完成对各类信息的浏
览、查询、添加、删除、修改及排序等功能。本系统按功能划分可划分为两大模块,班
级成绩管理模块和年级成绩管理模块。
2.2 系统功能模块图
该系统的主要功能模块如图 1 所示:
学生成绩管理系统
班级管理系统
年级管理系统
添
加
记
录
删
除
记
录
修
改
记
录
查
询
记
录
记
录
排
序
查
询
记
录
总
成
绩
平
均
成
绩
优
差
人
数
统
计
总
人
数
图 1 系统功能模块图
3 详细设计
3.1 登录模块设计
在进入主对话框之前,首先调用登录对话框,该对话框包含用户名和密码两个部分,
他们相关联的变量名为 IDC_NUM 和 IDC_PSD,界面如图 2 所示。
图 2 登录界面
本程序在系统登录时用 OnInitDialog()函数进行了控件和变量的初始化,将学号和密
码设置成与库 lhwy 中 N01PSD 表对应的数据,直接点击 OK 按钮便可进入学生成绩管理
主界面。如图 3 所示。
图 3 系统主界面
3.2 数据库的表的简介
本系统采用 Access 数据库,建立一个名 lhwy 的数据库,包括以下数据表:N01OBJECT、
N01PSD、N01STUDENT、N01TECHER、N02OBJECT、N02STUDENT、N02TECHER。
其中 N01OBJECT 表为 1 班科目表,包括 5 个字段:科目、总成绩、平均成绩、及格
人数、优秀人数。N01PSD 表为用户登录信息表,包括两个字段:学号和密码。N01STUDENT
表为 1 班学生成绩信息表,包括 9 个字段:学号、姓名、数学、物理、化学、英语、政
治、总成绩和平均成绩。N01TECHER 表为 1 班教师表,包括两个字段:科目和任课老师。
N02OBJECT 表为 2 班科目表,包括 5 个字段:科目、总成绩、平均成绩、及格人数和优秀
人数。N02STUDENT 表为 2 班学生成绩信息表,包括 9 个字段:学号、姓名、数学、物理、
化学、英语、政治、总成绩和平均成绩。N02TECHER 表为 2 班教师表,包括两个字段:科
目和任课老师。
3.3 各个功能模块的简介及流程图
主界面的布局主要以编辑框和按钮组成。编辑框的主要功能是显示记录信息和录入
记录信息,以方便存储基本的信息。触发按钮可是进行相应的操作:
(1) 学生查询功能:为了方便学生查找成绩等信息,将所有信息按照需要进行分类。
这样学生就能很方便的找到自己所需要的信息。
(2) 管理员查询功能:管理员可以通过条件选择查询所有信息,并进行排序。
(3) 添加记录:管理员可以通过填写表格的形式输入学生成绩等相关信息。
(4) 修改记录:管理员可以对数据库中的信息进行修改。系统能够通过管理员给出
的条件查找出所要修改的信息,对修改后的信息进行保存,并自动查找是否是重复信息。
(5) 删除记录:管理员可以对数据进行删除操作。系统能够通过管理员给出的条件
查找出要删除的信息,并提示是否确定删除,如果确定删除,则把相关信息从数据库中
删除。
(6) 记录排序:管理员可以对数据进行排序操作。系统能够通过管理员给出的条件
查对记录进行排序,对排序后的信息进行保存。
(7) 统计总人数:管理员可以对全年级的人数进行统计。
(8) 求平均成绩:管理员可以对各个科目分别求出平均成绩。
(9) 求总成绩:管理员可以对各个科目分别求出总成绩。
(10) 统计优差人数:管理员可以按照标准统计出各个科目的优差人数。
学生成绩管理流程图如图 4 所示:
学生
输 入 学 号
和密码
查询
新数据
数 据 修 改
或添加
成绩数
据库
输 出 结
果
学生数
据库
统计汇
总
管理
员
输 出 结
果
图 4