写一个小程序练练手,顺便练习自己写代码的思路与逻辑。作为菜鸟程序员来说的话,我觉得除了理论知识外,通过大量的代码题和独立写项目是学习提升最快的方式了吧!因为是针对新手练习的简单小项目,所以会一步一步来写并且做解释,可以利于完全吃透和理解这个小项目(我写了三遍)。大佬勿喷!!
第一步,搭结构。
选择界面使用do{}while();循环来实现,具体功能选择用switch,代码如下:
import java.util.Scanner;
public class OrderThird {
public static void main(String[]args){
int choose=0;
Scanner input=new Scanner(System.in);
do{
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.print("\t\t请选择(1-6):");
choose=input.nextInt();
switch(choose){
case 1:
System.out.println("");
break;
case 2:
System.out.println("");
break;
case 3:
System.out.println("");
break;
case 4:
System.out.println("");
break;
case 5:
System.out.println("");
break;
case 6:
System.out.println("");
break;
default:
System.out.println("输入错误,请重新输入");
}
}while(choose!=6);
}
}
效果如下:
第二步,编写case2"查看餐袋"功能
写好需要用的数组并且初始化两条订餐信息,遍历数组,代码如下:
import java.util.Scanner;
public class OrderThird {
public static void main(String[]args){
int choose=0;
Scanner input=new Scanner(System.in);
String []name=new String[4]; //订餐者姓名
String []order=new String[4]; //点菜信息及数量
int [] time=new int[4]; //送餐时间
String [] adress=new String[4]; //订餐地址
int [] price=new int[4]; //订单价钱
int state[]=new int[4]; //订单状态0或者1,不写默认0
String[] dishName={"口水鸡","红烧肉","酱牛肉","土豆丝","蛋炒饭"}; //菜品
int []prices={28,35,50,20,15}; //菜品单价
int []count={20,22,13,66,88}; //点赞数量
name[0]="张三";
order[0]="红烧肉*2";
time[0]=70;
adress[0]="运河大街105号";
price[0]=23;
state[0]=0;
name[1]="李四";
order[1]="口水鸡*1";
time[1]=17;
adress[1]="新华大街15号";
price[1]=28;
state[1]=1;
do{
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.print("\t\t请选择(1-6):");
choose=input.nextInt();
switch(choose){
case 1:
System.out.println("");
break;
case 2:
System.out.println("******查看餐袋******");
System.out.println("序号\t订餐人\t餐品信息\t送餐时间\t总金额\t订单地址\t\t订单状态");
for(int i = 0;i<name.length;i++){
if(name[i]!=null){
String states=state[i]==0? "已定":"已完成"; //三元运算符
System.out.println((i+1)+"\t"+name[i]+"\t"+order[i]+"\t"
+time[i]+"\t"+price[i]+"\t"+adress[i]+"\t"+states);
}
}
break;
case 3:
System.out.println("");
break;
case 4:
System.out.println("");
break;
case 5:
System.out.println("");
break;
case 6:
System.out.println("");
break;
default:
System.out.println("输入错误,请重新输入");
}
}while(choose!=6);
}
}
注意:state代表订单状态(只有0或1),所以用三元运算符判断state[i]是否为0,字符串***String states***赋值为已定或者已完成,效果如下:
第三步,编写case1 "我要订餐"功能
使用Scanner获取订餐者信息,然后赋值并且遍历订餐者信息,代码如下:
import java.util.Scanner;
public class OrderThird {
public static void main(String[]args){
int choose=0;
Scanner input=new Scanner(System.in);
String []name=new String[4];
String []order=new String[4]; //点菜信息及数量
int [] time=new int[4]; //送餐时间
String [] adress=new String[4];
int [] price=new int[4]; //订单价钱
int state[]=new int[4]; //订单状态0或者1,不写默认0
String[] dishName={"口水鸡","红烧肉","酱牛肉","土豆丝","蛋炒饭"};
int []prices={28,35,50,20,15}; //菜品单价
int []count={20,22,13,66,88}; //点赞数量
name[0]="张三";
order[0]="红烧肉*2";
time[0]=70;
adress[0]="运河大街105号";
price[0]=23;
state[0]=0;
name[1]="李四";
order[1]="口水鸡*1";
time[1]=17;
adress[1]="新华大街15号";
price[1]=28;
state[1]=1;
do{
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.print(" 6.退出");
System.out.println("\t\t请选择(1-6):");
choose=input.nextInt();
switch(choose){
case 1:
System.out.println("******天堂酒店******");
System.out.println("序号\t菜名\t价格");
for(int i=0;i<prices.length;i++){
System.out.println((i+1)+"\t"+dishName[i]+"\t"+prices[i]); //遍历菜单
}
System.out.println("请输入您的姓名");
String names=input.next(); //接收订餐者姓名
System.out.println("请输入菜单编号");
int num=input.nextInt(); //接收订餐菜品 num-1为菜品
System.out.println("请输入需要的份数");
int num2=input.nextInt(); //接收订餐份数
System.out.println("请选择送餐时间(10-20):");
int num3=input.nextInt(); //接收送餐时间
System.out.println("请输入送餐地址");
String address1=input.next(); //接收送餐地址
int total=prices[num-1]*num2; //餐品价格 =菜品单价*份数
int num4=total<=50? 6:0; //订单运费=三元运算符判断:餐品价格小于50元,运费6元,否则0元。
for(int i=0;i<name.length;i++){
if(name[i]==null){
name[i]=names;
order[i]=dishName[num-1]+"*"+num2; //赋值点菜信息及数量=菜品+"*"+订餐份数
time[i]=num3; //赋值送餐时间
adress[i]=address1; //赋值地址
price[i]=total+num4; //赋值订单价格=餐品价格+运费
break;
}
}
System.out.println("订餐成功");
System.out.println("您定的是"+dishName[num-1]+"*"+num2+"份");
System.out.println("送餐时间是:"+num3+"点");
System.out.println("餐费是:"+total+"元、配送费:"+num4+"元、合计:"+(total+num4)+"、送餐地址:"+address1);
break;
case 2:
System.out.println("******查看餐袋******");
System.out.println("序号\t订餐人\t餐品信息\t送餐时间\t总金额\t订单地址\t\t订单状态");
for(int i = 0;i<name.length;i++){
if(name[i]!=null){
String states=state[i]==0? "已定":"已完成"; //三元运算符
System.out.println((i+1)+"\t"+name[i]+"\t"+order[i]+"\t"
+time[i]+"\t"+price[i]+"\t"+adress[i]+"\t"+states);
}
}
break;
case 3:
System.out.println("");
break;
case 4:
System.out.println("");
break;
case 5:
System.out.println("");
break;
case 6:
System.out.println("");
break;
default:
System.out.println("输入错误,请重新输入");
}
}while(choose!=6);
}
}
这步的重点为获取信息后赋值,一定把每个变量名和值分清,不能混乱,完成后效果如下:
第四步,编写case3"签收订单功能"
先用for循环找出订单是否存在,然后再用Boolean和选择结构判断,代码如下:
import java.util.Scanner;
public class OrderThird {
public static void main(String[]args){
int choose=0;
Scanner input=new Scanner(System.in);
String []name=new String[4];
String []order=new String[4]; //点菜信息及数量
int [] time=new int[4]; //送餐时间
String [] adress=new String[4];
int [] price=new int[4]; //订单价钱
int state[]=new int[4]; //订单状态0或者1,不写默认0
String[] dishName={"口水鸡","红烧肉","酱牛肉","土豆丝","蛋炒饭"};
int []prices={28,35,50,20,15}; //菜品单价
int []count={20,22,13,66,88}; //点赞数量
name[0]="张三";
order[0]="红烧肉*2";
time[0]=70;
adress[0]="运河大街105号";
price[0]=23;
state[0]=0;
name[1]="李四";
order[1]="口水鸡*1";
time[1]=17;
adress[1]="新华大街15号";
price[1]=28;
state[1]=1;
do{
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.print("\t\t请选择(1-6):");
choose=input.nextInt();
switch(choose){
case 1:
System.out.println("******天堂酒店******");
System.out.println("序号\t菜名\t价格");
for(int i=0;i<prices.length;i++){
System.out.println((i+1)+"\t"+dishName[i]+"\t"+prices[i]); //遍历菜单
}
System.out.println("请输入您的姓名");
String names=input.next(); //接收订餐者姓名
System.out.println("请输入菜单编号");
int num=input.nextInt(); //接收订餐菜品 num-1为菜品
System.out.println("请输入需要的份数");
int num2=input.nextInt(); //接收订餐份数
System.out.println("请选择送餐时间(10-20):");
int num3=input.nextInt(); //接收送餐时间
System.out.println("请输入送餐地址");
String address1=input.next(); //接收送餐地址
int total=prices[num-1]*num2; //餐品价格 =菜品单价*份数
int num4=total<=50? 6:0; //订单运费=三元运算符判断:餐品价格小于50元,运费6元,否则0元。
for(int i=0;i<name.length;i++){
if(name[i]==null){ //判断订餐者元素是否为null(空),是null赋值。
name[i]=names;
order[i]=dishName[num-1]+"*"+num2; //赋值点菜信息及数量=菜品+"*"+订餐份数
time[i]=num3; //赋值送餐时间
adress[i]=address1; //赋值地址
price[i]=total+num4; //赋值订单价格=餐品价格+运费
break;
}
}
System.out.println("订餐成功");
System.out.println("您定的是"+dishName[num-1]+"*"+num2+"份");
System.out.println("送餐时间是:"+num3+"点");
System.out.println("餐费是:"+total+"元、配送费:"+num4+"元、合计:"+(total+num4)+"、送餐地址:"+address1);
break;
case 2:
System.out.println("******查看餐袋******");
System.out.println("序号\t订餐人\t餐品信息\t送餐时间\t总金额\t订单地址\t\t订单状态");
for(int i = 0;i<name.length;i++){
if(name[i]!=null){
String states=state[i]==0? "已定":"已完成"; //三元运算符
System.out.println((i+1)+"\t"+name[i]+"\t"+order[i]+"\t"
+time[i]+"\t"+price[i]+"\t"+adress[i]+"\t"+states);
}
}
break;
case 3:
System.out.println("******签收订单******");
System.out.println("序号\t订餐人\t餐品信息\t送餐时间\t总金额\t订单地址\t\t订单状态");
for(int i = 0;i<name.length;i++){
if(name[i]!=null){
String states=state[i]==0? "已定":"已完成";
System.out.println((i+1)+"\t"+name[i]+"\t"+order[i]+"\t"
+time[i]+"\t"+price[i]+"\t"+adress[i]+"\t"+states);
}
}
System.out.println("请确认签收的订单");
num4=input.nextInt();
boolean isExist=true;
for(int i=0;i<name.length;i++){
if(name[i]!=null&&(num4-1)==i){
isExist=false;
break;
}
}
if(isExist){
System.out.print("对不起,没有该订单");
}else{
if(state[num4-1]==0){
System.out.println("已经成功签收");
state[num4-1]=1;
}else if(state[num4-1]==1){
System.out.println("对不起,订单已经签收,不能在签收!");
}
}
break;
case 4:
break;
case 5:
System.out.println("");
break;
case 6:
System.out.println("");
break;
default:
System.out.println("输入错误,请重新输入");
}
}while(choose!=6);
}
}
这步的那带你是写好判断语句,效果如下:
第五步,编写case4"删除订单"功能,具体方法和第四部差不多,代码如下:
import java.util.Scanner;
public class OrderThird {
public static void main(String[]args){
int choose=0;
Scanner input=new Scanner(System.in);
String []name=new String[4];
String []order=new String[4]; //点菜信息及数量
int [] time=new int[4]; //送餐时间
String [] adress=new String[4];
int [] price=new int[4]; //订单价钱
int state[]=new int[4]; //订单状态0或者1,不写默认0
String[] dishName={"口水鸡","红烧肉","酱牛肉","土豆丝","蛋炒饭"};
int []prices={28,35,50,20,15}; //菜品单价
int []count={20,22,13,66,88}; //点赞数量
name[0]="张三";
order[0]="红烧肉*2";
time[0]=70;
adress[0]="运河大街105号";
price[0]=23;
state[0]=0;
name[1]="李四";
order[1]="口水鸡*1";
time[1]=17;
adress[1]="新华大街15号";
price[1]=28;
state[1]=1;
do{
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.print("\t\t请选择(1-6):");
choose=input.nextInt();
switch(choose){
case 1:
System.out.println("******天堂酒店******");
System.out.println("序号\t菜名\t价格");
for(int i=0;i<prices.length;i++){
System.out.println((i+1)+"\t"+dishName[i]+"\t"+prices[i]); //遍历菜单
}
System.out.println("请输入您的姓名");
String names=input.next(); //接收订餐者姓名
System.out.println("请输入菜单编号");
int num=input.nextInt(); //接收订餐菜品 num-1为菜品
System.out.println("请输入需要的份数");
int num2=input.nextInt(); //接收订餐份数
System.out.println("请选择送餐时间(10-20):");
int num3=input.nextInt(); //接收送餐时间
System.out.println("请输入送餐地址");
String address1=input.next(); //接收送餐地址
int total=prices[num-1]*num2; //餐品价格 =菜品单价*份数
int num4=total<=50? 6:0; //订单运费=三元运算符判断:餐品价格小于50元,运费6元,否则0元。
for(int i=0;i<name.length;i++){
if(name[i]==null){ //判断订餐者元素是否为null(空),是null赋值。
name[i]=names;
order[i]=dishName[num-1]+"*"+num2; //赋值点菜信息及数量=菜品+"*"+订餐份数
time[i]=num3; //赋值送餐时间
adress[i]=address1; //赋值地址
price[i]=total+num4; //赋值订单价格=餐品价格+运费
break;
}
}
System.out.println("订餐成功");
System.out.println("您定的是"+dishName[num-1]+"*"+num2+"份");
System.out.println("送餐时间是:"+num3+"点");
System.out.println("餐费是:"+total+"元、配送费:"+num4+"元、合计:"+(total+num4)+"、送餐地址:"+address1);
break;
case 2:
System.out.println("******查看餐袋******");
System.out.println("序号\t订餐人\t餐品信息\t送餐时间\t总金额\t订单地址\t\t订单状态");
for(int i = 0;i<name.length;i++){
if(name[i]!=null){
String states=state[i]==0? "已定":"已完成"; //三元运算符
System.out.println((i+1)+"\t"+name[i]+"\t"+order[i]+"\t"
+time[i]+"\t"+price[i]+"\t"+adress[i]+"\t"+states);
}
}
break;
case 3:
System.out.println("******签收订单******");
System.out.println("序号\t订餐人\t餐品信息\t送餐时间\t总金额\t订单地址\t\t订单状态");
for(int i = 0;i<name.length;i++){
if(name[i]!=null){
String states=state[i]==0? "已定":"已完成";
System.out.println((i+1)+"\t"+name[i]+"\t"+order[i]+"\t"
+time[i]+"\t"+price[i]+"\t"+adress[i]+"\t"+states);
}
}
System.out.println("请确认签收的订单");
num4=input.nextInt();
boolean isExist=true;
for(int i=0;i<name.length;i++){
if(name[i]!=null&&(num4-1)==i){
isExist=false;
break;
}
}
if(isExist){
System.out.print("对不起,没有该订单");
}else{
if(state[num4-1]==0){
System.out.println("已经成功签收");
state[num4-1]=1;
}else if(state[num4-1]==1){
System.out.println("对不起,订单已经签收,不能在签收!");
}
}
break;
case 4:
System.out.println("******删除订单******");
System.out.println("序号\t订餐人\t餐品信息\t送餐时间\t总金额\t订单地址\t\t订单状态");
for(int i = 0;i<name.length;i++){
if(name[i]!=null){
String states=state[i]==0? "已定":"已完成";
System.out.println((i+1)+"\t"+name[i]+"\t"+order[i]+"\t"
+time[i]+"\t"+price[i]+"\t"+adress[i]+"\t"+states);
}
}
System.out.println("请输入要删除的订单号");
int num5=input.nextInt();
isExist=true;
for(int i=0;i<name.length;i++){
if(name[i]!=null&&(num5-1)==i){
isExist=false;
}
}
if(isExist){
System.out.println("对不起,该订单 不存在");
}else{
if(state[num5-1]==0){
System.out.println("订单未签收,不能删除");
}else if(state[num5-1]==1){
int index=0;
for(int i=0;i<name.length;i++){
if(name[i]!=null&&state[num5-1]==i){
index=i;
break;
}
}
for(int i=index;i<name.length-1;i++){
name[i]=name[i+1];
order[i]=order[i+1];
time[i]=time[i+1];
adress[i]=adress[i+1];
state[i]=state[i+1];
}
name[name.length-1]=null;
System.out.println("删除成功");
}
}
break;
case 5:
System.out.println("");
break;
case 6:
System.out.println("");
break;
default:
System.out.println("输入错误,请重新输入");
}
}while(choose!=6);
}
}
效果如下:
第六步,编写case5"我要点赞"功能
遍历写好的点赞数组,for循环外couunt[num6-1]++,实现具体菜品点赞数+1的功能!代码如下:
import java.util.Scanner;
public class OrderThird {
public static void main(String[]args){
int choose=0;
Scanner input=new Scanner(System.in);
String []name=new String[4];
String []order=new String[4]; //点菜信息及数量
int [] time=new int[4]; //送餐时间
String [] adress=new String[4];
int [] price=new int[4]; //订单价钱
int state[]=new int[4]; //订单状态0或者1,不写默认0
String[] dishName={"口水鸡","红烧肉","酱牛肉","土豆丝","蛋炒饭"};
int []prices={28,35,50,20,15}; //菜品单价
int []count={20,22,13,66,88}; //点赞数量
name[0]="张三";
order[0]="红烧肉*2";
time[0]=70;
adress[0]="运河大街105号";
price[0]=23;
state[0]=0;
name[1]="李四";
order[1]="口水鸡*1";
time[1]=17;
adress[1]="新华大街15号";
price[1]=28;
state[1]=1;
do{
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.print("\t\t请选择(1-6):");
choose=input.nextInt();
switch(choose){
case 1:
System.out.println("******天堂酒店******");
System.out.println("序号\t菜名\t价格");
for(int i=0;i<prices.length;i++){
System.out.println((i+1)+"\t"+dishName[i]+"\t"+prices[i]); //遍历菜单
}
System.out.println("请输入您的姓名");
String names=input.next(); //接收订餐者姓名
System.out.println("请输入菜单编号");
int num=input.nextInt(); //接收订餐菜品 num-1为菜品
System.out.println("请输入需要的份数");
int num2=input.nextInt(); //接收订餐份数
System.out.println("请选择送餐时间(10-20):");
int num3=input.nextInt(); //接收送餐时间
System.out.println("请输入送餐地址");
String address1=input.next(); //接收送餐地址
int total=prices[num-1]*num2; //餐品价格 =菜品单价*份数
int num4=total<=50? 6:0; //订单运费=三元运算符判断:餐品价格小于50元,运费6元,否则0元。
for(int i=0;i<name.length;i++){
if(name[i]==null){ //判断订餐者元素是否为null(空),是null赋值。
name[i]=names;
order[i]=dishName[num-1]+"*"+num2; //赋值点菜信息及数量=菜品+"*"+订餐份数
time[i]=num3; //赋值送餐时间
adress[i]=address1; //赋值地址
price[i]=total+num4; //赋值订单价格=餐品价格+运费
break;
}
}
System.out.println("订餐成功");
System.out.println("您定的是"+dishName[num-1]+"*"+num2+"份");
System.out.println("送餐时间是:"+num3+"点");
System.out.println("餐费是:"+total+"元、配送费:"+num4+"元、合计:"+(total+num4)+"、送餐地址:"+address1);
break;
case 2:
System.out.println("******查看餐袋******");
System.out.println("序号\t订餐人\t餐品信息\t送餐时间\t总金额\t订单地址\t\t订单状态");
for(int i = 0;i<name.length;i++){
if(name[i]!=null){
String states=state[i]==0? "已定":"已完成"; //三元运算符
System.out.println((i+1)+"\t"+name[i]+"\t"+order[i]+"\t"
+time[i]+"\t"+price[i]+"\t"+adress[i]+"\t"+states);
}
}
break;
case 3:
System.out.println("******签收订单******");
System.out.println("序号\t订餐人\t餐品信息\t送餐时间\t总金额\t订单地址\t\t订单状态");
for(int i = 0;i<name.length;i++){
if(name[i]!=null){
String states=state[i]==0? "已定":"已完成";
System.out.println((i+1)+"\t"+name[i]+"\t"+order[i]+"\t"
+time[i]+"\t"+price[i]+"\t"+adress[i]+"\t"+states);
}
}
System.out.println("请确认签收的订单");
num4=input.nextInt();
boolean isExist=true;
for(int i=0;i<name.length;i++){
if(name[i]!=null&&(num4-1)==i){
isExist=false;
break;
}
}
if(isExist){
System.out.print("对不起,没有该订单");
}else{
if(state[num4-1]==0){
System.out.println("已经成功签收");
state[num4-1]=1;
}else if(state[num4-1]==1){
System.out.println("对不起,订单已经签收,不能在签收!");
}
}
break;
case 4:
System.out.println("******删除订单******");
System.out.println("序号\t订餐人\t餐品信息\t送餐时间\t总金额\t订单地址\t\t订单状态");
for(int i = 0;i<name.length;i++){
if(name[i]!=null){
String states=state[i]==0? "已定":"已完成";
System.out.println((i+1)+"\t"+name[i]+"\t"+order[i]+"\t"
+time[i]+"\t"+price[i]+"\t"+adress[i]+"\t"+states);
}
}
System.out.println("请输入要删除的订单号");
int num5=input.nextInt();
isExist=true;
for(int i=0;i<name.length;i++){
if(name[i]!=null&&(num5-1)==i){
isExist=false;
}
}
if(isExist){
System.out.println("对不起,该订单 不存在");
}else{
if(state[num5-1]==0){
System.out.println("订单未签收,不能删除");
}else if(state[num5-1]==1){
int index=0;
for(int i=0;i<name.length;i++){
if(name[i]!=null&&state[num5-1]==i){
index=i;
break;
}
}
for(int i=index;i<name.length-1;i++){
name[i]=name[i+1];
order[i]=order[i+1];
time[i]=time[i+1];
adress[i]=adress[i+1];
state[i]=state[i+1];
}
name[name.length-1]=null;
System.out.println("删除成功");
}
}
break;
case 5:
System.out.println("序号\t菜名\t点赞量");
for(int i=0;i<dishName.length;i++){
System.out.println((i+1)+"\t"+dishName[i]+"\t"+count[i]);
}
System.out.println("请输入要点赞菜品的序号");
int num6=input.nextInt();
count[num6-1]++;
for(int i=0;i<dishName.length;i++){
System.out.println((i+1)+"\t"+dishName[i]+"\t"+count[i]);
}
break;
case 6:
System.out.println("谢谢使用");
break;
default:
System.out.println("输入错误,请重新输入");
}
}while(choose!=6);
}
}
效果如下:
总结:
至此,代码所有功能写完,这虽然是一个很简单的小项目,但是对刚接触编程的新手来说练练手和思维还是不错的,这个小项目感觉1、3、4功能稍微难一点,2和5还有搭框架较为容易,不过只要思路理清,还是很容易完成的。End