VB课程设计论文 饭店菜式管理系统.docx
《VB课程设计论文 饭店菜式管理系统.docx》由会员分享,可在线阅读,更多相关《VB课程设计论文 饭店菜式管理系统.docx(35页珍藏版)》请在冰豆网上搜索。
VB课程设计论文饭店菜式管理系统
成绩
南京工程学院
课程设计说明书(论文)
题目饭店菜式管理系统
课程名称VB语言程序课程设计
院(系、部、中心)
专业
班级
学生姓名
学号
设计地点
指导教师
设计起止时间:
南京工程学院
课程设计任务书
题目饭店菜式管理系统
课程名称VB语言程序课程设计
院(系、部、中心)
专业
班级
起止日期
指导教师
1.课程设计应达到的目的
本课程设计是在学生学习完《VB语言程序设计基础》课程后进行的一次全面的综合练习。
通过本次课程设计进一步巩固和加深对VB语言程序设计课程的基本知识的理解,掌握VB语言程序编写和调试的基本技能,了解有关程序设计程序开发的思路方法,提高利用软件程序解决实际问题的能力。
2.课程设计题目及要求
本课题要求用VB设计一个点菜管理系统管理饭店菜式,每个菜式的信息包括菜名、类系(四大菜系中属哪一种)、主要原料、价格、折扣。
该系统的主要功能有:
1、菜式管理:
●建立菜式信息记录;
●增删菜式记录;
2、菜式浏览:
●可选择浏览菜式的哪一个或几个属性;
●分菜系浏览饭店的菜式;
●根据菜名或价格浏览菜式;
3、点菜功能:
●点菜操作;
●预览点菜结果;
●增删菜式;
●生成账单;
4、可以适当扩充系统功能。
要求:
1、要求界面为多重窗体形式,可通过菜单和图形界面进行操作。
2、各种操作结果在界面有显示。
3、有一定的错误提示功能,如菜式折扣一定小于100%,输入错误有提示信息。
4、系统要求设计合理,逻辑性强,界面设计要求友好美观,操作方便,有足够的提示信息。
3.课程设计任务及工作量的要求〔包括课程设计计算说明书、图纸、实物样品等要求〕
(1)对用户要求进行充分需求分析,要求系统功能合理,符合使用习惯;
(2)系统设计实用可靠;
(3)要求系统采用模块化结构化程序设计方法,易于移植;
(4)程序书写格式规范,注释详尽,易于维护;
(5)按照课程设计说明书的格式规范撰写课程设计说明书,正文部分包括:
①功能描述:
对系统要实现的功能进行简明扼要的描述。
②概要设计:
根据功能描述,建立系统的体系结构,即将整个系统分解成若干子功能模块,并用框图表示各功能模块之间的衔接关系,并简要说明各模块的功能和流程图。
③详细设计:
详细说明各功能模块的实现过程,源码等。
④效果及存在问题:
说明系统的运行效果(附上运行界面图片)、存在哪些不足以及预期的解决办法。
⑤心得体会:
谈谈自己在课程设计过程中的心得体会。
(6)课程设计说明书用A4纸统一打印,按《电力学院课程设计说明书规范》统一要求书写并装订。
(7)课程设计的程序上交,文件夹名称为学生姓名及学号的组合。
(8)答辩:
未经指导教师许可或无故不到者,缺勤率达50%的学生不能参加答辩。
答辩时,设计者在阐述自己的设计过程和结果,突出设计中遇到的主要问题和解决方法,回答教师提问。
4.主要参考文献
1、
5.课程设计进度安排
起止日期
工作内容
2010年12月14日
~12月20日
12月21日
12月22日
12月23日
12月24日
需求分析,划分模块,设计数据结构、算法,编写程序
调试程序
调试程序
调试程序
验收考核
6.成绩考核办法
课程设计成绩的组成:
课程总评成绩分项比例表
工作表现
设计成果
考核测评
30%
40%
30%
课程设计成绩评定需综合考虑以下因素:
(1)工作表现:
独立工作能力及设计过程的表现。
占总成绩的30%。
(2)设计成果:
设计说明书(计算书、论文)、图纸、程序、作品等的质量。
占总成绩的40%。
(3)考核测评:
课程设计结束前,指导教师应采用考试或答辩等形式对所指导的学生进行测评。
如采用答辩形式,需填写课程设计答辩记录,测评成绩占总成绩的30%。
(4)有创新的设计可以根据情况适当加分。
教研室审查意见:
教研室主任签字:
年月日
院(系、部、中心)意见:
主管领导签字:
年月日
-、题目要求、目的及分工说明明
1、本次课程设计任务的主要内容和要求(包括原始数据、技术参数、设计要求等)
本课题要求用VB设计一个点菜管理系统管理饭店菜式,每个菜式的信息包括菜名、类系(四大菜系中属哪一种)、主要原料、价格、折扣。
该系统的主要功能有:
(1)菜式管理:
建立菜式信息记录;增删菜式记录;
(2)菜式浏览:
可选择浏览菜式的哪一个或几个属性;分菜系浏览饭店的菜式;根据菜名或价格浏览菜式;
(3)点菜功能:
点菜操作;预览点菜结果;增删菜式;生成账单;
(4)可以适当扩充系统功能。
2、本次课程设计应达到的目的
本课程设计是在学生学习完《VB语言程序设计基础》课程后进行的一次全面的综合练习。
通过本次课程设计进一步巩固和加深对VB语言程序设计课程的基本知识的理解,掌握VB语言程序编写和调试的基本技能,了解有关程序设计程序开发的思路方法,提高利用软件程序解决实际问题的能力。
3、分工说明
(1)课程设计题目:
本次课程设计共3题:
1.饭店菜式管理系统;2.人事管理系统3.学生成绩管理系统。
按点名册顺序循环每人独立做一题。
具体各题课程设计任务书见"课程设计任务书"文件夹。
(2)时间安排:
上机16课时,16周周一1、2、3、4、5、6、7、8节课和周二1、2、3、4、5、6、7、8节课;周三考核答辩;周四、周五材料归档。
(3)课程设计说明书:
装订顺序及格式要求见"File\课程设计说明书\附件2:
课程设计说明书格式规范";其中正文部分内容要求详见各题目的《课程设计任务书》。
(4)学院相关规定:
见"Flie\参考规定"文件夹。
二、功能描述
1.运行首页
打开饭店点菜系统,进入主界面。
两个按钮可以分别进入点菜系统和退出系统。
2.点菜系统
(1)此页面分为三个板块:
新增菜式;点菜;浏览菜式;返回主页。
(2)在新增菜单中中进行菜式的新增:
分别是新增菜名,菜系,价格,原料以及折扣。
(3)点菜按钮中可以根据顾客个人喜好点菜。
(4)在浏览菜式中可以查看本店菜单,可以分别通过按菜名浏览,按菜系浏览以及按价格浏览。
(5)返回主页按键可以返回到首页
3.点菜列表
(1)在点菜列表中可以通过“点菜”进行点菜以及通过“退菜”按键进行退菜。
(2)窗体右下角则显示“总金额(元)”,方便顾客点菜参考。
(3)点击“落单”按钮出现提示信息“感谢您的使用!
”。
(4)点击“返回点菜菜单”则返回到上一个点菜窗体。
4.菜式浏览
在浏览菜式中可以查看本店菜单,可以分别通过按菜名浏览,按菜系浏览以及按价格浏览。
三.概要设计(模块流程图)
1.主程序
2.窗体1-首页
3.窗体2-点菜
四、详细设计
1.创建数组模块:
PubliciAsInteger定义变量i为整型
PublicsumAsSingle定义变量sum为单精度
Typecaidan定义caidan结构体
cmAsString定义菜名为字符型
cxAsString定义菜系为字符型
jgAsInteger定义价格为整型
ylAsString定义原料为字符型
zkAsSingle定义折扣为单精度
EndType
Publics()Ascaidan声明数组s()为结构体caidan
Functionchazhao(ByValnAsString)AsInteger定义chazhao函数
DimjAsInteger
Forj=1Toi
Ifn=s(j).cmThenchazhao=j查询条件:
菜名
Ifn=s(j).cxThenchazhao=j查询条件:
菜系
Ifn=Str(s(j).jg)Thenchazhao=j查询条件:
价格
Ifn=s(j).ylThenchazhao=j查询条件:
原料
Ifn=Str(s(j).zk)Thenchazhao=j查询条件:
折扣
Nextj
EndFunction
2.窗体1—酒店首页
PrivateSubCommand1_Click()
Form1.Hidecommand1-“点击进入”按键
form2.Show窗体1和2之间的切换
EndSub
PrivateSubCommand2_Click()command2-“退出”按键
UnloadMe退出程序
EndSub
PrivateSubTimer1_Timer()设置一个计时器
IfLabel1.Left+Label1.Width>0Then标题“欢迎光临南工程大酒店”从
Label1.MoveLabel1.Left-88右往左滑动
Else
Label1.Left=Form1.ScaleWidth标题移动的条件
EndIf
EndSub
3.窗体2—点菜系统
PrivateSubCommand1_Click()
form2.Hide窗体2和3之间的切换
Form3.Show
EndSub
PrivateSubCommand2_Click()
form2.Hide
Form4.Show窗体2和4之间的切换
EndSub
PrivateSubCommand3_Click()
form2.Hide窗体2和1之间的切换
Form1.Show
EndSub
PrivateSubmnufileadd_Click()定义“新增”按键
ReDimPreserves(1To(i+1))Ascaidan
i=i+1
s(i).cm=InputBox("请输入菜名","新增")输入新增的菜名
s(i).cx=InputBox("请输入菜系","新增")输入新增的菜系
s(i).jg=InputBox("请输入价格","新增")输入新增的价格
s(i).yl=InputBox("请输入原料","新增")输入新增的原料
s(i).zk=InputBox("请输入折扣","新增")输入新增的折扣
EndSub
PrivateSubmnufiledel_Click()
DimjAsInteger
DimkAsInteger定义“删除”按键
DimnAsString
n=InputBox("请输入需要删除的菜名","删除")
j=chazhao(n)
Fork=jToi-1
s(k)=s(k+1)进行查找,符合条件则进行删除
Nextk
i=i-1
EndSub
PrivateSubmnufileqiute_Click()
End退出按键
EndSub
PublicFunctionchazhao(ByValnAsString)AsInteger
DimjAsInteger
Forj=1Toi
Ifn=s(j).cmThenchazhao=jIfn=s(j).cxThenchazhao=j
Ifn=Str(s(j).jg)Thenchazhao=jIfn=s(j).ylThenchazhao=j
Ifn=Str(s(j).zk)Thenchazhao=j
Nextj
EndFunction
4.点菜列表
PrivateSubCommand1_Click()“点菜”按键
Forj=0ToList1.ListCount-1
IfList1.Selected(j)Then如果单击“点菜”按键
List2.AddItemList1.List(j)list1中的相应项则出现在list2中
sum=sum+s(j+1).jg*s(j+1).zk总金额增加
EndIf
Nextj
Label1.Caption=sumlabel1显示总金额
EndSub
PrivateSubCommand2_Click()
Forj=0ToList2.ListCount-1如果单击“点菜”按键
IfList2.Selected(j)Then
n=List2.List(j)总金额增加
EndIf
Nextj
j=chazhao(n)
sum=sum-s(j).jg*s(j).zk
Label1.Caption=sum
List2.RemoveItemList2.ListIndexlist2中的相应项则删除
EndSub
PrivateSubCommand3_Click()
x=MsgBox("感谢您的使用")
EndSub
PrivateSubCommand4_Click()
Form3.Hide
form2.Show窗体3和2之间进行切换
EndSub
PrivateSubForm_Load()
DimjAsInteger
Forj=1Toi
List1.AddItems(j).cm
Nextj
EndSub
5.窗体4—菜式浏览
PrivateSubCommand1_Click()
Form4.Hide窗体4和2之间进行切换
form2.Show
EndSub
PrivateSubForm_Load()
Show
PrintChr(13),Chr(13),Chr(13),Chr(13),Chr(13)打印换行
Forj=1Toi
Prints(j).cm,s(j).cx,s(j).jg,s(j).yl,s(j).zk打印菜名,菜系,价格
Nextj原料以及折扣
EndSub
PrivateSubLabel1_Click()
Forj=1Toi-1单价“菜名”则按菜名汉语拼音
Fork=iToj+1Step-1的先后次序来排序
Ifs(k).cm
m=s(k).cm:
s(k).cm=s(k-1).cm:
s(k-1).cm=m
m=s(k).cx:
s(k).cx=s(k-1).cx:
s(k-1).cx=m
m=s(k).jg:
s(k).jg=s(k-1).jg:
s(k-1).jg=m
m=s(k).yl:
s(k).yl=s(k-1).yl:
s(k-1).yl=m
m=s(k).zk:
s(k).zk=s(k-1).zk:
s(k-1).zk=m
EndIf
Nextk
Nextj
Cls清屏
PrintChr(13),Chr(13),Chr(13),Chr(13),Chr(13)
Forj=1Toi
Prints(j).cm,s(j).cx,s(j).jg,s(j).yl,s(j).zk
Nextj
EndSub
PrivateSubLabel2_Click()
Forj=1Toi-1单价“菜系”则按菜名汉语拼音
Fork=iToj+1Step-1的先后次序来排序
Ifs(k).cx
m=s(k).cm:
s(k).cm=s(k-1).cm:
s(k-1).cm=m
m=s(k).cx:
s(k).cx=s(k-1).cx:
s(k-1).cx=m
m=s(k).jg:
s(k).jg=s(k-1).jg:
s(k-1).jg=m
m=s(k).yl:
s(k).yl=s(k-1).yl:
s(k-1).yl=m
m=s(k).zk:
s(k).zk=s(k-1).zk:
s(k-1).zk=m
EndIf
Nextk
Nextj
Cls
PrintChr(13),Chr(13),Chr(13),Chr(13),Chr(13)
Forj=1Toi
Prints(j).cm,s(j).cx,s(j).jg,s(j).yl,s(j).zk
Nextj
EndSub
PrivateSubLabel3_Click()
Forj=1Toi-1单价“原料”则按菜名汉语拼音
Fork=iToj+1Step-1的先后次序来排序
Ifs(k).yl
m=s(k).cm:
s(k).cm=s(k-1).cm:
s(k-1).cm=m
m=s(k).cx:
s(k).cx=s(k-1).cx:
s(k-1).cx=m
m=s(k).jg:
s(k).jg=s(k-1).jg:
s(k-1).jg=m
m=s(k).yl:
s(k).yl=s(k-1).yl:
s(k-1).yl=m
m=s(k).zk:
s(k).zk=s(k-1).zk:
s(k-1).zk=m
EndIf
Nextk
Nextj
Cls
PrintChr(13),Chr(13),Chr(13),Chr(13),Chr(13)
Forj=1Toi
Prints(j).cm,s(j).cx,s(j).jg,s(j).yl,s(j).zk
Nextj
EndSub
PrivateSubLabel4_Click()
Forj=1Toi-1
Fork=iToj+1Step-1单价“价格”则按价格的
Ifs(k).jg
m=s(k).cm:
s(k).cm=s(k-1).cm:
s(k-1).cm=m
m=s(k).cx:
s(k).cx=s(k-1).cx:
s(k-1).cx=m
m=s(k).jg:
s(k).jg=s(k-1).jg:
s(k-1).jg=m
m=s(k).yl:
s(k).yl=s(k-1).yl:
s(k-1).yl=m
m=s(k).zk:
s(k).zk=s(k-1).zk:
s(k-1).zk=m
EndIf
Nextk
Nextj
Cls
PrintChr(13),Chr(13),Chr(13),Chr(13),Chr(13)
Forj=1Toi
Prints(j).cm,s(j).cx,s(j).jg,s(j).yl,s(j).zk
Nextj
EndSub
PrivateSubLabel5_Click()
Forj=1Toi–1单击“折扣”则按折扣的大小顺序来显示
Fork=iToj+1Step-1
Ifs(k).zk
m=s(k).cm:
s(k).cm=s(k-1).cm:
s(k-1).cm=m
m=s(k).cx:
s(k).cx=s(k-1).cx:
s(k-1).cx=m
m=s(k).jg:
s(k).jg=s(k-1).jg:
s(k-1).jg=m
m=s(k).yl:
s(k).yl=s(k-1).yl:
s(k-1).yl=m
m=s(k).zk:
s(k).zk=s(k-1).zk:
s(k-1).zk=m
EndIf
Nextk
Nextj清屏
Cls
PrintChr(13),Chr(13),Chr(13),Chr(13),Chr(13)
Forj=1Toi
Prints(j).cm,s(j).cx,s(j).jg,s(j).yl,s(j).zk
Nextj
EndSub
五、调试报告(程序运行结果截屏)
1.运行首页
(1)单击“点击进入”
(2)单击“退出”则退出程序
2.点菜窗体
(1)文件
A.新增
B.删除
C.退出
退出程序
(2)“浏览菜式”
(3)“点菜”
A.点菜
B.退菜
C.落单
D.总金额
E.返回点菜菜单
3.“浏览菜式”窗体
(1)“按菜名浏览”
(2)“按菜系浏览”
(3)“按价格浏览”
六、改进意见及收获体会
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要节,是对学生实际工作能力的具体训练和考察过程。
回顾起此次课程设计,至今我仍感慨颇多,的确从理论到实践,在整整一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这虽然不是第一次做,但是这次的VB程序设计程设计比一年级的c语言课程设计和三年级学的软件技术基础难度大很多,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
刚开始在网上搜寻了一下关于饭店菜式管理的VB程序,发现几乎所有都是需要数据库来制作的,要么就是需要文件的知识。
但是这些我们都没有学习过,虽然之前稍稍学习了一点文件的知识,但是解决课程设计是远远不够的,王老师提示我们不要用文件或者数据库进行设计,而是要用记录数组进行课程设计。
于是我找出了以前做过的实验,就是那个职工信息管理系统的实验来复习下记录数组的知识。
要利用记录数组来做,就必须先建立一个数据结构。
之前学过窗体之间的切换。
利用unloadform或者form.Hide。
以前感觉这两者之间应该没有太大的区别,但是在进行新增菜式结束后,我浏览了菜式,之后再继续新增菜式,新增的菜式没有相应的添加在菜单之中,没有动态刷新,于是我检查程序