“商苑面馆:Java命令行版之 CartView”的版本间的差异

来自CloudWiki
跳转至: 导航搜索
(创建页面,内容为“==MVC简介== MVC的全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范。它是用一种…”)
 
 
第13行: 第13行:
 
*V即View视图是指用户看到并与之交互的界面。'''可以是命令行,也可以是html元素组成的网页界面,或者软件的客户端界面。'''。MVC的好处之一在于它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,它只是作为一种输出数据并允许用户操纵的方式。
 
*V即View视图是指用户看到并与之交互的界面。'''可以是命令行,也可以是html元素组成的网页界面,或者软件的客户端界面。'''。MVC的好处之一在于它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,它只是作为一种输出数据并允许用户操纵的方式。
  
===新建类UserShow类===
+
===新建类CartShow类===
新建包,名称为view
 
  
在这里存放视图层有关代码
+
在view包下新建CartShow类,初始代码如下:
  
在view包下新建UserShow类,初始代码如下:
+
CartShow类的主要作用是向用户提供展示界面
  
UserShow类的主要作用是向用户提供展示界面
+
  <nowiki>package view;
 +
 
 +
import java.util.Scanner;
  
  <nowiki>package view;
+
import service.CartService;
import java.text.MessageFormat;
+
import service.FoodService;
import java.util.*;
+
import entity.Food;
 +
import entity.Noodle;
  
public class UserShow {
+
public class CartShow {
 
private static Scanner sc = new Scanner(System.in);
 
private static Scanner sc = new Scanner(System.in);
public UserShow(){
+
static FoodShow fs=new FoodShow();
+
static  FoodService fservice = new FoodService();//新建一个FoodService对象;
}
+
static CartService cservice = new CartService();
 +
    public CartShow(){
 +
    //系统输入
 +
   
 +
    }
 
         public static void main(String[] args) {
 
         public static void main(String[] args) {
 
   }
 
   }
 
}</nowiki>
 
}</nowiki>
  
该类共有一个主要功能:
+
===其他功能===
*展示用户登陆界面
 
  
 
+
<nowiki>public static Food search( ){
下面我们用1个UserShow的方法分别来实现他们:
+
//Scanner scan = new Scanner(System.in);
 
+
System.out.println("您想点什么餐品?");             
===用户登录功能:start()===
+
String meal = sc.next();//meal:饭的意思,请替换为你的商品类别
<nowiki>/**用户的登陆页面
+
Food food =fservice.findFood(meal);
*
+
//sc.close();
* @return ArrayList<String> 用户名和密码
+
return food;
*/
+
public  ArrayList<String> start(){
+
}
 +
public static boolean buy(Food food){
 +
//Scanner scan = new Scanner(System.in);
 +
if(food !=null){
 +
cservice.addToCart(food,1);//调用业务逻辑层的CartService类,添加购物车
 +
System.out.println(food.getName()+"商品已成功添加");
 +
 +
return true;
 +
 
 +
}else{
 +
System.out.println("请先选择商品!");
 +
 +
return false;
 +
}
 +
}
 +
public static boolean cancel(Food food){
 +
if(food !=null){
 +
cservice.delFromCart(food);//调用业务逻辑层的CartService类,添加购物车
 +
System.out.println(food.getName()+"商品已从购物车清除");
 +
return true;
 +
 
 +
}else{
 +
System.out.println("请先选择商品!");
 +
return false;
 +
}
 +
}
 +
public  static int getChoise() {
 +
//Scanner sc = new Scanner(System.in);
 +
//要求用户选择菜单
 +
System.out.println("请选择(1-6):");
 +
//获取用户对于菜单的选择
 +
//System.out.println(sc.toString());
 +
 +
String value = sc.next();
 +
//显示用户输入的菜单序号
 
 
System.out.println("********************");
+
//未学习异常时不考虑用户的错误输入
System.out.println("*****欢迎登录图书管理平台客户端*****");
+
int i = Integer.parseInt(value);
System.out.println("********************");
+
switch(i ){
System.out.println("账号:");
+
case 1:
String uname = sc.nextLine();
+
System.out.println("您选择的是:"+"1.查询所有商品\r\n");
System.out.println("密码:");
+
break;
String pwd = sc.nextLine();
+
case 2:
System.out.println("输入完毕!");
+
System.out.println("您选择的是:"+"2.根据商品名称查找商品\r\n");
 +
break;
 +
case 3:
 +
System.out.println("您选择的是:"+"3.购买商品\r\n" );
 +
break;
 +
case 4:
 +
System.out.println("您选择的是:"+"4.取消购买\r\n" );
 +
break;
 +
case 5:
 +
System.out.println("您选择的是:"+"5.查询购买情况\r\n");
 +
break;
 +
case 6:
 +
System.out.println("您选择的是:"+"6.退出系统\r\n" );
 +
break;
 +
default:
 +
System.out.println("请选择您想要的功能~" );
 +
}
 +
//sc.close();
 +
return i;
 
 
ArrayList<String> uinfo = new ArrayList<>();
 
uinfo.add(uname);
 
uinfo.add(pwd);
 
return uinfo;
 
 
}</nowiki>
 
}</nowiki>
 +
 +
  
  
第67行: 第122行:
 
  <nowiki>public static void main(String[] args) {
 
  <nowiki>public static void main(String[] args) {
 
// TODO Auto-generated method stub
 
// TODO Auto-generated method stub
        UserShow us = new UserShow();
+
        us.start();
+
        sc.close();      
+
Food food =  null;        
}</nowiki>
+
    fs.showMenu();//视图层列出菜单
 +
    while(true){
 +
    int option = getChoise();//视图层让顾客选择
 +
    System.out.println(option);
 +
    //break;
 +
   
 +
    switch(option){
 +
    case 1://查看商品列表
 +
    fservice.listFood();//调用业务逻辑层 列出全部食物
 +
    break;
 +
    case 2://查找商品
 +
    food = search();
 +
    break;
 +
    case 3://
 +
    buy(food);
 +
    break;
 +
    case 4:
 +
    cancel(food);
 +
    break;
 +
    case 5://查看购物车
 +
    cservice.listCart();//调用业务逻辑层的方法
 +
    break;
 +
    case 6://退出
 +
    System.out.println("欢迎下次光临!");
 +
    break;
 +
    }
 +
    if(option == 6){//如果顾客选择的是6,退出while循环
 +
    break;
 +
    }else {
 +
    System.out.println();
 +
        fs.showMenu();
 +
    }
 +
    }
 +
}</nowiki>
  
 
运行结果:
 
运行结果:
  
[[文件:java7-34.png]]
+
 
 
==完整代码==
 
==完整代码==
  <nowiki>package main;
+
  <nowiki>package view;
import java.text.MessageFormat;
 
import java.util.*;
 
  
public class UserShow {
+
import java.util.Scanner;
 +
 
 +
import service.CartService;
 +
import service.FoodService;
 +
import entity.Food;
 +
import entity.Noodle;
 +
 
 +
public class CartShow {
 
private static Scanner sc = new Scanner(System.in);
 
private static Scanner sc = new Scanner(System.in);
public UserShow(){
+
static FoodShow fs=new FoodShow();
 +
static  FoodService fservice = new FoodService();//新建一个FoodService对象;
 +
static CartService cservice = new CartService();
 +
    public CartShow(){
 +
    //系统输入
 +
   
 +
    }
 +
public static Food search( ){
 +
//Scanner scan = new Scanner(System.in);
 +
System.out.println("您想点什么餐品?");             
 +
String meal = sc.next();//meal:饭的意思,请替换为你的商品类别
 +
Food food =fservice.findFood(meal);
 +
//sc.close();
 +
return food;
 
 
 
}
 
}
/**用户的登陆页面
+
public static boolean buy(Food food){
*
+
//Scanner scan = new Scanner(System.in);
* @return ArrayList<String> 用户名和密码
+
if(food !=null){
*/
+
cservice.addToCart(food,1);//调用业务逻辑层的CartService类,添加购物车
public  ArrayList<String> start(){
+
System.out.println(food.getName()+"商品已成功添加");
 +
 +
return true;
 +
 
 +
}else{
 +
System.out.println("请先选择商品!");
 +
 +
return false;
 +
}
 +
}
 +
public static boolean cancel(Food food){
 +
if(food !=null){
 +
cservice.delFromCart(food);//调用业务逻辑层的CartService类,添加购物车
 +
System.out.println(food.getName()+"商品已从购物车清除");
 +
return true;
 +
 
 +
}else{
 +
System.out.println("请先选择商品!");
 +
return false;
 +
}
 +
}
 +
public  static int getChoise() {
 +
//Scanner sc = new Scanner(System.in);
 +
//要求用户选择菜单
 +
System.out.println("请选择(1-6):");
 +
//获取用户对于菜单的选择
 +
//System.out.println(sc.toString());
 
 
System.out.println("********************");
+
String value = sc.next();
System.out.println("*****欢迎登录图书管理平台客户端*****");
+
//显示用户输入的菜单序号
System.out.println("********************");
+
System.out.println("账号:");
+
//未学习异常时不考虑用户的错误输入
String uname = sc.nextLine();
+
int i = Integer.parseInt(value);
System.out.println("密码:");
+
switch(i ){
String pwd = sc.nextLine();
+
case 1:
System.out.println("输入完毕!");
+
System.out.println("您选择的是:"+"1.查询所有商品\r\n");
 +
break;
 +
case 2:
 +
System.out.println("您选择的是:"+"2.根据商品名称查找商品\r\n");
 +
break;
 +
case 3:
 +
System.out.println("您选择的是:"+"3.购买商品\r\n" );
 +
break;
 +
case 4:
 +
System.out.println("您选择的是:"+"4.取消购买\r\n" );
 +
break;
 +
case 5:
 +
System.out.println("您选择的是:"+"5.查询购买情况\r\n");
 +
break;
 +
case 6:
 +
System.out.println("您选择的是:"+"6.退出系统\r\n" );
 +
break;
 +
default:
 +
System.out.println("请选择您想要的功能~" );
 +
}
 +
//sc.close();
 +
return i;
 
 
ArrayList<String> uinfo = new ArrayList<>();
 
uinfo.add(uname);
 
uinfo.add(pwd);
 
return uinfo;
 
 
}
 
}
 
 
 
public static void main(String[] args) {
 
public static void main(String[] args) {
 
// TODO Auto-generated method stub
 
// TODO Auto-generated method stub
        UserShow us = new UserShow();
+
        us.start();
+
        sc.close();      
+
Food food =  null;        
}
+
    fs.showMenu();//视图层列出菜单
 
+
    while(true){
 +
    int option = getChoise();//视图层让顾客选择
 +
    System.out.println(option);
 +
    //break;
 +
   
 +
    switch(option){
 +
    case 1://查看商品列表
 +
    fservice.listFood();//调用业务逻辑层 列出全部食物
 +
    break;
 +
    case 2://查找商品
 +
    food = search();
 +
    break;
 +
    case 3://
 +
    buy(food);
 +
    break;
 +
    case 4:
 +
    cancel(food);
 +
    break;
 +
    case 5://查看购物车
 +
    cservice.listCart();//调用业务逻辑层的方法
 +
    break;
 +
    case 6://退出
 +
    System.out.println("欢迎下次光临!");
 +
    break;
 +
    }
 +
    if(option == 6){//如果顾客选择的是6,退出while循环
 +
    break;
 +
    }else {
 +
    System.out.println();
 +
        fs.showMenu();
 +
    }
 +
    }
 +
}
 
}
 
}
 
</nowiki>
 
</nowiki>

2019年5月13日 (一) 02:15的最新版本

MVC简介

MVC的全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范。它是用一种业务逻辑、数据与界面显示分离的方法来组织代码,将众多的业务逻辑聚集到一个部件里面,在需要改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑,达到减少编码的时间。

MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器。

Java8-1.png

客户端功能

Java2-36.png

View层代码

  • V即View视图是指用户看到并与之交互的界面。可以是命令行,也可以是html元素组成的网页界面,或者软件的客户端界面。。MVC的好处之一在于它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,它只是作为一种输出数据并允许用户操纵的方式。

新建类CartShow类

在view包下新建CartShow类,初始代码如下:

CartShow类的主要作用是向用户提供展示界面

 package view;

import java.util.Scanner;

import service.CartService;
import service.FoodService;
import entity.Food;
import entity.Noodle;

public class CartShow {
	private static Scanner sc = new Scanner(System.in);
	static FoodShow fs=new FoodShow();
	static  FoodService fservice = new FoodService();//新建一个FoodService对象;
	static CartService cservice = new CartService();
    public CartShow(){
    	//系统输入
    	
    }
        public static void main(String[] args) {
  }
}

其他功能

public static Food search( ){
		//Scanner scan = new Scanner(System.in);
		System.out.println("您想点什么餐品?");               
		String meal = sc.next();//meal:饭的意思,请替换为你的商品类别
		Food food =fservice.findFood(meal);
		//sc.close();
		return food;
		
	}
	public static boolean buy(Food food){
		//Scanner scan = new Scanner(System.in);
		if(food !=null){
			cservice.addToCart(food,1);//调用业务逻辑层的CartService类,添加购物车
			System.out.println(food.getName()+"商品已成功添加");
			
			return true;
		   			
		}else{
			System.out.println("请先选择商品!");
			
			return false;
		}
	}
	public static boolean cancel(Food food){
		if(food !=null){
			cservice.delFromCart(food);//调用业务逻辑层的CartService类,添加购物车
			System.out.println(food.getName()+"商品已从购物车清除");
			return true;
		   			
		}else{
			System.out.println("请先选择商品!");
			return false;
		}
	}
	public  static int getChoise() {
		 //Scanner sc = new Scanner(System.in);
		//要求用户选择菜单
		System.out.println("请选择(1-6):");
		//获取用户对于菜单的选择
		//System.out.println(sc.toString());
		
		String value = sc.next();
		//显示用户输入的菜单序号
		
		//未学习异常时不考虑用户的错误输入
		int i = Integer.parseInt(value);
		switch(i ){
			case 1:
				System.out.println("您选择的是:"+"1.查询所有商品\r\n");
				break;
			case 2:
				System.out.println("您选择的是:"+"2.根据商品名称查找商品\r\n");
				break;
			case 3:
				System.out.println("您选择的是:"+"3.购买商品\r\n" );
				break;
			case 4:
				System.out.println("您选择的是:"+"4.取消购买\r\n" );
				break;
			case 5:
				System.out.println("您选择的是:"+"5.查询购买情况\r\n");
				break;
			case 6:
				System.out.println("您选择的是:"+"6.退出系统\r\n" );
				break;
			default:
				System.out.println("请选择您想要的功能~" );
		}
		//sc.close();
		return i;
		
	}



编写main方法,进行测试

public static void main(String[] args) {
		// TODO Auto-generated method stub
		
			
			Food food =  null; 		         
		    fs.showMenu();//视图层列出菜单
		    while(true){
			    int option = getChoise();//视图层让顾客选择
			    System.out.println(option);
			    //break;
			    
			    switch(option){
			    	case 1://查看商品列表
			    		fservice.listFood();//调用业务逻辑层 列出全部食物
			    		break;
			    	case 2://查找商品
			    		food = search(); 
			    		break;
			    	case 3://
			    		buy(food);
			    		break;
			    	case 4:
			    		cancel(food);
			    		break;
			    	case 5://查看购物车
			    		cservice.listCart();//调用业务逻辑层的方法
			    		break;
			    	case 6://退出
			    		System.out.println("欢迎下次光临!");
			    		break;
			    }
			    if(option == 6){//如果顾客选择的是6,退出while循环
			    	break;
			    }else {
			    	System.out.println();
			        fs.showMenu();
			    }
		    }
}

运行结果:


完整代码

package view;

import java.util.Scanner;

import service.CartService;
import service.FoodService;
import entity.Food;
import entity.Noodle;

public class CartShow {
	private static Scanner sc = new Scanner(System.in);
	static FoodShow fs=new FoodShow();
	static  FoodService fservice = new FoodService();//新建一个FoodService对象;
	static CartService cservice = new CartService();
    public CartShow(){
    	//系统输入
    	
    }
	public static Food search( ){
		//Scanner scan = new Scanner(System.in);
		System.out.println("您想点什么餐品?");               
		String meal = sc.next();//meal:饭的意思,请替换为你的商品类别
		Food food =fservice.findFood(meal);
		//sc.close();
		return food;
		
	}
	public static boolean buy(Food food){
		//Scanner scan = new Scanner(System.in);
		if(food !=null){
			cservice.addToCart(food,1);//调用业务逻辑层的CartService类,添加购物车
			System.out.println(food.getName()+"商品已成功添加");
			
			return true;
		   			
		}else{
			System.out.println("请先选择商品!");
			
			return false;
		}
	}
	public static boolean cancel(Food food){
		if(food !=null){
			cservice.delFromCart(food);//调用业务逻辑层的CartService类,添加购物车
			System.out.println(food.getName()+"商品已从购物车清除");
			return true;
		   			
		}else{
			System.out.println("请先选择商品!");
			return false;
		}
	}
	public  static int getChoise() {
		 //Scanner sc = new Scanner(System.in);
		//要求用户选择菜单
		System.out.println("请选择(1-6):");
		//获取用户对于菜单的选择
		//System.out.println(sc.toString());
		
		String value = sc.next();
		//显示用户输入的菜单序号
		
		//未学习异常时不考虑用户的错误输入
		int i = Integer.parseInt(value);
		switch(i ){
			case 1:
				System.out.println("您选择的是:"+"1.查询所有商品\r\n");
				break;
			case 2:
				System.out.println("您选择的是:"+"2.根据商品名称查找商品\r\n");
				break;
			case 3:
				System.out.println("您选择的是:"+"3.购买商品\r\n" );
				break;
			case 4:
				System.out.println("您选择的是:"+"4.取消购买\r\n" );
				break;
			case 5:
				System.out.println("您选择的是:"+"5.查询购买情况\r\n");
				break;
			case 6:
				System.out.println("您选择的是:"+"6.退出系统\r\n" );
				break;
			default:
				System.out.println("请选择您想要的功能~" );
		}
		//sc.close();
		return i;
		
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
			
			Food food =  null; 		         
		    fs.showMenu();//视图层列出菜单
		    while(true){
			    int option = getChoise();//视图层让顾客选择
			    System.out.println(option);
			    //break;
			    
			    switch(option){
			    	case 1://查看商品列表
			    		fservice.listFood();//调用业务逻辑层 列出全部食物
			    		break;
			    	case 2://查找商品
			    		food = search(); 
			    		break;
			    	case 3://
			    		buy(food);
			    		break;
			    	case 4:
			    		cancel(food);
			    		break;
			    	case 5://查看购物车
			    		cservice.listCart();//调用业务逻辑层的方法
			    		break;
			    	case 6://退出
			    		System.out.println("欢迎下次光临!");
			    		break;
			    }
			    if(option == 6){//如果顾客选择的是6,退出while循环
			    	break;
			    }else {
			    	System.out.println();
			        fs.showMenu();
			    }
		    }
}
}


返回 Java程序设计