C/C++在线餐馆预订管理系统

C/C++在线餐馆预订管理系统

软件学院实训任务书

一、实训名称
实践环节 数据结构与算法实训
项目名称 在线餐馆预订管理系统
二、学生信息
班级 学号 姓名
三、实训目的
通过在线餐馆预订管理系统的设计和开发实践过程,使学生巩固掌握数据结构与算法中的各种数据类型的基本概念、性质及基本算法,熟练应用C语言/Java语言进行抽象建模,并运用相关算法解决实际问题,培养科学思维能力和创新精神。
(1)能够通过文献查阅、进行需求分析,借助算法研讨理解工程问题解决方案的多样性,从现有文献寻求解决实际工程问题的方法。
(2)能够根据项目需求分析,进行模块/子系统设计与实现,并有意识地尝试新方法、新技术。
(3)能够用精练简洁规范的文字、清晰的图表表达自己的设计思想和实现结果,正确绘制图表,分析测试结果,并给出最终结论。
(4)能正确分析算法的时间复杂度和空间复杂度。
四、实训内容
本次实训是设计与实现一个在线餐馆预订管理系统,其主要内容如下:
(1) 需求分析:对系统进行需求分析确定系统的功能需求、非功能需求等。
(2)系统设计:对系统进行设计确定系统的数据管理方式、模块划分等。
(3)系统实现:用C语言或Java语言进行编码实现。
(4)系统测试:对系统进行测试,并根据结果进行分析完善系统。
(5)报告撰写:对分析、设计和实现结果的一个呈现,应包含系统需求分析、系统设计、系统实现、系统测试和实训感想内容。
五、实训功能需求

源码

https://pan.baidu.com/s/1pq1Nwwo0hlc_J84F93HM4A?pwd=1111

实现在线餐馆预订管理系统,主要功能需求如下:
系统设置商家和个人用户两个角色,其中,个人用户可对用户本人的个人信息进行管理,并可查询餐馆信息、预订餐馆、获取餐馆的推荐等,商家可对自身的餐馆信息进行管理、处理餐馆预订信息等。
相关数据存储在文本文件中,文件信息说明如表1所示。
表1 相关数据说明
文件名 文件说明 具体字段信息
user.txt 用户信息 用户账号、密码、联系方式
shop.txt 商家信息 类型、ID、商家名称、密码、评分、人均消费、地址、电话、特色菜、评论
order.txt 用户订餐信息 用户账户、商家名称、预订时间
distance.txt 商家之间的距离 商家1-ID、商家1名称、商家2-ID、商家2名称、距离
user.txt文件内容示例如图1所示。

图1 user.txt文件内容示例
shop.txt文件内容如图2所示。

图2 shop.txt文件内容示例

图3 order.txt文件内容示例

图4 distance.txt文件内容示例
系统功能包括用户子系统和商家子系统。
1.用户子系统
用户子系统为注册并登录的个人用户提供个人信息管理功能、餐馆查询功能、餐馆预订功能、餐馆推荐功能等。用户进入该子系统时。需要选择注册或登录。注册时,根据用户输入的个人信息,将该用户的信息按照账号升序排列插入到文件user.txt中;登录时根据输入的账号和密码判断该用户是否存在,密码是否正确,登录成功后,进入该子系统。
1)个人信息管理
用户登录后,可通过读写user.txt文件实现对用户个人信息进行管理的功能。
(1)查看个人信息。查找该用户信息,然后将该用户的账号和联系方式显示出来。
(2)修改个人信息。用户可以对自己的个人信息进行修改,包括密码和联系方式,将修改后的信息存储到user.txt文件中。
(3)注销个人信息。用户可以注销当前账号,注销成功后将该用户的个人信息从文件user.txt中删除。
2)餐馆查询
餐馆信息保存在文件shop.txt中,文件中的ID和餐馆名称均是唯一的,由于用户一般是通过名称来查询餐馆,因此将餐馆名称作为查找的关键字,利用哈希表查找算法来实现,若该餐馆存在,则返回餐馆的基本信息,及用户到该餐馆的最短距离。假设用户的地址为郑州轻工业大学,通过读取餐馆之间的距离文件distance.txt,求郑州轻工业大学到该餐馆的最短距离。
3)餐馆预订
一个用户可以预订多家餐馆,一个餐馆也可以被多个用户预订,为了简化处理,所有预订信息均保存在用户订餐信息文件order.txt中,用户可通过读写文件order.txt中的信息,实现个人对预订信息的管理。
(1)查询用户所有预订。查询用户本人的所有预订信息,可能包含多个餐馆的预订。
(2)查询某餐馆的预订。通过输入餐馆名称,查询该用户在该餐馆的预订信息。
(3)添加预订。输入餐馆的名称,如果该餐馆在文件shop.txt中存在,则说明可以进行预订,增加一条新的预订信息存储到文件order.txt的最后;如果餐馆不在文件中,则预订失败。
(4)餐馆推荐。通过字符串匹配算法,借助文件shop.txt中提供的类别,特色菜、评论、评分等信息为用户推荐餐馆。用户选择推荐功能后,依次提示输入餐馆类别、特色菜、餐馆特点,系统将查询到的符合要求的餐馆按评分降序输出。推荐排序尽量采用时间复杂度较低的算法。
2.商家子系统
商家子系统为商家提供餐馆信息管理功能和餐馆预订信息管理功能。商家进入该系统时,需要进行登录。登录时输入商家名称和密码,读取文件shop.txt中的数据,通过哈希表查找判断商家是否存在。登录成功后,进入该子系统。
1)餐馆信息管理
商家登录后,可以通过读写文件shop.txt,采取哈希表对餐馆信息进行管理。
(1)查询餐馆信息。根据登录时的餐馆名称进行哈希查找,显示餐馆自身的相关信息。
(2)修改餐馆信息。商家可以对自身的信息进行修改,根据提示,深入餐馆信息,包括类型、商家名称、密码、人均消费、地址、电话、特色菜等,将更新后的信息存储到shop.txt文件中。
(3)注销餐馆信息。商家可以注销当前账号,注销成功后从文件shop.txt中删除该餐馆信息。
2)餐馆预订信息管理
与个人用户一样,商家可通过读写order.txt文件中的信息,实现对餐馆预订信息进行管理。
(1)查询餐馆所有预订。查询该餐馆的所有预订信息,可能包含多个用户的预订。
(2)查询某用户预订。通过输入用户名称,查询该用户预订的该餐馆信息。
(3)处理预订。商家根据用户预订该餐馆的先后顺序来处理预订,处理后的预订直接删除。通过输入待处理预订的个数n,将目前排在前面的前n条预订该餐馆的信息从order.txt文件中删除。
六、项目开发与实训文档撰写要求

  1. 用C语言/Java语言开发。
  2. 需求分析分组完成。其余任务个人真实地、独立地完成。
  3. 需求分析:根据题目进行需求分析,分析项目的可行性,包括功能分析、技术可行性等。
  4. 系统设计:依据需求分析结果,设计系统方案。分析比较几种可行方案,选择最优方案,完成系统设计。
  5. 系统实现:
    (1)图形用户界面设计:用C语言或Java语言设计系统界面。
    (2)功能实现:根据实际需求对系统进行改进或者进行模拟。
    (3)鼓励需求创新,实现更多功能。
    (4)规范编码:变量名、函数名应规范,语句嵌套采用缩进格式;尽量采用结构化和模块化的程序设计方法;能够清楚注释程序中功能语句块的具体含义。
  6. 系统测试:对系统进行简单测试,并根据结果进行分析完善系统。
  7. 撰写规范的实训报告:应包含软件需求分析;设计思路和整体框架;各功能或者模块实现的思路(或者用带注释的程序代替)并交待模块之间的接口关系;系统设计的结果(可以用一些屏幕拷贝的图来补充说明)。
  8. 设计的系统能够运行,提交源程序、实训日志和实训报告。
    七、进度安排
    天/日期 任务描述 通过标准
    第1天 包括功能需求和非功能需求的分析、定义。 能够通过查阅和利用文献,能够参与讨论,总结系统需求。需求分析文档规范、合理。
    构思思路和整体框架;
    定义数据结构类型,设计系统框架;
    设计被系统调用的main函数;
    设计界面函数。 能够根据项目需求分析,提出项目设计方案,完成系统设计、代码设计。
    设计方案,设计思路、实验(论证)方法无原则性错误。
    第2-4天 根据选择的数据结构,完成系统的基本功能 各子模块调试通过,系统测试没有错误。
    系统界面不友好度在可接受范围。
    设计算法,完成算法功能并编码实现。
    第5天 实训报告包括系统分析、系统设计、系统实现、系统测试和实训感想等。 论述基本完整,条理基本清晰,有一定逻辑性。图、表、文字表述较规范。成果形式基本规范,内容完整。
    验收程序、讨论、成果提交。 汇报基本简明扼要,思路不够清晰;关键技术表达准确。
    基本问题回答准确,基本概念清楚。
    八、考核评价方式
    本课程采用“目标+环节+报告”的考核方式,围绕课程目标达成情况,从实训过程、项目代码和实训文档质量等几个方面进行考核,成绩评定依据实训日志成绩(10%)、实训验收成绩(60%)和实训报告成绩(30%)进行核定。最终成绩采用优秀、良好、中等、及格、不及格五级制。
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值