C语言程序设计:职工工资信息统计管理系统设计

职工工资信息统计管理系统设计
信息包括:职工编号(唯一),姓名,班组,联系电话,工资等。试设计该系统,使之能提供以下功能:
①、系统以菜单方式工作;
②、信息的录入功能(数据用结构体数组保存);
③、信息的浏览功能(把数据输出到显示器的输出界面上);
④、查询功能:按职工编号查询,职工姓名查询等;
⑤、信息维护功能:删除与修改信息等功能。
在达到上述要求的前提下尽量简洁明了
我的要求:在代码中应用结构体数组,在主函数中应用switch。。。case结构,case后套用函数,函数尽量简单,可以吗?我是刚学C语言的,这是期末试题,不要复杂的

#include "stdafx.h"
#include "iostream"
#include "string"
#include "list"
#include "cassert"
using namespace std;

/*
编号、姓名、部门、应付工资、保险、税金、实付工资。
其中实付工资由公式计算得到:实付工资=应付工资 - 保险- 税金
*/
struct employee{
string m_num;//编号
string m_name;//姓名
string m_dep;//部门
double m_salary;//应付工资
double m_insurance;//保险
double m_tax;//税金
};

/*
(1)录入:输入职工数据,其中“实付工资”通过计算得到;
(2)删除:删除指定的职工信息(输入姓名,若找到则删除该信息)
(3) 修改:允许对已经录入的数据重新进行编辑、修改;
(4) 显示:显示全体职工数据;
(5)查询:
a. 输入职工姓名,显示该职工的全部数据;
b. 输入某部门值,显示该部门职工的数据、工资总额、平均工资。
(6) 退出程序。
*/

list<employee> emps;

int _tmain(int argc, _TCHAR* argv[])
{
void print(const employee &e);
void input();
void del();
void mod();
void show_all();
void show_name();
void show_dep();

cout<<"简易职工薪水管理程序 by 做他\n";// delete this line
cout<<"版权没有 请随意复制或修改任何代码\n";//delete this line

cout<<"请选择操作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :";
int choose=0;
cin>>choose;
assert(!cin.fail());
while (choose!=6)
{
if (choose==1) input();
if (choose==2) del();
if (choose==3) mod();
if (choose==4)
{
int choice=0;
cout<<"请选择操作 1.按姓名查询 2.按部门查询 3.退出:";
cin>>choice;
if (choice==1) show_name();
if (choice==2) show_dep();
if (choice==3)
{
cout<<"请选择操作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :";
cin>>choose;
assert(!cin.fail());
continue;
}
}
if (choose==5) show_all();
cout<<"请选择操作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :";
cin>>choose;
assert(!cin.fail());
}
return 0;
}

void print(const employee &e)
{
cout<<"编号:"<<e.m_num<<endl;
cout<<"姓名:"<<e.m_name<<endl;
cout<<"部门:"<<e.m_dep<<endl;
cout<<"保险:"<<e.m_insurance<<endl;
cout<<"税金:"<<e.m_tax<<endl;
cout<<"应付工资:"<<e.m_salary<<endl;
cout<<"实付工资:"<<e.m_salary-e.m_insurance-e.m_tax<<endl;
}

void input()
{
string num,name,dep;
double salary,ins,tax;
cout<<"请输入员工编号:";
cin>>num;
cout<<"请输入员工姓名:";
cin>>name;
cout<<"请输入员工部门:";
cin>>dep;
cout<<"请输入员工保险:";
cin>>ins;
assert(!cin.fail());
cout<<"请输入员工税金:";
cin>>tax;
assert(!cin.fail());
cout<<"请输入员工应付工资:";
cin>>salary;
assert(!cin.fail());
employee temp;
temp.m_dep=dep;
temp.m_insurance=ins;
temp.m_name=name;
temp.m_num=num;
temp.m_salary=salary;
temp.m_tax=tax;
emps.push_back(temp);
cout<<"员工录入操作完毕.\n";
}

void del()
{
if (emps.size()==0)
{
cout<<"没有员工记录.\n";
return;
}
string name;
bool isfind=false;
cout<<"请输入要删除的员工姓名:";
cin>>name;
list<employee>::iterator iter;
for (iter=emps.begin();iter!=emps.end();iter++)
{
if (iter->m_name==name)
{
isfind=true;
emps.erase(iter);
cout<<"姓名为\""<<name<<"\"的员工记录已删除.\n";
return;
}
}
if (!isfind)
{
cout<<"没有找到姓名为\""<<name<<"\"的员工.\n";
return;
}
}

void mod()
{
if (emps.size()==0)
{
cout<<"员工记录为空.\n";
return;
}
bool isfind=false;
string name;
cout<<"请输入要修改的员工姓名:";
cin>>name;
list<employee>::iterator iter;
for (iter=emps.begin();iter!=emps.end();iter++)
{
if (iter->m_name==name)
{
isfind=true;
cout<<"姓名为\""<<name<<"\"的员工记录已找到.\n";
break;
}
}
if (isfind)
{
string num,name,dep;
double tax,ins,salary;
print(*iter);
cout<<endl;
cout<<"请输入新的员工编号:";
cin>>num;
cout<<"请输入新的员工姓名:";
cin>>name;
cout<<"请输入新的员工部门:";
cin>>dep;
cout<<"请输入新的员工保险:";
cin>>ins;
assert(!cin.fail());
cout<<"请输入新的员工税金:";
cin>>tax;
assert(!cin.fail());
cout<<"请输入新的员工工资:";
cin>>salary;
assert(!cin.fail());
iter->m_dep=dep;
iter->m_insurance=ins;
iter->m_name=name;
iter->m_num=num;
iter->m_salary=salary;
iter->m_tax=tax;
cout<<"1 员工记录被成功修改.\n";
}
else
{
cout<<"没有找到姓名为\""<<name<<"\"的员工记录.\n";
}
}

void show_all()
{
if (emps.size()==0)
{
cout<<"员工记录为空.\n";
return;
}
cout<<"显示全体员工数据:\n";
cout<<"--------------------\n";
list<employee>::iterator iter;
for(iter=emps.begin();iter!=emps.end();iter++)
{
cout<<endl;
print(*iter);
cout<<endl;
}
cout<<"--------------------\n";
}

void show_name()
{
if (emps.size()==0)
{
cout<<"员工记录为空.\n";
return;
}
bool isfind=false;
string name;
cout<<"请输入要查询的员工姓名:";
cin>>name;
list<employee>::iterator iter;
for(iter=emps.begin();iter!=emps.end();iter++)
{
if (iter->m_name==name)
{
isfind=true;
cout<<"姓名为\""<<name<<"\"的员工记录已找到.\n";
print(*iter);
break;
}
}
if (!isfind)
{
cout<<"没有找到姓名为\""<<name<<"\"的员工.\n";
return;
}
}

void show_dep()
{
if (emps.size()==0)
{
cout<<"员工记录为空.\n";
return;
}
double isfind=0.00;
double total_salary=0.00;
string dep;
cout<<"请输入要查询的部门名称:";
cin>>dep;
cout<<"部门["<<dep<<"]的员工信息:\n";
cout<<"--------------------\n\n";
list<employee>::iterator iter;
for(iter=emps.begin();iter!=emps.end();iter++)
{
if (iter->m_dep==dep)
{
isfind++;
total_salary+=iter->m_salary;
print(*iter);
cout<<endl;
continue;
}
}
cout<<"--------------------\n";
if (isfind==0)
{
cout<<"没有找到名称为["<<dep<<"]的部门.\n";
}
else
{
cout<<"部门["<<dep<<"]工资统计:\n";
cout<<"工资总额:"<<total_salary<<endl;
cout<<"平均工资:"<<total_salary/isfind<<endl;
}
}追问

额,先谢谢了,我的要求:在代码中应用结构体数组,在主函数中应用switch。。。case结构,case后套用函数,函数尽量简单,可以吗?我是刚学C语言的,这是期末试题,不要复杂的

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-12-28
是一些函数代码追问

知道啊!就是这些代码错了,自己写的不对

第2个回答  2011-12-28
JAO
48

C语言程序设计:职工工资信息统计管理系统设计
(1)录入:输入职工数据,其中“实付工资”通过计算得到;(2)删除:删除指定的职工信息(输入姓名,若找到则删除该信息)(3) 修改:允许对已经录入的数据重新进行编辑、修改;(4) 显示:显示全体职工数据;(5)查询:a. 输入职工姓名,显示该职工的全部数据;b. 输入某部门值,显示该部门职工的数据...

C语言职工信息管理系统设计
试设计一职工信息管理系统,使之能提供以下功能:1、系统以菜单方式工作2、职工信息录入功能(职工... 职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。试设计一职工信息管理系统,使之能提供以下功能:1、系统以菜单方式工作2、职工信息录入功能(职工信息用文件保存)--输入3、职工信息...

用c语言写一个职工工资管理程序
3 - 对职工数据按工资高低排序,将排好序的各记录存放在文件worker2.dat中, 排序+写入文件。4 - 将职工号为单数和偶数的职工信息分别存放另两个磁盘文件worker3.dat和worker4.dat中, 分解单双数职工+写入文件。5 - 并从这两个文件中读出职工信息在显示器上显示出来, 读取文件+显示数据。代码片...

求一C语言程序设计作业,工资管理系统
void savew(void); \/*保存职工信息和工资信息***\/void day1(void); \/***直接打印职工信息**\/void day2(void); \/***将统计结果打印出来**\/void delall(DEPART *dep); \/**删除整个部门**\/void delone(DEPART *dep,WORKER *p); \/*删除一个职工及其工资信息*\/void changew(WORKER *p); \/*修改职工...

用C语言课程设计—职工工资管理系统(分别用结构体数组和链表编写程序...
printf("*** 欢迎使用职工工资管理系统 ***\\n");printf("请选择(0-8):\\n");scanf("%d",&x);switch(x){ case 1: input();break;case 2: search();break;case 3: modi();break;case 4: dele();break;case 5: output();break;case 6: stat();break;case 7: run();break;ca...

C语言程序设计——职工信息管理系统(急)
C语言程序设计——职工信息管理系统(急) 5 设计和实现一个“职工信息管理系统”,满足以下要求:1.系统以菜单方式工作;2.使用链表或结构数组对职工信息进行管理和维护;3.使用二进制文件在磁盘上保存职工记录信息;4.链表中各... 设计和实现一个“职工信息管理系统”,满足以下要求:1.系统以菜单方式工作;2.使用...

c语言程序设计、工资管理系统
c语言程序设计、工资管理系统 每个员工信息包括姓名,编号,年月,工资额4项信息。用C语言实现工资信息的管理,具体功能如下:1.录入职工工资信息。2.按姓名和年月查询职工工资。3.按年对职工工资进行统计。4... 每个员工信息包括姓名,编号,年月,工资额4项信息。用C语言实现工资信息的管理,具体功能如下:1.录入职工工资...

用C语言程序设计编写 工资管理程序设计,有悬赏,财富悬赏100!请各位大虾...
void everysalary(Staff*stud);int input(Staff *stud)\/\/输入{ Staff *p=stud; unsigned i=0; char ch; printf("请分别输入职工号、姓名、基本工资、岗位工资、补贴、扣款\\n如果停止数据输入,请在输入职工号时直接按回车键\\n"); printf("请输入职工号(直接按回车键退出):"); while(gets(p->...

求一道C语言编程题(职工信息管理程序)
\/\/职工管理系统 \/\/职工号,姓名,性别,年龄,学历,工资,住址,电话等 \/ 1、录入职工信息,若录入的职工号重复给予提示;2、浏览职工信息;3、职工号和职工姓名查询职工信息;4、按职工号删除职工信息。\/ include <stdio.h> include <stdlib.h> include <string.h> \/\/下面定义职工信息结构 struct...

求一份C语言程序设计,价格私聊
编写一个工资信息管理系统,职工有工号、姓名、入职年月、一年12个月每个月的工资,年总工资等信息。(1) 信息生成。从一个文本文件中读入姓名信息,其他信息通过随机生成(注意信息的合理性)或者计算得到(如年总工资)。计算所有职工各月的总工资及年总工资。(2) 信息显示 。能够分别按照工号、职工...

相似回答