1、3.2.2业务流程分析现行管理系统的业务流程图 图3-2 第二层数据流图事务:删除,添加,修改,查询; 职工信息E-R图3.2.3数据字典数据流字典数据流名称 :职工-主管类数据结构:职工编号 id姓名 name性别 sex工资 salary出生时间 birth 参加工作时间 worktime职位 a 数据流名称:职工-工人类职位 b3.2.4处理逻辑的定义 处理名: 添加职工信息 输入:根据选择录入数据 输出:显示所添加的信息 处理定义: 当选择了要输入的数据类型时,按照提示输入所需要的信息,并录入到职工信息库里 激发条件:选择添加职工信息处理名: 删除职工信息键入要删除的职工号显示输入职工
2、好所对应的信息 根据键入的职工号查到相关的信息,经确认后,从信息库中删除激发条件:选择删除职工信息修改职工信息键入要修改的职工号,并选择要修改的项显示修改后的该职工信息 键入要修改的职工号,显示该职工的信息,根据提示选择要修改的项,修改成功后显示修改后的职工信息选择修改职工信息查找职工信息选择要查找的类型(职工号,姓名,年龄)显示所要查找的职工信息选择要查找的类型,从信息库中查找并显示选择查找记录列出信息选择输出类型根据选择输出数据 根据选择的输出类型,输出职工信息选择列出信息功能计算平均年龄无输出职工的平均年龄 调用函数,输出职工的平均年龄选择计算平均年龄功能创建职工信息简表显示职工信息简表
3、 创建并显示职工信息简表选择创建职工信息简表功能存入磁盘把数据输出到磁盘文件中 输出职工信息文件选择存入磁盘功能3.3 系统设计职工信息包括职工号,姓名,性别,年龄,工资,出生日期,工作时间,试设计一职工信息管理系统,使之能提供以下功能:(1)建立职工信息数据,包括职工编号、姓名、性别、工资、出生时间、参加工作时间和年龄(必须计算得到)。(2)根据职工信息表,建立只含有姓名和年龄的职工信息简表。(3)抽取并计算职工的平均年龄。(4)检索(查找)指定信息。(如按姓名检索、按年龄检索)(5)修改职工信息(6)删除职工信息(7)保存数据文件3.3.1功能设计 功能框架图如下:职工信息管理系统流程图3
4、.3.2系统运行环境Visual C+是一个功能强大的可视化软件开发工具。Visual C+6.0不仅是一个C+编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C+6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。3.4 系统实施3.4.1程序代码#includestringiomanipfstreamusing namespace std
5、;int num1=0,num2=0,num=0;float avery=0.0;char save1;char exit();enum tsexman,woman,mid;void foundid(string id1);void foundname(string n);void foundage(int a);int foundhao(string id1);void save();void lisebiao();class employee string id; string name; tsex sex; int salary; int birth; int worktime; int
6、 age;public: employee(); employee(string i,string na,tsex s,int sa,int bi,int wt); employee(); employee & operator= (employee &e) id=e.id;name=e.name;sex=e.sex;salary=e.salary;birth=e.birth;worktime=e.worktime; age=e.age; return *this; void add(); void display(); string getid()return id; string getn
7、ame()return name; int getage()return age; tsex getsex()return sex; int getsalary()return salary; int getbirth()return birth; int getworktime()return worktime; void setid(string id1) id=id1; void setname(string n1) name=n1; void setsex(int s) if(s=1) sex=man; else if(s=2) sex=woman; else sex=mid; voi
8、d setsalary(int sa)salary=sa; void setbirth(int bi) birth=bi; void setworktime(int wt)worktime=wt; void clean()employee();employee:employee() sex=mid;salary=0;birth=0;worktime=0;age=0;employee(string i,string na,tsex s,int sa,int bi,int wt) id=i;name=na;sex=s;salary=sa;birth=bi;worktime=wt;age=2009-
9、bi/10000;void employee:add() int f,sex1; do coutid; f=foundhao(id); if(f=0) cout该职工号可以使用endl;break; else if(f=1|f=2) cout此职工号已存在 while(f=1|f=2); 请输入职工姓名:name; cout请输入职工性别(1.男t2.女):sex1; switch(sex1) case 1: sex=man; break; case 2: sex=woman; default:选择错误,重新选择n while(sex1!=1&sex1!=2); do请输入基本工资:salar
10、y; if(salary1000)输入错误,基本工资应在1000以上!n while(salary1000); coutbirth;请输入参加工作日期:worktime;添加职工信息如下: display();是否保存?y/n:save1; if(save1=y|save1=Y) num+;保存成功! else您放弃了保存!添加失败ndisplay() int i; cout工号:idn姓名:name性别: if(sex=man)cout男 else if(sex=woman) cout女 else cout无 age=2009-birth/10000;年龄:age出生年月: i=birth;
11、i/10000年 i=i%10000;i/100月i%100日工资:salary参加工作时间:worktimeselect; switch(select) case 1: mnum1.addmanager(); num1+; break; case 2: wnum2.addwork(); num2+; default:选择错误! f=exit(); while(select!select!=2|f=n);void jiludelete() manager t1; work t2; int i,j; string id1,id2; char b,f;请输入要删除的职工号:tid2; if(fou
12、ndhao(id2)=0) cout对不起!没有这个工人的记录return;你要删除的信息是: foundid(id2);确定要删除该记录?y / nnb; if(b=) return; if(foundhao(id2)=1) if(m0.getid()=id2&num1=1) m0.clean(); else if(mnum-1.getid()=id2) mnum1-1.clean(); else for(i=0;inum1-1;i+) if(mi.getid()=id2&num1!=1) t1=mi; for(j=i;jnum1;j+) mj=mj+1; num1-; else if(fo
13、undhao(id2)=2) if(w0.getid()=id2&num2=1) w0.clean(); else if(wnum-1.getid()=id2) wnum2-1.clean(); else for(i=0;num2-1; if(wi.getid()=id2&num2! t2=wi;num2; wj=wj+1; num2-; num-;删除成功! while(f=void change() string id2,str; int t,j,k;请输入要修改信息的职工号: if(foundhao(id2)=0) cout else if(foundhao(id2)=1)要修改职工号的
14、信息: foundid(id2); for(t=0;tstr;mt.setid(str);新的姓名:mt.setname(str); case 3:新的性别(1.男t2.女)k;mt.setsex(k); case 4:新的工资:mt.setsalary(k); case 5:新的出生日期:mt.setbirth(k); case 6:新的工作时间:mt.setworktime(k); default: couterror mt.display(); if(wt.getid()=id2) setw(20);wt.setid(str);新的姓名wt.setname(str);wt.setsex(
15、k);新的工资wt.setsalary(k);新的出生日期wt.setbirth(k);新的工作时间wt.setworktime(k); wt.display();void found() string i; char se,f; do 请选择查询方式:1 职工号 2 姓名 3 年龄tse; switch(se) case 1请输入要查找的职工号:i;cout你要查询的人的信息如下:foundid(i);2请输入要查找的姓名:foundname(i);3请输入要查找的年龄a;foundage(a);没有此选项,请重新选择 while(se!=se!|f=int foundhao(string id1) for(i=0;nu
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1