C课程设计简单的工资管理系统的设计和实现Word格式.docx

上传人:b****5 文档编号:19132690 上传时间:2023-01-04 格式:DOCX 页数:15 大小:62.21KB
下载 相关 举报
C课程设计简单的工资管理系统的设计和实现Word格式.docx_第1页
第1页 / 共15页
C课程设计简单的工资管理系统的设计和实现Word格式.docx_第2页
第2页 / 共15页
C课程设计简单的工资管理系统的设计和实现Word格式.docx_第3页
第3页 / 共15页
C课程设计简单的工资管理系统的设计和实现Word格式.docx_第4页
第4页 / 共15页
C课程设计简单的工资管理系统的设计和实现Word格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

C课程设计简单的工资管理系统的设计和实现Word格式.docx

《C课程设计简单的工资管理系统的设计和实现Word格式.docx》由会员分享,可在线阅读,更多相关《C课程设计简单的工资管理系统的设计和实现Word格式.docx(15页珍藏版)》请在冰豆网上搜索。

C课程设计简单的工资管理系统的设计和实现Word格式.docx

工资管理;

排序;

查询;

删除;

修改;

C++;

1前言

C++程序语言设计是一门程序设计语言,本次课程设计是主要运用C++程序语言来实现的,通过此次的设计我了解了C++的类和对象,调用库函数、引用变量,函数等的处理,还有就是文件的读入与读出,

本次程序设计的目的是简单的工资管理系统的设计和实现,从键盘输入:

编号、姓名、部门、基本工资、奖金、电话补助、月房租、水电费,统计每人的应发工资、实发工资,统计各部门的应发工资、实发工资,实现员工工资发放工资及单位工资管理等工作流程的系统化、规范化和自动化,提高单位的运作效率。

在此次的课程设计中除了主要是用C++程序语言完成以外,还运用函数调用文件的读入与读出,

还有将一些数据进行排序、删除、修改、查询等基本的算法。

字符串和数值的输入分别采用了函数来实现,在函数中完成输入数据任务,并对数据进行条件判断。

通过这次课程设计我觉得对于C++的运用更深一层了。

2.算法分析

3.实现方法

采用C++语言来完成

采用color函数对控制台颜色进行控制。

其主要功能由以下代码实现

1)用类定义员工基本信息

classYuanGong

{intID;

ETDepartment()==str)

{

YG[j].SET(YG[j].GETID(),YG[j].GETName(),YG[j].GETDepartment(),\

YG[j].GETBaseSalary()+sub_BaseSalary,\

YG[j].GETReward()+sub_Reward,\

YG[j].GETTelephoneSubsidies()+sub_TelephoneSubsidies,\

YG[j].GETRoomCharge()+sub_RoomCharge,\

YG[j].GETUtilities()+sub_Utilities,\

YG[j].GETShouldPay()+sub_BaseSalary+sub_Reward+sub_TelephoneSubsidies,

YG[j].GETPaid()+sub_RoomCharge+sub_Utilities);

4)修改部门数据

DP[i].SET(DP[i].GETName(),DP[i].GETNumOfPeople(),DP[i].GETShouldPay_all()+sub_BaseSalary+sub_Reward+sub_TelephoneSubsidies,DP[i].GETPaid_all()+sub_RoomCharge+sub_Utilities);

}

cout<

<

"

修改成功!

!

\n"

;

system("

pause"

);

return;

};

5)删除员工信息

voidDelete(int&

Num_D,int&

Num_P,DEPARTMENT*DP,YuanGong*YG)

{

intn,i,j,k;

system("

cls"

cout<

请输入需要删除的员工编号:

cin>

>

n;

ETID()==n)break;

}

if(i==Num_P){cerr<

没有找到该员工,请检查你的输入!

system("

return;

};

ETName()==YG[i].GETDepartment())

{

ETNumOfPeople()==1)

{

ET(DP[j].GETName(),DP[j].GETNumOfPeople()-1,DP[j].GETShouldPay_all()-YG[i].GETShouldPay(),DP[j].GETPaid_all()-YG[i].GETPaid());

}

ETName()<

setiosflags(ios:

:

left)<

setw(8)<

YG[i].GETID()<

setw(6)<

YG[i].GETDepartment()<

YG[i].GETBaseSalary()<

YG[i].GETReward()<

setw(10)<

YG[i].GETTelephoneSubsidies()

<

setiosflags(ios:

YG[i].GETRoomCharge()<

setiosflags(ios:

YG[i].GETUtilities()<

YG[i].GETShouldPay()<

YG[i].GETPaid()<

endl;

}

();

保存成功!

}

8)主函数main()执行

intmain()

intNumOfPeople=0;

intNumOfDepartment=0;

DEPARTMENT*DP=newDEPARTMENT[D];

YuanGong*YG=newYuanGong[P];

welcome();

ReadFile(NumOfDepartment,NumOfPeople,DP,YG);

do{

switch(Select())

case1:

InsertNEW(NumOfDepartment,NumOfPeople,DP,YG);

break;

case2:

TypeAllPeople(NumOfPeople,YG);

case3:

TypeAllDepartment(NumOfDepartment,DP);

case4:

SortBySalary(NumOfDepartment,NumOfPeople,DP,YG);

TypeAllPeople(NumOfPeople,YG);

SortByID(NumOfDepartment,NumOfPeople,DP,YG);

break;

case5:

Modify_Salary(NumOfDepartment,NumOfPeople,DP,YG);

case6:

Delete(NumOfDepartment,NumOfPeople,DP,YG);

case7:

Search(NumOfDepartment,NumOfPeople,DP,YG);

case8:

ChangeALL(NumOfDepartment,NumOfPeople,DP,YG);

case9:

SaveToFile(NumOfDepartment,NumOfPeople,DP,YG);

case0:

end_face();

4.调试问题

数据在输出时因为数据输入存在问题,没有把员工的工资信息全部统计出来。

显示如下:

经修改后显示全部相关信息,正确信息如下:

5.系统的使用说明书

.功能:

完成员工资料、记录的常用操作,对员工的相关资料及记录进行管理。

使用方法:

当用户运行程序时,主函数会循环调用目录函数提示用户选择想要的操作,直到用户输入0退出程序,每次显示目录都会进行清屏操作,保存界面的简单化主界面。

1).创建工资档案

当用户选择操作1键盘输入个人记录时会提示用户输入员工的各项信息,循环输入直到用户在编号输入时输入0,返回主界面。

在输入的时候,如果用户输入不合法的信息会提示用户并要求其重新输入该项信息。

2).显示所有员工应发工资和实发工资

当系统内已经有信息并且用户选择操作2的时候,系统会显示所有员工的应发工资和实发工资,如果没有员工记录会提示相关信息

3).统计各部门应发工资和实发工资

当用户输入3要求查询部门信息时,系统会显示个部门的应发工资和实发工资,如果还没有部门信息会提示相关提示消息

4).按工资排序

当用户输入4要求对员工工资排序时,系统会提供两种排序方式:

工资的升序排序,当无员工信息时会显示相关信息

5).修改工资信息

当用要求修改删除添加员工信息并输入5时,会提示用户输入员工编号,如果有此员工就显示此员工的信息。

会提示用户选择所要修改的选项。

然后输入序号键入新值。

6).删除工资信息

当用户输入6时,进行删除工资功能。

按提示输入员工编号删除。

7).查找工资信息

当用户输入7时,进行查找功能,输入编号如果找到则显示出此编号员工的相关信息,否则提示相关消息

8).工资的变动

当用户输入8时,显示“输入修改数据的部门”,按提示输入部门,然后输入要修改的选项

9).保存所有资料到文件

当用户需要对所操作的信息进行存档操作时选择9。

10).退出系统

当用户输入0进行退出系统

6.结论

课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。

随着科学的发展和社会的进步,许多过去有人工处理的繁杂事物开始交付计算机来完成。

参考文献

[1]谭浩强.C++程序设计,--北京:

清华大学出版社,

[2]伍良俊.VisualC++课程设计与系统开发案例,--北京:

清华大学出版社,

致谢

本报告是在老师的悉心指导和热情关怀下完成的,在此谨向姚老师致以诚挚的谢意,祝老师工作顺利,身体健康。

附录

#include<

iostream>

fstream>

iomanip>

string>

algorithm>

#defineINDEX"

姓名编号部门基本工资奖金电话补助月房租水电费应付已付\n"

usingnamespacestd;

constintP=100;

constintD=50;

classDEPARTMENT;

ET(ID,name,Department,BaseSalary,Reward,TelephoneSubsidies,RoomCharge,Utilities,BaseSalary+Reward+TelephoneSubsidies,RoomCharge+Utilities);

for(i=0;

i<

Num_D;

i++)

if(Department==DP[i].GETName())break;

ET(Department,DP[i].GETNumOfPeople()+1,DP[i].GETShouldPay_all()+BaseSalary+Reward+TelephoneSubsidies,DP[i].GETPaid_all()+RoomCharge+Utilities);

if(i==Num_D)Num_D++;

读取完成!

............................................."

endl<

菜单选项"

1.创建工资档案"

2.每人的应发工资、实发工资"

3.部门的应发工资、实发工资"

4.工资的排序"

5.修改工资信息"

6.删除工资信息"

7.查找工资信息"

8.某条件下对工资的变动"

9.工资信息保存在文本文件"

0.退出"

..............................................."

请输入你的选择:

intchoose;

do{cin>

choose;

}while(choose<

0||choose>

9);

returnchoose;

for(i=0;

if(Department==DP[i].GETName())break;

ET(Department,DP[i].GETNumOfPeople()+1,DP[i].GETShouldPay_all()+BaseSalary+Reward+TelephoneSubsidies,DP[i].GETPaid_all()+RoomCharge+Utilities);

if(i==Num_D)Num_D++;

继续添加?

(y和Y或n):

"

c;

if(c=='

y'

||c=='

Y'

)InsertNEW(Num_D,Num_P,DP,YG);

ETName()<

<

ETName()

DP[i].GETNumOfPeople()

DP[i].GETShouldPay_all()

DP[i].GETPaid_all()<

ETID()==n)break;

ETID())

INDEX;

cout<

YG[i].GETName()<

YG[i].GETTelephoneSubsidies()<

system("

return;

ETID())

ETID();

ETName();

ETDepartment();

ETBaseSalary();

ETReward();

ETTelephoneSubsidies();

ETRoomCharge();

ETUtilities();

ETShouldPay();

ETPaid();

本工资2.奖金3.电话补助4.月房租5.水电费\n"

cin>

k;

请输入新值:

switch(k)

case1:

cin>

BaseSalary;

case2:

Reward;

case3:

TelephoneSubsidies;

case4:

RoomCharge;

case5:

Utilities;

t_s=BaseSalary+Reward+TelephoneSubsidies;

t_p=RoomCharge+Utilities;

ETName()==Department)

{DP[j].SET(DP[j].GETName(),DP[j].GETNumOfPeople(),DP[j].GETShouldPay_all()+t_s-YG[i].GETShouldPay(),DP[j].GETPaid_all()+t_p-YG[i].GETPaid());

ET(ID,Name,Department,BaseSalary,Reward,TelephoneSubsidies,RoomCharge,Utilities,t_s,t_p);

ETName()<

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 中考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1