海尔信息企业的实现.docx
《海尔信息企业的实现.docx》由会员分享,可在线阅读,更多相关《海尔信息企业的实现.docx(24页珍藏版)》请在冰豆网上搜索。
海尔信息企业的实现
案
例
分
析
题目:
海尔:
“信息企业”的实现
院系:
计算机科学学院
专业:
2013级信息管理与信息系统一班
目录
1、概述
1.1、案例背景………………………………………………1
1.2、案例分析………………………………………………1
二、两个信息化
2.1企业的信息化……………………………………………2
2.2、信息企业化……………………………………………3
三、模式创新
3.1、改变组织结构…………………………………………4
3.2、买服务不买服务器……………………………………5
四、心得体会
4.1、心得体会………………………………………………14
一、概述
1.1设计目的:
客户通过自助客房管理系统在互联网上直接进行查看客房信息、客户信息的建立、客户信息的查询及退订等多项功能,满足客户的入住信息登记的要求,让客户足不出户就可以进行房间的预订。
实现酒店客房管理的快捷化、无纸化办公。
1.2设计意义:
1.2.1通过自助客房管理系统客户可以有效的及时的查看房间信息及进行预订、退订功能。
使得发挥在如今高速发展的社会中节约时间、节约成本、方便快捷的作用。
同时,通过客户自己进行诸多功能减少服务人员的工作压力,使得社会和谐促进发展。
1.2.2在此次课程设计中,对于我们刚刚接触C语言的同学来说是一个难得的锻炼机会,之前在课本中的死知识在本次的课程设计中得到了很好的运用和实践。
1.2.3提高我们对系统的整体认识能力,包括在一开始的项目立项、初步调查、总体的方案设计、算法的构思、编写代码、程序的测试一系列步骤,让我们的思维能力得到提升。
有一句话,经历了方才懂得,希望我们的各项能力在日后得到更好的提高。
1.2.4团队合作的过程体验合作的重要和艺术,没有团结统一集体很难进行任何一项工作,同时在合作的过程中重新认识了同学,增强了同学之间的情谊。
1.3需求分析:
目前启夏苑无法实现通过互联网来进行预订房间,新生家长往往是到了学校之后才知道启夏苑,然后才通过前台订购房间,大批量的客人导致服务的繁忙,容易出错,由此我们针对陕西师范大学启夏苑来开发出一款自助客房管理系统,让客户减少排队登记的麻烦,同时减轻工作人员的工作压力,保证准确性。
1.4功能概述:
1、自助客房管理系统共有6个功能,即查看客房信息、客户信息的登记、客户信息的查询、退订、客户信息的显示、退出通讯录。
2、课程设计计划
2.1任务分工:
宋悦(组长):
负责任务分工、进度安排,word制作、PPT制作、主函数的编写、PPT讲解。
樊欢欢:
负责功能函数的编译、调试程序、PPT制作。
江加翠:
负责功能函数的编译、收集材料、word的制作。
苟妍:
负责功能函数的编译、程序的优化、界面优化、word的制作。
郑妍涛:
负责功能函数的编译、心得体会、错误总结。
2.2设计要求:
1、完成客房信息的输出。
2、实现客户信息的录入功能。
(运用动态内存分布和动态链表知识)
3、实现用姓名查询客户入住信息。
4、实现客户退订房间后信息的释放。
【注】:
建立客户信息的结构体,结构体的成员包括姓名、性别、身份证、天数、客房类型、备注。
3、程序算法及代码
知识归纳
(1)
整体算法流程图:
子函数流程图与源程序
创建客户信息
(1)N-S图
客户信息创建N-S图
(2)程序源代码
linklistCreate(inta)
{linklisthead=(listnode*)malloc(sizeof(listnode));
listnode*p,*q;
q=head;
while(a--)
{p=(listnode*)malloc(sizeof(listnode));
printf("姓名性别证件入住日期天数类型备注\n");
scanf("%s%s%s%s%s%s%s",p->data.name,p->data.sex,p->data.ID,p->e,p->data.day,p->data.type,p->data.beizhu);
q->next=p;
q=p;
}
q->next=NULL;
printf("******信息登记成功******\n");
returnhead;
}
查询客户信息
(1)N-S图
客户信息查询函数N-S图
(2)程序源代码
listnode*Find(linklisthead)
{listnode*p;
charname[10];
printf("*******************************************\n");
printf("*******************************************\n");
printf("姓名查找,按1表示查找:
");
p=head->next;
scanf("%d",&i);
if(i==1)
{printf("请输入要查询的姓名:
");
scanf("%s",&name);
while(p&&strcmp(p->data.name,name)>0)
p=p->next;
if(p==NULL||strcmp(p->data.name,name)<0)
p=NULL;
}
returnp;}
退订
(1)N-S图
(2)程序源代码:
voidDelete(linklisthead)
{listnode*p,*q;
p=Find(head);
if(p==NULL)
{printf("信息不存在!
\n");
return;}
else
{printf("要退订的话就按1:
");
scanf("%d",&i);
if(i==1)
{q=head;
while(q!
=NULL&&q->next!
=p)
q=q->next;
q->next=p->next;
free(p);
printf("已退订!
\n");
}
}
}
客户信息输出
(1)N-S图
客户信息输出N-S图
(2)程序源代码:
voidList(linklisthead)
{listnode*p;
p=head;
printf("姓名性别证件入住日期天数类型备注\n");
printf("**********************************************************************\n");
while(p->next!
=NULL)
{printf("%s%s%s%s%s%s%s\n",p->next->data.name,p->next->data.sex,p->next->data.ID,p->next->e,p->next->data.day,p->next->data.type,p->next->data.beizhu);
p=p->next;
}
主菜单
(1)N-S图
主菜单函数N-S图
(2)源程序
intMenu()
{inti;
printf("\n");
printf("\n");
printf("主菜单\n");
printf("*******************************************************************************\n");
printf("*******************************************************************************\n");
printf("**1.查看客房信息**\n");
printf("**2.客户信息的创建**\n");
printf("**3.客户信息的查询**\n");
printf("**4.退订**\n");
printf("**5.客户信息的显示**\n");
printf("**0.退出管理系统**\n");
printf("*******************************************************************************\n");
printf("*******************************************************************************\n");
printf("\n");
printf("请选择0-5:
");
for(;;)
{scanf("%d",&i);
printf("\n");
if(i<0||i>5)
printf("输出错误,重选0-5:
");
else
break;
}
returni;
}
调试运行:
第一步:
打开程序,调试运行。
出现如下界面:
之后客户进行选择,查看客房信息
客户信息的建立
进行客户信息的查看
退订功能
退出系统
总结
错误集锦:
1、大括号问题:
后面缺了两个大括号,别小瞧这个大括号的问题,如果条理不清很容易在该结束的时候结束,导致结果大相径庭。
而如果你在写第一个打括号“{”时顺便就加上“}”那就可以避免这样的问题的出现。
2、switch语句后面要加break,养成优秀的习惯就可以尽量避免这种问题。
3、while语句()内的内容要是条件或是判断类的
while语句中结束条件是直到不符合()内容为止要求。
程序优化:
1、通讯录创建提前。
刚开始的程序创建通讯录的子函数和其它函数都在主函数中的swtich语句中调用
2、在单调的界面中我们加入了函数system("color3e");使界面美化
改变不同的数字变成不一样的结果
心得体会:
1.通过本次课程设计,我小组成员在书本知识上进一步提高编程的能力,体会到C语言的独特魅力。
2.同时培养我们自主学习的能力,例如动态内存malloc函数的运用,和单链表的知识点。
对这两大难点思考研究能够独立理解运用。
3.团队的分工合作使得大家能够发挥自己的优势。
让我们意识到团队合作的重要性。
本次的课程设计由于诸多原因没有实现我们预期的很多功能,如结算功能等。
在编译的过程中我们也许有不严密的地方,希望老师多多指点迷津,大家多多包涵。
应该说本次的课程设计我们小组成员都尽心尽力,其它不完善的地方望以后在学习中能够改进。
第一次做课程设计,感触颇多,付出很多收获也很多,体验到C语言是一门艺术,很有趣味,让我们爱上了C语言。
最后谢谢老师给我们这次宝贵的机会.
附录:
源程序
#include
#include
#include
inti;/*定义全局变量i*/
typedefstruct/*定义客户信息结构体*/
{charname[10];
charsex[20];
charID[30];
charcome[40];
charday[50];
chartype[70];
charbeizhu[120];
}datatype;
typedefstructnode/*定义链表结构*/
{
datatypedata;
structnode*next;
}listnode;
typedeflistnode*linklist;
linklisthead;
listnode*p;
//客户信息的建立
linklistCreate(inta)/*定义建立客户信息的子函数*/
{
system("color7d");
linklisthead=(listnode*)malloc(sizeof(listnode));/*动态内存分配*/
listnode*p,*q;
q=head;/*指向链表结构的头*/
while(a--)/*a表示内存的剩余量*/
{
p=(listnode*)malloc(sizeof(listnode));
printf("姓名性别证件入住日期天数类型备注\n");
scanf("%s%s%s%s%s%s%s",p->data.name,p->data.sex,p->data.ID,p->e,p->data.day,
p->data.type,p->data.beizhu);/*用p访问结构体*/
q->next=p;
q=p;
}
q->next=NULL;/*结束条件*/
printf("******信息登记成功******\n");
returnhead;/*返回head链表头,指向创建的信息*/
}
//按姓名查找个人信息
listnode*Find(linklisthead)/*定义查找个人信息的子函数*/
{
system("color8e");
listnode*p;/*定义一个链表类型的*p*/
charname[10];
printf("*******************************************\n");
printf("*******************************************\n");
printf("姓名查找,按1表示查找:
");
p=head->next;/*把头的下一个数据的地址赋给p*/
scanf("%d",&i);
if(i==1)
{
printf("请输入要查询的姓名:
");
scanf("%s",&name);
while(p&&strcmp(p->data.name,name)>0)/*字符串的长度的比较*/
p=p->next;
if(p==NULL||strcmp(p->data.name,name)<0)
p=NULL;
}
returnp;/*返回用户结构体*p*/
}
//退订
voidDelete(linklisthead)/*定义退订的子函数*/
{system("color6a");
listnode*p,*q;
p=Find(head);/*调用查找信息的子函数*/
if(p==NULL)
{
printf("信息不存在!
\n");
return;
}
else
{
printf("要退订的话就按1:
");
scanf("%d",&i);
if(i==1)
{
q=head;
while(q!
=NULL&&q->next!
=p)/*它的尾结点不等于下一个的头结点*/
q=q->next;
q->next=p->next;
free(p);
printf("已退订!
\n");
}
}
}
//顾客信息的输出
voidList(linklisthead)/*定义输出顾客信息的子函数*/
{system("color7d");
listnode*p;
p=head;
printf("姓名性别证件入住日期天数类型备注\n");
printf("**********************************************************************\n");
while(p->next!
=NULL)
{
printf("%s%s%s%s%s%s%s\n",p->next->data.name,p->next->data.sex,p->next->data.ID,p->next->e,p->next->data.day,p->next->data.type,p->next->data.beizhu);
p=p->next;
}
}
intMenu()
{
inti;
printf("\n");
printf("\n");
printf("主菜单\n");
printf("*******************************************************************************\n");
printf("*******************************************************************************\n");
printf("**1.查看客房信息**\n");
printf("**2.客户信息的创建**\n");
printf("**3.客户信息的查询**\n");
printf("**4.退订**\n");
printf("**5.客户信息的显示**\n");
printf("**0.退出管理系统**\n");
printf("*******************************************************************************\n");
printf("*******************************************************************************\n");
printf("\n");
printf("请选择0-5:
");
for(;;)
{
scanf("%d",&i);
printf("\n");
if(i<0||i>5)
printf("输出错误,重选0-5:
");
else
break;
}
returni;
}
main()/*主函数*/
{system("color3e");
printf("**********欢迎使用酒店自助服务系统**********\n");
for(;;)
{
switch(Menu())/*调用主菜单子函数*/
{case1:
printf("类型1豪华套房1080元/晚\n")printf("类型2普通套房480元/晚\n");
printf("类型3双人标间280元/晚\n");
printf("类型4单人标间220元/晚\n");
break;
case2:
printf("*********************************请输入您的信息*****************************\n");
printf("输入你想创建的数目:
");
scanf("%d",&i);
head=Create(i);
break;
case3:
printf("********************************客户信息的查询*******************************\n");
p=Find(head);/*调用查找个人信息的子函数*/
if(p!
=NULL)
{
printf("姓名性别证件入住日期天数类型备注\n");
printf("**********************************************************************\n");
printf("%s%s%s%s%s%s%s\n",p->data.name,p->data.sex,p->data.ID,p->e,p->data.day,
p->data.beizhu);
printf("\n");
printf("**********************************************************************\n");
}
else
printf("该客户信息不存在!
");
break;
case4:
printf("************************************退订**********************************\n");
Delete(head);
break;
case5:
printf("*******************************客户信息的输出******************************\n");
List(head);/*调用输出个人信息的子函数*/
break;
case0:
printf("***********************************退出**************************************\n");
exit(0);
}
}
}