餐馆管理系统设计报告.docx
- 文档编号:6258198
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:14
- 大小:161.09KB
餐馆管理系统设计报告.docx
《餐馆管理系统设计报告.docx》由会员分享,可在线阅读,更多相关《餐馆管理系统设计报告.docx(14页珍藏版)》请在冰豆网上搜索。
餐馆管理系统设计报告
专业综合设计报告
题目餐饮管理系统
目录
1.概述1
1.1开发环境、工具和方法1
1.2功能简介1
2.软件功能设计2
3.编码设计测试3
3.1用户登录界面及核心代码3
3.2用户管理界面及核心代码4
3.3菜肴管理界面及核心代码5
3.4预定管理界面及核心代码6
3.5员工界面及核心代码7
3.6营业管理界面及核心代码8
3.6.1查询点菜信息界面及代码8
3.6.2查询点菜信息界面及代码9
3.6.3结账界面及代码10
4.测试12
4.1测试方案一12
4.2测试方案二12
4.3测试方案三13
4.4测试方案四13
5.总结14
参考文献15
1.概述
1.1开发环境、工具和方法
在LINUXREDHAT5环境下,使用QT编写图形界面,使用UNIXC函数库。
数据的存取不借助数据库,直接进行文件存取。
1.2功能简介
1.对房台、员工和菜单信息进行管理和查询(可按价格和分类等)
2.能够订桌,点菜,并实现并台服务;
3.能够结帐、欠账,实现当日(月、年)统计结算;
4.对使用系统的用户进行权限管理。
2.软件功能设计
餐饮管理系统主要包括以下模块:
用户管理模块、菜肴管理模块、营业管理模块、预定管理模块、外卖管理模块(选做)、员工管理模块。
1用户管理模块
用户管理模块主要实现以下功能:
1)编辑用户信息,即用户可以修改信息,其中普通用户只能修改自身信息,超级用户能修改自身和其他管理员的信息;
2)添加新用户,新的管理员可以再注册,简历其用户名和密码。
2菜肴管理模块
菜肴管理模块主要实现以下功能:
1)菜肴基本信息的浏览,可以浏览各个菜肴的单价、备注等:
2)菜肴基本信息的编辑,管理员可以在此编辑菜肴的基本信息;
3)添加菜肴信息,挡有新的菜肴进入饭店时,在此添加信息。
3营业管理模块
营业管理模块主要实现以下功能:
1)点菜,通过输入桌号、菜名及备注来点菜;
2)查询点菜信息,通过输入桌号查询该卓是否有点菜信息,遗迹信息内容;
3)结账,输入桌号,可浏览该桌消费内容以及可以享受的折扣服务,并在此结账。
4预定管理模块
预定模块主要实现以下功能:
1)添加预定信息,在此模块中通过添加预定时间、人数、桌号、客户姓名、客户电话等添加预定饭菜信息;
2)修改预定信息,如果预定信息中有需要改动的信息,可以在此修改,也可以删除预订信息,及取消预定。
5员工管理模块
员工模块主要实现以下功能:
1)浏览员工基本信息,打开该页面后,可以浏览员工的基本信息,包括职工姓名、编号、性别、民族、电话等;
2)编辑员工基本信息,想要修改员工信息,可以在此编辑修改;
3)添加员工基本信息,有新的员工加入时,在此添加他们的新信息。
3.编码设计测试
3.1用户登录界面及核心代码
intfd=open("user.dat",O_RDWR);
inti=0;
intr=1;
usersa;
usersb;
while
(1)
{
r=pread(fd,a.username,12,i*28);
if(r<=0)break;
//MyAlert();
pread(fd,a.password,12,i*28+12);
pread(fd,&a.level,4,i*28+24);
QStringtext=line1->text();
QStringtext2=line2->text();
memcpy(b.username,text.toAscii().constData(),12);
memcpy(b.password,text2.toAscii().constData(),12);
if(strcmp(a.username,b.username)==0)
{
if(strcmp(a.password,b.password)==0)
session=a.level;
win1->close();
win2->setEnabled(true);
win2->resize(800,600);
win2->move((1024-800)/2,(768-600)/2);
if(session==0)
{
btn3->setEnabled(false);
}
}
i++;
}
3.2用户管理界面及核心代码
voidMyWindow:
:
query1()
{
intfd=open("user.dat",O_RDWR);
usersq1;
intr;
inti=5;
while(i)
{
r=read(fd,&q1,sizeof(q1));
if(r<=0)break;
table1->setItem(5-i,1,newQTableWidgetItem(q1.username));
table1->setItem(5-i,2,newQTableWidgetItem(q1.password));
table1->setItem(5-i,3,newQTableWidgetItem(QString:
:
number(q1.level)));
i--;
}
}
3.3菜肴管理界面及核心代码
voidMyWindow:
:
query2()
{
intfd=open("food.dat",O_RDWR);
foodsq2;
intr;
inti=5;
while(i)
{
r=read(fd,&q2,sizeof(q2));
if(r<=0)break;
table2->setItem(5-i,0,newQTableWidgetItem(q2.foodnum));
table2->setItem(5-i,1,newQTableWidgetItem(q2.foodname));
table2->setItem(5-i,2,newQTableWidgetItem(QString:
:
number(q2.price)));
table2->setItem(5-i,3,newQTableWidgetItem(q2.text));
i--;
}
}
3.4预定管理界面及核心代码
voidMyWindow:
:
query4()
{
intfd=open("book.dat",O_RDWR);
booksq4;
intr;
inti=5;
charinfo3[20];
while(i)
{
r=read(fd,&q4,sizeof(q4));
if(r<=0)break;
table4->setItem(5-i,0,newQTableWidgetItem(q4.booknum));
sprintf(info3,"%02d:
%02d:
%02d",
q4.booktime.hour,q4.booktime.minute,q4.booktime.second);
table4->setItem(5-i,2,newQTableWidgetItem(info3));
table4->setItem(5-i,3,newQTableWidgetItem(QString:
:
number(q4.eaternum)));
table4->setItem(5-i,4,newQTableWidgetItem(QString:
:
number(q4.tablenum)));
table4->setItem(5-i,5,newQTableWidgetItem(q4.foodname));
table4->setItem(5-i,6,newQTableWidgetItem(QString:
:
number(q4.price)));
table4->setItem(5-i,7,newQTableWidgetItem(q4.text));
table4->setItem(5-i,8,newQTableWidgetItem(q4.eatername));
table4->setItem(5-i,9,newQTableWidgetItem(q4.phone));
i--;
}
}
3.5员工界面及核心代码
voidMyWindow:
:
edit11()
{
intfd=open("clark.dat",O_RDWR);
clarksedit11;
intr;
inti=1;
while(i)
{memcpy(edit11.workernum,table3->item(0,0)->text().toAscii().constData(),12);memcpy(edit11.workername,table3->item(0,1)->text().toAscii().constData(),12);
memcpy(&edit11.sex,table3->item(0,2)->text().toAscii().constData(),1);
memcpy(edit11.group,table3->item(0,3)->text().toAscii().constData(),12);
memcpy(edit11.from,table3->item(0,4)->text().toAscii().constData(),12);
QstrtoDates(table3->item(0,5)->text());
edit11.birth=a3;
QstrtoDates2(table3->item(0,6)->text());
edit11.workfromdate=a4;
memcpy(edit11.addr,table3->item(0,7)->text().toAscii().constData(),12);
memcpy(edit11.phone,table3->item(0,8)->text().toAscii().constData(),12);
lseek(fd,0,SEEK_SET);
r=write(fd,&edit11,sizeof(edit11));
if(r<=0)break;
i--;
}
}
3.6营业管理界面及核心代码
3.6.1查询点菜信息界面及代码
voidMyWindow:
:
needfood()
{
intfd=open("needfood.dat",O_RDWR);
inti=1;
intr;
needfoodsa;
while(i)
{
QStringtext3=line3->text();
QStringtext4=line4->text();
QStringtext5=line5->text();
QStringtext6=line6->text();
memcpy(a.foodnum,text3.toAscii().constData(),12);
memcpy(a.foodname,text4.toAscii().constData(),12);
memcpy(a.text,text5.toAscii().constData(),12);
a.tablenum=text6.toInt();
lseek(fd,0,SEEK_END);
r=write(fd,&a,sizeof(a));
if(r<=0)break;
i--;
}
}
3.6.2查询点菜信息界面及代码
voidMyWindow:
:
query5()
{
intfd=open("needfood.dat",O_RDWR);
needfoodsq2;
inttnum;
intr;
inti=5;
tnum=line7->text().toInt();
while
(1)
{
r=read(fd,&q2,sizeof(q2));
if(r<=0)break;
if(q2.tablenum==tnum)
{
table5->setItem(5-i,0,newQTableWidgetItem(QString:
:
number(q2.tablenum)));
table5->setItem(5-i,1,newQTableWidgetItem(q2.foodnum));
table5->setItem(5-i,2,newQTableWidgetItem(q2.foodname));
table5->setItem(5-i,3,newQTableWidgetItem(q2.text));
i--;
}
}
}
3.6.3结账界面及代码
voidMyWindow:
:
query6()
{
intfd=open("needfood.dat",O_RDWR);
needfoodsq;
inttnum;
intr;
inti=5;
intr2;
tnum=line8->text().toInt();
intt;
while
(1)
{
r=read(fd,&q,sizeof(q));
if(r<=0)break;
if(q.tablenum==tnum)
{
table6->setItem(5-i,0,newQTableWidgetItem(QString:
:
number(q.tablenum)));
table6->setItem(5-i,1,newQTableWidgetItem(q.foodnum));
table6->setItem(5-i,2,newQTableWidgetItem(q.foodname));
table6->setItem(5-i,3,newQTableWidgetItem(q.text));
intfd2=open("food.dat",O_RDWR);
foodsq2;
while
(1)
{
r2=read(fd2,&q2,sizeof(q2));
if(r2<=0)break;
if(strcmp(q2.foodnum,q.foodnum)==0)
{
table6->setItem(5-i,4,newQTableWidgetItem(QString:
:
number(q2.price)));
}
}
i--;
}
}
inttotal=0;
for(t=5;t>i;t--)
{
total+=table6->item(5-t,4)->text().toInt();
}
line9->setText(QString:
:
number(total));
}
4.测试
4.1测试方案一
用户登录时,密码不正确将提示错误
4.2测试方案二
添加信息时,最大长度设置为12。
超过部分不再接受和现实
4.3测试方案三
如果不输入数据,确定键将始终为不可用状态
4.4测试方案四
添加点菜信息,并进行结账操作。
5.总结
由于这是我们第一次设计软件,文档中还有很多需要改进的地方。
通过这次课程设计,我们初步了解了软件设计的各个阶段的工作,以及各阶段文档的写法,为我们以后毕业设计和参加工作奠定了一定得基础。
设计过程中遇到了很多困难和迷惑的地方,我们深刻感受到了实际设计软件的复杂性和软件前期需求分析和总体设计的重要性。
我们能够完成这次课程设计,在这里我们感谢老师同学对我们的关心和帮助。
参考文献
1张海藩.软件工程导论(第5版).北京:
清华大学出版社,2008
2韩万江.软件工程案例教程.北京:
机械工业出版社,2007
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 餐馆 管理 系统 设计 报告