论文部分内容阅读
隨着社会经济的发展,人们的生活节奏不断加快,上班时间相当紧张,但一日三餐却不可少。通过网上订餐点菜系统,不必亲临现场,在家中或在办公室上网,便可以为自己、家人、朋友聚会等制办一份既营养又实惠的美食。基于以上原因,我们开发了本系统。
一、系统软件介绍
本系统以Visual Studio.NET 2003为开发平台,采用B/S模式,以VB.NET语言为基础进行开发;数据库采用关系型数据库SQL Server 2000;系统软件可在Windows或Unix平台上运行。
二、数据库设计
本系统的数据库主要涉及餐位、食品、用户、订单等信息。采用关系型数据库SQL Server 2000进行设计,主要包括以下表,表中含有下划线的字段为各表的主键。
1.餐位表Seats。该表主要包括SeatID(餐位编号)、Location(位置)、Nums(容纳人数)、Charge(收费标准)、State(预订状态)等5个字段。
2.类别表Kind。该表包括KindID(类别编号)、KindName(类别名称)2个字段。
3.产品表Products。该表主要包括fID(食品编号)、fName(食品名称)、Price(价格)、fIntro(食品介绍)、KindID(类别编号)等字段,其中KindID字段与类别表中的KindID字段对应。
4.用户表Users。该表主要包括UserID(用户名)、UserPwd(密码)、Sex(性别)Email(电子邮件)、Address(联系地址)、Tel(联系电话)等字段。
5.订单表Orders。该表主要包括OrderID(订单编号)、UserID(用户名)、Location(位置)、TotalNum(订购食品总数量)、TotalMoney(订购食品总价格)、HavingDinnerDate(用餐日期)、HavingDinnerTime(用餐时间)、OrderingTime(预订日期)等字段,当用户提交注册信息时,即返回一个订单号OrderID。其中UserID与Users表中的UsersID相同,用来确定该订单属于谁。
6.详细订购信息表Orders_Detail。该表包括OrderID(订单编号)、fID(食品编号)、fNum(订购数量)。表中的订单号OrderID与Users表中的订单号相同,表明该记录属于哪一笔订单。
7.管理员表admin。该表包括2个字段:adminName(管理员名)和adminPwd(管理员密码)。
三、系统详细设计
使用ASP.NET开发的网上订餐点菜系统,具有如下功能:
普通用户模块。普通用户可以进行食物营养查询、预订餐位、浏览食品、订购食品、用户注册、用户登录、订购信息查询、网上留言等。
管理员模块。包括餐位管理、类别管理、食品管理、订单管理、用户管理及留言管理等。
根据系统要实现的功能,进行了如下设计。
1.用户模块设计。
(1)预订餐位模块。在首页中提供了可用餐位的信息,包括人数、收费标准等。单击“预订”按钮,即可预订该餐位,同时在页面中显示所选的餐位信息,并显示一个“开始订菜”按钮。在首页中提供了查询食物营养、查询订单、留言等超链接。
(2)订菜模块。选择“开始订菜”,即进入订菜页面。用户可以浏览全部或某一类食品;也可以按食品名称或价格进行查找;可以查看食品的详细信息。单击“订购”按钮可将选定的食品放到订餐车中。在订餐车中显示所订购的食品,可以修改食品数量,删除食品,可以返回继续订购,也可以取消本次订购。
(3)下订单模块。本次订购结束后,在订餐车中选择“下订单”,进入用户注册页面。收集用户的信息及用餐的日期、时间等信息。提交注册信息时,将用户信息写入Users表,将订购食品的总数量、总金额及用餐的日期、时间及预订日期等写入Orders表,同时返回一个订单号,并将订购的详细信息写入Orders_Detail表,包括订单编号、食品编号和订购数量。
(4)订餐信息查询模块。提交注册信息后,随即进入登录页面,输入用户名和密码后,即可显示该用户详细的预订信息及总的费用。
(5)用户留言模块。用户可通过留言板进行留言,留下自己的意见和建议等。
2.管理员模块设计。通过管理员登录页面进行登录,确认其是否具有管理员资格。如果是管理员,即可进入管理员管理页面。
(1)餐位管理模块。这是管理员模块中重要的一部分。作为餐饮的餐位状态在一日三餐后都需要及时更新。在该模块中,通过选择日期及就餐时间,可查询每天的预订情况,每一餐的预订情况,查询餐位情况。在预订的用餐时间过后,将餐位的可用状态恢复为“是”。
(2)食品类别及食品管理模块。管理员可添加和删除类别,添加和删除食品。
(3)用户管理模块。可以查询用户信息,并对用户进行删除。
(4)订单管理模块。可以按日期查询订单,删除过期订单。
(5)用户留言管理。作为管理员,可以回复用户留言,删除留言等。
四、关键技术
订餐车设计是本系统的关键。在订餐车中,利用HashTable和Session对象保存订购食品的食品编号和数量。当订购食品时,首先检查Session中的HashTable是否存在,如果不存在,就创建一个HashTable,并将其保存到Session中。如果要订购一种食品,从Session中读取HashTable,将食品编号和订购数量添加到HashTable中,重新将HashTable保存回Session中;如果要订购订餐车中已经存在的食品,从Session中读取HashTable,按食品编号找到该食品,将对应的数量加1后,将HashTable保存回Session中;如果要修改食品数量时,从Session中读取HashTable,在其中找到该食品,直接修改数量即可;如果要删除某种食品,从Session中读取HashTable,在其中找到该食品,将该项删除即可。
要显示订购的食品信息,只需从Session中读取HashTable,并根据食品编号从Products表中查找对应的食品名称、价格等信息,并根据HashTable和Products表中的信息生成一个DataTable,绑定到DataGrid控件显示出来即可。
五、结束语
本课题属于电子商务中的一种,但又不同于电子商务。通过网上订餐点菜系统,可以实现订餐位、点菜、食物营养查询等功能,可以为许多饮食行业所应用,可以合理地利用人力、物力、财力等现有资源,产生更大的经济效益。
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
一、系统软件介绍
本系统以Visual Studio.NET 2003为开发平台,采用B/S模式,以VB.NET语言为基础进行开发;数据库采用关系型数据库SQL Server 2000;系统软件可在Windows或Unix平台上运行。
二、数据库设计
本系统的数据库主要涉及餐位、食品、用户、订单等信息。采用关系型数据库SQL Server 2000进行设计,主要包括以下表,表中含有下划线的字段为各表的主键。
1.餐位表Seats。该表主要包括SeatID(餐位编号)、Location(位置)、Nums(容纳人数)、Charge(收费标准)、State(预订状态)等5个字段。
2.类别表Kind。该表包括KindID(类别编号)、KindName(类别名称)2个字段。
3.产品表Products。该表主要包括fID(食品编号)、fName(食品名称)、Price(价格)、fIntro(食品介绍)、KindID(类别编号)等字段,其中KindID字段与类别表中的KindID字段对应。
4.用户表Users。该表主要包括UserID(用户名)、UserPwd(密码)、Sex(性别)Email(电子邮件)、Address(联系地址)、Tel(联系电话)等字段。
5.订单表Orders。该表主要包括OrderID(订单编号)、UserID(用户名)、Location(位置)、TotalNum(订购食品总数量)、TotalMoney(订购食品总价格)、HavingDinnerDate(用餐日期)、HavingDinnerTime(用餐时间)、OrderingTime(预订日期)等字段,当用户提交注册信息时,即返回一个订单号OrderID。其中UserID与Users表中的UsersID相同,用来确定该订单属于谁。
6.详细订购信息表Orders_Detail。该表包括OrderID(订单编号)、fID(食品编号)、fNum(订购数量)。表中的订单号OrderID与Users表中的订单号相同,表明该记录属于哪一笔订单。
7.管理员表admin。该表包括2个字段:adminName(管理员名)和adminPwd(管理员密码)。
三、系统详细设计
使用ASP.NET开发的网上订餐点菜系统,具有如下功能:
普通用户模块。普通用户可以进行食物营养查询、预订餐位、浏览食品、订购食品、用户注册、用户登录、订购信息查询、网上留言等。
管理员模块。包括餐位管理、类别管理、食品管理、订单管理、用户管理及留言管理等。
根据系统要实现的功能,进行了如下设计。
1.用户模块设计。
(1)预订餐位模块。在首页中提供了可用餐位的信息,包括人数、收费标准等。单击“预订”按钮,即可预订该餐位,同时在页面中显示所选的餐位信息,并显示一个“开始订菜”按钮。在首页中提供了查询食物营养、查询订单、留言等超链接。
(2)订菜模块。选择“开始订菜”,即进入订菜页面。用户可以浏览全部或某一类食品;也可以按食品名称或价格进行查找;可以查看食品的详细信息。单击“订购”按钮可将选定的食品放到订餐车中。在订餐车中显示所订购的食品,可以修改食品数量,删除食品,可以返回继续订购,也可以取消本次订购。
(3)下订单模块。本次订购结束后,在订餐车中选择“下订单”,进入用户注册页面。收集用户的信息及用餐的日期、时间等信息。提交注册信息时,将用户信息写入Users表,将订购食品的总数量、总金额及用餐的日期、时间及预订日期等写入Orders表,同时返回一个订单号,并将订购的详细信息写入Orders_Detail表,包括订单编号、食品编号和订购数量。
(4)订餐信息查询模块。提交注册信息后,随即进入登录页面,输入用户名和密码后,即可显示该用户详细的预订信息及总的费用。
(5)用户留言模块。用户可通过留言板进行留言,留下自己的意见和建议等。
2.管理员模块设计。通过管理员登录页面进行登录,确认其是否具有管理员资格。如果是管理员,即可进入管理员管理页面。
(1)餐位管理模块。这是管理员模块中重要的一部分。作为餐饮的餐位状态在一日三餐后都需要及时更新。在该模块中,通过选择日期及就餐时间,可查询每天的预订情况,每一餐的预订情况,查询餐位情况。在预订的用餐时间过后,将餐位的可用状态恢复为“是”。
(2)食品类别及食品管理模块。管理员可添加和删除类别,添加和删除食品。
(3)用户管理模块。可以查询用户信息,并对用户进行删除。
(4)订单管理模块。可以按日期查询订单,删除过期订单。
(5)用户留言管理。作为管理员,可以回复用户留言,删除留言等。
四、关键技术
订餐车设计是本系统的关键。在订餐车中,利用HashTable和Session对象保存订购食品的食品编号和数量。当订购食品时,首先检查Session中的HashTable是否存在,如果不存在,就创建一个HashTable,并将其保存到Session中。如果要订购一种食品,从Session中读取HashTable,将食品编号和订购数量添加到HashTable中,重新将HashTable保存回Session中;如果要订购订餐车中已经存在的食品,从Session中读取HashTable,按食品编号找到该食品,将对应的数量加1后,将HashTable保存回Session中;如果要修改食品数量时,从Session中读取HashTable,在其中找到该食品,直接修改数量即可;如果要删除某种食品,从Session中读取HashTable,在其中找到该食品,将该项删除即可。
要显示订购的食品信息,只需从Session中读取HashTable,并根据食品编号从Products表中查找对应的食品名称、价格等信息,并根据HashTable和Products表中的信息生成一个DataTable,绑定到DataGrid控件显示出来即可。
五、结束语
本课题属于电子商务中的一种,但又不同于电子商务。通过网上订餐点菜系统,可以实现订餐位、点菜、食物营养查询等功能,可以为许多饮食行业所应用,可以合理地利用人力、物力、财力等现有资源,产生更大的经济效益。
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。