• 原创美文
  • 经典文章
  • 情感美文
  • 伤感文章
  • 散文
  • 美文随笔
  • 感人文章
  • 人生哲理
  • 学生美文
  • 民族文化
  • 说说大全
  • 网名大全
  • 范文大全
  • 当前位置: 佩佩美文网 > 情感美文 > 正文

    (档案管理)c语言职工档案管理系统

    时间:2021-02-27 07:31:09来源:佩佩美文网 本文已影响 佩佩美文网手机站

    精品文档,助你启航,欢迎下载关注!

    精品文档,助你启航,欢迎下载关注!

    精品文档,助你启航,欢迎下载关注!

    (档案管理)C 语言

    职工档案管理系统

    C 语言课程设计任务书 4

    题目:职工档案管理系统设计

    功能:职工档案管理系统设计,每个职工是一条记录,包括编号,姓名, 性别,出生年月,所在部门,职称,工资级别、电话等。系统可实现以下功能:

    1、输入功能:输入每一位职工记录,将其信息存入文件中。

    2、显示功能:完成全部职工记录的显示。

    3、查找功能:完成按编号或姓名查找职工的相关记录,并显示。分步实施:

    1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数。

    2、建立一个文件,将每位职工的信息写入文件中并能显示于屏幕上。

    3、完成上述查找(编号,姓名,性别等)、修改等功能。

    4、进一步要求,修改记录设置密码操作。要求:1、用 C 语言实现程序设计;

    2、利用结构体数组实现职工信息的数据结构设计;

    3、系统的各个功能模块要求用函数的形式实现;

    4、界面友好(良好的人机交互),程序加必要的注释。课程设计实验报告要求:

    1、预习报告:题目、课程设计任务、数据结构、程序的总体设计(算法)、模块划分。

    2、实验总结报告:流程图、主要源程序代码(需打印)、测试情况及调试中问题与解决方案、

    小结等。

    总评成绩:

    指导教师:

    附件:主要源程序代码(职工档案管理系统)

    charsex;//性别 f 为女 m 为男#include<stdio.h> #include<string.h>

    #include<stdlib.h> #include<conio.h> #defineN100

    typedefstructemployee//职工基本情况

    {

    charnum[6];//编号charname[8];//姓名charbirth[8];//出生年月charworkplace[10];//工作部门charsalarylevel[8];//工资级别charposition[8];//职称chartel[16];//电话

    }em[N];

    /* 主 要 函 数 */ voidinput();//输入职工信息

    voiddisplay();//显示职工信息

    voidpassWord();//设置密码voidsave();//保存职工信息voidchange();//修改职工信息

    /*查找函数*/ voidsearch();

    voidsearchByname();//按姓名查找voidsearchBynum();//按编号查找inttotal=0;//定义 total 来记数记录数inti=0;

    voidmain()

    {intchoice; do

    {

    printf("~~~~~~~~~~~~~~~~~~~~~~~\n");//系统欢迎界面printf(" 欢 迎 进 入 职 工 管 理 系 统 \n"); printf("~~~~~~~~~~~~~~~~~~~~~~~\n"); printf("~~~Coyote2009 年 6 月 ~~~~\n"); printf("~~~~~~~~~~~~~~~~~~~~~~~\n");

    printf("请您选择操作类型:\n");

    printf("========================\n");

    printf("1.输入职工信息\n");//用户选择printf("2. 显 示 职 工 信 息 \n"); printf("3. 查 找 职 工 信 息 \n"); printf("4. 修 改 职 工 信 息 \n"); printf("0. 退 出 系 统 \n"); printf("========================\n");

    scanf("%d",&choice); switch(choice)

    {

    case1:input();break; case2:display();break; case3:search();break; case4:change();break; case0:

    {

    printf("谢谢使用!再见!"); exit(0);//退出系统

    }

    default:

    {printf("输入有错误请重新输入:"); return;

    }

    }

    }while(1);//当为真值时执行 do 循环

    }

    voidinput()

    {

    charj='\0';//初始化 j 值为空do

    {

    total++; i++;

    printf(" 第 %d 个 职 工 :\n",i); printf("请您输入编号:");//输入编号scanf("%s",em[i].num);

    printf("请您输入姓名:");//输入姓名scanf("%s",em[i].name);

    printf("请您输入性别以(m 男 f 女):");//输入性别getchar();

    scanf("%c",&em[i].sex);

    printf("请您输入出生年月(格式如:1990.03):");//输入出生年月

    scanf("%s",em[i].birth);

    printf("请您输入工作部门:");//输入工作部门scanf("%s",em[i].workplace);

    printf("请您输入职位:");//输入职位scanf("%s",em[i].position);

    printf("请您输入工资级别:");//输入工资级别scanf("%s",em[i].salarylevel);

    printf("请您输入联系电话:");//输入联系电话scanf("%s",em[i].tel);

    printf("是否继续输入?(y/n):"); getchar();

    j=getchar(); while(j!='y'&&j!='n')

    {

    printf("输入不合法!\n 是否继续输入?(y/n):"); getchar();

    j=getchar();

    }

    }while(j=='y'); save();//保存职工记录

    printf("输入完毕,请按任意键返回\n"); getch();//conio 库函数里的,结收键盘输入任意~~~ return;

    }

    voidsave()

    {

    FILE*fp; inti=0;

    if((fp=fopen("","ab"))==NULL)

    {

    printf("cannotopenfile\n"); return;

    }

    for(i=1;i<=total;i++) if(fwrite(&em[i],sizeof(structemployee),1,fp)!=1) printf("filewriteerror\n");

    fclose(fp);

    }

    voiddisplay()//显示所有职工信息

    {

    FILE*fp; inti;

    if((fp=fopen("","rb"))==NULL)

    {

    printf("文件打开失败或未创建文件!\n"); return;

    }

    printf("所有职工信息如下:\n");//输出所有职工信息printf("\n===============================================

    ============================\n");

    printf("编号姓名性别出生年月所在部门职称工资级别联系电话

    \n");

    printf("=================================================

    ==========================\n");

    for(i=1;fread(&em[i],sizeof(structemployee),1,fp)!=0;i++)

    //读完所有数据

    printf("%-6s%8s%6c%12s%10s%8s%8s%18s\n",em[i].num,em[ i].name,em[i].sex,em[i].birth,em[i].workplace,e

    m[i].position,em[i].salarylevel,em[i].tel); printf("完毕,请按任意键返回\n");

    getch(); fclose(fp); return;

    }

    voidsearch()

    {intchoice;

    printf("请您选择查找方式:\n"); printf("1.按编号查找\n2.按姓名查找\n"); scanf("%d",&choice);

    switch(choice)

    {

    case1:searchBynum();break; case2:searchByname();break; default:printf("输入有误,请重输入:\n");

    }

    }

    voidsearchBynum()

    {

    FILE*fp; inti; charnumb[6];

    if((fp=fopen("","r"))==NULL)

    {

    printf("不能够打开这个文件,请按任意键返回"); return;

    }

    printf("请您输入要查找的人的编号:"); scanf("%s",numb);

    for(i=0;i<N;i++)//在所有信息中查找符合要求的职工信息if(strcmp(em[i].num,numb)==0)//找到并显示该职工记录

    {

    printf("以 下 是 您 要 查 询 的 人 的 信息 :\n");printf("\n===============================

    ============================================\n");

    printf("编号姓名性别出生年月所在部门职称工资级别联系电话\n");

    printf("=================================================

    ==========================\n");

    printf("%-6s%8s%6c%12s%10s%8s%8s%18s\n",em[i].num,e m[i].name,em[i].sex,em[i].birth,em[i].workplace,e

    m[i].position,em[i].salarylevel,em[i].tel); printf("查找完毕,请按任意键返回\n");

    getch(); fclose(fp); return;

    }

    printf("没有这样的人,请按任意键返回\n"); getch();

    fclose(fp);

    return;

    }

    voidsearchByname()

    {

    FILE*fp; inti=0; charnam[8];

    if((fp=fopen("","rb"))==NULL)

    {

    printf("不能够打开这个文件,请按任意键返回\n"); return;

    }

    printf("请您输入要查找的人的姓名:"); scanf("%s",nam);

    for(i=0;i<N;i++)

    if(strcmp(em[i].name,nam)==0)//找到并显示该职工记录

    {

    printf("以 下 是 您 要 查 询 的 人 的 信息 :\n");printf("\n=================================

    ==========================================\n");

    printf("编号姓名性别出生年月所在部门职称工资级别联系电话

    \n");printf("======================================

    =====================================\n");printf("%

    -6s%8s%6c%12s%10s%8s%8s%18s\n",em[i].num,em[i].name,e m[i].sex,em[i].birth,em[i].workplace,em[i].position,e m[i].salarylevel,em[i].tel);

    fclose(fp);

    printf("查找完毕,请按任意键返回\n"); getch();

    return;

    }

    printf("没有这样的人,请按任意键返回\n"); getch();

    fclose(fp); return;

    }

    voidpassWord()

    {

    charpassWord[8]="123456";//起始密码chars[8];

    intflag=0;

    intn=3;//密码输入次数do

    {

    scanf("%s",s); if(strcmp(passWord,s)==0)//若密码正确

    {

    printf("密码正确,祝您操作愉快!\n"); flag=1;

    break;

    }

    else

    {

    printf("密码错误,您还有%d 次机会:",n-1); n--;//次数记数

    }

    }while(n>0);

    if(flag!=1)

    {

    printf("您的输入次数已到!再见!\n"); main();//返回主函数(主菜单)

    }

    }

    voidchange()

    {

    FILE*fp; inti;

    charnewnum[6];//新编号charnewname[8];//新名字charnewsex;//新性别charnewbirth[8];//新出生年月charnewworkplace[10];//新工作部门charnewposition[8];//新职称charnewsalarylevel[8];//新工资水平charnewtel[16];//新电话号码charnam[8];

    intchoice;

    printf("请您输入密码:"); passWord();//调用密码函数

    printf("请您输入要修改的人的姓名:"); scanf("%s",&nam); if((fp=fopen("","w+"))==NULL)

    {

    printf("不能够打开这个文件"); return;

    }

    for(i=1;i<=N;i++) if(strcmp(nam,em[i].name)==0)

    {

    printf("这 是 您 要 修 改 的 人 的 信 息 :

    \n");printf("\n=======================================

    ====================================\n");

    printf("编号姓名性别出生年月所在部门职称工资级别联系电话

    \n"); printf("=================================================

    ==========================\n");

    printf("%-6s%8s%6c%12s%10s%8s%8s%18s\n",em[i].num,em[i].n ame,em[i].sex,em[i].birth,em[i].workplace,em[i]. position,em[i].salarylevel,em[i].tel);

    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("8.修改联系电话\n"); printf("0.返回主菜单\n");

    printf("========================\n");

    scanf("%d",&choice); switch(choice)

    {

    case1:printf("请您输入新的编号:"); scanf("%s",newnum); strcpy(em[i].num,newnum);

    break;

    case2:printf("请您输入新的姓名:"); scanf("%s",newname); strcpy(em[i].name,newname);

    break;

    case3:printf("请您输入新的性别:"); getchar();

    scanf("%c",&newsex); em[i].sex=newsex; break;

    case4:printf("请您输入新的出生年月:"); scanf("%s",newbirth); strcpy(em[i].birth,newbirth);

    break;

    case5:printf("请您输入新的工作部门:");

    scanf("%s",newworkplace); strcpy(em[i].workplace,newworkplace); break;

    case6:printf("请您输入新的职位:"); scanf("%s",newposition); strcpy(em[i].position,newposition); break;

    case7:printf("请您输入新的工资级别:"); scanf("%s",newsalarylevel); strcpy(em[i].salarylevel,newsalarylevel); break;

    case8:printf("请您输入新的联系电话:"); scanf("%s",newtel); strcpy(em[i].tel,newtel);

    break; case0:

    {

    printf("返回主菜单"); main();//返回

    }

    default:printf("输入有错误!请重新输入!");return;

    } printf("\n===============================================

    ============================\n");

    printf("编号姓名性别出生年月所在部门职称工资级别联系电话\n");

    printf("=================================================

    ==========================\n");

    printf("%-6s%8s%6c%12s%10s%8s%8s%18s\n",em[i].num,em[ i].name,em[i].sex,em[i].birth,em[i].workplace,e

    m[i].position,em[i].salarylevel,em[i].tel); save();//保存修改信息

    break;

    }

    elseif(i==N)

    {

    printf("没有这个职工,为了安全,请再次输入密码!\n"); change();

    } printf("\n===================\n");

    printf("1.继续修改\n2.返回主菜单\n"); printf("===================\n");

    printf("\n 请您选择:"); scanf("%d",&choice); switch(choice)

    {

    case1:change();break; case2:main();break;

    default:printf("输入不合法!返回\n");main();

    }

    }

    感谢阅读

    • (档案管理)c语言职工档案管理系统 相关文章: