题目: 酒店管理和宾客端服务系统 96分

这里写目录标题

  • 一.绪论
  • 二.任务的描述
  • 三.任务设计
  • 四.编写代码
  • 五.感想认识
  • 六.截图
  • 七、使用步骤
    • 分享原因

一.绪论

酒店管理和宾客端服务系统的意义是提供给酒店和消费者一个友好的界面,并能够简化用户的操作。其目的是满足一般小型旅馆的日程管理需要。其研究范围不包括web端,以及现实中调用支付宝等支付工具来进行金钱转移。目前的技术用到是使用Sqlsever做数据库存储,C#语言做winform等。
本设计的指导思想是尽量将界面变得友好,不会出现让管理与服务出错。设计比较稳固的数据库,减少冗余和提高便捷度。
主要问题是如何将这些事务有逻辑组织起来,保证数据正确。
采用研究方法是每次实现一个功能时,测试是否发生冲突。即测试与修改。

二.任务的描述

1.目标: 设计出比较稳固的数据库、功能全面,且每一个功能尽量做到具备独立性、美化界面。
2.功能描述:·宾客端:

  1. 不同类型消费者个人信息的更新2. 注册与登录3.休闲功能
    4.增加与退订服务和商品、5.房卡充值与转出6.消费记录7.系统刷新和退出8.权限分配(不同类型的顾客有不同的权限)9.预定和取消预定10.入住(个别类型才能入住)
    ·管理员端:
    1.宾客入住登记2.增加服务和商品 3.退房结算(房卡支付有折扣)4.宾客查询5.历史记录访问与分析6.管理员的信息更新(存储过程和触发器实现)7.增加客房。

3.运行环境: 可以在visual studio2015和SQL server2019软件上和win10的操作系统上运行。

三.任务设计

数据库结构可查看百度云资源,csdn上不好显示。

给出ER图:

四.编写代码

1.问题1
(1)问题描述:每次建立一个窗体都要设置连接字符串,窗体比较多,代码比较长,过程繁琐。
(2)解决办法:建立一个数据库的类,将连接一系列操作封装起来,即使用的时候编写sql语句即可。而封装分为两类,一种是非查询操作,返回影响的行数。对修改删除增加事务,使用事务回滚。一种是查询操作,返回SqlDataReader对象。使用非常方便。
2.问题2
(1)问题描述:窗体A打开了窗体B,但窗体B的数据更新不了,即没有收到窗体A的一些数据。
(2)解决办法:1.在窗体B的代码里设置一公有类型的数据,在生成窗体B时,即将窗体B的对象的共有类型数据赋值。这样窗体B根据这个共有数据进行更新。
3.问题3
(1)问题描述:窗体A打开了窗体B,窗体B的数据更新后应对A进行更新,但关闭窗体B时窗体A没有进行更新。
(2)解决办法:将窗体A的类设置一个静态的“更新”函数,静态函数中的 属性也都设成静态的。然后B在更新成功后进行调用A的更新函数。

4.问题4
(1)问题描述:在修改本管理员密码时,根据现实意义,应该将本次的连接断开,重新登陆。但是由主窗体产生的子窗体怎样对主窗体产生影响呢?不能建立主窗体的static 函数,因为无法使用this指针来关闭当前的主窗体。
(2)解决办法:可以添加对主窗体对象的引用或地址,即子窗体通过引用或地址可以调用主窗体的关闭函数。
5.问题5
(1)问题描述:建立主从表时,从表的数据源不是理想的部分。

(2)解决办法:可以再建两个BindingSource,然后将主表的外键和其中一个BindingSource联系起来,再对另一个BindingSource组件与之前的BindingSource连接,然后再和从表连接起来,取得想要的数据。即对BindingSource进行修改和连接。
6.问题6
(1)问题描述:在设计界面上,需要动态的产生几个button对象。当点击时需要生成另外一个窗体,但是如何对new 出的button的点击事件进行使用呢?
(2)解决办法:btn.Click += new EventHandler(btn_click);这条语句可以将所有产生的button对象的点击事件统一起来。点击事件中的Button btn = (Button)sender;这条语句确定了是哪一个button。
button的Tag属性可以进行赋值,程序中赋值成房间号,来进行对弹出窗体的更新
7.问题7
(1)问题描述:当进行插入有多条重复的(消费商品)记录时,主从表中会出现错误,显示违背了约束条件。
(2)解决办法:不能修改表的情况下,避免重复记录的产生。或者修改表结构,使得每一条记录都是唯一的。
8.问题8
(1)问题描述:怎样在数据库建立存储过程后进行调用呢?
(2)解决办法:1.SQLcommand对象在构造时的参数加一个存储过程的名字,2.将 SQLcommand对象的类型改成存储过程3.定义一个参数对象获取存储过程返回的值。像函数中的返回值那样。
9.问题9
(1)问题描述:怎样在退房结算判断超时呢?
(2)解决办法:因为在退房结算时时间时本地的时间,以及存在住房记录(Bookroom表)的入住时间(datecheckin) ,网上并没有设置一个专门的设置具体日期,时间的函数,但是可以通过字符串转换时间的函数来得到具体日期。即将入住的那天的下一天的时间字符串截取日期,再连接上“12:00:00”,再转换成datetime作为超时的标准。用当前时间与它比较,得到是否超时。
10.问题10
(1)问题描述:验证码技术是怎样做的?
(2)解决办法:首先是随机生成一段字符串,这个做起来简单。然后是建立graphic对象, 然后调用绘制字符串函数DrawString(),然后再绘制噪声线和前景噪声点,然后基本得到一个图。但是最后需要加边框,因为picturebox不会显示边框,因此再绘制四条边缘线。
11.问题11
(1)问题描述:图像怎样变成二进制存到数据库里,又怎样在程序中读取呢?
(2)解决办法:在这个技术中需要引进IO的命名空间,以及Drawing.Imaging这个命名空间。用来对流和image对象进行操作。
第二步将图片格式转成二进制。
这个memorystream流对象有一个存储的感觉,但是不能直接对图像操作。BitMap是一个专门处理图像信息的类,作用是能将改变格式的图片放在流对象里。存好后此时位置到末尾,因为要读取流对象内的信息,必须从开头读,才能得到字节类型的返回值。
第三步是存取到数据库里。数据库里有一种类型是image类型,可以存文字和图像。其格式就是二进制。直接调用insert即可。不再详细写了。
然后是读取数据库中的图像。
Select语句取到二进制类型时,调用下面这个函数

同样是用到了存储用的memorystream流对象只不过它存的是二进制类型的对象,通过字节转图片的函数转换得到图片资源。

12.问题12
(1)问题描述:怎样显示动态的时间和滚动显示信息效果?
(2)解决办法:需要一个Timer控件,它的作用比较像单片机里头的定时器,每秒执行什么操作。所以在程序加载时启动定时器,一直将当前时间赋给label,以及滚动条每秒移动3个单位。但是在这个每秒刷新时中不能进行窗体建立,尽管代码控制关闭了窗口,定时器仍然对窗体进行建立,因此对定时器的使用有一定前提。

五.感想认识

 首先,我觉得本次课程设计是劳累的。因为自己在准备做课程设计是一点头绪都没有,然后我在网上看视频教程,书上寻找例子,我觉得他们做的非常好。于是我参考了他们的界面设计,使用了他们的图像资源,界面的控件使用逐渐基本明白。

六.截图




。。。很多很多大家可以看我的Bilibili,有一段视频展示,来供大家参考。

七、使用步骤

酒店管理系统已上传至百度云,里面有数据库文件,以及一些设计报告,想要看的小伙伴可以跳过去哈,链接如下
百度云链接: https://pan.baidu.com/s/1BBtOchbrXjUVNnQ4QFU0WQ?pwd=exfs.

链接: https://pan.baidu.com/s/1BBtOchbrXjUVNnQ4QFU0WQ?pwd=exfs 提取码: exfs 复制这段内容后打开百度网盘手机App,操作更方便哦
酒店管理系统与宾客管理的视频已放在B站上,想要参考界面的可以去看一下哈,记得三联哈
B站链接:https://www.bilibili.com/video/BV1ZY411L79A/.

分享原因

1.致敬开源的那些前辈、博主。
我的大二、大三遇到的问题以及学习地点都是在CSDN、B站、GitHub、Gitee。每次项目的出彩的地方都源自他们,我也不能再藏着掖着,以方便同学们应对老师布置的作业。
2. 计算机专业的同学要记录一下自己的学习经历。
3.向先进学习!

酒店管理系统+数据库课程设计+资料齐全+高分相关推荐

  1. 数据库课程设计:建材物资管理系统数据库课程设计

    数据库课程设计:建材物资管理系统数据库课程设计 ** 一.课设简述 ** 本次设计基于大二学习的数据库原理这门课程,选择了建材物资管理系统这个课设题目,在查阅了相关资料后,设计了集进货商家信息,进货报 ...

  2. 计算机机房管理系统 数据库课设,学校机房管理系统数据库课程设计.doc

    学校机房管理系统数据库课程设计.doc 数据库原理及应用课程设计设计报告题目机房管理系统后台数据库学号131007220学生姓名指导教师提交时间2015/1/4目录第1章需求分析111课程设计概述11 ...

  3. 关于书籍管理系统数据库课程设计

    关于书籍管理系统数据库课程设计 系统概述 该系统用以收集.存储书籍信息.人员(读者.图书管理员)信息.图书借阅信息以及意外处理信息,并及时记录存储各个环节信息的变更,以便管理.查询.显示.输出,以节约 ...

  4. 医院疫情管理系统-数据库课程设计(源码+数据库+报告全套)

    自己结合网上相关的知识做的数据库课程设计-医院管理系统(疫情),时间非常非常短暂做的比较粗糙,该版本为学院课设答辩之前,答辩时老师给了一些完善意见,但是没有时间去修改.... eclipse + SQ ...

  5. 职工考勤管理MySQL课程设计_考勤管理系统数据库课程设计.doc

    课 程 设 计 课程名称 数据库系统概论_____ 题目名称 考勤管理系统 学生学院 计算机学院 专业班级 学 号 学生姓名 ________ 指导教师 左亚尧 2012年 1月 16日 一.需求分析 ...

  6. 学生成绩管理系统mysql课程设计_学生成绩管理系统数据库课程设计报告.doc

    目 录 TOC \o "1-2" \h \z \u HYPERLINK \l "_Toc303696065" 1.开发背景 PAGEREF _Toc303696 ...

  7. 中学学籍管理系统数据库课程设计,限于篇幅只能采取截图方式上传,原文件在我资源中有所展示。

    第五章 数据库物理设计 5.1 RDBMS的选择 中学生管理系统课程设计小组选择的是Microsoft的SQL Server的Windows.NT版本,主要是考虑到:Microsoft SQL Ser ...

  8. 住院管理系统数据库课程设计

    对这次课程设计做个总结: 首先,数据库优化做的不太好,其次,需求分析这里,分析不正确,医生开药应该是先对数据库查询,看是否存在此类药品,如果存在,对应药品的数量减一,将该药品加入药单中,我是直接开成了 ...

  9. 学生选课管理系统 数据库课程设计

    资源链接 ***主要能实现以下几个功能,不同的用户需要不同的登陆端来实现不同的功能,学生端要实现选课,退课,能看自己的课程表,能看自己的成绩表等功能,教师端要实现对自己学生的基本信息的增加,修改,删除 ...

最新文章

  1. 关于学习Python的一点学习总结(10->设置字符串格式)
  2. C#读取数据库图片显示、缩小、更新
  3. 每日一皮​:昨天晚上下班回家,一民警迎面巡逻而来。 突然对我大喊:站住!...
  4. 网站SEO优化工作主要包括哪些内容?
  5. qt cef嵌入web(二)
  6. 【NOIP考前模拟赛】纯数学方法推导——旅行者问题
  7. java中常量final的用法_详解Java中final的用法
  8. python免费开源工具推荐_年薪200万的程序员,推荐这10大Python免费开源工具!
  9. Log4j漏洞?一行代码都不改就能永久修复?
  10. last_inner = inner_lateral + inner_top_down RuntimeError: The size of tensor a (81) must match the s
  11. 这15个网站,为设计师提供用不完的免费素材
  12. 【Godot】行为树(一)了解与设计行为树代码
  13. 柔性电子 压力传感器 strain-pressure sensor MoS2/graphene
  14. 我市“一卡通”被授予国家金卡工程优秀应用成果奖
  15. 【毕业设计之PHP系列】PHP课程网站络管理系统
  16. Qt主线程和工作线程更新界面问题
  17. 《勒索软件防护发展报告(2022年)》正式发布,助力企业高效应对勒索软件攻击
  18. 分类 对应的 全连结层、activation、loss 的选择
  19. 一文搞懂地域和可用区如何选择
  20. Soso(嗖嗖)移动 java 项目

热门文章

  1. 读书札记:影响英镑的因素
  2. [家里蹲大学数学杂志]第054期图像分割中的无边缘活动轮廓模型
  3. Python学习总结(基础篇)(pycharm)
  4. Android 正确的保活方案,不要掉进保活需求死循环陷进
  5. html语言密码框,HTML表单密码框INPUT标签
  6. linux下的抓图工具
  7. Brightcove助力企业视频内容无缝直达中国
  8. 大数据展示html模板_澳门媒体参观国家大数据(贵州)综合试验区展示中心
  9. YYHS-吴传之火烧连营(梦回三国系列T3)(trie树)
  10. 自动打字软件完美解决不能复制粘贴(批改网)自动输入(金山打字)等问题