该程序输入职工工号和应发工资,由系统对其完成的实发工资实现计算。

其中职工信息包括职工号、姓名、性别、应发工资、税金、实发工资等(职工号不重复)。

功能要求及说明:

系统以菜单方式工作

职工基本信息和应发工资的录入功能(用文件保存)

从键盘输入数据,建立磁盘数据文件salary.txt

职工工资信息浏览功能:

从磁盘数据文件读取所有职工工资信息并显示输出到屏幕上;

计算应发工资和查询的功能:

计算公式为:   税金=应发工资*税率;

实发工资=应发工资-税金;

应发工资 税率

<1000 0

1000~4999 5%

5000以上 10%

源代码:

#include

//#include

#include

#include

#include

#include

using namespace std ;

const int fr = 10 ;

int a[fr] ;

//vector a ;             //单独记录职工号

int Count=0 ;           //计数器 计算一共有多少个员工

class Person

{

public:

bool check( int , int ) ;   //检查职工号是否重复和查询职工号

void get() ;                //得到数据

void put( ) ;               //向显示屏输出

void put_txt(ofstream&);    //向文本输出

void change_pay () ;        //换算税金和应发工资

void come( ifstream& ) ; //从文本中 读取

private:

int number ;         //职工号

char name[10] ;        //姓名

char sex ;           //性别

int pay ;            //应发工资

double pay_out   ;    //税金

double pay_true ;    //实发工资

};

void opening ( ifstream&   , ofstream&   );

void closing ( ifstream&   , ofstream&   );

int show_menu();

int main()

{

ifstream in ;

ofstream out ;

opening ( in , out ) ;

int choose1 ;           //选择主菜单

char choose2 ;          //选择是否退出

// vector person ;

Person person[100] ;

while(!in.eof())

{

char b   ;

in.get(b) ;

if(b==':')

{

in.putback(b) ;

person[Count].come(in) ;

Count++ ;

}

}

do

{

system ("cls") ;

choose1=show_menu() ;

system ("cls") ;

switch(choose1)

{

case 1:

{

for(int i=0;i<80;i++)

cout << "#" ;

cout << setw(20) << "职工基本信息和应发工资的录入\n" ;

for(int j=0;j<80;j++)

cout << "#" ;

do

{

//a.push_back(0) ;

person[Count].get() ;

//person.push_back(0) ;

Count++ ;

cout << "\n是否继续录入?(y or n):" ;

cin >> choose2 ;

}while(choose2=='y');

}

break ;

case 2:

{

for(int i=0;i<80;i++)

cout << "#" ;

cout << setw(20) << "职工工资信息浏览\n" ;

for(int j=0;j<80;j++)

cout << "#" ;

cout << endl ;

for (int m=0;m

person[m].put() ;

cout << endl ;

}

break ;

case 3:

{

int p=0 ;

for(int i=0;i<80;i++)

cout << "#" ;

cout << setw(20) << "查询应发工资\n" ;

for(int j=0;j<80;j++)

cout << "#" ;

int number ;

cout << "\n输入你要查询的职工号:" ;

cin >> number ;

for (int m=0;m

if( person[m].check(number,2) )

{

cout << "\n找到了!\n" ;

person[m].put () ;

p=1 ;

break;

}

if(p==0)

cout << "\n没有 这个工号!\n" ;

}

break ;

default:

cout << "\n输入错误!" ;

}

cout << "\n是否继续察看主菜单?(y or n):" ;

cin >> choose2 ;

}while(choose2=='y') ;

for (int i=0;i<=Count;i++)

person[i].put_txt ( out ) ;

closing ( in , out ) ;

return 0 ;

}

void opening ( ifstream& ins , ofstream& outs )

{

ins.open("c:\\tc\\tc\\s a l a r y.txt" ) ;

if (ins.fail())

{

cout << "wo can not open salary.txt!" ;

exit (1);

}

outs.open("c:\\tc\\tc\\s a l a r y.txt" ) ;

if (outs.fail())

{

cout   << "wo con not opening s a l a r y.txt!" ;

exit (1);

}

}

void closing ( ifstream& ins , ofstream& outs )

{

ins.close();

outs.close();

}

int show_menu ()

{

int word ;

for(int i=0;i<80;i++)

cout << "#" ;

cout << "1. 职工基本信息和应发工资的录入; \n" ;

cout << "2.职工工资信息浏览; \n" ;

cout << "3.查询应发工资; \n" ;

for(int j=0;j<80;j++)

cout << "#" ;

cout << "请你输入选择的项目的代码(1,2...) :" ;

cin >> word ;

return word ;

}

void Person::change_pay()

{

if(pay<1000)

{

pay_out = 0 ;

pay_true = pay ;

}

if( (pay<4999) && (pay>=1000) )

{

pay_out = pay*0.05 ;

pay_true = pay - pay_out ;

}

if(pay>=5000)

{

pay_out = pay*0.1 ;

pay_true = pay - pay_out ;

}

}

void Person::come(ifstream& in)

{

char b ;

in.get(b) ;

if(b==':')

in >> number ;

a[Count]=number ;

do

{

in.get(b) ;

}while(b!=':') ;

if(b==':')

in >> name ;

do

{

in.get(b) ;

}while(b!=':') ;

in >> pay ;

do

{

in.get(b) ;

}while(b!=':') ;

in >> pay_out ;

do

{

in.get(b) ;

}while(b!=':') ;

in >> pay_true;

}

void Person::get()

{

do

{

cout << "\n职工号:" ;

cin >> number ;

a[Count]=number ;

if( check(number,1) )

break ;

cout << "\n职工号有重复,请重新输入!" ;

}while(1);

cout << "\n姓名:" ;

cin >> name;

cout << "\n应发工资:" ;

cin >> pay ;

}

void Person::put()

{

change_pay() ;

for(int i=0;i<80;i++)

cout << "#" ;

cout << "\n职工号:" << number

<< "\n姓名:" << name

<< "\n应发工资:" << pay

<< "\n税金:" << pay_out

<< "\n实发工资:" << pay_true ;

cout << endl ;

}

void Person::put_txt( ofstream& out )

{

for(int i=0;i<80;i++)

cout << "#" ;

out << "\n职工号:" << number

<< "\n姓名:" << name

<< "\n应发工资:" << pay

<< "\n税金:" << pay_out

<< "\n实发工资:" << pay_true ;

}

bool Person::check( int b , int choose)

{

switch(choose)

{

case 1:

{

for(int i=0;i

if(b == a[i])

return (b!=a[i]) ;

return 1 ;

}

case 2:

return (b==number) ;

default:

cout << "\n系统错误!" ;

exit(1) ;

}

}

◆◆

评论读取中....

请登录后再发表评论!

◆◆

修改失败,请稍后尝试

c语言工资管理系统输出错误,求c语言工资管理系统的源代码?相关推荐

  1. c语言各种输出错误提示,C语言错误处理-输出错误信息

    C语言错误处理-输出错误信息 程序开发过程中,不可避免地会因为细节疏忽导致程序的编译.运行出错,当出现错误时编译器一般会将错误信息展示出来,但由程序操作或用户输入导致的错误往往会使程序直接崩溃并无任何 ...

  2. c语言工资管理系统输出错误,c语言问题:工资纳税系统

    1.个人所得税每月交一次,底线是1600元/月,也就是超过了1600元的月薪才开始计收个人所得税.个人所得税税率表一(工资.薪金所得适用) 级数----------全月应纳税所得额---------- ...

  3. 学生籍贯信息管理系统java_跪求c语言学生籍贯管理系统程序设计源代码

    展开全部 这个学期一开学两个星期没有上课,就搞了一个下面的小软件636f70793231313335323631343130323136353331333239303233: 学生籍贯信息管理系统 可 ...

  4. c语言编写图书检索系统,求C语言编写图书管理系统

    答案:#include #include #include #include #include using namespace std; const   int   Maxb=10000;   //最 ...

  5. 易语言linux静态编译失败,易语言静态编译出现错误求解决

    静态编译程序的时候出现这个... 开始静态链接... LIBC.lib(crt0dat.obj) : error LNK2005: __cinit already defined in libcmt. ...

  6. c语言输入整数要求输出字符,求C语言 将输入整数转换成字符串输出!

    #include #include int power(int a, int n) { return pow((double)a, n); } #define pow power int main() ...

  7. c语言折半查找输出坐标,数据结构(C语言版)——有序表查找(折半查找)(代码版)...

    数据结构(C语言版)--有序表查找(折半查找)(代码版) 数据结构(C语言版)--有序表查找(折半查找)(代码版) #include #include #define ERROR 0 #define ...

  8. c语言定义int 输出4386,大学C语言第五章课后习题参考程序

    考试,二级C语言备考 第五章课后习题参考程序 5.1 编写程序,求100-2000之间所有3的倍数之和,当和大于1000时结束. (参考答案:900) #include int main() { in ...

  9. c语言将一个字符输出三遍,C语言字符相关部分内容小结

    很多初涉编程的同学,在有些知识点上不够系统化或者说不能够将知识点联系起来,甚至对有些知识点有妖魔化的趋势,先说一下,这点是完全没有必要的,对于程序的编写,我个人认为这是一件很有美感的事情,所以不必预先 ...

最新文章

  1. svn 命令行创建和删除 分支和tags
  2. 德鲁克管理思想:管理的7大理论、43条原则,每一条都是精华
  3. 字符串与整数之间进行转换
  4. 电磁学讲义2:库仑定律
  5. nginx配置thinkphp5
  6. S2SH框架入门之使用struts2
  7. C++ STL中哈希表 hash_map介绍
  8. POJ - 1185 炮兵阵地(状压dp)
  9. ssh远程执行oracle命令,ssh远程执行命令技巧
  10. Eclipse 使用
  11. 零基础学习Java的学习流程与学习误区
  12. 代码实现UITableViewCell表视图单元定制
  13. CentOS故障排除详解(2): 进程相关
  14. 堪称最详细的支付系统设计
  15. 图形可视化2:matlab画散点图加拟合趋势线
  16. 电子元件识别 测量
  17. Python-Level2-day11:TCP客户端/服务端传输(循环模型之短连接与长连接形态);TCP粘包问题;与UDP对比;数据传输过程原理;
  18. 操作系统——内存交换技术
  19. python读写html文件乱码问题
  20. 2022年最新云开发去水印小程序源码

热门文章

  1. 合金装备V 幻痛 制作技术特辑
  2. RAD Studio 11发布
  3. Mac版魔兽争霸3 1.24e下载
  4. AnalysePlugin插件
  5. C# 将小写数字转换为 一般中文大写数字 和 人民币大写数字
  6. JDK8至JDK 11 新增常用API总结<二>
  7. java 二叉树 红黑树_常见数据结构(二)-树(二叉树,红黑树,B树)
  8. iPhone iOS 系统中 设置-开发者 对应的翻译
  9. 真正的征途从这里开始~~
  10. mbot机器人初体验_[首发开箱]Makeblock mBot Ranger mBot游侠版 强大的STEM教育机器人...