语c言课程设计职工信息管理系统设计大学毕设论文.docx
《语c言课程设计职工信息管理系统设计大学毕设论文.docx》由会员分享,可在线阅读,更多相关《语c言课程设计职工信息管理系统设计大学毕设论文.docx(38页珍藏版)》请在冰豆网上搜索。
![语c言课程设计职工信息管理系统设计大学毕设论文.docx](https://file1.bdocx.com/fileroot1/2023-2/7/d3904464-c66f-4ff4-9d4d-fcfeafbc4900/d3904464-c66f-4ff4-9d4d-fcfeafbc49001.gif)
语c言课程设计职工信息管理系统设计大学毕设论文
内蒙古科技大学
本科生课程设计说明书
题目:
C语言课程设计
——职工信息管理系统
学生姓名:
学号:
专业:
软件工程
班级:
15级1班
指导教师:
日期:
2016年1月4日
内蒙古科技大学课程设计任务书
课程名称
C语言课程设计
设计题目
职工信息管理系统
指导教师
时间
2016.1.5——2016.1.9
一、教学要求
1.巩固和加深学生对C语言课程的基本知识的理解和掌握
2.掌握C语言编程和程序调试的基本技能
3.利用C语言进行基本的软件设计
4.掌握书写程序设计说明文档的能力
5.提高运用C语言解决实际问题的能力
二、设计资料及参数
每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。
职工信息管理系统设计
职工信息包括职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等(职工号不重复)。
试设计一职工信息管理系统,使之能提供以下功能:
v职工信息录入功能(职工信息用文件保存)--输入
v职工信息浏览功能--输出
v查询或排序功能:
(至少一种查询方式)--算法
●按工资查询●按学历查询等
v职工信息删除、修改功能(任选项)
三、设计要求及成果
1.分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目)
2.写出详细设计说明(至少包括功能实现分析和模块流程图)
3.编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少500行代码,不包括注释和花括号)
4.设计完成的软件要便于操作和使用
5.设计完成后提交课程设计报告(请严格按照模板进行排版)
四、进度安排
第一天 选择课程设计题目,分析课题的要求
第二天 编程
第三天 编程及调试
第四天 写课程设计报告
第五天 提交课程设计报告(打印稿及电子稿)
五、评分标准
1.根据平时上机考勤、表现和进度,教师将每天点名和检查
2.根据课程设计完成情况,必须有可运行的软件。
3.根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。
六、建议参考资料
1.《C语言程序设计》,谭浩强,清华大学出版社
2.《C语言程序设计课程设计》,刘振安,机械工业出版社
目录
内蒙古科技大学课程设计任务书I
第一章需求分析3
1.1引言3
1.2任务概述3
1.3数据描述3
1.4功能需求3
1.5性能需求3
1.6运行需求4
1.7任务计划4
第二章概要设计5
2.1总体设计5
2.2数据类型设计(或数据结构设计)5
2.3接口设计//函数声明5
2.4运行界面设计5
第三章详细设计7
3.1输入模块设计7
3.2输出模块设计7
3.3查找模块设计7
3.4排序模块设计7
3.5保存及读取模块设计7
第四章测试分析8
4.1测试程序执行情况8
4.2出现的问题和解决的方法8
第五章用户手册(可选)9
5.1使用说明9
5.2运行说明9
第六章课程设计总结10
附录:
程序代码11
参考文献12
致谢13
第一章需求分析
1.1引言
随着我国国民经济建设的蓬勃发展和社会主义市场经济体系的迅速完善,各个行业都在积极使用现代化的手段,不断改善服务质量,提高工作效率,这些都在很大程度上给企业提出越来越严峻的挑战,对企业体系无论是在行政职能、企业管理水平以及优质服务上提出更高的要求。
因此,开发一套功能完整,设计合理,使用方便的企业职工信息管理系统成为很有必要的事情。
1.2任务概述
根据题目要求,编程一个职工信息管理系统以存放在文件中所以应提供文件的输入,输出,查询等操作。
1.3功能需求
1、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!
2、输入功能:
职工信息录入(职工信息用文件保存),可以一次完成若干条记录的输入。
3、浏览功能:
完成对全部职工信息的显示。
4、查找功能:
完成按职工的职工号查询职工的相关信息,并显示。
完成按职工的学历查询职工的相关信息,并显示。
完成按职工的电话号码查询职工的相关信息,并显示。
5、删除功能:
通过输入职工的姓名完成对该名职工的信息进行删除。
6、添加功能:
完成添加新职工的信息的任务。
7、修改功能:
通过输入职工的姓名完成对该名职工的信息进行修改。
8、退出职工信息管理系统。
1.4运行需求
熟练掌握C语言的基本知识。
基本掌握结构化程序设计的基本思路和方法。
1.5任务计划
课程设计时间为两周,分为五个阶段完成:
1、分析设计阶段。
在老师的指导下自主学习和钻研问题,明确设计要求,找出现实方法。
按照需求分析、总体设计、详细设计几个步骤进行。
这一阶段前1-2天完成;
2、编码调试阶段。
根据设计分析方案编写C语言代码,然后调试该代码,实现课题要求的功能。
这一阶段在3-7天完成;
3、总结报告阶段。
总结设计工作,写出课程设计说明书,包括需求分析、总体设计、详细设计、编码、测试的步骤和内容。
这一阶段在8-9天完成;
第二章概要设计
2.1总体设计
2.2数据类型设计(或数据结构设计)
structemployee//定义一个职工信息的结构体
{
intnum;
charname[10];
charsex;
intage;
charxueli[30];
intwage;
charaddr[30];
chartel[20];
}em[100];
2.3接口设计
函数名
函数类型
函数功能
main
void
主函数
menu
void
菜单模块
input
void
输入模块
save
void
保存模块
display
void
浏览模块
del
void
删除模块
add
void
添加模块
search_xuelil
void
按职工的的学历查询模块
search_wage
void
按职工的的工资查询模块
modify
void
修改模块
windows.h
exit(0)
退出系统模块
/
第三章详细设计
3.1输入模块设计
voidinput()/*录入函数*/
{
inti,m;
printf("请输入需要创建信息的职工人数\n");
scanf("%d",&m);
for(i=0;i{
printf("请输入职工号:
");
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);
}
3.2输出模块设计
voiddisplay()/*浏览函数*/
{
inti;
intm=load();
printf("职工号\t姓名\t\t性别\t\t年龄\n");
for(i=0;iprintf("\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");
for(i=0;iprintf("\n%s\t%d\t\t%s\t%s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].tel);
}
3.3查找模块设计
voidsearch()/*查询函数*/
{
intt,flag;
do
{
printf("\n按工资查询请按1按学历查询请按2进入主函数请按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_wage();
break;
case2:
printf("按学历查询\n");
search_xueli();
break;
case4:
main();
break;
default:
break;
}
}
}
voidsearch_wage()
{
intwage;
inti,t;
intm=load();
printf("请输入要查找的工资:
\n");
scanf("%d",&wage);
for(i=0;iif(wage==em[i].wage)
{
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;
}
}
voidsearch_xueli()
{
charxueli[30];
inti,t;
intm=load();
printf("请输入要查找的学历:
\n");
scanf("%s",xueli);
for(i=0;iif(strcmp(em[i].xueli,xueli)==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);
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;
}
}
3.4保存及读取模块设计
voidsave(intm)/*保存文件函数*/
{
inti;
FILE*fp;
if((fp=fopen("employee_list","wb"))==NULL)
{
printf("cannotopenfile\n");
exit(0);
}
for(i=0;iif(fwrite(&em[i],sizeof(structemployee),1,fp)!
=1)
printf("filewriteerror\n");
fclose(fp);
}
第四章测试分析
4.1测试程序执行情况
1.运行程序,进入职工信息管理系统的主菜单:
2.输入数字“1”进行录入职工信息:
3.输入“y”返回主菜单:
4.输入“2”浏览职工信息:
5.输入“y”后继续,输入“3”进行查询职工信息:
6.进入主菜单,输入“4”进行删除职工信息:
7.进入主菜单输入“5”进行添加职工信息:
8.进入主菜单输入“6”进行修改职工信息:
9.进入主菜单输入”7”退出职工信息管理系统。
第五章课程设计总结
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。
附录:
程序代码
#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_wage();
voidsearch_xueli();
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");
}
else
exit(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("请输入需要创建信息的职工人数\n");
scanf("%d",&m);
for(i=0;i{
printf("请输入职工号:
");
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;iif(fwrite(&em[i],sizeof(structemployee),1,fp)!
=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;iprintf("\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");
for(i=0;iprintf("\n%s\t%d\t\t%s\t%s\n",em[i].xueli,em[i].wage,em[i].addr,em[i].tel);
}
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{
strcpy(em[j].name,em[j+1