1、数据库课程设计说明书 第一章 引言1.1设计开发的意义传统意义上的职工考勤管理都是采用原始的手工操作来完成的。人事部的管理人员或办公室人员要进行经常的繁琐的记录、修改、查询、统计等工作,不仅时间长、劳动强度大、工作效率低下,并且在这种管理模式下对职工的考勤信息不全且易造成混乱。随着社会的进步,计算机科技的广泛应用,通过现代化的科学的方式对职工考勤信息进行管理已成为可能。基于此,我希望能通过开发这一管理系统,由计算机代替人工操作一系列职工基本信息的输入、修改、查询、统计等操作,既减轻了管理人员的工作强度,提高了工作效率,降低解企业的经营成本;同时,也对企业内部管理的科学化、规范化作出一点尝试。1
2、.2任务及目标项目的提出者:天津理工大学计算机与通信工程学院课题开发组。开发单位:08中加3-4班项目小组。充分了解用户的需求,了解工作的流程,以及可能出现的问题。职工考勤信息管理系统中首先必须设置好职工基本信息,职工基本信息在本系统占据着很重要的地位。在对职工的出差、出勤、加班、请假这些信息管理的时候都需通过职工基本信息进行操作。本系统结合实际的职工考勤管理制度,经过实际的需求分析,采用功能强大的Visual Basic6.0作为开发工具而开发出来的职工考勤信息管理系统。职工考勤管理信息系统的具体功能包括:职工基本信息实体,职工出勤信息实体,管理员管理系统信息实体。主要功能:管理员功能:签到
3、,增加职工及职工信息,增加登录用户,设置用户权限,查看职工出勤信息,修改职工出勤信息。 签到用户功能:签到。灵活性:本软件对变更的适应性较强,采用人工手动输入与系统自动输入相结合的形式,数据库文件可以单独转移到其他地方使用,可以保证数据的安全和高兼容性,当系统改变时可以自动调整精度与安全性1.3开发环境操作系统:windows 7编译环境:使用Visual Studio 2010来进行系统汇编使用Access 2007进行数据库管理第二章 系统分析与设计2.1系统需求分析2.1.1 处理需求根据职工签到特性,设计了以下功能:管理员功能:签到,增加职工及职工信息,增加登录用户,设置用户权限,查看
4、职工出勤信息,修改职工出勤信息。用户功能:职工签到。一些基本的功能通常是必须具备的,如用户的管理与维护,基本数据的维护,灵活的信息查询等。2.1.2信息需求本系统需要的信息:签到用户信息:职工姓名,职工编号等。2.2数据库概念结构设计职工信息表职工职工姓名职工编号签到表签到信息签到状况职工编号签到时间签到职工管理员:登录名登录名管理员密码2.3数据库逻辑结构设计2.4数据库创建签到信息表签到时间设置表签到职工信息表管理员信息表2.5系统结构设计2.5.1 功能图2.5.2 模块图职工信息E-R图职工签到表E-R图管理员E-R图第三章 系统开发及实现3.1论述设计开发采用的技术及设计效果3.1.
5、1登陆界面 实现用户输入用户名密码,当输入完成后,连接数据库查看数据库中管理员表中的数据,当正确的时候返回登录成功。实现代码CSingleDocTemplate* pDocTemplate;pDocTemplate = new CSingleDocTemplate(IDR_MAINFRAME,RUNTIME_CLASS(CCheckInDoc),RUNTIME_CLASS(CMainFrame), RUNTIME_CLASS(CCheckInView);AddDocTemplate(pDocTemplate);CdlgLogOn dlg;int ret = dlg.DoModal();if (
6、ret = IDSUPER)isSuper = TRUE;if (ret = IDCHECK)isSuper = FALSE; 3.1.2签到用户 实当以签到用户登录,则不能进行查询/修改、系统维护。职工签到界面输入正确职工编码,提示签到成功输入错误时提示不正确,重新输入3.1.3管理员用户 增加职工,管理出勤,增加登录用户等功能增加、删除、修改职工信息当职工编号存在,提示已经存在实现代码CUserRecordset rsUser;if (rsUser.IsRepeatUser(this-m_strUserName)MessageBox(此用户已经存在!,提示,MB_ICONINFORMATI
7、ON|MB_OK);elseCString strAuthority;this-m_AuthorityCombo.GetWindowText(strAuthority);if (rsUser.AddUser(this-m_strUserName,this-m_strPass1,strAuthority)MessageBox(增加成功!,提示,MB_ICONINFORMATION|MB_OK);this-UpdateUserListBox();elseMessageBox(增加失败!,提示,MB_ICONINFORMATION|MB_OK);pEditName-SetWindowText();p
8、EditPass-SetWindowText();pEditName-SetFocus();当删除员工时,同时删除签到记录实现代码void CCheckRecordset:DeleteEmpCheck(CString EmployId)if (!IsOpen()Open(CRecordset:dynaset,_T(select * from tbCheckIn where EmployeeID =+EmployId+);if(!IsBOF()MoveFirst();while(!IsEOF()this-Delete();MoveNext();增加登录用户(设置用户权限)实现代码void Cdl
9、gUser:OnButtonAdd() CEdit *pEditName = (CEdit*)this-GetDlgItem(IDC_EDIT_USERNAME);CEdit *pEditPass = (CEdit*)this-GetDlgItem(IDC_EDIT_PASSWORD1);UpdateData(true);if (this-m_strUserName = )MessageBox(必须输入用户名!,提示,MB_ICONINFORMATION|MB_OK);pEditName-SetFocus();return;if (this-m_AuthorityCombo.GetCurSel
10、() = CB_ERR )MessageBox(必须选择用户权限!,提示,MB_ICONINFORMATION|MB_OK);pEditName-SetFocus();return;CUserRecordset rsUser;if (rsUser.IsRepeatUser(this-m_strUserName)MessageBox(此用户已经存在!,提示,MB_ICONINFORMATION|MB_OK);elseCString strAuthority;this-m_AuthorityCombo.GetWindowText(strAuthority);if (rsUser.AddUser(t
11、his-m_strUserName,this-m_strPass1,strAuthority)MessageBox(增加成功!,提示,MB_ICONINFORMATION|MB_OK);this-UpdateUserListBox();elseMessageBox(增加失败!,提示,MB_ICONINFORMATION|MB_OK);pEditName-SetWindowText();pEditPass-SetWindowText();pEditName-SetFocus();void CdlgUser:OnSelchangeListUser() int iSel = this-m_ListB
12、ox.GetCurSel();if (iSel!=0)CButton *pDelBtn = (CButton*)this-GetDlgItem(IDC_BUTTON_DELETE);pDelBtn-EnableWindow(true);void CdlgUser:OnButtonDelete() int iSel = this-m_ListBox.GetCurSel();if (iSel = LB_ERR)MessageBox(请选择要删除的用户!,提示,MB_ICONINFORMATION|MB_OK);elseif (MessageBox(真的要删除这个用户吗?(Y/N),提示,MB_YE
13、SNO)=IDNO)return;elseCUserRecordset rsUser;CString strTmp;this-m_ListBox.GetText(iSel,strTmp);CString SelUserName;CString tmp;for(int i=0;i+)tmp = strTmp.Mid(i,1);if (tmp = )break;SelUserName = strTmp.Mid(0,i);BOOL bFind = FALSE;if (!rsUser.IsOpen()rsUser.Open();if(!rsUser.IsBOF()rsUser.MoveFirst();
14、while(!rsUser.IsEOF()if (rsUser.m_UserName= SelUserName )bFind = TRUE;break;rsUser.MoveNext();if (bFind)rsUser.Delete();rsUser.Close();this-m_ListBox.DeleteString(iSel);elseMessageBox(找不到符合条件的用户!,提示,MB_ICONINFORMATION|MB_OK);设置上班时间及浮动时间实现代码void CdlgConfigSet:OnConfirm() CEdit *pHourEdit = (CEdit*)th
15、is-GetDlgItem(IDC_EDIT_HOUR);CEdit *pMinuteEdit = (CEdit*)this-GetDlgItem(IDC_EDIT_MINUTE);CEdit *pDeltaEdit = (CEdit*)this-GetDlgItem(IDC_EDIT_DELTA);this-UpdateData(true);if (m_iHour24) | (m_iHour60) |(m_iMinuteSetWindowText();pMinuteEdit-SetWindowText();pDeltaEdit-SetWindowText();pHourEdit-SetFoc
16、us();CConfigRecordset rsConfig;if (!(rsConfig.AddConfigToTable(this-m_iHour,this-m_iMinute,this-m_iDelta)MessageBox (设置失败!,提示,MB_ICONINFORMATION|MB_OK);pHourEdit-SetWindowText();pMinuteEdit-SetWindowText();pDeltaEdit-SetWindowText();pHourEdit-SetFocus();elseCDialog:OnOK();查询职工出勤实现代码void CdlgEditChec
17、k:OnSee() this-UpdateData(true);CEdit *pEditYear,*pEditMonth,*pEditDay;pEditYear = (CEdit*)this-GetDlgItem(IDC_EDIT_YEAR);pEditMonth = (CEdit*)this-GetDlgItem(IDC_EDIT_MONTH);pEditDay = (CEdit*)this-GetDlgItem(IDC_EDIT_DAY);CString strY,strM,strD;pEditYear-GetWindowText(strY);pEditMonth-GetWindowTex
18、t(strM);pEditDay-GetWindowText(strD);if (strY = ) & (strM = )&(strD = )MessageBox(日期必须输入!,提示,MB_ICONINFORMATION|MB_OK);return;char year10,month10,day10;sprintf(year,%d,this-m_iYear);sprintf(month,%d,this-m_iMonth);sprintf(day,%d,this-m_iDay);if (this-m_strEmpId=)MessageBox(必须输入员工号!,提示,MB_ICONINFORMA
19、TION|MB_OK);return;CCheckRecordset rsCheck;CEmployeeRecordset rsEmployee;tryif(rsCheck.IsOpen()rsCheck.Close();rsCheck.Open(CRecordset:dynaset,_T(select * from tbCheckIn where EmployeeID = +this-m_strEmpId+);catch(CDBException &e)MessageBox(e.m_strError,提示,MB_ICONINFORMATION|MB_OK);BOOL CdlgEditChec
20、k:OnInitDialog() CDialog:OnInitDialog();this-m_CheckList.AddString(员工号 员工姓名 签到时间 结果);return TRUE; 修改职工出勤第四章 总结这次课程设计学校安排了几周时间让我们完成,我们选择了职工考勤信息系统的课题,并从图书管借了数据库程序设计和C+设计的资料书,对课程设计中会遇到的问题提前做了些准备,并到网上也找相关的系统的代码看了下,对这个系统有了一定的全局观,完成了初步的需求分析。稍作细化后,便开始设计数据库。而后做了界面设计,完成了程序大部分的主要界面。而在编码方面,我从系统的功能、规模和实用方面考虑,采用
21、C+技术。在数据库设计时,细致的考虑到了用户的全部需求,并用了大量的时间进行了信息的收集建立了比较完善的信息表,编码阶段,在设计接近完成的时候,我对部分代码做了优化,将一些重复工作加以封装调节;将批处理操作改为以事务方式处理。这次课程设计,我更加深入的了解到软件工程的复杂性,以及前期规划分析的重要性。而且如果系统再稍微大型一些,以一人之力也难以完成。以后的学习中应该学习一些先进的思想,并多加实践,从写程序和软件架构两个方面都增强自己的能力。在编程中遇到了很多困难,通过不懈的努力,在网上查找资料,借阅资料,终于完成了!我发自内心的高兴。我赶到编程设计真的很辛苦,一个程序,哪怕只有一个小小的拼写错
22、误,都不能成功运行,当写完程序测试时,心里都是在打鼓,怕出现错误,一次次的测试,一次次的更改,终于成功了!我感到十分的自豪!通过这次的数据库课程,我学会了在制作程序时应仔细谨慎,因为细小的错误都会导致程序的失败。另外老师还教会了我们,在制作一个系统时,要有自己的思想,使自己制作的程序能锦上添花,做出属于自己的东西。我也会在以后的生活学习中尽量完善自己的工作,使自己做的更好!第五章 参考文献C+ Preimer 中文版 第四版 人民邮电出版社 Access数据库开发实例解析 机械工业出版社 李俊民、高春燕等Visual C工程应用与项目实践 机械工业出版社 张雨、阮伟良等Visual C+ 从入门到精通 第二版 清华大学出版社Visual C+ 管理信息系统完整项目实例剖析 人民邮电出版社16
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922