1、系统需求说明

概要:现今已进入网络时代,网上购物、看新闻、交友等人们的日常生活已离不开网络。“只要点点手指,就能送餐上门”,网上定餐越来越受到都市年轻人的青睐    现要求开发一个网上订餐系统,其具体功能如下:

1.1、我要订餐

完成用户订餐,每条订单包含如下信息:

1.1.1、订餐人姓名:要求用户

1.1.2、输入选择菜品及份数:显示三个菜单序号、名称、单价、点赞数,提示用户输入要选择的菜品序号及份数

1.1.3、送餐时间:要求当天10到20点间整点送餐,要求用户输入10~20的整数,输入错误,重复输入。

1.1.4、送餐地址:要求用户输入

1.1.5、状态:两种状态:0:已预定(默认状态) 1、已完成(订单已签收)

1.1.6、总金额:总金额 = 菜品单价*份数-送餐费

(送餐费:当单笔订单金额达到50元时,免送餐费,否则,需交纳6元送餐费)

1.1.7、订餐成功后,显示订单信息。

1.2、查看订单

遍历显示已有订单

内容包括:序号、订餐人姓名、订餐信息(菜品名和份数)、送餐时间、送餐地址、状态(已预定或已完成)、总金额

1.3、签收订单

将订单中状态改为已完成

1.4、删除订单

用户输入订单序号,如该序号订单为已完成状态,可以删除,其它情况给出相应提示信息

1.5、我要点赞

显示菜品序号、菜品名、单价、点赞数,提示用户输入要点赞的菜品序号完成对菜品的点赞。

1.6、退出系统

退出整个系统,显示“谢谢使用,欢迎下次光临”。

1.7、菜单切换

用户可根据显示的主菜单,输入功能编号执行相应的功能,当输入1~5时,执行相应功能

2、效果展示

2.1、主界面

2.2、我要订餐

2.3、订餐

2.4、查看订单

2.5、签收

2.6、删除订单

2.7、点赞

2.8、退出

3、思路与代码编写

第一阶段:分析数据主体(重难点)

第二阶段:分析并完成整体框架(重难点)

第三阶段:分析并完成退出功能

第四阶段:分析并完成订餐功能

第五阶段:分析并完成查看餐袋功能

第六阶段:分析并完成签收订单功能

第七阶段:分析并完成删除功能(重难点)

第八阶段:分析总完成我要点赞功能

3.1、分析数据主体

我要订餐        查看餐袋        删除订单        签收订单

声明多个数组,用来保存基本信息,包括:订餐人、所定餐品信息、送餐时间、送餐地址、订单状态、总金额等

我要点赞(餐品)

再声明一组固定的数组,用来保存餐品、餐品单价和点赞数等。

//数据主体:一组订单信息String[] names = new String[5];//订餐人姓名String[] dishMegs = new String[5];//保存所定餐品信息int[] times = new int[5];//送餐时间String[] addresses = new String[5];//送餐地址int[] states = new int[5];//订单状态,0:已预订 1:已完成double[] sumPrices = new double[5];//总金额//提前放入两组数据names[0] = "张三";dishMegs[0] = "宫保鸡丁\t1份";times[0] = 15;addresses[0] = "安徽省合肥市";states[0] = 1;sumPrices[0] = 36.0;names[1]="李四";dishMegs[1]="鱼香肉丝\t一份";times[1]=18;addresses[1]="安徽省六安市";states[1]=1;sumPrices[1]=31.0;//数据主体:一组餐品信息String[] dishNames = {"宫保鸡丁", "回锅肉", "鱼香肉丝", "佛跳墙"};//菜单double[] prices = {30.0, 40.0, 25.0, 60.0};//价格int[] praiseNums = new int[4];//点赞数

3.2、整体框架

使用循环(do-while)作为最外圈的大循环

循环操作:

显示主菜单

提示用户输入功能编号,并且能执行相应功能

提示输入0返回

循环条件:用户输入0

使用switch循环作为内侧的分支循环

可以根据用户输入功能编号,执行相应功能

        Scanner sc = new Scanner(System.in);int num = 0;//用来记录用户输入的数字do {//声明主界面System.out.println("欢迎使用“吃货联盟订餐系统”");System.out.println("**********************");System.out.println("1、我要订餐");System.out.println("2、查看餐带");System.out.println("3、签收订单");System.out.println("4、删除订单");System.out.println("5、我要点赞");System.out.println("6、退出系统");System.out.println("**********************");System.out.print("请选择:");int serialNumber = sc.nextInt();switch(serialNumber)case 1://我要订餐break;case 2://查看餐带break;case 3://签收订单break;case 4://删除订单break;case 5://我要点赞break;case 6://退出系统default://其他操作break;} while (num == 0);System.out.println("感谢您的使用,欢迎下次光临!!");}
}

3.3、退出系统

3.3.1、当显示主菜单之后,用户输入6或者1~6之外的数据

3.3.2、执行完相应功能后,提示输入0返回时

if (serialNumber < 1 || serialNumber > 5) {break;} else {System.out.print("输入0返回:");num = sc.nextInt();}

3.4、我要订餐

3.4.1、查找插入位置

找要插入的位置,循环遍历订餐人第一个为空的位置

如果找到了,则此位置就是要插入的数据位置

如果没找到,则显示餐袋已满。

3.4.2、执行添加数据操作

a、显示所有可供选择的餐品信息

用户结语选择的餐品编号和份数

b、输入订餐人姓名

c、输入送餐时间(10~20点之间整点送餐)

当输入的信息有误时,重复输入

d、输入送餐地址

e、计算总金额

餐品总金额=餐品单价*份数

送餐费:餐品总金额达到50元时,免6元餐费

3.4.3、显示订单信息

所定餐品信息

订餐人

送餐时间

送餐地址

总金额

3.4.4、保存订单信息

case 1://我要订餐System.out.println("***我要订餐***");for (int i = 0; i < names.length; i++) {if (names[i] == null) {isAdd = true;//记录一下已找到一个为空的位置//显示菜单System.out.println("***菜单***");System.out.println("序号\t\t菜名\t\t\t单价");for (int j = 0; j < dishNames.length; j++) {System.out.print((j + 1) + "\t\t" + dishNames[j] + "\t\t" + prices[j] + "元/份");System.out.println();}//用户选择餐品编号以及份数System.out.print("请输入您想选购的餐品:");int num1 = sc.nextInt();while (num1 > 4) {System.out.println("非常抱歉,您的输入有误,请重新输入");num1 = sc.nextInt();}System.out.print("请输入你想选购的份数:");int num2 = sc.nextInt();String dishMeg = dishNames[num1 - 1] + "\t" + num2 + "份";//输入用户的姓名System.out.print("请输入您的姓名:");String name = sc.next();//输入送餐时间(10~20点之间整点送餐)System.out.print("请输入送餐时间:");int time = sc.nextInt();while (time < 10 || time > 20) {System.out.print("对不起,您所选的时间点无法配送,请重新输入:");time = sc.nextInt();}//输入地址System.out.print("请输入送餐地址:");String addresse = sc.next();//计算总金额double sum = prices[num1 - 1] * num2;double sumPrice = 0;if (sum > 50) {sumPrice = sum;} else {sumPrice = sum + 6;}//显示订单信息System.out.println("所定餐品信息:" + dishMeg);System.out.println("订餐人:" + name);System.out.println("送餐时间:" + time + "点");System.out.println("送餐地址:" + addresse);System.out.println("金额:" + sumPrice + "元");//保存数据dishMegs[i] = dishMeg;names[i] = name;times[i] = time;addresses[i] = addresse;sumPrices[i] = sumPrice;break;}}//如果没有找到为空的位置,则跳出提示if (!isAdd) {System.out.println("对不起,您的餐带已满");}break;

3.5、查看餐袋

显示每条订单信息(遍历数组)

序号        所订餐品信息        订餐人姓名        送餐时间        送餐地址        状态(已预订0        已完成1)        总金额

case 2://查看餐带System.out.println("***查看餐带***");System.out.print("序号\t所订餐品信息\t\t订餐人姓名\t送餐时间\t送餐地址\t\t\t状态");System.out.println();for (int j = 0; j < names.length; j++) {if (names[j] != null) {String state = states[j] == 0 ? "已预订" : "已完成";System.out.print((j + 1) + "\t" + dishMegs[j] + "\t\t" + names[j] + "\t\t\t" + times[j] + "点\t" + addresses[j] + "\t\t" + state);System.out.println();}}break;

3.6、签收订单

要求用户输入一个签收的订单序号

查找这条订单(循环遍历)

a、找到,状态是已完成(已经签收完毕):提示不能再次签收

b、找到,状态是已预约(没有完成签收):可以签收

c、没找到:提示信息没有找到

case 3://签收订单System.out.println("***签收订单***");System.out.println("请选择要签收的订单序号:");boolean isFind = false;//记录是否找到订单 true:表示找到 false:表示没找到int signIn = sc.nextInt();for (int j = 0; j < names.length; j++) {//判断输入数据是否满足条件if (names[j] != null && states[j] == 1 && (j + 1 == signIn)) {System.out.println("对不起,订单已完成,无法再次签收");//修改订单状态isFind = true;break;} else if (names[j] != null && states[j] == 0 && (j + 1) == signIn) {states[j] = 1;System.out.println("订单签收成功!");//修改订单状态isFind = true;break;}}//判断条件,如果if (!isFind) {System.out.println("很抱歉,没有找到订单");}break;

3.7、删除订单

a、输入要删除的订单序号(从1开始)

b、循环查找这条订单

找到此订单,已签收:执行删除操作

找到此订单,且未签收:提示信息

未找到订单:提示信息

c、删除操作(循环移位)

从要删除的元素后面一个开始,到数组最后一个元素依次向前移动一位,且最后一位清空

case 4://删除订单System.out.println("***删除订单***");System.out.println("请输入要删除的订单序号:");int indents = sc.nextInt();int index = 0;//记录系统共有多少份已存在订单boolean isFood = false;//记录订单状态,true:表示找到了 false:表示没找到//查询系统有多少份订单for (int j = 0; j < names.length; j++) {if (names[j] == null || j == (names.length - 1)) {index = j;break;}if (index == names.length-1) {dishMegs[index] = null;names[index] = null;times[index] = 0;addresses[index] = null;states[index] = 0;isFood = true;break;}}//遍历for (int k = 0; k < index; k++) {if ((k + 1) == indents && states[k] == 0) {System.out.println("很抱歉,您的订单还未完成,无法删除订单");isFood = true;break;} else if ((k + 1) == indents && states[k] == 1) {for (int w = index ; w > k; w--) {//将订单后面数据往前移动一位dishMegs[w - 1] = dishMegs[w];names[w - 1] = names[w];times[w - 1] = times[w];addresses[w - 1] = addresses[w];states[w - 1] = states[w];//将最后一位赋值为默认值dishMegs[index - 1] = null;names[index - 1] = null;times[index - 1] = 0;addresses[index - 1] = null;states[index - 1] = 0;isFood = true;break;}}}if (!isFood) {System.out.println("非常抱歉,您的输入有误");}break;

3.8、点赞

a、显示供点赞的餐品列表

b、输入要点赞的餐品序号

c、该序号的餐品点赞数加1

d、显示

case 5://我要点赞System.out.println("***我要点赞***");System.out.println("***菜单***");//遍历输出菜单System.out.println("序号\t\t菜名\t\t\t单价\t\t点赞数");for (int j = 0; j < dishNames.length; j++) {System.out.print((j + 1) + "\t\t" + dishNames[j] + "\t\t" + prices[j] + "元/份\t" + praiseNums[j] + "赞");System.out.println();}//输入要点赞的商品序号System.out.print("请输入您想点赞的商品序号:");int dishId = sc.nextInt();//定义一个初始点赞数int praiseNum = 0;//遍历查询是否具有序号boolean isDish = false;//记录订单状态 true:表示找到了 false:表示没找到for (int j = 0; j < dishNames.length; j++) {if ((j + 1) == dishId) {praiseNums[j] = praiseNum + 1;isDish = true;break;}}if (!isDish) {System.out.println("非常抱歉,您输入的餐品序号有误");}break;

3.9、简单总结

本项目为最简单的Java初期项目,可以提升我们对原来知识点的运用,同时累计我们的项目经验

4、完整代码

import java.util.Scanner;public class FoodSystem {public static void main(String[] args) {//数据主体:一组订单信息String[] names = new String[5];//订餐人姓名String[] dishMegs = new String[5];//保存所定餐品信息int[] times = new int[5];//送餐时间String[] addresses = new String[5];//送餐地址int[] states = new int[5];//订单状态,0:已预订 1:已完成double[] sumPrices = new double[5];//总金额//提前放入两组数据names[0] = "张三";dishMegs[0] = "宫保鸡丁\t1份";times[0] = 15;addresses[0] = "安徽省合肥市";states[0] = 1;sumPrices[0] = 36.0;names[1]="李四";dishMegs[1]="鱼香肉丝\t一份";times[1]=18;addresses[1]="安徽省六安市";states[1]=1;sumPrices[1]=31.0;//数据主体:一组餐品信息String[] dishNames = {"宫保鸡丁", "回锅肉", "鱼香肉丝", "佛跳墙"};//菜单double[] prices = {30.0, 40.0, 25.0, 60.0};//价格int[] praiseNums = new int[4];//点赞数//建立do-while循环//声明Scanner类Scanner sc = new Scanner(System.in);int num = 0;//用来记录用户输入的数字do {//声明主界面System.out.println("欢迎使用“吃货联盟订餐系统”");System.out.println("**********************");System.out.println("1、我要订餐");System.out.println("2、查看餐带");System.out.println("3、签收订单");System.out.println("4、删除订单");System.out.println("5、我要点赞");System.out.println("6、退出系统");System.out.println("**********************");System.out.print("请选择:");int serialNumber = sc.nextInt();boolean isAdd = false;//用来纪录插入,true:记录找到一个空位置,可以插入,false:没有找到//使用switch语句进行选择switch (serialNumber) {case 1://我要订餐System.out.println("***我要订餐***");for (int i = 0; i < names.length; i++) {if (names[i] == null) {isAdd = true;//记录一下已找到一个为空的位置//显示菜单System.out.println("***菜单***");System.out.println("序号\t\t菜名\t\t\t单价");for (int j = 0; j < dishNames.length; j++) {System.out.print((j + 1) + "\t\t" + dishNames[j] + "\t\t" + prices[j] + "元/份");System.out.println();}//用户选择餐品编号以及份数System.out.print("请输入您想选购的餐品:");int num1 = sc.nextInt();while (num1 > 4) {System.out.println("非常抱歉,您的输入有误,请重新输入");num1 = sc.nextInt();}System.out.print("请输入你想选购的份数:");int num2 = sc.nextInt();String dishMeg = dishNames[num1 - 1] + "\t" + num2 + "份";//输入用户的姓名System.out.print("请输入您的姓名:");String name = sc.next();//输入送餐时间(10~20点之间整点送餐)System.out.print("请输入送餐时间:");int time = sc.nextInt();while (time < 10 || time > 20) {System.out.print("对不起,您所选的时间点无法配送,请重新输入:");time = sc.nextInt();}//输入地址System.out.print("请输入送餐地址:");String addresse = sc.next();//计算总金额double sum = prices[num1 - 1] * num2;double sumPrice = 0;if (sum > 50) {sumPrice = sum;} else {sumPrice = sum + 6;}//显示订单信息System.out.println("所定餐品信息:" + dishMeg);System.out.println("订餐人:" + name);System.out.println("送餐时间:" + time + "点");System.out.println("送餐地址:" + addresse);System.out.println("金额:" + sumPrice + "元");//保存数据dishMegs[i] = dishMeg;names[i] = name;times[i] = time;addresses[i] = addresse;sumPrices[i] = sumPrice;break;}}//如果没有找到为空的位置,则跳出提示if (!isAdd) {System.out.println("对不起,您的餐带已满");}break;case 2://查看餐带System.out.println("***查看餐带***");System.out.print("序号\t所订餐品信息\t\t订餐人姓名\t送餐时间\t送餐地址\t\t\t状态");System.out.println();for (int j = 0; j < names.length; j++) {if (names[j] != null) {String state = states[j] == 0 ? "已预订" : "已完成";System.out.print((j + 1) + "\t" + dishMegs[j] + "\t\t" + names[j] + "\t\t\t" + times[j] + "点\t" + addresses[j] + "\t\t" + state);System.out.println();}}break;case 3://签收订单System.out.println("***签收订单***");System.out.println("请选择要签收的订单序号:");boolean isFind = false;//记录是否找到订单 true:表示找到 false:表示没找到int signIn = sc.nextInt();for (int j = 0; j < names.length; j++) {//判断输入数据是否满足条件if (names[j] != null && states[j] == 1 && (j + 1 == signIn)) {System.out.println("对不起,订单已完成,无法再次签收");//修改订单状态isFind = true;break;} else if (names[j] != null && states[j] == 0 && (j + 1) == signIn) {states[j] = 1;System.out.println("订单签收成功!");//修改订单状态isFind = true;break;}}}//判断条件,如果if (!isFind) {System.out.println("很抱歉,没有找到订单");}break;case 4://删除订单System.out.println("***删除订单***");System.out.println("请输入要删除的订单序号:");int indents = sc.nextInt();int index = 0;//记录系统共有多少份已存在订单boolean isFood = false;//记录订单状态,true:表示找到了 false:表示没找到//查询系统有多少份订单for (int j = 0; j < names.length; j++) {if (names[j] == null || j == (names.length - 1)) {index = j;break;}if (index == names.length-1) {dishMegs[index] = null;names[index] = null;times[index] = 0;addresses[index] = null;states[index] = 0;isFood = true;break;}}//遍历for (int k = 0; k < index; k++) {if ((k + 1) == indents && states[k] == 0) {System.out.println("很抱歉,您的订单还未完成,无法删除订单");isFood = true;break;} else if ((k + 1) == indents && states[k] == 1) {for (int w = index ; w > k; w--) {//将订单后面数据往前移动一位dishMegs[w - 1] = dishMegs[w];names[w - 1] = names[w];times[w - 1] = times[w];addresses[w - 1] = addresses[w];states[w - 1] = states[w];//将最后一位赋值为默认值dishMegs[index - 1] = null;names[index - 1] = null;times[index - 1] = 0;addresses[index - 1] = null;states[index - 1] = 0;isFood = true;break;}}}if (!isFood) {System.out.println("非常抱歉,您的输入有误");}break;case 5://我要点赞System.out.println("***我要点赞***");System.out.println("***菜单***");//遍历输出菜单System.out.println("序号\t\t菜名\t\t\t单价\t\t点赞数");for (int j = 0; j < dishNames.length; j++) {System.out.print((j + 1) + "\t\t" + dishNames[j] + "\t\t" + prices[j] + "元/份\t" + praiseNums[j] + "赞");System.out.println();}//输入要点赞的商品序号System.out.print("请输入您想点赞的商品序号:");int dishId = sc.nextInt();//定义一个初始点赞数int praiseNum = 0;//遍历查询是否具有序号boolean isDish = false;//记录订单状态 true:表示找到了 false:表示没找到for (int j = 0; j < dishNames.length; j++) {if ((j + 1) == dishId) {praiseNums[j] = praiseNum + 1;isDish = true;break;}}if (!isDish) {System.out.println("非常抱歉,您输入的餐品序号有误");}break;case 6://退出系统default://其他操作break;}if (serialNumber < 1 || serialNumber > 5) {break;} else {System.out.print("输入0返回:");num = sc.nextInt();}} while (num == 0);System.out.println("感谢您的使用,欢迎下次光临!!");}
}

5、结束语

由于本人只是个还在学习的小小白,所以代码可能写的太过繁琐,很多语句也有着各种bug,所以如果有大佬能看帮忙指出其中的错误,那便最好不过了。

Java简单小项目---网上订餐系统相关推荐

  1. java 基础小项目------外卖订餐系统

    执行结果: 通过选择功能序号,执行响应的功能: 代码实现:package 外卖订餐系统; /** 代码优点,使用 循环:* 显示菜单,* 根据用户选择的数字执行相应功能(功能实现:do..while循 ...

  2. java python nodejs快餐店网上订餐系统

    二十一世纪是一个集数字化,网络化,信息化的,以网络为核心的社会.中国的网民充分领略到"畅游天地间,网络无极限" 所带来的畅快.随着Internet的飞速发展,使得网络的应用日益的广 ...

  3. 【java简单小项目】勇者斗魔王小游戏

    项目的github链接 简要介绍 该项目主要是在控制台实现了回合制的勇者斗魔王的小游戏,涉及到的主要知识为java的类和对象,采用了三层模式设计,可供java初学者学习简单小型项目的架构设计,和具体的 ...

  4. java简单小项目_Java简易抽奖系统小项目

    本文实例为大家分享了Java简易抽奖系统的具体代码,供大家参考,具体内容如下 需求: 实现一个抽奖系统 1 注册 2 登录 3 抽奖 必须先注册  再登陆  再抽奖 随机产生4个随机数作为幸运卡号 用 ...

  5. 基于JAVA+SpringMVC+MYSQL的网上订餐系统

    项目功能: 1.用户端 登录注册.浏览菜品列表.查看菜品详情.加入购物车.提交订单.填写收货地址.查看我的订单.修改密码.查看我的信息.关于我们.常见问题.友情链接.查看用户评论等功能 2.管理员端 ...

  6. c#编写外卖系统_ZYW邻家小厨网上订餐系统源码 Web端 订餐系统 ASP.NET C#语言开发 - 下载 - 搜珍网...

    文件名大小更新时间 51Aspx源码必读.txt29132014-04-25 DB_51aspx02014-04-25 DB_51aspx\LazyEating.mdf31457282014-04-2 ...

  7. SSM+网上订餐系统 毕业设计-附源码221558

    网上订餐管理系统的设计与实现 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课 ...

  8. SSM甜品小屋网上订餐系统的设计与实现毕业设计-附源码151018

    摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题.针对甜品小屋网上订餐系统等 ...

  9. 【Java实战项目】两小时教你做出网上订餐系统

    今天主要给大家分享的是java毕业设计项目-网上订餐系统! 本套java项目视频主要针对于应届毕业生,毕业设计而制作,视频围绕毕业设计讲解网上订餐系统的制作全部流程.项目包括网站源码.项目原型.项目文 ...

  10. 基于微信小程序的网上订餐系统 报告+任务书+开题报告+文献综述+中期PPT+外文翻译及原文+PPT+项目源码及数据库文件

    摘要 随着微信小程序的飞速发展,很多系统随之兴起,微信已经是我们生活中的一部分,可不单单是人们用于沟通聊天的工具.还有很多公告平台.小程序也随之发展.大部分公众平台都只起到了一个信息消息的推送或者浏览 ...

最新文章

  1. oracle 回滚段介绍(三)
  2. python第三方库numpy-谁能介绍下Python生态中的第三方库NumPy
  3. 企业部署Windows 7指南
  4. shell getopts
  5. 教育孩子的一个很棒的方式
  6. 【原】Unity3D 窗口裁剪
  7. python 调用mysql_Python中直接在MySQL执行SQL命令
  8. 【python数据挖掘课程】二十一.朴素贝叶斯分类器详解及中文文本舆情分析
  9. 开源中国 OsChina Android 客户端源码分析(7)二维码生成对话框
  10. Direct2D (3) : 使用浮点参数绘制基本图形
  11. react中redux的store.js样板文件
  12. mysql kingshard_浅谈 Kingshard MySQL 中间件
  13. 【优化算法】灰狼混合布谷鸟优化算法(GWO_CS)【含Matlab源码 1468期】
  14. 用互联网大脑模型分析滴滴的战略意图和战术失误
  15. 安捷伦 34401A串口通信
  16. 图像渲染测试软件,Arnold渲染器之aiImage(ai图像)着色器介绍及渲染测试
  17. 吸附酚类的树脂?除COD用什么工艺解决?
  18. linux下u盘病毒msdos,手杀U盘中ms-dos.com病毒
  19. 初阶后的C++ 第七节 —— 多态
  20. VBS和VBA初步(一)

热门文章

  1. 软件测试经典面试题30道
  2. 三星帝国的风险:四大业务同荣同损
  3. FusionChartsFree例子
  4. php mysql注入测试工具_PHP+MYSQL 【注入漏洞】攻防测试
  5. 实车开放道路真体验,开启车联网发展新征程
  6. 机械精度设计与检测|尺寸精度
  7. 有限元基础及ANSYS应用 - 第10节 - 实体结构的ANSYS分析
  8. Shader 优化相关资料整理
  9. Windows映像劫持调试程序
  10. 局域网传输文件_局域网微信?这是什么神仙玩法