C语言课程设计——工资管理系统

不讲废话,直接上代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 100                   //最大员工人数
int NN;                         //实际员工人数
struct employee
{char num[6];                 //工号char name[8];                //姓名char sex[4];              //性别char unit[20];              //单位char tele[15];              //电话int base;                  //基本工资//int jt;                     //津贴int kk;                     //扣款int sfgz;                   //实发工资
}emp[N];
void Info_In();                 //导入员工工资信息
void Info_Save();               //保存工资信息
void Info_Locate();             //查找
void Info_Append();             //新增工资信息
void Info_Modify();             //信息修改
void Info_Delete();             //删除工资信息
void display();                 //显示所有员工工资信息
void disp_row(struct employee temp);//显示一个员工信息
void Disp_Title();              //显示表头
void disp_str(char ch,int n);   //显示n个字符信息//系统主模块
int main()
{int choice;Info_In();  //导入员工信息文件while(1){printf("\n\n");disp_str(' ',35);printf("工资管理系统\n");disp_str('*',92);putchar('\n');disp_str(' ',36);printf("1.显示工资信息\n");disp_str(' ',36);printf("2.新增工资信息\n");disp_str(' ',36);printf("3.查找工资信息\n");disp_str(' ',36);printf("4.修改工资信息\n");disp_str(' ',36);printf("5.删除工资信息\n");disp_str(' ',36);printf("6.退出\n");disp_str('*',92);putchar('\n');printf("请输入代码选择(1-6): ");scanf("%d",&choice);getchar();switch(choice){case 1:display();break;case 2:Info_Append();break;case 3:Info_Locate();break;case 4:Info_Modify();break;case 5:Info_Delete();break;case 6:Info_Save();printf("谢谢使用!\n");exit(0);default:system("cls");continue;}}
}//导入员工信息
void Info_In()
{int n=0;struct employee temp;FILE *fp;if((fp=fopen("工资.txt","r"))==NULL){printf("can't open file!\n");return ;}while(fscanf(fp,"%s%s%s%s%s%d%d%d%d",temp.num,temp.name,temp.sex,temp.unit,temp.tele,&temp.base,&temp.jt,&temp.kk,&temp.sfgz)!=EOF)emp[n++]=temp;NN=n;printf("系统工资信息已导入!共 %d 人!\n",NN);}//显示信息表头
void Disp_Title()
{printf("%-6s%-8s %-4s %-15s  %-11s %-10s %-7s%-7s%-7s\n","工号","姓名","性别","单       位","电   话 ","基本工资","津贴","扣款"," 实发工资");
}//显示一条信息
void disp_row(struct employee temp)
{printf("%-6s",temp.num);printf("%-8s ",temp.name);printf("%-4s ",temp.sex);printf("%-15s  ",temp.unit);printf("%-11s ",temp.tele);printf("%-10d ",temp.base);printf("%-8d ",temp.jt);printf("%-8d  ",temp.kk); printf("%-8d\n",temp.sfgz);       }//保存工资信息
void Info_Save()
{FILE *fp;int i=0,k=0;if((fp=fopen("工资.txt","w"))==NULL){printf("can't open file!\n");return ;}while(i<NN ){fprintf(fp,"%-6s %-8s %-4s %-20s %-11s %-10d %-8d %-8d %-8d\n",emp[i].num,emp[i].name,emp[i].sex,emp[i].unit,emp[i].tele,emp[i].base,emp[i].jt,emp[i].kk,emp[i].sfgz);i++;}printf("系统工资信息已保存!共 %d 人!\n",NN);fclose(fp);
}//显示所有员工工资信息
void display()
{char ch;int i,n=0;printf("\n\n");printf("系统共有%d个员工工资信息\n",NN);disp_str('*',92);putchar('\n');Disp_Title();for(i=0;i<NN;i++){disp_row(emp[i]);if((i+1)%10==0)           //每屏显示10条信息{disp_str('*',92);printf("\n");printf("按回车键继续显示下屏,按其他键结束显示!\n");printf("请按键......");ch=getchar();if(ch!='\n')break;}}disp_str('*',92);printf("\n\n工资信息显示结束,按任意键键继.....");getchar();system("cls");return ;
}//显示n个字符信息
void disp_str(char ch,int n)
{int i;for(i=0;i<n;i++)printf("%c",ch);return ;
}//新增员工工资信息
void Info_Append()
{struct employee temp;char ch='Y',num[6];int i,flag;while(ch=='Y'||ch=='y'){printf("\n\n");flag=0;printf("请输入新增员工个人信息\n\n");printf("工号: ");gets(num);for(i=0;i<NN;i++)if(strcmp(num,emp[i].num)==0) flag=1;if(!flag){strcpy(temp.num,num);printf("姓名: ");gets(temp.name);printf("性别: ");gets(temp.sex);printf("单位: ");gets(temp.unit);printf("电话: ");gets(temp.tele);printf("基本工资: ");scanf("%d",&temp.base);printf("津贴: ");scanf("%d",&temp.jt);printf("扣款: ");scanf("%d",&temp.kk);getchar();temp.sfgz=temp.base+temp.jt-temp.kk;emp[i]=temp;NN++;Info_Save();    //保存系统信息printf("是否继续输入信息(Y/N):");scanf("%c",&ch);getchar();continue;}else{printf("系统已有工号为 %s 的员工!请重新编号!\n\n",num);return;}}return ;
}//工资信息查找
void Info_Locate()
{char name[8],num[6];int i,n=0,flag,ch;while(1){flag=0;putchar('\n');disp_str(' ',18);printf("查询员工信息\n");disp_str('*',92);putchar('\n');disp_str(' ',17);printf("1.按名字查询\n");disp_str(' ',17);printf("2.按工号查询\n");disp_str(' ',17);printf("3.返回上一层\n");disp_str('*',92);putchar('\n');printf("请输入代码选择(1-3):");scanf("%d",&ch);getchar();if(ch==1){printf("请输入要查找的姓名:");gets(name);for(i=0;i<NN;i++)if(strcmp(emp[i].name,name)==0){flag=1;putchar('\n');Disp_Title();disp_row(emp[i]);}if(!flag)printf("没有找到符合的记录!\n");printf("\n按任意键返回...");getchar();}else if(ch==2){printf("请输入要查找的工号:");gets(num);for(i=0;i<NN;i++){if(strcmp(emp[i].num,num)==0){flag=1;putchar('\n');Disp_Title();disp_row(emp[i]);}}if(!flag)printf("没有找到符合的记录!\n");printf("\n按任意键返回...");getchar();         }else if(ch==3){system("cls");return;}}
}
//工资信息修改(工号不可修改)
void Info_Modify()
{char num[6];int i,flag,ch;while(1){flag=0;printf("请输入待修改员工工号:");gets(num);for(i=0;i<NN;i++)if(strcmp(num,emp[i].num)==0) {flag=1;break;}if(flag){printf("该员工信息为:\n");Disp_Title();disp_row(emp[i]);printf("\n请输入新的信息:\n");printf("姓名: ");gets(emp[i].name);printf("性别: ");gets(emp[i].sex);printf("单位: ");gets(emp[i].unit);printf("电话: ");gets(emp[i].tele);printf("基本工资: ");scanf("%d",&emp[i].base);printf("津贴: ");scanf("%d",&emp[i].jt);printf("扣款: ");scanf("%d",&emp[i].kk);getchar();emp[i].sfgz=emp[i].base+emp[i].jt-emp[i].kk;printf("修改后的信息如下:\n");disp_row(emp[i]);Info_Save(); //保存系统信息}elseprintf("该员工不存在!\n");printf("继续修改(Y/N)?");ch=getchar();getchar();if(ch!='Y' && ch!='y')  break;}
}//工资信息删除
void Info_Delete()
{char num[6];int i,j,flag,ch;while(1){flag=0;printf("请输入待删除员工工号:");gets(num);for(i=0;i<NN;i++)if(strcmp(num,emp[i].num)==0) {flag=1;break;}if(flag){printf("该员工信息为:\n");Disp_Title();disp_row(emp[i]);printf("确认删除(Y/N)?  ");ch=getchar();getchar();if(ch=='Y' || ch=='y') {for(j=i;j<NN-1;j++)emp[j]=emp[j+1];NN--;printf("删除成功!\n");Info_Save(); //保存系统信息}break;}else{printf("该员工不存在!\n");break;}}
}

txt文档
1001 张三 男 安大 13905551234 10000 1000 100 10900
1002 李四 女 合工大 13905551235 2000 200 20 2180
1003 王五 男 山东大学 13905551236 4000 400 40 4360
1005 方七 男 上海大学 13905551238 3050 35 10 3075
1006 赵八 男 西北大学 13905551239 6000 600 60 6540
1010 LILI nan nu 321 3000 300 30 3270

正文:
1.外部函数
(1)导入员工信息

(2)显示信息表头

(3)显示一条信息

(4)保存工资信息

(5)显示所有员工工资信息

(6)显示n个字符

(7)新增员工工资信息

(8)工资信息查找

(9)工资信息修改

(10)工资信息删除

2.main函数
程序是把main函数放在前面,放前放后并不影响,大部分c编译器默认先编译main函数,作为入口。

3.运行截图



思路清晰,很简单,先从外部功能函数写起,一点一点写,如有问题请私信博主。

C语言课程设计——工资管理系统相关推荐

  1. 销售管理c语言程序设计,C语言课程设计销售管理系统

    C语言课程设计销售管理系统 C语言课程设计 题 目 商品销售系统 指导教师 曹东燕 学生姓名 刘伟 张新星 马国文 学 号 200900804072 200901802005 200900804051 ...

  2. 网吧管理系统C语言作业,C语言课程设计-网吧管理系统.doc

    C语言课程设计-网吧管理系统 <通信工程专业C语言课程设计> 报 告 专 业: 通信工程 班 级: 0802 姓 名: 赵 松 指导教师: 丁 雄 二00九 年 十二 月 二十五 日 目 ...

  3. c语言程序设计书店销售管理系统,C语言课程设计-书店管理系统

    <C语言课程设计-书店管理系统>由会员分享,可在线阅读,更多相关<C语言课程设计-书店管理系统(25页珍藏版)>请在人人文库网上搜索. 1.计算机程序设计计算机程序设计(C(C ...

  4. c语言课程设计人事管理,C语言课程设计-人事管理系统(65页).doc

    C语言课程设计-人事管理系统(65页) C语言课程设计 --人事管理系统 来自资料搜索网() 海量资料下载 人事管理管理系统 [要求] 某高校主要人员有:在职人员(行政人员.教师.一般员工).退休人员 ...

  5. c语言编程票务系统,C语言课程设计票务管理系统

    C语言课程设计票务管理系统 C语言课程设计1西安交通大学城市学院C语言程序设计课程设计报告题目图书信息管理系统专业自动化班级自动化101姓名陈蕾完成日期2012年5月31日C语言课程设计2目录第一章项 ...

  6. c语言课程设计图书管理系统

    数据结构c语言课程设计 图书管理系统 我做的是百度文库的第28题,目前没有报错,正常运行,但是还有一点小bug.代码很多地方写的不是很好,请多多包涵. 账号1,密码1,为管理员账号:其他账号2,3,4 ...

  7. c语言课程设计作业图书管理系统,C语言课程设计图书馆管理系统程序代码.doc

    C语言课程设计图书馆管理系统程序代码.doc includestdio.h includewindows.h includestring.h includeconio.h define M 100 s ...

  8. c语言大作业书店图书管理系统,c语言课程设计 书店管理系统.pdf

    c语言课程设计 书店管理系统 计算机程序设计(C语言) 课程设计报告 题目:图书管理系统 学院: 专业: 班级: 学号: 姓名: 指导教师: 设计日期:2013年06月24 日 一.选题背景: 设计一 ...

  9. c语言课程设计订单管理系统,C语言课程设计订单管理系统讲解.doc

    C语言课程设计订单管理系统讲解 C语言课程设计 随米打印订单管理系统 学 院: 计算机与信息科学学院 学生姓名: 谢润发 指导教师: 王新祥 职称 教授 专 业: 网络工程 班 级: 1501 完成时 ...

  10. c语言课程设计人事部门,C语言课程设计人事管理系统

    <C语言课程设计人事管理系统>由会员分享,可在线阅读,更多相关<C语言课程设计人事管理系统(36页珍藏版)>请在人人文库网上搜索. 1.C语言课程设计人事管理系统 题目要求:人 ...

最新文章

  1. 如何访问docker内php,docker中容器之间如何访问
  2. ​如何设计一个安全可靠的 API 接口?
  3. P2502 [HAOI2006]旅行
  4. docker应用到生产环境的前提
  5. [转]独立窗口打开多个Excel文件
  6. 2018.11.03-dtoj-3130-流浪者(rover)
  7. boost::gil::scoped_channel_value用法的测试程序
  8. java中逗号怎么加_Java中如何将字符串从右至左每三位加一逗号
  9. Shiro学习总结(4)——Shrio登陆验证实例详细解读
  10. Bootstrap Table事件
  11. android apk 微信登入_Android集成微信登录的步骤详解
  12. 分析DuxCms之AdminUserModel
  13. 快速查看南京商品房销售信息
  14. 测试结果OK、POK、NG、NT的意义
  15. 磁盘显示数据错误循环冗余检查资料怎么寻回
  16. TiPLM---产品全生命周期管理系统
  17. 小僧去接众僧来赴道 水浒
  18. maven 编译出现错误
  19. [Win32]鼠标的基本概念以及击中测试
  20. WORD2003相关问题

热门文章

  1. 基于jsp java的员工绩效考核管理系统
  2. php 漏洞扫描,Webvulscan:一款基于PHP的漏洞扫描器
  3. C++类库Pugixml与rapidxml性能评测
  4. 安卓天天练练(五)CompoundButton
  5. 计算机类专业用五笔输入法,专业英文拼音五笔打字训练
  6. qq android 哪个版本好用吗,Android QQ轻聊版好用吗?
  7. 2015年蓝桥杯A组C/C++ 第三题奇妙的数字
  8. 怎样用比较器实现信号的衰减和饱和_小器件大功用之变频器输入滤波器
  9. 施耐德 m340 编程手册_施耐德变频器学习之参数配置
  10. 基于JAVA超市自助购物系统的设计与实现