#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct workers
{char jobNo[15];       //职工号char name[15];        //姓名char sex[15];         //性别char birthday[15];    //出生年月char degree[15];      //学历char position[15];    //职务 char salary[15];      //工资 char addr[15];        //住址 char tel[15];         //电话 };//类型定义语句
typedef struct node
{struct workers data;struct node *next;}Node;//添加信息函数     "尾插法建表"
void Add(Node *worker)
{Node *p, *q;char n[10]; q = worker; while (q->next != NULL){q = q->next;     }while (1){printf("提示:输入0返回主菜单!\n");printf("请输入职工号:");scanf("%s", n);if (strcmp(n, "0") == 0){break;}p = (Node *)malloc(sizeof(Node));strcpy(p->data.jobNo, n);printf("请输入姓名:");scanf("%s", p->data.name);printf("请输入性别:");scanf("%s", p->data.sex);printf("请输入出生年月:");scanf("%s", p->data.birthday);printf("请输入学历:");scanf("%s", p->data.degree);printf("请输入职务:");scanf("%s", p->data.position);printf("请输入工资:");scanf("%s", p->data.salary);printf("请输入住址:");scanf("%s", p->data.addr);printf("请输入电话:");scanf("%s", p->data.tel);printf("提示:已经完成一条记录的添加!");p->next = NULL;q->next = p;      q = p;        }}//修改职工信息函数
int  change(Node *worker)
{Node *p;char find[20];   p = worker->next;   if (p == NULL){printf("\n提示:没有资料可以修改!\n");return 0;}printf("请输入要修改的职工号");scanf("%s", find);while (p != NULL) {if (strcmp(p->data.jobNo, find) == 0){break;}p = p->next;}if (p!=NULL){int x;while (1){printf("完成修改请输入0,否则输入非0数字进行修改!");scanf("%d", &x);if (x == 0){break;}printf(" 请输入新职工号: ");scanf("%s", p->data.jobNo);printf(" 请输入新职工姓名: ");scanf("%s", p->data.name);printf(" 请输入新职工性别: ");scanf("%s", p->data.sex);printf(" 请输入新职工出生年月: ");scanf("%s", p->data.birthday);printf(" 请输入新职工学历: ");scanf("%s", p->data.degree);printf(" 请输入新职工职务: ");scanf("%s", p->data.position);printf(" 请输入新职工工资: ");scanf("%s", p->data.salary);printf(" 请输入新职工住址: ");scanf("%s", p->data.addr);printf(" 请输入新职工电话: ");scanf("%s", p->data.tel);printf(" \n提示:该职工资料已经修改!\n ");}}else printf("\n提示:没有你要修改的资料!\n ");
}//输出职工信息函数
int  Disp(Node *worker)
{Node *p;p = worker->next;if (p == NULL){printf(" \n提示:没有信息可以显示!\n ");return 0;}printf("\t\t\t\t显示结果\n");printf(" \n职工号   姓名 性别  出生年月    学历  职务  工资  住址  电话  \n ");while (p!=NULL)  {printf("\n %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t\n ", p->data.jobNo, p->data.name,p->data.sex, p->data.birthday, p->data.degree, p->data.position,p->data.salary, p->data.addr, p->data.tel);p = p->next;}}//查询职工信息函数: 按职工号查询 按职工姓名查询
int  Cha_xun(Node *worker)
{Node *p;int sel;char find[20]; p = worker->next;   if (p==NULL) {printf(" \n提示:没有资料可以查询!\n ");return 0;}printf("\n提示:\n 输入 0---- 退出\t 输入 1----按职工号查询\t 输入 2-----按职工姓名查询\n");printf("请选择:");scanf("%d", &sel);if (sel == 1){printf("\n请输入你要查询分类的职工号:");scanf("%s", find);while (p!=NULL)  {if (strcmp(p->data.jobNo, find) == 0){printf(" 职工号   姓名    性别  出生年月    学历  职务  工资  住址  电话 \n ");printf(" \n %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t\n ", p->data.jobNo, p->data.name,p->data.sex, p->data.birthday, p->data.degree, p->data.position,p->data.salary, p->data.addr, p->data.tel);}p = p->next;   }}else if (sel == 2){printf(" \n输入你要查询分类的职工姓名:");scanf("%s", find);while (p!=NULL){if (strcmp(p->data.name, find) == 0) {printf(" 职工号       姓名  性别  出生年月    学历  职务  工资  住址  电话 \n ");printf(" \n %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t \n ", p->data.jobNo, p->data.name,p->data.sex, p->data.birthday, p->data.degree, p->data.position,p->data.salary, p->data.addr, p->data.tel);}p = p->next;}}else if (sel == 0)return 0;}//删除职工信息函数
int  Delete(Node *worker)
{Node *p, *r;char find[10];p = worker->next;if (p == NULL){printf("提示:没有职工信息可以删除!\n ");return 0;}printf(" \n提示:请输入你要删除的职工号!\n ");scanf("%s", find);while (p != NULL){if (strcmp(p->data.jobNo, find) == 0){break;}p = p->next;}if (p!=NULL){r = worker;while (r->next != p){r = r->next;}r->next = r->next->next;    }
}//将职工信息保存到文件中
void save(Node *worker)
{int n;Node *p = NULL;FILE *fp;    printf("是否保存到文件?( 1-----保存!,0-----不保存! )");scanf("%d", &n);if (n == 1){if (worker->next == NULL){printf(" 没有记录!");}else{p = worker->next;}if ((fp = fopen(" 职工信息管理系统.txt ", " wb ")) == NULL)  {printf(" 文件不能打开!\n");     }while (p != NULL)   {fprintf(fp, " %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t ", p->data.jobNo, p->data.name, p->data.sex,p->data.birthday, p->data.degree, p->data.position, p->data.salary,p->data.addr, p->data.tel);        p = p->next; }fclose(fp);  }}//读取职工信息
void Du_qu(Node *worker)
{Node *p;FILE *fp; if ((fp = fopen("职工信息管理系统.txt", "rb")) == NULL)     {printf("文件不能打开!\n ");}p = worker->next;while (p!=NULL){fscanf(fp, " %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t ", p->data.jobNo, p->data.name, p->data.sex,p->data.birthday, p->data.degree, p->data.position, p->data.salary,p->data.addr, p->data.tel);     p=p->next;}fclose(fp);}//主函数实现
int main()
{Node *worker;int flag;worker = (Node*)malloc(sizeof(Node));worker->next = NULL; while(1){printf("\t职 工 信 息 管 理 系 统\n");printf("==================菜 单==================\n ");printf("1.输入职工信息\n ");printf("2.修改职工信息\n ");printf("3.浏览职工信息\n ");printf("4.查询职工信息\n ");printf("5.删除职工信息\n ");printf("6.读取职工信息\n ");printf("0.退出\n ");printf("输入你选择的序号:");scanf("%d", &flag);switch (flag){case 0:  printf(" \n提示:退出系统!\n ");  break;case 1:     Add(worker); save(worker);  break;    //添加职工信息,保存到文件中 case 2:  change(worker);  break;           //修改职工信息 case 3:  Disp(worker);  break;             //显示职工信息 case 4:  Cha_xun(worker);  break;           //查询职工信息 case 5:  Delete(worker);  break;          //删除职工信息 case 6:  Du_qu(worker);  break;             //读取职工信息 default: printf("提示:输入错误!\n ");}}}

C语言职工管理系统(带有报告)相关推荐

  1. c语言用数组编写学籍管理程序,c语言学籍管理系统实验报告.docx

    c语言学籍管理系统实验报告.docx 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3. ...

  2. c语言成绩管理系统开题报告,学生信息管理系统,开题报告(共篇).doc

    学生信息管理系统,开题报告(共篇).doc 学生信息管理系统,开题报告(共10篇) :开题 信息管理系统 报告 学生 论文开题报告有查重吗 居民信息网络管理系统 学生信息管理系统c语言 篇一:学生信息 ...

  3. C语言职工管理系统课程设计

    头文件 #include<stdio.h> #include<stdlib.h>//system,system #include<string.h>//strcmp ...

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

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

  5. C语言职工人事管理系统设计报告(附代码)‍超详细!!!

    目录 1.概述 1.1 设计思想 1.2 设计原则 1.3 课程设计报告内容及分工情况 1.3.1课程设计报告内容 1.3.2 课程设计分工情况 2.总体设计 2.1功能模块图 2.2 主函数 mai ...

  6. c语言班级管理系统需求分析报告,班级管理系统 C语言报告.doc

    班级管理系统 C语言报告 <软件工程与开发实践>软件设计报告题 目班级管理系统学 院计算机学院专 业计算机科学与技术班 级 学 号学生姓名 其他成员组 长 指导教师完成日期2012年6月 ...

  7. c语言银行卡管理系统程序设计报告,C语言课程设计报告(银行账户信息管理系统).doc...

    新疆大学学生课程设计论文 摘要 PAGE I 银行账户管理系统C语言程序设计 摘 要 银行账户管理系统是针对银行账户的日常管理而设计,操作方便而且界面简洁,使用较为简单的C语言作为编程语言,采用软件工 ...

  8. c语言社团管理系统实验报告,C语言课程设计大学社团管理系统

    <C语言课程设计大学社团管理系统>由会员分享,可在线阅读,更多相关<C语言课程设计大学社团管理系统(29页珍藏版)>请在人人文库网上搜索. 1.2010/5/29东北大学秦皇岛 ...

  9. c语言仓库管理系统实验报告,C语言课程设计仓库管理系统(最新整理)

    <C语言课程设计仓库管理系统(最新整理)>由会员分享,可在线阅读,更多相关<C语言课程设计仓库管理系统(最新整理)(12页珍藏版)>请在人人文库网上搜索. 1.includeC ...

最新文章

  1. [冲昏头脑]IDEA中的maven项目中学习log4j的日志操作
  2. 关掉linux下的讨厌的beep声
  3. numpy.loadtxt()用法
  4. indesign2020突然闪退_Adobe Photoshop 2020打不开,总是闪退,罪魁祸首在这里
  5. 智能车s3010舵机工作电压_全国大学生智能车竞赛决战南京信息工程大学
  6. STM32 串口接收流程-串口接收中断
  7. mysql dns反向解析_DNS练习之反向解析(示例代码)
  8. LINUX下载编译libgsm
  9. 【TiDB DevCon 2020】金融专题论坛演讲视频汇总
  10. 编译原理-第一节(东南大学廖力老师)
  11. PHP实现输入地址,获取当前位置的经纬度,$lng和$lat即为经纬度的返回值
  12. STEINS;GATE ELITE(中文名《命运石之门:精英》)游戏通关流程
  13. java随机生成26个大写字母
  14. 2022头像小程序源码+支持姓氏头像生成
  15. 用Python+HTML做的点名器
  16. 目前福岛高水平辐射量可能由2号反应堆释放
  17. 最长子序列DP和二分法
  18. 【Linux命令】modprobe命令
  19. 知识付费的七种变现方式
  20. 微型计算机定义,微处理器、微型计算机与微型计算机系统的定义

热门文章

  1. html5卡拉OK音乐播放器,QQ音乐播放器怎么打开卡拉OK模式
  2. [一分钟先生]于进才:绩效面谈的常用方法与技巧
  3. 【每天学点管理】—绩效面谈的两个技巧
  4. 屌丝还是文艺范儿:小米2 VS MX2
  5. Mansory设置控件时的约束问题
  6. WIFI菠萝 strip-n-inject插件安装与使用
  7. [ASP.NET网站开发] web程序设计,期末作业,问卷填写与学生选课管理系统(超简单,容易懂!课程考核必过)(使用内置数据库)
  8. 悄悄上微信,开源的摸鱼神器插件
  9. 最全前端面试问题及答案总结(转载自hawx1993)
  10. python源码下载