go语言职工管理系统代码,go语言简单代码

c语言编一个工资管理系统 本系统能够方便、灵活地实现职工工资的输入、添加、删除等编辑操作以及查询等

*/#include "stdafx.h"

创新互联公司是一家专业提供潮南企业网站建设,专注与成都网站设计、成都做网站、HTML5建站、小程序制作等业务。10年已为潮南众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。

#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) 退出程序。

*/listemployee 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 linecout"请选择操作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :";

int choose=0;

cinchoose;

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.退出:";

cinchoice;

if (choice==1) show_name();

if (choice==2) show_dep();

if (choice==3)

{

cout"请选择操作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :";

cinchoose;

assert(!cin.fail());

continue;

}

}

if (choose==5) show_all();

cout"请选择操作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :";

cinchoose;

assert(!cin.fail());

}

return 0;

}void print(const employee e)

{

cout"编号:"e.m_numendl;

cout"姓名:"e.m_nameendl;

cout"部门:"e.m_dependl;

cout"保险:"e.m_insuranceendl;

cout"税金:"e.m_taxendl;

cout"应付工资:"e.m_salaryendl;

cout"实付工资:"e.m_salary-e.m_insurance-e.m_taxendl;

}void input()

{

string num,name,dep;

double salary,ins,tax;

cout"请输入员工编号:";

cinnum;

cout"请输入员工姓名:";

cinname;

cout"请输入员工部门:";

cindep;

cout"请输入员工保险:";

cinins;

assert(!cin.fail());

cout"请输入员工税金:";

cintax;

assert(!cin.fail());

cout"请输入员工应付工资:";

cinsalary;

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"请输入要删除的员工姓名:";

cinname;

listemployee::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"请输入要修改的员工姓名:";

cinname;

listemployee::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);

coutendl;

cout"请输入新的员工编号:";

cinnum;

cout"请输入新的员工姓名:";

cinname;

cout"请输入新的员工部门:";

cindep;

cout"请输入新的员工保险:";

cinins;

assert(!cin.fail());

cout"请输入新的员工税金:";

cintax;

assert(!cin.fail());

cout"请输入新的员工工资:";

cinsalary;

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

listemployee::iterator iter;

for(iter=emps.begin();iter!=emps.end();iter++)

{

coutendl;

print(*iter);

coutendl;

}

cout"--------------------\n";

}void show_name()

{

if (emps.size()==0)

{

cout"员工记录为空.\n";

return;

}

bool isfind=false;

string name;

cout"请输入要查询的员工姓名:";

cinname;

listemployee::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"请输入要查询的部门名称:";

cindep;

cout"部门["dep"]的员工信息:\n";

cout"--------------------\n\n";

listemployee::iterator iter;

for(iter=emps.begin();iter!=emps.end();iter++)

{

if (iter-m_dep==dep)

{

isfind++;

total_salary+=iter-m_salary;

print(*iter);

coutendl;

continue;

}

}

cout"--------------------\n";

if (isfind==0)

{

cout"没有找到名称为["dep"]的部门.\n";

}

else

{

cout"部门["dep"]工资统计:\n";

cout"工资总额:"total_salaryendl;

cout"平均工资:"total_salary/isfindendl;

}

}

c++职工管理信息系统

附1、:使用说明

输入1注册信息:注册职工信息时提示注册员工的个数,且系统会自动给出职工编号,然后输入职工姓名、性别、年龄、学历、工资、地址、联系电话。

输入2浏览信息:操作后可以浏览该公司所有职工的信息。

输入3查询信息:可以根据不同的信息查询公司职工的信息。如按照职工的编号、职工的学历、职工的联系电话。知道职工的其中一个信息就可以查到他的其他信息。实现了掌握少量的信息就可以找到相关的信息。

输入4删除信息:介入这一界面时,先显示全部职工的信息,再输入需要删除职工的名字。操作后可显示删除后的全部职工的信息。

输入5添加信息:进入这一界面后,先显示原来的职工的信息,再提示添加信息的人数,然后输入新的职工的信息。操作完后可自动显示添加完后的全部职工的信息。

输入6修改信息:介入界面后,显示全部职工的信息,再提示输入需要修改的职工的姓名,输入后显示该职工原来的信息且提示是否修改:输入1时修改,输入0时不修改。需要修改时,提示需要修改的选项的序号,然后进行修改。修改后系统自动显示修改后的职工的信息。

附件:职工信息管理系统代码

file.c

此文件主要包含涉及文件读写功能的函数。

/************************************************************/

/*                 File: file.c                                 */

/************************************************************/

#include stdio.h

#include windows.h

#include time.h

#include string.h

#define N 100      /*宏定义*/

struct employee

{ int num;         /*职工编号*/

char name[10];    /*职工姓名*/

char sex[4];       /*职工性别*/

char bir[16];      /*职工出生年月*/

char xueli[30];    /*职工学历*/

int wage;         /*职工工资*/

char addr[30];     /*职工地址*/

char tel[20];       *职工电话*/

}em[100];         /*定义一个结构体*/

void menu()     /*菜单函数*/

{

printf("              ☆☆☆信息管理与信息系统☆☆☆\n");

printf("\n");

printf("                                   B0902 李颖\n");

printf("\n");

printf("        ******************职工信息管理****************\n");

printf("           1.录入职工信息");

printf("           2.浏览职工信息\n");

printf("           3.查询职工信息");

printf("           4.删除职工信息\n");

printf("           5.添加职工信息");

printf("           6.修改职工信息\n");

printf("           7.退出管理系统\n");

printf("        **********************************************\n");

printf("\n");

printf("\n");

}

void main()

{

menu();  /*调用菜单函数*/

int n,flag;

char a;

do

{  printf("请选择你需要操作的步骤(1--7):\n");

scanf("%d",n);

if(n=1n=7)

{

flag=1;

break;

}

else

{

flag=0;

printf("您输入有误,请重新选择!");

}

}

while(flag==0);

while(flag==1)

{  switch(n)

{

case 1:printf("           ◆◆◆输入职工信息◆◆◆\n");printf("\n");input();break;

case 2:printf("              ◆◆◆浏览职工信息◆◆◆\n");printf("\n");display();break;

case 3:printf("              ◆◆◆查询职工信息◆◆◆\n");printf("\n");search();break;

case 4:printf("              ◆◆◆删除职工信息◆◆◆\n");printf("\n");del();break;

case 5:printf("                 ◆◆◆添加职工信息◆◆◆\n");printf("\n");add();break;

case 6:printf("              ◆◆◆修改职工信息◆◆◆\n");printf("\n");modify();break;

case 7:exit(0);break;

default :break;

}

getchar();

printf("\n");

printf("是否继续进行(y or n):\n");

scanf("%c",a);

if(a=='y')

{

flag=1;

system("cls");  /*清屏*/

menu(); /*调用菜单函数*/

printf("请再次选择你需要操作的步骤(1--6):\n");

scanf("%d",n);

printf("\n");

}

else

exit(0);

}

}

void input()   /*录入函数*/

{

int i,m;

printf("请输入需要创建信息的职工人数(1--100):\n");

scanf("%d",m);

for (i=0;im;i++)

{

printf("职工号: ");

srand((int)time(0));

em[i].num=rand()%10000+20000000;

if(em[i].num!=em[i-1].num)

printf("%8d ",em[i].num);

printf("\n");

printf("请输入姓名:  ");

scanf("%s",em[i].name);

getchar();

printf("请输入性别:  ");

scanf("%s",em[i].sex);

printf("请输入出生年月:  ");

scanf("%s",em[i].bir);

printf("请输入学历:  ");

scanf("%s",em[i].xueli);

printf("请输入工资:  ");

scanf("%d",em[i].wage);

printf("请输入住址:  ");

scanf("%s",em[i].addr);

printf("请输入电话:  ");

scanf("%s",em[i].tel);

printf("\n");

}

printf("\n创建完毕!\n");

save(m);

}

void save(int m)                               /*保存文件函数*/

{

int i;

FILE*fp;

if ((fp=fopen("employee_list","wb"))==NULL)  /*创建文件并判断是否能打开*/

{

printf ("cannot open file\n");

exit(0);

}

for (i=0;im;i++)                            /*将内存中职工的信息输出到磁盘文件中去*/

if (fwrite(em[i],sizeof(struct employee),1,fp)!=1)

printf("file write error\n");

fclose(fp);

}

int load()                                    /*导入函数*/

{

FILE*fp;

int i=0;

if((fp=fopen("employee_list","rb"))==NULL)

{

printf ("cannot open file\n");

exit(0);

}

else

{

do

{

fread(em[i],sizeof(struct employee),1,fp);

i++;

}

while(feof(fp)==0);

}

fclose(fp);

return(i-1);

}

void display()                       /*浏览函数*/

{

int i;

int m=load();

printf("\n  职工号\t姓名\t性别\t出生年月\t学历\t工资\t住址\t电话   \n");

for(i=0;im;i++)                       /*m为输入部分的职工人数*/

printf("\n  %6d\t%s\t%4s\t%s\t%s\t%d\t%s\t%s\n",em[i].num,em[i].name,em[i].sex,em[i].bir,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);

}

void del()                              /*删除函数*/

{ int m=load();

int i,j,n,t,flag;

char name[20];

printf("\n 原来的职工信息:\n");

display();                          /* 调用浏览函数*/

printf("\n");

printf("请输入要删除的职工的姓名:\n");

scanf("%s",name);

for(flag=1,i=0;flagim;i++)

{

if(strcmp(em[i].name,name)==0)

{

printf("\n已找到此人,原始记录为:\n");

printf("\n职工号\t姓名\t性别\t出生年月\t学历\t工资\t住址\t电话   \n");

printf("\n%d\t%s\t%s\t%s\t%s\t%d\t%s\t%s\n",em[i].num,em[i].name,em[i].sex,em[i].bir,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);

printf("\n确实要删除此人信息请按1,不删除请按0\n");

scanf("%d",n);

if(n==1)                    /*如果删除,则其他的信息都往上移一行*/

{

for(j=i;jm-1;j++)

{

strcpy(em[j].name,em[j+1].name);

em[j].num=em[j+1].num;

strcpy(em[j].sex,em[j+1].sex);

strcpy(em[j].bir,em[j+1].bir);

strcpy(em[j].xueli,em[j+1].xueli);

em[j].wage=em[j+1].wage;

strcpy(em[j].addr,em[j+1].addr);

strcpy(em[j].tel,em[j+1].tel);

}

flag=0;

}

}

}

if(!flag)

m=m-1;

else

printf("\n对不起,查无此人!\n");

printf("\n 浏览删除后的所有职工信息:\n");

save(m);                           /*调用保存函数*/

display();                         /*调用浏览函数*/

printf("\n继续删除请按1,不再删除请按0\n");

scanf("%d",t);

switch(t)

{

case 1:del();break;

case 0:break;

default :break;

}

}

void add()                                   /*添加函数*/

{

FILE*fp;

int n;

int count=0;

int i;

int m=load();

printf("\n 原来的职工信息:\n");

display();                             /* 调用浏览函数*/

printf("\n");

fp=fopen("emploee_list","a");

printf("请输入想增加的职工数:\n");

scanf("%d",n);

for (i=m;i(m+n);i++)

{

printf("\n 请输入新增加职工的信息:\n");

printf("请输入职工号:  ");

srand((int)time(0));

em[i].num=rand()%10000+20000000;

if(em[i].num!=em[i-1].num)

printf("%8d ",em[i].num);

printf("\n");

printf("请输入姓名:  ");

scanf("%s",em[i].name);

getchar();

printf("请输入性别:  ");

scanf("%s",em[i].sex);

printf("请输入出生年月:  ");

scanf("%s",em[i].bir);

printf("请输入学历:  ");

scanf("%s",em[i].xueli);

printf("请输入工资:  ");

scanf("%d",em[i].wage);

printf("请输入住址:  ");

scanf("%s",em[i].addr);

printf("请输入电话:  ");

scanf("%s",em[i].tel);

printf("\n");

count=count+1;

printf("已增加的人数:\n");

printf("%d\n",count);

}

printf("\n添加完毕!\n");

m=m+count;

printf("\n浏览增加后的所有职工信息:\n");

printf("\n");

save(m);

display();

fclose(fp);

}

void search()                                /*查询函数*/

{

int t,flag;

do

{

printf("\n按职工号查询请按1 ; 按学历查询请按2 ; 按电话号码查询请按3,进入主函数按4\n");

scanf("%d",t);

if(t=1t=4)

{

flag=1;

break;

}

else

{

flag=0;

printf("您输入有误,请重新选择!");

}

}

while(flag==0);

while(flag==1)

{

switch(t)

{

case 1:printf("按职工号查询\n");search_num();break;

case 2:printf("按学历查询\n");search_xueli();break;

case 3:printf("按电话号码查询\n");search_tel();break;

case 4:main();break;

default:break;

}

}

}

void search_num()

{

int num;

int i,t;

int m=load();

printf("请输入要查找的职工号(20001111---20009999):\n");

scanf("%d",num);

for(i=0;im;i++)

if(num==em[i].num)

{

printf("\n已找到此人,其记录为:\n");

printf("\n职工号\t姓名\t性别\t出生年月\t学历\t工资\t住址\t电话   \n");

printf("\n%d\t%s\t%s\t%s\t%s\t%d\t%s\t%s\n",em[i].num,em[i].name,em[i].sex,em[i].bir,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);

break;

}

if(i==m)

printf("\n对不起,查无此人\n");

printf("\n");

printf("返回查询函数请按1,继续查询职工号请按2\n");

scanf("%d",t);

switch(t)

{

case 1:search();break;

case 2: break;

default:break;

}

}

void search_xueli()

{

char xueli[30];

int i,t;

int m=load();

printf("请输入要查找的学历:\n");

scanf("%s",xueli);

for(i=0;im;i++)

if(strcmp(em[i].xueli,xueli)==0)

{

printf("\n已找到,其记录为:\n");

printf("\n职工号\t姓名\t性别\t出生年月\t学历\t工资\t住址\t电话   \n");

printf("\n%d\t%s\t%s\t%s\t%s\t%d\t%s\t%s\n",em[i].num,em[i].name,em[i].sex,em[i].bir,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);

}

if(i==m)

printf("\n对不起,查无此人\n");

printf("\n");

printf("返回查询函数请按1,继续查询学历请按2\n");

scanf("%d",t);

switch(t)

{

case 1:search();break;

case 2:break;

default :break;

}

}

void search_tel()

{

char tel[20];

int i, t;

int m=load();

printf("请输入要查找的电话号码:\n");

scanf("%ld",tel);

for(i=0;im;i++)

if(strcmp(em[i].tel,tel)==0)

{

printf("\n已找到此人,其记录为:\n");

printf("\n职工号\t姓名\t性别\t出生年月\t学历\t工资\t住址\t电话   \n");

printf("\n%d\t%s\t%s\t%s\t%s\t%d\t%s\t%s\n",em[i].num,em[i].name,em[i].sex,em[i].bir,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);

break;

}

if(i==m)

printf("\n对不起,查无此人\n");

printf("\n");

printf("返回查询函数请按1,继续查询电话号码请按2\n");

scanf("%d",t);

switch(t)

{

case 1:search();break;

case 2:break;

default :break;

}

}

void modify()                            /*修改函数*/

{

int num;

char name[10];

char sex[4];

char bir[20];

char xueli[30];

int wage;

char addr[30];

char tel[20];

int b,c,i,n,t,flag;

int m=load();                         /*导入文件内的信息*/

printf("\n 原来的职工信息:\n");

display();                         /* 调用浏览函数*/

printf("\n");

printf("请输入要修改的职工的姓名:\n");

scanf("%s",name);

for(flag=1,i=0;flagim;i++)

{

if(strcmp(em[i].name,name)==0)

{

printf("\n已找到此人,原始记录为:\n");

printf("\n职工号\t姓名\t性别\t出生年月\t学历\t工资\t住址\t电话   \n");

printf("\n%d\t%s\t%s\t%s\t%s\t%d\t%s\t%s\n",em[i].num,em[i].name,em[i].sex,em[i].bir,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);

printf("\n确实要修改此人信息请按1 ; 不修改请按0\n");

scanf("%d",n);

if(n==1)

{

printf("\n需要进行修改的选项\n 1.职工号 2.姓名 3.性别 4.出生年月 5.学历 6.工资 7.住址 8.电话\n");

printf("请输入你想修改的那一项序号:\n");

scanf("%d",c);

if(c8||c1)

printf("\n选择错误,请重新选择!\n");

}

flag=0;

}

}

if(flag==1)

printf("\n对不起,查无此人!\n");

do

{

switch(c)                  /*因为当找到第i个职工时,for语句后i自加了1,所以下面的应该把改后的信息赋值给第i-1个人*/

{

case 1:printf("职工号改为: ");

scanf("%d",num);

em[i-1].num=num;

break;

case 2:printf("姓名改为: ");

scanf("%s",name);

strcpy(em[i-1].name,name);

break;

case 3:printf("性别改为: ");

scanf("%s",sex);

strcpy(em[i-1].sex,sex);

break;

case 4:printf("出生年月改为: ");

scanf("%s",bir);

strcpy(em[i-1].bir,bir);

break;

case 5:printf("学历改为: ");

scanf("%s",xueli);

strcpy(em[i-1].xueli,xueli);

break;

case 6:printf("工资改为: ");

scanf("%d",wage);

break;

case 7:printf("住址改为: ");

scanf("%s",addr);

strcpy(em[i-1].addr,addr);

break;

case 8:printf("电话改为: ");

scanf("%s",tel);

strcpy(em[i-1].tel,tel);

break;

}

printf("\n");

printf("\n是否确定所修改的信息?\n 是 请按1 ; 不,重新修改 请按2:  \n");

scanf("%d",b);

}

while(b==2);

printf("\n浏览修改后的所有职工信息:\n");

printf("\n");

save(m);

display();

printf("\n继续修改请按1,不再修改请按0\n");

scanf("%d",t);

switch(t)

{

case 1:modify();break;

case 0:break;

default :break;

}

}

求一道C语言编程题(职工信息管理程序)

//写这个程序花了我2.5小时写代码

//再花了1个小时测试,全部正确了

//所以一定要给我加分哦,要求100分以上,哈哈

//不然下次就没信心帮你写了

//职工管理系统

//职工号,姓名,性别,年龄,学历,工资,住址,电话等

/*

1、录入职工信息,若录入的职工号重复给予提示;

2、浏览职工信息;

3、职工号和职工姓名查询职工信息;

4、按职工号删除职工信息。

*/

#include stdio.h

#include stdlib.h

#include string.h

//下面定义职工信息结构

struct WORKER{

int id; //职工号

char name[20]; //姓名

char sex[3]; //性别

int age; //年龄

char edu[50]; //学历

int wages; //工资

char adr[255]; //住址

char phone[13]; //电话

};

typedef struct WORKER *PWORKER;

struct LINK{

WORKER w;

LINK *next;

};

typedef struct LINK *PLINK;

//创建职工信息链表

PLINK create()

{

PLINK p=(PLINK)malloc(sizeof(struct LINK));

if(NULL!=p)

{

p-next=NULL;

return p;

}

printf("内存不足!\n");

return NULL;

}

//显示程序界面文字

void message()

{

system("cls");

printf("欢迎进入职工管理系统\n");

printf(" --帮助 请输入:0\n");

printf(" --录入职工信息 请输入:1\n");

printf(" --浏览职工信息 请输入:2\n");

printf(" --按职工号查询 请输入:3\n");

printf(" --按姓名 查询 请输入:4\n");

printf(" --删除职工信息 请输入:5\n");

printf("\n --清屏 请输入:6\n");

printf(" --退出 请输入:-1\n");

}

//录入职工信息

int add(PLINK p)

{

PLINK q=(PLINK)malloc(sizeof(struct LINK));

if(NULL==q)

{

printf("录入失败提示:内存不足!\n");

return -1;

}

printf("请输入职工号(数字):");

scanf("%d",q-w.id);

PLINK h=p-next;

while(h)

{

if(h-w.id==q-w.id)

{

free(q);

printf("录入失败提示:此职工号已经存在!\n");

return -1;

}

h=h-next;

}

printf("请输入职工姓名(文字):");

scanf("%s",q-w.name);

printf("请输入职工性别(文字):");

scanf("%s",q-w.sex);

printf("请输入职工年龄(数字):");

scanf("%d",q-w.age);

printf("请输入职工学历(文字):");

scanf("%s",q-w.edu);

printf("请输入职工工资(数字):");

scanf("%d",q-w.wages);

printf("请输入职工住址(文字):");

scanf("%s",q-w.adr);

printf("请输入职工电话(文字):");

scanf("%s",q-w.phone);

q-next=p-next;

p-next=q;

printf("录入成功!\n");

return -1;

}

//浏览职工信息

void show(PLINK p)

{

message();

printf("浏览职工信息\n");

printf("职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n");

while(NULL!=p-next)

{

printf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",

p-next-w.id,p-next-w.name,p-next-w.sex,p-next-w.adr,

p-next-w.edu,p-next-w.wages,p-next-w.adr,p-next-w.phone);

p=p-next;

}

printf("显示完毕!\n");

}

//按职工号查询

PLINK findid(PLINK p,int id)

{

message();

printf("按职工号查询\n");

printf("职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n");

while(NULL!=p-next)

{

if(p-next-w.id==id)

{

printf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",

p-next-w.id,p-next-w.name,p-next-w.sex,p-next-w.adr,

p-next-w.edu,p-next-w.wages,p-next-w.adr,p-next-w.phone);

return p;

}

p=p-next;

}

printf("查询结束!\n");

return NULL;

}

//按姓名 查询

PLINK findname(PLINK p,char *name)

{

message();

printf("按姓名 查询\n");

printf("职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n");

while(NULL!=p-next)

{

if(0==strcmp(p-next-w.name,name))

{

printf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",

p-next-w.id,p-next-w.name,p-next-w.sex,p-next-w.adr,

p-next-w.edu,p-next-w.wages,p-next-w.adr,p-next-w.phone);

return p;

}

p=p-next;

}

printf("查询结束!\n");

return NULL;

}

//按职工号删除职工信息

int del(PLINK p,int id)

{

message();

printf("按职工号删除职工信息\n");

while(NULL!=p-next)

{

if(p-next-w.id==id)

{

PLINK q=p-next;

p-next=p-next-next;

free(q);

printf("删除成功!\n");

return 1;

}

p=p-next;

}

printf("没有你输入的职工号!\n");

return -1;

}

//程序结束时释放内存

void release(PLINK p)

{

PLINK q;

while(NULL!=p-next)

{

q=p;

p=p-next;

free(q);

}

free(p);

}

int main()

{

int cmd=0;//命令号

int id;

char name[20];

PLINK pworker;

if(!(pworker=create()))

{

exit(0);//如果创建职工信息链表表头失败则结束程序

}

while(cmd!=-1)

{

switch(cmd)

{

case 0:

message();

break;

case 1:

add(pworker);

break;

case 2:

show(pworker);

break;

case 3:

printf("请输入要查询的职工号:");

scanf("%d",id);

findid(pworker,id);

break;

case 4:

printf("请输入要查询的职姓名:");

scanf("%s",name);

findname(pworker,name);

break;

case 5:

printf("请输入要删除的职工号:");

scanf("%d",id);

del(pworker,id);

break;

case 6:

default:

message();

}

printf("请输入操作命令数字:\n");

scanf("%d",cmd);//接收命令

}

printf("谢谢使用!\n");

release(pworker);

return 0;

}

//程序有详细说明了

//希望你以后好好学。

Go语言基础语法(一)

本文介绍一些Go语言的基础语法。

先来看一个简单的go语言代码:

go语言的注释方法:

代码执行结果:

下面来进一步介绍go的基础语法。

go语言中格式化输出可以使用 fmt 和 log 这两个标准库,

常用方法:

示例代码:

执行结果:

更多格式化方法可以访问中的fmt包。

log包实现了简单的日志服务,也提供了一些格式化输出的方法。

执行结果:

下面来介绍一下go的数据类型

下表列出了go语言的数据类型:

int、float、bool、string、数组和struct属于值类型,这些类型的变量直接指向存在内存中的值;slice、map、chan、pointer等是引用类型,存储的是一个地址,这个地址存储最终的值。

常量是在程序编译时就确定下来的值,程序运行时无法改变。

执行结果:

执行结果:

Go 语言的运算符主要包括算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符以及指针相关运算符。

算术运算符:

关系运算符:

逻辑运算符:

位运算符:

赋值运算符:

指针相关运算符:

下面介绍一下go语言中的if语句和switch语句。另外还有一种控制语句叫select语句,通常与通道联用,这里不做介绍。

if语法格式如下:

if ... else :

else if:

示例代码:

语法格式:

另外,添加 fallthrough 会强制执行后面的 case 语句,不管下一条case语句是否为true。

示例代码:

执行结果:

下面介绍几种循环语句:

执行结果:

执行结果:

也可以通过标记退出循环:

--THE END--

简单的职工管理系统

希望对你有帮助。

/**************************************************

内容及要求:

1注册新职工,添加新职工的详细信息,

如:职工号,姓名,出生年份,性别,职称,部门,工资等;

2按姓名,部门等条件进行查询;

3修改和删除职工信息;

4按工资高低进行排序;

5把各项纪录存储在文本文件中。

----ky kuaidh00, 2008/01/05.-------------------

评说:有删除和增加的操作,最好选取链表来做。

**************************************************/

#include string

#include iostream

#include fstream

#include iomanip

#include memory.h

#include stdio.h

#include conio.h

#include stdlib.h

using namespace std;

struct Employee

{//声明职工的结构作为链表节点。

//-----数据域-----

string m_Code;

string m_Name;

unsigned short int m_Year;

string m_Sex;

string m_Post;

string m_Department;

unsigned int m_Wage;

//链表节点的指针域---

struct Employee* Next;

};

//-----个人习惯:取别名-------

typedef struct Employee Node;

typedef Node* Link;

//-------函数声明-------------

Link Create(Link Head);

void Release(Link Head);

Link Add(Link Head);

bool Search(Link Head);

Link Search_Unique(Link Head);

void Display_List(Link Head);

void Display_Node(Link pNode);

Link Modify(Link Head);

Link Del(Link Head);

void Save_ByFile(Link Head,fstream ofile);

Link Sort(Link Head);

//-------函数实现--------------------------

Link Create(Link Head)

{//创建一个带头节点的空链表。

Head=(Link)new Node;

if(!Head)

{

cout"分配内存失败!"endl;

return NULL;

}

Head-m_Code="";

Head-m_Name="";

Head-m_Year=0;

Head-m_Sex="";

Head-m_Post="";

Head-m_Department="";

Head-m_Wage=0;

Head-Next=NULL;

return Head;

}

void Release(Link Head)

{//释放链表。

Link ptr;//声明一个操作用的指针。

while(Head!=NULL)

{

ptr=Head;

Head=Head-Next;

delete ptr;//释放节点资源。

}

}

Link Add(Link Head)

{//前插法添加数据。

Link pNew;// 声明一个新节点。

char again;

string code,name,sex,post,department;

unsigned short int year;

unsigned int wage;

do

{

pNew=(Link)new Node;

//数据域。

cout"请输入职工代码:";

cincode;

coutendl"请输入职工姓名:";

cinname;

coutendl"请输入职工出生年份:";

cinyear;

while(cin.fail())

{

cout"请输入正确的年份格式。"endl;

cin.clear();

fflush(stdin);

cinyear;

}

coutendl"请输入职工性别:";

cinsex;

coutendl"请输入职工职称:";

cinpost;

coutendl"请输入职工部门:";

cindepartment;

coutendl"请输入职工工资:";

cinwage;

while(cin.fail())

{

cout"请输入正确的工资数据。"endl;

cin.clear();

fflush(stdin);

cinwage;

}

coutendl;

pNew-m_Code=code;

pNew-m_Name=name;

pNew-m_Year=year;

pNew-m_Sex=sex;

pNew-m_Post=post;

pNew-m_Department=department;

pNew-m_Wage=wage;

//指针域。

pNew-Next=Head-Next;

Head-Next=pNew;

cout"数据添加成功!是否继续添加?(Y/N)"endl;

cinagain;

}while(again=='Y'||again=='y');

return Head;

}

bool Search(Link Head)

{//查询同时满足“姓名”和“部门”的职工信息。

Link ptr;

string department;

string name;

ptr=Head-Next;

cout"请输入部门:";

cindepartment;

coutendl"请输入姓名:";

cinname;

coutendl"----------------查询结果------------------"endl;

while(ptr)

{

if((ptr-m_Name==name)(ptr-m_Department==department))

{

Display_Node(ptr);//打印满足条件的节点。

return true;

}

ptr=ptr-Next;//查询下一节点。

}

cout"无此职工的信息。"endl;

return false;

}

Link Search_Unique_Front(Link Head)

{//查询满足“职工代码“的职工信息(职工代码必需唯一)。

Link ptr;

string code;

ptr=Head;

cout"请输入职工代码:";

cincode;

coutendl"----------------查询结果------------------"endl;

while(ptr-Next)

{

if(ptr-Next-m_Code==code)

//Display_Node(ptr);//打印满足条件的节点。

return ptr;//注意,是返回的查询到的节点的直接前趋节点。

ptr-Next=ptr-Next-Next;//查询下一节点。

}

return ptr;

}

void Display_List(Link Head)

{

Link ptr;

ptr=Head-Next;

cout"==================所有职工信息=================="endl;

while(ptr)

{

Display_Node(ptr);

ptr=ptr-Next;

}

}

void Display_Node(Link pNode)

{//在标准输出设备上输出。

coutsetw(10)leftpNode-m_Code

setw(10)leftpNode-m_Name

setw(10)leftpNode-m_Year

setw(10)leftpNode-m_Sex

setw(10)leftpNode-m_Post

setw(10)leftpNode-m_Department

setw(10)leftpNode-m_Wageendl;//setw(10)表示占10个字符位置。

}

Link Modify(Link Head)

{// 修改单一个节点。

Link ptr;

ptr=Search_Unique_Front(Head);

string code,name,sex,post,department;

unsigned short int year;

unsigned int wage;

if(ptr-Next)

{

cout"-------你现在可以修改此职工的信息了-------"endl;

//数据域。

cout"请输入职工代码:";

cincode;

coutendl"请输入职工姓名:";

cinname;

coutendl"请输入职工出生年份:";

cinyear;

while(cin.fail())

{

cout"请输入正确的年份格式。"endl;

cin.clear();

fflush(stdin);

cinyear;

}

coutendl"请输入职工性别:";

cinsex;

coutendl"请输入职工职称:";

cinpost;

coutendl"请输入职工部门:";

cindepartment;

coutendl"请输入职工工资:";

cinwage;

while(cin.fail())

{

cout"请输入正确的工资数据。"endl;

cin.clear();

fflush(stdin);

cinwage;

}

coutendl;

ptr-Next-m_Code=code;//因ptr是前趋节点,所以要用ptr-Next;

ptr-Next-m_Name=name;

ptr-Next-m_Year=year;

ptr-Next-m_Sex=sex;

ptr-Next-m_Post=post;

ptr-Next-m_Department=department;

ptr-Next-m_Wage=wage;

}

cout"没找到此职工的记录,无法修改。"endl;

return Head;

}

Link Del(Link Head)

{

Link ptr;

Link ptr_front;

ptr_front=Search_Unique_Front(Head);

ptr=ptr_front-Next;

if(ptr)

{

ptr_front-Next=ptr-Next;

delete ptr;//删除此节点。

}

cout"没找到此职工的记录,无法删除。"endl;

return Head;

}

void Save_ByFile(Link Head,fstream ofile)

{

Link pNode;

pNode=Head-Next;

ofile.clear();//清除文件结束状态。

while(pNode)

{

ofilesetw(10)leftpNode-m_Code

setw(10)leftpNode-m_Name

setw(10)leftpNode-m_Year

setw(10)leftpNode-m_Sex

setw(10)leftpNode-m_Post

setw(10)leftpNode-m_Department

setw(10)leftpNode-m_Wageendl;//setw(10)表示占10个字符位置。

pNode=pNode-Next;

}

cout"数据文件保存成功!"endl;

}

Link Sort(Link Head)

{//我创建的是带头节点的链表。用直接插入法。

if((Head-Next==NULL)||(Head-Next-Next==NULL))//此步条件判断非常有价值。

{

cout"数据节点数少于2个,不用排序!"endl;

return Head;

}

//-----------第二步;

Link ptr;

Link ptr_F;

Link ptr_N;

ptr=Head-Next-Next;

ptr_F=Head;

Head-Next-Next=NULL;//到此,分成了两个链表。

//第三步。

while(ptr)

{

ptr_N=ptr-Next;

ptr_F=Head;//ptr_F的归位。

while(ptr_F-Next)

{

if(ptr-m_Wageptr_F-Next-m_Wage)

{

ptr-Next=ptr_F-Next;

ptr_F-Next=ptr;

break;

}//if

else

{

ptr_F=ptr_F-Next;

}

}//while(ptr_F-Next)

if(ptr_F-Next==NULL)

{

ptr-Next=ptr_F-Next;

ptr_F-Next=ptr;//表示插到有序链表的最后面了。

}

ptr=ptr_N;//归位,准备下一次排序。

}//while(ptr)

cout"从高到低,排序成功!"endl;

return Head;

}

int main()

{

Link Head=0;

Head=Create(Head);

fstream iofile;

iofile.open("d:\\iofile.txt",ios_base::in|ios_base::out|ios_base::app);//文件以三种方式打开。

if(!iofile)

{

cout"打开文件失败!"endl;

return -1;

}

int menu;

while(1)

{

cout"*****************************************************"endl;

cout"*====================菜单选顶=======================*"endl;

cout"*===================================================*"endl;

cout"* 1.注册职工 2.修改信息 3.删除信息 4.信息查询 *"endl;

cout"* 5.保存文件 6.工资排行 7.信息显示 0.退出系统 *"endl;

cout"*****************************************************"endl;

coutendl"请选择相应操作菜单项:";

cinmenu;

while(cin.fail())

{

cout"请选择正确的菜单选项。"endl;

cin.clear();

fflush(stdin);

cinmenu;

}

switch(menu)

{

case 0:

cout"成功退出系统!"endl;

return 0;

case 1:

Head=Add(Head);

break;

case 2:

Head=Modify(Head);

break;

case 3:

Head=Del(Head);

break;

case 4:

Search(Head);

break;

case 5:

Save_ByFile(Head,iofile);

break;

case 6:

Sort(Head);

break;

case 7:

Display_List(Head);

break;

default:

cout"请选择正确的菜单项进行操作。多谢合作!"endl;

}

}

Release(Head);

iofile.close();

return 0;

}

求C语言 工资管理系统 原代码

#include iostream

#include string

#define MaxHEAP 100

using namespace std;

class Elem{

private:

int objectID;

int priority;

string proName;

public:

Elem(int objectID=0,int priority=0){

setID(objectID);

setPri(priority);

setProN(proName);

}

int getID(){

return objectID;

}

int getPri(){

return priority;

}

string getProN(){

return proName;

}

void setID(int id){

objectID=id;

}

void setPri(int pri){

priority=pri;

}

void setProN(string s)

{

proName=s;

}

};

class Heap

{

private:

Elem items[MaxHEAP];

int size;

public :

Heap(){

Elem items[MaxHEAP];

setSize(0);}

void setSize(int sz)

{size=sz;}

int heapIsEmpty(){

return size==0;

}

void heapInsert(Elem newItem)

{if(sizeMaxHEAP)

{

items[size]=newItem;

int place=size;

int parent=(place-1)/2;

while((parent=0)(items[parent].getPri()items[place].getPri()))

{

Elem temp=items[parent];

items[parent]=items[place];

items[place]=temp;

place=parent;

parent=(place-1/2);

}

++size;

}

heapRebuild(0);

}

Elem heapDelete(int ID)

{

Elem rootItem;

if(!heapIsEmpty())

{

for(int i=0;isize;i++)

if(items[i].getID()==ID)

{rootItem=items[i];

swap(items[i],items[0]);

}

items[0]=items[--size];

heapRebuild(0);

}

else cout"\n错误:目录为空"endl;

return rootItem;

}

void heapInit(){

setSize(0);

cout"空的项目"endl;}

void heapView(){

if(size==0){

cout"空的项目!"endl;

}

else{

cout"共有项目数: "sizeendl;

for(int ct=0;ctsize;ct++){

cout"ID: "items[ct].getID()" 优先级: "items[ct].getPri()

" 工资数目: " items[ct].getProN()endl;

}

}

}

void search(int ID)

{ int N=0;

for(int i=0;isize;i++)

if(items[i].getID()==ID)

{N++;

cout"ID: "items[i].getID()" 优先级: "items[i].getPri()

" 名称: " items[i].getProN()endl; }

if(!N) cout"未找到匹配的ID"endl;

}

void heapRebuild(int root)

{

int child=2*root+1;

if(childsize)

{

int rightChild=child+1;

if((rightChildsize)(items[rightChild].getPri()=items[child].getPri()))

{child=rightChild;

}

if(items[root].getPri()=items[child].getPri())

{

Elem temp=items[root];

items[root]=items[child];

items[child]=temp;

heapRebuild(child);

}

}

}

};

class priQueue

{private:

Heap h;

public:

priQueue(){

Heap();

}

int priIsEmpty(){

return h.heapIsEmpty();

}

void priInit(){

h.heapInit();

}

void priInsert(Elem newItem){

h.heapInsert(newItem);

}

Elem priDelete(int ID){

return h.heapDelete(ID);

}

void priView(){h.heapView();

}

void search(int ID)

{

h.search(ID);

}

};

void showMenu(){

cout"------------------------------------------------"endl;

cout"-----------------*工资管理系统*-----------------"endl;

cout"------------------------------------------------"endl;

cout" 1.重置"endl;

cout" 2.输入"endl;

cout" 3.删除"endl;

cout" 4.查询"endl;

cout" 5.打印"endl;

cout" 0.退出"endl;

cout"------------------------------------------------"endl;

}

void showTip(){

cout"---------------------------------^_^--操作完成!"endl;

cout"------------------------------------选择0-5继续"endl;

}

int main(){

string i="-1";

int ID,PRI;

string proName;

Elem in;

priQueue PQ;

PQ.priInit();

system("cls");

showMenu();

cout"选择菜单中的数字以便处理数据!"endl;

cini;

system("cls");

while(i!="0")

{ if(i=="1")

{ system("cls");

showMenu();

cout"你选择了1,项目将全部清空:"endl;

PQ.priInit();

showTip();

}

else if(i=="2")

{system("cls");

showMenu();

cout"你选择了2,输入ID,优先级,工资"endl;

cout"输入 ID(数字):"endl;

cinID;

cout"输入优先级(数字):"endl;

cinPRI;

cout"输入工资数目(数字):"endl;

cinproName;

in.setID(ID);

in.setPri(PRI);

in.setProN(proName);

PQ.priInsert(in);

showTip();

}

else if(i=="3")

{system("cls");

showMenu();

cout"你选择了3,请选择你要删除的ID号"endl;

cinID;

PQ.priDelete(ID);

showTip();

}

else if(i=="4")

{system("cls");

showMenu();

cout"你选择了4,输入要查找的项目ID号"endl;

cinID;

PQ.search(ID);

showTip();

}

else if(i=="5")

{system("cls");

showMenu();

cout"你选择了5,整个系统工资情况显示如下:"endl;

PQ.priView();

showTip();

}

else {

system("cls");

showMenu();

cout"无效输入!"endl;

}

cini;

system("cls");

}

return 0;

}


文章题目:go语言职工管理系统代码,go语言简单代码
本文来源:http://ybzwz.com/article/hccshp.html