c++课程设计高校工资管理系统Word文档下载推荐.docx
- 文档编号:8286700
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:20
- 大小:157.74KB
c++课程设计高校工资管理系统Word文档下载推荐.docx
《c++课程设计高校工资管理系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c++课程设计高校工资管理系统Word文档下载推荐.docx(20页珍藏版)》请在冰点文库上搜索。
//教师课时
//教师类
//为对象设置数据分为两种途径,通过)构造函数,)一般成员函数
//分开可以使得程序中应用更加灵活
//本程序采用:
缺省构造+Input()
//构造函数,初始化部分数据
Teacher()
'
0'
;
Duty=Salary=800;
}
//键盘补充输入其它数据
voidInput()
"
编号:
cin>
>
No;
姓名:
Name;
教师上学期课时:
Hours;
cout<
<
}
voidInput(ifstream&
ifs)
{ifs>
No>
Name>
Duty>
voidOutput()
No<
"
\t"
<
Name<
教师
\t\t"
Hours<
Incoming()<
endl;
voidOutput(ofstream&
ofs)
ofs<
Duty<
doubleIncoming()
returnSalary+(Hours-120)*20;
}};
3.3Assistant类
classAssistant:
virtualpublicPerson//实验员{
intAllowance;
intHours;
public:
Assistant()
Duty='
1'
Salary=650;
Allowance=150;
实验员上学期实验课时:
ifs>
实验员
returnSalary+Allowance+(Hours-70)*20;
3.4Manager类
classManager:
virtualpublicPerson//行政人员{
Manager()
2'
Salary=750;
Allowance=250;
ifs){
Duty;
行政人员\t"
returnSalary+Allowance;
3.5Teacher_Assistant类
classTeacher_Assistant:
publicTeacher,publicAssistant//教师兼实验员{
Teacher_Assistant()
3'
Teacher:
:
Salary=800;
教师兼职实验员上学期实验课时:
Assistant:
Hours>
教师兼实验员"
returnSalary+(Teacher:
Hours-120)*20+Allowance+(Assistant:
Hours-70)*20;
3.6Manager_Teacher类
classManager_Teacher:
publicManager,publicTeacher//行政人员兼教师{
Manager_Teacher()
4'
Manager:
Salary=750;
行政人员兼职教师上学期课时:
行政人员兼教师
returnSalary+Allowance+Hours*20;
3.7College类
3.7.1
College:
College(){
Person*p=newTeacher;
PL=p;
自动装入数据...\n"
Load();
头文件
intCollege:
Find(
intID,Person**p1,Person**p2);
College();
//构造
~College();
//析构
voidAdd();
//增加职工
voidDelete();
//删除职工
voidModify();
//修改职工
voidPrint();
//输出职工信息
voidSave();
//职工信息存盘
voidLoad();
//职工信息装入
voidFinding();
};
//查找职工
J>
3.7.2构造函数
//构造函数(创建个头结点的链表)
classCollege
{private:
Person*PL;
voidClear();
3.7.3析构函数
~College()//析构函数(仅保留个头结点){
Person*p=PL;
while(p)//逐个删除结点,包括头结点
PL=p->
next;
deletep;
p=PL;
PL=0;
3.7.4Add函数
voidCollege:
Add()//增加职工
高校工资管理系统*******************\n\n\n"
增加职工,输入x结束**\n\n"
;
\t\t*******cout<
\n\t\t\t\t**
//查找尾结点
while(p->
next)p=p->
charch='
m'
//创建新结点,录入数据,连接到链表Teacher*pt;
Assistant*pa;
Manager*pm;
Teacher_Assistant*pta;
Manager_Teacher*pmt;
职工分类码[0-教师,1-实验员,2-行政人员,3-教师兼实验员,4-行政兼教师]:
\n\n"
for(;
ch!
='
x'
)
类别:
ch;
switch(ch){
case'
:
pt=newTeacher;
pt->
Input();
p->
next=pt;
break;
case'
pa=newAssistant;
pa->
next=pa;
pm=newManager;
pm->
next=pm;
pta=newTeacher_Assistant;
pta->
next=pta;
pmt=newManager_Teacher;
pmt->
next=pmt;
}p=p->
}}
3.7.5Find函数
//查找职工结点(返回-找到,-未找到.结点指针由p1返回,p2为前看指针)
Find(intID,Person**p1,Person**p2)
*p1=PL->
*p2=PL;
while(*p1)
if((*p1)->
No==ID)
//找到
else
*p2=*p1;
//继续查找
*p1=(*p1)->
return*p1?
1:
0;
3.7.6Clear函数
Clear()//清除所有的职工结点(仅保留头结点){
Person*p=PL->
while(p)
PL->
next=p->
p=PL->
3.7.7Delete函数
Delete()
删除职工**\n"
\t\t*******
\n\t\t\t\t**intNo;
Person*p1,*p2;
编号:
if(!
Find(No,&
p1,&
p2))
指定的人员没有找到!
\n"
//连接
p2->
next=p1->
deletep1;
正确删除!
3.7.8
Modify函数
3.7.9
Print函数
\t\t****************高校工资管理系统*******************\n\n\n"
\n**职工信息表**\n\n"
编号\t姓名\t岗位\t\t其它\t工资\n"
p)
无职工记录!
return;
while(p)//遍历链表,输出职工信息
{p->
Output();
p=p->
Save()
ofstreamf("
Person.dat"
ios:
out);
//遍历输出至文件
while(p)
Output(f);
f.close();
//关闭文件
职工信息已经保存在Person.dat.\n"
}voidCollege:
Load()
charbuf[81];
charDuty;
Person*p2;
//临时空间
//人员类型
//新建结点的指针
longt;
//读写位置
//清除现有结点(保留头结点)
Clear();
//打开文件
ifstreamf("
in);
//建立结点,读数据
//尾结点指针while
(1)
//读取人员类型t=f.tellg();
f>
buf>
if
(f)
//根据人员类型创建新结点switch(Duty)
case
casecase
p2=
p2=p2=
default:
f.close();
newTeacher;
newAssistant;
newManager;
newTeacher_Assistant;
break;
newManager_Teacher;
p->
next=p2;
f.seekg(t);
Input(f);
关闭文件
查找职工**\n"
Person.dat数据已装入.\n"
Finding(){
intID;
coutvv"
编号;
cin>
ID;
p1=PL->
p2=PL;
while(p1)
if((p1)->
编号\t姓名\t岗位\t\t其它\t工资\n"
(p1)->
}//找到
p2=p1;
p1=(p1)->
3.8界面函数
charMeau(){
charc;
intflag;
do
system("
cls"
);
flag=1;
\t\t****
*\n\n\n"
\t\t\t"
\t\t\t
cout<
\t\t\tcout<
1
11
、增加职工
12
、删除职工
3
、查找职工丨
14
、修改职工
15
、输出职工信息
6
、数据存盘丨
7
、数据装入丨
8
、退出丨
高校工资管理系统
\n\n\n\t\t请输入您的选择:
c;
if(c=='
||c=='
||c==flag=0;
}while(flag);
returnc;
}//显示主菜单,
5'
6'
||c=='
7'
8'
)
接受选择
3.9主函数
voidmain()
charch;
//定义大学对象
Collegec;
do{
ch=Meau();
system("
c.Add();
\n\n\t\t
按任意键结
束...\n"
getchar();
c.Delete();
束...\n"
c.Finding();
c.Modify();
c.Print();
5.1主界面
实现各种功能的选择:
5.2
添加功能
6.设计体会与建议
6.1体会
通过这次对《高校工资管理系统》这个实验的设计,充分感受并体会到了C++中的
面对对象设计的真意,以及学习了对一个程序的分解和分工完成的方法,掌握了一点编写的技巧。
实际的操作与解决问题的能力更有了大幅的提升。
6.2建议
希望在以后的课程设计中,能更多的得到老师的帮助,可以帮助我们更清晰地理清思路,以及一些编程上的技巧。
7.附录
7.1成员
7.2分工
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 课程设计 高校 工资管理 系统