1、项目管理数据库课程设计6总结 216.1 收获与体会 211 绪论1.1 课题背景目前,信息系统在我国各高校中的地位越来越重要,越来越突出,随着IT技术的进步和高等院校规模的逐步扩大,项目管理工作日益复杂,项目信息数据库也日益庞大,早期的人工管理方式已经不能适应高校发展的要求,于是项目管理系统应允而生,该系统旨在综合管理项目的信息,对软件项目的档案,成绩,专业,课程,以及开发人等基本情况综合管理,以达到高效,快速,迅捷,准确的掌握全方面信息,大大降低了人工管理的复杂度,其简单的操作界面和强大的数据库操作功能带给管理者和使用者很大的经济效益。本系统主要包含以下几个模块:用户登录模块、原始数据录入
2、、基本档案模块、选修课程情况、成绩管理模块等。从而,实现对项目、使用者、课程信息等实现全面、动态、及时的管理和操作。1.2 数据库连接技术介绍本系统采用的是Visual Basic 6.0开发工具做为开发系统程序,使用ActiveX数据对象(ADO)作为接口访问数据库,本系统的数据库的连接采用了广泛使用的ODBC技术,实现和数据库的底层通信。ODBC关键技术:第一,数据源的连接;第二,数据库表的连接;第三,数据库记录集操作;第四,数据库的关闭。一个完整的ODBC由下列几个部件组成。(1)应用程序。执行处理并调用ODBC函数,以提交PL/SQL语句并检索结果; (2)ODBC管理器。该程序位于W
3、indows控制面板的 32位ODBC内,其主要任务是管理ODBC驱动程序很数据源;(3)驱动程序管理器。是ODBC中最重要的部件,加载并卸载驱动程序,实现ODBC函数调用,或者把他们传送到驱动程序。驱动程序管理器包含在ODBC32.DLL中,对用户是透明的;(4)ODBC API;(5)ODBC驱动程序。它是一些DLL,提供了ODBC和数据库之间的接口。它的任务是实现ODBC函数调用后,向指定的数据源提交一个SQL请求,并把结果返回给应用程序;2 系统分析2.1 用户操作流程用户必须通过已经注册的帐号和密码才能进行对该系统的管理,否则在登录系统前要进行注册;超级管理员通过输入密码和帐号可以对
4、数据库的数据进行各种操作,而普通用户仅仅可以进行一部分的操作;用户根据自己的实际情况选择相应的功能来提取自己所需信息。2.2 用户需求(1) 安全性: 用户必须通过帐号和密码才能进行对该系统的管理。(2) 权限分配: 超级管理员通过输入密码和帐号可以对数据库的数据进行各种操作,而普通用户仅仅可以进行一部分的操作。(3) 易操作性: 可以快速进行查询操作,进行数据的汇总。 3 系统设计3.1 设计思路(1) 系统分成前台和后台相对独立的模块,前台用来构架系统的开发界面并完成功能设计,后台数据库服务器来完成数据库的管理工作;(2) 采用模块化程序设计思想,整个系统采用模块化结构设计,作为应用程序有
5、较强的可操作性和扩展性。(3) 合理的数据流设计,在应用系统设计中,相对独立的模块间以数据流相互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性。3.2 系统功能模块图系统结构模块图如下所示: 图3.1 系统功能模块图3.3 模块功能设计本系统共包括10大模块,分别是用户登录模块,项目档案管理模块,项目组信息管理模块,项目进展管理模块,项目信息添加模块,个人统计模块模块,全局模块统计模块,单科情况统计模块。每个模块的功能如下:1用户登录模块:分为超级管理员和普通用户两种,默认为普通用户,在进入了主界面后,可以在菜单栏中输入管理员密码和帐号,从而切换至管理员身份。普通用户权限受限,可以
6、进行部分操作(查询,统计),管理员可以对该系统进行任何操作。2项目信息管理:可以对项目档案(包括:项目号,姓名,性别,系别,政治面貌)进行查询,删除,修改操作。3项目组信息管理:可以对项目组信息(包括:项目号,姓名,性别,家庭住址,身份证)进行查询,修改,删除操作。4功能模块信息管理:可以对功能模块信息(包括:项目号,姓名,系别,课程号,课程名,教导人)进行查询,删除,修改操作。5项目信息添加:可以对项目的整体情况进行添加操作(包括:项目号,姓名,性别,系别,政治面貌,课程号,身份证,家庭住址),当然这个操作是对于管理员来说的,普通用户无权进行该项操作。6项目进展管理:可以对项目进展(包括:项
7、目号,课程名,任课教师)进行查询,修改,添加,删除操作,其中修改,添加,删除操作必须是管理员身份,而查询操作任何人均可。7项目文档管理:可以对项目文档(包括:项目号,姓名,系别,课程号,课程名,成绩)进行查询,修改,删除,更新,个人统计,全局统计,排序等操作。8项目报错模块:可以对项目报错情况(包括:项目号,姓名,系别,课程号,课程名,成绩)进行统计,算平均成绩,最高成绩,不及格情况,及格情况,排序操作。9项目总结统计:可以对项目总结情况(包括:项目号,姓名,系别,课程号,课程名,成绩)进行统计,按学号排序,最高成绩,最低成绩,不及格情况,及格情况,单科情况统计操作。10单科情况统计:可以对全
8、部项目某部分的情况进行统计算平均进度,最高完成数,及格人数不及格情况以及人数,最低完成数,排序操作。4 系统数据库设计4.1 系统数据库的建立 数据库的设计尽量的实现与应用程序做到最低等级的耦合,按照三层模式两级联系的方式设计数据库,把数据库设计成层次清晰的,高效的,实用数据库。 鉴于系统开发数据的信息量大,容易造成冗余和数据不一致性,因此采用了触发器来帮助完成工作,从而也很好的减少了代码编辑量,达到了程序与后台执行的分离,从而提高了工作效率,大大节省了时间。4.2 系统E-R图项目管理系统数据库E-R模型,如下图所示:图4.1项目管理系统E-R模型图4.3 数据表的创建 由数据模型利用Ora
9、cle10g进行数据库的详细设计,其基本表的设计如下:表4.3.1 用户信息表列名数据类型长度允许为空默认值字段名说明useVARCHAR224用户名主键pwdVARCHAR224密码idVARCHAR26身份标志表4.3.2 项目信息表列名数据类型长度允许为空默认值字段名说明snoVARCHAR224项目号主键,自动增长snameVARCHAR224姓名ssexVARCHAR224性别sdeptVARCHAR224系别 表4.3.3项目文档信息表列名数据类型长度允许为空默认值字段名说明snoVARCHAR224项目号cnoVARCHAR224课程号gradeVARCHAR224分数 表4.3
10、.4 项目组信息表列名数据类型长度允许为空默认值字段名说明snoVARCHAR224项目号主键,自动增长snameVARCHAR224姓名ssexVARCHAR224性别sdeptVARCHAR224系别MianmaoVARCHAR26政治面貌identityVARCHAR224身份证AddressVARCHAR224家庭住址 表4.3.5项目进展信息表列名数据类型长度允许为空默认值字段名说明cnoVARCHAR224课程号主键,自动增长cnameVARCHAR224课程名cteacherVARCHAR224教师名 表4.3.6 功能模块信息表列名数据类型长度允许为空默认值字段名说明snoVA
11、RCHAR224项目号主键,自动增长snameVARCHAR224姓名sdeptVARCHAR224系别cnoVARCHAR224课程号cnameVARCHAR224课程名scoreVARCHAR224分数4.4 触发器设计创建的触发器如下:CREATE TRIGGER delete_proj /删除项目表时,实现数据一致性AFTER DELETE ON proj FOR EACH ROWDECLAREsno CHAR(10)BEGIN DELETE FROM sc WHERE sc.sno=:OLD.snoEND delete_projCREATE TRIGGER update_proj /
12、更新项目表时,实现数据一致性AFTER UPDATE ON student FOR EACH ROWDECLAREsno CHAR(10)BEGIN UPDATE scSET sc.sname=:NEW.sname ,sc.sdept=:NEW.sdeptWHERE sc.sno=snoEND update_studentCREATE TRIGGER insert_student /插入项目表时,实现数据一致性AFTER INSERT ON student_all FOR EACH ROWDECLAREsno CHAR(10)BEGIN INSERT INTO proj VALUES(:NEW
13、.sno ,:NEW.sname,:NEW.sdept);INSERT INTO mianmao VALUES(:NEW.sno,:NEW.mianmao);END insert_projCREATE TRIGGER insert_ /插入选课信息时,实现数据一致性AFTER INSERT ON xuanke FOR EACH ROWDECLAREsno CHAR(10)BEGIN INSERT INTO sc VALUES(:NEW.sno ,:NEW.cno,:NEW.greade);END insert_xuanke5 系统实现5.1 系统实现工具与支持平台(1)用户界面:本系统采用Vi
14、sual Basic 6.0设计,用户交互界面采用的是基于的窗口界面。(2)硬件接口:运行本系统的硬件基本要求如下:CPU: Intel P3及以上;内存:512MB及以上;硬盘:40GB及以上。(3)软件接口:Visual Basic 6.0开发工具数据库服务器:Oracle10g。5.2 系统界面 下面为运行后的界面图:图5.1 系统登录界面图5.2 项目管理信息界面图5.3 工作记录管理界面图5.4综合信息查询界面5.3 系统主要功能实现5.3.1 前台1用户登录模块:分为超级管理员和普通用户两种,默认为普通用户,在 进入了主界面后,可以在菜单栏中输入管理员密码和帐号,从而切换至管理员身
15、 份。普通用户权限受限,可以进行部分操作(查询,统计),管理员可以对该系统进行任何操作。2项目档案管理:可以对项目档案(包括:项目号,姓名,性别,系别, 政治面貌)进行查询,删除,修改操作。3项目组信息管理:可以对项目组信息(包括:项目号,姓名,性别,家庭住址,身份证)进行查询,修改,删除操作。4功能模块信息管理:可以对功能模块信息(包括:项目号,姓名,系别,课程号,课程名,指导人)进行查询,删除,修改操作。5项目信息添加:可以对项目的整体情况进行添加操作(包括:项目号,姓名,性别,系别,政治面貌,课程号,身份证,家庭住址),当然这个操作是对于管理员来说的,普通用户无权进行该项操作。6 选课信
16、息管理:可以对项目进展(包括:项目号,课程名,任课教师)进行查询,修改,添加,删除操作,其中修改,添加,删除操作必须是管理员身份,而查询操作任何人均可。7项目文档管理:可以对项目文档(包括:项目号,姓名,系别,课程号,课程名,成绩)进行查询,修改,删除,更新,个人统计,全局统计,排序等操作。8项目报错模块:可以对项目报错情况(包括:项目号,姓名,系别,课程号,课程名,成绩)进行统计,算平均成绩,最高成绩,不及格情况,及格情况,排序操作。9项目总结统计:可以对项目总结情况(包括:项目号,姓名,系别,课程号,课程名,成绩)进行统计,按学号排序,最高成绩,最低成绩,不及格情况,及格情况,单科情况统计
17、操作。10单科情况统计:可以对全体学生某科目的情况进行统计算平均进度,最高完成数,及格人数不及格情况以及人数,最低完成数,排序操作。5.3.2 后台 充分利用数据库的大容量、高效率等特点,为用户提供强大的功能支持, 当用户进行插入,删除,修改操作时候,数据库触发器帮助完成功能,大大减少代码的编写量。5.4 系统核心代码5.4.1 主程序CMyDlg:CMyDlg(CWnd* pParent /*=NULL*/): CDialog(CMyDlg:IDD, pParent) m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME); k=1; j=1;BOOL C
18、MyDlg:OnInitDialog() CDialog:OnInitDialog(); m_menu.LoadMenu(IDR_MENU2); SetMenu(&m_menu); b=1; CLogDlg dlg; b=dlg.b; dlg.DoModal(); if(b=0) CDialog:OnOK(); if(k=1) m_bnMod.EnableWindow(false); m_bnDel.EnableWindow(false); m_bnStudent.EnableWindow(false); m_imagelist.Create(16,16,TRUE,2,2); m_imagel
19、ist.Add(AfxGetApp()-LoadIcon(IDI_ICON2); m_listCtrl.SetImageList(&m_imagelist,LVSIL_SMALL); m_font.CreateFont(16, 0,0,0,FW_NORMAL, 0,0,0, DEFAULT_CHARSET, OUT_CHARACTER_PRECIS, CLIP_CHARACTER_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, Arial); m_listCtrl.SetFont(&m_font);m_listCtrl.SetExte
20、ndedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES); m_listCtrl.SetBkColor(RGB(247,247,255); m_listCtrl.SetTextColor(RGB(0,0,255); m_listCtrl.SetTextBkColor(RGB(247,247,255); Initlist(); DisplayData(); return TRUE;void CMyDlg:OnPaint() if (IsIconic() CPaintDC dc(this); / device context for paintingSe
21、ndMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);int cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;dc.DrawIcon(x, y, m_hIcon);else CPaintDC dc(thi
22、s); / device context for painting CRect rect; GetClientRect(&rect); dc.FillSolidRect(rect,RGB(229,232,244); /229,232,244 CDialog:OnPaint();HBRUSH CMyDlg:OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) HBRUSH hbr = CDialog:OnCtlColor(pDC, pWnd, nCtlColor);if(nCtlColor=CTLCOLOR_STATIC)pDC-SetBkColor(
23、RGB(229,232,244);pDC-SetTextColor(RGB(252,63,152);void CMyDlg:OnLButtonDown(UINT nFlags, CPoint point) PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point. x, point.y); CDialog:OnLButtonDown(nFlags, point);void CMyDlg:Initlist()DWORD dwExStyle=LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERD
24、RAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_UNDERLINEHOT;m_listCtrl.SetExtendedStyle(dwExStyle);m_listCtrl.InsertColumn(0,学号,LVCFMT_CENTER,70);m_listCtrl.InsertColumn(1,姓名,LVCFMT_CENTER,70);m_listCtrl.InsertColumn(2,性别,LVCFMT_CENTER,80);m_listCtrl.InsertColumn(3,系别,LVCFMT_CENTER,60);static int b=1;void C
25、MyDlg:OnAboutme() CAboutDlg dlg;dlg.DoModal();HBRUSH CAboutDlg:OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) HBRUSH hbr = CDialog:OnCtlColor(pDC, pWnd, nCtlColor); if(nCtlColor=CTLCOLOR_STATIC) pDC-SetBkColor(RGB(229,232,244); pDC-SetTextColor(RGB(252,63,152); return hbr;void CAboutDlg:OnPaint()
26、CPaintDC dc(this); / device context for paintingCRect rect;GetClientRect(&rect);dc.FillSolidRect(rect,RGB(229,232,244);void CMyDlg:OnButtonJiguan() CJiguanDlg dlg;dlg.DoModal();void CMyDlg:OnButtonDangan() CDanganDlg dlg;dlg.DoModal();void CMyDlg:DisplayData()if(!m_db.IsOpen()if(!m_db.Open(_T(MySQL;
27、UID=sa;PWD=yushuai)MessageBox(Cannot access the database!,新书登记);return;CStudentRecordset *m_pset=new CStudentRecordset(&m_db);CString strSQL;strSQL.Format(select * from student);TRY m_pset-Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);CATCH(CDBException,ex) AfxMessageBox (ex-m_strError);AfxMessageBox (ex-m_s
28、trStateNativeOrigin); AND_CATCH(CException,e) TCHAR szError100;e-GetErrorMessage(szError,100);AfxMessageBox (szError);END_CATCHif(m_pset-GetRecordCount()=0) MessageBox(没有任何学生信息!,学生登记); m_db.Close();return;m_listCtrl.DeleteAllItems();m_pset-MoveFirst();char buf50;CDBVariant varValue;int i=0;CString s
29、no,sname,sdept,cno,cname,cteacher;while(!m_pset-IsEOF() m_listCtrl.InsertItem(i,buf);m_pset-GetFieldValue(short)0,sno);m_listCtrl.SetItemText(i,0,sno);m_pset-GetFieldValue(1,sname);m_listCtrl.SetItemText(i,1,sname);m_pset-GetFieldValue(2,sdept);m_listCtrl.SetItemText(i,2,sdept);m_pset-GetFieldValue(3,cno);m
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1