自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 资源 (15)
  • 收藏
  • 关注

原创 vue鼠标悬停事件监听

前言开发框架为 vue2.x情景描述需求是这样的:页面在鼠标悬停(不动)n秒之后,页面进行相应的事件。比如在我的需求下,是鼠标悬停15秒之后,页面上三个数据弹窗轮询展示。解决方法我的思路中 涉及到了三个变量data(){ return { polling: null, timeCount: 0, judgeTimer: null, }}polling: 是 轮询的时候的一个计时器timeCount: 是 判断鼠标是否移动的一个控制变量jud

2022-05-16 11:56:55 11758

原创 前端须知-MVVM

前言Model–View–ViewModel(MVVM) 是一个软件架构设计模式,由微软 WPF 和 Silverlight 的架构师 Ken Cooper 和 Ted Peters 开发,是一种简化用户界面的事件驱动编程方式。由 John Gossman(同样也是 WPF 和 Silverlight 的架构师)于2005年在他的博客上发表。MVVM 源自于经典的 Model–View–Controller(MVC)模式(期间还演化出了 Model-View-Presenter(MVP)模式,可忽略不计

2021-12-22 16:39:55 425

原创 阿里云 + Ubuntu + WordPress 建造个人博客网站

前言需要准备的东西:需要注册一个域名域名需要备案需要购买一个ESC服务器上述的操作,非常的简单,就不多叙述了一、阿里云ESC服务器配置1.首先远程连接服务器输入用户名密码根据提示输入,Linux 用户名一般为 root,密码如果忘记了,可以修改2.系统升级和更新源sudo apt-get updatesudo apt-get upgrade3. 配置apache2apt-get install apache2 -y在本地计算机(您自己使用的电脑打开浏览器)输入h

2021-12-20 11:50:24 984

原创 uni-app 长按事件无法被页面滚动或滑动阻止问题解决

问题描述uni-app 中 长按事件使用的是 @longpress或者 @longtap需要触发该事件的 element 位于一个能够上下滚动的页面中长按的元素在长按期间有页面滚动或者页面滑动时不触发长按解决@longpress或者 @longtap这两个事件 的触发时间是在 350ms查阅了一些资料,发现无法更改这两个事件的 触发时间所以我们希望在长按触发前如果有页面滑动或者滚动时阻止长按触发有这么一个事件 @touchmove其功能描述如下手指触摸后移动解决代码<te

2021-12-03 16:11:29 2368 2

原创 JavaScript常用工具——深度克隆(可直接复制)

前言在项目中,一些对象数据我们不能直接拿来赋值的使用,否则可能引起原对象的变化,不符合开发的规范。例如vuex中存储的一些对象这时候我们需要进行深度克隆关于深度克隆和浅层克隆的知识点,可以看我之前的博客JavaScript之克隆(浅层克隆,深度克隆)以下是我所些的深度克隆函数,可以直接copy使用deepCopy.js// deepCopyfunction typeOf(obj) { const { toString } = Object.prototype; const ma

2021-11-05 16:48:07 579

原创 设计模式总结项目练习——贪吃蛇

前言通过设计模式写出的 demo可拓展性强GitHub链接utils.js// 符合单一职责原则const tool = { inherit: function (target, origin) { const Fun = function () { }; Fun.prototype = origin.prototype; target.prototype = new Fun(); // 让子类的constr

2021-10-28 18:49:25 225

原创 前端须知——行为型模式——观察者模式

定义:​ 观察者模式,属于行为型模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。举个栗子:​ 以学生为例,上课和下课的铃声就是被观察者,学生就是观察者,当下课铃声响了,学生就知道下课了,就出去跑着玩了,然后过了10分钟,上课铃声又响了,然后学生听到上课铃,又开始从外面往教室跑,去上课。1、DOM事件​ 其实我们在平时也用到过观察者模式,只是我们没有注意到而已,举一个简单的例子:我们曾

2021-10-28 18:47:53 337

原创 前端须知——行为型模式——策略模式

策略模式是JavaScript设计模式中行为型的设计模式白话解释实际上所谓的策略模式就是指根据不同的策略来执行不同的方法,是不是很类似与if-else分支判断;但是策略模式是用来解决多重条件判断语句的;详解例子​ 年终将至,某公司决定提前发年终奖,但是年终奖的计算是有一定的规则的,年终奖的多少跟绩效考核密切相关;所以某公司的年终奖方案是这样的:绩效考核为S的员工,年终奖是个人月工资的4倍;绩效考核为A的员工,年终奖是个人月工资的3倍;绩效考核为B的员工,年终奖是个人月工资的.

2021-10-28 18:47:08 179

原创 前端须知——结构型模式——装饰者模式

定义在不改变元对象的基础上,通过对其进行包装拓展(添加属性方法)装饰者模式可以动态的给某个对象添加一些额外的职责,而不会影响从这个类中派生出的其他对象  装饰者(decorator)模式能够在不改变对象自身的基础上,在程序运行期间给对像动态的添加职责。与继承相比,装饰者是一种更轻便灵活的做法。可以当脚本运行时,在子类中增加行为会影响原有类所有的实例,而装饰者却不然。取而代之的是它能给不同对象各自添加新行为模拟传统面向对象语言的装饰者模式  首先要提出来的是,作为一门解释执行的语言,给Jav

2021-10-28 12:19:31 217

原创 前端须知——结构型模式——代理模式

代理模式代理模式属于设计模式中结构型的设计模式;定义为一个对象提供一种代理以控制对这个对象的访问白话解释:  很多明星都是有经纪人的,如果要联系明显进行商演或者开演唱会之类的商业活动通过是需要先跟经纪人取得联系的,跟经纪人谈好了合作事宜之后经纪人再转达给某明星,然后某明星才会去参加活动;同样租房也是一个同样的道理,我们不管是租房还是买房,第一反应肯定是找链家这类的平台,因为我们只需要跟链家进行沟通,而链家去跟房东沟通,省去了我们直接和房东沟通的步骤;因为链家就是一个代理模式,它代理了这个房东

2021-10-28 12:08:26 128

原创 前端须知——创造型模式——单例模式和工厂模式

单例模式定义保证一个类仅有一个实例,并提供一个访问它的全局访问点。数学与逻辑学中,singleton定义为“有且仅有一个元素的集合”。为什么要用单例模式  想象一下某些web应用,当点击登录按钮时,会弹出一个登录框,无论你点击多少次这个登录按钮,登录框都只会出现一个,不会出现多个登录框。同时不会频繁的进行删除和添加,而是同一个登录框进行隐藏和显示,因为删除和添加十分耗费性能,所以单例可以达到最大化的效能利用。  登录框这个例子就是单例模式最典型的应用,符合业务的需求,又能够提高性能详解  在

2021-10-28 11:55:15 344

原创 JavaScript——继承

JS继承1.传统形式 ==> 原型链问题:过多的继承了没用的属性Grand.prototype.lastName = 'Ji';function Grand() {}var grand = new Grand();Father.prototype = grand;function Father() { this.name = 'hehe';}var father = new Father();Son.prototype = father;function Son

2021-10-28 11:53:53 168

原创 前端必须知道——设计模式六大原则

六大原则1. 单一职责原则 single Responsibility principle一个方法只做一件事情,请求数据的函数你就不要渲染数据了,吃饭上厕所别用同一个地方  假设我们涉及的一个函数,不按照单一职责原则来写,代码的复杂度会提高,因为一个函数内部含有多个功能,而实际上,每个功能都可以独自拆分程一个独立的函数。  也就是说,每个函数来写一个功能。诸多函数汇总起来,就要形成耦合,也就是以牺牲耦合度的代价来降低复杂度。2.开闭原则 OCP  开闭原则 OCP 一个软件实体如类、模块和函

2021-10-28 11:28:53 1313

原创 前端必须知道——什么是设计模式

什么是设计模式设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。  设计模式是对软件设计开发过程中反复出现的某类问题的通用解决方案。设计模式更多的是指导思想和方法论,而不是现成的代码,当然每种设计模式都有每种语言中的具体实现方式。学习设计模式更多的是理解各种模式的内在思想和解决的问题,毕竟这是前人无数经验总结成的最佳实践,而代码实现则是对加深理解的辅助。用人话来讲,就是想出套路做事情模式是什么  模式是指从生产经验和生活经验中经过抽象和

2021-10-28 11:23:18 206

原创 关于vue在PC端,对不同屏幕进行适配,未使用媒体查询(大小的自适应)的问题(ant-design-vue,element-ui 均可使用)

前言  前端项目中,难免会遇到这种问题,你根据UI的设计图在本机搭建页面,显示比例或许会是正常的,但是你将页面缩放,或者说,你将页面移植到其他尺寸的屏幕中,显示的UI效果就会变形。  所以,我们需要对我们的项目进行多屏幕适配  以下是我个人在 vue 项目中的适配方法,亲测在 使用 ant-design-vue 和 element-ui 组件库时任然有效。  不过这个方法无法更改行间样式,例如 element-ui 的 form 组件 的 label 添加行间样式,此时,就无法通过下面的方法进行适配

2021-10-27 14:26:25 3732 2

原创 21.合并两个有序链表——JavaScript

原题描述原题链接将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]提示:两个链表的节点数目范围是 [0, 50]-100 <= Node.val <= 100l1 和 l2 均按 非递减顺序

2021-06-11 14:30:20 326 3

原创 20. 有效的括号——JavaScript

原题描述原题链接给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = “()”输出:true示例 2:输入:s = “()[]{}”输出:true示例 3:输入:s = “(]”输出:false示例 4:输入:s = “([)]”输出:false示例 5:输入:s = “{[]}”输出:true提示

2021-06-11 12:00:19 90 3

原创 14.最长公共前缀——JavaScript

原题描述原题链接编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入:strs = [“flower”,“flow”,“flight”]输出:“fl”示例 2:输入:strs = [“dog”,“racecar”,“car”]输出:""解释:输入不存在公共前缀。提示:0 <= strs.length <= 2000 <= strs[i].length <= 200strs[i] 仅由小写英文字母组成

2021-06-11 11:50:27 83 3

原创 GitHub官网访问慢的解决问题

1.首先我们进行DNS查询2.输入github.com进行检测3.查询后,会有如下的列表集合4.看后面TTL值较小的,把IP地址复制。5.找到本地的hosts文件记事本打开, 位置如下6.用记事本等工具打开在后面换行追加 IP地址 github.com 这里的IP地址就是上面检测TTL比较小的IP地址,例如:7.修改完保存保存后就可以访问github了,不出意外的话,现在的访问速度应该边快递。如果改完之后不好用的话,再换一个其他的地址。8.还是慢,怎么办这里提供两个最常用的镜

2021-05-22 21:10:28 1517

原创 前端网络技术提升

3次握手,4次挥手  在讲三次握手和四次挥手之前,我们要了解一个东西  首先,我们网络请求的过程中,我们网络请求的发送方和接收方,之间的通讯,应该是没有障碍的  通信的过程,如果想要建立稳定的链接的条件:通信双方都要有接收信息和发送信息的能力  客户端需要明确 : 服务器端要有接收信息的能力 以及给予回应的能力  服务器端需要明确:客户端需要有接受信息和 发送信息的能力  所以我们的三次握手,主要就是为了建立一个稳定的连接那么我们来思考一下,为什么要三次握手才能证明建立稳定的连接呢?假设,

2021-05-20 13:58:21 107 1

原创 前端网络——get和post的区别

面试常问!!!基于什么前提 ?如果什么前提也没有,不适用任何的规范,只考虑语法和理论上的http协议GET 和 POST 几乎没有区别,只有名字不一样,仅此而已如果是基于RFC规范的。(1) 理论上的(Specification):GET 和 POST具有相同语法的,但是有不同的语义。GET是用来获取数据的,POST是用来发送数据的,其他方面没区别(2)实际上的(Implementation):各个浏览器,就是这个规范的实现者。所以才有常见的不同: 1)GET的数据在URL是可见的

2021-05-20 09:20:06 677

原创 ajax获取图片数据,实现瀑布流功能

封装 AJAX// ajax: async javascript and xml (json) "{}"// 异步的JavaScript 和 xml(json)// 同步:一行一行 (按顺序执行)// 异步:同时进行的// 用途: 数据交互// 用 问问题来举例 类比 网络请求// 问问题:// 问的问题内容: ---> 请求参数// 问的是谁: ---> 接口// 通过什么方式去问

2020-12-04 13:35:45 317 1

原创 3.LeetCode(无重复字符的最长子串)——JavaScript

题目描述原题链接给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: s = "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长

2020-12-04 12:33:20 131

原创 4.LeetCode(寻找两个正序数组的中位数)——JavaScript

题目描述原题链接给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的中位数。进阶:你能设计一个时间复杂度为 O(log (m+n)) 的算法解决此问题吗?示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [3,4]输出:2.50000解释:合并数组 = [1,2,3,4] ,中位数

2020-12-03 18:54:50 323

原创 9.LeetCode(回文数)——JavaScript

题目描述原题链接判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。进阶:你能不将整数转为字符串来解决这个问题吗?我的解法日常暴力解题。。。/** * @pa

2020-12-02 20:54:04 99

原创 976.LeetCode(三角形的最大周长)——JavaScript

题目描述原题链接给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。如果不能形成任何面积不为零的三角形,返回 0。示例 1:输入:[2,1,2]输出:5示例 2:输入:[1,2,1]输出:0示例 3:输入:[3,2,3,4]输出:10示例 4:输入:[3,6,2,3]输出:8提示:3 <= A.length <= 100001 <= A[i] <= 10^6本人解法/** * @par

2020-12-01 08:36:44 165

原创 7.LeetCode(整数反转)——JavaScript

题目描述原题链接给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321 示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。本人写法/** * @param {number} x * @return {number} */var

2020-11-30 20:50:48 82

原创 1370.LeetCode(上升下降字符串)——JavaScript

题目描述给你一个字符串 s ,请你根据下面的算法重新构造字符串:从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。重复步骤 2 ,直到你没法从 s 中选择字符。从 s 中选出 最大 的字符,将它 接在 结果字符串的后面。从 s 剩余字符中选出 最大 的字符,且该字符比上一个添加的字符小,将它 接在 结果字符串后面。重复步骤 5 ,直到你没法从 s 中选择字符。重复步骤 1 到 6 ,直

2020-11-26 13:29:11 92

原创 2.LeetCode(两数相加)——JavaScript

题目描述原题链接给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807个人解法 + 分析/** * Definition

2020-11-26 13:09:45 135

原创 1.LeetCode(两数之和)——JavaScript

题目描述原题连接给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]个人解法 + 分析解法比较暴力使用两层循环/** * @param {number[]} nums * @

2020-11-24 19:19:45 109

原创 数据结构实验——表达式二叉树( 以递归方式建立表达式的二叉树状结构,再分别输出前序 、中序及后序遍历结果,并计算表达式的结果。)

实验要求实验实现语言Javascript + HTML + CSSindex.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>表达式二叉树</title&g

2020-11-17 08:59:14 1294

原创 数据结构实验——年级学生成绩管理系统

实验需求index.html<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">

2020-10-24 12:35:48 516 1

原创 原生JS实现——flappy bird 像素小鸟 项目总结

项目展示项目准备images中所用到的图片index.html用一个 div 来 包裹游戏内容区域<div id="game"> <!-- 小鸟div --> <div class="bird"></div> <!-- 开始游戏按钮 --> <div class="start start-white">开始游戏</div> <!-- 最上层分数 --> <di

2020-10-09 15:01:03 1611 2

原创 原生JS实现扫雷——项目总结

项目展示图项目准备一样的,我们先是准备出三个文件夹,以及根目录下的index.html 文件然后是两张图片(地雷 和 旗子)之后是html结构html首先是最外层的 游戏内容区域的div 取名id为mine<div id="mine"></div>之后是游戏内容区域中最上面的四个按钮,我们用四个button标签来表示,并且用一个div来包裹起来并且给初级按钮一个最初的选中的样式<div class="level"> &l

2020-09-22 19:30:58 656 1

原创 班级抽签小程序——项目总结

项目展示项目中假设一个班只有三十个人html结构<div class="outerContainer"> <div class="question">请问你要抽几个xx班的小宝贝呢?</div> <div class="number"> <input type="text" style="color: #999;" value="请输入需要的人数" onblur="if (this.value == '')

2020-09-12 16:52:58 4801 1

原创 原生JS实现贪吃蛇——项目总结

项目准备项目展示图建立新文件夹,新建出images CSS JS 三个文件夹,并在根目录下创建出index.html将下列素材图片转到images文件中接下来可以开始着手操作了HTML结构游戏内容区域 (content)游戏开始按钮 (btn startBtn)游戏暂停按钮 (btn pauseBtn)游戏进行区域 (snakeWrap)可以构造出如下的结构<div class="content"> <div class="b

2020-09-11 10:26:21 1442

原创 JavaScript(1)——基础语法部分

我的语雀上有该部分学习笔记Javascript(1)——基础语法部分 语雀

2020-09-02 09:05:20 111

原创 JavaScript(1)——基础语法部分(CSDN)

web 发展史Mosaic,是互联网历史上第一个获普遍使用和能够显示图片的网页浏览器。于 1993年问世。1994 年 4 月,马克.安德森和 Silicon Graphics(简称为 SGI,中译为“视算科技”或“硅 图”)公司的创始人吉姆·克拉克(Jim Clark)在美国加州设立了“Mosaic Communication orporation”。Mosaic 公司成立后,由于伊利诺伊大学拥有 Mosaic 的商标权,且伊利诺伊大学已将技术转让给 Spy Glass 公司,开发团队必.

2020-09-02 08:59:31 646

原创 Javascript贪吃蛇小游戏(直接复制可用 含详细注释)

前言原生JavaScript实现贪吃蛇小游戏GitHub地址直接复制可用index.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>贪吃蛇</title&g

2020-08-25 17:01:53 613 1

原创 CSS2学习笔记

CSS笔记为了遵循结构 html,样式 CSS,行为 js 相分离CSS 相当于装修材料,cascading style sheet(层叠 样式 表)笔记部分为CSS2.0知识引入CSS方式行间样式引入 标签内添加style页面级 CSS head标签内添加 style标签,内书写CSS样式外部CSS文件,使用link 来引入浏览器一般是下载一行执行一行,当我们引入外部CSS文件的时候,下载顺序是,遇到CSS文件,久开启一个新的线程,异步下载计算机的同步和异步是和现实中相反的异

2020-08-25 16:55:48 239

JS-expression-binary-tree.zip

数据结构实验——表达式二叉树构建 JavaScript

2021-12-09

JS-Adjacency-table-of-undirected-graph.zip

数据结构实验-无向图邻接表-JavaScript

2021-12-09

JavaScript-flappy-bird.zip

JavaScript flappy bird 小游戏

2021-12-09

Javascript-Gobang.zip

JavaScript 五子棋AI小游戏

2021-12-09

JS-Calendar.zip

JavaScript 实现 模仿 win10 日历项目

2021-12-09

JS-Modular-Development-Sokoban.zip

ES6模块化开发小demo,推箱子游戏,项目练习暂时只有一个地图。该项目只是作为ES6模块化开发的小练习

2021-12-09

JS-Maze.zip

JavaScript 走迷宫小游戏

2021-12-09

JS-Do-not-step-on-the-white-block.zip

JavaScript 别踩白块小游戏制作

2021-12-09

JS-Chat-Robot.zip

JavaScript 在线聊天机器人

2021-12-09

Greedy-Snake-Pro.zip

JavaScript 贪吃蛇二代 使用设计模式 Greedy-Snake-Pro

2021-12-09

数据结构课设-哈夫曼编码树

浙江理工大学数据结构课程设计,构建一个哈夫曼编码树,前端页面展示

2021-01-17

JavaScript贪吃蛇.zip

JavaScript实现网页版本的贪吃蛇小游戏,内含详细注释,且包含图片文件夹,CSS,JS文件夹,index.html

2020-08-14

Javascript扫雷.zip

Javascript实现网页版本的扫雷小游戏,内含详细注释,且包含图片文件夹,CSS,JS文件夹,index.html

2020-08-14

HTML CSS 自制淘宝静态首页.zip

HTML/CSS 自制淘宝静态首页,内含CSS文件,HTML文件,均含注释,且包含图片,静态网站练习可用

2020-08-04

自助点餐系统.zip

面向对象程序课程设计任务书 【题目】自助点餐系统 【目的】 通过设计一个小型的自助点餐系统,训练综合运用所学知识处理实际问题的能力,强化面向对象的程序设计理念,使自己的程序设计与调试水平有一个明显的提高。 【内容简介】 有一个小型餐厅,现在这个餐厅打算使用自助点餐系统,方便顾客自己点餐,并提供对餐厅销售情况的统计和管理功能。 【考核标准】 该系统为两种角色的用户提供服务,一种是餐厅管理员,一种是顾客。餐厅管理员根据账号、密码登录系统。顾客无需登录即可使用系统。 1、顾客通过该餐厅在系统中提供的菜单为自己点餐,菜单以文件形式保存。系统能够根据顾客的要求正确打出订单,订单内容包括订单编号、菜品名称、每个菜品的价格、份数、折扣等;订单分两种,一种是在店消费,在店消费要求包括餐桌号,是否有包厢费,另一种是外卖,外卖要求包括送餐时间,送餐地点,客户手机号,外卖服务费,成绩≥60; 2、系统退出后能保存当天的订单信息,要求每天一个文档,文档名按照日期命名。餐厅管理员可以根据订单编号或手机号查找、删除或修改某个订单,订单按照下单时间先后排序,成绩≥70; 3、能够实现对保存在文件中的餐厅菜式和价格的管理,包括对菜品和对应价格的增加、修改、删除、查找,折扣的设置,设置后,顾客在点餐时看到的是新设置后的菜单,成绩≥80; 4、系统可根据历史记录对销售情况进行统计,根据餐厅管理员的输入日期统计某天的销售情况并显示(包括一共接了多少单,销售额是多少,各个菜品的销售情况,外卖和在店销售的占比),成绩≥90; 要求: 用面向对象的程序设计方法设计该系统。本系统涉及的基本对象有订单对象(包括外卖订单和在店消费订单)、订单管理对象、菜单对象、菜品对象、菜品管理对象、系统界面。实现对这些对象的合理抽象和封装,正确定义类之间的关系。界面合理,代码文件组织清晰,命名符合规范,代码注释清楚,课设报告书质量高。

2020-07-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除