职工信息管理系统课程设计Word文件下载.docx

上传人:b****6 文档编号:17976752 上传时间:2022-12-12 格式:DOCX 页数:32 大小:752.40KB
下载 相关 举报
职工信息管理系统课程设计Word文件下载.docx_第1页
第1页 / 共32页
职工信息管理系统课程设计Word文件下载.docx_第2页
第2页 / 共32页
职工信息管理系统课程设计Word文件下载.docx_第3页
第3页 / 共32页
职工信息管理系统课程设计Word文件下载.docx_第4页
第4页 / 共32页
职工信息管理系统课程设计Word文件下载.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

职工信息管理系统课程设计Word文件下载.docx

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

职工信息管理系统课程设计Word文件下载.docx

添加功能:

完成添加新职工的信息的任务。

修改功能:

通过输入职工的姓名完成对该名职工的信息进行修改。

退出职工信息管理系统。

2.2系统模块

进入系统后,首先进入菜单选项,选择自己所要进行的操作。

(1)录入职工信息,并保存。

(2)浏览职工信息,先读出录入后的职工信息,然后进行浏览。

(3)查询职工信息,先选择用什么进行查询(按学历,职工号,电话号),若选择为按学历查找,就输入要查找的学历信息,如果未找到该学历,系统就会提示查无此人,若找到后系统就会显示已查到此人,并输出该职工的信息。

(4)删除职工信息,先输入要删除职工的姓名,进行查找,如果未找到该学历,系统就会提示查无此人,若找到后系统就会显示已查到此人,并输出该职工的信息。

然后系统就会提示是否删除给职工的信息。

删除后就会显示新的职工信息。

(5)添加职工信息,先输入要添加的职工人数,之后依次输入要添加的信息,最后确认是否添加。

(6)修改职工信息,先输入要修改职工的姓名,进行查找,如果未找到该学历,系统就会提示查无此人,若找到后系统就会显示已查到此人,并输出该职工的信息。

接着系统就会提示是否要对该职工进行修改,修改时,系统就会提示:

将会对哪个地方进行修改,最后确定自己的修改,系统就会显示修改后的职工信息。

图2-2系统模块

3系统存储结构说明

3.1系统存储信息说明

系统储存的信息有职工号,姓名,性别,年龄,学历,工资数,地址,电话

职工号:

定义为长整型,由一串数字表示。

姓名:

定义为字符数组型,由一串字母表示。

性别:

定义为字符型,由一个字母表示。

(m表示男,f表示女)

年龄:

定义为整型,由一串数字表示。

学历:

工资:

地址:

电话:

定义为字符数组型,由一串数字表示。

3.2系统存储结构设计

系统中定义一个结构体来存储以上信息,使用结构体可以使问题变得简单,因为结构体允许用户自定义数据类型,而且允许一个结构体里面有多个数据项,这些数据项不需要是同一类型的数据项。

因此,结构提供了吧类型可能不同的数据项聚合成一个集合手段。

3.3系统文件使用说明

指针文件,先定义一个保存文件函数,然后定义一个文件指针,再打开那个指针文件,将内存中职工的信息输出到磁盘文件中去,最后关闭文件即可。

voidsave(intm)/*保存文件函数*/

{

inti;

FILE*fp;

if((fp=fopen("

D:

\\liushichang"

"

wb"

))==NULL)

{

printf("

cannotopenfile\n"

);

exit(0);

}

for(i=0;

i<

m;

i++)/*将内存中职工的信息输出到磁盘文件中去*/

if(fwrite(&

em[i],sizeof(structemployee),1,fp)!

=1)

printf("

filewriteerror\n"

fclose(fp);

}

4系统功能实现及代码描述

4.1输入职工信息

定义一个结构structemployee和数组em[N]用来存储N个职工的所有的信息(职工号em[i].number、姓名em[i].name、性别em[i].sex、年龄em[i].age、学历em[i].xueli、工资em[i].wage、住址em[i].addr、电话em[i].tel)。

通过for循环输入所有职工信息。

用printf语句提示需要输入的内容,接着用scanf语句输入相应内容。

输入完毕后套用保存函数save(n)将所输入的信息写入指定文件。

图4-1输入流程图

4.2浏览职工信息

声明整形变量i和m,其中i记录输出的职工序数,m用来接收传递过来的实参,用for循环输出每个职工的各种信息。

正确输入指令后输出所输入的所有职工信息。

图4-2浏览流程图

4.3查询职工信息

声明整形变量t,先用printf语句显示查询菜单,用scanf输入选择的查询方式代号,用switch(t)进入所选择的具体查询函数,包括按职工号查询、按姓名查询、按学历查询三种方式。

当t=1则表示按职工号查询,t=2表示按姓名查询,t=3表示按学历查询,t=4时返回主菜单。

图4-3查询流程

4.3.1按职工号查询

声明2个整形变量:

i记录职工的序数,number存放键盘输入的职工号。

调用导出函数load(m)(m表示当前的职工人数)。

通过scanf语句从键盘输入需要查询的职工号,并赋值给number。

用for循环,循环主体是先判断em.number中是否有输入的职工号,如果有,用printf语句输出与职工号相对应的该职工所有信息,再跳出循环;

如果没有,输出“对不起,查无此人”,并调用search()返回查询菜单。

图4-3-1按姓名查询流程图

4.4删除职工信息

先读出文件中所有职工的信息,并显示。

然后输入要删除职工的姓名,首先定义个局部变量name[](字符数组),用保存用户输入姓名。

用户输入name[]的值。

从职工数组下标为0的元素(即第一个元素)开始,逐个比较name和em[i].name的值,如果相等,就输出该职工的信息,同时将标志flag置为1,表示查找成功。

当查找最后一个职工,若flag=0,则表示查找失败,输出该职工不存在。

找到之后,将位于这个职工下一个的职工信息依次转移的该信息上来进行覆盖,然后再将接下来一个员工的信息转移到已被转移员工的位置上来….就这样循环下来直到将被删除职工之后所有的职工信息都转移完后,将总人数减1,再显示删除后所有职工的信息。

最后结束程序。

图4-4删除流程图

4.5添加职工信息

先输入要添加的人数n,m为已经有的人数,令i=m,判断i是否小于(m+n),当小于成立的时候,就依次输入一个职工的信息,并保存该职工的信息,再进行判断,直到把所有的信息都输入完的时候,就显示新的职工信息,最后结束。

图4-5添加流程图

4.6修改职工信息

然后输入要修改职工的姓名,首先定义个局部变量name[](字符数组),用保存用户输入姓名。

若找到该职工后,输入数字(1-8)分别表示为1.职工号2.姓名3.性别4.年龄5.学历6.工资7.住址8.电话,选择要对那个地方进行修改若选择错误系统就会提示选择错误,进入修改后,输入自己修改后信息并确认即可。

最后显示修改后所有的职工信息,系统再提示是否进行修改。

直到修改完毕后,结束程序。

图4-6修改流程图

5系统测试

5.1菜单函数

如果输入1-7以外的数字,就会显示输入错误。

输入正确的指令系统才开始工作。

5-1菜单函数

5.2职工信息的录入。

输入指令后,按系统提示依次输入相应的信息。

图5-2职工信息的录入

5.3职工信息的浏览。

输入相应指令浏览职工信息。

图5-3-1浏览职工信息

5.4职工信息的查询(按职工号,学历,姓名查询)以学历查询为例

如果未查到,系统就会显示查无此人。

图5-4-1职工号输入不正确,查无此人

输入正确指令,将会显示查询到的职工信息。

图5-4-2查询到的职工信息

5.5职工信息的删除。

先查找,输入职工的姓名即可;

若输入错误,系统提示查无此人。

图5-5-1职工姓名输入错误,查无此人

输入正确后才能删除职工信息。

图5-5-2删除职工信息

5.6职工信息的添加。

先输入自己要添加的人数,从而依次输入要添加的信息。

图5-6-1添加职工信息

添加完毕后,系统会显示新的职工信息。

图5-6-2新的职工信息

5.7职工信息的修改。

先查找职工,再选择修改的类型,修改完后保存。

图5-7修改职工信息

5.8退出系统。

图5-8退出系统

6设计心得与总结

经过对职工信息管理系统的分析与编写,我得到了很大的收获。

自主学习的是解决问题的基础。

这次设计使我重温了以前学过的各科知识,让我对C++编程有了更深刻的认识。

在设计过程中难免遇到困难,这时候要细心仔细寻找自己所出现差错的地方,碰到不懂的地方要及时向老师或者同学们请教,记住自己犯下的错误保证以后不再犯类似错误。

通过这次课程设计,也学到和巩固了许多计算机应用基础知识,对计算机的机体也有了一个较为详细的了解。

在具体操作中对这学期所学的C语言的理论知识得到巩固加强,达到实训的目的,也发现自己的不足之处,为我们以后的c语言学习奠定了基础。

C语言具有的语句简洁,使用灵活,执行效率高等特点使解决问题变得更简单。

这次课程设计让我发现上机操作的重要作用,通过实际操作,学会C语言程序编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题、解决问题的能力。

总结出了一点点的经验如下:

(1)有明确目标,根据目标制定计划。

(2)要对系统的功能和要求做出详细的分析,并合理分解任务。

(3)把分解出来的子任务,做给一个相对独立的模块。

(4)在设计一个模块之前,要简单构想一下总界面的显视情况。

(5)针对构想出来的界面进行程序的编写。

7参考文献

[1]Brianw.Kernighan,DennisM.Ritchie.THECPROGRAMMINGLANGUAGE.北京:

清华大学出版社.2002./PRENTICEHALL,2001

[2]秦友淑.曹化工.C语言程序设计教程(第二版).武汉:

华中科技大学出版社,2002

[3]Alkelley,IraPohl.C语言教程(英文版.第4版).北京:

机械工业出版社,2004

[4]EricS.Roberts.C语言的科学和艺术(英文版).北京:

[5]严蔚敏,吴伟民.数据结构.北京:

清华大学出版社,1997

[6]王晓东.算法设计与分析.北京:

清华大学出版社,2003

[7]ISO的C语言标准:

ISO/IEC9899:

1999(E)

[8]S.P.Harbison,G.L.Steele.C语言参考手册.北京:

机械工业出版社,2003

[9]叶欣.徐金梧.TurboC使用大全.北京:

北京科海培训中心.1990

附录:

源程序清单

#include<

stdio.h>

windows.h>

string.h>

#defineN100

structemployee

longnum;

charname[20];

charsex;

intage;

charxueli[30];

intwage;

charaddr[30];

chartel[20];

}em[N];

/*定义一个结构体*/

voidmenu();

voidinput();

voidsave(int);

voiddisplay();

voiddel();

voidadd();

voidsearch();

voidsearch_num();

voidsearch_xueli();

voidsearch_tel();

voidmodify();

/*定义各函数*/

voidmain()

menu();

intn,flag;

chara;

do

printf("

请输入您的选择(1~7):

"

scanf("

%d"

&

n);

if(n>

=1&

&

n<

=7)

{

flag=1;

break;

}

else

flag=0;

您输入有误,请重新选择!

while(flag==0);

while(flag==1)

switch(n)

{case1:

printf("

------录入职工信息------\n"

\n"

input();

break;

case2:

------浏览职工信息------\n"

display();

case3:

------查询职工信息------\n"

search();

case4:

------删除职工信息------\n"

del();

case5:

------插入职工信息------\n"

add();

case6:

------修改职工信息------\n"

modify();

case7:

exit(0);

default:

getchar();

是否继续进行(yorn):

%c"

a);

if(a=='

y'

system("

cls"

/*清屏*/

menu();

/*调用菜单函数*/

请再次输入您的选择(1~7):

scanf("

else

exit(0);

voidmenu()/*菜单函数*/

printf("

-------------欢迎进入职工信息管理系统-----------\n"

1.录入职工信息"

2.浏览职工信息\n"

3.查询职工信息"

4.删除职工信息\n"

5.插入职工信息"

6.修改职工信息\n"

7.退出\n"

--------------------谢谢使用--------------------\n"

voidinput()/*录入函数*/

inti,n,flag;

请输入需要创建信息的职工人数:

scanf("

n;

i++)

do

请输入职工号(2011000-2011999):

"

em[i].num);

if(em[i].num>

=2011000&

em[i].num<

=2011999)

{

flag=1;

}

else

flag=0;

printf("

输入错误,请重新输入!

}while(flag==0);

请输入姓名:

%s"

em[i].name);

getchar();

do

请输入性别(f--女m--男):

em[i].sex);

if(em[i].sex=='

f'

||em[i].sex=='

m'

输入错误,请重新输入:

getchar();

请输入年龄:

em[i].age);

if(em[i].age<

=75&

em[i].age>

=18)

不科学,请重新输入!

请输入学历:

em[i].xueli);

请输入工资:

em[i].wage);

请输入住址:

em[i].addr);

请输入电话:

em[i].tel);

\n创建完毕!

save(n);

employee_list"

if(fwrite(&

intload()/*导入函数*/

inti=0;

if((fp=fopen("

rb"

else

fread(&

em[i],sizeof(structemployee),1,fp);

i++;

while(feof(fp)==0);

fclose(fp);

return(i-1);

voiddisplay()/*浏览函数*/

intm=load();

职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n"

for(i=0;

i++)/*m为输入部分的职工人数*/

%d\t%s\t%c\t%d\t%s\t%d\t%s\t%s\n"

em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);

voiddel()/*删除函数*/

inti,j,n,t,flag;

\n原来的职工信息:

display();

请输入要删除的职工的姓名:

name);

for(flag=1,i=0;

flag&

if(strcmp(em[i].name,name)==0)

已找到此人,原始记录为:

\n确实要删除此人信息请按1,不删除请按0\n"

if(n==1)

for(j=i;

j<

m-1;

j++)

{

strcpy(em[j].name,em[j+1].name);

em[j].num=em[j+1].num;

em[j].sex=em[j+1].sex;

em[j].age=em[j+1].age;

strcpy(em[j].xueli,em[j+1].xueli);

em[j].wage=em[j+1].wage;

strcpy(em[j

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

当前位置:首页 > 法律文书 > 辩护词

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

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