资源描述
沈阳航空工业学院毕业设计论文
目 录
第一章 前 言 1
1.1题目背景 1
1.2项目内容 1
1.3系统设计目标 2
第二章 需求分析及方案论证 3
2.1需求分析 3
2.2方案论证 4
2.3系统开发工具 6
2.4经济技术分析 6
第三章 数据结构设计 8
3.1 E-R图设计及分析 8
3.2数据库设计 10
3.3视图的建立 12
3.4关于规则存储 13
第四章 系统设计及模块设计 14
4.1系统功能模块设计 14
4.2子功能模块设计及功能描述 15
4.2.1系统管理功能模块 15
4.2.2资源管理功能模块 16
4.2.3查询功能模块 20
4.2.4分配功能模块 20
4.2.5资源使用规则解释模块 21
第五章 关键技术的实现 22
5.1数据显示的实现 22
5.2数据添加的实现 22
5.3数据删除的实现 22
5.4数据修改的实现 23
5.5主要算法及流程图 23
5.5.1资源分配算法及流程图 23
5.5.2资源使用规则解释主要算法及流程图 25
5.5.3教师查询主要算法及流程图 26
5.5.4按课程查询主要算法及流程图 27
第六章 系统调试 28
结束语 30
致谢 32
参考文献 33
附录 34
37
第一章 前 言
1.1题目背景
项目管理是在一定的约束条件下,以高效率地实现项目业主的目标为目的,以项目经理个人负责制为基础和以项目为独立实体进行经济核算,并按照项目内在的逻辑规律进行有效的计划、组织、协调、控制的系统管理活动。
项目管理中还能看到公司高层领导通过实际行动表现出来的对于项目实施的支持与帮助,通过以制度化管理来组织合理安排员工的工作职责和角色转换。为满足上述要求应用项目管理与调度系统至关重要。
1.目标:成功完成项目所必须达到的可计量准则。目标中至少必须包括成本、日程和质量的衡量标准。不可计量目标(例如,客户满意程度)增加了项目无法达到其要求的风险性。
2.资源:用于完成项目中的任务的人员、设备和材料。
3.分配:资源用于特定工作分配的工作能力的百分比。
4.任务:有始有终的一项活动。任务的完成对于项目的完成很重要。项目由任务组成。
1.2项目内容
资源管理是项目管理的一个重要分支,本系统中以学校的排课作为项目模型,教室作为项目中资源管理的模型,项目中的任务是课程的组织,即根据教师、班级、课程信息,对教室资源进行分配。系统中根据用户身份的不同对系统使用的权限不同,因此对用户的权限有一定控制。
本系统任务、资源等信息是存放在数据库表中的,数据库的使用在本次设计中占有非常重要的地位。基于此本系统后台数据库采用SQL Server 2000,SQL Server 2000是新一代的数据库,它能够存取大批量的数据,具有安全、稳定、可靠等优点。特别适用于中型及大型企业内部数据存储。
1.3系统设计目标
在进行详尽的用户需求分析后,本次毕设的系统的设计目标为:
a.对教室资源信息进行管理维护。
b.对课程信息进行管理维护。
c.提供方便的查询功能。
d.提供对用户使用权限的管理,用户登录时需要用户名和密码。
e.提供对管理操作的权限管理,只有特定的人员才能对管理信息操作进行操作。
f.实现教室资源的分配,如分配不合理可做手动修改。
g.对资源分配规则进行解释。
h.密码修改和添加用户功能。
第二章 需求分析及方案论证
2.1需求分析
由于教室资源离我们的生活比较贴近,调研方便,较易理解。所以我选择教室作为资源管理的模型,根据资源的定义,教室资源属于工时类资源。尽管如此,我还是做了大量的调研工作,因为教室作为资源有他易理解的一面,但是作为资源也有他复杂的一面。首先,资源占用在时间上的唯一性,教室资源的使用时间段过于多过于细,这给资源分配带来很多不方便的地方。其次,限定条件过多。在资源的使用者的选用上,我选择课程作为资源的使用者。课程使用教室资源,课程的需求即课程对教室的要求,来决定资源是否分配,考虑实际情况,教师和班级的唯一性,同一教师不能同时在两个教室上课,同一教室不能同时上两门课,作为资源分配的限定条件。
经过详细的分析,系统的功能可以描述如下:
1.系统管理:用户登录的类别,用户的使用权限,分三级权限,最高权限为管理员,可以进行任何操作,中级权限为录入员权限,可以对资源管理进行操作,初级权限是普通用户,只可以进行一般的浏览查询功能。
2.资源维护:系统对资源的管理,包括对资源的显示、录入、修改、删除等功能。
3.资源分配的查询:实现按教室、教师查询分配的资源。
4.资源分配:根据教师、课程信息,对教室资源进行分配。按规则存储在数据库中。
5.手动修改:资源的分配如果有不合理的地方,可以手工排课。
6.资源显示;对资源分配情况进行显示。
7.修改口令:考虑系统安全性,用户可以自己修改用户名和密码。
2.2方案论证
资源分配管理系统主要实现,资源信息的维护和对资源的合理分配及对资源分配情况进行规则的存储及显示,数据库的选择和连接程序接口。下面对这几方面进行论述。
要实现资源分配就必须对资源信息进行维护。资源信息维护包括三大模块分别是:教室资源维护、课程信息维护、课程信息维护。每个模块都有对信息的现实、添加、删除、修改等功能。
资源的分配是本系统的主体,实现对教室资源的分配,如分配不合理可进行手动修改。教室资源是属于工时类资源。(详细算法见5.5节)
资源分配情况的规则存储,就是总结资源分配情况的规律,写成规则,系统按此规则进行存储。资源分配情况的显示,是将资源的存储规则解释出来,在界面上显示出来。
本系统总体结构图如下:
资源维 护
资源分 配
资源分配情况的规则存储
资源分配情况的显示
图2.1 系统总体结构图
本系统后台数据库采用Windows2000 Servers,采用ODBC作为程序接口,这是因为使用ODBC避免了与数据源相关联的复杂性。Microsoft Developer Studio为大多数标准的数据库格式提供32位ODBC驱动器。并且,Visual C++的MFC类库定义了几个数据库类。本次设计经常用到的有CDatabase(数据库类)、CRecordSet(记录集类)。CDatabase类对象提供了对数据库的连接,通过它可以对数据源进行操作。CRecordSet类对象提供了从数据源中提供的记录集。
数据源的连接:Visual C++在使用数据源之前,还必须建立一个到数据源的连接。在MFC中到数据源的连接封装于CDatabase类中。要使用CDatabase对象,在ODBC数据源管理器中的数据源必须已经正确配置。在同一个应用程序中可以使用多个数据源,或多个连接对应同一个数据源。本系统采用的数据源连接方法如下:
CDatabase m_database;//声明对象
//测试数据库是否打开
if(!m_database.IsOpen(_));
{
if(!m_database.IsOpen(_T(“欲打开数据源的名称”)));
Assert(“不能打到该数据源的连接”)
}
//----
m_database.Close();
本系统采用如下查询方法:
通过SQL语句打开记录集,SQL语句包含查询条件
LPCTSTR strSQL;// strSQL是包含查询条件的SQL语句
m_recordset.Open(strSQL);//m_recordset是结果的一个对象
本系统的优点是操作简单、功能强大,界面友好大方。是企业、工厂、学校、科研机构等首选的资源管理分配软件。
2.3系统开发工具
Windows2000 Servers是服务器操作系统,其安全性与网络功能在Windows2000系列产品中首屈一指, 在数据库方面有良好的兼容性,容易实现C/S模式, 使用它作为为网络平台和软件开发平台再合适不过。
Visual C++有着十分强大的底层编程功能,它作为一种编程语言完全继承了C++语言的面向对象的特性。所以,利用Visual C++ 开发系统可以完成各种各样的应用程序开发,从底层软件直到上层直接面向用户的软件都可以用Visual C++来完成开发;而且Visual C++ 强大的调试功能也为大型复杂软件的开发提供了有效的排错手段。随着软件版本的不断升级,其功能也越来越强大,几乎包括了Windows应用的各个方面,所以Visual C++ 成了Windows系统平台上最强大的应用程序开发系统。
SQL Server 2000是一个高效率的大型关系数据库管理系统(RDBMS),具有强大的数据库创建、开发、设计及管理功能,是企业级及数据仓库的数据库平台。
基于以上分析,本次毕业设计采用Windows2000 Server作为开发平台,Visual C++ 6.0作为开发工具,Microsoft SQL Server 2000作为数据库工具。
2.4经济技术分析
随着全球信息经济的蓬勃发展,管理模式也在飞速发展,信息管理系统成为大中小型企业的主要管理系统,使资源配置更加合理,领导更容易控制企业,企业人员队伍更加精炼等。
本系统对资源进行合理的分配,使资源调度这一繁琐过程,通过计算机来完成,把人们从繁重的体力和脑力中解脱出来。提高工作效率,节约了大量的人力物力。
以往学校的信息管理和排课都需要手工处理,教师信息、教室信息、班级信息、课程信息都需要手工记录、维护。而使用本系统使管理规范化,且操作简单,易维护。排课是一个相当复杂的过程,手工排课会花费很多时间和精力,本系统把一个复杂问题简单化,节约了人力、物力,并提高了工作效率。
从经济角度分析资源管理调度系统具有很高的经济价值,假设一个小型企业,应用资源管理调度系统会提高生产率,方便管理,合理调度资源。资源管理调度系统给企业带来的经济效益是不可估量的。
总之资源管理调度系统,是一种高效、简便、快捷的管理方式。
第三章 数据结构设计
3.1 E-R图设计及分析
根据系统分析规划出如下实体:教室资源实体、课程实体、教师实体。
教室资源实体E-R图:
教室资源
教室编号
班级数
图3.1教室资源实体E-R图
课程需求实体E-R图:
课程需求
课程编号
班级数
教师编号
是否安排
学时
图3.2 课程需求实体E-R图
教师实体E-R图
教师信息
教师名称
教师编号
性别
年龄
课程编号
图3.3 教师实体E-R图
各实体之间的联系:
一个班级可以上多门课程,所以班级和课程是一对多的关。同一课程课占用不同教室,同一教室可以被不同课程占用,所以课程和教室是多对多关系。一个教师可以讲授多门课程,一个课程可以被多个老师讲授,所以教室和课程是多对多关系。
教师
对应
课程
选择
教室
n
1
1
n
图3.5 系统E-R图
3.2数据库设计
本系统主要功能都是对数据库中表的操作,如显示、添加、修改、查询、删除、分配资源等。所以,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构可以提高数据存储的效率,保证数据的完整和一致。根据需求分析,本系统在数据库中共建了六个表。
表3.1 教师信息表
列名
数据类型
长度
是否为空
说明
TID
int
4
否
教师编号(主键)
Name
char
10
否
教师姓名
CID
int
4
否
课程号
sex
char
10
是
性别
age
int
4
是
年龄
Cont
char
10
是
联系方式
表3.2 课程需求表
列名
数据类型
长度
是否为空
默认值
说明
ID
int
4
否
无
排课号
CID
int
4
否
无
课程编号
TID
int
4
否
无
教师编号
ClassNum
int
4
否
无
班级数
Arrange
char
10
是
No
是否安排
表3.3 教室信息列表
列名
数据类型
长度
是否为空
说明
RID
int
4
否
教室编号(主键)
ClassNum
int
4
否
班级数
表3.4 课程信息表
列名
数据类型
长度
是否为空
说明
CID
int
4
否
课程编号(主健)
CName
char
10
否
课程名称
Weekhour
int
4
否
周学时
表3.5 用户信息表
列名
数据类型
长度
是否为空
说明
username
char
10
用户名
password
char
10
密码
popemod
int
4
权限
表3.5 教室安排表
列名
数据类型
长度
是否空
默认值
说明
RID
int
4
否
无
教室号
Week
char
10
否
无
星期
Node
char
10
否
无
节数
Used
char
10
否
No
是否被占用
ID
int
4
是
0
排课号
整个系统的数据都是由以上六个表提供,教师信息表、教师信息表、班级信息表、课程信息表主要为修改、删除、添加、显示、查询等操作提供数据的。课程需求表则根据以上四个表,重新生成的新表(视图),存储资源分配的记录。
在整个系统中,有很多地方需要用到数据库。需要从数据库中调出数据,并且可以完成向数据库中插入新数据,从数据库中删除数据或更新数据库中的数据。每次需要用到上述数据时,必须先建立连接,打开数据库,从中调出与之相关的表,才能进一步进行操作。
3.3视图的建立
本系统一共建两个视图,分别是VIEW1、VIEW2建立语句分别如下:
CREATE VIEW dbo.VIEW1
AS
SELECT dbo.PCOURSE.ID, dbo.PCOURSE.CID, dbo.PCOURSE.TID,
dbo.PCOURSE.ClassNum, dbo.COURSE.CName, dbo.COURSE.Weekhour,
dbo.PCOURSE.Arrange
FROM dbo.COURSE INNER JOIN
dbo.PCOURSE ON dbo.COURSE.CID = dbo.PCOURSE.CID
CREATE VIEW dbo.VIEW2
AS
SELECT dbo.PCOURSE.ID, dbo.COURSE.CName, dbo.PCOURSE.TID, dbo.CHOOSE.RID,
dbo.CHOOSE.Week, dbo.CHOOSE.Node
FROM dbo.PCOURSE INNER JOIN
dbo.CHOOSE ON dbo.PCOURSE.ID = dbo.CHOOSE.ID INNER JOIN
dbo.COURSE ON dbo.PCOURSE.CID = dbo.COURSE.CID
从语句中可以看出VIEW1是由课程需求表pcourse和课程表course导出,VIEW2是由课程需求表pcourse和教师安排表choose导出。
3.4关于规则存储
将分配的资源按规则存储,编写规则解释器,将资源的存储规则表示出来。因为资源分配有一定的规律,我们将这些规律总结出一定的规则,存储到数据库中,这样避免了数据库的重复存储,防止数据库存储容量过大。
本系统资源分配记录,按节课存储的,确定一周的课表,其它周和这一周一样,所以只存储一周的课程记录,然后根据日期和第几周算出一学期的课程存储。假设有一名任课教师带一门课课程有唯一的课程编号,每周上两大节课,共十六周课,如果没有总结规则,不进行规则存储,每上一次课都要存储一次,那末一共就会在数据库中存储三十二条记录。扩大数据库的存储容量。如果进行规则存储,存储存到数据库的只有两条记录。
第四章 系统设计及模块设计
4.1系统功能模块设计
根据需求分析本系统可分如下八个模块,分别是:登录界面模块,主界面模块,系统管理模块,资源管理模块,查询功能模块,资源使用规则模块,分配功能模块和帮助模块。各模块之间的关系如下图:
登录界面
主界面
帮助
分配
功能
查询功
能
资源维护
系统
管理
资源使用规则
图4.1 各个功能模块之间的关系图
登录界面设计
该模块主要是验证用户的身份,判断其是否有权进入该系统,以及是否在进入系统后是否受到一定的权限限制。在登录界面中输入用户名和用户密码,在验证完用户名和密码是否一致后,根据其身份对其进行相应的权限限制。即系统管理员对所有的功能都可以操作,而对于普通用户来说,就会有一定的限制,他们无权查看系统用户的信息和添加系统用户,只能进行浏览操作,了解相关的信息而已。
单击“登录”按钮后,应用程序先执行一次数据库查询,检验用户名和口令是否和数据库中用户信息表中的一致。如果一致则打开主界面,若不一致,则提示密码错误,并且给用户尝试机会,如果三次均未成功,应用程序自动关闭。
4.2子功能模块设计及功能描述
4.2.1系统管理功能模块
此模块实现用户管理,包括管理员权限管理及用户对用户名和密码的修改,系统管理功能模块图如下:
系统管理模块
修改密码
添加用户
退出系统
图4.2 系统管理功能模块图
修改密码界面设计
考虑系统的安全性,可以让用户自己修改自己的用户名和密码。本系统可以在应用程序运行时,修改用户名和密码。用户口令修改窗口在 |系统| 菜单下的 |修改口令| 菜单,在用户修改用户名和密码前,必须输入员用户名和口令,再输入新的用户名和口令。只有原口令和密码正确,才能修改用户名和口令。并提示密码修改成功。如果不正确,则提示密码输入有误。
添加用户界面设计
管理员有添加用户的权限,添加用户窗口在 |系统| 菜单下的 |添加用户| 菜单,管理员通过身份验证方可进入添加用户界面,进行用户添加操作。
4.2.2资源管理功能模块
本模块向下分为教室信息管理模块、课程信息管理模块、教师信息管理模块三个功能模块。主要实现对资源信息进行管理,实现对数据显示、修改、删除、添加功能。资源管理模块及其子功能模块图如下:
资源管理模块
教室信息管理
课程信息管理
教师信息管理
课程需求管理模块
图4.3 资源维护功能模块图
教室信息管理模块
教室管理模块包括教室信息的显示、添加、修改、删除功能。添加对话框可以由 |资源维护| 菜单下的 |教室信息管理|点击 “添加”按钮。弹出添加对话框,在该对话框下还设有“清空”按钮,如果用户想重新填写添加记录,逐一修改又很麻烦,可按下“清空”按钮,原来填写的信息就会全部清空,用户就可填写新的记录。
教室信息管理模块
教室信息录入
教室信息修改
教室信息删除
教室信息浏览
图4.4 教室信息管理模块图
课程信息管理模块
课程管理模块包括课程信息的显示、添加、修改、删除功能。课程添加对话框可以由 |资源维护| 菜单下的 |课程信息管理| 菜单的子菜单 |课程信息添加| ,也可以点击课程信息修改或课程信息删除对话框中的“添加”按钮。弹出添加对话框。“清空”功能如教室信息管理模块。
课程信息管理模块
课程信息录入
课程信息修改
课程信息删除
课程信息浏览
图4.5 课程信息管理模块图
教师信息管理模块
教师管理模块包括课程信息的显示、添加、修改、删除功能。教师添加对话框可以由 |资源维护| 菜单下的 |教师信息管理| 菜单的子菜单 |教师信息添加| ,也可以点击教师信息修改或教师信息删除对话框中的“添加”按钮。弹出添加对话框。“清空”功能如教室信息管理模块。
教师信息管理模块
教师信息录入
教师信息修改
教师信息删除
教师信息浏览
图4.6 教师信息管理模块图
课程需求管理模块
此模块主要功能是对各个学院报上的课程需求情况,进行添加、修改、删除等操作。根据课程要求进行教室资源分配。
课程需求管理模块
课程需求信息录入
课程需求信息修改
课程需求信息删除
课程需求信息浏览
图4.7 课程需求管理模块图
4.2.3查询功能模块
此功能模块主要是对资源分配结果进行查询,实现按教室、课程、教师、班级分别进行查询及资源分配情况查询等功能。其中资源分配情况查询为本系统重要部分。查询功能模块图如下:
查询模块
课程查询
教师查询
图4.8 查询模块图
4.2.4分配功能模块
本模块主要实现对教室资源进行自动分配功能,如果自动分配不合理,可实现手动修改工能。
分配功能模块
分配资源
修改资源
图4.9 分配功能模块图
4.2.5资源使用规则解释模块
本模块主要是对资源的规则存储进行解释,将存储规则用日历形式显示。使用户感觉清新明了。
资源使用规则
解 释
显 示
图4.10 资源使用规则解释模块图
第五章 关键技术的实现
5.1数据显示的实现
此项功能主要为普通用户所使用,普通用户可以浏览资源。此功能实现的原理:打开数据库,取出表单信息并映射到用户界面。具体实现方法如下:首先选用VC++中的ListControl控件来显示数据。打开数据库连接,选择要操作的表单,将数据库中表单的信息映射到ListControl中。另一种实现方法如下:在插入activeX控件中选择Microsoft DataGrid Control,Version6.0和Microsoft ADO Data Control,Version6.0控件。连接数据库,以表格形式显示数据。
5.2数据添加的实现
本系统中的教室信息管理、课程信息管理、查询功能模块、资源使用规则模块、分配模块用到了数据添加。功能实现原理:系统将添加信息提供给数据库处理。功能实现过程:打开数据库,找到要插入数据的表,执行插入语句,插入数据。
教室信息管理
SQL插入语句:
insert into 数据库表名Values(数据,变量名)
5.3数据删除的实现
本系统中的教室信息维护、课程信息维护用到了数据删除。功能实现原理:系统将删除信息提供给数据库处理。功能实现过程:选择一条记录,系统在数据库中找到相应的表单,执行SQL删除语句,实现删除功能。
SQL删除语句:
delete from数据库表名where(条件)
5.4数据修改的实现
本系统中的分配模块、修改口令、教室信息维护、课程信息维护用到了数据修改。功能实现原理:把要修改记录的参数传进来,这个参数就是这条记录的标识ID,系统将标识ID这条记录进行删除处理,然后插入新信息。功能实现过程:在页面选择要修改的信息,系统将这一条信息映射到修改界面,用户对信息进行修改。提交到数据库,数据库进行处理(删除原有信息插入用户修改的信息),从而实现数据修改。
5.5主要算法及流程图
5.5.1资源分配算法及流程图
开始选择安排教室或修改教室,如果选择安排教室,则选择一条教师对应他所讲授课程的一条记录,其中包括对教室的要求,判断该课程是否已安排教室,如果已安排教室,系统提示已安排教室,如果没安排教室,从数据库中查询出所有符合要求的教室,在教室列表框里列出符合条件的教室,可以选择一条记录,就会列出该教室的可使用的时间段,根据周学时选择时间段并显示出来,确定排课,确定分配资源。
如果选择修改教室,则选择以安排教室的课程记录,从数据库中查询出所有符合要求的教室,在教室列表框里列出符合条件的教室,选择一条记录,刷新该课程在原来选择的教室的记录,并且刷新原来选择的时间段记录,在教室可使用时间段列表里显示,根据修改意愿重新选择班机,再根据学时数和修改意愿重新选择时间段。则修改完毕。
开始
修改教室
是
是
选择课程安排表中的一条记录
课程被安排
提示已经安排教室
是
否
列出符合课程要求的教室
选择一个教室
显示教室可用时间段
选择一时间段
该时间段占用
提示已被占用
是
是
否
否
选择一个时间段
安排完毕
结束
继续选择
选择课程安排表中的一条记录
列出符合课程要求的教室
选择一个教室
显示教室可用时间段
选择一时间段
该时间段占用
选择一个时间段
修改完毕
继续选择
已被占用
是
否
是
否
安排教室
提示选择一个
否
否
图5.1分配资源流程图
5.5.2资源使用规则解释主要算法及流程图
用户选择所要查询的教室,然后提交,处理程序会通通过SQL语句进行查询,以教室条件,在教室安排表中查询,结果显示教室号、星期、节数、是否被占用、排课号。输入查询日期,处理程序会通通过SQL语句进行查询,查询出该日期教室的分配情况。
流程图:
开始
选择日期
按教室号在数据库中的教室安排表中查询
继续
结束
将日期转化为星期
按星期在数据库中的教室安排表中查询
继续
是
是
是
否
否
是
选择教师号
选择日期
显示出来
显示出来
选择教室
否
否
图5.2 按教室查询流程图
5.5.3教师查询主要算法及流程图
用户选择所要查询的教师,然后提交,处理程序会根据用户的提交通过SQL语句进行查询,以教师为条件,在视图2中查询,结果显示课程、教师、节课、星期、教室。
流程图:
开始
按教师查询
选择教师号
按教师号在数据库中的视图2中查询
继续
结束
显示出来
否
是
图5.3 按教师查询流程图
5.5.4按课程查询主要算法及流程图
用户选择所要查询的课程,然后提交,处理程序会根据用户的提交,通过SQL语句进行查询,以课程为条件,在schedule表中查询,结果显示课程、教师、节课、星期、教室。
流程图:
开始
按课程查询
选择按课号
按按课号在数据库中的视图2中查询
继续
结束
显示出来
否
是
图5.4 按课程查询流程图
第六章 系统调试
由于初次接触大型项目,在调试过程中遇到很多困难,而且调试是软件开发过程中最艰巨的脑力劳动,在本次毕设的系统测试也遇到了不少情况,其中有几个比较典型和重要的问题,现对其进行分析:
1. 数据库不能打开:在对数据库进行查询、添加、删除和修改时,经常会出现数据对象关闭或with模块未定义的错误,从而无法实现相关的数据库操作,在输入SQL语句时出现了不该有的字符,通过修改,系统已经达到预期想要的目的。
2. 对数据类型的使用失误,在判断cha类型的字符时,成学总是允行不对],经过调试分析,发现是字符个数不对,cha类型的字符自动补齐。如果长度为10,而你用的字符不到10,则必须用空格补齐。
3. 对控件的误操作:在使用Data Time Picker 时,向数据库添加一条记录可以添加,但添加第二条记录就添加不上,经过反复调试,察看数据库。最终发现Data Time Picker控件的日期不能是初始日期,即1970年1月1日后的任何日期都行。改变日期后,记录就可以添加了,后来将日期设为当前日期使操作更为方便。
4. 无法修改数据库:在修改数据库内容时应该是对原有记录的修改,但刚开始每次在对数据库修改后,数据库的原有记录没有被修改,修改后的记录被添加到数据库中,未达到预期的效果。更重要的是系统设计时已经限定了项目编号的唯一性,但现在修改后项目编号不在唯一,通过多次的单步调试,发现没有对原有的记录进行删除,就直接添加修改后记录。
5. 系统还有“系统提示”对话框,可以对用户进行的错误的操作进行提示,保证了整个软件的稳定性。
综合以上测试结果,本次项目控制与管理系统有着稳定性高、功能完善等优点,但在个别地方仍然存在缺憾,这些问题将在以后的测试过程中逐步完善与改正。从而也使我意识到科学的严谨性,一个小小的失误或许会引起整个系统的崩溃。
结束语
三个月的毕业设计已接近尾声,回想整个过程真是艰辛与乐趣同在。由于初次接触大型项目,一切从头开始。最初软件开发工具Visual C++及后台数据库工具 Microsoft SQL Server 2000时,明显感觉自己知识匮乏。明显缺乏信心。经过进一步学习,逐步树立了自信。
熟悉了开发工具,下一步就是理解模型,构造设计思路,首先是选择模型,将提题目要求抽象成具体模型,记过思考和老师的帮助选择学校排课作为模型,有了模型就要调研做需求分析,为此我到系里还有学校教务处做了很多次调研,建立数据库,之后设计功能,最后编码调试。
整个过程是我了解了做项目的过程,从中受益匪浅,几点体会总结如下:
首先,我的毕设题目是一个非常有研究价值的题目,也十分常有意义的题目,这次毕业设计充分锻炼了我利用所学知识分析和解决实际问题的能力。并锻炼了我深层思维能力。考虑问题要全面,谨慎。
其次,这次毕业设计使我的编程能力得到了很大的提高。经过毕业设计的全过程,我对微软的MFC技术有了全新的认识,利用VC6.0编写应用程序的能力也有了很大的提高。
最重要的还是知识面的拓宽,原来对软件编程几乎是一无所知,经过了整个毕业设计,自己亲身经历这个过程。对对软件编程有很深的理解。
总之,经过这三个月的学习,这次毕业设计是我第一次做一个比较大一点的完整的题目,也是我第一次独立完成一个比较完整的大型项目,使我增加了自信心,加强了思维的慎密性,提高了实际工作能力,为我以后顺利走上工作岗位做了很好的铺垫。
此外,由于初次接近大型项目,经验能力不足,很多地方考虑不是很周全,程序还有一些漏洞,有待进一步改进。
致谢
在整个毕业设计过程中,指导教师徐蕾老师给予了我无私的指导和帮助,从模型的理解、设计思路、详细设计、论文的撰写方面徐蕾老师一步步耐心的为我讲解,逐步引入数据库编程世界,由于初次接近大型项目,许多地方考虑不周全,不合理,徐蕾老师一一帮我指正。徐蕾老师严密的思维和严谨的治学态度,对我有很深的影响。在此向徐蕾教授表示最衷心的感谢!
最后,感谢所有支持我、帮助过我的老师和同学,请接受我最真诚的谢意。
参考文献
1 李闽溟,吴继刚,周学明 .Visual C++6.0数据库系统开发实例导航. 人民邮电出版社,2002
2 齐舒创作工作室 .Visual C++6.0用户界面制作技术与应用实例. 中国水利水电出版社,1999
3 萨师煊,王珊 .数据库系统概论. 高等教育出版社,2000
4 罗运模,璀灿斌等编著 .SQL Server 7.0应用基础及开发实例. 北京:北京航空航天大学出版社,2000
5 张海棠 .Visual C++6.0编程指南. 航空工业出版社,1999
6 康博工作室,查礼 .Visual C++6.0开发实用教程. 人民邮电出版社,1998
7 黄庆生,汤毅,戴宁 .精通Visual C++6.0. 人民邮电出版社,1999
附录
程序段举要:(ArangeDlg.cpp)
void CArrangeDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult)
{
int i=m_basic.GetSelectionMark();
if(i==-1)
{
MessageBox("please choose a record first!");
}
else
{ m_basic.SetHotItem(i);
int id=atoi(m_basic.GetItemText(i,0));
strSQL.Format("select * from VIEW1 where ID=%d",id);
CViewSet m_viewset(&m_database);
m_viewset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
CString rr=m_basic.GetItemText(i,6);
int choice=CDialog::GetCheckedRadioButton(IDC_RADIO1,IDC_RADIO2);
if(choice==IDC_RADIO1)
{
if(rr.Compare("Yes ")==0)
{
MessageBox("已经安排完教室!");
*pResult = 0;
return;
}
CString str;
m_viewset.GetFieldValue("ClassNum",str);
strSQL.Format("select * from ROOM WHERE ClassNum>=%d",atoi(str));
RefreshData2();
}
else if(choice==IDC_RADIO2)
{
if(rr.Compare("Yes ")==0)
{
CString del;
del.Format("select * from CHOOSE where ID=%d",id);
CChooseSet m_chooseset(&m_database);
m_chooseset.Open(AFX_DB_USE_DEFAULT_TYPE,del);
if(m_chooseset.GetRecordCount()!=0) m_chooseset.MoveFirst();
while(!m_chooseset.IsEOF())
{
m_chooseset.Edit();
m_chooseset.m_Used="No";
m_chooseset.m_ID=0;
m_chooseset.Update();
m_chooseset.MoveNext();
}
CString str;
m_viewset.GetFieldValue("ClassNum",str);
strSQL.Format("select * from ROOM WHERE ClassNum>=%d",atoi(str));
RefreshDat
展开阅读全文