C语言职工信息管理系统源码

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

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
struct worker
{
  char ID[20];//工号
  char name[20];//姓名
  char sex[5];//性别
  char born[20];//生日
  char edu[20];//学历
  char position[20];//职务
  char wage[10];//工资
  char address[100];//住址
  char tel[15];//电话
}work[1000];
int n ; 

//文件读写模块
void read()//读入数据
{
  FILE *fp;
  int i = 0;
  if( (fp = fopen("d:\\date.txt","r")) == NULL )
  {
    printf("请在D盘根目录下新建一个文本文件,文件名为date\n\n\n");
    system("pause");
    system("cls");
    return ;
  }
  fscanf(fp,"%d\n",&n);
  while(i < n)
  {
    fscanf(fp,"%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n",work[i].ID,work[i].name,work[i].sex,work[i].born,work[i].edu,work[i].position,work[i].wage,work[i].address,work[i].tel);
    i ++;
  }
  fclose(fp);
}
void write()//写入数据
{
  FILE *fp;
  int i = 0;
  if( (fp = fopen("d:\\date.txt","w")) == NULL )
  {
    printf("无法打开文件!\n");
    return ;
  }
  fprintf(fp,"%d\n",n);
  while(i < n)
  {
    fprintf(fp,"%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n",work[i].ID,work[i].name,work[i].sex,work[i].born,work[i].edu,work[i].position,work[i].wage,work[i].address,work[i].tel);
    i ++;
  }
  fclose(fp);
} 

//输入模块
void input()// 从键盘输入
{
  int i;
  int flag;//标记工号是否已存在
  char c;//指令Y?N
  read();//输入数据前先将文件中原有的数据读入
  do
  {
    flag = 0;
    printf("\t\t请输入职工的工号:               \n\t\t");
    scanf("%s",work[n].ID);
    for(i = 0 ; i < n ; i ++)
    {
      if(strcmp(work[i].ID,work[n].ID) == 0)
      {
        flag = 1;
        break;
      }
    }
    if(flag)
    {
      printf("该工号已存在!\n\n");
      printf("\t\t是否继续输入?(Y/N): ");
      scanf("%*c%c",&c);
      if(c == 'N' || c == 'n') break;
      continue;
    }
    printf("\t\t请输入职工的姓名:               \n\t\t");
    scanf("%s",work[n].name);
    printf("\t\t请输入职工的性别:               \n\t\t");
    scanf("%s",work[n].sex);
    printf("\t\t请输入职工的出生年月:             \n\t\t");
    scanf("%s",work[n].born);
    printf("\t\t请输入职工的学历:               \n\t\t");
    scanf("%s",work[n].edu);
    printf("\t\t请输入职工的职务:               \n\t\t");
    scanf("%s",work[n].position);
    printf("\t\t请输入职工的工资:               \n\t\t");
    scanf("%s",work[n].wage);
    printf("\t\t请输入职工的住址:               \n\t\t");
    scanf("%s",work[n].address);
    printf("\t\t请输入职工的电话:               \n\t\t");
    scanf("%s",work[n].tel);
    printf("\t\t是否继续输入?(Y/N): ");
    scanf("%*c%c",&c);
    n ++;
  }while( c != 'N' && c != 'n');
  write();
  printf("\n\n数据已保存!\n\n");
} 

//显示模块
void output_inf(int id)
{
  printf("\t\t  工号: %s\n",work[id].ID);
  printf("\t\t  姓名: %s\n",work[id].name);
  printf("\t\t  性别: %s\n",work[id].sex);
  printf("\t\t出生年月: %s\n",work[id].born);
  printf("\t\t  学历: %s\n",work[id].edu);
  printf("\t\t  职务: %s\n",work[id].position);
  printf("\t\t  工资: %s\n",work[id].wage);
  printf("\t\t  住址: %s\n",work[id].address);
  printf("\t\t  电话: %s\n",work[id].tel);
  printf("\n\n\n");
}
void show()//显示所有职工信息
{
  int i;
  read();
  if(n == 0) printf("无记录!\n\n");
  else
    for(i = 0 ; i < n ; i ++)
    {
      output_inf(i);
    }
} 

//查询模块
void que()//查询信息
{
  char num;
  int flag,i;
  char q_id[20] ;//查询工号
  char q_name[20] ;//查询姓名
  char q_edu[20] ; //查询学历
  char q_position[20] ;//查询职位
  char c;//指令Y?N
  read();//打开程序后,要查询以前的数据,要先读入
  while(1)
  {
    system("cls");
    printf("\t\t******************查询********************\n");
    printf("\t\t*                    *\n");
    printf("\t\t*       1.按工号查询        *\n");
    printf("\t\t*                    *\n");
    printf("\t\t*       2.按姓名查询        *\n");
    printf("\t\t*                    *\n");
    printf("\t\t*       3.按学历查询        *\n");
    printf("\t\t*                    *\n");
    printf("\t\t*       4.按职务查询        *\n");
    printf("\t\t*                    *\n");
    printf("\t\t*    输入其他任意键退出本模块     *\n");
    printf("\t\t******************************************\n");
    printf("\t\t请输入指令(1-4):");
    scanf("%*c%c",&num);
    if(num < '1' || num > '4')
    {
      printf("错误指令!\n\n");
      system("pause");
      continue;
    }
    system("cls");
    flag = 0;//用来标记职工信息是否存在
    if(num == '1')//按工号查询
    {
      printf("\t\t请输入您要查询职工的工号:");
      scanf("%s",q_id);
      for(i = 0 ; i < n ;i ++)
      {
        if( strcmp(work[i].ID,q_id) == 0)
        {
          output_inf(i);
          flag = 1;//标记
          break;
        }
      }
    }
    else if(num == '2')//按姓名查询
    {
      printf("\t\t请输入您要查询职工的姓名:");
      scanf("%s",q_name);
      for(i = 0 ; i < n ;i ++)
      {
        if( strcmp(work[i].name,q_name) == 0)
        {
          output_inf(i);
          flag = 1;//标记
        }
      }
    }
    else if(num == '3')//按学历查询
    {
      printf("\t\t请输入您要查询职工的学历:"); 

      scanf("%s",q_edu);
      for(i = 0 ; i < n ;i ++)
      {
        if( strcmp(work[i].edu,q_edu) == 0)
        {
          output_inf(i);
          flag = 1;//标记
        }
      }
    }
    else if(num == '4')//按职务查询
    {
      printf("\t\t请输入您要查询职工的职务:");
      scanf("%s",q_position);
      for(i = 0 ; i < n ;i ++)
      {
        if( strcmp(work[i].position,q_position) == 0)
        {
          output_inf(i);
          flag = 1;//标记
        }
      }
    }
    if(!flag)//判断是否有该职工信息
    {
      printf("\n\n无该职工信息!\n\n");
    }
    printf("\n\n是否继续查询(Y/N):"); 

    scanf("%*c%c",&c);
    if(c == 'N' || c == 'n') break;
  }
} 

//修改信息模块
void mod()//修改职工信息
{
  char change_ID[20];//需修改的职工的工号
  int number;//职工信息在数据中的位置
  char num;//指令
  char message[100];//修改的信息
  char c;//指令Y?N
  int flag;
  int i;
  read();
  while(1)
  {
    flag = 0;
    system("cls");
    printf("请输入需修改的职工的工号:");
    scanf("%s",change_ID);
    for(i = 0 ; i < n ; i ++)
    {
      if( strcmp(work[i].ID,change_ID) == 0 )
      {
        number = i;
        flag = 1;
        break;
      }
    }
    if(!flag)
    {
      printf("\n\n无此员工信息!!\n\n");
      printf("\n\n是否继续修改(Y/N):");
      scanf("%*c%c",&c);
      if(c == 'N' || c == 'n') break;
      continue;
    }
    printf("\n\n\t\t******************修改********************\n");
    printf("\t\t*                    *\n");
    printf("\t\t*       1.修改姓名         *\n");
    printf("\t\t*                    *\n");
    printf("\t\t*       2.修改学历         *\n");
    printf("\t\t*                    *\n");
    printf("\t\t*       3.修改职务         *\n");
    printf("\t\t*                    *\n");
    printf("\t\t*       4.修改工资         *\n");
    printf("\t\t*                    *\n");
    printf("\t\t*       5.修改住址         *\n");
    printf("\t\t*                    *\n");
    printf("\t\t*       6.修改电话         *\n");
    printf("\t\t*                    *\n");
    printf("\t\t*    输入其他任意键退出本模块     *\n");
    printf("\t\t******************************************\n");
    printf("\t\t请输入指令(1-6):");
    scanf("%*c%c",&num);
    if(num < '1' || num > '6')
    {
      printf("错误指令!\n\n");
      system("pause");
      continue;
    }
    system("cls");
    printf("请输入修改后的信息:");
    scanf("%s",message);
    switch(num)
    {
      case '1' : strcpy(work[number].name,message); break;
      case '2' : strcpy(work[number].edu,message); break;
      case '3' : strcpy(work[number].position,message); break;
      case '4' : strcpy(work[number].wage,message); break;
      case '5' : strcpy(work[number].address,message); break;
      case '6' : strcpy(work[number].tel,message); break;
    }
    system("cls");
    printf("\n\n是否继续修改(Y/N):");
    scanf("%*c%c",&c);
    if(c == 'N' || c == 'n') break;
  }
  write();
} 

//删除信息模块
void del()//删除职工信息
{
  char delete_ID[20];//删除职工工号
  int i,j;
  int flag;//标记是否有该职工信息
  char c;
  read();
  while(1)
  {
    system("cls");
    flag = 0;
    printf("请输入需删除职工信息的工号:");
    scanf("%s",delete_ID);
    for(i = 0 ; i < n ; i ++)
    {
      if( strcmp(work[i].ID,delete_ID) == 0)
      {
        n --;
        flag = 1;
        for(j = i ; j < n ; j ++)
        {
          work[j] =work[j + 1];
        }
        break;
      }
    }
    if(!flag) printf("\n\n无此员工信息!\n\n");
    else printf("\n\n删除成功!\n");
    printf("\n\n是否继续删除(Y/N):");
    scanf("%*c%c",&c);
    if(c == 'N' || c == 'n') break;
  }
  write();
} 

//菜单模块
void menu()//菜单
{
  printf("\t\t************职工信息管理系统菜单**********\n");
  printf("\t\t*                    *\n");
  printf("\t\t*       1.录入职工信息      *\n");
  printf("\t\t*                    *\n");
  printf("\t\t*       2.显示职工信息      *\n");
  printf("\t\t*                    *\n");
  printf("\t\t*       3.查询职工信息      *\n");
  printf("\t\t*                    *\n");
  printf("\t\t*       4.修改职工信息      *\n");
  printf("\t\t*                    *\n");
  printf("\t\t*       5.删除职工信息      *\n");
  printf("\t\t*                    *\n");
  printf("\t\t*       0.退出          *\n");
  printf("\t\t*                    *\n");
  printf("\t\t******************************************\n");
  printf("\t\t请输入指令(0-5): ");
} 

int main()
{
  int num;
  n = 0;
  system("color 0B");
  while(1)
  {
    menu();
    scanf("%d",&num);
    system("cls");
    switch(num)
    {
      case 1: input(); break;
      case 2: show(); break;
      case 3: que();  break;
      case 4: mod();  break;
      case 5: del();  break;
      case 0: printf("谢谢使用!\n\n"); return 0;
      default :printf("\n--->无效的指令!\n\n\n");
    }
    system("pause");
    system("cls");
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

您可能感兴趣的文章:

  • C语言实现学生信息管理系统(单链表)
  • C语言单链表版学生信息管理系统
  • 学生信息管理系统C语言版
  • C语言实现简单学生学籍管理系统
  • C语言学生学籍管理系统课程设计
  • C语言实现学生学籍管理系统
  • C语言实现图书管理系统
  • C语言实现歌曲信息管理系统
  • C语言银行系统课程设计
  • C语言银行储蓄系统源码
(0)

相关推荐

  • 学生信息管理系统C语言版

    C语言学生信息管理系统包括以下功能: 1.学生信息的整体注册 2.学生信息的修改 3.学生成绩信息的录入 4.学生信息的添加 5.恢复误删的学生信息 6.学生信息的删除 7.密码修改保存函数 8.学生信息的查询 9.密码修改函数 10.学生信息管理系统的菜单函数 #include "stdio.h" #include "malloc.h" #include "string.h" #include "stdlib.h" #inc

  • C语言银行储蓄系统源码

    本文为大家分享了C语言银行储蓄系统源码,实现银行的各项功能,供大家参考,具体内容如下 #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> void openaccount();//开户 void save();//存款 void withdraw();//取款 void showAccount();//查询 void transferAccounts();

  • C语言学生学籍管理系统课程设计

    C语言学生学籍管理系统做了好长时间的,里面有点小问题,希望大佬找到并帮忙改改,注意输入密码三次错误会自动注销用户,密码123456 代码: #include<stdio.h> #include<stdlib.h> #include<string.h> #include<conio.h> struct student { char xuehao[100];//输入学号 char name[100];//输入姓名 char sex[100];//输入性别 int

  • C语言实现歌曲信息管理系统

    本文实例为大家分享了C语言实现歌曲信息管理系统的具体代码,供大家参考,具体内容如下 系统功能:该系统以菜单方式工作,歌曲信息包括:歌名.演唱者.作词.作曲.所属专辑.出版时间.出版公司.试设计一歌厅歌曲管理系统,使之能提供以下功能:歌曲信息录入.修改.插入.删除功能:歌曲排序浏览功能:按歌名查询.按演唱者查询等功能. 完整的实现代码如下: #include "stdio.h" #include "stdlib.h" #include "string.h&q

  • C语言实现简单学生学籍管理系统

    本文实例为大家分享了C语言实现学生学籍管理系统的具体代码,供大家参考,具体内容如下 #include<stdio.h> #include<string.h> #include<stdlib.h> #include<conio.h> #define N 100 /*存储100个学生的学籍信息*/ int flag; /*标记是否登录*/ struct date /*出生日期*/ { int year; int month; int day; }; struct

  • C语言实现学生学籍管理系统

    本文实例为大家分享了C语言实现学生学籍管理系统的具体代码,供大家参考,具体内容如下 #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<string.h> #include<windows.h> //**********************************结构体************************************* struct score

  • C语言单链表版学生信息管理系统

    本文实例为大家分享了C语言学生信息管理系统的具体代码,供大家参考,具体内容如下 代码: //以单链表作为存储结构,设计和实现课程成绩管理的完整程序. //程序包括如下功能. //1.建立学生成绩表,包含学生的学号.姓名和成绩. //2.可以显示所有学生成绩. //3.可以计算学生的总数. //4.可以按学号和序号查找学生. //5.可以在指定位置插入学生成绩数据. //6.可以删除指定位置的学生数据. //7.可以把学生成绩按从高到低的顺序排序. //作者: yinlinqvan //操作系统:

  • C语言实现学生信息管理系统(单链表)

    本文实例为大家分享了C语言实现学生信息管理系统的具体代码,供大家参考,具体内容如下 /*copyright(c)2016.烟台大学计算机学院 * All rights reserved, * 文件名称:text.Cpp * 作者:吴敬超 * 完成日期:2016年7月1日 * 版本号:codeblock * * 问题描述: 学生信息管理系统 * 输入描述: * 程序输出: 输出结果 */ #include <stdio.h> #include <stdlib.h> #include

  • C语言银行系统课程设计

    本文为大家分享了C语言银行系统课程设计,供大家参考,具体内容如下 main.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> #include <windows.h> #define MaxNum 200 #define N_P 6 typedef struct { int AccountNumber[3]; char name[20];

  • C语言职工信息管理系统源码

    本文实例为大家分享了C语言职工信息管理系统的具体代码,供大家参考,具体内容如下 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> struct worker { char ID[20];//工号 char name[20];//姓名 char sex[5];//性别 char born[20];//生日 char edu[20];//学历 char po

  • java(swing)+ mysql实现学生信息管理系统源码

    本文实例为大家分享了java实现学生信息管理系统源码,供大家参考,具体内容如下 import java.awt.BorderLayout; import java.awt.Color; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.Connection; import

  • java+SQL server2008学生信息管理系统源码

    本文实例为大家分享了java学生信息管理系统源码的具体代码,供大家参考,具体内容如下 1.StudetManage类(主界面) package com.sms3; import java.awt.*; import javax.swing.*; import java.awt.event.*; public class StudentManage extends JFrame implements ActionListener { /** * @param args */ public stat

  • Java+MySQL实现学生信息管理系统源码

    基于Java swing+MySQL实现学生信息管理系统:主要实现JDBC对学生信息进行增删改查,应付一般课设足矣,分享给大家.(由于篇幅原因,代码未全部列出,如有需要留下邮箱) 鉴于太多同学要源码,实在发不过来,上传到github上 https://github.com/ZhuangM/student.git 1. 开发环境:jdk7+MySQL5+win7 代码结构:model-dao-view 2. 数据库设计--建库建表语句: CREATE DATABASE student; DROP

  • python实现学生信息管理系统源码

    本文实例为大家分享了python实现学生信息管理系统的具体代码,供大家参考,具体内容如下 代码如下: Project.py文件内容: class Student(object): # 建立学生信息储存的列表(嵌套的方式) studentInformation = [] # 对学生对象的数据进行说明 studentShow = ["学号:", "姓名:", "年龄:"] # 录入学生 def addstudent(self): sno = inpu

  • C语言学生成绩管理系统源码

    本文实例为大家分享了C语言学生成绩管理系统的具体代码,供大家参考,具体内容如下 效果如下: 代码如下: #include <stdio.h> #include <stdlib.h> #include <string.h> struct student{         int num;         char name[20];         float score1;         float score2;         float score3;    

  • C语言学生管理系统源码分享

    本文实例为大家分享了C语言学生管理系统源码,供大家参考,具体内容如下 #include<stdio.h> #include<stdlib.h> //结构体可以存放的学生信息最大个数,不可变变量 int const MAX_LENGTH=100; //学生信息结构体数组,最多可以存放100个学生信息 struct student{ int id; //学号 char *name; //姓名 int age; //年龄 float c_score; //C语言成绩 float engl

  • C语言实现简单职工信息管理系统

    本文实例为大家分享了C语言实现职工信息管理系统的具体代码,供大家参考,具体内容如下 代码实现如下: #include <stdio.h>//输入.输出指令 #include <malloc.h>//在内存中动态的分配size字节的存储区 #include <string.h>//字符串相关操作指令 #include <stdlib.h>//五种类型.一些宏和通用工具函数 #include<conio.h>//通过键盘产生的对应操作 #includ

  • C++实现职工信息管理系统

    本文实例为大家分享了c++实现职工信息管理系统的具体代码,供大家参考,具体内容如下 1.项目需求 2.功能实现的具体思路为: (1) 经行职工信息的读入,用while循环进行读入,对于职工信息类型的设定方便起见除年龄和薪资用int类型其他信息都用string类型,职工信息用ostream 流写入txt并将信息保存在txt文件中,打印职工信息由于c++读文件方式不方便所以用c语言方式读文件,文件读取以后将文件中读取的信息加载到vector容器中后打印在终端窗口,其他功能的实现也是将文件中的信息读取

随机推荐