小型公司管理系统C++课程设计_第1页
小型公司管理系统C++课程设计_第2页
小型公司管理系统C++课程设计_第3页
小型公司管理系统C++课程设计_第4页
小型公司管理系统C++课程设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

C++程序设计课程设计瞄课题:小型公司工资管理系统专业班级:学号:姓名:指导教师:评阅意见:评定成绩:指导老师签名:目录设计系统的目的意义第1页系统需求、功能分析第2页数据结构表第3页数据测试表第5页运行和调试第7页课程心得体会第16页参考书目第17页附录第18页课程设计报告内容:1、设计系统的目的意义本次课程设计所编辑的C++程序是为了建立“小型公司工资管理系统”。通过对该系统的建立进一步掌握面向过程和面面相对象程序的设计的几本方法和编程技巧,巩固所学理论知识,是理论与实践相结合,提高分析问题、解决问题的能力。具体一点主要是为了进一步熟悉C++中类的概念、类的继承、抽象类、虚函数、虚基类、多态和文件的输入/输出等内容的实现方式。了解系统开发的需求分析、类层次设计、模块分析、编码测试、模块组装与整体调试的全过程;逐步熟悉程序设计的方法,并养成良好的编程习惯。2、系统需求、功能分析A、公司主要有四类雇员:经理、技术人员、销售人员、销售经理。要求储存雇员的编号、姓名、性别、所在部门、级别等信息,并进行工资计算。B、工资的计算方法(1)经理:领取固定月薪,固定月薪5000元;(2)技术人员:按小时领取月薪,工作时间*小时工资(80元/小时);(3)销售人员:按巩固销售额领取月薪,0.33*销售额;(4)销售经理:既拿固定月薪也领取销售提成,0.33*销售额+固定月薪(5000元)。C、功能分析(1)添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。(2)查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;(3)显示功能:可显示当前系统中所有记录,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。(5)删除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。(6)统计功能:能根据多种参数进行人员的统计。例如,统计四类人员数量以及总数,或者统计男、女员工的数量,或者统计平均工资、最高工资、最低工资等信息。(7)读取功能:可将保存在文件中的人员信息读入到当前系统中,供用户进行使用。(8)退出功能:退出程序。添加后的数据:编号姓名性别部门等级工资1张三男经理A5000元2李四男经理A5000元编3王五男经理A5000元辑后4李白男技术B4320元的数5杜甫男技术B3440元据:6洋洋女销售C2525元7丽丽女销售C2159元8武凯旋男销售D7525元9刘玲女销售D7159元编号姓名性别部门等级工资1张三男经理A5000元2李四男经理A5000元3王五男经理A5000元4李白男技术B4320元5杜甫男技术B3440元6洋洋女销售C2525元7丽丽女销售C2159元8武凯旋男销售D7525元9李平男销售D7159元按编号删除后的数据:编号姓名性别部门等级工资2李四男经理A5000元3王五男经理A5000元4李白男技术B4320元5杜甫男技术B3440元6洋洋女销售C2525元7丽丽女销售C2159元8武凯旋男销售D7525元9李平男销售D7159元按姓名删除后的数据:编号姓名性别部门等级工资2李四男经理A5000元3王五男经理A5000元5杜甫男技术B3440元6洋洋女销售C2525元7丽丽女销售C2159元8武凯旋男销售D7525元9李平男销售D7159元5、运行和调试添加功能说明:输入1,选择添加功能.充-务一条一--------B----------K_LK_K-K_H-K_tK_k-L」手=|.1目4目.。日4目I曰』目一目7目寄功功功功功功功驴询示辑隼雷--C-■■■-■■■■12345678清输入1-8选择相应功能:1说明:输入1,选择添加经理习口口口口-土1力力力一寐添添添层据员员理一?人经上J-理蕾fiCI回荏蓄熹At1234*5输入1-5您据提示版勇经理否还套寐而数据:?V•主性别,部门『并按下回车福认完馅融人■输入该经理的姓名’性别'否还真添疝数据:?yOHNf部门'井按下回车•■!通认元汐输八:否还要凛加数据:?丫OR,'性别.部门,'开按下回车确认完成输人」榛如成功!噜按任意健继续••-说明:输入2,添加技术人员nunununu-±uu-一3添添添添层Z据员员理-(?人经卜」理在«11回4£.112345部门,并按下回车静认完成输入:性别,人员的姓名,鲂在荏日寸间,按回车键完成输入:否还要添加瞥据;?Y期N=您据霭萝输入该技术人员的姓名,您据霭萝输入该技术人员的姓名,I/Mw间,按回车键完成输入:否还要添加数据:?V011N=性别,部门,并按「回车礁认完成输入:岸如成切'噜按任意键继续••-说明:输入3,添加销售人员用i=e用i=enn_unu-±iiu-「海舔舔海层7据员员理一¥人经上"理查SLIIP*工支肖有.1玉/-p-^.l*-玉-L.t、112345PR"陵黔僻疆人员的姓名,性别,部门,并按下回车确认完成输入:羸晶S当昼销售额,按回车键完成输人7&54搴否还要添加敖据:?YOR能畅譬||次输人该销售人员的姓名,性别,部门,并按下回车确认完成输入:ISAxig销售额,按回车键完成输人E亭否还要添加敖据:争度燃赡漆加成功!PR请按任意槌继堵.••说明:输入4,添加销售经理

谜示与丁添.1-提身员要A尊入还输否盘,口口口口-里方力力J谜示与丁添.1-提身员要A尊入还输否盘,口口口口-里方力力J一鬃添添添层9S理一经上一」理olfiEI回饕甯察涉12345开按下回秀角角认完场.",夔箱次输人该销售经理的姓名,'性别,'部门「并按下回车确认完成输入:占..…旗£曾&销售额,'按回车键完成输入:6543是否还要添加新据:?VOSN:漆加成功!请按任意键继续•--查询功能说明:输入2,选择查询功能充-乡一条一充-乡一条一务一里^k-K_k-K_k-K_k-K_k-K_k-K_k-K_k-K-^114目4目4目4目4目4目4目人目切柜力力力-力气农功功功功功功功功蒂询示辑犀案匚警豆编®5萤.12345678请输人1-8选择相应功能:2>#■■■、'■•怂荻5、;,*虹■■玲W暗,♦编说明:输入1,编号查询一号名回编姓返■■■123园®人仁瑛择相应查涧!1询新入编号:备号姓名性别部门级别工资2季四男经理n5000请按任意捱继象一B9说明:输入2,姓名查询当gi春择相应查询'2[五i号姓名当gi春择相应查询'2[五i号姓名性别王五勇

情按任意键继续一.部门

经理级别A工资5000说明:输入3,选择显示功能.充一务一戋一务•_里-迪巳匕匕匕匕匕匕匕匕匕巳匕E匕匕巳季=|。目1目1目一目比nn^nH^nH^nn鬻功功功功功功功g.噂.1^^噫k-^1234E678么________珥一登一卜-d一青输入选择相应功能=3.充--------务一条一---------里i公巨I目『目.4目.4目J目.n目-目I目节功功功功功功功功

豪询示辑年苦,12345678;育输入1选择相应功能:(4)编辑功能说明:输入4,选择编辑功能B----------H_R:T目4HE*目.4Rn.^Rn.^目乌目.4目穿功功功功功功功功寸加询示辑隼眼出如嚏.1^^噫一12345678请输入1-8选择相应功能:47159性别,部门,并按下回车确认完成输入:售理首犬工隹tl呼入需编辑者的姓名刘玲女王根据提示赛孜输入该5T7男销隹畜按任--说明:编辑后读取数据系::二■■::里--------^LtEtEttKEtEtEtEK-AWJ县B目J目』目J目J目「目罪功功功功功功功功L询示楫茸蚩曹显JJ‘芋•工弑司衍‘:!——;:-.1234567S呀________旦________3--------'青输七-8选择相应功能:7□销胃人员、虬销售经理级别工资A5眺^fl50H0fl5瓯]®B4320B3440C2S25C2159D7525B7159□BE理理理1<olsfis口人部经经经葺术技销销销销--i^u-B吴,-H-Irn-l.m^nl—mPm-JT、T.mpmp^L-目--■■耳-目--■nn---nn-lT-lT--目--■■目._-■.m-.琏-经旋统心名三四五白甫注酿平^:e:姓善王李杜洋一黑李谴ad意/任级号按2345&7S(5)删除功能说明:输入5,选择删除功能H'T目-4目目A目A目-目昼目.T目死功功功功功功功功

珞加询示辑字笛司*W::j::-.<^12345676--------川坨-b________--------请输入7选择相应功能:5说明:输入1,编号删除WA1-3选择相应查词*1编人你要删除入员的始号:5000432034402S器215?7525715?如果是则输入.眨理理^ofis崔敦经经销销弟员男男男男女女男男人下旋除

剩四五白®平删

后季王李杜洋黑李要曰说明:输入2,姓名删除费管理系统

删除——小型公耳1.费管理系统

删除————2•建名删除-3.返回上层-)示删除后剩下人员的信息李四牌?嬲旋?李以L否确定要删除该入员的基居理理否崔Ife式工r<工支肖肖肖当t-i£k£t-PH-L壬-L.千-l.t*T..4AA弘CCDD?,5^035^0334402b2b215975257ib9如果是则输入双.充.充--------.笋一珅匕旨旨自自自自旨匕^1-14目-目J目J目I目I目I目-月曾功功功功,功功功击加询示蝠辱笛jj-t:t9^噌12345678说明:输入6,选择统计功能请输知-8选择相应功能:6AAAAAA蚌

222七E*9/wmA=耳坦:9蚩.AA经数任理蚕星flA按(7)读取功能说明:输入7,选择读取功能趣二二二一蒜一百-■--------珅L日日日日日日它匕也耳1UKfHE.JLEE』LEE』目』目』目』目3功功功功功功功

弟加询示辑库*

--匚12345678

一一一____一型青输入.1-8选择相垣功能=75销晴人员、虬销售经理级副工资n6闾0fi5岫A5倾E432HE344HC252SC2159D7525D7159理理理44ofissu人部经经经销销销术技B0^■、性男男男男男女女男女,m_一踱-经旋成M名三四五昼成!te:姓张李王李杜洋袅蓄挚(8)退出功能说明:输入8,选择退出功能充________野一条务•-旦一珅匕自日日自:自旨LA.It!E<f目』目』目.J目』目1目<f目温功功功功功功功睦加询示S导苦§.■14.$嚅顷噫123456787Z--------清输衣1-8选择相应助能:8[Ppessanykeytocontintie6、课程设计的心得通过这次课程设计,加深了对类与派生的理解。类与派生类之间的关系,通过上机实践得到了进一步的深化。从数据成员的继承到派生类对象对基类成员函数的调用。对于类的保护成员只能被本身的成员函数使用,而不能直接从类外通过对象直接调用,所以如果想单独调用对象内的被保护的数据成员或私有的数据成员时,应该通过友元函数来实现。在编辑程序是应该多敲回车将花括号单列一行,一行只写一条语句如此可使程序看起来非常有层次感,检查错误的时候也会非常方便,最大可能的减轻了单个花括号不易检查的问题的难度。解决花括号不配对问题更好的方法是将程序分装打包成函数,放于主函数外,不过要注意定义在调用前的话,可以直接进行函数的调用,否则要先声明该函数,然后才能调用该函数。虽然有了一年的上机课,但在课程设计这一段时间,使我收获了很多在上机课上无法学习到的知识,尤其是C++的流类库与输入输出。因为这一部分知识的不熟练,在程序设计过程中遇到了不少困难,但通过老师的指导和一次又一次的改写、调试,将这些困难都解决了,心中的喜悦感油然而生。为了能使程序更加的完善,我也利用了不少的课余时间,查找了各方面的资料,当看到程序从一个头文件名到一个900多行的程序,到最后的成功运行,感觉自己这段时间的付出是非常值得的,也使我对C++产生了更浓厚的兴趣,对自己的学习以及将来的工作都是有很大的帮助的。整个实习过程让我的C++知识得到了应用,体验了程序员编程时的喜怒哀乐,知识、心智,得到全方位提升,收获颇丰。参考书目林小茶、陈维兴,《C++面向对象课程设计教程》,清华大学出版社,2009年谭浩强,《C语言程序设计》,清华大学出版社,2008年附录#include<iostream>#include<string>#include<fstream>#include<stdlib.h>usingnamespacestd;classemployee//雇员类{protected:intnumber;//编号charname[10];//姓名charsex[3];//性别chardepartment[20];//部门chargrade;//级别intpay;//工资employee*next;public:friendistream&operator>>(istream&input,employee&ob)//运算符">>"重载为友元函数{input>>>>ob.sex>>ob.department;returninput;}friendostream&operator<<(ostream&output,employee&ob)/运算符"<<"重载为友元函数{output<<ob.number<<'\t'<<<<'\t'<<ob.sex<<'\t'<<ob.department<<'\t'<<ob.grade<<'\t'<<ob.pay<<endl;returnoutput;}friendvoidtianjia();//添加功能friendvoidchaxun_number();friendvoidchaxun_name();friendvoidchaxun();//查询功能friendvoidxianshi();//显示功能friendvoidbianji();//编辑功能friendvoidshanchu_number();friendvoidshanchu_name();friendvoidshanchu();//删除功能friendvoidtongji();//统计功能friendvoidduqu();//读取功能friendintgetnumber();//获取编号};classmanager:virtualpublicemployee//经理类固定工资{public:voidget(){grade=,A,;pay=5000;number=getnumber();}};voidtianjia_manager()//经理数据添加{while(1){ofstreamofs("d:\\file1.txt”,ios::app);managerma;chargra,ch;cout<<"请根据提示依次输入该经理的姓名,性别,部门,并按下回车确认完成输入:"<<endl;cin>>ma;ma.get();gra=,A,;ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&ma,sizeof(manager));ofs.close();cout<<"是否还要添加数据:?YORN:\n";cin>>ch;if(ch=='Y')continue;elsecout<<"添加成功!"<<endl;system("pause");break;}}classartisan:publicemployee//技术人员类按小时领月薪{public:voidget(){intper,hour;cout<<"请输入工作时间,按回车键完成输入:"<<endl;cin>>hour;per=80;//每小时工资80grade=,B,;pay=per*hour;number=getnumber();}};voidtianjia_artisan()//技术人员数据添加{while(1){ofstreamofs("d:\\file1.txt”,ios::app);artisanar;chargra,ch;cout<<"请根据提示依次输入该技术人员的姓名,性别,部门,并按下回车确认完成输入:"<<endl;cin>>ar;ar.get();gra=,B,;ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&ar,sizeof(artisan));ofs.close();cout<<"是否还要添加数据:?YORN:\n";cin>>ch;if(ch==,Y,)continue;elsecout<<"添加成功!"<<endl;system("pause");break;}}classsalesman:virtualpublicemployee//销售人员类当月销售提成{public:voidget(){intscore;cout<<"请输入员工当月销售额,按回车键完成输入:〃;cin>>score;grade=,C,;pay=0.33*score;number=getnumber();}};voidtianjia_salesman()//销售人员数据添加{while(1){ofstreamofs("d:\\file1.txt”,ios::app);salesmansa;chargra,ch;cout<<"请根据提示依次输入该销售人员的姓名,性别,部门,并按下回车确认完成输入:"<<endl;cin>>sa;sa.get();gra-C;ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&sa,sizeof(salesman));ofs.close();cout<<"是否还要添加数据:?YORN:\n";cin>>ch;if(ch--'Y')continue;elsecout<<"添加成功!"<<endl;system("pause");break;}}classsales_manager:publicmanager,publicsalesman//销售经理类当月销售提成+固定工资{public:voidget(){intscore;cout<<"请输入员工当月销售额,按回车键完成输入:〃;cin>>score;grade-'D';pay-0.33*score+5000;number-getnumber();}};voidtianjia_sales_manager()//销售经理数据添加{while(1){ofstreamofs("d:\\file1.txt”,ios::app);sales_managersam;chargra,ch;cout<<"请根据提示依次输入该销售经理的姓名,性别,部门,并按下回车确认完成输入:"<<endl;cin>>sam;sam.get();gra=,D,;ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&sam,sizeof(sales_manager));ofs.close();cout<<"是否还要添加数据:?YORN:\n";cin>>ch;if(ch==,Y,)continue;elsecout<<"添加成功!"<<endl;system("pause");break;}}intgetnumber(){ifstreamifs("d:\\file1.txt”);chargra;intn,max=0;ifs.read((char*)&gra,1);while(!ifs.eof()){if(gra==,A,){managerma;ifs.read((char*)&ma,sizeof(manager));n=ma.number;}elseif(gra=='B'){artisanar;ifs.read((char*)&ar,sizeof(artisan));n=ar.number;}elseif(gra=='C'){salesmansa;ifs.read((char*)&sa,sizeof(salesman));n=sa.number;}elseif(gra=='D'){sales_managersam;ifs.read((char*)&sam,sizeof(sales_manager));n=sam.number;}if(max<n)max=n;ifs.read((char*)&gra,1);}ifs.close();returnmax+1;}voidtianjia()//添加功能函数定义{system("cls");cout<<"\t\t"<<endl;cout<<"\t\t|小型公司工资管理系统|"<<endl;cout<<"\t\t|1.经理数据添加|"<<endl;cout<<"\t\t|2.技术人员添加|"<<endl;cout<<"\t\t|3.销售人员添力口1"<<endl;cout<<"\t\t|4.销售经理添力口1"<<endl;cout<<"\t\t|5.返回上一层|"<<endl;cout<<"\t\t"<<endl;cout<<"请输入1-5选择相应添加:";intse;cin>>se;switch(se){case1:tianjia_manager();break;case2:tianjia_artisan();break;case3:tianjia_salesman();break;case4:tianjia_sales_manager();break;case5:return;}}voidchaxun_number(){intnu;cout<<"请输入编号:"<<endl;cin>>nu;ifstreamifs("d:\\file1.txt”);if(!ifs){cout<<"文件打开失败!";system("pause");return;}chargra;intflag=0;ifs.read((char*)&gra,1);while(!ifs.eof()){if(gra==,A,){managerma;ifs.read((char*)&ma,sizeof(manager));if(ma.number==nu){cout<<"编号〃<<'\t'<<〃姓名〃<<'\t'<<〃性别〃<<'\t'<<〃部门〃<<'\t'<<〃级别〃<<'\t'<<〃工资〃<<endl;cout<<ma;flag=1;}}elseif(gra=='B'){artisanar;ifs.read((char*)&ar,sizeof(artisan));if(ar.number==nu){cout<<"编号〃<<'\t'<<〃姓名〃<<'\t'<<〃性别〃<<'\t'<<〃部门〃<<'\t'<<〃级别〃<<'\t'<<〃工资〃<<endl;cout<<ar;flag=1;}}elseif(gra=='C'){salesmansa;ifs.read((char*)&sa,sizeof(salesman));if(sa.number==nu){cout<<"编号〃<<'\t'<<〃姓名〃<<'\t'<<〃性别〃<<'\t'<<〃部门〃<<'\t'<<〃级别〃<<'\t'<<〃工资〃<<endl;cout<<sa;flag=1;}elseif(gra=='D'){sales_managersam;ifs.read((char*)&sam,sizeof(sales_manager));if(sam.number==nu){cout<<"编号〃<<'\t'<<〃姓名〃<<'\t'<<〃性别〃<<'\t'<<〃部门〃<<'\t'<<〃级别〃<<'\t'<<〃工资〃<<endl;cout<<sam;flag=1;}}ifs.read((char*)&gra,1);}if(!flag)cout<<"没有找到要查询的编号”<<endl;ifs.close();system("pause");}voidchaxun_name(){charna[10];cout<<"请输入姓名:"<<endl;cin>>na;ifstreamifs("d:\\file1.txt”);if(!ifs){cout<<"文件打开失败!";system("pause");return;}chargra;intflag=0;ifs.read((char*)&gra,1);while(!ifs.eof()){if(gra==,A,){managerma;ifs.read((char*)&ma,sizeof(manager));if(strcmp(,na)==0){cout<<"编号"<<,\t,<<"姓名"<<,\t,<<"性别"<<,\t,<<"部门"<<,\t,<<"级别"<<,\t,<<"工资〃<<endl;cout<<ma;flag=1;}}elseif(gra==,B,){artisanar;ifs.read((char*)&ar,sizeof(artisan));if(strcmp(,na)==0){cout<<"编号"<<,\t,<<"姓名"<<,\t,<<"性别"<<,\t,<<"部门"<<,\t,<<"级别"<<,\t,<<"工资〃<<endl;cout<<ar;flag=1;}}elseif(gra==,C,){salesmansa;ifs.read((char*)&sa,sizeof(salesman));if(strcmp(,na)==0){cout<<"编号"<<,\t,<<"姓名"<<,\t,<<"性别"<<,\t,<<"部门"<<,\t,<<"级别"<<'\t'<<”工资〃<<endl;cout<<sa;flag=1;}}elseif(gra=='D'){sales_managersam;ifs.read((char*)&sam,sizeof(sales_manager));if(strcmp(,na)==0){cout<<"编号〃<<'\t'<<〃姓名〃<<'\t'<<〃性别〃<<'\t'<<〃部门〃<<'\t'<<〃级别〃<<'\t'<<〃工资〃<<endl;cout<<sam;flag=1;}}ifs.read((char*)&gra,1);}if(!flag)cout<<"没有找到要查询的姓名"<<endl;ifs.close();system("pause");}voidchaxun()//查询功能函数定义{system("cls");cout<<"\t\t"<<endl;cout<<"\t\t|小型公司工资管理系统1"<<endl;cout<<"\t\t|1.编号查找|"<<endl;cout<<"\t\t|2.姓名查找|"<<endl;cout<<"\t\t|3.返回上层|"<<endl;cout<<"\t\t"<<endl;cout<<"请输入1-3选择相应查询:";intse;cin>>se;switch(se){case1:chaxun_number();break;case2:chaxun_name();break;case3:return;}}voidxianshi()//显示功能函数定义{system("cls");cout<<"\t\t"<<endl;cout<<"\t\t|小型公司工资管理系统1"<<endl;cout<<"\t\t|1.添加功能|"<<endl;cout<<"\t\t|2.查询功能|"<<endl;cout<<"\t\t|3.显示功能|"<<endl;cout<<"\t\t|4.编辑功能|"<<endl;cout<<"\t\t|5.删除功能|"<<endl;cout<<"\t\t|6.统计功能|"<<endl;cout<<"\t\t|7.读取功能|"<<endl;cout<<"\t\t|8.退出功能|"<<endl;cout<<"\t\t"<<endl;cout<<"请输入1-8选择相应功能:";intse;cin>>se;while(se>8||se<1){cout<<"输入数据无效,请重新输入:";cin>>se;}cout<<endl;switch(se){case1:tianjia();break;case2:chaxun();break;case3:xianshi();break;case4:bianji();break;case5:shanchu();break;case6:tongji();break;case7:duqu();break;case8:exit(0);}}voidbianji()//编辑功能函数定义{charna[10];intz=0;cout<<"请输入需编辑者的姓名:"<<endl;cin>>na;fstreammystream("d:\\file1.txt”,ios::in|ios::out);if(!mystream){cout<<"文件打开失败!";system("pause");return;}chargra;intflag=0;mystream.read((char*)&gra,1);while(!mystream.eof()){if(gra==,A,){managerma;mystream.read((char*)&ma,sizeof(manager));if(strcmp(,na)==0){cout<<ma;cout<<"请根据提示依次输入该经理的姓名,性别,部门,并按下回车确认完成输入:"<<endl;cin>>ma;mystream.seekp(-sizeof(manager),ios::cur);mystream.write((char*)&ma,sizeof(manager));flag=1;mystream.seekg(sizeof(manager),ios::cur);}}elseif(gra=='B'){artisanar;mystream.read((char*)&ar,sizeof(artisan));if(strcmp(,na)==0){cout<<ar;cout<<"请根据提示依次输入该技术人员的姓名,性别,部门,并按下回车确认完成输入:"<<endl;cin>>ar;mystream.seekp(-sizeof(artisan),ios::cur);mystream.write((char*)&ar,sizeof(artisan));flag=1;mystream.seekg(sizeof(artisan),ios::cur);}}elseif(gra=='C'){salesmansa;mystream.read((char*)&sa,sizeof(salesman));if(strcmp(,na)==0){cout<<sa;cout<<"请根据提示依次输入该销售人员的姓名,性别,部门,并按下回车确认完成输入:"<<endl;cin>>sa;mystream.seekp(-sizeof(salesman),ios::cur);mystream.write((char*)&sa,sizeof(salesman));flag=1;mystream.seekg(sizeof(salesman),ios::cur);}}elseif(gra=='D'){sales_managersam;mystream.read((char*)&sam,sizeof(sales_manager));if(strcmp(,na)==0){cout<<sam;cout<<"请根据提示依次输入该销售经理的姓名,性别,部门,并按下回车确认完成输入:"<<endl;cin>>sam;mystream.seekp(-sizeof(sales_manager),ios::cur);mystream.write((char*)&sam,sizeof(sales_manager));flag=1;mystream.seekg(sizeof(sales_manager),ios::cur);}}mystream.read((char*)&gra,1);}if(!flag)cout<<"没有找到要修改的姓名"<<endl;mystream.close();system("pause");}voidshanchu_number()//编号删除功能函数定义{ifstreamifs("d:\\file1.txt”);if(!ifs){cout<<"打开文件失败!";system("pause");return;}intnu;cout<<"请输入你要删除人员的编号:"<<endl;cin>>nu;intflag;intflag2=0;employee*head=NULL,*p,*tail=NULL;chargra;ifs.read((char*)&gra,1);while(!ifs.eof()){flag=0;if(gra==,A,){manager*p1;p1=newmanager;ifs.read((char*)p1,sizeof(manager));if(p1->number!=nu){flag=1;flag2=1;}p=p1;}elseif(gra==,B,){artisan*p2;p2=newartisan;ifs.read((char*)p2,sizeof(artisan));if(p2->number!=nu){flag=1;flag2=1;}p=p2;}elseif(gra=='C'){salesman*p3;p3=newsalesman;ifs.read((char*)p3,sizeof(salesman));if(p3->number!=nu){flag=1;flag2=1;}p=p3;}elseif(gra=='D'){sales_manager*p4;p4=newsales_manager;ifs.read((char*)p4,sizeof(sales_manager));if(p4->number!=nu){flag=1;flag2=1;}p=p4;}if(flag){if(head==NULL)head=p;elsetail->next=p;tail=p;tail->next=NULL;}ifs.read((char*)&gra,sizeof(char));}ifs.close();if(!flag2){cout<<"没有找到要删除的信息!";return;}cout<<"显示删除后剩下人员的信息!"<<endl;p=head;while(p!=NULL){cout<<*p;p=p->next;}cout<<"是否确定要删除该人员的基本数据?,如果是则输入:Y"<<endl;charchw;cin>>chw;if(chw==,Y,){ofstreamofs("d:\\file1.txt”,ios::out);if(!ofs){cout<<"打开文件失败!";system("pause");return;}p=head;while(p!=NULL){if(p->grade==,A,){chargra=,A,;managerma;ma.number=p->number;strcpy(,p->name);strcpy(ma.sex,p-〉sex);strcpy(ma.department,p->department);ma.grade=p-〉grade;ma.pay=p->pay;ma.next=p->next;ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&ma,sizeof(manager));}elseif(p->grade==,B,){chargra=,B,;artisanar;ar.number=p->number;strcpy(,p->name);strcpy(ar.sex,p->sex);strcpy(ar.department,p->department);ar.grade=p->grade;ar.pay=p->pay;ar.next=p->next;ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&ar,sizeof(artisan));}elseif(p->grade==,C,){chargra='C';salesmansa;sa.number=p->number;strcpy(,p->name);strcpy(sa.sex,p->sex);strcpy(sa.department,p->department);sa.grade=p->grade;sa.pay=p->pay;sa.next=p->next;ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&sa,sizeof(salesman));}elseif(p->grade=='D'){chargra='D';sales_managersam;sam.number=p->number;strcpy(,p->name);strcpy(sam.sex,p->sex);strcpy(sam.department,p->department);sam.grade=p->grade;sam.pay=p->pay;sam.next=p->next;ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&sam,sizeof(sales_manager));}p=p->next;}cout<<"删除完毕!"<<endl;ofs.close();system("pause");}voidshanchu_name()//姓名删除功能函数定义{ifstreamifs("d:\\file1.txt”);if(!ifs){cout<<"打开文件失败!";system("pause");return;}charna[10];cout<<"请输入你要删除人员的姓名:\n”;cin>>na;intflag=0;intflag2=0;employee*head=NULL,*p,*tail=NULL;chargra;ifs.read((char*)&gra,1);while(!ifs.eof()){flag=0;if(gra==,A,){manager*p1;p1=newmanager;ifs.read((char*)p1,sizeof(manager));if(strcmp(p1->name,na)!=0){flag=1;flag2=1;}p=p1;elseif(gra=='B'){artisan*p2;p2=newartisan;ifs.read((char*)p2,sizeof(artisan));if(strcmp(p2->name,na)!=0){flag=1;flag2=1;}p=p2;}elseif(gra=='C'){salesman*p3;p3=newsalesman;ifs.read((char*)p3,sizeof(salesman));if(strcmp(p3->name,na)!=0){flag=1;flag2=1;}p=p3;}elseif(gra=='D'){sales_manager*p4;p4=newsales_manager;ifs.read((char*)p4,sizeof(sales_manager));if(strcmp(p4->name,na)!=0){flag=1;flag2=1;p=p4;}if(flag){p->next=NULL;if(head==NULL)head=p;elsetail->next=p;tail=p;tail->next=NULL;}ifs.read((char*)&gra,sizeof(char));}ifs.close();if(!flag2){cout<<"没有找到要删除的信息!";return;}cout<<"显示删除后剩下人员的信息!"<<endl;p=head;while(p!=NULL){cout<<*p;p=p->next;}cout<<"是否确定要删除该人员的基本数据?,如果是则输入:Y"<<endl;charchw;cin>>chw;if(chw==,Y,){ofstreamofs("d:\\file1.txt”,ios::out);if(!ofs){cout<<"打开文件失败!";system("pause");return;}p=head;while(p!=NULL){if(p->grade==,A,){chargra=,A,;managerma;ma.number=p->number;strcpy(,p->name);strcpy(ma.sex,p-〉sex);strcpy(ma.department,p->department);ma.grade=p-〉grade;ma.pay=p->pay;ma.next=p->next;ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&ma,sizeof(manager));}elseif(p->grade==,B,){chargra=,B,;artisanar;ar.number=p->number;strcpy(,p->name);strcpy(ar.sex,p->sex);strcpy(ar.department,p->department);ar.grade=p->grade;ar.pay=p->pay;ar.next=p->next;ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&ar,sizeof(artisan));}elseif(p->grade=='C'){chargra='C';salesmansa;sa.number=p->number;strcpy(,p->name);strcpy(sa.sex,p->sex);strcpy(sa.department,p->department);sa.grade=p->grade;sa.pay=p->pay;sa.next=p->next;ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&sa,sizeof(salesman));}elseif(p->grade=='D'){chargra='D';sales_managersam;

温馨提示

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

评论

0/150

提交评论