版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学号09710219
上点摘飞也强名优
数据构造课程设计
设计阐明书
员工管理系统
起止日期:2023年1月2日至2023年1月6日
学生姓名
班级09计算机z班
成绩____________________________
指导教师(签字)____________________________
电子与信息工程系
2023年1月4日
天津都市建设学院
课程设计任务书
2023—2023学年第1学期
电子与信息工程系计算机专业09级二班级
课程设计名称:数据构造课程设计
设计题目:员工管理系统_________________________
完毕期限:自2023年1月2日至2023年1月6日共1周
设计根据、规定及重要内容(可另加附页):
一、设计目的
熟悉多种数据构造和运算,会使用数据构造的基本操作处理某些实际问题。
二、设计规定
(1)重视课程设计环节,用严谨、科学和踏实的工作态度看待课程设计的每•项任务;
(2)按照课程设计的题目规定,独立地完毕各项任务,严禁抄袭;凡发现抄袭,抄袭者与被抄
袭者皆以零分计入本课程设计成绩。凡发现试验汇报或源程序雷同,波及U勺所有人员皆以零分计入
本课程设计成绩:
(3)学生在接受设计任务后,首先要按设计任务书的规定编写设计进程表;
(4)认真编写课程设计汇报。
三、设计内容
员工管理系统:
1)问题描述
每个员工的信息包括:编号、姓名、性别、出生年月、学历、职务、、住址等。系统可以完
组员工信息的查询、更新、插入、删除、排序等功能。
2)基本规定
(1)排序:按不同样关键字,对所有员工的信息进行排序。
(2)查询:按特定条件查找员工。
(3)更新:按编号为某个员工日勺某项信息进行修改。
(4)插入:加入新员工的信息。
(5)删除:按编号删除已离职的员工的信息。
四、参照文献
1.王红梅.数据构造.清华大学出版社
2.王红梅.数据构造学习辅导与试验指导.清华大学出版社
3.严蔚敏,吴伟民.数据构造(C语言版).清华大学出版社
五.重要内容:
1.系统流程图
删
添除
加顾
顾客
客用
3能
:
代码
2.源
.h>
stdio
de<
inclu
b.h>
stdli
ude<
^incl
文献
数头
屏函
〃清
.h>
ndows
<wi
lude
^inc
h>
ing.
<str
ude
i+incl
tuff
ctS
stru
charnumber[10];〃员工编号
charname[10];〃员工姓名
charsex[8];〃员工性别
charborth[10];〃员工生日
chardegree[20];〃员工学历
charbusiness[20];〃员工职务
charphone[15];〃员工
charplace[50];〃员工住址
charcon[501;〃判断关键字专用
structStuff*next;
);
charMenu(void);〃菜单显示
structStuff*App(structStuff*hcad);〃添加
voidSort(structStuff*head);〃排序
structStuff*Ser(structStuff*head);〃查找
voidChn(structStuff*head,charn[10]);〃更改
voidScpy(char*p,char*q);〃排序中用于互换员工信息
structStuff*Del(structStuff*head,charn[101);〃删除
intSei(charch,structStuff*p,structStuff*q);〃判断排序及关键字专用函数
voidPrf(structStuff*head);〃输出
voidFre(structStuff*head);〃释放
inti=l;〃定义全局变量,实现实时员工人数记录
intmain(void)
(
charii[10];
structStuff*hcad=NULL;〃链表头指针定义
while(l)
(
switch(MenuO)
(
case'1':
printf(〃请输入员工信息,直接输入'结束\n");
head=App(head);
break;
case'2':
Soi't(head);
break;
case'3':
head=Ser(head);
break;
case'4’:
printf("员工信息如下:\n");
Prf(head);
break;
case'5':
printf("请输入员工编号:");
scanfn);
Chn(head,n);
break;
case'6':
printf("请输入员工编号:");
scanfn);
head=Del(head,n);
break;
case'O':
printf("欢迎下次光顾,88!\n");
exit(0);
default:
printf(〃输入错误,请重新输入!\n");
}
fflush(stdin);//清晰缓冲区
printf("按任意键继续、");
getcharO;
system(/,cls,z);〃清屏效果
)
Fre(hcad);
return0;
)
〃菜单函数
charMenu(void)
(
charch;
printf("---------------请选择-----------\n");
printf("1.添加员工信息\n2.员工信息排序\n3.查找员工唁息\n4.输出员工信息\n5.更改员工信
息\n6.删除员工信息\n0.退出\n------------------------------------\n〃);
scanf("%c”,&ch);
returnch;
)
〃添加组员函数
〃输入参数:链表头指针
〃返回参数:链表头指针
structStuff*App(structStuff*head)
structStuff*p=NULL,*q=head;
while(i)
(
p=(structStuff*)malloc(sizeof(structStuff));//申请构造体空间
if(p==NULL)
(
printf("内存不够!\n");
exit(0);
)
p->next=NULL;〃指针域为空
printf("请输入第%d名员工:\n〃,i);
printfC编号I姓名I性别I出生年月I学历I职务II住址:\n");
fflush(stdin);
scanf(“为s',p->number);
if(!strcmp(p->number,"#"))
(
free(p);〃释放不需要的构造体内存
break;
}
else
++i;
scanf(,,%s%s%s%s%s%s%s/,,p->name,p->sex,p->borth,p->degree,p->business,p->phone,p-
>place);
p->con[0]='\0';〃防止背面判断出现随机值
if(head==NULL)
head=p;
else
(
while(q->next!=NULL)〃防止结束后再次输入时出现问题
q=q->next;
q->next=p;
)
q=P;〃每次都加在链表尾
)
)
returnhead;
)
〃排序函数
〃输入参数:头指包
voidSort(structStuff*head)
charch;
structStuff*p,*q,*r;
while(l)
(
printf("请选择排序条件:1.编号2.姓名3.性别4.出生年月5.学历6.职务7.8.地址0.退出
\n");
scanf("%cw,&ch);
if(ch=='O')
break;
if(ch<T'||ch>'8')
(
printf("输入错误,请重新输入!\rT);
continue;
)
p二head;
while(p->next!=NULL)//选择排序
(
q=p->next;
r=p;
while(q!=NULL)
if(Sei(ch,r,q))//调用判断函数
r=q;
q=q->next;
)
if(r!=p)〃互换内容
(
Scpy(r->number,p->number);
Scpy(r->name,p->name);
Scpy(r->sex,p->sex);
Scpy(r->borth,p->borth);
Scpy(r->degree,p->degree);
Scpy(r->business,p->business);
Scpy(r->phone,p->phone);
Scpy(r->place,p->place);
)
p=p->next;
}
Prf(head);〃输出
}
〃互换函数
voidScpy(char*p,char*q)
(
charc[50];
strcpy(c,p);
strcpy(p,q);
strcpy(q,c);
)
〃判断函数
〃输出参数:1为真,0为假
intSei(charch,structStuff*p,structStuff*q)
(
switch(ch)〃实现各个关键字查找
(
caser:
returnstrcmp(q->numbor,p->number)<0|strcmp(q->con,p->number)==0;〃排序条件及
查找条件
case'2':
returnstrcmp(q->name,p->name)<0||strcmp(q->con,p->name)==0;
case'3':
returnstrcmp(q->sex,p->sex)<0||strcmp(q->con,p->sex)==0;
case'4':
returnstrcmp(q->borth,p->borth)<0|strcmp(q->con,p->borth)==0;
case'5':
returnstrcmp(q->degree,p->degree)<0|strcmp(q->con,p->degree)==0;
case'6':
returnstrcmp(q->business,p->business)<01|strcmp(q->con,p->business)==0;
case'7,:
returnstrcmp(q->phone,p->phone)<0Istrcmp(q->con,p->phone)==0;
case'81:
returnstrcmp(q->place,p->place)<0|strcmp(q->con,p->place)==0;
default:
exit(0);
)
)
〃查找函数
structStuff*Ser(structStuff*head)
structStuff*p=NULL,*q,a={〃\0〃,"\0",〃\0","\0","\0","\0〃,"\0〃,〃\0"};〃防止判断时错误
intflag;〃查找判断
charch,sh;
q=&a;
while(l)
(
printf("请输入要查找的条件:1.编号2.姓名3.性别4.出生年月5.学历6.职务7.8.住址0.
退出\n");
scanf("%c”,&ch);
if(ch==,0')
break;
if(ch<'1'||ch>'8')
(
printf("输入错误,请重新输入!\rT);
continue;
)
fflush(stdin);
printf("请输入:");
gets(q->con);
p=head;〃指向表头
flag=0;
while(p!=NULL)
if(Sei(ch,p,q))
printf("员工信息如下:\n");
printfC编号|姓名|性别|出生年月|学历|职务||住址
\n%s%s%s%s%s%s%s%s\n"
,p->number,p->name,p->sex,p->borth,p->degree,p->business,p->phone,p->place);
printf("与否需要:1.更改2.删除3.继续\n");
scanf(*%c”,&sh);
if(sh==,r)
Chn(head,p->number);〃调用更改函数
elseif(sh==,2,)
head=Del(head,p->number);〃调用删除函数,得到H勺head必须return
flag=l;
break;
)
p=p->next;
}
if(flag==O)
printf("没有找到该员工信息!\n");
}
returnhead;
)
〃更改函数
〃输入参数:n[10]为员工编号
voidChn(structStuff*hcad,charn[10])
(
structStuff*p=hcad;
intflag=0;
if(hcad==NULL)
printf("未找到员工信息!\n");
else
(
while(p!=NULL)
(
if(!strcmp(p->number,n))
(
printf("请输入新的信息:\n编号|姓名|性别|出生年月|学历|职务||住址\n〃);
scanf(,,%s%s%s%s%s%s%s%s*,p->number,p->name,p->sex,p->borth,p->degree,p->business
,p->phone,p->place);
printf("员工信息如下:\n");
flag++;
break;
)
p=p->next;
)
if(flag==O)
printf("未找到该员工信息!\n");
)
Prf(head);
)
〃删除函数
〃输入参数:n为员工编号
〃输出参数:头指针
structStuff*Del(structStuff*head,charnf10D
(
structStuff*p,*pr;
intflag;
flag=O;
p=head,pr=head;
if(head==NULL)
printf("未找到员工信息!\n〃);
else
(
while(strcmp(p->number,n)&&p->next!=NULL)
(
pr=P;
p=p->next;
)
if(!strcmp(p->number,n))
(
if(p==head)
head=p->next;
else
pr->next=p->next;
free(p);
printf("删除成功!\n");
i一;
}
else
printf("未找到员工信息!\n");
}
Prf(head);
returnhead;
)
〃输出函数
voidPrf(structStuff*hcad)
(
structStuff*p=hcad;
inti=l;
while(p!=NULL)
(
printf(,z%d.%s%s%s%s%s%s%s%s\rT
,i++,p->number,p->name,p->sex,p->borth,p->degree,p->business,p->phone,p->pla
co);
p=p->next;
)
)
〃释放函数
voidFrc(structStuff*hcad)
structStuff*p;
whlie(head!=NULL)
p=hcad;
head=head->next;
free(p);
)
)
六.试验界面截图:
(1)管理界面
(2)输入界面
选4?
__j'
一J
=
加
添员6
工
4
^心
!
员信
息=
工7^
1=
查
工
日
员/
找
一
I心
工
输
员
豆
息
出
一
工
员
X息
5-一
一
改
I甘
工
员
y息
盘
R主县工信息,直接输入,叱结束
主余1名员工:
号
»姓名;性别;出生年月;学历职务电话;住址:
1
主Viiiii
rn第2名员工:
u号
”!姓名:性别:出生年月:学历职务电话:住址:
(3)修改信息界面
回
选-
4
__-'4
一I
V
加J
添员d
1工z
^心
!
员信
2息
工^
-
员
工
查X
3找s-
Im心
工
员
4输X-
息
出
一
”
工
员
5/息
已
改
工
员
6/息
0盘
鹘便"翰:出生年月浮历;职务;电话;住址
(4)查询信息界面
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 车库买卖合同协议
- 26年AI预测结果应用指引
- 幼儿园运动会代表发言稿15篇
- 2025年脑机接口与康复辅具的智能控制系统
- 2026贵州遵义仁怀市医疗保障局就业见习招聘4人备考题库及答案详解(易错题)
- 2026山西吕梁市孝义市人力资源和社会保障局孝义市公益性岗位人员招聘51人备考题库及答案详解参考
- 2026四川资阳发展投资集团有限公司选聘资阳苌润资产管理有限公司总经理1人备考题库及答案详解(历年真题)
- 2026山东威海紫光博士后科研工作站招聘备考题库及答案详解参考
- 2026新疆双河市新盛建设工程检测试验有限责任公司招聘3人备考题库及答案详解(真题汇编)
- 2026江苏扬州市交通产业集团有限责任公司招聘15人备考题库附答案详解(培优b卷)
- 岗位应知应会知识培训课件
- 【《四自由度自动螺栓拧紧机器人结构设计》14000字(论文)】
- 2025中国带状疱疹相关性疼痛全程管理指南解读课件
- 东北电网调度运行规程与操作策略解析
- 变压器维护保养培训课件
- 生物安全培训考试题目含答案
- (高清版)DB34∕T 5244-2025 消防物联网系统技术规范
- 2025至2030中国农药乳化剂市场深度研究与重点企业发展分析报告
- DB11T945.1-2023建设工程施工现场安全防护场容卫生及消防保卫标准第1部分
- 河北省2024版《建筑施工安全风险管控与隐患排查治理指导手册》附400余项危险源辨识清单
- 老年康复护理培训教育课件
评论
0/150
提交评论