职工信息管理系统设计.docx

上传人:b****8 文档编号:10364762 上传时间:2023-02-10 格式:DOCX 页数:30 大小:218.97KB
下载 相关 举报
职工信息管理系统设计.docx_第1页
第1页 / 共30页
职工信息管理系统设计.docx_第2页
第2页 / 共30页
职工信息管理系统设计.docx_第3页
第3页 / 共30页
职工信息管理系统设计.docx_第4页
第4页 / 共30页
职工信息管理系统设计.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

职工信息管理系统设计.docx

《职工信息管理系统设计.docx》由会员分享,可在线阅读,更多相关《职工信息管理系统设计.docx(30页珍藏版)》请在冰豆网上搜索。

职工信息管理系统设计.docx

职工信息管理系统设计

课程设计(论文)

 

题目名称职工信息管理系统设计

课程名称C语言程序课程设计

学生姓名曾文静

学号1141304067

系、专业信息工程系、电子

指导教师邓波

 

2012年6月2日

 

邵阳学院课程设计(论文)任务书

年级专业

2011级电子科学与技术

学生姓名

曾文静

学号

1141304067

题目名称

职工信息管理系统设计

设计时间

2012.5.20-6.2

课程名称

C语言程序课程设计

课程编号

131301301

设计地点

计算机中心

一、课程设计(论文)目的

在教师指导下运用所学课程的知识来研究、解决一些具有一定综合性问题的专业课题。

通过课程设计(论文),提高学生综合运用所学知识来解决实际问题、使用文献资料、及进行科学实验或技术设计的初步能力,为毕业设计(论文)打基础。

就本课程设计来说,运用C语言编程解决实际问题。

二、已知技术参数和条件

1、职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话。

2、已经学习C语言的文件输入输出操作,基本结构体、函数、数组等复合数据等相关技术。

3、能查阅很多同类型的程序设计,借鉴其优势,是自己的设计更加完善。

4、能够深入职场!

了解职工基本情况,更真实的反映职工的基本信息。

5、能够充分利用网络对不同地区的职工进行对比与研究。

 

三、任务和要求

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

1、系统以菜单方式工作

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

3、职工信息浏览功能——输出

4、查询和安排功能:

——算法

按工资查询、按学历查询等

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

要求:

(1)用C语言实现程序设计

(2)利用结构体进行相关信息处理

(3)画出查询模版的流程图

(4)系统的各个功能模版要求用函数的形式实

(5)界面友好(良好的人机互交),程序要有注释现

 

注:

1.此表由指导教师填写,经系、教研室审批,指导教师、学生签字后生效;

2.此表1式3份,学生、指导教师、教研室各1份。

四、参考资料和现有基础条件(包括实验室、主要仪器设备等)

参考资料:

大学生计算机基础、程序设计基础教程(C语言)计算机辅导教程

主要仪器:

PC机一台(配备有C语言环境)

条件:

系办有专门机房共学生使用,图书馆有足够多的资料共同学翻阅,自己寝室也有做够多的电脑可以用来温习。

五、进度安排

2012.5.13-2012.5.16:

指导教师拟定课程设计课题

2012.5.17-2012.5.20:

选题,下发任务书,学生搜集相关参考资料

2012.5.21-2012.5.27:

编程

2012.5.28-2012.6.2:

撰写课程设计报告

2012.6.4-2012.6.6:

指导教师批阅课程设计报告,评定学生成绩

六、教研室审批意见

 

教研室主任(签字):

年月日

七、主管教学主任意见

 

主管主任(签字):

年月日

八、备注

 

指导教师(签字):

学生(签字):

1课程设计的目的与要求.....................................6

1.1目的.................................................6

1.2要求.................................................6

2课程论文题目.............................................7

3程序设计思路............................................7

4功能模块图...............................................8

5算法设计................................................8

5.1功能模块选择.........................................8

5.2浏览模块.............................................9

5.3排序模块............................................9

5.4查询模块..........................................10

5.5修改模块...........................................11

6源程序..................................................12

7程序运行结果...........................................20

7.1主菜单............................................20

7.2输入模块..........................................21

7.3浏览模块............................................21

7.4查找模块............................................22

7.5修改模块............................................22

8编程中遇到的困难及解决方法..............................23

9总结心得及良好建议......................................24

10参考资料...............................................26

11致谢...................................................26

1、课程设计的目的与要求

1.1目的

1.掌握C语言编程的基础知识较熟练的编写C语言应用程序。

2.能够利用所学的基本知识和技能,解决简单的程序设计问题,增强独立完成工作的能力。

3.通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。

1.2要求

1.要求利用C语言面向过程的编程思想来完成系统的设计;

2.突出C语言的函数特征,以多个函数实现每一个子功能;

3.画出功能模块图;

4.进行简单界面设计,能够实现友好的交互;

5.具有清晰的程序流程图和数据结构的详细定义;

6.熟练掌握C语言对文件的各种操作。

 

2.课程论文题目

职工信息管理系统程序设计

题目要求

职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。

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

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

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

(3)职工浏览功能。

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

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

3.程序设计思路

1.1设计思路

(1)根据题目要求,应该把职工工资信息用结构体形式输入,在定义一个全局变量和文件指针进行整个程序的运行,然后把职工工资信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;

(2)在程序中需实现职工工资浏览、查询、统计等功能的操作,所以需要建立相应的功能模块来实现;

(3)另外还需要提供键盘式选择菜单实现功能,在运行时达到所要的目的。

 

4.功能模块图

 

5.算法设计

5.1主函数提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。

 

 

N

 

Y

 

 

5.2浏览模块

【分析】

该模块的功能是浏览职工的全部信息

 

5.3排序模块

N

Y

12

1

2

 

5.4查询模块

【分析】

该模块的功能是根据输入的职工按照工号和学历查找对应的记录,找到以后,可进行继续查找或修改信息的操作。

流程图如下:

 

 

5.5修改模块

【分析】

盖模块的功能是显示所有职工的信息,考虑到记录较多,建议采用分屏显示。

显示完所有记录后,输入要修改的职工的工号,根据工号查到职工的记录,并提示用户修改该记录的哪部分信息,根据用户做的选择修改相应信息。

流程图如下:

 

 

Y

 

 

6.源程序

#include

#defineN50

structworker

{

charid[50];

charname[20];

charsex[10];

charage[10];

charedu[20];

charsalary[10];

charaddress[20];

chartel[20];

}worker[N];

voidsave(intn)//保存函数,保存n个记录

{FILE*fp;

inti;

if((fp=fopen("worker.txt","wb"))==NULL)//以只写方式为输出打开一个二进制文件

{printf("\nCannotopenfile\n");

}

for(i=0;i

if(fwrite(&worker[i],sizeof(structworker),1,fp)!

=1)

printf("filewriteerror\n");

fclose(fp);

}

intload()//加载函数

{FILE*fp;

inti;

if((fp=fopen("worker.txt","rb"))==NULL)

{printf("\nCannotopenfile\n");

returnNULL;

}

for(i=0;!

feof(fp);i++)

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

fclose(fp);

return(i-1);

}

voidno_input(inti,intn)//工号输入函数,i表示第i个职工的信息,n表示比较到第n个职工

{intj,k,w1;

do

{w1=0;

printf("工号:

");

scanf("%s",worker[i].id);

for(j=0;worker[i].id[j]!

='\0';j++)

if(worker[i].id[j]<'0'||worker[i].id[j]>'9')//判断工号是否为数字

{puts("请重新输入!

\n");

w1=1;break;

}

if(w1!

=1)

for(k=0;k

if(k!

=i&&strcmp(worker[k].id,worker[i].id)==0)//判断职工号是否有雷同

{puts("请重新输入!

\n");

w1=1;break;

}

}

while(w1==1);

}

voidinput(inti)//输入一个记录的函数

{no_input(i,i);

printf("姓名:

");scanf("%s",worker[i].name);

printf("性别:

");scanf("%s",&worker[i].sex);

printf("年龄:

");scanf("%s",&worker[i].age);

printf("工资:

");scanf("%s",worker[i].salary);

printf("学历:

");scanf("%s",&worker[i].edu);

printf("住址:

");scanf("%s",worker[i].address);

printf("电话:

");scanf("%s",worker[i].tel);

}

voidprintf_one(inti)//显示一个记录的函数

{

printf("%10s%10s%5s%5s%8s%6s%10s%10s\n",

worker[i].id,worker[i].name,worker[i].sex,worker[i].age,

worker[i].salary,worker[i].edu,worker[i].address,worker[i].tel);

}

voidprintf_back()//一个任务结束后选择是好似浏览还是返回

{intk,w;

printf("\n\n\tSuccessful^-^.\n\n");

printf("接下来做什么?

\n\n\t1).浏览全部\t2).返回:

[]\b\b");

scanf("%d",&w);

if(w==1)browse();

elsemenu();

}

modify_data(inti,intn)//修改函数

{intc,w1;

do

{puts("\nmodifyby=>\n\n1).工号2).姓名3).性别4).年龄5).工资6).学历7).地址8).电话9).取消");

printf("请选择?

:

[]\b\b");

scanf("%d",&c);

if(c>9||c<1)

{

puts("\nChoiceerror!

pleaseagain!

");

getchar();

}

}

while(c>9||c<1);

do

{switch(c)

{case1:

no_input(i,n);break;

case2:

printf("name:

");scanf("%s",worker[i].name);break;

case3:

printf("sex:

");scanf("%s",worker[i].sex);break;

case4:

printf("age:

");scanf("%s",worker[i].age);break;

case5:

printf("salary:

");scanf("%s",worker[i].salary);break;

case6:

printf("edu:

");scanf("%s",worker[i].edu);break;

case7:

printf("address:

");scanf("%s",worker[i].address);break;

case8:

printf("tel:

");scanf("%s",worker[i].tel);break;

case9:

menu();break;

}

puts("\nNow:

\n");

printf_face();

printf_one(i);

printf("\n确定?

\n\n\t1).是2).否,重新修改3).不保存退出[]\b\b");

scanf("%d",&w1);

if(w1==1)save(n);

}

while(w1==2);

return(w1);

}

printf_face()//显示数据结构项目

{printf("\n\t工号姓名性别年龄工资学历地址电话号码\n");}

voidenter()//输入模块

{inti,n;

printf("输入多少个职工信息(0-%d):

",N-1);

scanf("%d",&n);

printf("\n请输入职工信息\n\n");

for(i=0;i

input(i);

if(i!

=0)

save(n);

printf_back();

}

browse()//浏览模块

{inti,j,n;

n=load();

printf_face();

for(i=0;i

{

if((i!

=0)&&(i%10==0))

{printf("\n\n按任意键显示下一页...");

getch();

puts("\n\n");

}

printf_one(i);

}

printf("\t这里有%d条记录.\n",n);

printf("\n按任意键返回...");

getch();

menu();

}

modify()//修改模块

{

structworkers;

FILE*fp;

inti,n,k,w0=1,w1,w2=0;

n=load();

do

{

k=-1;

printf_face();

for(i=0;i

{

if((i!

=0)&&(i%10==0))//目的是分屏显示

{printf("\n\n记住要修改的工号.按任意键显示下一页");

getch();

puts("\n\n");

}

printf_one(i);//调用显示一个记录的函数

}

do

{

printf("\n\n输入要修改的职工工号!

工号:

");

scanf("%s",s.id);//输入要修改的ID

for(i=0;i

if(strcmp(s.id,worker[i].id)==0)

{

k=i;//找到要修改的记录

s=worker[i];//把worker[i]备份,以便恢复

}

if(k==-1)

printf("\n\n未找到请重输");

}

while(k==-1);//当k=-1表示没有找到

printf_face();//调用显示数据结构项目的函数

printf_one(k);//调用显示一个记录的函数

w1=modify_data(k,n);//修改记录并返回保存控制值w1,w1=1表示用户已确认修改

if(w1==1)

{

printf("\Successful^_^.\n\n修改另一个?

\n\n\t1).是2).否,保存退出\t[]\b\b");

scanf("%d",&w0);

w2=1;//用来控制保存,使w2=1是标记已有过修改

}

else

{

w0=0;

if(w2==1)

worker[k]=s;

}

if(w0!

=1&&w2==1)

save(n);

}while(w0==1);

menu();

}

search()//查询模块

{intc,w1;

do

{puts("\nsearchby=>\n\n1).工号2}.学历3).取消并返回");

printf("Whichyouneeded?

:

[]\b\b");

scanf("%d",&c);

if(c>3||c<1)

{puts("\nchoiceerror!

pleaseagain!

");

getchar();

}

}

while(c>3||c<1);

{switch(c)

{case1:

search1();break;

case2:

search2();break;

case3:

menu();break;

}

}

}

search1()//按工号查询模块

{inti,n,k,w1=1,w2,w3,w4;

structworkers;

n=load();

do

{

do

{k=-1;

printf("\n\n输入要查询的工号!

id:

");

scanf("%s",s.id);

printf_face();

for(i=0;i

if(strcmp(s.id,worker[i].id)==0)

{k=i;

printf_one(k);break;

}

if(k==-1)

{printf("\n\nNoexit!

please");

printf("\n\n继续查找?

\n\t1).是2).否,返回[]\b\b");

scanf("%d",&w1);

if(w1==2)menu();

}

}

while(k==-1&&w1==1);

w4=0;w3=0;

if(k!

=-1)

{printf("\n\n接下来干什么?

\n\t1).查找另一个2).修改3).返回菜单[]\b\b");

scanf("%d",&w2);

switch(w2)

{

case1:

search1();break;

case2:

w3=modify_data(k,n);break;

case3:

{menu();break;}

}

}

}

while(w2==1);

menu();

}

search2()//按学历查询模块

{

inti,n,k,w1=1,w2,w3,w4;

structworkers;

n=load();

do

{

do

{k=-1;

printf("\n\n请输入你要查询的学历:

\n");

scanf("%s",s.edu);

printf_face();

for(i=0;i

if(strcmp(s.edu,worker[i].edu)==0)

{k=i;

printf_one(k);

}

if(k==-1)

{printf("\n\nNoexit!

please");

printf("\n\n继续查找?

\n\t1).是2).否,返回[]\b\b");

scanf("%d",&w1);

if(w1==2)menu();

}

}

while(k==-1&&w1==1);

w4=0;w3=0;

if(k!

=-1)

{printf("\n\n接下来干什么?

\n\t1).查找另一个2).修改3).返回菜单[]\b\b");

scanf("%d",&w2);

switch(w2)

{case1:

search2();break;

case2:

w3=modify_data(k,n);break;

case3:

{menu();

break;

}

}

}

}

while(w2==1);

menu();

}

menu()

{

intn,w1;

do

{

puts("\t\t*******************菜单****

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 起诉状

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1