C语言职工管理系统设计

C语言职工管理系统设计,第1张

概述本文实例为大家分享了C语言职工管理系统设计代码,供大家参考,具体内容如下

本文实例为大家分享了C语言职工管理系统设计代码,供大家参考,具体内容如下

代码如下:

#include<stdio.h>#include<stdlib.h>#include <string.h>struct Worker{  int ID;//工号  char name[16];//姓名  char sex[8];//性别  int age;//年龄  char edu_exp[32];//学历  int wage;//工资  char adress[32];//地址  char phong[16];//电话  Worker* next;};//创建表头Worker m_head = { 0 };//用户输入信息int user_input(Worker* w){  printf("ID:");  scanf("%d",&w->ID);  getchar();//吸收回车字符  printf("name:");  gets_s(w->name);  printf("sex:");  gets_s(w->sex);  printf("age:");  scanf("%d",&w->age);  getchar();//吸收回车字符  printf("edu_exp:");  gets_s(w->edu_exp);  printf("wage:");  scanf("%d",&w->wage);  getchar();//吸收回车字符  printf("adress:");  gets_s(w->adress);  printf("phone:");  gets_s(w->phong);  return 0;}//添加对象voID add(Worker* w){  w->next = m_head.next;  m_head.next = w;}//按插入对象int insert(Worker* w){  Worker* cur = m_head.next; // 当前节点current  Worker* pre = &m_head; // 上一个节点prevIoUs  while (cur)  {    if (w->ID < cur->ID) // 找到这个位置      break;    pre = cur;    cur = cur->next; // 找到最后一个对象  }  // 插入到pre节点的后面  w->next = pre->next;  pre->next = w;  return 0;}//删除对象int remove(int ID){  Worker* cur = m_head.next;//当前节点为第一个对象  Worker* pre = &m_head;//当前节点的前一个节点,为头节点,指向第一个对象  while (cur)  {    if (ID == cur->ID)//找到要删除的节点    {      pre->next = cur->next;      free(cur);//删除该节点      return 1;//成功删除返回1    }    pre = cur;    cur = cur->next;  }  return 0;}//查找对象int find(int ID){  Worker* p = m_head.next;  while (p)  {    if (ID == p->ID)    {      printf("ID:%d\nname:%s\nSex:%s\nAge:%d\nEdu-exp:%s\nWage:%d\nAdress:%s\nPhone:%s\n",p->ID,p->name,p->sex,p->age,p->edu_exp,p->wage,p->adress,p->phong);      return 1;//找到目标返回1    }    p = p->next;  }  return 0;}//遍历voID show_all(){  Worker* p = m_head.next;  if (!p)  {    printf("暂无员工信息!\n");    return;  }  printf("工 号    姓 名   性 别   年 龄  学 历  工 资  住 址      电 话\n");  printf("----------------------------------------------------------------\n");  while (p)  {    printf("%d   %s  %s  %d  %s %d %s   %s\n",p->phong);    p = p->next;  }}//向文件存入数据int save(){  const char* filename = "F:\data.txt";  file* fp = fopen(filename,"a");  if (fp == NulL)  {    printf("can not open the file....");    exit(0);  }  Worker* p = m_head.next;  while (p)  {    fprintf(fp,"\r");    fprintf(fp,"%d   ",p->ID);    fprintf(fp,"%s   ",p->name);    fprintf(fp,p->sex);    fprintf(fp,p->age);    fprintf(fp,p->edu_exp);    fprintf(fp,p->wage);    fprintf(fp,p->adress);    fprintf(fp,p->phong);    fprintf(fp,"\t\r\n");    p = p->next;  }  fclose(fp);  return 0;}//修改对象voID rewrite(int ID){  Worker* p = m_head.next;  while (p)  {    if (ID == p->ID)    {      user_input(p);    }    p = p->next;  }}//主菜单voID List(){  Worker* w = NulL;  char key;  while (1)  {    do    {      system("cls");      printf("*******************************************************\n");      printf("*         主菜单 *** 作界面           *\n");      printf("*                           *\n");      printf("* 1.录入职工信息                   *\n");      printf("* 2.浏览职工信息                   *\n");      printf("* 3.查询职工信息                   *\n");      printf("* 4.删除职工信息                   *\n");      printf("* 5.修改职工信息                   *\n");      printf("* 6.使用说明                     *\n");      printf("* 7.退出                       *\n");      printf("*                           *\n");      printf("*******************************************************\n");      key = getchar();    } while (key != '1'&&key != '2'&&key != '3'&&key != '4'      &&key != '5'&&key != '6'&&key != '7');    switch (key)    {    case '1':system("cls");      while (1)      {        Worker* w = (Worker*)malloc(sizeof(Worker));        user_input(w);        insert(w);        if (getchar() == 'N')        {          break;        }      }      save();      free(w);      break;    case '2':system("cls");      show_all();      system("pause");      break;    case '3':system("cls");      if (!m_head.next)      {        printf("暂无员工信息!\n");        system("pause");        break;      }      while (1)      {        int n;        printf("---------------------------------\n");        printf("请输入要查找的ID号:");        scanf("%d",&n);        if (!find(n))        {          printf("找不到ID号为%d 的职工信息...\n",n);        }        char ch = getchar();        if (ch == 'N')        {          break;        }      }      break;    case '4':system("cls");      if (!m_head.next)      {        printf("暂无员工信息!\n");        system("pause");        break;      }      while (1)      {        int n;        printf("---------------------------------\n");        printf("请输入要删除的ID号:");        scanf("%d",&n);        if (remove(n))        {          printf("成功删除ID号为%d的职工信息.\n",n);        }        else          printf("无法删除ID号为%d的职工信息.\n",n);        char ch = getchar();        if (ch == 'N')//摁N退出        {          break;        }      }      break;    case '5':system("cls");//      if (!m_head.next)      {        printf("暂无员工信息!\n");        system("pause");        break;      }      while (1)      {        int n;        printf("请输入要修改的ID号:\n");        scanf("%d",&n);        printf("请修改:\n");        rewrite(n);        if (getchar() == 'N')        {          break;        }      }      break;    case '6':system("cls");      printf("职工系统使用说明:摁相应数字进入相应的子菜单,若想退出则摁N\n开始无数据,需要先进行录入.\n");      system("pause");      break;    case '7':system("cls");//      return;      break;    }  }}int main(){  List();  return 0;}

这是一个简单的小例子,主要是给大家一些思路,我这里只是简单的写了保存输入的数据到文件中,你也可用写一个从文件中读取数据到控制台,并且可以通过链表进行修改.这就麻烦一点,但是思路很简单.有兴趣的同学可以do better.

推荐几篇文章:

C++实现简单的图书管理系统

C++实现简单的职工信息管理系统

C++基础学生管理系统

总结

以上是内存溢出为你收集整理的C语言职工管理系统设计全部内容,希望文章能够帮你解决C语言职工管理系统设计所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1245943.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存