欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    《C++程序设计》课程设计公司人员管理系统.doc

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

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

    《C++程序设计》课程设计公司人员管理系统.doc

    课程设计说明书 课 程 名 称: C+程序设计 年级/专业/班: 2008级网工一班 学 生 姓 名: 学 号: 指 导 教 师: 目 录摘 要- 1 -一、引 言- 2 -二、设计目的与任务- 2 -三、设计方案- 2 -1、总体设计- 2 -2、详细设计- 2 -3、程序清单- 2 -4、程序调试与体会- 2 -5、运行结果- 2 -四、结 论- 2 -五、致 谢- 2 -六、参考文献- 3 -摘 要本课程设计的目的是设计一个公司人员管理的程序,用来实现对人员的管理,其中包括人员的添加、删除、查询等问题。根据面向对象编程的思想,设计了一个经理类来封装telem的姓名、性别、生日、编号、工作地点、工作时间、年龄等相关信息以及获取人员相关信息的方法等,然后通过指针来实现信息的插入、删除和查询等相关操作从而达到统计信息的。通过C+课程设计,使学生能够将学到的面向对象的设计思想运用在具体的工作和学习中,加深对类和对象的理解,要求学生对生活中许多具体的事物抽象出类,并掌握继承和派生类、基类、虚函数和多态的概念.通过这次课程设计掌握C+语言程序设计的编程思想,为后续课程打下基础,同时培养我实际操作能力和实践能力,为以后的工作打下坚实的基础。C+程序设计课程设计-公司人员管理系统一、引 言本课程设计要实现的是一个管理公司人员信息的程序,为公司的管理工作设计了一个方便的解决方案。公司人员的管理是公司的一项重要工作,依据公司人员地身份可以将人员分类,主要有四类人员:经理、兼职技术人员、销售经理和兼职推销员。现在,需要存储这些人员的姓名、编号、级别、当月薪水,计算月薪总额并显示全部信息。所以,管理工作对于公司至关重要。,我们通过所学的相关知识来设计一个管理人员信息的程序,实现人员信息的插入、删除、查询以及相应的文件操作。其中经理信息和员工信息可以用C+中的类进行封装,然后把各个对象插入到链表中来实现人员信息的保存以便以后的查询、删除等操作。二、 设计目的与任务1、通过课程设计更进一步理解C+的基础知识和面向对象的思想;2、培养用系统的观点和软件开发一般规范认识软件开发,为以后的软件开发奠定基础。并在此过程中培养严谨的科学态度和良好的工作作风。初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3、熟练掌握C+中类及类所具备的功能在程序中的应用,并熟练了解类中函数的调用。三、设计方案1、总体设计根据问题描述和要求,系统要求能够按姓名或者编号显示、查找、增加、删除和保存各类人员的信息。确定程序至少应该具备如下功能:“查询人员”、“增加人员”、“删除人员”、“数据存盘”基本模块。该程序包括以下功能模块: 1) 从键盘录入全部人员记录模块:可一次增加多位人员地记录,并能够将人员基本信息保存到文件中。2) 人员信息添加模块:增加一位人员的记录,选择录入人员地身份,并能够将人员基本信息保存到文件中。3) 显示全部人员记录模块:直接显示经理和普通人员的姓名、性别、编号、工作部门、出生日期以及参加工作时间。4) 计算人员平均年龄模块:计算经理平均年龄和计算员工平均年龄5) 删除人员信息模块:包含删除经理信息操作和删除员工信息操作两个子模块,分别实现能够删除经理和员工的信息6) 按部门输出人员信息模块:能够按要求输出员工的姓名等相关信息,它包括输出经理信息操作和输出员工信息操作两个子模块。7) 按姓名或编号输出人员信息模块:能够按姓名或编号输出员工的姓名等相关信息,它包括检索经理信息和检索员工信息两个子模块。8) 帮助及退出模块:能够显示程序的帮助信息并能有效的退出程序。9)退出模块:能有效的退出程序。2、详细设计1) 执行操作,如添加、删我们设计一个程序对学生C语言、数学、英语、体育、分析成绩进行统计,对学生的成绩进行可除、查询等等。2) 实现菜单实现选择、输入学生信息并保存到文件中、计算每个学生的总分与平均分并排序、根据学号修改学生信息、根据学号删除学生信息、根据学号查询学生信息、够根据姓名、班级查询学生信息和按照班级和科目计算平均分。3、程序清单#include<iostream.h> #include<string.h> #include<fstream.h> #include<stdlib.h> #include<string.h> #include<iomanip.h> #define maxsize 100 /定义最大的容量fstream iofile; class Time public: int year; int month; int day; ; class Telem public: char name20; char sex10; Time birthtime; char num20; char workpart20; Time worktime; int year; friend istream& operator>>(istream& input,Telem& T); friend ostream& operator<<(ostream& output,Telem& T); friend int operator-(Time & t1,Time & t2); ; class People public: People(); virtual void AddF()=0; virtual void Addall()=0; virtual void Add()=0; virtual void Display(); virtual void Displaypart(char p); virtual void Findname(char n); virtual void Findnum(char m ); virtual int Aveyear(); virtual void Del(char n)=0; virtual void Del(int ); protected: Telem datamaxsize; Time now; int length; ; class Manager:virtual public People public: virtual void AddF(); virtual void Addall(); virtual void Add(); virtual void Display(); virtual void Del(int i); virtual void Del(char n); ; class Employee:virtual public People public: virtual void AddF(); virtual void Addall(); virtual void Add(); virtual void Display(); virtual void Del(int i); virtual void Del(char n); ; People:People() length=0; now.year=2011; now.month=5; now.day=24; void People:Display() int i; for(i=0;i<length;i+) cout<<datai; void People:Displaypart(char p) /按要求输出人员信息 int i,c; for(i=0;i<length;i+) if(strcmp(datai.workpart,p)=0) cout<<"选择输出的内容: "<<endl<<setw(30)<<"1 姓名 "<<endl<<setw(30)<<"2 性别 "<<endl<<setw(30)<<"3 编号 "<<endl<<setw(30)<<"4工作地点 "<<endl<<setw(30)<<"5 出生日期"<<endl<<setw(30)<<"6 工作时间"<<endl<<setw(30)<<"7 年龄 "<<endl<<setw(30)<<"8 退出选择"<<endl; cout<<"_"<<endl;cout<<"请选择:"while(cin>>c) cout<<"输出:"switch(c) case 1: cout<<"姓名:"<<datai.name<<endl;break; case 2: cout<<"性别:"<<datai.sex<<endl;break; case 3: cout<<"编号:"<<datai.num<<endl;break; case 4: cout<<"工作地点:"<<datai.workpart<<endl;break; case 5: cout<<"出生日期:"<<datai.birthtime.year<<" "<<datai.birthtime.month<<" "<<datai.birthtime.day<<" "<<endl;break; case 6: cout<<"工作时间:"<<datai.worktime.year<<" "<<datai.worktime.month<<" "<<datai.worktime.day<<" "<<endl;break; case 7: cout<<"年龄:"<<datai.year<<endl;break; case 8: goto loop; default:cout<<"操作错误."<<endl; loop:; void People:Findname(char n) /按姓名查找 int i; for(i=0;i<length;i+) if(strcmp(datai.name,n)=0) cout<<datai; void People:Findnum(char m) /按编号查找 int i; for(i=0;i<length;i+) if(strcmp(datai.num,m)=0) cout<<datai; int People:Aveyear() /求平均年龄 int i,s=0; for(i=0;i<length;i+) s+=datai.year; return s/length; void People:Del(int i) int j; if(i<1|i>length) cout<<"不存在第"<<i<<"个元素" for(j=i;j<length;j+) dataj-1=dataj; length-; void Employee:AddF() int flag=0; iofile.open("Employee_information.txt",ios:in|ios:binary); while(iofile.seekg(ios:cur) iofile.seekg(length*sizeof(datalength),ios:beg); iofile.read(char*)&datalength,sizeof(datalength); length+; if(length=maxsize) flag=1; goto loop; People:Del(length); cout<<"添加人员信息成功."<<endl; loop: if(1=flag) cout<<"人员信息储存空间已满."<<endl; iofile.close(); void Employee:Addall() /增加员工信息 char ans; int flag=0; iofile.open("Employee_information.txt",ios:out|ios:binary); /将信息存入文件do cin>>datalength; datalength.year=now-datalength.birthtime; iofile.write(char*)&datalength,sizeof(datalength); cout<<"添加人员信息成功."<<endl; length+; if(length=maxsize) flag=1; goto loop; cout<<"contine(Y|N)?" cin>>ans; while('y'=ans|'Y'=ans); loop: if(1=flag) cout<<"人员信息储存空间已满."<<endl; iofile.close(); void Employee:Add() int flag=0; iofile.open("Employee_information.txt",ios:app|ios:out|ios:binary); /将信息存入文件if(length=maxsize) flag=1; goto loop; cin>>datalength; datalength.year=now-datalength.birthtime; iofile.write(char*)&datalength,sizeof(datalength); cout<<"添加人员信息成功."<<endl; length+; loop: if(1=flag) cout<<"人员信息储存空间已满."<<endl; iofile.close(); void Employee:Display() /显示员工信息 cout<<"*员工信息*"<<endl; if(0=length) cout<<"无."<<endl; int i; for(i=0;i<length;i+) cout<<datai;cout<<"-"<<endl; void Employee:Del(char n) /按姓名删除员工信息 int i,j,k; for(i=0;i<length;i+) if(strcmp(datai.name,n)=0) k=i+1;break; if(k<1) cout<<"不存在姓名"<<n<<"的人员信息" for(j=k;j<length;j+) dataj-1=dataj; length-; cout<<"删除人员信息成功."<<endl; void Employee:Del(int i) /按位置删除员工信息 int j; if(i<1|i>length) cout<<"不存在第"<<i<<"个元素" else for(j=i;j<length;j+) dataj-1=dataj; length-; cout<<"删除成功."<<endl; void Manager:AddF() int flag=0; iofile.open("Manager_information.txt",ios:in|ios:binary); while(iofile.seekg(sizeof(datalength),ios:cur) if(iofile.seekg(length*sizeof(datalength),ios:beg) iofile.read(char*)&datalength,sizeof(datalength); else break; length+; if(length=maxsize) flag=1; goto loop; People:Del(length); cout<<"添加人员信息成功."<<endl; loop: if(1=flag) cout<<"人员信息储存空间已满."<<endl; iofile.close(); void Manager:Addall() char ans; int flag=0; iofile.open("Manager_information.txt",ios:in|ios:out|ios:binary); do cin>>datalength; datalength.year=now-datalength.birthtime; iofile.write(char*)&datalength,sizeof(datalength); cout<<"添加人员信息成功."<<endl; length+; if(length=maxsize) flag=1; goto loop; cout<<"contine(Y|N)?" cin>>ans; while('y'=ans|'Y'=ans); loop: if(1=flag) cout<<"人员信息储存空间已满."<<endl; iofile.close(); void Manager:Add() /增加经理信息 int flag=0; iofile.open("Manager_information.txt",ios:app|ios:out|ios:binary); if(length=maxsize) flag=1; goto loop; cin>>datalength; datalength.year=now-datalength.birthtime; iofile.write(char*)&datalength,sizeof(datalength); cout<<"添加人员信息成功."<<endl; length+; loop: if(1=flag) cout<<"人员信息储存空间已满."<<endl; iofile.close(); void Manager:Display() /显示经理的信息 cout<<"*经理信息*"<<endl; if(0=length) cout<<"无."<<endl; int i; for(i=0;i<length;i+) cout<<datai; cout<<"-"<<endl; void Manager:Del(char n) /按姓名删除经理的信息 int i,j,k; for(i=0;i<length;i+) if(strcmp(datai.name,n)=0) k=i+1;break; if(k<1) cout<<"不存在姓名"<<n<<"的人员信息" for(j=k;j<length;j+) dataj-1=dataj; length-; cout<<"删除人员信息成功."<<endl; void Manager:Del(int i) /按位置删除经理信息 int j; if(i<1|i>length) cout<<"不存在第"<<i<<"个元素"<<endl; elsefor(j=i;j<length;j+) dataj-1=dataj; length-; cout<<"删除成功."<<endl; istream& operator>>(istream& input,Telem& T) int y,m,d; cout<<"请输入姓名(以#结尾):"<<endl; input.getline(T.name,20,'#'); cout<<"请输入性别(以#结尾 男或女):"<<endl; input.getline(T.sex,10,'#'); cout<<"编号(以#结尾):"<<endl; input.getline(T.num,20,'#'); cout<<"工作部门(以#结尾):"<<endl; input.getline(T.workpart,20,'#'); cout<<"请输入出生日期:"<<endl; input>>y>>m>>d; T.birthtime.year=(y>=1900&&y<=2100)?y:1900; T.birthtime.month=(m>=1&&m<=12)?m:1; T.birthtime.day=(d>=1&&d<=31)?d:1; cout<<"参加工作时间:"<<endl; input>>y>>m>>d; T.worktime.year=(y>=1900&&y<=2100)?y:1900; T.worktime.month=(m>=1&&m<=12)?m:1; T.worktime.day=(d>=1&&d<=31)?d:1; return input; ostream& operator<<(ostream& output,Telem& T) cout<<"姓名:" output<<T.name<<endl; cout<<"性别:" output<<T.sex<<endl; cout<<"编号:" output<<T.num<<endl; cout<<"工作部门:" output<<T.workpart<<endl; cout<<"出生日期:" output<<T.birthtime.year<<" "<<T.birthtime.month<<" "<<T.birthtime.day<<endl; cout<<"参加工作时间:" output<<T.worktime.year<<" "<<T.worktime.month<<" "<<T.worktime.day<<endl; cout<<"年龄:" output<<T.year<<endl; return output; int operator-(Time & t1,Time & t2) return t1.year-t2.year; void mima() /定义管理员的密码system("color 88");system("cls");int administor;int password;cout<<endl<<endl<<endl<<" 公司人员管理系统 "<<endl<<endl;cout<<" *"<<endl<<endl<<endl;cout<<" 用户名: "cin>>administor;cout<<endl;cout<<" 密 码: "cin>>password;cout<<endl;cout<<" *"<<endl<<endl<<endl;if(administor=1)if(password=1)cout<<"-登陆成功!-"<<endl;system("pause");elsecout<<"-密码错误,请重新输入!-"<<endl<<endl;mima();elsecout<<"-用户名错误,请重新输入!-"<<endl<<endl;mima();void Showmenu() /主菜单 system("color f9");system("cls");cout<<"*"<<endl; cout<<" 公 司 人 员 管 理 系 统 "<<endl; cout<<" "<<endl;cout<<" * 0-从文件录入全部人员记录* "<<endl; cout<<" * 1-从键盘录入全部人员记录* "<<endl; cout<<" * 2-增加一位人员记录 * "<<endl; cout<<" * 3-显示全部人员记录 * "<<endl; cout<<" * 4-计算人员平均年龄 * "<<endl;cout<<" * 5-删除一个人员记录 * "<<endl; cout<<" * 6-按部门输出人员信息 * "<<endl; cout<<" * 7-按要去检索人员信息 * "<<endl; cout<<" * 8-显示菜单目录 * "<<endl; cout<<" * 9-结束程序运行 * "<<endl;cout<<" "<<endl;cout<<"*"<<endl; void about() /关于公司人员管理系统system("color 87"); system("cls");cout<<endl<<endl<<endl<<" 公司人员管理系统 "<<endl<<endl;cout<<" *"<<endl<<endl<<endl;cout<<" 版权所有 2010-2011 "<<endl<<endl<<endl;cout<<" 制作人:魏丹 "<<endl<<endl<<endl;cout<<" *"<<endl<<endl<<endl;void addmenu() /增加人员菜单menu2:Manager man; Employee emp; People *pt=&man; People *ps=&emp; int c=0,k=0,l=0,i=0; /char nam20,part20; system("cls");cout<<endl<<endl<<" *从键盘增加一位人员(经理、普通员工)记录*"<<endl; cout<<" 1 增加经理信息 "<<endl; cout<<" 2 增加员工信息"<<endl; cout<<" 0 返回主菜单"<<endl; cout<<" *"<<endl; cout<<" 请选择: "cin>>k; if(1=k) system("cls");pt->Add();else if(2=k) system("cls");ps->Add();else if(0=k)/system("cls"); Showmenu();return;else /system("cls");cout<<"操作错误."<<endl; addmenu();return;goto menu2;int main() Manager man; Employee emp; People *pt=&man; People *ps=&emp; int c=0,k=0,l=0,i=0; char nam20,part20,num20; mima();Showmenu(); for(;)

    注意事项

    本文(《C++程序设计》课程设计公司人员管理系统.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开