11网信计算机C语言课程设计计划书.docx

上传人:b****5 文档编号:29293013 上传时间:2023-07-22 格式:DOCX 页数:12 大小:86.16KB
下载 相关 举报
11网信计算机C语言课程设计计划书.docx_第1页
第1页 / 共12页
11网信计算机C语言课程设计计划书.docx_第2页
第2页 / 共12页
11网信计算机C语言课程设计计划书.docx_第3页
第3页 / 共12页
11网信计算机C语言课程设计计划书.docx_第4页
第4页 / 共12页
11网信计算机C语言课程设计计划书.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

11网信计算机C语言课程设计计划书.docx

《11网信计算机C语言课程设计计划书.docx》由会员分享,可在线阅读,更多相关《11网信计算机C语言课程设计计划书.docx(12页珍藏版)》请在冰豆网上搜索。

11网信计算机C语言课程设计计划书.docx

11网信计算机C语言课程设计计划书

C语言课程设计报告

 

题目:

职工信息管理系统设计

设计者:

王锐

专业班级:

网信11-3班

学号:

311109050323

指导教师:

张保定

 

2012年6月13日

河南理工大学计算机学院

目录

设计任务书……………………………………………………3

1.题目与要求…………………………………………………3

1.1问题提出…………………………………………………3

1.2本系统涉及的知识点…………………………………………3

1.3功能要求……………………………………………………4

2.功能设计……………………………………………………4

2.1算法设计……………………………………………………4

2.2部分模块流程图……………………………………………5

3.程序代码设计……………………………………………6

3.1输入模块……………………………………………………6

3.2保存模块(参考)……………………………………………6

3.3删除模块……………………………………………………7

3.4添加模块……………………………………………………7

3.5查询模块……………………………………………………7

5.C程序设计总结……………………………………………8

参考文献………………………………………………………8

 

设计任务书

1题目与要求

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

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

Ø系统以菜单方式工作

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

Ø职工信息浏览功能

Ø查询和排序功能:

(至少一种查询方式)

●按工资查询

●按学历查询等

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

1.1问题提出

本人计划编写一个职工信息管理系统,主要以菜单方式工作,以用来实现职工信息录入功能(职工信息用文件保存),职工信息浏览功能,对职工信息进行查询和排序,其中按工资查询,按学历查询等至少一种查询方式,并且要实现职工信息的删除和修改功能(任选项)。

1.2本系统涉及的知识点

结构体、数组、循环、函数、分支

1.3功能要求

本人所要实现的题目功能

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

2、浏览职工信息;

3、分别按职工号,学历,电话号码查询职工信息;

4、删除职工信息,添加职工信息,修改职工信息;

5、退出职工信息管理系统。

2功能设计

1.菜单模块:

显示职工管理系统的主菜单,供用户选择所需的功能

2.输入模块:

输入职工的工号、姓名以及其它的一些职工的相关信息

3.保存模块:

将内存中职工的信息输出到磁盘文件中(网上参考)

4.删除模块:

删除需要删除的职工的所有信息

5.添加模块:

添加需要添加的职工的相关信息

6.查询模块:

可以按职工号,职工的电话来查询职工的相关信息

2.1算法设计

将题目分成若干模块或部分、各模块或部分的算法设计(小四,宋体),

本系统需要实现的功能要求:

1.通过自己定义的voidmenu()函数,do-while循环体以及switch条件选择语句来实现显示职工管理系统的主菜单,供用户选择所需的功能。

************欢迎进入职工信息管理系统**********

1.录入职工信息2.浏览职工信息

3.查询职工信息4.删除职工信息

5.添加职工信息6.修改职工信息

7.退出

********************谢谢使用******************

图1职工信息管理系统主菜单

1)选择1,调用for循环函数,进入函数后利用scanf和printf语句实现一个职工信息的录入,如图2所示的菜单 

1请输入职工号

2请输入姓名

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

4请输入年龄

5请输入学历

6请输入工资

7请输入住址

8请输入电话

图2职工信息菜单

根据所选菜单编写相应代码:

输入函数input:

利用循环输入的方式,将有关信息存入结构数组,结构数组根据实际的人数,采用动态方式建立……

2)选择2,通过voiddisplay()函数和for循环将图2的类容呈现出来

3)选择3,通过voidsearch_num()函数,if条件选择,以及switch选择语句对职工信息进行查询

4)选择4,通过voiddel()删除函数,删除职工信息

5)选择5,通过自己定义的voidadd()函数来实现。

6)选择6,以修改需要修改的职工的相关信息,通过自己定义的voidmodify()函数来实现。

 

2.2部分模块流程图

3程序代码设计

输入模块:

输入职工的工号、姓名以及其它的一些职工的相关信息,通过自己定义的voidinput()函数来实现。

1)函数原形voidinput()

2)功能:

通过for循环创建职工基本信息.

3)变量及类型:

inti:

循环控制变量。

intn:

整型形参变量,接收main()传过来的数组人数。

保存模块(参考):

将内存中职工的信息输出到磁盘文件中,可以通过自己定义的voidsave(int)函数来实现(网上参考)。

1)函数原形:

voidsave(int)

2)功能:

将内存中职工的信息输出到磁盘文件中并保存

删除模块:

删除需要删除的职工的所有信息,通过自己定义的voiddel()函数来实现。

1)函数原形:

voiddel()

2)功能:

删除需要删除的职工的所有信息

3)变量及类型:

inti,j:

循环控制变量。

charname[20]一维数组

添加模块:

添加需要添加的职工的相关信息,通过自己定义的voidadd()函数来实现。

1)函数原形:

voidadd()

2)功能:

添加需要添加的职工的相关信息

3)变量及类型:

intn整型形参变量,inti循环控制变量。

查询模块:

可以按职工号和职工的电话来查询职工的相关信息,通过自己定义的voidsearch_num()函数和voidsearch_tel函数来实现。

1)函数原形:

voidsearch_num()和voidsearch_tel函数

2)功能:

按职工号和职工的电话来查询职工的相关信息

4C程序设计总结

内容:

1.程序调试情况:

调试还行,问题不大

2.本人在程序设计中感想:

通过这次课程设计,增加了我们对软件技术的了解,虽然还不明确软件技术包含的具体内容,但从学习C语言这门课程开始,已发现程序设计的好处,它对我们数学的学习也有很大的帮助。

参考文献(左对齐,宋体粗四号)

[1]《C程序设计》(第三版)谭浩强著清华大学出版社清华大学出版社

[2]《C程序设计题解与上机指导》(第三版)谭浩强编著

附录:

程序清单

#include

#include

#include

#defineN100

structemployee{intnum;charname[20];charsex;intage;charxueli[30];intwage;charaddr[30];chartel[20];}em[100];/*定义一个结构体*/

voidmenu();voidinput();voidsave(int);voiddisplay();voiddel();voidadd();voidsearch();voidsearch_num();voidsearch_xueli();voidsearch_tel();voidmodify();/*定义各函数*/

voidmain(){menu();intn,flag;chara;

do{printf("请选择你需要操作的步骤(1--7):

\n");scanf("%d",&n);

if(n>=1&&n<=7){flag=1;break;}

else{flag=0;printf("您输入有误,请重新选择!

");}}while(flag==0);

while(flag==1){switch(n){case1:

printf("◆◆◆输入职工信息◆◆◆\n");printf("\n");input();break;case2:

printf("◆◆◆浏览职工信息◆◆◆\n");printf("\n");display();break;case3:

printf("◆◆◆按职工号查询职工信息◆◆◆\n");printf("\n");search();break;case4:

printf("◆◆◆删除职工信息◆◆◆\n");printf("\n");del();break;case5:

printf("◆◆◆添加职工信息◆◆◆\n");printf("\n");add();break;case6:

printf("◆◆◆修改职工信息◆◆◆\n");printf("\n");modify();break;case7:

exit(0);break;default:

break;}getchar();printf("\n");printf("是否继续进行(yorn):

\n");scanf("%c",&a);

if(a=='y'){flag=1;system("cls");/*清屏*/menu();/*调用菜单函数*/printf("请再次选择你需要操作的步骤(1--7):

\n");scanf("%d",&n);printf("\n");}

elseexit(0);}}

voidmenu()/*菜单函数*/{printf("************欢迎进入职工信息管理系统**********\n");printf("1.录入职工信息");printf("2.浏览职工信息\n")printf("3.查询职工信息");printf("4.删除职工信息\n");printf("5.添加职工信息");printf("6.修改职工信息\n");printf("7.退出\n");printf("********************谢谢使用******************\n");printf("\n");printf("\n");}

voidinput()/*录入函数*/{inti,m;printf("请输入需要创建信息的职工人数(1--100):

\n");scanf("%d",&m);for(i=0;i

");scanf("%d",&em[i].num);printf("请输入姓名:

");scanf("%s",em[i].name);getchar();printf("请输入性别(f--女m--男):

");scanf("%c",&em[i].sex);printf("请输入年龄:

");scanf("%d",&em[i].age);printf("请输入学历:

");scanf("%s",em[i].xueli);printf("请输入工资:

");scanf("%d",&em[i].wage);printf("请输入住址:

");scanf("%s",em[i].addr);printf("请输入电话:

");scanf("%s",em[i].tel);printf("\n");}printf("\n创建完毕!

\n");save(m);}

voidsave(intm)/*保存文件函数....参考*/{inti;FILE*fp;if((fp=fopen("employee_list","wb"))==NULL){printf("cannotopenfile\n");exit(0);}for(i=0;i

=1)printf("filewriteerror\n");fclose(fp);}intload()/*导入函数*/{

FILE*fp;

inti=0;

if((fp=fopen("employee_list","rb"))==NULL)

{printf("cannotopenfile\n");exit(0);}

else{do{fread(&em[i],sizeof(structemployee),1,fp);i++;}while(feof(fp)==0);}

fclose(fp);return(i-1);}

voiddisplay()/*浏览函数*/

{inti;intm=load();printf("职工号\t姓名\t\t性别\t\t年龄\n");

for(i=0;i

voiddel()/*删除函数*/

{intm=load();inti,j,n,t,flag;charname[20];printf("\n原来的职工信息:

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

\n");scanf("%s",name);for(flag=1,i=0;flag&&i

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

{printf("\n已找到此人,原始记录为:

\n");printf("职工号\t姓名\t\t性别\t\t年龄\n");printf("\n%d\t\t%s\t%c\t\t%d\t\n",em[i].num,em[i].name,em[i].sex,em[i].age);printf("\n学历\t\t工资\t\t住址\t\t电话\n");printf("\n%s\t%d\t\t%s\t%s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].tel);printf("\n确实要删除此人信息请按1,不删除请按0\n");scanf("%d",&n);if(n==1)

{for(j=i;j

if(!

flag)

m=m-1;

elseprintf("\n对不起,查无此人!

\n");printf("\n浏览删除后的所有职工信息:

\n");save(m);/*调用保存函数*/display();/*调用浏览函数*/printf("\n继续删除请按1,不再删除请按0\n");scanf("%d",&t);switch(t)

{case1:

del();break;case0:

break;default:

break;}}

voidadd()/*添加函数*/

{FILE*fp;intn;inti;intm=load();printf("\n原来的职工信息:

\n");display();printf("\n");fp=fopen("emploee_list","a");printf("请输入想增加的职工数:

\n");scanf("%d",&n);for(i=m;i<(m+n);i++)

{printf("\n请输入新增加职工的信息:

\n");printf("请输入职工号:

");scanf("%d",&em[i].num);printf("\n");printf("请输入姓名:

");scanf("%s",em[i].name);getchar();printf("请输入性别(f--女m--男):

scanf("%c",&em[i].sex);printf("请输入年龄:

");scanf("%d",&em[i].age);printf("请输入学历:

");scanf("%s",em[i].xueli);scanf("%d",&em[i].wage);printf("请输入住址:

");scanf("%s",em[i].addr);printf("请输入电话:

");scanf("%s",em[i].tel);printf("\n");count=count+1;printf("已增加的人数:

\n");printf("%d\n",count);}printf("\n添加完毕!

\n");m=m+count;printf("\n浏览增加后的所有职工信息:

\n");printf("\n");save(m);display();fclose(fp);}

voidsearch()/*查询函数*/

{intt,flag;do{printf("\n按职工号查询请按1;按学历查询请按2;按电话号码查询请按3;进入主函数请按4\n");scanf("%d",&t);if(t>=1&&t<=4)

{flag=1;break;}else{flag=0;printf("您输入有误,请重新选择!

");}}

while(flag==0);while(flag==1){switch(t){case1:

printf("按职工号查询\n");search_num();break;case2:

printf("按学历查询\n");search_xueli();break;case3:

printf("按电话号码查询\n");search_tel();break;case4:

main();break;default:

break;}}}

voidsearch_num()

{intnum;inti,t;intm=load();printf("请输入要查找的职工号:

\n");scanf("%d",&num);for(i=0;i

\n");printf("职工号\t姓名\t\t性别\t\t年龄\n");printf("\n%d\t\t%s\t%c\t\t%d\t\n",em[i].num,em[i].name,em[i].sex,em[i].age);printf("\n学历\t\t工资\t\t住址\t\t电话\n");printf("\n%s\t%d\t\t%s\t%s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].tel);break;}

if(i==m)printf("\n对不起,查无此人\n");printf("\n");printf("返回查询函数请按1,继续查询职工号请按2\n");scanf("%d",&t);switch(t){case1:

search();break;case2:

break;default:

break;}}

voidsearch_xueli()

{charxueli[30];inti,t;intm=load();printf("请输入要查找的学历:

\n");scanf("%s",xueli);for(i=0;i

{printf("\n已找到,其记录为:

\n");printf("职工号\t姓名\t\t性别\t\t年龄\n");printf("\n%d\t\t%s\t%c\t\t%d\t\n",em[i].num,em[i].name,em[i].sex,em[i].age);printf("\n学历\t\t工资\t\t住址\t\t电话\n");printf("\n%s\t%d\t\t%s\t%s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].tel);}

if(i==m)printf("\n对不起,查无此人\n");printf("返回查询函数请按1,继续查询学历请按2\n");scanf("%d",&t);switch(t){case1:

search();break;case2:

break;default:

break;}}

voidsearch_tel()

{chartel[20];inti,t;intm=load();printf("请输入要查找的电话号码:

\n");scanf("%s",tel);for(i=0;i

printf("\n已找到此人,其记录为:

\n");printf("职工号\t姓名\t\t性别\t\t年龄\n");printf("\n%d\t\t%s\t%c\t\t%d\t\n",em[i].num,em[i].name,em[i].sex,em[i].age);printf("\n学历\t\t工资\t\t住址\t\t电话\n");printf("\n%s\t%d\t\t%s\t%s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].tel);break;}

if(i==m)printf("\n对不起,查无此人\n");printf("\n");printf("返回查询函数请按1,继续查询电话号码请按2\n");scanf("%d",&t);switch(t){case1:

search();break;case2:

break;default:

break;}}

voidmodify()/*修改函数*/

{intnum;charname[20];charsex;intage;charxueli[30];intwage;charaddr[30];chartel[20];intb,c,i,n,t,flag;intm=load();printf("\n原来的职工信息:

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

\n");scanf("%s",name);for(flag=1,i=0;flag&&i

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

当前位置:首页 > 考试认证 > 财会金融考试

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

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