目录

1.前言

2.实现功能

3.流程图

4.源码

5.总结


1.前言

距学习C语言已经相当长的一段时间了,编写一个小项目,功能实现可能不是很完美,算是复习和记录吧!

2.实现功能

0.录入职工信息                     
1.按工资高低排序
2.修改职工信息
3.显示职工信息
4.删除职工信息
5.查询职工信息
6.退出系统

职工号是随机生成的

3.流程图

4.源码

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#define MAXSIZE 100  //符号常量 用来申请100个单元的存储空间
#define N 2          //创建数组个数,可更改
int length=0;        //全局变量,用来表示当前存储记录的条数
struct employee
{int No;               //职工号char name[20];        //姓名char sex[10];         //性别char age[10];         //年龄char degree[10];      //学历 char salary[20];      //工资 char addr[35];        //住址 char tel[20];         //电话
}em[N];          int select(struct employee ly[])
{int i,index=-1;char name[20];for(i=0;i<length;i++)if(strcmp(ly[i].name,name)==0)       //strcmp()比较字符串的大小,如果返回值为0则表示2个字符串相等{index=i;break;}return index;
}//录入职工信息
void add(struct employee ly[])
{int i,number;printf("请输入录入信息的职工人数:");scanf("%d",&number);for(i=0;i<number;i++){srand(time(NULL));ly[i].No=rand()%1000+2014000;   //随机数范围2014000~2014999if(ly[i].No!=ly[i-1].No)printf("\n");printf("随机生成的职工号:%d\n",ly[i].No);if(MAXSIZE==length) return;                  //如果表已经存满,则不能添加记录printf("请输入姓名:");scanf("%s",ly[length].name);printf("请输入性别:");scanf("%s",ly[length].sex);printf("请输入年龄:");scanf("%s",ly[length].age);printf("请输入学历:");scanf("%s",ly[length].degree);printf("请输入工资:");scanf("%s",ly[length].salary);printf("请输入住址:");scanf("%s",ly[length].addr);printf("请输入电话:");scanf("%s",ly[length].tel);length++;                 // 添加一个记录,实际长度就+1}
}//信息排序
void rank(struct employee ly[])    //按工资由大到小排序
{int i,j;for(i=0;i<N-1;i++){for(j=0;j<N-1-i;j++){if(ly[j].salary<ly[j+1].salary){em[i]=ly[j];ly[j]=ly[j+1];ly[j+1]=em[i];      }}}for(i=0;i<N;i++){printf("\n %d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t\n",ly[i].No,ly[i].name,ly[i].sex,ly[i].age,ly[i].degree,ly[i].salary,ly[i].addr,ly[i].tel);}
}//显示职工信息
void show(struct employee ly[])
{  int i;if(length==0)  {printf("空表!");return ;}printf(" \n 职工号\t\t姓名\t性别\t年龄\t学历\t工资\t住址\t\t电话\n");for(i=0;i<length;i++)printf("\n %d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t\n",ly[i].No,ly[i].name,ly[i].sex,ly[i].age,ly[i].degree,ly[i].salary,ly[i].addr,ly[i].tel);
}//删除职工信息
void deleteByname(struct employee ly[])
{int i;char name[20];printf("请输入你要删除记录的姓名:");scanf("%s",name);if(i==-1) return;for(i=0;i<length-1;i++)ly[i]=ly[i+1];length--;          //删除成功后,实际长度-1
}//修改职工信息
void update(struct employee ly[])
{int i;char name[20];printf("请输入你要修改已记录的姓名:");scanf("%s",name);if(i==-1) return;for(i=0;i<length-1;i++)ly[i]=ly[i+1];length--;printf("请输入新的职工号:");scanf("%d",&ly[length].No);printf("请输入新的姓名:");scanf("%s",ly[length].name);printf("请输入新的性别:");scanf("%s",ly[length].sex);printf("请输入新的年龄:");scanf("%s",ly[length].age);printf("请输入新的学历:");scanf("%s",ly[length].degree);printf("请输入新的工资:");scanf("%s",ly[length].salary);printf("请输入新的住址:");scanf("%s",ly[length].addr);printf("请输入新的电话:");scanf("%s",ly[length].tel);length++;
}//查询职工信息
int chaxun(struct employee ly[])
{int i,j=0;int num;char find[30];    printf("\n提示:输入\t 0--退出\t1--按学历查询\t 2--按姓名查询\t 3--按电话查询\n");printf("请选择:");scanf("%d",&num);for(i=0;i<length;i++){if(num==1)      //按学历查询{printf("\n请输入你要查询的学历:");scanf("%s",find);if(strcmp(ly[i].degree,find)==0){j=1;printf("\n 职工号\t\t姓名\t性别\t年龄\t学历\t工资\t住址\t\t电话\n");printf("\n %d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t\n",ly[i].No,ly[i].name,ly[i].sex,ly[i].age,ly[i].degree,ly[i].salary,ly[i].addr,ly[i].tel);}    }else if(num==2)      //按职工姓名查询{printf("\n输入你要查询的职工姓名:");scanf("%s",find);if(strcmp(ly[i].name,find)==0) {j=1;printf("\n 职工号\t\t姓名\t性别\t年龄\t学历\t工资\t住址\t\t电话\n");printf("\n %d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t\n",ly[i].No,ly[i].name,ly[i].sex,ly[i].age,ly[i].degree,ly[i].salary,ly[i].addr,ly[i].tel);}}else if(num==3)      //按职工电话查询{printf("\n输入你要查询的电话:");scanf("%s",find);if(strcmp(ly[i].tel,find)==0) {j=1;printf("\n 职工号\t\t姓名\t性别\t年龄\t学历\t工资\t住址\t\t电话\n");printf("\n %d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t\n",ly[i].No,ly[i].name,ly[i].sex,ly[i].age,ly[i].degree,ly[i].salary,ly[i].addr,ly[i].tel);}}else if (num==0)return 0;}return 0;
}//将职工信息写到文件中
void save(int n)      //保存n个记录
{ FILE *fp;int i;if((fp=fopen("employee.txt","wb"))==NULL) //以只写方式为输出打开一个二进制文件{ printf("\n不能打开文件\n");exit(0);}for(i=0;i<n;i++){if(fwrite(&em[i],sizeof(struct employee),1,fp)!=1){ printf("文件写入错误\n");}    }fclose(fp);
}int load() //加载信息
{ FILE *fp;int i;if((fp=fopen("employee.txt","rb"))==NULL){printf("\n不能打开文件\n");exit(0);}for(i=0;feof(fp);i++){fread(&em[i],sizeof(struct employee),1,fp);printf("\n %d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t\n",em[i].No,em[i].name,em[i].sex,em[i].age,em[i].degree,em[i].salary,em[i].addr,em[i].tel);}fclose(fp);return(i-1);
}//开始页面
void start()
{printf("\n                                时间:");system("date/t");printf("\t\t\t\t==============================================\n ");printf("\t\t\t\t                            \t\t  \n ");printf("\t\t\t\t                            \t\t  \n ");printf("\t\t\t\t\t|   欢迎访问职工管理系统!   |\t\t\t  \n ");printf("\t\t\t\t\t|                           |\t\t\t  \n ");printf("\t\t\t\t\t|   --------------------    |\t\t\t  \n ");printf("\t\t\t\t                            \t\t  \n ");printf("\t\t\t\t                            \t\t  \n ");printf("\t\t\t\t==============================================\n ");printf("\n");printf("\t\t\t\n                                        \t\t请按回车键进入系统......\n");getchar();system("cls");   //清屏
}//退出页面
void end()
{system("cls");printf("\t\t\t\t==============================================\n ");printf("\t\t\t\t                            \t\t  \n ");printf("\t\t\t\t                            \t\t  \n ");printf("\t\t\t\t\t|   感谢访问,欢迎下次光临! |\t\t\t  \n ");printf("\t\t\t\t\t|                           |\t\t\t  \n ");printf("\t\t\t\t\t|   --------------------    |\t\t\t  \n ");printf("\t\t\t\t                            \t\t  \n ");printf("\t\t\t\t                            \t\t  \n ");printf("\t\t\t\t==============================================\n ");printf("\n");printf("\t\t\t\n                                        \t\t请按任意键退出系统......\n");printf("\n                                时间:");system("date/t");
}//主菜单
void menum()
{printf("\t\t\t=======================职工信息管理系统=======================\n ");printf("\t\t\t==\t\t\t0.录入职工信息\t\t\t    ==\n ");printf("\t\t\t==\t\t\t1.按工资高低排序\t\t    ==\n ");printf("\t\t\t==\t\t\t2.修改职工信息\t\t\t    ==\n ");printf("\t\t\t==\t\t\t3.显示职工信息\t\t\t    ==\n ");printf("\t\t\t==\t\t\t4.删除职工信息\t\t\t    ==\n ");printf("\t\t\t==\t\t\t5.查询职工信息\t\t\t    ==\n ");printf("\t\t\t==\t\t\t6.退出系统\t\t\t    ==\n");printf("\t\t\t==============================================================\n ");printf("\n");
}//主函数
int main()
{int index=0;int result=0;struct employee d[MAXSIZE];   //定义了一个容量为100的数组start();menum();while(1){printf("\n请输入你的操作:");scanf("%d",&result);if(result==6){break;getchar();}switch(result){case 0:add(d);break;case 1:rank(d);break;case 2:update(d);break;case 3:show(d);break;case 4:deleteByname(d);break;case 5:chaxun(d);break;case 6:end();break;default: printf("提示:输入错误\n");}}getchar();end();return 0;
}

5.总结

程序设计是把我们所学的理论知识进行系统的总结并应用于实践的良好机会,有利于加强我们用知识理论来分析实际问题的能力,巩固了我们的理论知识,助于我们逻辑思维的形成,更可得是也锻炼了自己的耐心,为我们走向社会打下一个良好的基础。最后,希望自己能够脚踏实地,打好基础,并在这条路上走得更高,更远。

职工信息管理系统(C语言)相关推荐

  1. c语言课程设计 职工信息管理系统,C语言课程设计-职工信息管理系统程序设计.doc...

    C语言课程设计-职工信息管理系统程序设计 C语言课程设计报告 设计题目:职工信息管理系统程序设计 课程设计评语2 目 录3 1.课程论文题目4 2.程序设计思路4 3.功能模块图5 4.数据结构设计5 ...

  2. 职工信息管理系统c语言报告,职工信息管理系统(c语言实现)

    功能实现: (1)系统以菜单方式工作 (2)职工信息录入功能(职工信息用文件保存)--输入 (3)职工信息浏览功能--输出 (4)职工信息查询功能--算法 查询方式:按姓名查询/按职工号查询 (5)职 ...

  3. 职工信息管理程序设计c语言,C语言程序设计职工信息管理系统.docx

    C语言程序设计职工信息管理系统.docx 1 数信学院数信学院 课程设计报告课程设计报告 课程名称课程名称C C 语言程序设计语言程序设计_ _ 题目名称题目名称职工信息管理系统职工信息管理系统 学生 ...

  4. c语言结构体老师信息管理系统,C语言课程设计职工信息管理系统结构体数组实现程序源代码.doc...

    word格式 整理版 学习参考 //C语言课程设计 职工信息管理系统-结构体数组实现 #include #include #include struct employee { char num[10] ...

  5. c语言银行卡管理系统程序设计报告,《c语言程序设计》课程设计报告-职工信息管理系统.doc...

    <c语言程序设计>课程设计报告-职工信息管理系统.doc 还剩 24页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环 ...

  6. 员工任务管理系统c语言,C语言职工信息管理系统课程设计任务书.docx

    C语言课程设计任务书 一.题目:职工信息管理系统 二.目的和要求 目的:要求熟练掌握C语言的基本知识和编辑技能: 基本掌握结构化程序设计的基本思路和方法. 要求:设计一个职工信息管理系统,使之能提供以 ...

  7. 职工工资信息系统 c语言题,工资信息管理系统C语言设计.doc

    工资信息管理系统C语言设计 C语言课程实习报告 学 院: 工程学院 专 业: 岩土工程 班 级: 052052-33 学 号: 20051002623 姓 名: 刘恒 第一题:工资信息管理系统 一`题 ...

  8. c语言用链表写管理系统程序,c语言课程设计职工信息管理系统单链表实现程序源代码-20210401015126.docx-原创力文档...

    文档编制序号:[KKIDT-LLE0828-LLETD298-POI08] 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08] C语言课程设计职工信息管理系统单链表实现程序源代 ...

  9. C语言/C++常见习题问答集锦(五十二) 之职工信息管理系统

    C语言/C++常见习题问答集锦(五十二) 之职工信息管理系统 程序之美 用C语言,职工信息管理系统具体要求 1.基本信息:如工号.姓名.性别.年龄.学历.住址.电话号码.工资等. 2.各职工信息用结构 ...

  10. 用C语言,职工信息管理系统

    用C语言,职工信息管理系统具体要求 1.基本信息:如工号.姓名.性别.年龄.学历.住址.电话号码.工资等. 2.各职工信息用结构体来实现,建议使用链表来实现建立.删除.插入等操作. 3.需建立输出文件 ...

最新文章

  1. 设计模式C++实现(1)——工厂模式
  2. Linux 命令之 pwunconv -- 关闭投影密码
  3. 动态规划——环形子数组的最大和(Leetcode 918)
  4. 网络存储空间_Filecoin网络经济模型剖析
  5. 计算机大一笔试题,大学计算机基础(大一) 笔试题库
  6. python网络爬虫(一):网络爬虫科普与URL含义
  7. Bailian3709 2进制转化为3进制【进制】
  8. 关于《Linux多线程服务端编程:使用muduo C++网络库》的内容梳理
  9. vue自动化单元测试
  10. ce标志cad_欧盟CE认证标志大全(完全版)
  11. steam加速_《盗贼之海》发行之初荣登Steam榜首,UU加速器为您开黑提供保障
  12. 状态监测与故障智能诊断技术在能源动力机械内燃机的应用
  13. java逻辑面试题_java学习必备——java逻辑推理面试题
  14. 日历问题 —— C++
  15. dataframe画图
  16. Word、WPS 文字背景颜色无法去除
  17. 计算机论文鉴定表指导教师评语,毕业论文指导老师评语|毕业论文鉴定表评语...
  18. 用JavaScript实现烟花效果
  19. 魅族4usb计算机连接,魅族MX4手机如何连接电脑
  20. 破局模块总结 -- 宁向东的清华管理学课总结

热门文章

  1. DTI-CDF:一种基于混合特征预测药物靶点相互作用的级联深层森林模型
  2. 用户体验设计阅读笔记
  3. TOF测距功能的原理及使用方法
  4. pta.7-27冒泡法排序C语言
  5. 数据结构(Java):用单链表实现多项式相加
  6. android sdk下载代理设置
  7. 蓝桥杯 位平方和 Java
  8. Python基础语法(七)
  9. Chrome-手动安装罗技Flow scroll插件
  10. 安装了瑞友天翼4.0后出现了远程桌面无法连接的问题