欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    C++课程设计(论文)职工信息管理系统软件.doc

    • 资源ID:2384491       资源大小:578.50KB        全文页数:25页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C++课程设计(论文)职工信息管理系统软件.doc

    目录1 绪 论12 系统分析12.1 设计目的12.2选择开发工具13学生管理系统设计231需求分析23.2 系统功能分析24学生管理系统功能实现24.1.功能设计34.2 系统实现(程序代码)34.2.1主菜单34.2.2登陆口令功能44.2.3创建职工信息功能54.2.4查询功能64.2.5修改功能94.2.6调整工资功能114.2.7删除功能134.2.8添加功能164.2.9保存文件功能174.2.10读取文件功能184.2.11输出功能204.2.12退出功能205系统应用21总结22致 谢23参考文献241 绪 论 当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。公司最重要的就是对职工信息进行操作化管理,职工信息是一种比较复杂、繁琐的管理系统,对于复杂的信息管理,计算机能够充分发挥它的优越性。数据处理手工操作,工作量大,出错率高,出错后不易更改。公司学校采取手工方式对职工信息的查询、储存、添加、修改、删除情况进行人工管理,由于信息比较多,职工信息的管理工作混乱而又复杂,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。基于此问题,本次实训设计选择建立一个职工信息管理系统,使职工信息系统规范化,系统化,程序化,避免职工管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询职工情况。2 系统分析2.1 设计目的本软件是为职工信息开发的职工信息管理系统软件。该软件结合当前的工作流程,职工信息管理、查询、修改、添加、删除等方面提供完全的计算机职工信息化管理。手工的记录与查询,是一项非常繁重而枯燥的劳动,耗费许多人力和物力,而且会因人的情绪烦躁而出现失误,因此在计算机飞速发展的今天,应用计算机技术实现学生信息的计算机管理是可行而必要的工作 。本系统设计旨在对公司信息实现计算机管理,提高工作效率,提高管理水平。2.2选择开发工具本系统采用开发环境和工具:Microsoft Visual C+ 6.0编程设计语言。 原因在于:1 C是结构式语言(1)结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。数据结构丰富(2)C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。3学生管理系统设计31需求分析根据题目需要,由于职工信息需要存放在文件中,所以应提供文件输入、输出等操作。应提供查找、修改、删除、添加、调整工资管理等功能。职工信息管系统需要满足三方面需求,这三个方面分别是职工信息查询、修改、添加、删除管理员管理和系统管理。职工信息查询者的需求是查询系统所存的信息、个人信息情况及个人信息的修改;信息管理员对职工信息查询和修改要求进行操作,系统管理人员的功能最为复杂,包括对工资调整、信息更新、查询、添加等进行系统状态的查看、维护。3.2 系统功能分析经过实际考察与分析,典型的职工信息管理系统主要应具有以下功能: 创建职工信息功能:包括职工姓名、年龄、工龄、性别、婚姻状况、是否在职的录入功能。 查询功能:按姓名、工龄、级别进行查询职工基本信息。 修改功能:按姓名、工龄、级别进行职工个人信息的修改。 添加功能:成功添加新进员工的个人信息。 删除功能:按姓名、工龄、级别将离职员工的个人信息删除 调整工资功能:按员工级别进行工资调整。 保存文件功能:将职工信息保存。 读取文件功能:读取职工信息。 输出功能:将更新的职工信息打印。 退出功能:退出程序.4学生管理系统功能实现在实现过程中,首先根据系统功能分析设计出需要的程序代码。再实现各个功能模块时,也采用先模块后系统集成的方式,再实现各个系统功能模块分别独立设计和调试,在创建系统主窗体时才将各个功能模块通过主窗体的菜单系统集成到一起,最后进行系统整体设计和调试。4.1.功能设计 创建职工信息功能:职工基本信息的录入。 登陆口令功能:用户输入口令后,程序对其进行检查。 查询功能:按姓名、工龄、级别查询职工基本信息察看是否正确。 修改功能:按姓名、工龄、级别修改职工个人信息的。 添加功能:成功添加新进员工的个人信息。 删除功能:按姓名、工龄、级别将离职员工的个人信息删除 调整工资功能:按员工级别进行工资调整。 保存文件功能:将已有职工信息进行文件保存便于下次使用。 读取文件功能:直接调用已有的职工信息。 输出功能:将更新的职工信息打印。 退出功能:退出程序.4.2 系统实现(程序代码) 4.2.1主菜单编程实现系统初始界面程序代码:int xitongjiemian() int n; cout<<" *"<<endl; cout<<" * *"<<endl; cout<<" * 欢迎使用本职工信息管理系统*"<<endl; cout<<" * 1.创建职工信息 2.查询职工信息 *"<<endl; cout<<" * 3.修改职工信息 4.添加职工信息 *"<<endl;cout<<" * 5.删除职工信息 6.调整工资 *"<<endl;cout<<" * 7.保存职工信息 8.读取职工信息 *"<<endl; cout<<" * 9.打印职工信息 10.退出 *"<<endl;cout<<" * *"<<endl; cout<<" * 请输入相应编号: *"<<endl; cout<<" * *"<<endl; cout<<" *"<<endl;cout<<"请输入功能数字:"cin>>n;return n;运行结果图4主菜单功能图4.2.2登陆口令功能 登陆口令功能:用户输入口令后,程序对其进行检查。功能分析:提示用户输入口令,用户输入口令后,程序对其进行检查,用户的口令输入次数有限制,连续输入错误口令超过三次就自动关闭程序。程序代码:int password() char p20; int n=0; cout<<"请输入登录口令:"<<endl; while(1) cin>>p; if(strcmp(p,"abcd")=0) cout<<"输入口令正确!"<<endl;return 1; else cout<<"输入口令有误,请重新输入!"<<endl;n+;if(n=3) cout<<"已输入3次,您无权进行操作!"<<endl; exit(1); 运行结果: 图4-2-2登陆口令功能图4.2.3创建职工信息功能 创建职工信息功能:职工基本信息的录入。功能分析:职工信息包括姓名(name)、年龄(age)、工龄(worktime)、性别(sex)和婚姻状况(marrige)、级别(grade:1-5级)、工资(wage)、是否在职(tired)等信息。程序代码:worker *chuangjian(worker *ww,int n)int m; for(m=0;m<n;m+) cout<<" 姓名 年龄 工龄 性别 婚姻状况 级别 工资 是否在职 "<<endl; cin>>wwm.name; cin>>wwm.age; cin>>wwm.worktime; cin>>wwm.sex; cin>>wwm.marrige; cin>>wwm.grade; cin>>wwm.wage; cin>>wwm.tired;运行结果图3创建职工信息功能图4.2.4查询功能 查询功能:按姓名、工龄、级别查询职工基本信息察看是否正确。在此代码中出现的问题:只能查询第一位职工信息。功能选择字符于宗职工人数n 矛盾,解决方法,重新定义一个功能字符:“int m”。程序代码:void chaxun(worker *ww,int n)int m; cout<<" *"<<endl; cout<<" * *"<<endl; cout<<" * 1.按姓名查询 2.按工龄查询 *"<<endl; cout<<" * 3.按级别查询 4. 退出 *"<<endl; cout<<" * *"<<endl; cout<<" * 请输入相应编号: *"<<endl; cout<<" * *"<<endl; cout<<" *"<<endl; cout<<"请输入功能数字:" cin>>m; int i,flag=0; char name20; int worktime; int grade; switch(m) case 1: cout<<"请输入查询的职工姓名:"cin>>name;for(i=0;i<n;i+)if(strcmp(wwi.name,name)=0) cout<<"第"<<i+1<<"个职工信息:"<<endl; cout<<"姓名:"<<wwi.name<<endl; cout<<"年龄:"<<wwi.age<<endl; cout<<"工龄:"<<wwi.worktime<<endl; cout<<"性别:" if(wwi.sex='x') cout<<"男"<<endl; else cout<<"女"<<endl; cout<<"婚姻状况:" if(wwi.marrige=1) cout<<"已婚"<<endl; else cout<<"未婚"<<endl; cout<<"级别:"<<wwi.grade<<endl; cout<<"工资:"<<wwi.wage<<endl; cout<<"是否在职:" if(wwi.tired=1) cout<<"在职"<<endl; else cout<<"离职"<<endl; flag=1;if(flag=0)cout<<"不存在符合条件的职工信息!"<<endl;break; case 2: /按工龄查询,实现代码略,与按姓名查询类似 case 3: /按级别查询,实现代码略,与按姓名查询类似 case 4: return; default:cout<<"输入有误,请重新进行选择!"<<endl; 运行结果图4-2-4查询功能图4.2.5修改功能 修改功能:按姓名、工龄、级别修改职工个人信息的。在此代码中遇到的问题:无法显示修改后的职工信息。问题原因:cin>>wwn+i.name;解决方法:cin>>wwi.name;程序代码:void xiugai(worker *ww,int n) int m; cout<<" *"<<endl; cout<<" * *"<<endl; cout<<" * 1.按姓名修改 2.按工龄修改 *"<<endl; cout<<" * 3.按级别修改 4. 退出 *"<<endl; cout<<" * *"<<endl; cout<<" * 请输入相应编号: *"<<endl; cout<<" * *"<<endl; cout<<" *"<<endl; cout<<"请输入功能数字:" cin>>m; int i,flag=0; char name20; char x; int worktime; int grade; switch(m) case 1: cout<<"请输入修改的职工姓名:"cin>>name;for(i=0;i<n;i+)if(strcmp(wwi.name,name)=0) cout<<" 姓名 年龄 工龄 性别 婚姻状况 级别 工资 是否在职"<<endl; cout<<setw(5)<<wwi.name; cout<<setw(5)<<wwi.age; cout<<setw(5)<<wwi.worktime; cout<<setw(5)<<wwi.sex; cout<<setw(5)<<wwi.marrige; cout<<setw(5)<<wwi.grade; cout<<setw(5)<<wwi.wage; cout<<setw(5)<<wwi.tired<<endl; cout<<"是否修改该记录,请确认(y/n)" cin>>x; if(x='y'|x='Y') cout<<"请输入修改信息:"<<endl; cout<<" 姓名 年龄 工龄 性别 婚姻状况 级别 工资 是否在职 "<<endl; cin>>wwi.name; cin>>wwi.age; cin>>wwi.worktime; cin>>wwi.sex; cin>>wwi.marrige; cin>>wwi.grade; cin>>wwi.wage; cin>>wwi.tired; flag=1; if(flag=0)cout<<"不存在符合条件的职工信息!"<<endl;break; case 2:/按工龄修改 ,实现代码略,与按姓名修改类似case 3:. /按级别修改 ,实现代码略,与按姓名修改类似 case 4: return ; default:cout<<"输入有误,请重新进行选择!"<<endl; 运行结果图5修改功能图4.2.6调整工资功能 调整工资功能:按员工级别进行工资调整。 功能分析:对职工工资进行调整的程序规定如下:退休职工增加工资50元,在职职工1-5级的工资分别增加20,40,60,80,100。程序代码:void gongzitiaozheng(worker *ww,int n) int i; for(i=0;i<n;i+) if(wwi.tired=0) wwi.wage+=50; else switch(wwi.grade) case 1: wwi.wage+=20; break; case 2: wwi.wage+=40; break; case 3: wwi.wage+=60; break; case 4: wwi.wage+=80; break; case 5: wwi.wage+=100; break; 运行结果 图6调整工资功能图4.2.7删除功能 删除功能:按姓名、工龄、级别将离职员工的个人信息删除程序代码:在此代码中出现的问题:删除信息后无法显示更新后的信息表。问题原因:worker *Delete(worker *ww,int n)解决方法:worker *Delete(worker *ww,int &n)程序代码:worker *Deletename(worker *ww,int &n) char name10; int i,k,flag=0; char x; cout<<"请输入删除的职工姓名:" cin>>name; i=0; while(i<n) if(strcmp(wwi.name,name)=0) cout<<"姓名:"<<wwi.name<<endl; cout<<"年龄:"<<wwi.age<<endl; cout<<"工龄:"<<wwi.worktime<<endl; cout<<"性别:" if(wwi.sex='x') cout<<"男"<<endl; else cout<<"女"<<endl; cout<<"婚姻状况:" if(wwi.marrige=1) cout<<"已婚"<<endl; else cout<<"未婚"<<endl; cout<<"级别:"<<wwi.grade<<endl; cout<<"工资:"<<wwi.wage<<endl; cout<<"是否在职:" if(wwi.tired=1) cout<<"在职"<<endl; else cout<<"离职"<<endl; cout<<"是否删除该记录,请确认(y/n)" cin>>x; if(x='y'|x='Y') for(k=i+1;k<n;k+)wwk-1=wwk;n-; flag=1; i+; if(flag=0)cout<<"不存在符合条件的职工信息!"<<endl; return ww;worker *Deletejibie(worker *ww,int &n)/按级别删除,实现代码略,与按姓名删除类似worker *Deletegongling(worker *ww,int &n) /按工龄删除,实现代码略,与按姓名删除类似worker *Delete(worker *ww,int &n) int m; cout<<" *"<<endl; cout<<" * *"<<endl; cout<<" * 1.按姓名删除 2.按工龄删除 *"<<endl; cout<<" * 3.按级别删除 4. 退出 *"<<endl; cout<<" * *"<<endl; cout<<" * 请输入相应编号: *"<<endl; cout<<" * *"<<endl; cout<<" *"<<endl; cout<<"请输入功能数字:" cin>>m; switch(m) case 1: ww=Deletename(ww,n); break; case 2: ww=Deletegongling(ww,n); break; case 3: ww=Deletejibie(ww,n); break; case 4: return ww; default:cout<<"输入有误,请重新进行选择!"<<endl; return ww;运行结果图7删除功能图4.2.8添加功能 添加功能:成功添加新进员工的个人信息。在此代码中遇到的问题:无法显示添加后信息。问题原因: worker *insert(worker *ww,int n) 解决方法:worker *insert(worker *ww,int *n) for循环外加“*n=*n+m;”语句。程序代码:worker *insert(worker *ww,int *n)int i,m;cout<<"请输入添加人数:"cin>>m; for(i=0;i<m;i+) cout<<" 姓名 年龄 工龄 性别 婚姻状况 级别 工资 是否在职 "<<endl; cin>>ww*n+i.name; cin>>ww*n+i.age; cin>>ww*n+i.worktime; cin>>ww*n+i.sex; cin>>ww*n+i.marrige; cin>>ww*n+i.grade; cin>>ww*n+i.wage; cin>>ww*n+i.tired; *n=*n+m; return ww;运行结果图8添加功能图4.2.9保存文件功能 保存文件功能:将已有职工信息进行文件保存便于下次使用。 程序代码:void save(worker *ww,int n)fstream output("d:wei.txt",ios:out|ios:binary);if(output.fail() cerr<<"你不能打开此文件:"<<endl; abort();for(int i=0;i<n;i+) output.write(char*)&wwi,sizeof(worker);output.close();运行结果 图4-2-9保存文件功能图4.2.10读取文件功能 读取文件功能:直接调用已有的职工信息。在此代码中遇到的问题:出现死循环。问题原因:循环语句错误。解决方法:int i=0,n;long int size; input.seekg(0l,ios:end); size=input.tellg();n=size/sizeof(worker);input.seekg(0l,ios:beg);for(i=0;i<n;i+)input.read(char*)&wwi,sizeof(worker);程序代码:int read(worker *ww)fstream input("d:wei.txt",ios:in|ios:binary);if(input.fail() cerr<<"你不能打开此文件:"<<endl; abort();int i=0,n;long int size; input.seekg(0l,ios:end); size=input.tellg();n=size/sizeof(worker);input.seekg(0l,ios:beg);for(i=0;i<n;i+)input.read(char*)&wwi,sizeof(worker);input.close();return n;运行结果: 图4-2-10读取职工信息功能图4.2.11输出功能 输出功能:将更新的职工信息打印程序代码:void print(worker *ww,int n) int i; for(i=0;i<n;i+) cout<<" 姓名 年龄 工龄 性别 婚姻状况 级别 工资 是否在职"<<endl; cout<<setw(5)<<wwi.name; cout<<setw(5)<<wwi.age; cout<<setw(5)<<wwi.worktime; cout<<setw(5)<<wwi.sex; cout<<setw(5)<<wwi.marrige; cout<<setw(5)<<wwi.grade; cout<<setw(5)<<wwi.wage; cout<<setw(5)<<wwi.tired<<endl; 运行结果:图4-2-11打印功能图4.2.12退出功能 退出功能:退出程序程序代码:case 10: exit(0); default:cout<<"输入有误,请重新进行选择!"<<endl;运行结果:图4-2-12退出功能图5系统应用职工信息管理系统经过一段时间的测试,应用情况比较理想,主要体现在以下几个方面:(1)提高了职工信息管理水平和工作效率。职工资料实现了计算机管理,所有的信息都存在数据库中,完全实现了无纸化管理。同时,职工工资调整、个人信息的更新、查询和处理的过程变得非常简单,查询操作几秒钟之内就能完成,且不会出错。(2)本系统查询方式灵活,只要输入正确的关键词,就可以查找到需要的信息。 (3)系统制作成安装文件,可的便于用户的安装与使用。在系统测试阶段安装时会提示找不到文件,经过我的分析和测试证明是程序中文件使用了绝对路径问题,改为相对路径后,系统能够顺利安装运行。总结本系统通过自己的努力,经过试用证明,系统基本满足职工信息管理方面的需要。实现了职工信息管理、查询管理、修改管理、添加管理、删除管理、调整工资管理、文件保存管理、系统帮助等功能。在界面上立求做到美观、在操作方面尽量、做到满足用户使用习惯。但由于自己水平有限,加上时间有限,还存在很多不足:1.没有仔细用技术手段来提高VC代码的执行效率没有全面代码优化从而消耗更少的系统资源。2.查询功能不是很完善,只能满足简单方面需要。今后设想:继续完善此系统,把该有的功能尽量实现,使系统真正能为公司职工信息管理服务。致 谢在此次做实训设计和实训报告过程中,我查询了其他人所著的大量的文献资料,参考了很多人的设计经验及设计思想,同时,我的指导老师也给予我大力的支持,耐心给我们讲解格式要求,帮助我确定实训报告课题,还为我们提供了一些有关程序设计的资料,督促我完成报告与设计并给我们的设计提出了一些宝贵意见和建议,一次次地给我们的实训报告审批,指出报告中的不足之处,指导我们如何写好实训报告。使我们的实训设计更加趋于完善,使我受益非浅,在此,特向老师表示我衷心的感谢。同时我还得到了很多同事的帮助,从他们身上让我学到了很多以前不懂的知识,对我能顺利完成实训设计起到了重要的作用,在此也向给我帮助的同学表示由衷地感谢。 参考文献1钟延廷.C语言程序设计1.北京:人民邮电出版社,2004。2苏传芳.C语言程序设计基础2.北京:电子工业出版社,2004。3沈大林.C语言程序设计案例教程3.北京:中国铁道出版社,2007。4邓振杰.C+程序设计(第二版)4.北京:人民邮电出版社,2008。

    注意事项

    本文(C++课程设计(论文)职工信息管理系统软件.doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开