学生个人事务管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学生个人事务管理系统
1设计目的
VC++程序设计课程设计是计算机科学与技术专业的《VC++程序设计》课程的综合性实践环节。VC++程序设计是一门实用性很强的学科,是进行软件开发的主要工具,只有进行实际操作,才能将理论知识和实际应用有机的结合起来,锻炼学生分析解决实际问题的能力,提高学生实际运用的能力,为学生毕业设计,日后工作中的软件开发打下良好的基础。2功能描述
学生个人事务管理系统是引用ADO对象操作技术以及运用这种技术操作数据库,系统以单文档结构为设计基础,在界面设计方面,采用多视图并提供快捷菜单操纵。数据库采用Microsoft Access 2000。其主要包括以下几个功能:
⑴个人信息管理:包括基本信息及保密信息,可以进行查询。
⑵课程管理:对学生已修课程的信息管理,分为必修课和选修课。
⑶课表管理:对学生课程表的管理,分为总课表和日课表。可对日课表进行查询。
⑷图书借阅管理:对借阅图书信息进行设置,分为图书馆书籍及其他书籍。
⑸好友信息管理:是一个简单的个人通信信息系统,分为同学和普通朋友俩类。
⑹娱乐信息管理:实现对娱乐信息的编辑和查询。
⑺网站信息管理:实现对网站分类。
⑻待办事务管理:实现记录学生短期内的计划及约定要做的事。
⑼添加与删除信息管理:通过快捷菜单命令实现对信息的添加与删除。
3方案论证 3.1总体设计 3.1.1功能框图
学生个人事务管理总体功能框图如下:
图1 总体功能框图
3.2详细设计 3.2.1数据库设计
数据库采用Microsoft Access 。逻辑设计阶段的任务是把概念结构转换为选用DBMS 所支持的模式。根据模块的设计以及规范化的设计要求。系统的数据库设计如表1存放系统总事务信息,即个人信息、课程信息、课表查询、图书借阅、我的好友、我的音乐、我的酷网和提示备忘8项事务。如表1所示。
学生个人事务管理系统
个人信理
课程 课表
图书借阅 好友信息 娱乐信息 网站信息 待办事务
添加与删除
基本信息 保密信息
必修课 选修课 总课表 日课表
图书馆书籍
其他书籍
同学 朋友 编辑 查询 编辑 查询 编辑 查询 添加 删除
表1总事务信息表
字段名称数据类型字段大小标题必填字段索引是否主键affairname 文本10 事务名称是无否
affairID 数字长整形事务编号是有(无重复)是
tableNO 数字整形表号是有(无重复)否
subaffair 文本20 子项名称是有(无重复)否explanation 文本50 说明否无否
3.2.3程序界面设计
3.2.3.1添加新类
(1)主框架的设计:
①添加左边显示事务项目的树视图类CLeftTreeView。从菜单栏中选择Insert|New Class 命令,添加一个新类CLeftTreeView,其基类为CTreeView。
②添加显示系统封面的Form视图类CAffairTypeView。
③添加显示事务信息的列表视图CUserListView。
④添加显示信息的Form视图类CPerInfoView。
⑤添加辅助框架类CRightPaneFrame。
3.2.3.2视图分割
(1)添加成员变量。为了将客户区分为左、中、右三部分,需要使用分隔条。在类CMainFrame 中增加一个CSplitterWnd类型的成员变量m_wndSplitter,访问方式为public,其代码如下:Public:
CSplitterWnd m_wndSplitter;
(2)添加文件包含语句。在MainFrm.cpp中添加如下文件包含语句:
#include”LeftTreeView.h”
#include”AffairTypeView.h”
#include”RightPaneFrame.h”
(3)通过ClassWizard为类CMainFrame增加虚函数OnCreateClient(),在该函数中创建分为三部分的客户区。其中左边为CLeftTreeView,中间为CAffairTypeView,右边为
CRightPaneFrame。
(4)将右窗格分为上下俩个视图,其中上面为CUserListView,下面为CPerInfoView。在类CRightPaneFrame中添加一个CSplitterWnd类型的成员变量m_wndSplitter1,访问方式为public。在RightPaneFrame.cpp中添加文件包含语句:
#include”UserListView.h”
#include”PerInfoView.h”
通过Class Wizard为类CRightPaneFrame增加虚函数OnCreateClient(),实现视图分割。3.2.4程序功能设计
3.2.
4.1左树视图中事务项的添加
(1)插入图标资源:
树视图中的每一个树项都对应一个图标,分别表示事务父项、事务子项。为了增加界面的活泼性,采用图像列表来随机选择树视图图标。
首先通过菜单命令Insert|Resource插入位图资源,其ID为IDB_TREE,然后在类CLeftTreeView中添加俩个变量。
Protected:
CImageList m_ImageList;
Int m_iImage;
(2)显示树视图:
①添加成员函数。为类CLeftTreeView增加protected类型的成员函数AddAffairTypeToTree()和AddAffairToTree()、AddAffair(),前一个函数的作用是将事务父项显示到树视图中,后俩个函数实现事务子项在相应事务父项下的显示。
②生成树。为类CLeftTreeView增加public类型的成员函数FullfillTree(),该函数调用时将根据数据库的信息自动生成相应的树到树视图。
③设置树风格和初始化树视图。初始化树视图时,将自动设置风格以及生成树。在虚函数OnInitiaUpdate()中添加以下代码:
void CLeftTreeView::OnInitialUpdate()
{
//设置树风格
::SetWindowLong(m_hWnd,GWL_STYLE,WS_VISIBLE | WS_TABSTOP