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

    (档案管理)职工档案管理系统报告

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

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

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

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

    华北科技学院C

    华北科技学院

    C 语言与数据结构实训报告

    (档案管理)职工档案管

    理系统报告

    目录

    一、训练项目 2

    二、训练目的 2

    三、设计分析 2

    四、设计方案 2

    五、实训详细设计 3

    六、使用说明 4

    七、运行调试 4

    八、训练心得 4

    九、参考文献 4

    一、训练项目

    职工档案管理系统设计

    系统可实现以下功能:

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

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

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

    二、训练目的

    通过本次训练,能够进一步巩固、掌握程序设计基础和数据结构课程的基本知识、基本技能。运用算法分析与程序设计的一般方法进行实际项目的开发。本项目需要具备熟练的数组和线性表知识,具备程序编写、调试的基本能力,具有一定的文字表达和报告撰写能力,具备办公软件使用能力。

    三、设计分析

    四、设计方案

    职工档案管理系统

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

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

    3、完成上述查找(编号,姓名,性别等)、修改等功能。数据结构定义:

    structworker

    {

    intNum; charName[15]; charSex[4]; charBirth[20]; charAddr[50]; charDepart[30]; charZhicheng[10]; intGongzi; charPhone[15];

    }work[100];

    五、详细设计

    源程序代码如下: #include<stdio.h> #include<windows.h> #include<string.h> #defineN100 structworker

    {

    intNum;

    charName[15]; charSex[4]; charBirth[20]; charAddr[50]; charDepart[30]; charZhicheng[10]; intGongzi; charPhone[15];

    }work[100];//定义一个结构体voidmenu();//菜单函数voidinput();//输入函数voidsave(int);//保存函数voiddisplay();//浏览函数voidadd();//添加函数voidsearch();//查找函数voidmodify();//修改函数voidmain()

    {

    intn,flag; chara; menu();

    do

    {

    printf("请选择你需要操作的步骤(1--7):\n"); scanf("%d",&n);

    if(n>=1&&n<=7)

    {

    flag=1; break;

    }

    else

    {

    flag=0;

    printf("您输入有误,请重新选择!");

    }

    }

    while(flag==0); system("cls"); while(flag==1)

    {

    switch(n)

    {

    case1:printf("欢迎录入职工信息\n");printf("\n");input();break; case2:printf("欢迎浏览职工信息\n");printf("\n");display();break; case3:printf("欢迎查询职工信息\n");printf("\n");search();break; case5:printf("欢迎添加职工信息\n");printf("\n");add();break; case4:printf("欢迎修改职工信息\n");printf("\n");modify();break; case6:exit(0);break;

    default:break;

    }

    getchar(); printf("\n");

    printf("是否继续进行(yorn):\n");

    scanf("%c",&a); if(a=='y')

    {

    flag=1; system("cls");//清屏menu();//调用菜单函数

    printf("请再次选择你需要操作的步骤(1--7):\n"); scanf("%d",&n);

    printf("\n");

    }

    else exit(0);

    }

    }

    voidmenu()//菜单函数

    {

    printf("\n");

    printf("\n");

    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("\n");

    printf("********************谢谢使用********************\n"); printf("\n");

    }

    voidinput()//录入函数

    {

    inti,m;

    printf("请输入要创建信息的职工人数(1--100):"); scanf("%d",&m);

    printf("\n");

    printf("请输入职工的信息:\n"); for(i=0;i<m;i++)

    {

    printf("请输入职工的编号:"); fflush(stdin); scanf("%d",&work[i].Num); printf("请输入职工的姓名:"); fflush(stdin); scanf("%s",&work[i].Name); printf("请输入职工的性别:"); fflush(stdin); scanf("%s",&work[i].Sex); printf("请输入职工的出生年月:"); fflush(stdin); scanf("%s",&work[i].Birth); printf("请输入职工的住址:"); fflush(stdin); scanf("%s",work[i].Addr); printf("请输入职工的所在部门:"); fflush(stdin); scanf("%s",work[i].Depart); printf("请输入职工的职称:"); fflush(stdin); scanf("%s",work[i].Zhicheng); printf("请输入职工的工资级别:"); fflush(stdin); scanf("%d",&work[i].Gongzi); printf("请输入职工的电话:"); fflush(stdin); scanf("%s",&work[i].Phone);

    system("cls");

    }

    printf("文件创建完毕!\n"); save(m);

    }

    voidsave(intm)//保存文件

    {

    inti;

    FILE*fp;

    if((fp=fopen("职工档案.txt","wb"))==NULL)

    {

    printf("文件打开失败\n"); exit(0);

    }

    for(i=0;i<m;i++)//将内存中职工的信息输出到磁盘文件中去if(fwrite(&work[i],sizeof(structworker),1,fp)!=1) printf("filewriteerror\n");

    fclose(fp);

    }

    intload()//导入函数

    {

    FILE*fp; inti=0;

    if((fp=fopen("职工档案.txt","rb"))==NULL)

    {

    printf("文件打开失败\n"); exit(0);

    }

    else

    {

    do

    {

    fread(&work[i],sizeof(structworker),1,fp); i++;

    }

    while(feof(fp)==0);

    }

    fclose(fp); return(i-1);

    }

    voiddisplay()//浏览函数

    {

    inti; intm=load();

    printf("编号姓名性别出生年月住址所在部门职称工资级别电话\t\n"); for(i=0;i<m;i++)//m 为输入的职工人数printf("%d%s%s%s%s%s%s%d%s\n",work[i].Num,work[i].Name,work[i].Se

    x,work[i].Birth,work[i].Addr,work[i].Depart,work[i].Zhicheng,work[i]. Gongzi,work[i].Phone);

    }

    voidadd()//添加函数

    {

    FILE*fp; intn; intcount=0; inti; intm=load();

    printf("\n 原来的职工信息:\n"); display();

    printf("\n"); fp=fopen("emploee_list","a"); printf("请输入想增加的职工数:\n"); scanf("%d",&n); for(i=m;i<(m+n);i++)

    {

    printf("\n 请输入新增加职工的信息:\n"); printf(" 请 输 入 职 工 的 编 号 :"); scanf("%d",&work[i].Num);

    printf("请输入职工的姓名:"); scanf("%s",&work[i].Name); printf("请输入职工的性别:"); scanf("%s",&work[i].Sex); printf("请输入职工的出生年月:"); scanf("%s",&work[i].Birth); printf("请输入职工的住址:"); scanf("%s",work[i].Addr); printf("请输入职工的所在部门:"); scanf("%s",work[i].Depart); printf("请输入职工的职称:"); scanf("%s",work[i].Zhicheng);

    printf("请输入职工的工资级别:"); scanf("%d",&work[i].Gongzi); printf("请输入职工的电话:"); scanf("%s",&work[i].Phone); system("cls");

    count=count+1;

    printf("已增加的人数:%d\n",count); printf("%d\n",count);

    }

    printf("\n 添加完毕!\n"); m=m+count;

    printf("\n 浏览增加后的所有职工信息:\n"); printf("\n");

    save(m); display(); fclose(fp);

    }

    voidsearch()//查询函数

    {

    intnum; inti,t; intm=load();

    printf("请输入要查找的职工号:\n"); scanf("%d",&num);

    for(i=0;i<m;i++) if(num==work[i].Num)

    {

    printf("\n 已找到此人,其记录为:\n");

    printf("编号姓名性别出生年月住址所在部门职称工资级别电话\t\n"); printf("%d%s%s%s%s%s%s%d%s\n",work[i].Num,work[i].Name,work[i].Se

    x,work[i].Birth,work[i].Addr,work[i].Depart,work[i].Zhicheng,work[i]. Gongzi,work[i].Phone);

    break;

    }

    if(i==m)

    printf("\n 对不起,查无此人\n"); printf("\n");

    printf("返回主菜单请按 1,继续查询职工号请按 2\n"); scanf("%d",&t);

    switch(t)

    {

    case1:search();break; case2:break; default:break;

    }

    }

    voidmodify()//修改函数

    {

    intNum; charName[15]; charSex[4]; charBirth[20]; charAddr[50]; charDepart[30]; charZhicheng[10]; intGongzi; charPhone[15]; intb,c,i,n,t,flag; intm=load();

    printf("\n 原来的职工信息:\n"); display();

    printf("\n");

    printf("请输入要修改的职工编号:\n"); scanf("%d",&Num); for(flag=1,i=0;flag&&i<m;i++)

    {

    if(work[i].Num==Num)

    {

    printf("\n 已 找 到 此 人 , 原 始 记 录 为 :\n"); printf("%d%s%s%s%s%s%s%d%s\n",work[i].Num,work[i].Name,work[i].Se

    x,work[i].Birth,work[i].Addr,work[i].Depart,work[i].Zhicheng,work[i]. Gongzi,work[i].Phone);

    printf("\n 确实要修改此人信息请按 1;不修改请按 0\n"); scanf("%d",&n);

    if(n==1)

    {

    printf("\n 需要进行修改的选项\n1.编号 2.姓名 3.性别 4.出生年月 5.住址6.所在部门 7.职称 8.工资级别 9.电话\n");

    printf("请输入你想修改的那一项序号:\n"); scanf("%d",&c);

    if(c>9||c<1)

    printf("\n 选择错误,请重新选择!\n");

    }

    flag=0;

    }

    }

    if(flag==1)

    printf("\n 对不起,查无此人!\n"); do

    {

    switch(c)//因为当找到第 i 个职工时,for 语句后i 自加了 1,所以下面的应该把改后的信息赋值给第 i-1 个人

    {

    case1:printf("职工的编号改为:"); scanf("%d",&Num);

    work[i-1].Num=Num; break;

    case2:printf("姓名改为:");

    scanf("%s",Name); strcpy(work[i-1].Name,Name); break;

    case3:printf("性别改为:"); getchar(); scanf("%s",&Sex);

    strcpy(work[i-1].Sex,Sex); break;

    case4:printf("出生年月改为:"); scanf("%s",&Birth); strcpy(work[i-1].Birth,Birth); break;

    case5:printf("住址改为:");

    scanf("%s",Addr); strcpy(work[i-1].Addr,Addr); break;

    case6:printf("所在部门改为:"); scanf("%s",Depart);

    break;

    case7:printf("住址改为:"); scanf("%s",Zhicheng);

    strcpy(work[i-1].Zhicheng,Zhicheng);

    break;

    case8:printf("工资级别改为:"); scanf("%d",&Gongzi);

    work[i-1].Gongzi=Gongzi; break;

    case9:printf("电话改为:");

    scanf("%s",Phone); strcpy(work[i-1].Phone,Phone);

    }

    printf("\n");

    printf("\n 是否确定所修改的信息?\n 是请按 1;不,重新修改请按 2:\n"); scanf("%d",&b);

    }

    while(b==2);

    printf("\n 浏览修改后的所有职工信息:\n"); printf("\n");

    save(m); display();

    printf("\n 继续修改请按 1,不再修改请按 0\n"); scanf("%d",&t);

    switch(t)

    {

    case1:modify();break; case0:break; default:break;

    }

    }

    六、使用说明

    例如,表达式求值

    本程序在 turboc2.0 环境下运行通过。运行后,根据提示输入数据即可。可以输入由运算符+、-、*、/、()所构成的算术表达式。表达式输入结束时按回车键。在屏幕上输出后缀表达式,并输出计算结果。

    七、运行调试

    1.菜单界面

    2.

    3.

    4.

    5.

    八、训练心得

    通过这次课程设计,增加了我们对软件技术的了解,虽然还不明确软件技术包含的具体内容,但从学习 C 语言这门课程开始,已发现程序设计的好处,它对我们数学的学习也有很大的帮助。在学习 C 语言的过程中也学到和巩固了许多计算机应用基础知识,对计算机的机体也有了一个较为详细的了解。在具体操作中对这学期所学的 C 语言的理论知识得到巩固加强,达到实训的目的,也发现自己的不足之处,为我们以后的 c 语言学习奠定了基础,同时体会到 C 语言具有的语句简洁,使用灵活,执行效率高等特点。发现上机操作的重要作用, 特别是对数组和循环有了深刻的理解。通过实际操作,学会 C 语言程序编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题、解决问题的能力

    九、参考文献

    [1]C 语言陈旭设计实践教程.电子工业出版社[2]谭浩强.C 程序设计.清华大学出版

    教师评语:

    成绩

    评阅教师

    注:教师评定内容

    1、实践操作技能。2、训练报告质量。3、训练期间表现

    华北科技学院C

    华北科技学院

    C 语言与数据结构实训报告

    感谢阅读

    • (档案管理)职工档案管理系统报告 相关文章: