




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
山东交通学院课程设计报告书题 目: 职工信息管理系统课程设计院部 : 信息科学与电气工程学院 专 业: 计算机技术与科学 班 级 计算122 姓 名: 耿亚楠 学 号: 120811229 10月 7 日 至 10 月 18 日 共 2 周指导教师(签字): 系 主 任(签字): 年 月 日 课程设计任务书一、设计内容及要求(1)根据职工信息表,建立只含有姓名和年龄的职工信息简表。(可选功能)(2)使用继承的方法构造3个类,(即雇员类虚基类,教师类和工人类派生类)使用相应的对象放置10个职工信息。(3)编写同名display()成员函数,用来输出数组的内容。(4)按不同类别输出职工信息,比如按系输出教师信息。(可选功能)二、设计原始资料(1)C面向对象程序设计李涛高等教育出版社三、设计完成后提交的文件课程设计报告(30005000字),纸质打印稿及电子版(1)需求分析(功能模块层次图)(2)系统设计(包括详细设计和界面设计)(3)代码设计(主要功能函数)(4)测试记录(测试各项功能的正确性、容错性)(5)课程设计总结四、进度记录10月7号完成选题,完成对职工信息管理系统的功能分析和版面设计10月8号开始学习MFC,完成页面设计10月9号按照已有程序改编10月10号改编大致完成,未添加缺失的功能模块,调试不通10月11号仍旧调试不通,与同学交流获取新的设计思路10月12号周六10月13号周日10月14号尝试通过MFC控件操控SQL数据库,未使用代码10月15号继续研究DataGrid控件10月16号控件功能不全,回头尝试MFC不连数据库的半成品,成功10月17号继续尝试添加新功能10月18号总体架构完成五、主要参考资料1.李涛 C面向对象程序设计高等教育出版社2. 夏冰冰 数据库原理及应用SQL Server 2000 国防工业出版社成 绩 评 定 表 摘要课程设计是我们在学习和掌握所学知识的基础上结合实际应用而进行的一次综合分析设计能力的训练。为了提高我们的实践能力、创造力和解决实际问题的能力,进一步认识到实践对于学习的重要性,学校安排我们进行了为期两周的面向对象课程设计。职工信息管理系统程序的功能是,根据职工信息表,建立只含有姓名和年龄的职工信息简表;可以通过不同的方式对建立的信息表中的职工信息进行添加、删除、修改等,并显示信息;可以实现按不同类别输出职工信息等功能。通过这次课程设计,使我们更加熟悉的掌握了Visual C+语言的运用。帮助我们熟悉了更多Visual C+语言的功能,提高了我们的动手能力,学到了许多解决实际问题的宝贵经验同时也挖掘出了我们潜在的能力,使我们对自己更有自信,对编程也更有兴趣。我相信,只要努力、勤奋、坚持不懈,就没有什么做不到的事,不能还没开始就退缩,要勇于拼搏,敢于创新。 目 录1课程设计概述51.1开发环境概述52职工信息管理系统软件总体设计52.1职工信息管理系统软件总体设计思想52.2总体设计流程图6 2.3 需求分析.63职工信息管理系统程序源代码.64程序测试.234.1 主菜单界面.234.2 添加职工信息界面.244.3 完成添加职工信息界面.24 4.4 排序职工信息界面.25 4.5 查询职工信息界面.254.6 删除职工信息界面.275设计体会及今后的改进意见.286参考文献.29 1 课程设计概述1.1开发环境概述Visual C+是微软公司的重要产品之一, 是一种功能强大行之有效的可视化编程工具。它提供了MFC类库,使用户可以方便的开发自己想实现的功能。Visual C+6.0的主要特点:(1)自动化和宏功能。(2)可以灵活地定制工具栏和菜单。(3)可以直接运行和调试程序,还可以使用宏语言来自动操作调试器。(4)支持Internet连接。(5)一个新的便捷的项目系统可以允许一个工作区内包含多个不同的项目类型。(6)在工作区内可以包含多个并列的工程文件。(7)可以在对话框中使用WizardBar将程序同可视化元素联系起来。(8)Find in File命令支持两个独立的输出窗格,可以保存上一次搜索的结果。这些新特性可以更好地利用Visual C+开发工具进行Windows应用程序开发。2职工信息管理系统软件总体设计2.1职工信息管理系统软件总体设计思想职工信息系统的功能为实现输入数据的存储与读取,同时可添加,删除,查询,排序工人信息。职工信息系统的功能模块有:(1)提供菜单界面,方便用户对程序功能进行选择。(2)接受用户输入的一组数据,例如姓名,年龄,工号,性别,工种等(3)除了添加数据之外,还可以进行删除、查询、添加、排序等操作。程序分为多个小模块,通过调用实现各种功能,增强了程序的可建设性。 程序开始2.2总体设计流程 主菜单排序职工信息删除职工信息添加职工信息查询职工信息2.3 需求分析 职工信息系统是一个工作单位必不可缺少的管理工具,它的管理数据对于公司的决策者和管理者都是至关重要的,所以职工信息管理系统可以成为为用户提供充足的信息和快捷的查明迅手段,传统的人工方式管理信息,这种方式有很多缺点:效率低、保密性差。时间一长,将产生大量的文件和数据。这样,对于信息的查找、更新和维护都带来了不少的困难。当今社会,传统的方式已经不能满足公司的需求。随着计算机技术的不断提高,计算机作为知识经济时代的产物,它已经进入人类社会的各个行业和领域,并发挥着越来越重要的作用。使用计算机对职工信息进行管理具有:检索迅速、查找方便、可靠性高、储存量大、保密性高、寿命长、成本低等特点。这些优点能够极大的提高职工管理的效率,这也是公司的科学化、正规化管理和与世界接轨的重要条件。计算机职工信息管理系统能提供以下功能 添加职工信息并保存 查询职工信息 浏览所有职工信息 删除职工信息 将所有职工信息按照工号排序3 职工信息管理系统程序源代码/ 职工信息系统升级版Dlg.cpp : implementation file/#include stdafx.h#include 职工信息系统升级版.h#include 职工信息系统升级版Dlg.h#include#include#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialog public:CAboutDlg();/ Dialog Data/AFX_DATA(CAboutDlg)enum IDD = IDD_ABOUTBOX ;/AFX_DATA/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CAboutDlg) protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support /AFX_VIRTUAL/ Implementationprotected:/AFX_MSG(CAboutDlg)/AFX_MSGDECLARE_MESSAGE_MAP(); CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)/AFX_DATA_INIT(CAboutDlg)/AFX_DATA_INITvoid CAboutDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAboutDlg)/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAboutDlg, CDialog)/AFX_MSG_MAP(CAboutDlg)/ No message handlers/AFX_MSG_MAPEND_MESSAGE_MAP()/ CMyDlg dialogCMyDlg:CMyDlg(CWnd* pParent /*=NULL*/): CDialog(CMyDlg:IDD, pParent)/AFX_DATA_INIT(CMyDlg)m_Sex = -1;m_age = _T();m_id = _T();m_name = _T();m_Show = _T();m_Kind = -1;/AFX_DATA_INIT/ Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);void CMyDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CMyDlg)DDX_Control(pDX, IDC_EDIT_NAME, m_NAME);DDX_Control(pDX, IDC_EDIT_ID, m_ID);DDX_Control(pDX, IDC_EDIT_AGE, m_AGE);DDX_Control(pDX, IDC_LIST, m_ListControl);DDX_Radio(pDX, IDC_RADIO_M, m_Sex);DDX_Text(pDX, IDC_EDIT_AGE, m_age);DDX_Text(pDX, IDC_EDIT_ID, m_id);DDX_Text(pDX, IDC_EDIT_NAME, m_name);DDX_Radio(pDX, IDC_RADIO_GY, m_Kind);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CMyDlg, CDialog)/AFX_MSG_MAP(CMyDlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_BUTTON_ADD, OnAdd)ON_BN_CLICKED(IDC_BUTTON_DELETE, OnDelete)ON_BN_CLICKED(IDC_BUTTON_SEARCH, OnSearch)ON_BN_CLICKED(IDC_RADIO_M, OnRadioM)ON_BN_CLICKED(IDC_BUTTON_SORT, OnSort)ON_BN_CLICKED(IDC_RADIO_GY, OnRadioGy)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CMyDlg message handlersBOOL CMyDlg:OnInitDialog()CDialog:OnInitDialog();/ Add About. menu item to system menu. / IDM_ABOUTBOX must be in the system command range.ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); / Set the icon for this dialog. The framework does this automatically/ when the applications main window is not a dialogSetIcon(m_hIcon, TRUE);/ Set big iconSetIcon(m_hIcon, FALSE);/ Set small icon/ TODO: Add extra initialization herem_ListControl.InsertColumn(0,工号,LVCFMT_LEFT,100); m_ListControl.InsertColumn(1,姓名,LVCFMT_LEFT,80);m_ListControl.InsertColumn(2,性别,LVCFMT_LEFT,40);m_ListControl.InsertColumn(3,年龄,LVCFMT_LEFT,40);m_ListControl.InsertColumn(4,工种,LVCFMT_LEFT,80);return TRUE; / return TRUE unless you set the focus to a controlvoid CMyDlg:OnSysCommand(UINT nID, LPARAM lParam)if (nID & 0xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;dlgAbout.DoModal();elseCDialog:OnSysCommand(nID, lParam);/ If you add a minimize button to your dialog, you will need the code below/ to draw the icon. For MFC applications using the document/view model,/ this is automatically done for you by the framework.void CMyDlg:OnPaint() if (IsIconic()CPaintDC dc(this); / device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);/ Center icon in client rectangleint 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; / Draw the icondc.DrawIcon(x, y, m_hIcon);elseCDialog:OnPaint();/ The system calls this to obtain the cursor to display while the user drags/ the minimized window.HCURSOR CMyDlg:OnQueryDragIcon()return (HCURSOR) m_hIcon;void CMyDlg:OnAdd() / TODO: Add your control notification handler code hereUpdateData(TRUE); m_ID.GetWindowText(m_id);m_ListControl.InsertItem(0,m_id); m_NAME.GetWindowText(m_name);m_ListControl.SetItemText(0,1,m_name); m_AGE.GetWindowText(m_age);m_ListControl.SetItemText(0,3,m_age); UpdateData(TRUE);if(m_Sex=0) m_ListControl.SetItemText(0,2,男);else if(m_Sex=1)m_ListControl.SetItemText(0,2,女);UpdateData(TRUE);if(m_Kind=0) m_ListControl.SetItemText(0,4,雇员类);else if(m_Kind=1)m_ListControl.SetItemText(0,4,教师类);else if(m_Kind=2)m_ListControl.SetItemText(0,4,工人类);UpdateData(TRUE);m_id=;m_name=;m_Sex=-1;m_age=;m_Kind=-1;UpdateData(FALSE);void CMyDlg:OnDelete() / TODO: Add your control notification handler code hereUpdateData(TRUE);int i=0,num=0,idx;while(m_ListControl.GetItemText(i,0)!=)i+;num+;m_ID.GetWindowText(m_id);for(i=0;inum;i+) if(m_id=m_ListControl.GetItemText(i,0) m_ListControl.DeleteItem(i); break; UpdateData(TRUE);m_id=;UpdateData(FALSE); idx=m_ListControl.GetSelectionMark(); m_ListControl.DeleteItem(idx); UpdateData(TRUE);void CMyDlg:OnSearch() / TODO: Add your control notification handler code hereint i=0,num=0,k=0;CString str;while(m_ListControl.GetItemText(i,0)!=)i+;num+;for(i=0;inum;i+)m_ID.GetWindowText(m_id);if(m_ListControl.GetItemText(i,0)=m_id)m_ListControl.SetItemState(i,LVIS_SELECTED, LVIS_SELECTED);str=工号:+m_ListControl.GetItemText(i,0)+n+姓名:+m_ListControl.GetItemText(i,1)+n+性别:+m_ListControl.GetItemText(i,2)+n+年龄:+m_ListControl.GetItemText(i,3)+n+工种:+m_ListControl.GetItemText(i,4);MessageBox(str);break;else k+;if(k=num) MessageBox(该职工不存在!);UpdateData(TRUE);m_id=;UpdateData(FALSE);void CMyDlg:OnRadioM() / TODO: Add your control notification handler code herevoid CMyDlg:OnSort() / TODO: Add your control notification handler code hereCString StrText1,StrText2; int num,i,flag,j;int id1,id2; num=0;i=0;while(m_ListControl.GetItemText(i,0)!=)num+;i+;struct Item ListItem100; for(i=0;i=0;i-)UpdateData(TRUE); m_ListControl.DeleteItem(i); UpdateData(FALSE); for(i=0;inum-1;i+)flag=1;for(j=0;jnum-i-1;j+)StrText1=ListItemj.StrID;id1=_tcstoul(StrText1,NULL,10);StrText2=ListItemj+1.StrID;id2=_tcstoul(StrText2,NULL,10); if(id1id2)struct Item TempItem; TempItem.StrID=ListItemj.StrID; TempItem.StrName=ListItemj.StrName;TempItem.StrSex=ListItemj.StrSex;TempItem.StrAge=ListItemj.StrAge;TempItem.StrKind=ListItemj.StrKind; ListItemj.StrID=ListItemj+1.StrID; ListItemj.StrName=ListItemj+1.StrName;ListItemj.StrSex=ListItemj+1.StrSex;ListItemj.StrAge=ListItemj+1.StrAge;ListItemj.StrKind=ListItemj+1.StrKind; ListItemj+1.StrID=TempItem.StrID;ListItemj+1.StrName=TempItem.StrName;ListItemj+1.StrSex=TempItem.StrSex;ListItemj+1.StrAge=TempItem.StrAge;ListItemj+1.StrKind=TempItem.StrKind; flag=0;if(flag=1)Break;for(i=0;inum;i+)m_ListControl.InsertItem(0,ListItemi.StrID);m_ListControl.SetItemText(0,1,ListItemi.StrName);m_ListControl.SetItemText(0,2,ListItemi.StrSex);m_ListControl.SetItemText(0,3,ListItemi.StrAge);m_ListControl.SetItemText(0,4,ListItemi.StrKind);void CMyDlg:OnRadioGy() / TODO: Add your control notification handler code here4程序测试4.1主菜单界面这是该程序主界面,如图所示,该程序有添加,删除,查询,排序等功能。可以输入职工的工号,姓名,年龄,性别以及工种等信息。将各种需求分成多个小模块,通过调用实现各种功能,增强了程序的可建设性。该界面通过控件和代码共同连接VC,但并没有连接数据库,该界面输入的所有信息和操作保存在当地文件夹里,并不能保存到数据库中。所以,只能供当次操作使用,不能重复使用。4.2添加职工信息 如上图所示,该程序为用户提供菜单界面,用户可以对程序的各种功能进行选择,方便用户使用。添加职工信息。该功能实现字符串各类字符的累加统计。完成职工信息的添加,将添加的职工信息贮存在本地文件中,等关闭系统后,职工信息将不再存在。添加的职工信息将显示在左侧界面上。如图所示。4.3 完成添加职工信息如图所示,则完成了职工信息的添加。可以进行其他的操作。4.4 排序职工信息 上图为排序,该职工信息系统根据职工的工号进行排序,如图所示,职工的工号已经按照从小到大的顺序排列。该操作只需将需要排序的数据输入后,点击一下排序按键即可。4.5查询职工信息 显示,该职工不存在,这是因为,图上工号选框为空。所以现实如图所示信息。 如图所示,在工号选框内输入你想查询的职工工号,单击查询按键,界面上将显示如图所示信息框。输出你想查询的职工信息。简单方便。4.6删除职工信息 如图所示,这幅图与上图相比,大家可以看到工号为23的职工信息已将不再界面显示框内了,这是职工信息系统的删除操作,操作很简单,在显示框中点击你想删除的职工的工号,再单击删除按键,该职工信息将不再存在。5 设计体会及今后的改进意见为了提高我们的实践能力,让我们学以致用,能灵活运用所学的知识进行再创造,学校特安排我们进行为期二周的Visual
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 输液反应处理流程
- 移动互联网流量经营平台创新创业项目商业计划书
- 农副食品品牌文化展览与展示创新创业项目商业计划书
- 2025年广西钦州港经济技术开发区中学招聘教师考试笔试试题(含答案)
- 渔业金融服务创新创业项目商业计划书
- 2025年东莞市沙田镇第一小学招聘教师考试笔试试题(含答案)
- 2025年广播媒体融合传播效果与传播效果评价体系优化策略
- 2025年广播媒体融合转型中的新媒体运营与推广策略报告
- 2025年海洋生态保护与修复政策对海洋生态环境恢复力提升报告
- 2025年工业互联网平台边缘计算硬件架构产业技术发展趋势报告
- 2025海南省老干部服务管理中心招聘事业编制人员6人(第1号)考试备考题库及答案解析
- 2025年内江市总工会公开招聘工会社会工作者(14人)笔试模拟试题及答案解析
- 2025云南辅警笔试题目及答案
- 2025四川内江市总工会招聘工会社会工作者14人笔试备考试题及答案解析
- 2025-2026学年湘教版(2024)初中数学八年级上册教学计划及进度表
- 2025至2030中国公安行业发展趋势分析与未来投资战略咨询研究报告
- 2025年三支扶陕西试题及答案
- 新生儿持续性肺动脉高压个案护理
- bbc国际音标教学课件
- GB/T 45763-2025精细陶瓷陶瓷薄板室温弯曲强度试验方法三点弯曲或四点弯曲法
- 2025年新修订《治安管理处罚法》
评论
0/150
提交评论