?? cart.java~64~
字號:
package com.hygj.sunqi.j2ee.model;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2006</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
import org.apache.log4j.Logger;
import java.io.*;
import java.util.*;
import java.sql.*;
public class Cart {
//私有成員變量
private static Logger log = Logger.getLogger(Cart.class);
private ArrayList myCart = new ArrayList();
private Connection conn=null;
private Statement stmt=null;
private ResultSet rs=null;
private String classForName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
private String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=HYGJ";
public Cart() {
}
//數據庫連接
public int conn(String userName,String passWd){
String password = "";
try{
Class.forName(classForName);
conn = DriverManager.getConnection(url,"sa","qaz123");
stmt = conn.createStatement();
String sql = "select userPwd from users where userName='"+userName+"'";
rs = stmt.executeQuery(sql);
while(rs.next()){
password = rs.getString("userPwd");
}
stmt.close();
conn.close();
rs.close();
if(passWd.equals(password)){
log.info("登錄成功");
return 3;
}else{
log.info("登錄失敗");
return 2;
}
}catch(Exception e){
log.error(e.getMessage());
return 0;
}
}
//添加產品
public void addProduct(Product parProduct){
myCart.add(parProduct);
log.info("你購買的物品是"+parProduct.getProductName()+",物品的價格為"+parProduct.getProductPrice());
}
//刪除產品
public void removeProduct(Product parProduct){
int num = 0;
int j = 0;//記錄刪除的次數
if((num = myCart.size())!= 0){
for(int i = 0; i < num; i++){
Product temp = (Product)myCart.get(i);
if(temp.getProductName().equals(parProduct.getProductName())
&& (temp.getProductPrice() == parProduct.getProductPrice())){
myCart.remove(i);
j++;
break;
}
}
}
if(j == 0){
log.info("沒有你要刪除的物品!");
}else{
log.info("你總共刪除了"+j+"樣物品!");
}
}
//結算
public float getTotalPrice(){
float sum = 0;
for(int i = 0;i < myCart.size();i++){
Product temp = (Product)myCart.get(i);
sum = sum + temp.getProductPrice();
}
return sum;
}
//列出所有產品
public void listProduct(){
System.out.println("你總共買了"+myCart.size()+"樣物品");
//System.out.println("你所買的物品及其價格為:");
for(int i = 0; i < myCart.size(); i++){
Product proInfo =(Product) myCart.get(i);
log.info("你所買的第"+(i+1)+"樣物品為:"+proInfo.getProductName()+",");
log.info("價格為:"+proInfo.getProductPrice()+"元");
}
}
//列出有多少個商品
public int getNum(){
int number = myCart.size();
return number;
}
//入口函數
public static void main(String[] args){
log.info("歡迎登陸麒麟購物系統:");
Cart cart1 = new Cart();
String selInfo = "";
String productInfo = "";
String productInfo2 = "";
float productInfo3 = 0;
int selInfo1 = 0;
//循環
while (true) {
log.info("1.購物");
log.info("2.刪除");
log.info("3.結算");
log.info("4.列出物品");
log.info("5.退出");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try{
selInfo= br.readLine();
}catch(Exception e){
log.error(e.getMessage());
}
try{
selInfo1 = Integer.parseInt(selInfo);
}catch(Exception ec){
log.warn("請輸入整數!");
continue;
//System.out.println("kd");
//System.out.println(ec.getMessage());
}
//判斷選擇1,2,3,4,5,其它的都重新輸入
if(selInfo1 == 1 || selInfo1 == 2 || selInfo1 == 3 || selInfo1 == 4 || selInfo1 == 5){
switch (selInfo1) {
case 1:
log.info("請輸入產品的名稱與價格:(以逗號分隔)");
try{
productInfo = br.readLine();
int flag1 = productInfo.indexOf(",");
//判斷輸入是否以逗號分隔,否則重新輸入
if(flag1 < 0){
log.warn("請以逗號分隔!!!");
break;
}else{
String[] productInfoArr = productInfo.split(",");
//判斷逗號后是否輸入的是數字
try{
productInfo3 = Float.parseFloat(productInfoArr[1]);
}catch(Exception ed){
log.warn("逗號后請輸入數字,謝謝合作!!!");
break;
//System.out.println(ed.getMessage());
}
Product product = new Product(productInfoArr[0],productInfo3);
cart1.addProduct(product);
break;
}
}
catch (Exception ea) {
log.error(ea.getMessage());
break;
}
case 2:
int number1 = cart1.getNum();
if(number1 == 0){
log.warn("你沒有物品可以刪除!");
break;
}else{
log.warn("請輸入要刪除的產品信息:(以逗號分隔)");
try{
productInfo2 = br.readLine();
int flag1 = productInfo2.indexOf(",");
//判斷輸入是否以逗號分隔,否則重新輸入
if (flag1 < 0) {
log.warn("請以逗號分隔!!!");
break;
}
else {
String[] productInfoArr = productInfo2.split(",");
//判斷逗號后是否輸入的是數字
try {
productInfo3 = Float.parseFloat(productInfoArr[1]);
}
catch (Exception ed) {
log.warn("逗號后請輸入數字,謝謝合作!!!");
break;
//System.out.println(ed.getMessage());
}
}
}
catch (Exception eb) {
log.error(eb.getMessage());
break;
}
String[] productInfoArr2 = productInfo2.split(",");
Product product2 = new Product(productInfoArr2[0],
Float.parseFloat(productInfoArr2[1]));
cart1.removeProduct(product2);
break;
}
case 3:
while(true){
String userName = "";
int number2 = cart1.getNum();
if(number2 == 0){
log.warn("你沒有物品可以結算!");
break;
}else{
log.warn("請輸入你的用戶名及密碼:(以逗號分隔)");
try{
userName = br.readLine();
}catch(Exception ee){
log.error(ee.getMessage());
break;
}
System.out.println(userName.indexOf(",")+" "+(userName.length()-1));
if(userName.indexOf(",") < 0|| userName.indexOf(",")==(userName.length()-1)){
log.warn("你輸入的格式不正確,請以逗號分隔!");
continue;
}else{
String[] user = userName.split(",");
int flag2 = cart1.conn(user[0],user[1]);//flag2判斷是否連接成功標志
//System.out.println(user[0]+"+"+user[1]);
//System.out.println("flag2="+flag2);
if(flag2 ==3){
log.warn("你所買的產品的總價錢共計為:" + cart1.getTotalPrice()+"元");
break;
}
}
}
}
break;
case 4:
cart1.listProduct();
break;
case 5:
log.info("謝謝使用!");
return;
}
}else{
log.warn("你輸入的格式不正確,只能輸入1,2,3,4,5!!!");
}
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -