欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C++课程设计报告:公司员工管理系统.doc

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

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

    C++课程设计报告:公司员工管理系统.doc

    (2014届)面向对象课程设计课程设计报告课程设计题目:公司员工管理系统学 院:软件学院专 业:软件工程(电子商务)学生姓名:班 级:学号:指导老师:2015年6月25日目录1需求分析32. 具体要求33. 总体设计34详细设计45测试结果146软件操作说明书197总结198源代码19公司员工管理系统课程设计报告1 需求分析根据对公司人员管理的需要,编写一个“公司人员管理系统”,以方便对公司人员数据的录入、修改、删除、显示、和查询功能。2. 具体要求设计一个虚基类Staff(员工),包括编号、姓名和年龄保护数据成员以及相关的成员函数;由Staff派生出工程师类Engineer包含专业和职称保护数据成员以及相关的成员函数,再由Staff派生出领导类Leader,包括职务和部门保护数据成员以及相关的成员函数;然后由Engineer和Leader类派生出主任工程师类Chairman。具体实现以下要求:1. 增加员工数据信息2. 更新员工数据信息3. 查询员工数据信息4. 删除员工数据信息5. 良好的人际交互界面、方便操作3.总体设计根据问题描述和要求,系统要求能够按姓名或者编号显示、查找、增加、删除和保存各类人员的信息。确定程序至少应该具备如下功能:“增加各类人员数据”、“查询各类人员数据”、“显示各类成员数据”、“修改各类人员数据”、“删除各类人员数据”、“各类人员数据存盘”、“各类人员数据读入”基本模块。图3.1 程序基本功能结构图为体现面向对象编程的优点,本系统除过显示菜单函数、文件读写以及主函数为全局函数外,其他所有函数功能均封装于类之中。图3.2 类结构一览图4详细设计本系统公有五个类,其中一个抽象类,一个模版类,三个派生类。全局函数包括一个主函数、五个菜单显示函数、文件读写函数各三个。下面详细阐述各部分的具体构成。1) 各类的构成a) 抽象类Staff本系统中Staff类中拥有四个纯虚函数,故为抽象类,这四个纯虚函数为Staff类的派生类提供了共同的接口,函数的具体功能则由派生类实现,并且拥有保护成员TableNumber和Name11,分别用于记录员工的编号和姓名。图4.1 Staff类一览图b) 派生类Engineer与LeaderEngineer与Leader类公有继承于Staff类,分别增加保护成员Profession11、PostName11与post11、workspace11分别用于记录工程师的专业、职称和领导的职务、部门,并且重写了四个虚函数,使得四个函数拥有了具体的功能。图4.2 Engineer类一览图图4.3 Leader类一览图c) 派生类ChairmanChairman 类是由Engineer与Leader类共同派生出的,并没有增加任何私有或保护成员,但是重写了原来的四个虚函数。图4.4 Chairman类一览图d) 模版类List <t>为了减少代码的重复并且提高程序的运行效率,这里特地定义模版类List <t>,主函数中绝大多数具体功能都由类模版中的函数直接实现,具体成员与函数如下:1. 私有成员T dataMAXSIZE,用于存放任意类型的对象数组。2. 私有成员int len,用来统计对象数组最后一个成员的下标。3. 公有成员函数 void addList,用于调用具体对象的draw()函数增加员工数据。4. 公有成员函数void BIList(),用于显示所有员工的数据。图4.5BIList()函数流程图5. 公有成员函数int research(int j),用于查询员工数据并显示到显示器上。图4.6 research函数流程图6. 公有成员函数void deleteDat(int k),用于删除员工数据。图4.7 deleteDat函数流程图7. 公有成员函数void output(int j),用于把已有员工数据输出到硬盘上。图4.8 output函数流程图8. 公有成员函数void inter(int j),用于把硬盘上的员工数据读出并显示到显示器上。图4.9inter函数流程图2) 主函数main构成本系统中主函数创建了三个模版类的具体对象,借此来访问各个具体类的成员函数,用户通过输入信息调用相应的功能模块函数,实现员工数据的录入、查询、显示、删除、保存、加载等功能。主函数流程图如下:主函数流程图5测试结果(1) 程序运行主菜单:(2) 添加数据:(3) 查询数据:(4) 显示数据:(5) 保存数据:(6) 加载数据:(7) 删除数据:6软件操作说明书本系统操作简洁明了,运行后界面同上,用户按菜单提示操作即可。7总结经过一学期对面向对象语言C+的学习,我对面向对象的编程思想有了一定的认识,但是个人认为还远远不够,现在我已能够完成一些很基础的小型程序的开发,但是若想做一些大一点的项目,还需要继续加倍努力。关于这个公司员工管理系统,编写的过程中我发现了我有一些基础的知识还不大牢固,比如说多态性里的抽象类、虚函数等,但是经过这几天努力复习已经对其有了更深入的了解。8源代码#include <iostream>#include<string.h>#include<fstream>#include<windows.h>/ 图形设备接口函数/0=黑色8=灰色1=蓝色9=淡蓝色2=绿色A=淡绿色3=湖蓝色B=淡浅绿色4=红色C=淡红色5=紫色D=淡紫色6=黄色E=淡黄色7=白色F=亮白色#define MAXSIZE 10using namespace std;ofstream out4("Engineer.txt",ios:app);/ ios:app 以追加的方式打开文件ofstream out2("Leader.txt",ios:app);ofstream out3("Chairman.txt",ios:app);ifstream in4("Engineer.txt",ios:app);ifstream in2("Leader.txt",ios:app);ifstream in3("Chairman.txt",ios:app);void menu();void addPerson();void removePerson();void displayPerson();class Staffprotected :double TableNumber;char Name11;int age;public :virtual void draw()=0 ;virtual void Display()=0;virtual void out1()=0;virtual int input()=0;class Engineer:virtual public Staffprotected:char Profession11;char PostName11;public :void draw()cout<<"请输入"<<endl<<"编号:"cin>>TableNumber;cout<<"姓名:"cin>>Name;cout<<"年龄:"cin>>age;cout<<"专业:"cin>>Profession;cout<<"职称:"cin>>PostName;system("pause");void Display()cout<<TableNumber<<"tt"<<Name<<"t"<<age<<"t"<<Profession<<"tt"<<PostName<<endl;double getTableNumber()return TableNumber;void out1()if(out4)out4<<TableNumber<<' '<<Name<<' '<<age<<' '<<Profession<<' '<<PostName<<endl;if(!out4)cout<<"输出失败"<<endl;int input()if(in4)in4>>TableNumber>>Name>>age>>Profession>>PostName;cout<<"导入成功!"<<endl;cout<<TableNumber<<"tt"<<Name<<"t"<<age<<"t"<<Profession<<"tt"<<PostName<<endl;return 0;if(!in4)cout<<"导入失败"<<endl;return 1;return 0;class Leader:virtual public Staffprotected:char post11;char workspace11;public:void draw()cout<<"请输入"<<endl<<"编号:"cin>>TableNumber;cout<<"姓名:"cin>>Name;cout<<"年龄:"cin>>age;cout<<"职务:"cin>>post;cout<<"部门:"cin>>workspace;system("pause");void Display()cout<<TableNumber<<"tt"<<Name<<"t"<<age<<"t"<<post<<"tt"<<workspace<<endl;double getTableNumber()return TableNumber;void out1()if(out2)out2<<TableNumber<<' '<<Name<<' '<<age<<' '<<' '<<post<<' '<<workspace<<' '<<endl;if(!out2)cout<<"输出失败"<<endl;int input()if(in2)in2>>TableNumber>>Name>>age>>post>>workspace;cout<<"导入成功!"<<endl;cout<<TableNumber<<"tt"<<Name<<"t"<<age<<"t"<<post<<"tt"<<workspace<<endl;return 0;if(!in2)cout<<"导入失败"<<endl;return 1;return 0;class Chairman:public Engineer,public Leaderpublic:void draw()cout<<"请输入"<<endl<<"编号:"cin>>TableNumber;cout<<"姓名:"cin>>Name;cout<<"年龄:"cin>>age;cout<<"专业:"cin>>Profession;cout<<"职称:"cin>>PostName;cout<<"职务:"cin>>post;cout<<"部门:"cin>>workspace;system("pause");void Display()cout<<TableNumber<<"tt"<<Name<<"t"<<age<<"t"<<Profession<<"tt"<<PostName<<"tt"<<post<<"tt"<<workspace<<endl;double getTableNumber()return TableNumber;void out1()if(out3)out3<<TableNumber<<' '<<Name<<' '<<age<<' '<<Profession<<' '<<PostName<<' '<<post<<' '<<workspace<<' '<<endl;if(!out3)cout<<"输出失败"<<endl;int input()if(in3)in3>>TableNumber>>Name>>age>>Profession>>PostName>>post>>workspace;cout<<"导入成功!"<<endl;cout<<TableNumber<<"tt"<<Name<<"t"<<age<<"t"<<Profession<<"tt"<<PostName<<"tt"<<post<<"tt"<<workspace<<endl;return 0;if(!in3)cout<<"导入失败"<<endl;return 1;return 0;template <class T>class Listprivate:T dataMAXSIZE;int len;public:List()len=0;void addList()len+=1;datalen-1.draw();void BlList()if(len=0)cout<<"数据为空"<<endl;system("pause");return;for(int i=0; i<len; i+)datai.Display();system("pause");int research(int j)double a;if(len=0)cout<<"数据为空"<<endl;system("pause");return 0;cout<<"请输入你所要查询的职员编号"<<endl;cin>>a;for(int i=0; i<len; i+)if(datai.getTableNumber()=a)if(j=1)cout<<"编号tt姓名t年龄t专业tt职称"<<endl;if(j=2)cout<<"编号tt姓名t年龄t职务tt部门"<<endl;if(j=3)cout<<"请输入tt编号"<<"t"<<"姓名"<<"t"<<"年龄"<<"t"<<"专业"<<"tt"<<"职称"<<"tt"<<"职务"<<"tt"<<"部门"<<endl;datai.Display();system("pause");return i;if(i=len-1)cout<<"没有找到该成员"<<endl;system("pause");return 0;void deleteDat(int k)int a, j=-1;if(len=0)cout<<"数据为空"<<endl;system("pause");return;cout<<"请输入你要删除的人员编号"<<endl;cin>>a;for(int i=0; i<len; i+)if(datai.getTableNumber()=a)if(k=1)cout<<"编号tt姓名t年龄t专业tt职称"<<endl;if(k=2)cout<<"编号tt姓名t年龄t职务tt部门"<<endl;if(k=3)cout<<"请输入tt编号"<<"t"<<"姓名"<<"t"<<"年龄"<<"t"<<"专业"<<"tt"<<"职称"<<"tt"<<"职务"<<"tt"<<"部门"<<endl;datai.Display();j=i;for(int i=j; i<len; i+)datai=datai+1;len-=1;if(j!=-1)cout<<"删除成功"<<endl;system("pause");if(j=-1)cout<<"没有该成员"<<endl;system("pause");void output(int j)switch(j)case 1: for(int k=0; k<len; k+)datak.out1();out4.close();cout<<"输出成功,输出到当前目录下的Engineer.txt文件中,请注意查看"<<endl;system("pause");break;case 2:for(int k=0; k<len; k+) datak.out1(); out2.close(); cout<<"输出成功,输出到当前目录下的Leader.txt文件中,请注意查看"<<endl; system("pause"); break;case 3:for(int k=0; k<len; k+) datak.out1(); out3.close(); cout<<"输出成功,输出到当前目录下的Chairman.txt文件中,请注意查看"<<endl; system("pause"); break;void inter(int j)int temp;int chose;cout<<"请输入你要导入的数据个数"<<endl;cin>>temp;switch(j)case 1: for(int k=0; k<temp; k+)chose=datak.input();if(chose=1)len-=1;break;len+=1;in4.close();system("pause");break;case 2:for(int k=0; k<temp; k+) chose=datak.input(); if(chose=1) len-=1; break; len+=1; in2.close(); system("pause"); break;case 3:for(int k=0; k<temp; k+) chose=datak.input(); if(chose=1) len-=1; break; len+=1; in3.close(); system("pause"); break;int main()string a;int i, j, k , m;List<Engineer> EngineerList;List<Leader> LeaderList;List<Chairman> ChairmanList;cout<<"请输入您的选择"<<endl;dosystem("cls");system("COLOR 5F");menu();cin>>i;switch(i)case 1:system("cls");system("COLOR 20");addPerson();cin>>j;switch(j)case 1:cout<<"你要添加几个工程师数据:"<<endl;cin>>m;for(k=0; k<m; k+)EngineerList.addList();break;case 2:cout<<"你要添加几个领导数据:"<<endl;cin>>m;for(k=0; k<m; k+)LeaderList.addList();break;case 3:cout<<"你要添加几个主任工程师数据:"<<endl;cin>>m;for(k=0; k<m; k+)ChairmanList.addList();break;break;case 2:system("cls");system("COLOR 30");displayPerson();cin>>j;switch(j)case 1:EngineerList.research(j);break;case 2:LeaderList.research(j);break;case 3:ChairmanList.research(j);break;break;case 3:system("cls");system("COLOR 40");removePerson();cin>>j;switch(j)case 1:EngineerList.deleteDat(j);break;case 2:LeaderList.deleteDat(j);break;case 3:ChairmanList.deleteDat(j);break;break;case 4: system("cls");system("COLOR 50");displayPerson();cin>>j;switch(j)case 1:cout<<"编号tt姓名t年龄t专业tt职称"<<endl;EngineerList.BlList();break;case 2:cout<<"编号tt姓名t年龄t职务tt部门"<<endl;LeaderList.BlList();break;case 3:cout<<"请输入tt编号"<<"t"<<"姓名"<<"t"<<"年龄"<<"t"<<"专业"<<"tt"<<"职称"<<"tt"<<"职务"<<"tt"<<"部门"<<endl;ChairmanList.BlList();break;break;case 5:system("cls");system("COLOR 60");displayPerson();cin>>j;switch(j)case 1:cout<<"编号tt姓名t年龄t专业tt职称"<<endl;EngineerList.output(j);break;case 2:cout<<"编号tt姓名t年龄t职务tt部门"<<endl;LeaderList.output(j);break;case 3:cout<<"请输入tt编号"<<"t"<<"姓名"<<"t"<<"年龄"<<"t"<<"专业"<<"tt"<<"职称"<<"tt"<<"职务"<<"tt"<<"部门"<<endl;ChairmanList.output(j);break;break;case 6: system("cls");system("COLOR 60");displayPerson();cin>>j;switch(j)case 1:EngineerList.inter(j);break;case 2:LeaderList.inter(j);break;case 3:ChairmanList.inter(j);break;break;while(i!=0);return 0;void menu()cout<<"|-|"<<endl;cout<<"|-员工管理系统-|"<<endl;cout<<"|-1-添加数据-|"<<endl;cout<<"|-2-查询数据-|"<<endl;cout<<"|-3-删除数据-|"<<endl;cout<<"|-4-显示数据-|"<<endl;cout<<"|-5-导出数据到硬盘-|"<<endl;cout<<"|-6-导入数据到内存-|"<<endl;cout<<"|-0-退出-|"<<endl;cout<<"|-|"<<endl;void addPerson()cout<<"|-|"<<endl;cout<<"|-1-添加工程师-|"<<endl;cout<<"|-2-添加领导-|"<<endl;cout<<"|-3-添加主任工程师-|"<<endl;cout<<"|-|"<<endl;cout<<"请选择:"<<endl;void removePerson()cout<<"|-|"<<endl;cout<<"|-1-删除工程师-|"<<endl;cout<<"|-2-删除领导-|"<<endl;cout<<"|-3-删除主任工程师-|"<<endl;cout<<"|-|"<<endl;cout<<"请选择:"<<endl;void displayPerson()cout<<"|-|"<<endl;cout<<"|-1-工程师名单-|"<<endl;cout<<"|-2-领导名单-|"<<endl;cout<<"|-3-主任工程师名单-|"<<endl;cout<<"|-|"<<endl;cout<<"请选择:"<<endl;

    注意事项

    本文(C++课程设计报告:公司员工管理系统.doc)为本站会员(叶***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开