1、姓 名: 周淼 学 号: 1111315217 指导教师: 于长辉 学年学期: 2019 2019 学年 第 1 学期 2019 年 1 月 6 日设计任务书课题名称员工管理设计目的1. 调研并熟悉幻方的基本功能、数据流程与工作规程;2. 学习与幻方相关的参考资料和基于VC+集成环境的编程技术;3. 通过实际编程加深对基础知识的理解,提高实践能力;4. 学习开发资料的收集与整理,学会撰写课程设计报告。实验环境1. 微型电子计算机(PC);2. 安装Windows 2000以上操作系统,Visual C+6.0开发工具。任务要求1. 利用课余时间去图书馆或上网查阅课题相关资料,深入理解课题含义及
2、设计要求,注意材料收集与整理;2. 在第16周末之前完成预设计,并请指导教师审查,通过后方可进行下一步工作;3. 本课题主要实现添加、修改、删除、读出、写入、查找、排序等。4. 结束后,及时提交设计报告(含纸质稿、电子稿),要求格式规范、内容完整、结论正确,正文字数不少于3000字(不含代码)。工作进度计划序号起止日期工 作 内 容12019.1.22019.1.3在预设计的基础上,进一步查阅资料,完善设计方案,形成书面材料。22019.1.32019.1.4设计总体方案,构建、绘制流程框图,编写代码,上机调试。32019.1.42019.1.5测试程序,优化代码,增强功能,撰写设计报告。42
3、019.1.52019.1.6提交软件代码、设计报告,参加答辩,根据教师反馈意见,修改、完善设计报告。指导教师(签章): 年 月 日 摘要: 随着经济的快速发展,一个好的员工管理系统在企业及用人单位扮演者重要角色。因此,本次我设计的课题是员工管理系统。为了设计一个功能完善的的员工管理系统,我查阅图书,搜集了许多有关C+方面的资料,学会了switch语句的使用、全局对象数组(Person100)的定义、函数调用机制的实现等诸多技能,并且将一部分课外的知识运用于我的代码,例如:使程序运行稍作停顿(Sleep(1000)。在具体编程时,我没有使用链表结构,而是直接定义了一批全局对象数组,把员工信息通
4、过函数储存在定义的全局对象数组中。也因为这样,使得编译时候错误发生的减少了很多。然而,在初步设计好该系统后,我发现这样的系统只能储存有限数目的员工信息,无法做到员工信息储存的不限量。但是考虑到实际应用,只要定义的全局对象数组达到200个就会足够企业使用。关键词:员工管理;全局对象数组;编程经验1 课题综述1.1课题来源 现代社会经济发展迅速,不同类型人才在公司企业间的流动十分频繁,传统的纸质员工管理系统已不适合现阶段的实际情况。为此,必须通过设计新的更为便捷、操作简单、不受时空限制的员工管理系统来管理员工信息。否则既浪费时间,又不能适应经济社会发展。1.2 课题意义 设计一款新的员工管理系统,
5、在实现系统添加、删除、查找、修改保存、排序等功能的同时,既锻炼了我实践操作能力,又增加了我对C+语言的熟悉程度,同时还初步了解了公司企业对员工的管理制度、增加了团队协作能力。1.3 预期目标设计一个员工管理系统:定义一组全局对象数组;对部分全局对象数组进行操作;实现数据的输入、输出、查找、修改、删除、排序等。1.4 面对的问题 对VC环境下的系统编制程序不够熟悉,有的功能无法找到合适的代码,对部分临界数据的处理不够精确,代码的注释不能让他人完全理解。1.5 需要解决的关键技术对部分全局对象数组进行操作,不影响其他已储存的数据。同时,要设计相应程序实现把数据储存在系统中,即使从新打开系统也要让数
6、据存在。使用switch()语句实现函数的调用,最终实现系统的协调运作。2 总体方案 使用C+语言设计员工管理系统,通过函数调用方式使其能完成对员工的信息管理,对员工信息的任意添加(add()、查询(find ()、删除(dele()、修改(modify()、保存(save()及排序(index()3 系统设计3.1.1算法描述 在主界面上选择相应操作项,通过运用switch语句来判断相应指令,实现对以下功能的选择1:add()添加员工信息2: modify ()修改员工信息3: dele()删除员工信息4:index()排序员工信息5:find()查询员工信息6:save()保存员工信息。并
7、用六个函数来实现各个部分的功能:void add();void find();void dele();void modify();void save()和void index()。在执行完每一次数据操作后,通过判断程序,来判断是否返回等。如返回,则操作同开始,否则执行其他操作。3.1.2 实现方法共同的基类 person 包含如下信息:class Personpublic: Person() /构造函数 void setPerson(char *num1,char *name1,char *sex1,char *birth1,char *tel1,char *salary1); /成员数据的修
8、改函数; friend void add(); /声明为Person的友元,函数功能为:1. 员工信息输入 friend void modify(); /声明为Person的友元,函数功能为:2. 员工信息修改 friend void dele();3. 员工信息删除 friend void index();4. 员工信息排序 friend void find();5. 员工信息查找 friend void save();6. 员工信息保存 friend void read();private: /声明编号、姓名、出生年月、性别、联系电话、基本工资等成员变量 char num15; char
9、name15; char sex5; char birth15; char tel15; char salary15;在主函数中运用Switch(choice)选择需要的功能: switch(choice) case 1: add(); /1. 员工信息输入 break; case 2: modify(); /2. 员工信息修改 case 3: dele(); /3. 员工信息删除 case 4: index(); /4. 员工信息排序 case 5: find(); /5. 员工信息查找 case 6: save(); /6. 员工信息保存 default:run=0;3.1.3 详细设计1
10、.员工档案管理系统构建框架 1、添加员工信息 2、修改员工信息 3、删除员工信息 4、员工信息排序 5、查找员工信息 6、保存员工信息 7、退出管理系统 3.2员工管理系统程序模块设计 模块一:头文件,变量定义,函数的声明 对系统所使用的变量进行定义,对函数进行声明 模块二:员工信息的添加void add() /1. 添加员工信息模块三:员工信息修改void modify() /2. 员工信息修改模块四:员工信息删除 void dele() /3. 员工信息删除模块五:员工信息排序void index() /4. 员工信息排序模块六:员工信息查找 void find() /5. 员工信息查找模
11、块七:员工信息保存 void save() /6. 员工信息保存4 代码编写#include#include fstreamiomanipwindows.hstdlib.h /字符转浮点 atof() using namespace std;int NUM=0; /计数员工的个数int saveCtrl=1; /该变量用于检测数据的 修改后是否保存的情况 /1. 员工信息输入 /2. 员工信息修改 /3. 员工信息删除 /4. 员工信息排序 /5. 员工信息查找 /6. 员工信息保存 /声明编号、姓名、出生年月、性别、联系电话、基本工资等成员变量Person Per500; /声明全局Pers
12、on对象数组void Person:setPerson(char *num1,char *name1,char *sex1,char *birth1,char *tel1,char *salary1) strcpy(num,num1); strcpy(name,name1); strcpy(sex,sex1); strcpy(birth,birth1); strcpy(tel,tel1); strcpy(salary,salary1);void menu() /主菜单 coutsetw(45)员工管理系统 endl;1. 员工信息添加 2. 员工信息修改 3. 员工信息删除 4. 员工信息排序
13、 5. 员工信息查找 6. 员工信息保存 setw(37)0. 退出 请选择(06):;setiosflags(ios:left)请输入选择项(06):void add() /1. 添加员工信息 char num15; /编号 /姓名 /性别 /生日 /电话 /工资 char p; /用于选择判断 system(cls); /清屏 while(1) /控制信息添加多次的循环 coutnum;namesexbirthtelsalary; for(int i=0;iNUM;i+) /检测所添加员工的编号是否存在 if( strcmp(Peri.num,num)=0 ) cout该编号的已经存在 s
14、ystem(pause /按任意键继续 return; p=0;请选择:t 1.确认添加数据2.重新输入3.返回主菜单p; /控制是否确认添加数据 if(p3) cout没有这个选项!n 请重新输入: continue; if(p=2) /重新输入数据) /返回主菜单 return; PerNUM.setPerson(num,name,sex,birth,tel,salary);添加数据成功! saveCtrl=0; NUM+;是否返回主菜单(y/n) /返回主菜单y|p=Yvoid modify() /2. 员工信息修改 /清屏 if(NUM=0) /判断员工数是否为0,即是否存在员工记录,
15、若无记录,则退出函数没有任何员工记录。即将返回主菜单 Sleep(1000); return; for(int i1=0;i1i1+) /列出现有的员工的详情,方便修改Peri1.numPeri1.namePeri1.sexPeri1.birthPeri1.telPeri1.salary int choice; for(int i=0;i+) if( strcmp(Peri.num,num)=0 ) do system( /清屏 coutPeri.num Peri.namePeri.sexPeri.birthPeri.telPeri.salarychoice; if(choice7) cont
16、inue; switch(choice) case 1: coutPeri.num; saveCtrl=0; break; case 2:请输入新的员工姓名:Peri.name; case 3:请输入新的员工性别:Peri.sex; case 4:请输入新的员工生日:Peri.birth; case 5:请输入新的员工电话:Peri.tel; case 6:请输入新的员工工资:Peri.salary; case 7: return; while(choice7);void dele() /3. 员工信息删除 if(NUM=0) /判断员工数是否为0,即是否存在员工记录,若无记录,则退出函数工资i1+) /列出现有的员工的详情,方便删除 if(Peri1.num!=NULL) cout Person temp;请输入要删除的员工的编号 if( strcmp(Peri.num,num)=0 ) temp=Peri; for(int j=i;jNUM-1;j+) Perj=Perj+1; NUM-; break;删除成功! saveCtrl=0; system( if(NUM=0) /
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1