职工信息管理系统.docx

上传人:b****1 文档编号:2212696 上传时间:2023-05-02 格式:DOCX 页数:70 大小:715.50KB
下载 相关 举报
职工信息管理系统.docx_第1页
第1页 / 共70页
职工信息管理系统.docx_第2页
第2页 / 共70页
职工信息管理系统.docx_第3页
第3页 / 共70页
职工信息管理系统.docx_第4页
第4页 / 共70页
职工信息管理系统.docx_第5页
第5页 / 共70页
职工信息管理系统.docx_第6页
第6页 / 共70页
职工信息管理系统.docx_第7页
第7页 / 共70页
职工信息管理系统.docx_第8页
第8页 / 共70页
职工信息管理系统.docx_第9页
第9页 / 共70页
职工信息管理系统.docx_第10页
第10页 / 共70页
职工信息管理系统.docx_第11页
第11页 / 共70页
职工信息管理系统.docx_第12页
第12页 / 共70页
职工信息管理系统.docx_第13页
第13页 / 共70页
职工信息管理系统.docx_第14页
第14页 / 共70页
职工信息管理系统.docx_第15页
第15页 / 共70页
职工信息管理系统.docx_第16页
第16页 / 共70页
职工信息管理系统.docx_第17页
第17页 / 共70页
职工信息管理系统.docx_第18页
第18页 / 共70页
职工信息管理系统.docx_第19页
第19页 / 共70页
职工信息管理系统.docx_第20页
第20页 / 共70页
亲,该文档总共70页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

职工信息管理系统.docx

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

职工信息管理系统.docx

职工信息管理系统

信息科学与技术学院

程序设计基础课程设计报告

 

题目名称:

职工信息管理系统

学生姓名:

董吉华

学号:

20171008189

专业班级:

电子信息工程1班

指导教师:

郭理

 

2017年12月30日

 

 

《职工信息管理系统》

一.课程设计题目与要求

1.1设计题目

职工信息管理系统

1.2设计要求

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

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

系统以菜单方式工作

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

(3)职工信息浏览功能

(4)查询和排序功能:

(至少一种查询方式)

按工资查询

按学历查询等

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

 

二.总体设计

2.1总体功能框架

实现航班信息的输入,航班信息的输出,航班信息的查找,订票系统,退票系统功能

职工信息管理系统

Main()

职工信息排序

职工信息

输入

职工信息显示

查找职工信息

职工信息删除

职工信息修改

退出

退出系统

 

图2-1职工信息管理系统

2.2数据结构概要设计

2.2.1航班信息输入

输入职工职工号、姓名、性别、年龄、学历、工资、住址、电话,同时职工的职工号不得重复。

 

三.详细设计

3.1数据结构详细设计

结构体structworkerwork[100]用于储存航班信息,作为文件数据域

structworker

{

doublenumber;//工号

charname[20];//名字

charxingbie[15];//性别

intage;//年龄

charxueli[10];//学历

intwage;//工资

charaddress[80];//住址

chartelephone[20];//电话号码;

}work[100];

 

3.2系统功能详细设计

3.2.1主函数

(1)函数原型

intmain()

(2)函数功能

通过管理人员账号密码的输入,验证,若正确,进入主界面,voidmainhome();如不正确,重新输入,并且只有两次重新输入的机会,若两次还不对,系统自动退出程序。

(3)函数形参说明

(4)函数流程图

如图3-1主函数

 

 

图3-0主函数

 

3.2.2主界面函数

(1)函数原型

voidmainhome();//主界面

(2)函数功能

通过管理人员向该界面输入1--6不同的数字,选择不同的功能。

(3)函数形参说明

(3)函数流程图

图3-1主界面函数

 

3.2.2输入函数

(1)函数原型voidinput(structworker*op);

(2)函数功能

职工信息输入模块,主要实现职工信息的输入功能

(3)函数形参说明

structworker*op;

(4)函数流程图

如图3-2输入函数

图3-2职工信息录入函数

3.2.3输出函数

(1)函数原型

voiddisplay(structworker*ab);

(2)函数功能

职工信息输出模块,主要实现职工信息的输出功能

(3)函数形参说明

structworker*ab;

(4)函数流程图

如图3-3输出函数

 

3.2.4查找函数

(1)函数原型

voidchazhao(structworkerwork[100]);

(2)函数功能

职工信息查找模块,主要实现职工信息的查找功能

(3)函数形参说明

structworkerwork[100];

(4)函数流程图

 

i=i+1

开始

n>2||n<0

n==1

输入职工号

i=0

i

信息相等

输出职工信息

n==2

输入终点站

i

信息相等

输出职工信息

调用main()

结束

输入n

n==0

i=0

i=i+1

yes

no

yesno

no

yes

 

noyesno

yesnoyes

no

yes

如图3-4查找函数

 

3.2.5排序函数

(1)函数原型

voidpaixu(structworkerwork[100]);

(2)函数功能

职工信息排序模块,主要实现职工信息的排序功能

(3)函数形参说明

structworkerwork[100];

(5)函数流程图

如图3-5

 

 

结束

输入n,i=0

n==1

while(!

feof(read))

i=0&&i<文本数目

i++

按职工号排序

输出顺序并保存

开始

输出顺序并保存

结束

n==2

i=0&&i<文本数目

按学历排序

i++

(否)

(是)

(是)(否)

 

如图3-5排序函数

 

3.2.6删除或修改函数

(1)函数原型

voidshanchu(structworkerwork[100]);

(2)函数功能

职工信息删除或修改模块,主要实现职工信息的删除或修改功能

(3)函数形参说明

structworkerwork[100]

(5)函数流程图

 

输入职工号

是否确定删除

是否确定修改

删除

是否继续

结束

开始

输入2代表修改

输入职工号

修改

是否继续

结束

输入1代表删除

 

(是)

(是)(是)(是)

 

(否)

(否)

如图3-6删除修改函数

 

3.2.7结束函数

(1)函数原型

voidleft();

(2)函数功能

表示此程序运行结束

(3)函数形参说明

(4)函数流程图

 

输入0

进入返回界面

按任意键

进入主界面

结束

开始

图3-7结束函数

四.运行结果

4.1主界面

运行源程序.exe可进入职工信息管理系统主界面如图所示

下面,我要输入用户名和密码,注意(我这里如果第一次用户名和密码输入错误,那么还有两次输入机会,若两次后还不对,自动退出系统。

)下面请看演示

图4-1

图4-2

图4-3

下面是正确操作

图4-4

(注意,这里,我通过调用windows.h运用Sleep函数,配合for循环,产生登录效果)

4.2主菜单界面

图4-5

主界面通过输入1—6之间的数字,通过主界面函数,进入不同子函数,来实现相应功能。

输入完毕后航班信息已保存到文件

 

4.3录入职工信息界面

图4-6

图4-7

该界面主要输入职工信息,并将职工信息加以保存,同时,通过两个for循环以及if条件判断,保证职工的职工号不会重复。

图4-8浏览航班信息

按任意键返回主菜单

4.3显示界面

该界面显示输入到文档的所有职工信息,包括之前写到文档中的职工信息。

详细程序运行过程见下图:

图4-9

图4-10

 

4.4查询界面

该界面通过输入工资或者学历,能查询符合标准的员工。

如果没有符合标准的,输出“没有该职工信息,查无此人!

!

”字样,输入1代表按工资查询,输入2代表按学历查询。

详细过程,请看程序演示。

按数字1:

按照工资查询,输入9000,结果如图显示

图4-11

按数字2:

按照学历查询,输入本科,结果如图显示

图4-12

若查不到人显示查无此人

 

排序界面

该界面通过对指定文档读取,输入1代表按照职工号从小到大排序,输入2代表按照工资从小到大排序。

并将排序结果保存到指定文档中。

输入1

图4-13

输入2

图4-14

删除或修改界面

该界面该界面通过对指定文档读取,1代表删除,2代表修改。

删除是根据职工号进行删除,修改可以单项修改,即可以只改其中一项内容。

详细程序运行见下图

删除功能:

图4-15

可以选择是否确定删除,若不删,按2即可取消操作,若坚持删,按1。

图4-16

选择删除,显示剩余职工数据,并询问是否继续。

若按2:

则是询问是否继续,若为继续,返回上一个界面,若选择否,则返回菜单界面:

图4-17

该界面该界面通过对指定文档读取,1代表删除,2代表修改。

删除是根据职工号进行删除,修改可以单项修改,即可以只改其中一项内容。

修改功能:

3)该函数其实是删除函数的一个子函数,受删除函数调用,删除函数把值传给修改函数,修改函数可以判断职工号是否重复。

并且可以只修改职员的部分信息。

图4-18

4)判断是否确定修改,若是,按1,若不是,按2,直接返回菜单函数中,若按1,会出现数字选择,通过选择,选择要修改的类型。

图4-19

注意(在1职工号中,有辨别是否有重复现象,同样输错之后,还有两次机会,若都错,就退出系统)

1:

职工号

图4-20

下面以职工号为例,输出正确操作:

图4-21

若按1表示确定,则返回到删除函数中,若按2,则返回到菜单函数中。

结束程序界面

图4-22

表明此程序为退出程序。

 

五.课程设计总结

5.1编程中的问题及解决方法

(1)一开始查询模块第一种方法并不能运行,我不停的查阅资料,想做一种简便又可行的方法,这个模块发费了我很长时间,但做出来的那一刻内心无比的喜悦,过程再艰苦,但我收获了巨大的知识财富,同时我也更相信努力钻研必能取得成果。

(2)程序编译后有时并不能读懂错误的意思或者找不到错误在哪,XX则是很好的方法了。

5.2小结

此次程序设计主要用了函数的调用,if、else选择语句,switch语句,

相关文件知识,结合课本知识加上自己的应用结果颇为令人满意 ,但是还有很多的缺陷与不足。

在实践过程中,自己编程的时候常常会犯错误,并总结了一些克服缺点的方法。

而且更深刻体会到程序设计中最重要的一部分不是编写源程序,而是调试过程。

只有经过调试程序,我们才能掌握正确的语法知识及把问题的解决方法用程序语言来表达。

在设计程序的同时也增长了翻阅有关文献的能力,加强了实践能力及自学能力,培养了分析问题 、编程和动手能力,掌握了程序设计基本技能。

以下是课程设计中的错误总结和分析:

 

5.3心得体会

 通过此次学生成绩信息管理系统,让我熟悉了软件开发的流程,相信在以后的工作中我能在最短的时间内投入到大的程序开发项目中。

在进行课程设计的前两天,不知道从何入手,很是不解,不知道我们究竟要做什么。

后来通过上网找资料,才发现有好多做法,根本就看不完,此时才真正意识到差距所在。

于是,通过借鉴网络作品,才发现作品并不是一味的照搬照抄才实用,集众家之所成,不断完善,才能造出属于自己的作品,并且实用。

在整个课程设计中,我认为最重要的就是耐心和细心。

细心,就是在编写过程中注意拼写,仔细编写程序;耐心,就是程序编译中出现很多错误的时候能够耐心去修改,只有这样,才能很好的完成程序。

虽然在整个过程中出现了不少错误,但最终还是圆满完成了,此次程序设计的经历让我学到了太多,同时也让我理解到参加的项目越大越能学到知识,因此以后我会积极主动的去参加一些项目,以此来提高自己的技能和编程经验。

5.4程序设计方法

①认真读题,审题。

②将一个大程序分成若干个小程序,逐步攻破。

参考文献

C程序设计

C语言从入门到精通

 

系统源程序:

 

#include

#include

#include

#include

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

voidmainhome();//主界面

voidinput(structworker*op);//录入插入

voiddisplay(structworker*ab);//显示全部信息

voidchazhao(structworkerwork[100]);

voidpaixu(structworkerwork[100]);//排序

voidshanchu(structworkerwork[100]);//删除记录

voidleft();//退出界面

voidxiugai(structworkerwork[100],inta);

structworker

{

doublenumber;/*工号*/

charname[20];//名字

charxingbie[15];//性别

intage;//年龄

charxueli[10];//学历

intwage;//工资

charaddress[80];//住址

chartelephone[20];//电话号码

};

structworkerwork[100];

intmain(void)

{inti,k=0;//i代表之后循环点的次数k代表循环次数,本程序中,错误超过三次,会退出系统。

charusers[50],mima[30];//定义用户名,密码。

system("color5f");//设置背景颜色。

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

printf("\t\t\t\t┃************************************************************┃\n");

printf("\t\t\t\t┃**┃\n");

printf("\t\t\t\t┃**┃\n");

printf("\t\t\t\t┃**┃\n");

printf("\t\t\t\t┃**┃\n");

printf("\t\t\t\t┃*欢迎使用*┃\n");

printf("\t\t\t\t┃*职工信息管理系统*┃\n");

printf("\t\t\t\t┃**┃\n");

printf("\t\t\t\t┃**┃\n");

printf("\t\t\t\t┃**┃\n");

printf("\t\t\t\t┃**┃\n");

printf("\t\t\t\t┃**┃\n");

printf("\t\t\t\t┃************************************************************┃\n");

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

{

printf("\n请输入用户名:

");

gets(users);

printf("\n请输入密码:

");

gets(mima);

if((strcmp(users,"dong")==0)&&(strcmp(mima,"19981226")==0))

{

printf("\n您已经成功登录");

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

{

printf(".");

Sleep(100);

}

system("cls");

mainhome();

break;

}

k++;

if(k<3)

{

printf("\n用户名或密码无效请重新输入:

\n");

}

if(k==3)

{

printf("\n连续输入错误3次将退出程序\n");

Sleep(2000);

exit(0);

}

}

}

 

voidmainhome()

{

intn;

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

printf("\t\t\t\t┃************************************************************┃\n");

printf("\t\t\t\t┃***┃\n");

printf("\t\t\t\t┃*1.录入员工资料*2.显示员工资料*┃\n");

printf("\t\t\t\t┃***┃\n");

printf("\t\t\t\t┃************************************************************┃\n");

printf("\t\t\t\t┃***┃\n");

printf("\t\t\t\t┃*3.员工信息查询*4.员工信息排序*┃\n");

printf("\t\t\t\t┃***┃\n");

printf("\t\t\t\t┃************************************************************┃\n");

printf("\t\t\t\t┃***┃\n");

printf("\t\t\t\t┃*5.删除/修改记录*0.退出信息系统*┃\n");

printf("\t\t\t\t┃***┃\n");

printf("\t\t\t\t┃************************************************************┃\n");

printf("\n请选择:

");structworker*m;m=work;

scanf("%d",&n);

switch(n)

{

case1:

input(work);

break;

case2:

display(m);

break;

case3:

chazhao(work);

break;

case4:

paixu(work);

break;

case5:

shanchu(work);

break;

case0:

left();

break;

}

}

voidinput(structworkerwork[100])

{

inti;

FILE*irry;//定义一个文件指针

if((irry=fopen("C:

\\20171008189董吉华\\fl2-1.txt","a+"))==NULL)

{

printf("sorry,I’merror:

\n");

exit(0);

}

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

{

if(!

feof(irry))

{

fscanf(irry,"\t%lf\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",&work[i].number,work[i].name,work[i].xingbie,

&work[i].age,work[i].xueli,&work[i].wage,work[i].address,work[i].telephone);

}

else

break;

}

intk=i;

system("cls");

charc;

printf("员工工号:

\n");

scanf("%lf",&work[k].number);

for(i=0;i

{

if(work[k].number<0)

printf("请输入正整数:

\n");intm=0;

for(m=0;m<4;m++)

{

if(work[i].number==work[k].number)

{

printf("该职工号和之前%d员工相同,请重新输入:

\n",i+1);

printf("员工工号:

\n");

scanf("%lf",&work[k].number);

if(work[i].number!

=work[k].number)

break;

if(work[i].number==work[k].number&&m<3)

{

printf("该职工号和之前%d员工相同,请重新输入:

\n",i+1);

printf("员工工号:

\n");

scanf("%lf",&work[k].number);

}

if(m>=4);

exit(0);

}

}

}

printf("姓名:

\n");

scanf("%s",work[k].name);

printf("性别(F:

M):

\n");

scanf("%s",work[k].xingbie);

printf("年龄:

\n");

scanf("%d",&work[k].age);

printf("学历(中专,大专,本科,硕士,博士,其它):

\n");

scanf("%s",work[k].xueli);

printf("工资:

\n");

scanf("%d",&work[k].wage);

printf("住址:

\n");

scanf("%s",work[k].address);

printf("电话:

\n");

scanf("%s",work[k].telephone);

printf("\n是否继续输入(y/n):

\n");

fprintf(irry,"%.0f\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",work[k].number,work[k].name,work[k].xingbie,work[k].age,

work[k].xueli,work[k].wage,work[k].address,work[k].telephone);

if(fclose(irry))

{

printf("sorry,Icannotclose!

!

\n");

exit(0);

}

do

{

c=getchar();

if(c=='y'||c=='Y')

{

if(k<100)

{

input(work);

}

else

{

printf("记录数已满\n");

Sleep(2000);

system("cls");

mainhome();

}

}

elseif(c=='n'||c=='N')

{

system("cls");

mainhome();

}

else;

}while((c!

='y')&&(c!

='n')&&(c!

='Y')&&(c!

='N'));

}

voiddisplay(structworker*ab)

{

FILE*read;

if((read=fopen("C:

\\20171008189董吉华\\fl2-1.txt","r+"))==NULL)

{

print

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2