收藏 分销(赏)

C-教师工资管理系统(分析-代码)-PPT课件.pptx

上传人:胜**** 文档编号:779366 上传时间:2024-03-14 格式:PPTX 页数:33 大小:126.79KB
下载 相关 举报
C-教师工资管理系统(分析-代码)-PPT课件.pptx_第1页
第1页 / 共33页
C-教师工资管理系统(分析-代码)-PPT课件.pptx_第2页
第2页 / 共33页
C-教师工资管理系统(分析-代码)-PPT课件.pptx_第3页
第3页 / 共33页
C-教师工资管理系统(分析-代码)-PPT课件.pptx_第4页
第4页 / 共33页
C-教师工资管理系统(分析-代码)-PPT课件.pptx_第5页
第5页 / 共33页
点击查看更多>>
资源描述

1、高高校校工工资管管理理系系统1.系统概述通过设计一个较为简单的高校工资管理系统,进一步熟悉C+中类的概念、类的封装、继承的实现方式。了解系统开发的需求分析、类层次设计、模块分析、编码测试、模块组装与整体调试的全过程,加深对C+的理解与Visual C+环境的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯。1.1功能需求分析1、增加职工2、删除职工3、查找职工 4、修改职工5、输出职工信息6、数据存盘 7、数据装入 8、退出教师管理系统编辑功能添加职工修改职工删除职工统计功能查找职工计算工资数据处理数据存储数据导入程序的功能:能够实现职工工号、姓名、工作量的录入;能够实现对职工信息的浏览、查

2、找、删除;能够对职工工资进行计算并输出。角色分析角色:教师(teacher)管理员(manager)助手(assistant)教师兼助手(teacher_assistant)管理员兼助手(manager_assitant)用例分析2.总体设计2.1职工类的设计基于C+中类的概念,类的封装,继承和抽象。编写一个Person的基类包含共有的相关信息和操作,然后使职工类都继承于此基类从而实现多态。2.2应用类的设计编写一个Person类的友元类College类来实现添加,删除,查找等功能。2.3文件的读写设计通过College类中的Save()函数来实现数据的存储,保存在Person.dat中,而通

3、过Load()函数来实现Person.dat数据的读入。职务工资计算办法:教师:Salary+(Hours-120)*20管理员:Salary+Allowance助手:Salary+Allowance+(Hours-70)*20;教师兼助手:Salary+(Teacher:Hours-120)*20 +Allowance+(Assistant:Hours-70)*20教师兼管理员:Salary+Allowance+Hours*202.2应用类的设计编写一个Person类的友元类College类来实现添加,删除,查找等功能。2.3文件的读写设计通过College类中的Save()函数来实现数据的

4、存储,保存在Person.dat中,而通过Load()函数来实现Person.dat数据的读入。COLLEGE类主要函数void Add();/增加职工 void Delete();/删除职工 void Modify();/修改职工 void Print();/输出职工信息 void Save();/职工信息存盘 void Load();/职工信息装入 void Finding();/查找职工2.3 业务流分析(时序图)1、增加职工的时序图源代码#include#include#include#include#include#include#include class Person /人员类(

5、抽象类)protected:int No;/编号 char Name20;/姓名 char Duty;/人员类别标志(0-教师,1-实验员,2-行政人员,3-教师兼实验员,4-行政兼教师)double Salary;/基本工资 Person*next;/指针域public:Person()/基类构造 next=0;/指针域设置为空 virtual Person()/基类虚析构 virtual void Input()=0;/从键盘输入数据 virtual void Input(ifstream&ifs)=0;/从文件输入数据 virtual void Output()=0;/向屏幕输出数据 v

6、irtual void Output(ofstream&ofs)=0;/向文件输出数据 virtual double Incoming()=0;/计算收入 friend class College;class Teacher:virtual public Person /教师类protected:int Hours;/教师课时public:/为对象设置数据分为两种途径,通过)构造函数,)一般成员函数 /分开可以使得程序中应用更加灵活 /本程序采用:缺省构造+Input()Teacher()/构造函数,初始化部分数据 Duty=0;Salary=800;void Input()/键盘补充输入其它

7、数据 coutNo;coutName;coutHours;void Input(ifstream&ifs)ifsNoNameDutyHours;void Output()coutNotNamet教师ttHourstIncoming()endl;void Output(ofstream&ofs)ofsNo Name Duty Hoursendl;double Incoming()return Salary+(Hours-120)*20;class Assistant:virtual public Person /实验员protected:int Allowance;int Hours;publi

8、c:Assistant()Duty=1;Salary=650;Allowance=150;void Input()coutNo;coutName;coutHours;void Input(ifstream&ifs)ifsNoNameDutyHours;void Output()coutNotNamet实验员ttHourstIncoming()endl;void Output(ofstream&ofs)ofsNo Name Duty Hoursendl;double Incoming()return Salary+Allowance+(Hours-70)*20;class Manager:vir

9、tual public Person /行政人员protected:int Allowance;public:Manager()Duty=2;Salary=750;Allowance=250;void Input()coutNo;coutName;void Input(ifstream&ifs)ifsNoNameDuty;void Output()coutNotNamet行政人员tIncoming()endl;void Output(ofstream&ofs)ofsNo Name Dutyendl;double Incoming()return Salary+Allowance;class T

10、eacher_Assistant:public Teacher,public Assistant/教师兼实验员public:Teacher_Assistant()Duty=3;Teacher:Salary=800;void Input()coutNo;coutName;coutTeacher:Hours;coutAssistant:Hours;void Input(ifstream&ifs)ifsNoNameDutyTeacher:HoursAssistant:Hours;void Output()coutNotNamet教师兼实验员 Teacher:Hours Assistant:Hours

11、tIncoming()endl;void Output(ofstream&ofs)ofsNo Name DutyTeacher:Hours Assistant:Hoursendl;double Incoming()return Salary+(Teacher:Hours-120)*20 +Allowance+(Assistant:Hours-70)*20;class Manager_Teacher:public Manager,public Teacher/行政人员兼教师public:Manager_Teacher()Duty=4;Manager:Salary=750;void Input()

12、coutNo;coutName;coutHours;void Input(ifstream&ifs)ifsNoNameDutyHours;void Output()coutNotNamet行政人员兼教师 HourstIncoming()endl;void Output(ofstream&ofs)ofsNo Name Duty Hoursendl;double Incoming()return Salary+Allowance+Hours*20;class Collegeprivate:Person*PL;void Clear();int College:Find(int ID,Person*p

13、1,Person*p2);public:College();/构造 College();/析构 void Add();/增加职工 void Delete();/删除职工 void Modify();/修改职工 void Print();/输出职工信息 void Save();/职工信息存盘 void Load();/职工信息装入 void Finding();/查找职工;College:College()/构造函数(创建1个头结点的链表)Person*p=new Teacher;PL=p;coutnext;delete p;p=PL;PL=0;void College:Add()/增加职工 c

14、outtt*高校工资管理系统*nnn;coutnext)p=p-next;char ch=m;/创建新结点,录入数据,连接到链表 Teacher*pt;Assistant*pa;Manager*pm;Teacher_Assistant*pta;Manager_Teacher*pmt;cout职工分类码0-教师,1-实验员,2-行政人员,3-教师兼实验员,4-行政兼教师:nn;for(;ch!=x;)coutch;switch(ch)case0:pt=new Teacher;pt-Input();p-next=pt;break;case 1:pa=new Assistant;pa-Input()

15、;p-next=pa;break;case 2:pm=new Manager;pm-Input();p-next=pm;break;case 3:pta=new Teacher_Assistant;pta-Input();p-next=pta;break;case 4:pmt=new Manager_Teacher;pmt-Input();p-next=pmt;break;p=p-next;int College:Find(int ID,Person*p1,Person*p2)*p1=PL-next;*p2=PL;while(*p1)if(*p1)-No=ID)break;/找到 else *

16、p2=*p1;/继续查找 *p1=(*p1)-next;return*p1?1:0;void College:Clear()/清除职工结点,仅保留头结点Person*p=PL-next;while(p)PL-next=p-next;delete p;p-next=PL-next;void College:Delete()/删除职工 coutn*删除职工*n;int no;Person*p1,*p2;coutno;if(!Find(no,&p1,&p2)coutnext=p1-next;/连接delete p1;cout正确删除!n;void College:Modify()/修改职工 cout

17、tt*高校工资管理系统*nnn;coutntttt*修改职工*n;int No;Person*p1,*p2;coutNo;if(!Find(No,&p1,&p2)coutOutput();/输出原来的职工信息(做提示)p1-Input();/输入新的职工信息(更新)cout修改完成!n;void College:Print()/输出职工信息coutn*职工信息表*n;coutnext;if(!p)coutOutput();p=p-next;void College:Save()/职工信息存盘ofstream f(Person.dat,ios:out);/打开文件 /遍历输出至文件Person*

18、p=PL-next;while(p)p-Output(f);p=p-next;f.close();/关闭文件coutbufbufDuty;if(f)/根据人员类型创建新结点 switch(Duty)case 0:p2=new Teacher;break;case 1:p2=new Assistant;break;case 2:p2=new Manager;break;case 3:p2=new Teacher_Assistant;break;case 4:p2=new Manager_Teacher;break;default:f.close();return;p-next=p2;p=p-ne

19、xt;f.seekg(t);p-Input(f);else break;/关闭文件 f.close();coutPerson.dat数据已装入.n;void College:Finding()couttt*高校工资管理系统*nnn;coutntttt*查找职工*n;Person*p1,*p2;int ID;coutID;coutnext;p2=PL;while(p1)if(p1)-No=ID)coutOutput();break;/找到 else p2=p1;/继续查找 p1=(p1)-next;char Meau()char c;int flag;dosystem(cls);flag=1;c

20、outtt*高校工资管理系统*nnn;couttttn;coutttt n;coutttt 1、增加职工 n;coutttt 2、删除职工 n;coutttt 3、查找职工 n;coutttt 4、修改职工 n;coutttt 5、输出职工信息 n;coutttt 6、数据存盘 n;coutttt 7、数据装入 n;coutttt 8、退出 n;couttttn;coutc;if(c=1|c=2|c=3|c=4|c=5|c=6|c=7|c=8)flag=0;while(flag);return c;/显示主菜单,接受选择void main()char ch;College c;/定义大学对象

21、do ch=Meau();switch(ch)case 1:system(cls);c.Add();coutnntt按任意键结束.n;getchar();getchar();break;case 2:system(cls);c.Delete();coutnntt按任意键结束.n;getchar();getchar();break;case 3:system(cls);c.Finding();coutnntt按任意键结束.n;getchar();getchar();break;case 4:system(cls);c.Modify();coutnntt按任意键结束.n;getchar();getchar();break;case 5:system(cls);c.Print();coutnntt按任意键结束.n;getchar();getchar();break;case 6:system(cls);c.Save();coutnntt按任意键结束.n;getchar();getchar();break;case 7:system(cls);c.Load();coutnntt按任意键结束.n;getchar();getchar();while(ch!=8);

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服