毕业设计网上订餐系统(附原代码)_第1页
毕业设计网上订餐系统(附原代码)_第2页
毕业设计网上订餐系统(附原代码)_第3页
毕业设计网上订餐系统(附原代码)_第4页
毕业设计网上订餐系统(附原代码)_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录1. 系统的规划与分析31.1系统课题的确定31.2可行性研究31.2.1经济可行性研究31.2.2技术可行性31.2.3开发必要性31.3数据流程图41.4数据字典42. 系统的设计52.1系统结构化设计52.2系统代码设计62.3数据库设计72.4界面设计73. 系统的实施83.1程序设计83.1.1数据库的实施83.1.2程序的设计103.2系统调试144. 心得与体会145.附录:代码15chike.java代码15login.java代码16indexjframe.java代码20controlcenter.java 代码27myorder.java 代码33indexmanag

2、e.java 代码38manage.java 代码45acounting.java 代码511. 系统的规划与分析1.1系统课题的确定网络的发达使我们的生活越来越便利,网上购物,网上订票,网上订旅店等等,可谓衣食住行样样通。我萌生这样的想法是源于kfc的网上订餐系统,搭配其自己建立的送货上门网络,使得kfc在快餐市场上更上一层楼。那么我们能不能这样想,kfc可以自己做自己的网上订餐系统,因为他有强大的后台支持,但是,我们一般的餐饮公司是没有这样的能力,去开发自己的网上订餐系统的。所以,我希望做一个这样的软件(网站),餐饮公司可以注册自己的账号,通过我们的网上订餐软件,注册自己的账号,上传自己旗

3、下的食品照片,管理自己的网上订餐系统。食客们可以通过我们的软件(或者网站),搜索附近2-3公里的小吃,下订单,付款,等待送货上门。餐饮公司同时收到食客们的订单,打印订单,并且做好,送货上门。那么,我们就可以不止有一个kfc,而是即使你在家中,你也坐拥整条小吃街。1.2可行性研究1.2.1经济可行性研究一个软件,要想发展下去,必须要有其获得利益的方法。那么我们这个软件靠什么赚钱呢?我想,可以从这几个方面来获得利益。搜索排名。依靠搜索排名,可以在置顶收取了广告费的客户店铺信息,类似淘宝的商店排名。今日推荐。推荐里中出现的店铺都是收取了广告费的客户。排名按收费多少排序。在本软件发展到一定成熟程度的时

4、期,推出类似淘宝商城的业务,小店不用经营费用,但是,注册商城的大型连锁店铺需要收取一定费用。规模越大,费用越高。其他相关服务的推出初步估算,是有利益可图的。1.2.2技术可行性就个人而言,以我的水平完成这样的项目是有困难的。但是作为一个学年设计,本来就是学习的一个过程,重在实践中学习,并且,这个课题的内容是不难的。只要做到程序的设计和数据库的设计,基本上是可以完成的。有不懂可以搜索网上资料,和向老师请教。所以,技术上是可行的。1.2.3开发必要性目前市场上尚且还没有这样的软件(或者说是成型的营运中的软件),完成这样的软件对于市场是有一定的带头作用的。并且,我们也看到了kfc在其外卖行业上蒸蒸日

5、上的业绩。这样的软件是可以作为一个学年设计课题的。1.3数据流程图通过系统调查,吃客(我们姑且这么称呼,这也是我将要做的软件的项目名称。)下订单的过程如下:吃客登录我们的软件(有完善信息),通过软件查看要附近能送到的家的吃的。,选择下来之后,下订单,选择支付方式,支付方式有两种,一种是在线支付,一种是货到付款。在此之后,订单就到了我们的客户(食品公司),食品公司在做好外卖之后,根据订单上的地址和电话,将外卖送到吃客手中。数据流程图如下:食客付款食品公司订餐单催餐单选餐餐到付款订单送餐食客订餐数据流程图通过系统调查,客户(食品公司)业务流程如下:吃客下订单之后,客户检查订单是否可以送达,是否缺货

6、,检查之后,如果合格,则接下订单,通知厨房,做好外卖之后,由送餐员根据订单详情送达吃客手中,详细数据流程图如下:订餐用户下订单p1检查订单通知用户缺货合格订单p2打印订单通知厨房送餐员等待发货厨房送餐员产品出炉送货上门厨房出货数据流程图1.4数据字典数据流名:食品订单组成: 订单号码,食品代码,食品名称,食品公司id,数量,总价,吃客电话,吃客地址,订单时间来源:吃客去向: 对应食品公司数据流名:催餐单组成:订单号码订单时间食品名称食品数量食品销售流水账组成:同种食品订单组成涉及的处理:销售处理,记账处理排列方式:按销售日期降序销售台账组成: 日期食品代码食品名称本日累计销售量涉及的处理:登记

7、销售台账、制作月报表排列方式:按日期和食品代码升序排列2. 系统的设计2.1系统结构化设计吃客事务个人信息管理订单管理信息修改头像上传删除订单支付订单订单确认评价食品公司管理食品上传食品删除食品订单查看订单确认订单打印修改食品订单取消送货2.2系统代码设计食品代码的设计:假设我们现在能有万家客户,食品代码第1位到第5位代表食品公司编号从0000099999 最多可以设计10w家客户。第6位用来表示食品的分类。一共5类01代表饭类23代表面食类45代表西餐类67代表饮料类89代表其他类第7到第9位每类食品最多2000种食品,用三位表示则食品代码的构成如下153食品公司编码食品类别食品编号2.3数

8、据库设计实体名称:属性吃客吃客账号、密码、邮箱、电话、地址、头像食品食品编号、产品价格、产品名称餐饮公司餐饮公司编号、账号、密码、公司名称、邮箱、电话、地址、头像订单订单编号、下订单时间、食品编号、食品数量、吃客账号、要求送达时间、支付情况菜篮子订单编号、食客账号、总价、是否付款催餐单订单编号、催餐时间销售统计产品编号、日销售量2.4界面设计右上角用于头像显示,左边用于分类选择,上边用于导航栏选择,中间用于主体的显示3. 系统的实施3.1程序设计3.1.1数据库的实施本次数据库设计使用的是mysql数据库,数据库管理工具用的是navicat for mysql由于表的属性较多,e-r图较大,实

9、体与属性由下表显示数据库表的字段设计eater表的设计(吃客)food表的设计(食品)company表的设计(食品公司)order表的设计(订单)sold表的设计(月销售)fast表的设计(催餐)数据库数据实例company表数据:eater表的数据:food表的数据:menu表的数据:3.1.2程序的设计 本次软件设计使用的编程语言是java,工具是netbeans ide 7.1.2设计环境如下:项目名chikechike.javalogin.javaindexjframe.javaindexmanage.javamanage.javaacounting.jav

10、acontrolcenter.javamyorder.javaicon.javalogin界面的设计:indexjframe.java吃客登录界面设计controcenter.java个人中心设计icon.java设计myorder.java设计indexmanage.java设计manege.java设计3.2系统调试4. 心得与体会这次学年设计,对我来说是极为重要的一次设计。在学习了三年之后,我一直没有什么机会可以真正地实践一下,了解一下自己到底哪里不足,哪里不行。在完成这个学年设计之后,在下学期的找工作和找实习单位的时候,我也更有资本去选择一个公司。所以,这个学年设计的完成好坏对我来说是

11、相当重要的。但是,在着手做这个设计的时候,我才发现,自己真的是一点本事都没有。如果把知识都分散开来,数据库就数据库,java就java,管理系统就管理系统,软件工程就软件工程,那么我多半还有点知道,但是当需要把所学知识都综合起来,看似简单,却着实难到了我。尤其是数据库的运用,我在这上面所花的时间,几乎占了一大半,查了各种资料,问了许多同学。但是,目前还是很多问题没有解决。比如说头像文件在数据库中的保存,在java程序中的调用。另外,我对netbeans这个工具也是第一次使用,并不是很熟悉。工欲善其事必先利其器,熟练掌握一种工具的使用是有必要的。我有太多不会,太多不足,太多知识需要从课本运用到实

12、际中。感谢这次设计,给了我一个机会,让我更加熟练得掌握编程技术。5.附录:代码chike.java代码/* * to change this template, choose tools | templates * and open the template in the editor. */package chike;/* * * author xiaowuge */public class chike /* * param args the command line arguments */ public static void main(string args) / todo code

13、application logic here login l1=new login(); l1.setvisible(true); login.java代码/* * to change this template, choose tools | templates * and open the template in the editor. */package chike;/* * * author xiaowuge */public class login extends javax.swing.jframe /* * creates new form login */ public log

14、in() initcomponents(); /* * this method is called from within the constructor to initialize the form. * warning: do not modify this code. the content of this method is always * regenerated by the form editor. */ suppresswarnings(unchecked) / private void initcomponents() jlabel1 = new javax.swing.jl

15、abel(); jlabel2 = new javax.swing.jlabel(); jlabel3 = new javax.swing.jlabel(); jlabel4 = new javax.swing.jlabel(); jlabel5 = new javax.swing.jlabel(); jlabel6 = new javax.swing.jlabel(); jtextfield1 = new javax.swing.jtextfield(); jtextfield3 = new javax.swing.jtextfield(); jbutton1 = new javax.swi

16、ng.jbutton(); jbutton2 = new javax.swing.jbutton(); jpasswordfield1 = new javax.swing.jpasswordfield(); jpasswordfield2 = new javax.swing.jpasswordfield(); setdefaultcloseoperation(javax.swing.windowconstants.exit_on_close); settitle(登录界面); jlabel1.settext(我是吃客); jlabel2.settext(我是店铺管理员); jlabel3.se

17、ttext(账号); jlabel4.settext(密码); jlabel5.settext(账号); jlabel6.settext(密码); jtextfield1.settext( ); jtextfield3.settext( ); jbutton1.settext(登录); jbutton1.addactionlistener(new java.awt.event.actionlistener() public void actionperformed(java.awt.event.actionevent evt) jbutton1actionperformed(evt); );

18、jbutton2.settext(登录); jbutton2.addactionlistener(new java.awt.event.actionlistener() public void actionperformed(java.awt.event.actionevent evt) jbutton2actionperformed(evt); ); jpasswordfield1.addactionlistener(new java.awt.event.actionlistener() public void actionperformed(java.awt.event.actioneve

19、nt evt) jpasswordfield1actionperformed(evt); ); javax.swing.grouplayout layout = new javax.swing.grouplayout(getcontentpane(); getcontentpane().setlayout(layout); layout.sethorizontalgroup( layout.createparallelgroup(javax.swing.grouplayout.alignment.leading) .addgroup(layout.createsequentialgroup()

20、 .addgap(45, 45, 45) .addgroup(layout.createparallelgroup(javax.swing.grouplayout.alignment.trailing) .addcomponent(jlabel2) .addcomponent(jlabel1) .addgroup(layout.createparallelgroup(javax.swing.grouplayout.alignment.leading) .addgroup(layout.createsequentialgroup() .addgap(52, 52, 52) .addgroup(l

21、ayout.createparallelgroup(javax.swing.grouplayout.alignment.leading) .addcomponent(jlabel3) .addcomponent(jlabel4) .addgroup(layout.createsequentialgroup() .addgap(54, 54, 54) .addgroup(layout.createparallelgroup(javax.swing.grouplayout.alignment.leading) .addcomponent(jlabel6) .addcomponent(jlabel5

22、) .addgap(60, 60, 60) .addgroup(layout.createparallelgroup(javax.swing.grouplayout.alignment.leading, false) .addcomponent(jbutton2, javax.swing.grouplayout.alignment.trailing) .addcomponent(jpasswordfield2) .addcomponent(jtextfield3) .addgroup(layout.createparallelgroup(javax.swing.grouplayout.alig

23、nment.trailing) .addcomponent(jbutton1) .addgroup(layout.createparallelgroup(javax.swing.grouplayout.alignment.trailing, false) .addcomponent(jpasswordfield1, javax.swing.grouplayout.alignment.leading) .addcomponent(jtextfield1, javax.swing.grouplayout.alignment.leading, javax.swing.grouplayout.defa

24、ult_size, 104, short.max_value) .addcontainergap(92, short.max_value) ); layout.setverticalgroup( layout.createparallelgroup(javax.swing.grouplayout.alignment.leading) .addgroup(layout.createsequentialgroup() .addgap(56, 56, 56) .addgroup(layout.createparallelgroup(javax.swing.grouplayout.alignment.

25、baseline) .addcomponent(jlabel3) .addcomponent(jtextfield1, javax.swing.grouplayout.preferred_size, javax.swing.grouplayout.default_size, javax.swing.grouplayout.preferred_size) .addcomponent(jlabel1) .addgap(18, 18, 18) .addgroup(layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)

26、 .addcomponent(jlabel4) .addcomponent(jpasswordfield1, javax.swing.grouplayout.preferred_size, javax.swing.grouplayout.default_size, javax.swing.grouplayout.preferred_size) .addgap(18, 18, 18) .addcomponent(jbutton1) .addpreferredgap(javax.swing.layoutstyle.componentplacement.related, 47, short.max_

27、value) .addgroup(layout.createparallelgroup(javax.swing.grouplayout.alignment.baseline) .addcomponent(jlabel2) .addcomponent(jlabel5) .addcomponent(jtextfield3, javax.swing.grouplayout.preferred_size, javax.swing.grouplayout.default_size, javax.swing.grouplayout.preferred_size) .addgroup(layout.crea

28、teparallelgroup(javax.swing.grouplayout.alignment.leading) .addgroup(layout.createsequentialgroup() .addcomponent(jlabel6) .addgap(72, 72, 72) .addgroup(javax.swing.grouplayout.alignment.trailing, layout.createsequentialgroup() .addgap(14, 14, 14) .addcomponent(jpasswordfield2, javax.swing.grouplayo

29、ut.preferred_size, javax.swing.grouplayout.default_size, javax.swing.grouplayout.preferred_size) .addgap(10, 10, 10) .addcomponent(jbutton2) .addgap(25, 25, 25) ); pack(); / private void jbutton1actionperformed(java.awt.event.actionevent evt) indexjframe j1=new indexjframe(); j1.setvisible(true); th

30、is.setvisible(false); / todo add your handling code here: private void jbutton2actionperformed(java.awt.event.actionevent evt) indexmanage i1=new indexmanage(); i1.setvisible(true);/ todo add your handling code here: this.setvisible(false); private void jpasswordfield1actionperformed(java.awt.event.

31、actionevent evt) / todo add your handling code here: /* * param args the command line arguments */ / variables declaration - do not modify private javax.swing.jbutton jbutton1; private javax.swing.jbutton jbutton2; private javax.swing.jlabel jlabel1; private javax.swing.jlabel jlabel2; private javax

32、.swing.jlabel jlabel3; private javax.swing.jlabel jlabel4; private javax.swing.jlabel jlabel5; private javax.swing.jlabel jlabel6; private javax.swing.jpasswordfield jpasswordfield1; private javax.swing.jpasswordfield jpasswordfield2; private javax.swing.jtextfield jtextfield1; private javax.swing.j

33、textfield jtextfield3; / end of variables declaration indexjframe.java代码/* * to change this template, choose tools | templates * and open the template in the editor. */package chike;/* * * author xiaowuge */public class indexjframe extends javax.swing.jframe /* * creates new form indexjframe */ publ

34、ic indexjframe() initcomponents(); /* * this method is called from within the constructor to initialize the form. * warning: do not modify this code. the content of this method is always * regenerated by the form editor. */ suppresswarnings(unchecked) / private void initcomponents() nearby = new jav

35、ax.swing.jbutton(); suggest = new javax.swing.jbutton(); myorder = new javax.swing.jbutton(); all = new javax.swing.jbutton(); meat = new javax.swing.jbutton(); noodle = new javax.swing.jbutton(); west = new javax.swing.jbutton(); drink = new javax.swing.jbutton(); other = new javax.swing.jbutton();

36、 controlcenter = new javax.swing.jbutton(); scream = new javax.swing.jpanel(); jlabel1 = new javax.swing.jlabel(); setdefaultcloseoperation(javax.swing.windowconstants.exit_on_close); settitle(吃客-网络订餐系统); setbackground(new java.awt.color(255, 255, 255); nearby.settext(附近小吃); nearby.addmouselistener(

37、new java.awt.event.mouseadapter() public void mouseclicked(java.awt.event.mouseevent evt) nearbymouseclicked(evt); ); suggest.settext(今日推荐); suggest.addmouselistener(new java.awt.event.mouseadapter() public void mouseclicked(java.awt.event.mouseevent evt) suggestmouseclicked(evt); ); myorder.settext

38、(我的订单); myorder.addmouselistener(new java.awt.event.mouseadapter() public void mouseclicked(java.awt.event.mouseevent evt) myordermouseclicked(evt); ); myorder.addactionlistener(new java.awt.event.actionlistener() public void actionperformed(java.awt.event.actionevent evt) myorderactionperformed(evt

39、); ); all.settext(全部); all.addmouselistener(new java.awt.event.mouseadapter() public void mouseclicked(java.awt.event.mouseevent evt) allmouseclicked(evt); ); meat.settext(饭类); meat.addmouselistener(new java.awt.event.mouseadapter() public void mouseclicked(java.awt.event.mouseevent evt) meatmousecl

40、icked(evt); ); noodle.settext(面类); noodle.addmouselistener(new java.awt.event.mouseadapter() public void mouseclicked(java.awt.event.mouseevent evt) noodlemouseclicked(evt); ); west.settext(西餐); west.addmouselistener(new java.awt.event.mouseadapter() public void mouseclicked(java.awt.event.mouseeven

41、t evt) westmouseclicked(evt); ); drink.settext(饮料); drink.addmouselistener(new java.awt.event.mouseadapter() public void mouseclicked(java.awt.event.mouseevent evt) drinkmouseclicked(evt); ); other.settext(其他); other.addmouselistener(new java.awt.event.mouseadapter() public void mouseclicked(java.aw

42、t.event.mouseevent evt) othermouseclicked(evt); ); controlcenter.settext(个人中心); controlcenter.addactionlistener(new java.awt.event.actionlistener() public void actionperformed(java.awt.event.actionevent evt) controlcenteractionperformed(evt); ); scream.setbackground(java.awt.systemcolor.activecaptio

43、n); scream.setforeground(javax.swing.uimanager.getdefaults().getcolor(button.darkshadow); scream.setautoscrolls(true); javax.swing.grouplayout screamlayout = new javax.swing.grouplayout(scream); scream.setlayout(screamlayout); screamlayout.sethorizontalgroup( screamlayout.createparallelgroup(javax.s

44、wing.grouplayout.alignment.leading) .addgap(0, 489, short.max_value) ); screamlayout.setverticalgroup( screamlayout.createparallelgroup(javax.swing.grouplayout.alignment.leading) .addgap(0, 298, short.max_value) ); jlabel1.seticon(new javax.swing.imageicon(getclass().getresource(/chike/icon.jpg); / noi18n javax.swing.grouplayout layout = new javax.swing.groupla

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论