虚位以待(AD)
虚位以待(AD)
首页 > 软件编程 > C/C++编程 > C语言职工信息管理系统源码

C语言职工信息管理系统源码
类别:C/C++编程   作者:码皇   来源:互联网   点击:

这篇文章主要为大家详细介绍了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盘根目录下新建一个文本文件,文件名为datennn");
    system("pause");
    system("cls");
    return ;
    }
    fscanf(fp,"%dn",&n);
    while(i < n) {
    fscanf(fp,"%sn%sn%sn%sn%sn%sn%sn%sn%sn",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,"%dn",n);
    while(i < n) {
    fprintf(fp,"%sn%sn%sn%sn%sn%sn%sn%sn%sn",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("tt请输入职工的工号: ntt");
    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("该工号已存在!nn");
    printf("tt是否继续输入?(Y/N): ");
    scanf("%*c%c",&c);
    if(c == 'N' || c == 'n') break;
    continue;
    }
    printf("tt请输入职工的姓名: ntt");
    scanf("%s",work[n].name);
    printf("tt请输入职工的性别: ntt");
    scanf("%s",work[n].sex);
    printf("tt请输入职工的出生年月: ntt");
    scanf("%s",work[n].born);
    printf("tt请输入职工的学历: ntt");
    scanf("%s",work[n].edu);
    printf("tt请输入职工的职务: ntt");
    scanf("%s",work[n].position);
    printf("tt请输入职工的工资: ntt");
    scanf("%s",work[n].wage);
    printf("tt请输入职工的住址: ntt");
    scanf("%s",work[n].address);
    printf("tt请输入职工的电话: ntt");
    scanf("%s",work[n].tel);
    printf("tt是否继续输入?(Y/N): ");
    scanf("%*c%c",&c);
    n ++;
    }
    while( c != 'N' && c != 'n');
    write();
    printf("nn数据已保存!nn");
    }
    //显示模块 void output_inf(int id) {
    printf("tt 工号: %sn",work[id].ID);
    printf("tt 姓名: %sn",work[id].name);
    printf("tt 性别: %sn",work[id].sex);
    printf("tt出生年月: %sn",work[id].born);
    printf("tt 学历: %sn",work[id].edu);
    printf("tt 职务: %sn",work[id].position);
    printf("tt 工资: %sn",work[id].wage);
    printf("tt 住址: %sn",work[id].address);
    printf("tt 电话: %sn",work[id].tel);
    printf("nnn");
    }
    void show()//显示所有职工信息 {
    int i;
    read();
    if(n == 0) printf("无记录!nn");
    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("tt******************查询********************n");
    printf("tt* *n");
    printf("tt* 1.按工号查询 *n");
    printf("tt* *n");
    printf("tt* 2.按姓名查询 *n");
    printf("tt* *n");
    printf("tt* 3.按学历查询 *n");
    printf("tt* *n");
    printf("tt* 4.按职务查询 *n");
    printf("tt* *n");
    printf("tt* 输入其他任意键退出本模块 *n");
    printf("tt******************************************n");
    printf("tt请输入指令(1-4):");
    scanf("%*c%c",&num);
    if(num < '1' || num > '4') {
    printf("错误指令!nn");
    system("pause");
    continue;
    }
    system("cls");
    flag = 0;
    //用来标记职工信息是否存在 if(num == '1')//按工号查询 {
    printf("tt请输入您要查询职工的工号:");
    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("tt请输入您要查询职工的姓名:");
    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("tt请输入您要查询职工的学历:");
    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("tt请输入您要查询职工的职务:");
    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("nn无该职工信息!nn");
    }
    printf("nn是否继续查询(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("nn无此员工信息!!nn");
    printf("nn是否继续修改(Y/N):");
    scanf("%*c%c",&c);
    if(c == 'N' || c == 'n') break;
    continue;
    }
    printf("nntt******************修改********************n");
    printf("tt* *n");
    printf("tt* 1.修改姓名 *n");
    printf("tt* *n");
    printf("tt* 2.修改学历 *n");
    printf("tt* *n");
    printf("tt* 3.修改职务 *n");
    printf("tt* *n");
    printf("tt* 4.修改工资 *n");
    printf("tt* *n");
    printf("tt* 5.修改住址 *n");
    printf("tt* *n");
    printf("tt* 6.修改电话 *n");
    printf("tt* *n");
    printf("tt* 输入其他任意键退出本模块 *n");
    printf("tt******************************************n");
    printf("tt请输入指令(1-6):");
    scanf("%*c%c",&num);
    if(num < '1' || num > '6') {
    printf("错误指令!nn");
    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("nn是否继续修改(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("nn无此员工信息!nn");
    else printf("nn删除成功!n");
    printf("nn是否继续删除(Y/N):");
    scanf("%*c%c",&c);
    if(c == 'N' || c == 'n') break;
    }
    write();
    }
    //菜单模块 void menu()//菜单 {
    printf("tt************职工信息管理系统菜单**********n");
    printf("tt* *n");
    printf("tt* 1.录入职工信息 *n");
    printf("tt* *n");
    printf("tt* 2.显示职工信息 *n");
    printf("tt* *n");
    printf("tt* 3.查询职工信息 *n");
    printf("tt* *n");
    printf("tt* 4.修改职工信息 *n");
    printf("tt* *n");
    printf("tt* 5.删除职工信息 *n");
    printf("tt* *n");
    printf("tt* 0.退出 *n");
    printf("tt* *n");
    printf("tt******************************************n");
    printf("tt请输入指令(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("谢谢使用!nn");
    return 0;
    default :printf("n--->无效的指令!nnn");
    }
    system("pause");
    system("cls");
    }
    }

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

您可能感兴趣的文章:

  • c语言实现的货物管理系统实例代码(增加删除 查找货物信息等功能)
  • C语言职工管理系统设计
  • C语言学生管理系统源码分享
  • C语言编写学生成绩管理系统
  • C语言实现图书管理系统
  • C语言实现简单学生管理系统
  • C语言利用结构体数组实现学生成绩管理系统
  • 学生成绩管理系统C语言代码实现
  • C语言通讯录管理系统完整版
  • C语言学生成绩管理系统源代码
相关热词搜索: C语言职工管理系统 C语言信息管理系统 C语