整理员工管理系统.docx
《整理员工管理系统.docx》由会员分享,可在线阅读,更多相关《整理员工管理系统.docx(47页珍藏版)》请在冰豆网上搜索。
整理员工管理系统
程序设计实习
实验报告
班级:
信A0812
学号:
25
姓名:
万明
指导老师:
周小雄
2010-2011第1学期
实验员工管理系统
班级:
信A0812学号:
25姓名:
万明
指导教师签名:
__________成绩:
__________
一、问题描述
设计一个计算机程序,能够实现简单的员工管理功能。
设计要求:
1.每个员工的信息包括:
编号、姓名、性别、出生年月、学历、职务、电话、住址等。
2.系统的功能包括:
(1)查询:
按特定条件查找员工。
(2)修改:
按编号对某个员工的某项信息进行修改。
(3)插入:
加入新员工的信息。
(4)删除:
按编号删除已离职员工的信息。
(5)排序:
按特定条件对所有员工的信息进行排序。
二、算法说明
1.算法功能
(1)采用结构体WORKER来存储员工的相关信息,定义一个由结构体组成的链表来实现对多个员工信息的存储,以及插入、删除、修改等操作。
(2)注册新员工信息:
采用链表的操作,向链表接点的前一个接点插入信息。
(3)查询、修改:
采用链表的操作进行信息的查找,找到后可以进行修改覆盖原来的内容。
(4)删除:
按链表的操作进行,按关键字找到相应的接点,然后删除此接点的前一个接点即可。
(5)排序:
按照员工的工号升序排序,采用冒泡排序法,并且交换所有信息。
2.函数说明
LinkCreate(LinkHead);//创建链表
voidRelease(LinkHead);//释放链表空间
LinkSearch(LinkHead);//按条件查找链表节点
LinkSearchbywno(LinkHead);//按员工号查找员工信息
LinkUpdata(LinkHead);//修改员工信息
LinkInsert(LinkHead);//插入员工信息
LinkDel(LinkHead);//删除退休员工的信息
Linkrankbywno(LinkHead);//按员工号将员工排序
voidDisplay(LinkHead);//查找链表所有节点
voidDisplay_Node(LinkpNode);//显示链表节点的信息
LinkSearchwithoutprint(LinkHead);//查找链表节点的信息但是不用输出
3.数据结构说明
structworker//定义员工结构体链表来存储员工的信息
{
intwnum;//工号
charname[15];//姓名
charsex[4];//性别
charage[12];//出生年月
charpost[6];//学历
charjob[10];//职位
unsignedinttelnum;//电话号码
charadd[23];//家庭地址
structworker*next;定义下一个接点
};
typedefstructworkerNode;
typedefNode*Link;//定义链表节点
三、测试结果
第一组测试:
(1):
测试目的:
注册新信息并显示出来。
(2):
测试输入和结果:
第二组测试:
(1)测试目的:
修改员工信息
(2)测试输入和结果:
第三组测试:
(1):
测试目的:
查找员工信息
(2):
测试输入和结果:
第四组测试:
(1):
测试目的:
按照员工号升序排序。
(2):
测试输入和结果:
第五组测试:
(1):
测试目的:
删除员工信息
(2):
测试输入和结果:
第六组测试:
(1)测试目的:
安全退出系统
(2)测试输入一结果:
附录:
源代码
#include//调用系统函数exit
#include//字符串的赋值
#include//申请空间
#include
#include
structworker//定义员工结构体链表来存储员工的信息
{
intwnum;
charname[15];
charsex[4];
charage[12];
charpost[6];
charjob[10];
unsignedinttelnum;
charadd[23];
structworker*next;
};
typedefstructworkerNode;
typedefNode*Link;//定义链表节点
LinkCreate(LinkHead);//创建链表
voidRelease(LinkHead);//释放链表空间
LinkSearch(LinkHead);//按条件查找链表节点
LinkSearchbywno(LinkHead);//按员工号查找员工信息
LinkUpdata(LinkHead);//修改员工信息
LinkInsert(LinkHead);//插入员工信息
LinkDel(LinkHead);//删除退休员工的信息
Linkrankbywno(LinkHead);//按员工号将员工排序
voidDisplay(LinkHead);//查找链表所有节点
voidDisplay_Node(LinkpNode);//显示链表节点的信息
LinkSearchwithoutprint(LinkHead);//查找链表节点的信息但是不用输出
//函数定义部分
LinkCreate(LinkHead)//创建一个带头节点的空链表
{
Head=(Link)newNode;
if(!
Head)
{
cout<<"分配内存失败!
"<returnNULL;
}
Head->next=NULL;
returnHead;
}
voidRelease(LinkHead)//释放链表
{
Linkptr;
while(Head!
=NULL)
{
ptr=Head;
Head=Head->next;
deleteptr;//释放节点资源
}
}
LinkSearch(LinkHead)//按员工号查找
{
Linkptr;
intwnum;
ptr=Head->next;
cout<<"请输入员工号码:
";
cin>>wnum;
cout<while(ptr)
{
if(ptr->wnum==wnum)
{
Display_Node(ptr);//打印满足条件的节点。
returnHead;
}
ptr=ptr->next;//查询下一节点。
}
cout<<"无此职工的信息。
"<returnHead;
}
LinkSearchbywno(LinkHead)//按员工号查找员工信息
{
Linkptr;
intcode;
ptr=Head;
cout<<"请输入职工号码:
";
cin>>code;
cout<while(ptr->next)
{
if(ptr->next->wnum==code)
Display_Node(ptr);//打印满足条件的节点。
returnptr;//返回的查询到的节点的直接前趋节点。
ptr->next=ptr->next->next;//查询下一节点。
}
returnptr;
}
LinkUpdata(LinkHead)//修改员工信息
{
Linkptr;
ptr=Searchwithoutprint(Head);
intwnum1;
charname1[15];
charsex1[4];
charage1[12];
charpost1[6];
charjob1[10];
unsignedinttelnum1;
charadd1[23];
if(ptr!
=NULL)
{
if(ptr->next)
{
cout<<"-------你现在可以修改此职工的信息了-------"<cout<<"请输入职工号码(纯数字):
";
cin>>wnum1;
cout<";
cin>>name1;
cout<";
cin>>sex1;
cout<";
cin>>age1;
cout<";
cin>>post1;
cout<";
cin>>job1;
cout<";
cin>>telnum1;
cout<";
cin>>add1;
cout<ptr->next->wnum=wnum1;
strcpy(ptr->name,name1);
strcpy(ptr->next->sex,sex1);
strcpy(ptr->next->age,age1);
strcpy(ptr->next->post,post1);
strcpy(ptr->next->job,job1);
ptr->next->telnum=telnum1;
strcpy(ptr->next->add,add1);
}
}
else
cout<<"没找到此职工的记录,无法修改。
"<returnHead;
}
LinkInsert(LinkHead)//插入员工信息
{
LinkpNew;//声明一个新节点。
intwnum1;
charname1[15];
charsex1[4];
charage1[12];
charpost1[6];
charjob1[10];
unsignedinttelnum1;
charadd1[23];
pNew=(Link)newNode;
cout<<"请输入职工号码(纯数字):
";
cin>>wnum1;
cout<";
cin>>name1;
cout<";
cin>>sex1;
cout<";
cin>>age1;
cout<";
cin>>post1;
cout<";
cin>>job1;
cout<";
cin>>telnum1;
cout<";
cin>>add1;
cout<pNew->wnum=wnum1;
strcpy(pNew->name,name1);
strcpy(pNew->sex,sex1);
strcpy(pNew->age,age1);
strcpy(pNew->post,post1);
strcpy(pNew->job,job1);
pNew->telnum=telnum1;
strcpy(pNew->add,add1);
pNew->next=Head->next;
Head->next=pNew;
cout<<"数据添加成功!
"<returnHead;
}
LinkDel(LinkHead)//删除退休员工的信息
{
Linkptr;
Linkptr_front;
ptr_front=Searchwithoutprint(Head);
if(ptr_front!
=NULL)
{
ptr=ptr_front->next;
if(ptr)
{
ptr_front->next=ptr->next;
deleteptr;//删除此节点。
cout<<"删除成功!
\n";
}
}
else
cout<<"没找到此职工的记录,无法删除。
"<returnHead;
}
Linkrankbywno(LinkHead)//直接插入法按员工号将员工排序
{
Linkptr;
Linkptr_F;
Linkptr_N;
ptr=Head->next->next;
ptr_F=Head;
Head->next->next=NULL;
while(ptr)
{
ptr_N=ptr->next;
ptr_F=Head;//ptr_F的归位。
while(ptr_F->next)
{
if(ptr->wnumnext->wnum)
{
ptr->next=ptr_F->next;
ptr_F->next=ptr;
break;
}
else
{
ptr_F=ptr_F->next;
}
}
if(ptr_F->next==NULL)
{
ptr->next=ptr_F->next;
ptr_F->next=ptr;//表示插到有序链表的最后面了。
}
ptr=ptr_N;//归位,准备下一次排序。
}
cout<<"工号从低到高,排序成功!
"<Display(Head);
returnHead;
}
voidDisplay(LinkHead)//查找所有节点
{
Linkptr;
ptr=Head->next;
cout<<"==================所有职工信息=================="<while(ptr)
{
Display_Node(ptr);
ptr=ptr->next;
}
}
voidDisplay_Node(LinkpNode)//显示节点信息
{
cout<wnum<<""<name<<""<sex<<""<age<<""<post<<""<job<<""<add<}
LinkSearchwithoutprint(LinkHead)//按员工号查找员工,但是没有输出
{
Linkptr;
intcode;
ptr=Head;
cout<<"请输入职工号码:
";
cin>>code;
while(ptr->next)
{
if(ptr->next->wnum==code)
returnptr;//注意,是返回的查询到的节点的直接前趋节点。
else
ptr->next=ptr->next->next;//查询下一节点。
}
returnNULL;
}
voidmain()
{
LinkHead=0;//初始化链表
Head=Create(Head);//创建链表
inti;
while
(1)
{
printf("*****************************************************\n");
printf("**员工管理系统**\n");
printf("**1:
注册新员工2:
修改员工信息**\n");
printf("**3:
查找员工4:
删除员工信息**\n");
printf("**5:
按员工号升序排序6:
显示所有员工**\n");
printf("**7:
退出系统**\n");
printf("*****************************************************\n");
printf("输入您所需服务:
");
scanf("%d",&i);
switch(i)
{
史雁飞雪下得很大,也很急,街道上空空的,没有几个人。
绵软柔滑的积雪,蓬蓬松松地挂在枝梢上,亮白而倦怠的枝条被压低了头。
偶尔有一阵风,也极微小极细弱,还没有感觉到,就消逝了。
在这样的天气,不会有什么顾客来当东西,当铺老板早早地关了店门,捅旺火炉,懒洋洋地趴在柜台上,一边翻看图片,一边哼着京戏。
突然,有人敲门,声音极轻。
他抬头,支起耳朵细听,什么声音也没有。
他怀疑自己听错了,于是,他又低下头继续翻看手里的图片。
敲门声又起,这次声音很重,他很吃惊,自语道,这样的鬼天气,有谁会来当东西呢?
他迟疑着打开门。
雪地里,瑟缩地站着一个男孩,十二三岁的样子,很瘦,穿得单薄,头戴一顶破旧的棉帽。
厚厚的积雪没了他的双脚,他双手揣在怀里,脸冻得通红,衣服上满是雪。
他问。
”孩子,你要当东西吗?
“小男孩支支吾吾半天,也没说出什么来。
……”我,我“男孩从雪里拔出双脚,走进店,站在门口,不敢再”哦,孩子,进店说吧。
“一朵朵大大的雪花翻飞着落在男孩的额头上,男孩打了个冷战。
”那你要做什么?
“”孩子,那你究竟来做什么呢?
“向前迈一步。
他的两只手仍在怀里揣着。
老板摘下男孩的棉帽,一边拍打棉帽上的积雪,一边说:
男孩低着头,怯怯地说。
”我妈病了。
……我“”你是来跟我借钱?
“当铺老板根机敏,一下子就听出男孩的意思:
我妈病了,老咳嗽,夜里咳嗽更厉害,医生说,是肺痨。
家里没钱,我想“男孩显得局促不安,”噢,不,不,我不是。
“男孩一边”我想把这个当给你们。
……说,一边从怀里掏出一个精致的红盒子递给老板。
男孩鞋子上的积雪,在暖烘烘的屋子里很快化成了雪水,在男孩脚下,一圈一圈,慢慢湮散。
老板眼睛盯向男孩。
”啊!
青花瓷瓶?
你是从哪儿并来的?
“老板接过红盒子,慢慢打开。
男孩变得更加局促起来,眼神中藏着遮掩”在哪呢?
快让我看看。
哇,这么漂亮的青花瓷瓶。
“老板娘听说有人来当青花瓷瓶,兴冲冲地从屋里走出来,说:
”是我家的,是我爸爸留下来的。
“不住的慌乱,他躲闪着老板的目光,慌忙说:
”我爸老早就去世了。
“老板问。
男孩目光暗淡,说:
”那你爸爸为啥不来当啊?
——你爸爸“老板娘一边仔细翻看着青花瓷瓶,一边问。
男孩低下了头,半天才说:
”那,是你妈让你来当的吗?
“你是“老板疑惑地盯着男孩:
”不,不是,我妈不知道。
“”背着你妈,来当这个瓷瓶的?
男孩流泪了,默默地点头。
老板娘拿着青花瓷瓶,上下左右地翻看,看着看着,忽然皱起了眉头,赶紧把瓷瓶递给老板。
老板接过来,又翻来覆去仔细看了一会,没吭声,拿着瓷瓶走老板温……”你要做什么?
你看仔细了,那瓷瓶“进柜台,然后走向那个放着营业款的抽屉。
老板娘急了,三步并做两步,挡住老板,双臂护着抽屉,嚷道:
“和地看着老板娘说:
”我已经仔细看过了,没问题。
把这瓷瓶放到你的梳妆台上吧。
说着,老板把瓷瓶递给老板娘,老板娘半信半疑地边看边向屋里走去。
”孩子,瓷瓶我们留下了。
这些钱拿回去给你妈治病。
不够的话,你再过来拿。
“老板笑了,回过头来对男孩说:
男孩笑了,说了声谢谢,拿着钱,跑了出去。
”噢,我是说,我先付给你一半钱,另一半你下次再来拿。
“男孩不解地看着老板。
老板说:
外面的雪不知啥时候停了,阳光照在雪面上,耀眼刺目。
老板眯着眼,看那小小的身影消失在远方。
男孩再也没来。
又是一个春天,天气格外好,明媚的阳光照得人暖洋洋的,当铺的生意红红火火。
当东西的,赎东西的,出出进进。
一个少妇带着一个男孩远远地走来,走到当铺门口,少妇一下就跪下去了,当铺老板慌忙走出来,看见站在少妇身边的男孩,明白了一切。
(选自《小小说期,有改动)12年第2012选刊》,分)2小说开头的雪景描写很精彩,请问:
这样的描写有何作用?
(32.当铺老板是作者精心刻画的一个人物形象。
当铺老板有着怎样的性格特点?
请作简要分析。
33.(分)3分)3文中有多处细节描写,请你对文中画线处的细节作具体的赏析。
(34.分)4青花瓷瓶到底是真是假,小说始终没有给出明确答案,这样的情节安排好吗?
请联系小说谈谈你的看法。
(35.开头的雪景描写营造了一种凄清、冷寂的氛围,为故事的发展作了很好的铺垫。
32.有同情心,扶危济困,他留下男孩的青花瓷瓶,给男孩救命钱,并告诉男孩钱不够还可以再来拿。
性情温和,对男孩和自己的妻子,耐心而沉着。
机敏,33善于经营,当铺的生意做得红红火火。
.),也反衬出老板故作糊涂的善良。
”假的“.形象地写出了老板娘的担忧和焦急,从侧面表明青花瓷瓶有可能是赝品(或仿品、34没有必要再给出明确答案。
都已经清楚地暗示了青花瓷瓶是假的,到小说结尾小孩母亲下跪,从老板娘对青花瓷瓶的强烈怀疑,这样安排好。
:
1答案示例35.这样安排,给读者留下了广阔的思考空间,使小说的意蕴更为深远丰厚。
:
这样安排不好。
小说如果明确指出青花瓷瓶是假的,就能更鲜明地表现出老板2答案示例拿钱给男孩纯粹是出于帮助人的目的,不带有商业色彩,也能更好地突出主题,有利于突出老板扶危济困的德行。
湖北武汉分)18(五、13-16阅读下面的文章,完成题。
美丽的邂逅①我喜欢读书,喜欢到旧书摊淘书。
②那是一个深秋雨后的傍晚,在路边一个不起眼的书屋里,我随意地在杂乱的旧书摊上翻寻着。
突然,一个熟悉的名字——《林清玄散文》跃入眼帘。
我赶快把书抽出,店里的书可都是二手书,基本上都是单独一本。
月第三次出版的,一幅抽象的图画连贯着封面和封底,黄色白色相间的扉页上录有林清玄先生的经典语句。
句子左下方的页脚处,有1年1996这本书是③96.5.26“慧藏书几个竖写的蝇头小字:
。
整本书除了书脊上下两端有些微的破损,没折叠,没涂画,像新的一样。
”④一个个或月光流泻、或雨打芭蕉的夜晚,我倚在床上,追随者林清玄先生的脚步,锦绣山河、风土人情、异国风光、人情冷暖、小人物的生存和命运?
?
”细细聆听先生的“如果树是生命,果实就是它的心。
”“一株草是微不足道的,但是有了亲自种的心血,就高贵起来。
这一切充实、温暖和美丽着我的心灵。
十多年后被这个叫慧的女孩珍藏,这些篇章大部分是先生上世纪八十年代初的结晶,心灵独白,轻轻吟诵先生的絮语箴言,一脉温情和馨香弥漫了整个心田。
女孩珍藏了十多年后变成了我枕边的读本。
这也是我们的一种缘分吧,素未谋面的美丽邂逅。
⑤掩卷沉思,这是怎样的一个女孩?
⑥都说字如其人,她是不是如她的字一样娟秀、精致和美丽?
页脚签署的这个日子对于她有什么特别的纪念吗?
我猜想:
她必定是一个喜欢读书的女孩,是一个碧玉闺秀,因为喜欢读书的女孩典雅、娴静。
古时评判美女的一个标准就是诗词为心,兰心蕙质。
我仿佛看见轻风微拂中,淡淡斜阳下,一个明眸善睐的少女沉醉于书卷中,不时浅浅地笑