视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
C语言课程设计报告—职工信息管理系统
2025-09-24 06:32:39 责编:小OO
文档
课程设计报告

设计者:苏龙

班级序号:055071-12

学号:***********

课程设计报告

一 C语言课程设计的目的

设计一职工信息管理系统,使之能提供以下功能:

(1)系统以菜单方式工作

(2)职工信息录入功能(职工信息用文件保存)

(3)职工信息浏览功能

(4)职工信息查询功能,查询方式可按学历查询或按职工号查询

(5)职工信息删除修改功能(可选项)

二 课程设计报告正文

1题目要求

设计职工信息管理系统,要求职工心想包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。设计一职工信息管理系统,使之能提供以下功能:

(6)系统以菜单方式工作

(7)职工信息录入功能(职工信息用文件保存)

(8)职工信息浏览功能

(9)职工信息查询功能,查询方式可按学历查询或按职工号查询

(10)职工信息删除修改功能(可选项)

2需求分析

根据题目要求,由于职工信息是存放在文件中,所以应提供文件的输入、输出等操作;在程序中需要浏览职工的信息,应提供显示、查找、排序等操作;另外还应提供键盘式选择菜单实现功能选择。

3总体设计

根据上面的需求分析,可以将这个系统设计分为以下模块:数据添加、数据查找、数据修改、数据删除、数据输出。系统功能模块如下:

4详细设计

1 主函数

   主函数设计要简洁,只提供部分函数的调用。其中各功能模块用菜单方式选择。

【程序】

void main()                                 

{

int m;

while(1)

{   printf("\n\n\n\t\t    ______________________________________\n");

    printf("\t\t    欢迎进入中国地质大学(武汉)员工信息系统\n");

    printf("\t\t    设计者:******-12苏龙  学号***********\n");

    printf("\t\t    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); 

    printf("\n\t\t\t\t添加,请按1");

    printf("\n\t\t\t\t查找,请按2");

    printf("\n\t\t\t\t修改,请按3");

    printf("\n\t\t\t\t删除,请按4");

    printf("\n\t\t\t\t输出,请按5");

printf("\n\t\t\t\t退出,请按0\n");                  

scanf("%d",&m);

if(m>=0&&m<=5)

{

switch(m)

{

case 1: append();

break;

case 2: search();

break;

case 3: modify();

break;

case 4: delete();

break;

case 5: output();

break;

case 0: exit();

}

printf("\n\n操作完毕,请再次选择!");

}

else

printf("\n\n选择错误,请再次选择!");

}

}

2 数据添加

【程序】

void append()                          

{

if((fp=fopen("worker.xls

{

printf("\n不能打开该文件!");

exit();

}

printf("\n请输入添加职工信息(姓名、职工号、性别、年龄、学历、职位、工资、电话、地址)\n");

scanf("%s%s%s%s%s%s%s%s%s",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

fclose(fp);                      

}

3 数据查找   数据查找共分为职工号、姓名等方式查找

【程序】

void search()                    

{

    int l;

printf("\t\t\t\t*姓名查找按:1*\n");

printf("\t\t\t\t*学历查找按:2*\n");

printf("\t\t\t\t*职工号查按:3*\n");

 scanf("%d",&l);

if(l>0&&l<4)

{switch(l)

{

case 1:nameway();

break;

case 2:xueliway();

break;

case 3:numway();

break;

}

  printf("\n\n操作完毕");

}

else printf("\t\t\t\t输入有误");

}

void nameway()

{

int k=0;

char nam[8];

printf("\n请输入您要查找的职工姓名:");

scanf("%s",nam);

if((fp=fopen("worker.xls

{

printf("\n不能打开文件!");

exit();

}

while(!feof(fp))

{

fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

if(strcmp(nam,one.name)==0)

{

printf("\n\n已查到,记录为:");

printf("\n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

k=1;

}

}

if(k==0)

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

fclose(fp);

}

void xueliway()

{int j=0;

char xueli[10];

printf("\t\t\t\t输入你要查询的学历\n");

scanf("%s",xueli);

if((fp=fopen("worker.xls

{

printf("\n不能打开文件!");

exit();

}

while(!feof(fp))

{

fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

if(strcmp(xueli,one.record)==0)

{

printf("\n\n已查到,记录为:");

printf("\n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

j=1;

}

}

if(j==0)

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

fclose(fp);

}

void numway()

{

    int i=0;

    char numb[10];

printf("\t\t\t\t输入你要查询的职工号\n");

scanf("%s",numb);

if((fp=fopen("worker.xls

{

printf("\n不能打开文件!");

exit();

}

while(!feof(fp))

{

fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

if(!strcmp(numb,one.num))

{

printf("\n\n已查到,记录为:");

printf("\n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

i=1;

}

}

if(!i)

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

fclose(fp);

}

4 数据修改

【程序】

void modify()                          

{

int m,k=0;

long a;

char namekey[8];

printf("\n请输入您要修改的职工的姓名:");

scanf("%s",namekey);

if((fp=fopen("worker.xls

{

printf("\n不能打开该文件!");

exit();

}

while(!feof(fp))

{

a=ftell(fp);                     

fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

if(!strcmp(namekey,one.name))

{

k=1;

break;

}

}

if(k)

{

printf("\n已查到,记录为:");

printf("\n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

printf("\n请输入信息(按照姓名、工号、性别、年龄、学历、职位、工资、电话、地址的顺序输入):");

scanf("%s%s%s%s%s%s%s%s%s",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

fseek(fp,a,0);

fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

}

else

printf("\n对不起,查无此人,无法进行修改。");

fclose(fp);                            

}

5 数据删除

【程序】

void delete()                          

{

int m,k=0;

long a,b;

char namekey[8], valid[4];

printf("\n请输入您要删除的职工姓名:");

scanf("%s",namekey);

if((fp=fopen("worker.xls

{

printf("\n不能打开该文件!");

exit();

}

while(!feof(fp))

{

a=ftell(fp);               

fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

if(strcmp(namekey,one.name)==0)

{

k=1;

break;

}

}

if(k==1)

{

printf("\n已查到,记录为");

printf("\n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

printf("\n确实要删除,按1;不删除,按0:");

scanf("%d",&m);

if(m==1)

{

fseek(fp,a,0);

fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n" "

}

}

else

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

fclose(fp);       

                

}

6 数据输出

【程序】

void output()                            

{

if((fp=fopen("worker.xls

{

printf("\n不能打开该文件!");

exit();

}

printf("\n\n%20s\n职工信息管理系统");

while(!feof(fp))

{

fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

printf("%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

}

fclose(fp);

}

5运行与测试报告:

三 后记/课程设计过程中遇到的问题以及解决方法,课程设计的体会。

这次课程设计让我掌握了许多的有用知识。首先我能够熟练的应用软件Microsoft Visual C++ 6.0 了。再就是我能够根据自己的需要设计程序,这将对我以后的生活有非常重要的影响。同时我掌握了解决问题的方法,这无论是对以后的学习、生活都有无比重要的价值。

 在设计中,我遇到了不少的困难,比如不能清晰的建立设计模块,然后我向同学寻求帮助,向他们学习,最终通过自己努力建立了模块。还有就是起初我设计的程序总是有错误,我细心的修改,不断的改进,最终我做出了自己非常理想的程序!

附录:源程序清单

#include

struct 

{

char name[8];

char num[10];

char sex[10];

char age[10];

char record[10];

char position[15];

char wanges[10];

char tel[15];

char addr[50];

}one;                                    

                

FILE *fp;               

                               

void output();                              

void search();                              

void append();                              

void modify();                              

void delete();                              

void nameway();

void xueliway();

void numway();

void main()                                 

{

int m;

while(1)

{   printf("\n\n\n\t\t    ______________________________________\n");

    printf("\t\t    欢迎进入中国地质大学(武汉)员工信息系统\n");

    printf("\t\t    设计者:055071-12苏龙  学号20071001569\n");

    printf("\t\t    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); 

    printf("\n\t\t\t\t添加,请按1");

    printf("\n\t\t\t\t查找,请按2");

    printf("\n\t\t\t\t修改,请按3");

    printf("\n\t\t\t\t删除,请按4");

    printf("\n\t\t\t\t输出,请按5");

printf("\n\t\t\t\t退出,请按0\n");                  

scanf("%d",&m);

if(m>=0&&m<=5)

{

switch(m)

{

case 1: append();

break;

case 2: search();

break;

case 3: modify();

break;

case 4: delete();

break;

case 5: output();

break;

case 0: exit();

}

printf("\n\n操作完毕,请再次选择!");

}

else

printf("\n\n选择错误,请再次选择!");

}

}

void output()                            

{

if((fp=fopen("worker.xls

{

printf("\n不能打开该文件!");

exit();

}

printf("\n\n%20s\n职工信息管理系统");

while(!feof(fp))

{

fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

printf("%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

}

fclose(fp);

}

void append()                          

{

if((fp=fopen("worker.xls

{

printf("\n不能打开该文件!");

exit();

}

printf("\n请输入添加职工信息(姓名、职工号、性别、年龄、学历、职位、工资、电话、地址)\n");

scanf("%s%s%s%s%s%s%s%s%s",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

fclose(fp);                      

}

void search()                    

{

    int l;

printf("\t\t\t\t*姓名查找按:1*\n");

printf("\t\t\t\t*学历查找按:2*\n");

printf("\t\t\t\t*职工号查按:3*\n");

 scanf("%d",&l);

if(l>0&&l<4)

{switch(l)

{

case 1:nameway();

break;

case 2:xueliway();

break;

case 3:numway();

break;

}

  printf("\n\n操作完毕");

}

else printf("\t\t\t\t输入有误");

}

void nameway()

{

int k=0;

char nam[8];

printf("\n请输入您要查找的职工姓名:");

scanf("%s",nam);

if((fp=fopen("worker.xls

{

printf("\n不能打开文件!");

exit();

}

while(!feof(fp))

{

fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

if(strcmp(nam,one.name)==0)

{

printf("\n\n已查到,记录为:");

printf("\n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

k=1;

}

}

if(k==0)

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

fclose(fp);

}

void xueliway()

{int j=0;

char xueli[10];

printf("\t\t\t\t输入你要查询的学历\n");

scanf("%s",xueli);

if((fp=fopen("worker.xls

{

printf("\n不能打开文件!");

exit();

}

while(!feof(fp))

{

fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

if(strcmp(xueli,one.record)==0)

{

printf("\n\n已查到,记录为:");

printf("\n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

j=1;

}

}

if(j==0)

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

fclose(fp);

}

void numway()

{

    int i=0;

    char numb[10];

printf("\t\t\t\t输入你要查询的共号\n");

scanf("%s",numb);

if((fp=fopen("worker.xls

{

printf("\n不能打开文件!");

exit();

}

while(!feof(fp))

{

fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

if(!strcmp(numb,one.num))

{

printf("\n\n已查到,记录为:");

printf("\n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

i=1;

}

}

if(!i)

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

fclose(fp);

}

void modify()                          

{

int m,k=0;

long a;

char namekey[8];

printf("\n请输入您要修改的职工的姓名:");

scanf("%s",namekey);

if((fp=fopen("worker.xls

{

printf("\n不能打开该文件!");

exit();

}

while(!feof(fp))

{

a=ftell(fp);                     

fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

if(!strcmp(namekey,one.name))

{

k=1;

break;

}

}

if(k)

{

printf("\n已查到,记录为:");

printf("\n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

printf("\n请输入信息(按照姓名、职工号、性别、年龄、学历、职位、工资、电话、地址的顺序输入):");

scanf("%s%s%s%s%s%s%s%s%s",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

fseek(fp,a,0);

fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

}

else

printf("\n对不起,查无此人,无法进行修改。");

fclose(fp);                            

}

void delete()                          

{

int m,k=0;

long a,b;

char namekey[8], valid[4];

printf("\n请输入您要删除的职工姓名:");

scanf("%s",namekey);

if((fp=fopen("worker.xls

{

printf("\n不能打开该文件!");

exit();

}

while(!feof(fp))

{

a=ftell(fp);               

fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

if(strcmp(namekey,one.name)==0)

{

k=1;

break;

}

}

if(k==1)

{

printf("\n已查到,记录为");

printf("\n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",one.name,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);

printf("\n确实要删除,按1;不删除,按0:");

scanf("%d",&m);

if(m==1)

{

fseek(fp,a,0);

fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n" "

}

}

else

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

fclose(fp);       

                

}下载本文

显示全文
专题