您的当前位置:首页正文

C语言课程设计报告职工信息管理系统[1] (1)

2020-12-25 来源:步旅网


课程设计报告

一 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\\ ______________________________________\\n\"); printf(\"\\ 欢迎进入内蒙古科技大学员工信息系统\\n”); printf(\"\\ 设计者:计算机—3班 学号1076807334\\n”);

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

printf(”\\n\\\\添加,请按1\"); printf(”\\n\\\\查找,请按2”); printf(”\\n\\\\修改,请按3”); printf(\"\\n\\\\删除,请按4\"); printf(\"\\n\\\\输出,请按5\");

- 1 -

printf(\"\\n\\\\退出,请按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”,”a\"))==NULL) {

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.num,one.sex,one。age,one.record,one。position,one。wanges,one。tel,one.addr);

fclose(fp); }

- 2 -

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

void search() {

int l;

printf(”\\\\*姓名查找按:1*\\n\"); printf(\"\\\\*学历查找按:2*\\n\"); printf(\"\\\\*职工号查按: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(”\\\\输入有误!!!”); }

void nameway() {

int k=0;

char nam[8];

printf(”\\n请输入您要查找的职工姓名:\"); scanf(”%s\; if((fp=fopen(”worker.xls\",”rb”))==NULL) {

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)

- 3 -

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(”\\\\输入你要查询的学历\\n”); scanf(\"%s”,xueli); if((fp=fopen(\"worker。xls\",”rb\"))==NULL) {

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

while(!feof(fp)) {

fscanf(fp,”%s%s%s%s%s%s%s%s%s\\n\。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;

- 4 -

char numb[10];

printf(”\\\\输入你要查询的职工号\\n\"); scanf(”%s”,numb);

if((fp=fopen(”worker.xls”,”rb\"))==NULL) {

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\。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”,\"r+\"))==NULL) {

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。

- 5 -

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”,”r+\"))==NULL) {

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,

- 6 -

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”,”r”))==NULL) {

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);

- 7 -

}

fclose(fp); }

5运行与测试报告:

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

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

- 8 -

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

附录:源程序清单 #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();

- 9 -

void delete(); void nameway(); void xueliway(); void numway();

void main() { int m; while(1)

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

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

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

printf(”\\ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~\\n\");

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

printf(”\\n\\\\查找,请按2”); printf(”\\n\\\\修改,请按3\"); printf(\"\\n\\\\删除,请按4\"); printf(”\\n\\\\输出,请按5\");

printf(\"\\n\\\\退出,请按0\\n\"); scanf(\"%d\",&m); if(m>=0&&m<=5) {

switch(m) {

case 1: append(); break;

case 2: search();

- 10 -

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\)==NULL) {

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%

- 11 -

—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\",\"a\"))==NULL) {

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

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

scanf(”%s%s%s%s%s%s%s%s%s\。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(”\\\\*姓名查找按:1*\\n\"); printf(”\\\\*学历查找按:2*\\n\"); printf(\"\\\\*职工号查按:3*\\n”);

- 12 -

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(”\\\\输入有误!!!\"); }

void nameway() { int k=0; char nam[8];

printf(”\\n请输入您要查找的职工姓名:”); scanf(”%s”,nam);

if((fp=fopen(\"worker.xls\))==NULL) {

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

while(!feof(fp))

- 13 -

fscanf(fp,\"%s%s%s%s%s%s%s%s%s\\n\,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(\"\\\\输入你要查询的学历\\n\"); scanf(\"%s\);

if((fp=fopen(”worker.xls\",\"rb\"))==NULL) {

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,

- 14 -

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(\"\\\\输入你要查询的共号\\n”); scanf(”%s”,numb);

if((fp=fopen(”worker.xls”,\"rb\"))==NULL) {

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);

- 15 -

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\);

if((fp=fopen(”worker。xls\",”r+”))==NULL) {

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

while(!feof(fp)) {

a=ftell(fp);

- 16 -

fscanf(fp,\"%s%s%s%s%s%s%s%s%s\\n\。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\。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() {

- 17 -

int m,k=0; long a,b;

char namekey[8], valid[4];

printf(”\\n请输入您要删除的职工姓名:\"); scanf(”%s\",namekey);

if((fp=fopen(\"worker。xls”,\"r+”))==NULL) {

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。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)

- 18 -

fseek(fp,a,0);

fprintf(fp,\"%-10s%—8s%-5s%-5s%-10s%-8s%—8s%—10s%—15s\\n” \"”,””,\"”,\"\",\"”,\"”,\"\",\"\} } else

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

- 19 -

因篇幅问题不能全部显示,请点此查看更多更全内容