资源描述
软件项目开发综合实践大作业题 目:企业培训信息管理系统的分析与设计专 业: 09计算机应用1班 作 者: 指导教师: 黄 钢 目 录第1章:企业培训信息管理系统的可行性分析- 1 -1.1可行性研究方法- 1 -1.2 技术可行性评价- 1 -1.3 结论意见- 1 -第2章:需求分析- 2 -2.1 客户需求分析- 2 -2.2 系统用例分析- 2 -2.3系统功能分析- 3 -第3章:设计过程- 5 -3.1“企业培训管理系统”系统设计- 5 -3.2 E-R图设计6第4章 功能实现和系统测试94.1用户登录94.2系统欢迎界面104.3培训管理模板设计11培训学员信息管理的对话框114.3.2 培训教师管理的对话框17培训课程管理对话框184.3.4 培训教材管理对话框194.3.5 培训计划管理对话框204.3.6 培训资源管理对话框214.4培训系统设置对话框22第5章:系统总结23参考文献24第1章:企业培训信息管理系统的可行性分析当今社会竞争异常激烈,个人就业压力大,企业对员工的要求不断提高,这些都是很现实的问题。个人通过有效的培训,就业就会相对容易些;企业通过对内部员工的培训,会提高员工整体素质,进而提高企业运营效率。这样,社会上的一些培训机构应运而生,企业内部的培训也越来越受到企业领导的重视。通过一个培训管理系统,可以使得社会上的培训结构或企业内部培训工作系统化、规范化和自动化,从而达到提高培训管理效率的目地。人类跨入21 世纪以来, 全球新知识、新技术发展迅速,为适应这一变革, 人类唯一的选择就是加强自身的学习, 不断充“ 电” , 由此终身学习成为当今人们的共识。培训, 作为终身学习的重要渠道, 越来越受到各企、事业单位的重视。为更好地组织、管理各层次人员的继续教育情况, 实现培训管理的规范化、制度化和长期化, 最大限度地发挥培训的作用, 将培训工作必须采用计算机进行管理。1.1可行性研究方法 通过调查分析开发企业培训管理所具备的能力及实现的方法。确定总体结构,利用SQL Server数据库所具有的能力,以最简洁最容易的方法,使用VC+使其成为一个初级的系统软件。1.2 技术可行性评价就目前使用的开发技术来说建议系统的功能目标应该能够达到;利用现有的技术在规定的期限内开发工作基本能够完成。该系统对客户的影响:建议系统是为了改善原有系统在经费支出过高的缺点的,所以新系统一经使用在经费支出方面一定会得到很好的改善,用户在使用了新系统后只需要花一定资金购买一部分计算机与软件就能实现自动化。该项目为独立开发,在技术上没有使用任何现有的软件与方法。所以在法律方面不会存在侵犯专利权、侵犯版权等问题,完全按照合同规定的责任履行。1.3 结论意见 经过一系列的各个不同方面的可行性分析,分析员和用户及使用部门的负责人对需要解决的问题取得基本的一致看法,开发小组的开发方案的到批准,使用部门负责人同意开发工程继续进行下去。第2章:需求分析需求分析是进行软件开发的第一步,也是最重要的一步。只是充分理解了客户的需求以后,才能进行更有效的系统设计。否则,设计出来的程序架构会存在诸多问题,不符合客户的最终要求。2.1 客户需求分析在这里,客户希望通过一个培训管理系统,对培训的学员、培训的教师、培训课程、培训教材、培训计划和培训资源等进行有效的管理,使得内部培训工作系统化、规范化和自动化。整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,需求的核心如下:(1) 系统界面要简洁明了,易于操作。(2) 系统要有一个登录界面,合法用户才可以进入系统。(3) 用户登录成功后,系统显示欢迎使用的信息。(4) 利用次系统,用户可进行6个方面的管理,即培训学员的管理、培训教师的管理、培训课程的管理、培训教材的管理、培训计划的管理和培训资源的管理。(5) 用户可以对系统进行相关的设置,比如,修改密码、启动后最小化、窗口总在最前面、显示系统时间等。(6) 该系统要有使用说明。2.2 系统用例分析基于上面的需求分析,我们可以列出用户操作的模块,其中的每个模块对应一个功能,如图2.1所示。图2.1 UML用例图通过对系统需求的分析,可以确定系统只有一个执行者:用户行为者(培训学员和培训教师)。用户行为者:通过互联网,查询培训信息和个人培训信息,还可以自己办理培训等。 用户借助此培训系统,可以进行以下操作:1. 登录系统;2. 使用培训管理:培训学员管理、培训教师管理、培训课程管理、培训教材管理、培训计划管理、培训资料管理。3. 进行系统设置;4. 查询使用帮助。2.3系统功能分析系统功能分析是在系统开发的总体任务的基础上完成。本例子中的职工培训管理系统需要完成功能主要有:(1)登录系统(2)显示“欢迎使用”信息;(3)培训学员信息的输入、查询和修改,包括姓名、性别等;(4)培训教师信息的输入、查询和修改;(5)培训课程信息的输入、查询和修改, 包括课时、课程种类等;(6)培训教材信息的输入、查询和修改;(7)培训计划信息的输入、查询和修改;(8)培训资源信息的输入、查询和修改;(9)系统设置的实现,包括修改登录密码等;(10)使用帮助的实现,包括系统的使用说明和开发人员的联系方法。系统功能模块设计: 在系统功能分析的基础上, 得到如图1所示的系统功能模块图。根据上面介绍的功能,可以设计出系统的总体功能模块,如图2.2所示:培训管理系统登录系统欢迎使用培训管理系统设置使用帮助培训学员管理培训教师管理培训课程管理培训教材管理培训计划管理培训资源管理图2.2 总体功能模块第3章:设计过程 3.1“企业培训管理系统”系统设计用包图描述,如图3.1所示。企业培训管理系统图3.1 “企业培训管理系统”包图系统设置子系统使用说明子系统培训管理子系统窗口总在最前面培训教材管理培训计划管理启动后最小化培训课程管理使用说明联系我们培训学员管理培训教师管理培训资源管理修改登录密码修改登录密码显示系统时间 3.2 E-R图设计本系统包含的实体有:学员实体、教师实体、课程实体、教材实体、计划实体和资源实体。各个实体具体的描述E-R图如图3.2-图3.9所示:培训学员学员号性别/年龄身份证号民族籍贯参加工作时间婚姻/健康Email图3.2 培训学员实体E-R图培训教师教师号教师姓名教师学历开始执教时间对教师的评价图3.3 培训教师实体E-R图培训课程课程号课程名称课程类别课程描述学时使用教材图3.4 培训课程实体E-R图培训教材教材编号教材作者教材名称教材状态标记课程编号教材数量/价格图3.5 培训教材实体E-R图培训计划课程号课程结束时间课程开始时间教师号上课人数上课的地点图3.6 培训课程实体E-R图培训资源资源号资源名称资源状态标记资源价格资源数量备注图3.7 培训资源实体E-R图实体和实体之间的关系如图3.8所示:课程学员教材资源教师学习使用教学使用图3.8 实体之间的关系E-R图第4章 功能实现和系统测试对于本系统的测试实现,由于考虑到篇幅问题,这里只给出了登录、培训学员管理和培训学员信息在主要代码,其他代码类同。4.1用户登录用户使用本系统时,首先要通过本系统的身份认证,此过程叫做登录。 登录过程需要根据用户名和密码判断是否为合法用户。 用户有3次机会进行身份认证,如果3次输入的用户名和密码和数据库数据不能匹配,则强制退出系统。 登录窗体的界面如图4.1所示:图4.1 登录对话框void CLoginDlg:OnLoginButton()/ 判断登录用户是否合法/ TODO: Add your control notification handler code hereCLoginSet m_recordset(&m_database);CString csSQL = _T();UpdateData(TRUE);csSQL.Format(_T(select * from USER_PWD where USER = %s AND PWD = %s), m_csUserName, m_csPassword);m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,csSQL); / 打开记录集if (m_recordset.GetRecordCount() = 0)if (m_nTimes m_csUserName = m_csUserName;CDialog:OnOK();/ 关闭登录窗口CTrainingSystemDlg TrainingSystemDlg; / 显示培训系统主窗口TrainingSystemDlg.DoModal(); 4.2系统欢迎界面图4.2 系统欢迎界面4.3培训管理模板设计通过培训管理模块进一步的实现培训学员、培训教师、培训课程、培训教材、培训计划、培训资源的管理。图4.3 培训管理模块4.3.1培训学员信息管理的对话框培训学员信息管理的对话框可用来添加和修改学员信息。设计培训学员管理对话框如图4.4所示:图4.4 培训学员管理对话框/ 显示培训学员信息对话框,并将新添加的培训学员信息从数据库中查询出来,void CTrainingStudentManage:OnAddButton() / TODO: Add your control notification handler code hereCTrainingStudentInfo TrainingStudentInfoDlg; / 显示培训学员信息对话框TrainingStudentInfoDlg.DoModal();m_database.Close();TrainingStudentInfoDlg.m_database.Open(_T(Training); / 打开连接UpdateData();/ 更新数据void CTrainingStudentManage:OnDeleteButton()/ 删除指定的培训学员的信息,同时更新数据库。/ TODO: Add your control notification handler code hereint i = m_listctrlTrainingStudent.GetSelectionMark();if (m_listctrlTrainingStudent.GetItemCount() = 0)AfxMessageBox(_T(_ 当前列表中没有记录,点击删除没有意义!);return;else if (i = -1)AfxMessageBox(_T(_ 请先选择一条记录!);return;elseint nStudentID = atoi(m_listctrlTrainingStudent.GetItemText(i,0); / 获取学员号CString csSQL = _T();csSQL.Format(_T(delete from TRAINING_STUDENT where STUDENT_ID = %d),nStudentID);m_database.ExecuteSQL(csSQL);UpdateData();/ 更新数据图4.5 培训学员信息void CTrainingStudentInfo:OnConfirmButton()/ 将培训学员的信息添加到数据对应的表中/ TODO: Add your control notification handler code hereUpdateData(TRUE);if (m_csStudentName.IsEmpty()/ 判断学员姓名是否为空AfxMessageBox(_T(_ 学员姓名不能为空,请重新输入!);GetDlgItem(IDC_NAME_EDIT)-SetFocus();return;if (m_nStudentAge = 0 | m_nStudentAge 150 ) / 判断学员年龄的有效性AfxMessageBox(_T(_ 你输入的学员年龄无效,请重新输入!);GetDlgItem(IDC_AGE_EDIT)-SetWindowText(_T();GetDlgItem(IDC_AGE_EDIT)-SetFocus();return;if (m_csNation.IsEmpty()/ 判断民族是否为空AfxMessageBox(_T(_ 民族不能为空,请重新输入!);GetDlgItem(IDC_NATION_EDIT)-SetFocus();return;if (m_csNativePlace.IsEmpty()/ 判断籍贯是否为空AfxMessageBox(_T(_ 籍贯不能为空,请重新输入!);GetDlgItem(IDC_NATIVE_PLACE_EDIT)-SetFocus();return;if (m_csIdentityCardNo.IsEmpty()/ 判断身份证号码的有效性AfxMessageBox(_T(_ 身份证号码不能为空,请重新输入!);GetDlgItem(IDC_IDENTITY_CARD_NO_EDIT)-SetFocus();return;bool bIsDigit = CheckDigit(m_csIdentityCardNo,18);int nIdentityCardNoLength = m_csIdentityCardNo.GetLength();if (!bIsDigit) | (nIdentityCardNoLength != 18)AfxMessageBox(_T(_ 你输入的身份证号码无效,请重新输入!);GetDlgItem(IDC_IDENTITY_CARD_NO_EDIT)-SetWindowText(_T();GetDlgItem(IDC_IDENTITY_CARD_NO_EDIT)-SetFocus();return;if (m_csHomeAddress.IsEmpty()/ 判断家庭住址是否为空AfxMessageBox(_T(_ 家庭住址不能为空,请重新输入!);GetDlgItem(IDC_HOME_ADDRESS_EDIT)-SetFocus();return;if (m_csTelephoneNumber.IsEmpty()/ 判断联系电话(手机)的有效性AfxMessageBox(_T(_ 电话号码不能为空,请重新输入!);GetDlgItem(IDC_TELEPHONE_NUMBER_EDIT)-SetFocus();return;bIsDigit = CheckDigit(m_csTelephoneNumber,11);int nTelephoneNumberLength = m_csTelephoneNumber.GetLength();if (!bIsDigit) | (nTelephoneNumberLength != 11)AfxMessageBox(_T(_ 你输入的电话号码无效,请重新输入!);GetDlgItem(IDC_TELEPHONE_NUMBER_EDIT)-SetWindowText(_T();GetDlgItem(IDC_TELEPHONE_NUMBER_EDIT)-SetFocus();return;if (m_csEmailAddress.IsEmpty()/ 判断Email地址是否为空AfxMessageBox(_T(_ Email住址不能为空,请重新输入!);GetDlgItem(IDC_EMAIL_EDIT)-SetFocus();return;CString csSQL = _T();/ 将培训学员信息写入数据库int i = 1;int nFlag = 0;while (!nFlag)CTrainingStudentSet m_recordset(&m_database);csSQL.Format(_T(select * from TRAINING_STUDENT where STUDENT_ID = %d),i);m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,csSQL); / 打开数据集if (m_recordset.GetRecordCount() = 0)csSQL.Format(_T(insert into TRAINING_STUDENT values(%d,%s,%s,%d,%s,%s,%s,%s,%s,%d-%d-%d,%s,%s,%s), i, m_csStudentName, m_csSex, m_nStudentAge, m_csNation, m_csNativePlace, m_csIdentityCardNo, m_csMarriageStatus, m_csHealthStatus,m_ctAttendJobTime.GetYear(),m_ctAttendJobTime.GetMonth(),m_ctAttendJobTime.GetDay(), m_csHomeAddress, m_csTelephoneNumber, m_csEmailAddress );m_database.ExecuteSQL(csSQL); / 执行SQL文m_database.Close(); / 关闭数据库nFlag = 1;i+;CDialog:OnOK();void CTrainingStudentInfo:OnResetButton()/ 重新设定培训学员的信息/ TODO: Add your control notification handler code herem_csStudentName = _T();m_csNation = _T();m_csNativePlace = _T();m_csIdentityCardNo = _T();m_csHomeAddress = _T();m_csTelephoneNumber = _T();UpdateData(FALSE);GetDlgItem(IDC_AGE_EDIT)-SetWindowText(_T();GetDlgItem(IDC_RESOURCE_COUNT_EDIT)-SetWindowText(_T();GetDlgItem(IDC_NAME_EDIT)-SetFocus(); / 为学员姓名编辑框设置焦点/ 检查输出的是否为数字字符bool CTrainingStudentInfo:CheckDigit(CString csTargetString,int nLength)int nTmpLength = 0;if (nLength = csTargetString.GetLength()nTmpLength = csTargetString.GetLength();else nTmpLength = nLength;for (int i = 0; i nTmpLength; i+)TCHAR c = csTargetString.GetAt(i) ;if (!isdigit(c) / 判断输入的字符是否是数字return false;return true;4.3.2 培训教师管理的对话框设计培训教师管理对话框如图4.6所示:图4.6 培训教师管理对话框图4.7 培训教师信息4.3.3培训课程管理对话框设计培训课程管理对话框如图4. 8所示:图4.8 培训课程管理对话框图4.9 培训课程信息对话框4.3.4 培训教材管理对话框图4.10 培训教材管理对话框图4.11 培训教材信息对话框4.3.5 培训计划管理对话框图4.12 培训计划管理对话框图4.13 培训计划信息对话框4.3.6 培训资源管理对话框图4.14 培训资源管理对话框图4.15 培训资源信息对话框4.4培训系统设置对话框图4.16 培训系统设置对话框第5章:系统总结以上介绍了企业培训管理系统的工作流程以及设计、开发过程中的关键技术。本系统研究成功之后, 应用效果良好, 减轻了各级管理人员的工作强度, 使培训管理工作更加规范化和制度化。通过本次课程设计,深刻体会到软件工程文档编写的重要性,软件工程文档是指导我们进行项目开发的指挥棒。编写好一份高效可行的软件工程文档对软件开发非常重要。还有,对系统的需求分析非常重要,需求的变成直接影响项目的开发进度。这次课程设计首先对系统的需求理解不透彻,走了一点弯路,浪费了一些时间。在以后的软件开发过程中尽量吸取本次课程设计的经验教训,提高项目开发效率。这是第一次严格的按照软件工程开发的标准开发项目。在课程设计过程中,认真编写软件开发文档和程序代码。代码编写完后,再认真测试,检查系统的不足之处。由于之前开发系统都没有编写软件开发文档的习惯,因此,在编写软件开发文档的过程中遇到了一些问题,但是通过查阅资料等途径解决了。本系统具有以下特点: (1) 具有友好的用户界面。系统以窗口方式来实现用户数据的录入,提供给用户灵活的查询界面,统计结果也以图表方式显示,方便了用户的使用。 (2) 系统具有通用性。系统针对一般企业培训管理模式进行开发,适合大多数企业的实际使用。(3) 采用面向对象技术和流行的软件工具,系统具有较好的适应性和可扩展性。参考文献1 启明工作室.Visual C+ +SQL Server 数据库应用系统开发与实例.人民邮电出版社.2004年7月2 邓如涛. 企业培训管理系统的分析与设计. 电脑知识与技术. 2006- 06- 293 陈刚, 魏东明, 李利. 企业培训管理系统的设计与实现. 2009年9月4 王维玉. Visual C+ + 项目开发深度剖析.科学出版社. 2008年9月5 胡俊敏,王俊玲. 基于Web Services的企业培训管理系统多层架构设计. 重庆科技学院学报(自然科学版).2009 年12 月
展开阅读全文