工资管理系统课程设计报告_第1页
工资管理系统课程设计报告_第2页
工资管理系统课程设计报告_第3页
工资管理系统课程设计报告_第4页
工资管理系统课程设计报告_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2009-2010学年度第一学期#3 学院#科学学院课程设计报告册课程设计名称:工资管理系统专业:计算机科学与技术班级:学号:姓名:指导 老师:一、需求分析题目:工资管理系统总体设计目标:使用者可以利用此系统进行对工资管理的各项运算操作,如根据用户提供的客户工资自动地进行计算实发工资,查找职工信息数据,删除记录,插入记录,保存记录及按实发工资排序等,最后清晰完整的工资管理结果显现在屏幕中。大大方便使用者对工资管理的统计操作,这样不仅可以提高效率,而且方便易操作。二、总体设计1概述该系统采用了自上而下、层层紧扣的模块结构。对于最高模块,采用以事务为中心的设计策略,把一个大的模 块逐步分解成较小的

2、相对简单的模块。对低层模块,采用以变换为中心的设计策略。为了提高每个小模块的内聚性、降低模块间的耦合性,将每个模块设计成具有单一功能的模块(即功能内聚),使模块间的联系完全是通过主模块的控制和调用来实现(即非直接耦合)。2、模块说明书A.工资管理系统总控模块的模块说明书模块名称:工资管理系统总控模块输入:主菜单选择项输出:整个所有职工的信息 处理:1.按以下格式显示主菜单和提示使用者选择:工资管理系统:o读取文件信息1职工数据输入2显示职工工资3查找职工工资4增加职工工资5删除职工工资6修改职工信息7保存信息8安全退出系统2 .接收主菜单选择项如果选择项的值为0,调用读取文件信息子模块。如果选

3、择项的值为1,调用职工数据输入子模块。如果选择项的值为 如果选择项的值为 如果选择项的值为 如果选择项的值为如 果选择项的值为如果 选择项的值为如果选 择项的值为2,调用显示职工工资子模块。3,调用查找职工工资子模块。4,调用增加职工工资子模块。5,调用删除职工工资子模块。6,调用修改职工信息子模块。7,调用保存信息子模块8,安全退出系统B,插入工资记录子模块说明书模块名称:插入工资记录模块输入:根据给定员工的编号,姓名,基本工资进行添加输出:该员工的工资信息处理:按以下格式显示子菜单和提示使用者选择:插入员工工资系统请按提示输入要插入的员工的编号(2)在第二菜单中输入员工的号码,姓名,基本工

4、资回车返回主菜单C保存文件子模块说明书模块名称:保存文件子模块输入:所需保存的员工的姓名输出:保存成功该员工资料处理:按以下格式显示子菜单和提示使用者选择:保存文件系统请按提示输入要保存的员工资料的员工姓名(此员工资料之前已经确定插入)回车显示保存成功 回车返回主菜单D .计算实发工资子模块说明书模块名称:计算实发工资子模块输 入:员工的工资扣款输 出:员工的应发工资,税金,实发工资 处理:按以下格式显示子菜单和提示使用者选择:计算实发工资系统首先,要先插入、保存好员工的工资信息按号码排序提示,输入该员工的扣款,回车得到员工的应发工资,税金,实发工依次填入其它员工的扣款即得到所有员工的应发工资

5、计算完后回车返回主菜单E.查找记录子模块说明书模块名称:查找员工工资记录子模块输 入:要查找的员工编号及姓名 输出:所要查找的员工的工资信息 处理:1 .按以下格式显示子菜单和提示使用者选择: 查找员工工资系统输入所要查找的员工工资的编号,回车 2显示出所查员工的工资信息,回车返回主菜单 显示不出所查员工任何信息,出现查不到的情况,回车返回主菜单F. 删除记录子模块说明书模块名称:删除员工工资记录子模块输 入:根据给定员工的号码进行删除输 出:整个员工的所有工资资料 处理:按以下格式显示子菜单和提示使用者选择: 删除员工工资记录系统请输入要删除的员工工资的员工号码回车确定删除再次回车返回主菜单

6、G .按实发工资升序排序子模块说明书模块名称:按实发工资升序排序子模块输 入:根据给定的学生的实发工资从小到大进行排序输出:已经排好序的员工实发工资的序列 处理:按以下格式显示子菜单和提示使用者选择:按实发工资升序排序系统对已经保存过的员工资料,按提示回车(2)系统自动完成对员工实发工资由小到大的顺序进行排序(3)回车返回主菜单三、详细设计1.工资管理系统总控模块”的详细设计概述本模块的详细设计依据是:总体设计中的“ AX资管理系统的总控模块说明书程序流程图如下169 C语言课程设计 2.计算实发工资子模块”的详细设计本模块的详细设计的依据是:总体设计中的“D.计算实发工资子模块”的模块说明书

7、。程序流程图如下:开始定义整型变量x=0显示操作项目让使用者选择,输入员工号码如果存在,输入扣款,不存在返回得实发工资返回3.查找记录子模块”的详细设计本模块的详细设计的依据是:总体设计中的“E查找记录子模块”的模块说明书。程序流程图如下:开始定义整型变量x=1输入所要查找的员工工资姓名显示查找结果返回显示不存在4 .删除记录子模块”的详细设计本模块的详细设计的依据是:总体设计中的程序流程图如下:开始定义整型变量x=2输入要删除的员工工资 的员工号码存在对象,回车确定删除返回5 .插入工资记录子模块”的详细设计本模块的详细设计的依据是:总体设计中的 书。程序流程图如下:“E删除记录子模块”的模

8、块说明书。不存在该对象“ B.插入工资记录子模块”的模块说明定义整型变量x=3输入要插入的员工的号码输入员工的号码,姓名,基本工资确定,退出保存输入错误返回6 .保存文件子模块”的详细设计本模块的详细设计的依据是:总体设计中的“C.保存文件子模块”的模块说明书。程序流程图如下:开始定义整型变量x=4输入所需保存的员工的姓名保存员工工保存不成功资资料成功返回7 .按实发工资升序排序子模块”的详细设计本模块的详细设计的依据是:总体设计中的“G按实发工资升序排序子模块”的模块说明书。程序流程图如下:开始定义整型变量x=5根据给定的学生的实发工资从小到大进行排序回车排序成功 四、编码1 .说明工资管理

9、系统总控模块”的功能由menu_select函数实现,根据工资管理系统总控模块”的程序流程图编写men u_select函数。计算实发工资子模块”的功能由calc函数实现,根据计算实发工资子模块”的程序流程图编写calc函数。查找记录子模块删除记录子模块的功能由 find根据查找记录子模块”的程序流程图编写search函数。cancel根据的功能由删除记录子模块”的程序流程图编写delete函插入记录子模块insert 函数。保存记录子模块的功能由insert函数实现,根据插入记录子模块”的程序流程图编写save函数。的功能由save函数实现,根据插入记录子模块”的程序流程图编写按实发工资升序

10、排序子模块的程序流程图编写sort函数。2、源程序代码如下:”的功能由sort函数实现,根据按实发工资升序排序子模块 *职工工资管理系统程序清单:# i nclude <ioma nip># in elude <iostream># i nclude <fstream># i nclude <malloc.h># i nclude <stdlib.h># in elude <stri ng.h>#i nclude<limits>#in clude<stdio.h>#in clude<c oni

11、 o.h>#defi ne NULL以 const N=20;#defi ne LEN sizeof(struct stude nt) using n amespace std;void Men u();void Pass();int n=0;定义一个全局变量统计职工人数/定义一个职工信息的结构体struct stude ntchar n用来存放姓名用来存放性别用来存放编号用来存放工资用来存放总工资ameN; char sexN; long id;float paid3;sltiiotadtude nt *n ): ext;/职工类class In formatio npublic:ln

12、formation();构造函数.-Information。;析构函数.stude nt *creat(); / 建立链表void output(stude nt *head);/ 显示职工信息int count(student *head);定义函数count。统计职工总数student *insert(student*head); 指针函数 stude nt *ca ncel(stude nt *headjo ng id); stude nt *fin d(stude nt *headj ong id);stude nt *modify(stude nt *head,l ong id);

13、void paixu(stude nt *head);并输出void average(stude nt *head);void save(stude nt *head);stude nt *Read();private:stude nt *p1 ,*p2,*p3,*head,st;);*insert()用来添加职工信息n”;指针函数*cancel。用来删除职工信息.指针函数*find()用来查找职工信息.指针函数*modife()用来修改职工的信息.定义paixu()函数将职工的总额从大到小排列定义职工工资平均值的函数保存文件信息读取文件信息In formatio n:l nformatio

14、n()cout«"«欢迎您使用职工工资管理系统>>n”;cout«"nn";/作者的信息和提示"void zuozhe() (cout«"nttt 本程序制作者:nntttIiuguanghuinntttTEL:#39;1;cout«"nntttMade By VC6.0+nnttt2009 年 12 月 1 日 nnttt 按 vEnter 键进入登陆 界面!”;cout«"nnttt如果需要对原来的信息进行操作,则先选择0读

15、取文件信息WZvendl;*/In formatio n:l nformatio n() cout«K n"cout«"« 谢谢您使用职工工资管理系统»n ”;cout«Mn”;)/>建立链表信息student *lnformation:creat(void) 定义一个指向 struct student 的结构体指针函数 *creat()用来 录入职工信息.(char chN; n=0;用来存放职工姓名p1 =p2=(student *)malloc(LEN); /调用malloc()函数用来开辟一个新的存储单元cou

16、t«"vv请建立职工信息表,在姓名处键以#结束输入!>>n«e ndl;coutvv”姓名:“;cin> >ch;head=NULL; 给指针head赋初值while (strcmp(ch,"#")!=O)调用字符比较函数strcmp()用来判断是否继续输入(P仁(student *)malloc(LEN);调用malloc()函数用来开辟一个新的存储单元strcpy(p1 -> name,ch);将循环结构前面输入的姓名复制到结构体名为p1的数组name中coutvv”性别:“;cin> >p1_&g

17、t;sex;coutvv”编号:“;如何也对输入的格式进行规范?cin> >p1_>id;while(p1 ->id)<O|(p1 ->id)>100000)判断输入的编号是否有效(100000 个)(ci n.clear();cin .ig nore (1024;n');coutvv”对不起您的输入错误!请重新输入0-100000的数值:”; cin> >p1_>id;)coutvv”基本工资:“;cin> >p1_>paid0;while(p1 ->paid0)<0|(p1 ->paid

18、0)>100000)判断输入的分数是否有效(>=0<=100000)ci n.clear();cin .ig nore (1024;n');coutvv”对不起您的输入错误!请重新输入0-100000的数值:cin> >p1_>paid0;coutvv”加班工资:cin> >p1_>paid1;while(p1 ->paid1 )<0|(p1 ->paid1 )>100000)100000)(ci n.clear();cin .ig nore (1024;n');coutvv”对不起您的输入错误!请重

19、新输入cin> >p1_>paid1;)coutvv”其他奖金:“;cin> >p1_>paid2;while(p1 ->paid2)<0|(p1 ->paid2)>100000)100000)/判断输入的分数是否有效(>=00-100000的数值:判断输入的分数是否有效(>=0ci n.clear();cin .ig nore (1024;n');coutvv”对不起您的输入错误!请重新输入0-100000的数值:cin> >p1_>paid2;p1 ->total=p1 ->pai

20、d0+p1 ->paid1 +p1 ->paid2; 计算总额if(n=0)head=p1;如果是输入第一组职工信息就将指针p1赋给指针headelse p2->next=p1; 否则将p1赋给p2所指结构体的next指针p2=p1 ;将指针p1赋给指针p2n+;将职工人数n的值加1cout«"n 姓名:"cin»ch;将输入的姓名存放到字符数组ch中)p2->next=NULL; 将p2所指结构体的next指针重新赋空值return (head);将输入的第一组职工信息返回/>定义output。函数将职工的信息从头指针所指

21、内容开始输出void In formati on :output(stude nt *head) system(Hcls");if(head=NULL) cout«n 这是一个空表,请先输入职工信息!n”; elsecout«"n”;coutvv" *职工工资信息表*n”;cout«"n"coutvv”|编号I I姓名II性别I 基本工资I加班工资I淇他奖金I总额|n”;cout«"n"P仁head;将头指针赋给pdo(cout«p1->id«setw(8)&

22、#171;p1- >n ame«setw(12)«p1 ->sex«setw(12)«p1 ->paid0«setw(12)«p1 ->paid1 «setw(12)«p1 ->paid2«setw(12)«p1 ->total«e ndl;cout«Hn"p1 =p1 ->next;将下一组职工信息的next指针赋给p)while(p1 !=NULL);若指针p非空则继续,目的是把所有的职工信息都传给指针P然后输出) )/

23、>统计职工人数的函数int lnformation:count(struct student *head) 定义函数 count。统计职工总数(if(head=NULL)return(O);若指针 head 为空返回值为 0else return(1+co un t(head-> next); 函数的递归调用)/>添加职工的工资的函数stude nt *ln format! on:i nsert( stude nt *head)插入新结点定义一个指向struct student的结构体指针函数*insert。用来添加职工信息,system(Hclsn);cout«&

24、quot;t« 请输入新增职工成绩信息>>n"«en dl;P仁(student *)malloc(LEN);使pl指向插入的新结点coutvv”编号:“;cin> >p1_>id;while(p1 ->id)<0ll(p1 ->id)>100000)(ci n.clear();cin .ig nore (1024;n');coutvv”对不起您的输入错误!请重新输入010000的数值:”;cin»p1 ->id;将输入的编号存放到pl所指结构体的数组id中)coutvv”姓名:”;ci

25、n»p1 ->name;将输入的姓名存放到结构体名为pl的数组name中coutvv,性另!J:" cin> >p1_>sex;coutvv”基本工资:“;cin> >p1_>paid0; while(p1 ->paid0)<0|(p1 ->paid0)>100000)(ci n.clear();cin .ig nore (1024/n');coutvv”对不起您的输入错误!请重新输入0-10000的数值:”;cin»p1->paid0;将输入的基本工资存放到p1所指结构体的数组pai

26、d中)coutvv”加班工资:“;cin> >p1_>paid1;while(p1 ->paid1 )<0|(p1 ->paid1 )>100000)(ci n.clear();cin .ig nore (1024;n');coutvv”对不起您的输入错误!请重新输入0-10000的数值:cin»p1->paid1;将输入的加班工资存放到p1所指结构体的数组paid中)coutvv”其他奖金:“;cin> >p1_>paid2;while(p1 ->paid2)<0|(p1 ->paid2)&

27、gt;100000)(ci n.clear();cin .ig nore (1024/n');coutvv”对不起您的输入错误!请重新输入0-10000的数值:”;cin»p1->paid2;将输入的其他奖金存放到p1所指结构体的数组paid中 p1 ->total=p1 ->paid0+p1 ->paid1 +p1 ->paid2; u 计算总分p2=head;将头指针赋给p2if(head=NULL)若没调用次函数以前的头指针head为空(head=p1 ;p1 - >n ext=NULL;则将p1赋给头指针head并将p1所指结构体成

28、员指针next赋空值else(while(p1 ->id>p2->id)&&(p2-> next!=NULL)(p3=p2; p3指向原p2指向的结点p2=p2->n ext; p2后移一个结点if(p1->id<=p2->id)if(head=p2) p1- >n ext=head;head=p1;插入到第一个结点之前else(p3->n ext=p1;p1- >n ext=p2;插入到p3所指结点之后)else(p2->n ext=p1;p1-> next=NULL;插入到尾结点之后)n+; 将职

29、工人数加1cout«Kt« 你输入的职工信息已经成功插入»"«e ndl;return (head);)/>删除职工信息stude nt *ln format! on:ca ncel(stude nt *head,l ong id) / 定义一个指向 struct stude nt 的结构体指 针函数*delete。用来删除考生信息(systemC'cls");if(head=NULL)若调用次函数以前的头指针head为空(return(head);)elseP仁head;否则将头指针赋给p1while(id!=p1 -

30、>id &&p1 -> next!=NULL) 寻找要删除的结点当p1所指的职工编号不是输入的职工编号并且p1所指的next指针不为空p2=p1;p1=p1- >next; p2指向原p1指向的结点p1后移一个结点if(id=p1_>id如果输入的职工编号是p1所指的职工编号结点找到后删除if(pfl=head) head=p1->next;/如果head指针和p1指针相等贝将下一个结点赋给指针headelse否则将pl所指结点赋给p2所指结点将要删除的职工p2->n ext=p1- >n ext;coutvv”删除编号为“ vvidv

31、v”的职工n”;n-;将职工人数减1)retur将头指针返回 彳 己攵| 米,* ).,.* f人stude nt *ln formati on:modify(stude nt *head,l ong id)systemC'cls1');»nn«en dl;p1所指的next指针不为空cout«"t«请输入须修改的职工工资信息P仁(student *)malloc(LEN); 使p1指向输入的结点Pt head;否则将头指针赋给p1while(id!=p1->id &&p1-> next!=NULL)

32、寻找结点当p1所指的职工编号不是输入的职工编号并且p1 =p1 ->next; p2指向原p1指向的结点p1后移一个结点)if(id=p1->id)如果要查找的职工编号是p1所指的职工编号(coutvv"你需要修改的职工信息如下:n”;cout«'fn"coutvv”|编号I I姓名I性别|基本工资I加班工资I其他奖金I总额cout«nnn;cout«setw(6)«p1 ->id«setw(8)«p1- >n ame«setw(12)«p1 ->sex&#

33、171;setw(12)«p1 ->paid0«setw(12)«p1 ->paid1 «setw(12)«p1 ->paid2«setw(12)«p1 ->total«e ndl;cout«nnn;coutvv”编号:“;cin> >p1_>id;while(p1 ->id)<O|(p1 ->id)>100000) (ci n.clear();cin .ig nore (1024/n');coutvv”对不起您的输入错误!请重新输

34、入(>0<100000):“;cin»p1 ->id;将输入的编号存放到p1所指结构体的数组id中coutvv"姓名:”;pl的数组name中cin»p1 ->name;将输入的姓名存放到结构体名为coutvv”性别;cin> >p1_>sex;coutvv”基本工资:“;cin> >p1_>paid0;while(p1 ->paid0)<0|(p1 ->paid0)>100000)(ci n.clear();cin .ig nore (1024;nf);coutvv”对不起您的输

35、入错误!请重新输入(>0<100000):“;cin»p1->paid0; 将输入的基本工资存放到p1所指结构体的数组paid中)coutvv”加班工资:“;cin> >p1_>paid1;while(p1->paid1 )<0|(p1 ->paid1 )>100000)(ci n.clear();cin .ig nore (1024;nf);coutvv”对不起您的输入错误!请重新输入(>0<100000):“;cin»p1->paid1; 将输入的加班工资存放到p1所指结构体的数组paid中)

36、coutvv”其他奖金:“;cin> >p1_>paid2;while(p1 ->paid2)<0|(p1 ->paid2)>100000) (ci n.clear();cin .ig nore (1024”);coutvv”对不起您的输入错误!请重新输入(>0<100000):“;cin»p1->paid2; 将输入的其他奖金存放到p1所指结构体的数组paid中)p1 ->total=p1 ->paid0+p1 ->paid1 +p1 ->paid2; 计算总分)elsecoutvv”需要修改的信息

37、中没有编号为“vvidvv”的职工.nn" ;没有想要修改的结点信息getchar();retum(head);)II->查找职工信息stude nt *ln formati on:fi nd(stude nt *head,l ong id)II定义一个指向struct student的结构体指针函数*find。用来查找职工信息.system("cls");若调用次函数以前的头指针head为空if(head=NULL)coutvv”这是一个空表,请先输入职工信息! n”;return(head);)elsePt head;否则将头指针赋给p1while(id

38、!=p1->id &&p1-> next!=NULL)寻找结点当p1所指的职工编号不是输入的职工编号并且p1所指的next指针不为空(p1 =p1 ->next; p2指向原p1指向的结点p1后移一个结点)if(id=p1->id)如果要查找的职工编号是p1所指的职工编号(cout«"n”;coutvv”|编号I姓名I性别I基本工资|加班工资|其他奖金|总额|n";cout«"nM;cout«setw(6)«p1 ->id«setw(10)«p1- >n

39、 ame«setw(10)«p1 ->sex«setw(10)«p1 ->paid0«setw(10)«p1 ->paid1 «setw(12)«p1 ->paid2«setw(12)«p1 ->total«e ndl;cout«Hn”;)elsecoutvv”信息中没有编号为“vvidvv”的职工.n”; 结点没找到return(head);)/定义paixu()函数将职工的工资总额从大到小排列并输出void In formati on:pai

40、xu(stude nt *head)system(,cls");int i,k,m=0,j;student *pN; 定义一个指向struct student的结构体指针数组pWhead!=NULL) 如果头指针是空则继续 m=co un t(head);cout«"n"coutvv" *职工工资统计表*n";cout«"n";coutvv”|编号II姓名I性别I基本工资I加班工资I淇他奖金I总额I次 ln"cout«"n"p仁head;for(k=0;k<m

41、;k+)(Pk=p1;p1=p1- >n ext;)for(k=0;k<m-1 ;k+) / 选择排序法for(j=k+1 ;j<m;j+)if(pk->total<pj->total)(P2=pk;Pk=pD;PD=P2;) 从大到小排列的指针for(i=0;i<m;i+)(cout«setw(6)«pi_>id«setw(8)«pi->n ame«setw(9)«pi_>sex«setw(10)«pi->paidO«setw(10)&#

42、171;pi->paid1 «setw(10)«pi->paid2«setw(10)«pi->total«setw(10)«i+1 «e ndl;cout«"n") -求各工资的平均值的函数void In formatio n:average(stude nt *head)(int k,m;float arg1 =0,arg2=0,arg3=0;if(head=NULL) 如果头指针是空则继续(coutvv”这是一个空表,请先输入职工信息!n”;else(m=co un t(h

43、ead);pt head;for(k=0;k<m;k+) arg1+=p1_>paid0; arg2+=p1->paid1; arg3+=p1->paid2; p1=p1- >n ext;arg 1/=m;arg2/=m ;arg3/=m;cout«" *各项工资的平均值*n”;cout«"n"cout«"tt基本工资的平均值:n«setw(4)«arg1 «"n',«"tt加班工资的平均值:n«setw(4)

44、1;arg2 «Hn"«"tt 奖金的平均值:,«setw(4)«arg3«,'nn;cout«"n")/>保存函数.void In formati on:save(stude nt *head) system(nclsn);ofstream out("data",ios:out);out«co un t(head)«e ndl; while(head!=NULL) out«head->n ame«"t&q

45、uot;vvhead>idvv"t"vv”t"«head->sex«',t"«head->paidO«ntu«head->paid1 «"t"«head->paid2«,t" «head->total«e ndl; head=head->n ext;)/>读取文件的信息stude nt *ln formati on:Read()(system(,cls");in

46、t i=0;p 仁 p2=( stude nt *)malloc(LEN);head=NULL;ifstream in ("datan,ios:out);in> >i;if(i=0)cout«" data文件中的数据为空,请先输入数据!”vvendl; return 0;else coutvv”n原文件已保存的信息如下:n”;cout«""vve ndl;coutvv"|姓名|编号|性别|基本工资|加班工资|其他奖金I|n";cout«""vve ndl;for(;i>

47、;0;i-)p 仁(stude nt *)malloc(LEN);in> >st. name»st.id»st.sex»st.paid0»st.paid1»st.paid2»st.total;strcpy(p1- >n ame,st. name);p1->id=st.id;strcpy(p1 ->sex5st.sex); p1 ->paidO=st.paidO; p1 ->paid1 =st.paid1; p1 ->paid2=st.paid2; p1->total=st.tota

48、l;if(n=0)head=p1; else p2->next=p1; p2=p1;n+;显示读入数据如果是输入第一组职工信息就将指针否则将P1赋给P2所指结构体的将指针p1赋给指针p2将n的值加1p1赋给指针headnext指针cout«n n«p1-> name«HtH «p1->id«"f« p1->sex «" t"« p1->paid0 «" t"« p1->paid1 «" t&

49、quot;« p1->paid2 «'> t"« p1->total«e ndl;cout«n"vve ndl;)coutvv”数据已经成功读取完毕!nn"«endl;p2-> next=NULL;retur n (head);)/,菜单void Menu()(In formati on pers on;stude nt *head=NULL;int choice;long i;docoutvv”t探"«endl;cout«"t %探

50、“vvendl;cout«',t 八cout«'ft 探欢迎进入职工工资统计管理探” vvendl;探“ vvendl;0.读取文件信息1.职工数据输入2 .显示职工工资3 .排序统计工资4 .查找职工工资5 .增加职工工资6 .删除职工工资7 .修改职工信息8 .成功保存信息9 .安全退出系统«rAndl,"«e ndl; M«e ndl;"«e ndl;<r<rpndl, 探“vve ndl;探“vveII.探“vve ndl;探“vve探“ vvendl;探“vve留 2 vend

51、 I;探“ vve探“ vvendl;探“vve探“vve ndl;探“vveII.探“ vvendl;探“vve留 vvendl;探“vve探“vve ndl;探“vve探“vve ndl;探“vveII.n H«e ndl;nout« t衣衣衣衣衣衣夹衣夹衣夹夹丧衣夹衣衣衣温衣丧衣丧丧丧丧夹cout«',tcoutvv”t相关操作选项cout«',trmitw甘切兴必求必必必必必求必必必必必必必必必必必必必必兴必必COUt«nt *COUt«"t 人COUt«',t 人COUt«

52、;"t 人COUt«"t 八cout«"t 人 cout«Mt 八 cout«Mt 八 cout«"t 八 cout«"t 八cout«nt 八cout«"t 八cout«',t 八cout«"t 八cout«',t 八cout«',t 八cout«"t 人cout«"t 人cout«nt 八cout«',t 探co

53、utvv”t探coutvv”请输入您的选择(0-9):M; cin> >choice;while(choice<0|choice>9)(coutvv”对不起您的输入错误!请输入您的选择(o-9):u;cin> >choice;switch(choice) case 0:head=pers on .Read();break;case 1:head=pers on. creat(); break;case 2:pers on.o utput(head); break;case 3:pers on .paixu(head);pers on .average(hea

54、d);coutvv”参力口工作的职工人数为:"«person.count(head)«,Ann" break;case 4:coutvv”请输入要查找的编号:cin »i;if(cin.fail() 错误输入(cout «”对不起您的输入错误!请重新输入:fflush(std in);/ 刷新输入缓冲区cin.clear();/ 清除错误cin »i;)/* while(ci n.fail()coutvv”对不起您的输入错误!请重新输入:”;if(ci n. fail()(fflush(stdi n);cin .clear(

55、);)cin »i;*/pers on.fin d(headj);break;!请重新输入:“!请重新输入:"head=pers on J nsert(head);pers on.o utput(head);break;case 5:coutvv”请输入要删除的编号cin »i;while(i<0|i>100000)(coutvv ”对不起您的输入错误if(ci n. fail ()(fflush(stdi n);cin .clear ();) cin »i;)head=pers on.can cel(head,i);pers on.o ut

56、put(head);break;case 6:coutvv ”请输入要修改的编号cin »i;while(i<0|i>100000)(coutvv”对不起您的输入错误if(ci n. fail ()(fflush(stdi n);cin .clear ();) cin »i;)pers on.m odify(headj);break;case 7:coutvv”信息已经成功保存!”vve ndl;pers on. save(head); break;case 8:system(ncls");break;default:coutvv”对不起您的输入有误!请重新输入:n";break;while(choice!=9);-管理员登陆void Pass()(char L)serName30;char Passward20;int i=0;* cout«n!nM;* n";cout«Hnt

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论