知識+看到
原PO要求:
http://tw.knowledge.yahoo.com/question/question?qid=1011072703555
要幫書店設計程式,要能
有main menu
顯示全部的書
顯示缺貨的書
加新的書
update書的量
告訴使用者輸入的資料有誤
顯示最貴的書
顯示最便宜的書
尋找一本書
移除一本書
=============
我加了 可以供更改書本的價錢
預設我加了3本書進去test
書名:小叮噹 剩餘數量:500(本) 單價:100.8(元)
書名:火影忍者 剩餘數量:300(本) 單價:200.8(元)
書名:海賊王 剩餘數量:0(本) 單價:200.8(元)
不要的話自己從程式碼內刪掉
如果要更完整 例如說:依照輸入價錢 取得書籍 或是File TXT SQL等等的
可自行運用
================
========================================storeMenu(主介面)
import java.util.Scanner;
public class storeMenu extends storeImplementation{
public static void main(String[] args) {
int chooseitem;//主選單所選
bookdata.add(new bookData("小叮噹",100.8,500));
bookdata.add(new bookData("火影忍者",200.8,300));
bookdata.add(new bookData("海賊王",200.8,0));
while(1<2){
System.out.println("=============");
System.out.println("1.顯示全部書籍資料\n"+"2.顯示缺貨書籍資料\n"+"3.加入新的書籍\n"+"4.更新書籍的量\n"+"5.顯示最貴的書\n"+
"6.顯示最便宜的書\n"+"7.尋找書籍\n"+"8.移除書籍\n"+"9.更改價錢\n"+"10.離開");
System.out.println("=============");
Scanner scan =new Scanner(System.in);
chooseitem=scan.nextInt();
try{
switch(chooseitem){
case 1://顯示全部書籍資料
printBookData();
break;
case 2://顯示缺貨的書籍
outOfStock();
break;
case 3://加入新的書籍
addBook();
break;
case 4://更新書籍的量
updataAmount();
break;
case 5://找最貴的書
MostexpensiveBook();
break;
case 6://找最便宜的書
CheapestBook();
break;
case 7://尋找書籍
searchBook();
break;
case 8://移除書籍
deleteBookData();
break;
case 9://更改價錢
updataMoney();
break;
case 10://離開
break;
default :
System.out.println("~~請輸入1到10~~");
break;
}
if(chooseitem==10){
break;
}
}catch(Exception e){
System.out.println("有無法辨識的錯誤");
System.out.println(e);
}
}//while
}
}
========================================bookData(書籍資料)public class bookData {
protected String Name;//名稱
protected double Money;//價錢
protected int Amount;//數量
bookData(){
}
bookData(String name,double money,int amount){
Name=name;
Money=money;
Amount=amount;
}
protected void setName(String name){
Name=name;
}
protected void setAmount(int amount){
Amount=amount;
}
protected void setMoney(double money){
Money=money;
}
}
========================================storeImplementation(主介面實作)import java.util.ArrayList;
import java.util.Scanner;
public class storeImplementation extends bookData{
protected static ArrayList<bookData> bookdata =new ArrayList<bookData>();
protected static void printBookData(){//顯示所有書籍資料
for(int i=0;i<bookdata.size();i++){
System.out.println("書名:"+bookdata.get(i).Name+" 剩餘數量:"+bookdata.get(i).Amount+"(本) 單價:"+bookdata.get(i).Money+"(元)");
}
}
protected static void outOfStock(){//顯示缺貨書籍
for(int i=0;i<bookdata.size();i++){
if(bookdata.get(i).Amount==0){
System.out.println("書名:"+bookdata.get(i).Name+" 單價:"+bookdata.get(i).Money+"(元) 庫存為:0本");
}
}
}
protected static void addBook(){//加入書籍
Scanner scan =new Scanner(System.in);
String Name;//名稱
double Money;//價錢
int Amount;//數量
try{
System.out.println("請輸入要加入的書籍名稱:");
Name=scan.next();
System.out.println("請輸入價錢(元):");
Money=scan.nextDouble();
System.out.println("請輸入數量(本):");
Amount=scan.nextInt();
bookdata.add(new bookData(Name,Money,Amount));
System.out.println("資料加入成功");
}catch(Exception e){
System.out.println("輸入錯誤 請檢查有無輸入錯誤");
}
}
protected static void updataAmount(){//更新書籍的量
Scanner scan=new Scanner(System.in);
String Name;//名稱
int Amount;//數量
int index=-1;
try{
System.out.println("請輸入要更新的書籍名稱:");
Name=scan.next();
for(int i=0;i<bookdata.size();i++){
if(bookdata.get(i).Name.equals(Name)){
index=i;
break;
}
}
if(index==-1){//找不到書籍名稱
System.out.println("找不到此書籍名稱");
}else{
System.out.println("書名:"+bookdata.get(index).Name+" 現有數量:"+bookdata.get(index).Amount+"(本)");
System.out.println("請輸入新的數量(本):");
Amount=scan.nextInt();
bookdata.get(index).setAmount(Amount);
System.out.println("資料更新成功");
}
}catch(Exception e){
System.out.println("輸入錯誤 請檢查有無輸入錯誤");
}
}
protected static void MostexpensiveBook(){//找最貴的書
int mostIndex=0;//最貴的書所在的索引
double mostTemp=0;
for(int i=0;i<bookdata.size();i++){
if(bookdata.get(i).Money>mostTemp){
mostTemp=bookdata.get(i).Money;
mostIndex=i;
}
}
System.out.println("目前最貴的書為:"+bookdata.get(mostIndex).Name+" 價錢為:"+bookdata.get(mostIndex).Money+
"(元) 庫存為:"+bookdata.get(mostIndex).Amount+"(本)");
}
protected static void CheapestBook(){//找最便宜的書
int mostIndex=0;//最便宜的書所在的索引
double mostTemp=bookdata.get(0).Money;//以第一本書暫時當作最便宜價錢
for(int i=0;i<bookdata.size();i++){
if(bookdata.get(i).Money<mostTemp){
mostTemp=bookdata.get(i).Money;
mostIndex=i;
}
}
System.out.println("目前最便宜的書為:"+bookdata.get(mostIndex).Name+" 價錢為:"+bookdata.get(mostIndex).Money+
"(元) 庫存為:"+bookdata.get(mostIndex).Amount+"(本)");
}
protected static void searchBook(){//尋找書籍
Scanner scan=new Scanner(System.in);
String name;//要尋找的書籍名稱
int index=-1;//書的索引
System.out.println("請輸入書籍名稱:");
name=scan.next();
for(int i=0;i<bookdata.size();i++){
if(bookdata.get(i).Name.equals(name)){
index=i;
}
}
if(index==-1){
System.out.println("找不到此書籍");
}else{
System.out.println("書名:"+bookdata.get(index).Name+" 價錢為:"+bookdata.get(index).Money+
"(元) 庫存為:"+bookdata.get(index).Amount+"(本)");
}
}
protected static void deleteBookData(){//刪除書籍資料
Scanner scan=new Scanner(System.in);
String name;//要尋找的書籍名稱
int index=-1;//書的索引
System.out.println("請輸入要刪除的書籍名稱:");
name=scan.next();
for(int i=0;i<bookdata.size();i++){
if(bookdata.get(i).Name.equals(name)){
index=i;
}
}
if(index==-1){
System.out.println("找不到此書籍");
}else{
bookdata.remove(index);
System.out.println("資料刪除成功");
}
}
protected static void updataMoney(){//更新書籍的價錢
Scanner scan=new Scanner(System.in);
String Name;//名稱
double Money;//價錢
int index=-1;
try{
System.out.println("請輸入要更新的書籍名稱:");
Name=scan.next();
for(int i=0;i<bookdata.size();i++){
if(bookdata.get(i).Name.equals(Name)){
index=i;
break;
}
}
if(index==-1){//找不到書籍名稱
System.out.println("找不到此書籍名稱");
}else{
System.out.println("書名:"+bookdata.get(index).Name+" 價錢(元):"+bookdata.get(index).Money);
System.out.println("請輸入更新後的價錢(元):");
Money=scan.nextDouble();
bookdata.get(index).setMoney(Money);
System.out.println("資料更新成功");
}
}catch(Exception e){
System.out.println("輸入錯誤 請檢查有無輸入錯誤");
}
}
}