整理员工管理系统.docx

上传人:b****8 文档编号:10525728 上传时间:2023-02-17 格式:DOCX 页数:47 大小:140.41KB
下载 相关 举报
整理员工管理系统.docx_第1页
第1页 / 共47页
整理员工管理系统.docx_第2页
第2页 / 共47页
整理员工管理系统.docx_第3页
第3页 / 共47页
整理员工管理系统.docx_第4页
第4页 / 共47页
整理员工管理系统.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

整理员工管理系统.docx

《整理员工管理系统.docx》由会员分享,可在线阅读,更多相关《整理员工管理系统.docx(47页珍藏版)》请在冰豆网上搜索。

整理员工管理系统.docx

整理员工管理系统

 

程序设计实习

实验报告

 

班级:

信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“慧藏书几个竖写的蝇头小字:

整本书除了书脊上下两端有些微的破损,没折叠,没涂画,像新的一样。

”④一个个或月光流泻、或雨打芭蕉的夜晚,我倚在床上,追随者林清玄先生的脚步,锦绣山河、风土人情、异国风光、人情冷暖、小人物的生存和命运?

?

”细细聆听先生的“如果树是生命,果实就是它的心。

”“一株草是微不足道的,但是有了亲自种的心血,就高贵起来。

这一切充实、温暖和美丽着我的心灵。

十多年后被这个叫慧的女孩珍藏,这些篇章大部分是先生上世纪八十年代初的结晶,心灵独白,轻轻吟诵先生的絮语箴言,一脉温情和馨香弥漫了整个心田。

女孩珍藏了十多年后变成了我枕边的读本。

这也是我们的一种缘分吧,素未谋面的美丽邂逅。

⑤掩卷沉思,这是怎样的一个女孩?

⑥都说字如其人,她是不是如她的字一样娟秀、精致和美丽?

页脚签署的这个日子对于她有什么特别的纪念吗?

我猜想:

她必定是一个喜欢读书的女孩,是一个碧玉闺秀,因为喜欢读书的女孩典雅、娴静。

古时评判美女的一个标准就是诗词为心,兰心蕙质。

我仿佛看见轻风微拂中,淡淡斜阳下,一个明眸善睐的少女沉醉于书卷中,不时浅浅地笑

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

当前位置:首页 > 人文社科 > 哲学历史

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

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