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

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

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

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

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

C课程设计简单的工资管理系统的设计和实现

 

怀化学院计算机系

《高级语言程序设计课程设计》报告书

 

简单的工资管理系统的设计和实现

 

专业:

计算机科学与技术

学生姓名:

***

学号:

年级专业及班级:

指导老师及职称:

 

湖南·怀化

提交日期:

2010年12月

简单的工资管理系统的设计和实现

学生:

指导老师:

摘要:

本程序主要是为了训练的自己的基本编程能力,了解信息管理系统的开发流程,熟悉C++语言的各种基本操作。

本程序涉及结构体、单链表、文件等方面的知识。

通过本程序的训练,能使我们对C++语言的操作有一个更深刻的了解,掌握实现对员工工资的管理,使我们能运用平时学到的东西来处理身边的事情,为进一步开发出高质量的管理系统打下坚实的基础。

许多过去有人工处理的繁杂事物开始交付计算机来完成。

员工工资管理系统可以说是每个企事业单位的得力助手,它利用计算机对员工工资进行统一管理,实现员工工资发放工资及单位工资管理等工作流程的系统化、规范化和自动化,提高单位的运作效率。

因此,工资管理系统对企事业单位起着越来越重要的作用。

 

关键词:

;工资管理;排序;查询;删除;修改;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<<"没有找到该员工,请检查你的输入!

!

!

\n";system("pause");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)<

setiosflags(ios:

:

left)<

setiosflags(ios:

:

left)<

setiosflags(ios:

:

left)<

setiosflags(ios:

:

left)<

<

:

left)<

setiosflags(ios:

:

left)<

setiosflags(ios:

:

left)<

setiosflags(ios:

:

left)<

}

}

();

cout<<"保存成功!

!

!

\n";

system("pause");

}

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);break;

case3:

TypeAllDepartment(NumOfDepartment,DP);break;

case4:

SortBySalary(NumOfDepartment,NumOfPeople,DP,YG);TypeAllPeople(NumOfPeople,YG);SortByID(NumOfDepartment,NumOfPeople,DP,YG);break;

case5:

Modify_Salary(NumOfDepartment,NumOfPeople,DP,YG);break;

case6:

Delete(NumOfDepartment,NumOfPeople,DP,YG);break;

case7:

Search(NumOfDepartment,NumOfPeople,DP,YG);break;

case8:

ChangeALL(NumOfDepartment,NumOfPeople,DP,YG);break;

case9:

SaveToFile(NumOfDepartment,NumOfPeople,DP,YG);break;

case0:

end_face();break;

}

 

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

#include

#include

#include<>

#include

#include

#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

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++;

}

();

cout<<"读取完成!

!

!

\n";

............................................."<

cout<<"菜单选项"<

cout<<"1.创建工资档案"<

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

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

cout<<"4.工资的排序"<

cout<<"5.修改工资信息"<

cout<<"6.删除工资信息"<

cout<<"7.查找工资信息"<

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

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

cout<<"0.退出"<

cout<<"..............................................."<

cout<<"请输入你的选择:

";

intchoose;

do{cin>>choose;}while(choose<0||choose>9);

returnchoose;

}

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

for(i=0;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++;

cout<<"继续添加?

(y和Y或n):

";

cin>>c;

if(c=='y'||c=='Y')InsertNEW(Num_D,Num_P,DP,YG);

}

ETName()<<

setiosflags(ios:

:

left)<

setiosflags(ios:

:

left)<

setiosflags(ios:

:

left)<

setiosflags(ios:

:

left)<

setiosflags(ios:

:

left)<

<

:

left)<

setiosflags(ios:

:

left)<

setiosflags(ios:

:

left)<

setiosflags(ios:

:

left)<

}

system("pause");

}

ETName()

<

:

left)<

<

:

left)<

<

:

left)<

}

system("pause");

}

ETID()==n)break;

}

if(i==Num_P){cerr<<"没有找到该员工,请检查你的输入!

!

!

\n";system("pause");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());

}

ETID())

{

cout<

cout<

:

left)<

setiosflags(ios:

:

left)<

setiosflags(ios:

:

left)<

setiosflags(ios:

:

left)<

setiosflags(ios:

:

left)<

setiosflags(ios:

:

left)<

setiosflags(ios:

:

left)<

setiosflags(ios:

:

left)<

setiosflags(ios:

:

left)<

setiosflags(ios:

:

left)<

system("pause");

return;

}

}

ETID())

{

ETName()<<

setiosflags(ios:

:

left)<

setiosflags(ios:

:

left)<

setiosflags(ios:

:

left)<

setiosflags(ios:

:

left)<

setiosflags(ios:

:

left)<

setiosflags(ios:

:

left)<

setiosflags(ios:

:

left)<

setiosflags(ios:

:

left)<

setiosflags(ios:

:

left)<

ETID();ETName();ETDepartment();ETBaseSalary();ETReward();ETTelephoneSubsidies();ETRoomCharge();ETUtilities();ETShouldPay();ETPaid();

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

cin>>k;

cout<<"请输入新值:

\n";

switch(k)

{

case1:

cin>>BaseSalary;break;

case2:

cin>>Reward;break;

case3:

cin>>TelephoneSubsidies;break;

case4:

cin>>RoomCharge;break;

case5:

cin>>Utilities;break;

}

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());break;};

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

cout<<"修改成功!

!

!

\n";

system("pause");

return;

}

}

ETName()<<

setiosflags(ios:

:

left)<

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

当前位置:首页 > 求职职场 > 简历

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

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