第一篇:java管理系統項目總結
java管理系統項目總結
篇一:java管理系統項目總結
期末將至,怕沒有時間再去寫這篇不成器的文章,所以早早寫完,早早留給時間去復習。隨著期末的臨近,java課程也結束了,距離之前寫過的“java-象棋設計心得”有差不多過了2個月了。我們的java課程主要做全班選出來的兩個項目,一個是象棋,一個就是人事管理系統。做完都要通過答辯才能評分,以此兩次來作為整個java學期的成績。快走題了,就在這里止步回頭!
這一次的主要通過 問題->理解->修改->添加 的步驟講解,跟java-象棋設計心得的講解思路基本上差不多。
----問題篇
一開始著手這個java-人事管理系統項目的時候就感覺到這比之前的java-象棋項目難了,知識明顯不夠,需要邊看書本源代碼邊查看API文檔和通過網上來解惑。就這樣,一周的時間就過去了,當然一周里還有很多課程需要跟上,所以并不是把一周的所有時間都花在項目設計上。
這里介紹一下我項目中遇到的一些“坎”: 1.布局管理器
GridBagLayout的使用和GridBagConstraints類的使用
類和DefaultMutableTreeNode類和其他類的使用
面板和JSplitePane面板和其他面板
4.設計的界面的還原
5.數據庫如何實現數據的保存
可見,問題多多,解決起來又會出現其它的問題,但我知道每一個項目必定存在多個類和面板的設計,設計的過程也是一個不斷自我矛盾和自我更正的過程,只有這樣設計出來的產品才符合我們的要求。其中首先要說問題的是界面的還原是比較耗費時間的,但這也是任何軟件設計的第一步,所以必須理解透!其次就是數據庫和SQL語言的學習,因為數據庫是新知識,還沒有可以通過課程來學習的,這就意味著只能通過自己學習新知識,這又是一個新問題的開始,但我知道必須要克服。最后就是動作的實現問題,例如:點擊了這個節點,相應的功能是如何實現,是通過什么來實現的,這些問題也必須理解,因為是答辯問的最多問題。好了,問題篇就到這里了。
----理解篇
理解的基本條件就是問題的產生,上篇說的就是問題篇,那么這里說的就是理解。或許這里有一些東西會跟java-象棋設計心得有些相同,所以會提醒一下就過了,理解是理解軟件制作的必要過程,重要性可想而知了,在java-象棋設計心得里,有些理解的方法這里就不在重復了。那么這里要講的東西不多,主要講的是功能的實現過程,書本中人事管理系統的功能有,如下:
1.基本信息管理--添加人員信息、修改人員信息、刪除人員信息、查詢人員信息、部門管理;
2.人員調動管理--人員調動、調動歷史查詢;
3.人員考核管理--人員考核、考核歷史查詢;
4.勞資管理--勞資分配管理、勞資歷史查詢
因為基本上以上的所有功能的實現基本相同,所以這里通過其中一個功能的實現來粗略理解其它功能的實現吧,說的不好請諒解!
那么就說“人員調動管理--人員調動”這個功能的實現,從點擊葉子節點人員調用后,調用了人員調用的實現類,在右面板顯示相應的人員調用面板,由圖可知面板里的放了“人員調動”的JLabel、數據顯示的表單Jtable、一些文本框TextField和Jabel,還有下拉菜單JComboBox,以及三個按鈕。主面板里使用默認的BorderLayout布局,可以看下圖來知道該功能布局的實現:圖片的大小和真實的有差別,只作為理解而用。
接下來說如何通過點擊面板上的調入新部門的按鈕來實現與數據庫的連接,當正確操作后,按調入新部門按鈕后,調用與數據庫連接的實現類的相應方法,來對數據庫存放數據的相應表進行修改和給存放歷史數據的表進行調動歷史添加。這樣就完成以一個調用人員功能的實現了,類似的功能也可以參照次步驟來理解。
除了理解好這些功能的實現外,我還應該要是自己來實現一個功能,作為真正理解好一個功能實現的動手機會,這個會在添加功能里詳解。好了,理解篇就到這里了!
----修改篇
修改、添加也是在理解的基礎上才能對代碼進行改進和添加,這里是修改篇,下一篇就是理解篇。可以說書本上的每一項目的代碼都存在不足和缺陷,可以運行但運行起來其中總是存在不少的缺陷和矛盾,所以就需要修改,那么在實際開發過程中,修改和添加就相當于軟件的后期維護了,這是一個永遠也完成不了的功能,要做到軟件的完美,是不可能的!只能不斷的修改,添加,再修改,再添加。。
在書本的人事管理系統代碼,只代表本人的觀點下,進行了一些修改,這里就不一一說明了。
----添加篇
因為人事管理系統的龐大,其功能也可以有相當多,之前就說過,功能的實現都是差不多的,而且考慮到作業提交和答辯的時間,所以只添加了一個功能 “加班信息管理--添加人員加班信息、人員加班信息查詢”,請看下圖:
總結:雖然java課程隨著人員管理系統的完成而結束了,但java的學習還會繼續,這是一個厲害的技能,不是說課程教完就結束了,老師只能帶領我們進門,但java提升是靠自己的努力的,有不少人說java作為一個謀生的技能很不錯,我想我會在邊學習java之余邊體會java的魅力。
篇二:java管理系統項目總結
這個學生管理系統相對來說比較簡單,主要就是復習下java怎么連接數據庫,然后你怎么來實現這個功能,我簡單的說下思路吧。
首先你要構思好這個界面,他包括增刪查改這些基本功能,然后你去分析這些功能都能怎么實現,對于查找,應該是比較簡單的,這里連接數據庫就不詳述了,導jar包,設置三個變量,然后傳固定的參數進去,查詢你應該單獨寫一個類,在這個類里面你要做的就是傳入sql語句,利用executeQuery返回的結果集存放在一個向量里面,然后返回給java界面里面JTabel的參數,同樣增加一條記錄,你可以自定義java界面,從鍵盤讀入數據,然后將數據返回給你自定義的add類里面,在這個類里,主要處理sql增加語句,所以語句將被使用,這里還是要注意下防止sql注入。修改操作和增加操作類似,這里因為主鍵的特殊性,所以你需要把他設為不可修改,當然你也可以選擇不。對于刪除操作,因為不需要特別的界面為他服務,所以你大可以在Main函數里面進行操作,除非你覺得有必要整理下長的嚇人的代碼,其實刪除操作也就是獲取你指定的主鍵,然后在sql里面執行操作。大概也就是這些了,有些細節地方要注意下,很多參數里面的下標要千萬小心,不然很痛苦的,連接sql文件后記得關閉,彈出界面自己要加些異常處理,每次操作完后,要記得及時更新界面。另外對于MVC模式,你可以在寫完后,想想,其實很多代碼都有其復用性,你可以分幾層來操作啊,業務層就專門提交具體操作,也就是contral啊,然后增刪查改界面可以全放在view里面,model就專門處理和數據庫的銜接,反正mvc模式你會覺得代碼非常清晰,后續你還可以增加分頁操作啊,分頁操作其實很簡單,上一次sql里面測試了下,對于百萬級的數據,分頁操作跑了三到五秒,或許我的本本真該換了。想說的也就是這么多了,另外鑒于昨天晚上發生的一些事情,后續不打算再更新任何東西了,也許這兩者沒任何關聯,于我而言,結局早已注定。
第二篇:JAVA酒店管理系統
JAVA酒店管理系統
摘要
該酒店客房管理系統是基于JAVA的Application模式,運用JAVA語言開發技術和Mysql數據庫原理開發的。在該系統中,操作人員可通過房態查看或客房查詢來進行住宿登記,也可通過追加押金使房客繼續入住,可方便有效的對客房信息及住宿信息進行統計或設置,宿費提醒及掛帳退房功能可使酒店損失降低至最低點,操作員管理功能可實時地對操作人員進行有效地管理從而使酒店在客房管理上分工明確。該系統的合理運用能使得酒店提高其客房管理效率并節約管理成本。
該系統遵循軟件工程中的開發規則。本文介紹了酒店客房管理系統的開發過程,詳盡論述了需求分析、系統分析、概要設計、詳細設計、以及測試與調試的整個開發過程,總結了開發過程中的經驗及本系統今后的改進方向。
關鍵詞
客房;JAVA;JDK;SQL
參考文獻
[1]夏昕著.深入淺出Hibernate北京:電子工業出版社,2005
[2] 強鋒科技著.Java開發利器:Hibernate開發及整合應用大全 北京:清華大學出版社 出版日期: 2006-2-1
[3] :鄒竹彪.JSP寶典北京:電子工業出版社, 2006
[4](美)Hessert著.STRUTS 2003北京:機械工業出版社,2006
[5] :朱敏 朱晴婷 李媛媛著.JSP Web應用教程北京:清華大學出版社,北京交通大學出版社, 2004
[6] Matt Raible 著.Spring Live北京:電子工業出版社, 2006
[7] Rod Johnson / Juergen Hoeller(英)著.Expert One-on-One J2EE Development without EJB北京:機械工業出版社原出版社:Wrox, 2003
[8] Bruce Tate / Justin Gehtland著.Spring北京:清華大學出版社, 2006
第三篇:java項目總結(本站推薦)
項目總結
這是一次比較完整的團隊合作項目,它要求團隊各成員對系統的主體設計搭成一定的共識,這包括數據庫設計,需求分析,以及其它一些細節,因此在編碼之前的準備工作一定要充分。
在設計之前,我們兩組對于數據庫的設計進行了激烈的討論,最后在一些關鍵的問題上統一了意見。接下來的工作便是需求分析,具體結構設計,并制訂小組項目詳細計劃,項目的進行將嚴格按照所制訂的計劃執行。然后小組成員對各自的數據庫進行了設計,并且以數據字典的形式進行了共享。
企業級人力資源系統分為十個子系統:機構編制管理、人員信息管理、人事檔案管理、考勤管理、薪資福利管理、社會保障管理、招聘管理、合同管理、查詢統計管理、系統管理。
我負責人員信息管理子系統,這方面需要處理的業務邏輯比較少,表單比較多,要把握好與其它子系統的關聯。員工基本信息表是與其它子系統關聯的橋梁,大部分表都涉及到與基本信息表的外鍵關聯。其中,職員編號(employeeId)是作為外鍵關聯的字段,我給它設置了自增長。有人認為在企業里,職員編號應該是有一定規律的數字,而不應該設置自增長。這樣的是想法很符合實際情況,后來我和兩個組長討論,認為自增長可以保證數據的唯一性,非自增長的主鍵在增加時可能遇到不可知的問題,并且其他組員的數據庫已經設計好,改起來就麻煩了。因此最終職員編號采用了自增長。
有了上面的共識,接下來的重要工作便是依次完成表的增刪改查、數據校驗。其中,分頁和批量刪除是我計劃最后完成的部分,并且一定要完成。
基本數據校驗按各數據格式進行,例如手機號、e-mail等。另一方面要對職員編號與姓名的一致性,職員編號的存進行驗證,這些通過DAO里面的方法實現,針對出錯,用JS給出友好的提示。
在做好基本功能的前提下,爭取做出特色。我嘗試寫了Hibernate分頁、批量刪除的代碼,最后都測試成功。同時加入了JS控件,對于一些有特殊格式要求的字段,防止用戶填寫錯誤(比如日期的填寫格式為yyyy-mm-dd),使系統更加人性化。經過討論,對員工基本信息主表及與其關聯的所有表,配置級聯刪除。當主表信息被刪除時,與之外鍵關聯的子表信息同時被刪除。
回顧這段歷程,遇到了一些瓶頸,例如批量刪除時如何有效的處理選中的id,要明白它得到的是一個String[],需要轉化成int[]就好辦了。關于分頁,我也是琢磨了好久。在網上看了不少實例,具體實現起來還是一頭霧水。就在項目驗收的前兩天晚上,我決定自己寫的試試。第一個方法是需要獲取表里面總記錄數count,按照套路執行hql,我這樣處理了結果:
count = list.size();結果出了問題。數據庫里有6條記錄,結果打印出count為1。在這里折騰了好久,后來打印list為[6],這下才明白list.size()得到的是list里元素的個數,這個元素是6,我需要獲取的是元素的是值(基礎知識薄弱)。明白這點就好辦了,最后我是這樣處理的
String a = list.get(0).toString();//獲取list第一個元素(對象),并轉換成String
count = Integer.parseInt(a);//將a轉換成int,得到count 這樣做分頁的第一步就完成了。第二天早上比較順利的完成了剩下的代碼并測試成功。
相比網上的分頁代碼,總的來說我寫的很容易看懂,至于它有什么問題目前還不知道。
通過這次項目經驗,我明白了只要想到了,就一定可以做到。不要畏懼,困難并不像想像中的那么可怕。一味的逃避將得不到真正的鍛煉。要時刻和隊友交流,分享成果。兩個人總比一個人知道的多。
第四篇:基于java小型超市管理系統
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.util.Arrays;import java.util.Scanner;
public class Mytest { static int sign=0;//goodname數組第一個空下標號
static int sign1=0;//cname數組第一個空下標號
static String[] cpass=new String[20];//存放售貨員名稱
static String[] cname=new String[20];//存放售貨員登入密碼
static String[] goodname=new String[20];//存放商品名稱
static double[] goodprice=new double[20];//存放商品價格
static int[] goodout=new int[20];//存放商品銷售量
static int[] goodnum=new int[20];//存放商品數量
public static void main(String[] args)throws Exception { cname[0]=“ZhouTian”;//初始的售貨員名稱
cpass[0]=“723”;//初始的售貨員密碼 createArrays();readArrays(“goodname”);//將文件中的內容讀入到相應的數組里
readArrays(“goodprice”);readArrays(“goodnum”);readArrays(“cname”);readArrays(“cpass”);readArrays(“goodout”);menu();//登入之后加載的主菜單
} /** * 加載登入菜單
*/ private static void menu(){
Scanner scan = new Scanner(System.in);
System.out.println(“ttt歡迎使用商超購物管理系統 n”);
System.out.println(“tttt1.登錄系統n”);
System.out.println(“tttt2.退出 ”);
System.out.println(“*************************************************”);
System.out.println(“請選擇,輸入數字: ”);
int a = scan.nextInt();
switch(a){
case 0:
System.out.println(“退出!”);//按0不登入
case 1:
System.out.println(“請輸入用戶名:”);// 查找售貨員姓名是否存在,與所對應的密碼是否匹配
String name = scan.next();
System.out.println(“請輸入密碼:”);
String pass = scan.next();
int flage = 0;
int ff = 0;
for(int i = 0;i < cname.length;i++){
if(name.equals(cname[i])){
flage = 1;//售貨員的名稱匹配flage=1;
ff = i;
break;
}
}
if(flage == 1){//名稱匹配之后再匹配密碼
if(pass.equals(cpass[ff])){
loadmenu1();//密碼也匹配之后再允許登入
} else {
System.out.println(“密碼錯誤!”);
}
} else {
System.out.println(“該用戶名不具有權限”);
}
break;
case 2:
System.out.println(“謝謝您的使用!”);
break;
default:
break;
} }
/** * ,創建文件,將數組信息存入到各文件中, */ static void createArrays(){
BufferedWriter bw = null;
try {
File file1 = new File(“d:gname.txt”);
if(!file1.exists()){
bw
=
new
BufferedWriter(new FileWriter(“d:gname.txt”));
String content1 = strToString(goodname);//數組內容轉換成字符串
bw.write(content1);//寫入
bw.close();
}
File file2 = new File(“d:gprice.txt”);
if(!file2.exists()){
bw
=
new
BufferedWriter(new FileWriter(“d:gprice.txt”));
String content2 = doubleToString(goodprice);//數組內容轉換成字符串
bw.write(content2);//寫入
bw.close();
}
File file3 = new File(“d:gnum.txt”);
if(!file3.exists()){
bw
=
new
BufferedWriter(new FileWriter(“d:gnum.txt”));
String content3 = intToString(goodnum);//數組內容轉換成字符串
bw.write(content3);//寫入
bw.close();
}
File file4 = new File(“d:cname.txt”);
if(!file4.exists()){
bw
=
new
BufferedWriter(new FileWriter(“d:cname.txt”));
String content4 = strToString(cname);//數組內容轉換成字符串
bw.write(content4);//寫入
bw.close();
}
File file5 = new File(“d:cpass.txt”);
if(!file5.exists()){
bw
=
new
BufferedWriter(new FileWriter(“d:cpass.txt”));
String content5 = strToString(cpass);//數組內容轉換成字符串
bw.write(content5);//寫入
bw.close();
}
File file6 = new File(“d:gout.txt”);
if(!file6.exists()){
bw
=
new
BufferedWriter(new FileWriter(“d:gout.txt”));
String content5 = intToString(goodout);//數組內容轉換成字符串
bw.write(content5);//寫入
bw.close();
}
} catch(IOException e){
e.printStackTrace();
}
}
/** * 登入之后加載商超購物管理系統
*/ static void loadmenu1(){
System.out.println(“歡迎進入商超購物管理系統!”);
System.out.println(“tttt商超購物管理系統”);
System.out
.println(“********************************************************************************”);
System.out.println(“tttt1.商品維護”);
System.out.println(“tttt2.前臺收銀”);
System.out.println(“tttt3.商品管理”);
System.out.println(“tttt4.退出”);
System.out.println(“********************************************************************************”);
System.out.println(“請選擇,輸入數字或按0退出:”);
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
switch(a){
case 0:
System.out.println(“謝謝您的使用!”);
break;
case 1:
System.out.println(“執行顯示商品維護菜單”);
loadmenu2();
break;
case 2:
System.out.println(“執行前臺收銀”);
loadmenu6();
break;
case 3:
System.out.println(“執行商品管理”);
loadmenu7();
break;
default:
break;
} } /* * 在商超購物管理系統中按1鍵時 */ static void loadmenu2(){
System.out.println(“tttt商超購物管理系統 商品維護”);
System.out
.println(“********************************************************************************”);
System.out.println(“tttt1.添加商品t”);
System.out.println(“tttt2.更改商品t”);
System.out.println(“tttt3.刪除商品t”);
System.out.println(“tttt4.顯示所有商品t”);
System.out.println(“tttt5.查詢商品t”);
System.out
.println(“********************************************************************************”);
System.out.println(“請選擇,輸入數字或按0返回上一級菜單:”);
Scanner scan = new Scanner(System.in);
int b = scan.nextInt();
switch(b){
case 0:
loadmenu1();
break;
case 1:
addgoods();
break;
case 2:
System.out.println(“執行更改商品操作”);
loadmenu3();// 修改商品
break;
case 3:
System.out.println(“執行商品刪除操作”);
loadmenu4();// 商品刪除
break;
case 4:
System.out.println(“顯示所有商品”);
System.out.println(“商品名稱ttt” + “商品價格ttt” + “商品數量ttt”
+ “備注”);
showgoods();
break;
case 5:
System.out.println(“執行查詢商品操作”);
loadmenu5();
break;
default:
break;
} } /* * 在商超購物管理系統中按2鍵時
*/ static void loadmenu6(){
System.out.println(“tttt商超購物管理系統 前臺收銀”);
System.out
.println(“********************************************************************************”);
System.out.println(“tttt1.購物結算”);
Scanner scan = new Scanner(System.in);
int ch = scan.nextInt();
switch(ch){
case 0:
loadmenu1();
break;
case 1:
pay();
break;
default:
break;
}
} /* * 在商超購物管理系統中按3鍵時
*/ static void loadmenu7(){
Scanner scan = new Scanner(System.in);
System.out.println(“ttt商超購物管理系統 商品管理”);
System.out
.println(“********************************************************************************”);
System.out.println(“tttt1.庫存查詢”);
System.out.println(“tttt2.已出售商品”);
System.out.println(“tttt3.售貨員管理”);
System.out.println(“請選擇,輸入數字或按0返回上一級菜單:”);
int ch = scan.nextInt();
switch(ch){
case 0: loadmenu1();
break;
case 1:
System.out.println(“執行庫存查詢操作:”);
kusear();
break;
case 2:
System.out.println(“執行已出售商品查詢操作”);
besold();
break;
case 3:
System.out.println(“執行售貨員管理操作”);
salesman();
break;
default:
break;
}
} /* * 對售貨員信息的增添,修改 */ static void salesman()
{
Scanner scan = new Scanner(System.in);
System.out.println(“
1、添加售貨員”);
System.out.println(“
2、修改售貨員信息”);
System.out.println(“請選擇,輸入數字或按0返回上一級菜單:”);
int b = scan.nextInt();
switch(b){
case 0:
loadmenu7();//返回上一級
break;
case 1:
addsale();//選擇1鍵,添加售貨員
break;
case 2:
modifysale();//更改售貨員的信息
break;
default:
break;
} } /* 添加售貨員 * */ static void addsale(){
Scanner scan = new Scanner(System.in);
String f;
// sign1 = sign1 + 1;
do {
System.out.println(“添加售貨員姓名:”);
String addname = scan.next();
add(cname, addname, sign1);//將新信息添加到相應數組中
System.out.println(“添加售貨員登陸密碼:”);
String addpass = scan.next();
add(cpass, addpass, sign1);//將新信息添加到相應數組中
// writeArray();
sign1++;//新信息添加后數組下標加1
writeArray();
System.out.println(“是否繼續(y/n)”);
f = scan.next();
// writeArray();
} while(f.equals(“y”));
salesman();} /* * 更改售貨員的信息 */ static void modifysale(){
String f;
Scanner scan = new Scanner(System.in);
System.out.println(“輸入更改員工名稱:”);
String newname = scan.next();
int k = searmember(newname);//查詢需要改的售貨員的信息,并返回其在數組中的下標
if(k >= 0){//判斷售貨員是否存在
System.out.println(“員工姓名” + “ttt密碼”);
System.out.println(cname[k] + “ttt” + cpass[k]);
System.out.println(“選擇您要更改的內容:”);
System.out.println(“
1、更改員工姓名:”);
System.out.println(“
2、更改登錄密碼:”);
int kk = scan.nextInt();
switch(kk){
case 1:
System.out.println(“請輸入已更改員工姓名:”);
String newnname = scan.next();
cname[k] = newnname;
writeArray();
System.out.println(“是否繼續(y/n)”);
f = scan.next();
if(f.equals(“y”)){
modifysale();
} else {
salesman();
}
break;
case 2:
System.out.println(“請輸入已更改密碼:”);
String newpass = scan.next();
cpass[k] = newpass;
writeArray();
System.out.println(“是否繼續(y/n)”);
// System.out.println(“是否繼續(y/n)”);
f = scan.next();
if(f.equals(“y”)){
modifysale();
}
salesman();
break;
default:
break;
}
} } /* * 查詢ename姓名的售貨員在數組中的下標 */ static int searmember(String ename){
for(int i = 0;i < cname.length;i++){
if(cname[i].equals(ename)){
return i;
}
}
return-1;// 不存在時
} /* * 查詢已出售的商品信息 */ static void besold()
{
System.out.println(“商品名稱ttt” + “商品價格ttt” + “商品數量ttt” + “備注”);
for(int i = 0;i < goodout.length;i++){
if(goodout[i]!= 0){
System.out.println(goodname[i] + “ttt” + goodprice[i]
+ “ttt” + goodout[i]);
}
}
loadmenu7();} /* * 查詢庫存中售的商品信息
*/ static void kusear(){
Scanner scan = new Scanner(System.in);
String f;
do {
System.out.println(“輸入要查詢的商品名稱:”);
String sname = scan.next();
int t = ndimsear(sname);//按確切的商品名稱進行查詢,即非模糊查詢,找出商品名稱信息的下標
if(t >= 0){
System.out.println(“商品名稱ttt” + “商品價格ttt” + “商品數量ttt”
+ “備注”);
System.out.println(goodname[t] + “ttt” + goodprice[t]
+ “ttt” + goodnum[t] + “ttt”);//按下標輸出商品相應的信息
} else {
System.out.println(“沒有此商品”);
}
System.out.println(“是否繼續(y/n)”);
f = scan.next();
} while(f.equals(“y”));
loadmenu7();
} /* * 按確切的商品名稱進行查詢,即非模糊查詢,找出商品名稱信息的下標
*/ static int ndimsear(String s){
for(int i = 0;i < goodname.length;i++){
if(goodname[i].equals(s)){
return i;
}
}
return-1;//沒查詢到時
}
/* * 商品結算
*/ static void pay(){
Scanner scan = new Scanner(System.in);
double sum = 0;
String f;
do {
dimsearch1();//按關鍵字進行模糊查詢,查找可能需要的商品
System.out.println(“請選擇商品:”);
String bnam = scan.next();//按查詢到的相關商品中選擇要購買的商品
System.out.println(“請輸入購買數量:”);
int bnum = scan.nextInt();
int fl = seargood(bnam);
System.out.println(bnam + “ttt” + goodprice[fl] + “ttt”
+ “購買數量” + bnum + “ttt” + bnum * goodprice[fl]);
goodnum[fl] = goodnum[fl]sum));
writeArray();//將對數組的更改寫入到文件中
loadmenu1();//結束購買返回
} /* * 查找商品返回下標 */ static int seargood(String bbnam){
for(int i = 0;i <= goodname.length;i++){
if(goodname[i].equals(bbnam)){
return i;
}
}
return-1;}
/* * 對商品進行各種查找
*/
static void loadmenu5(){
Scanner scan = new Scanner(System.in);
System.out.println(“
1、按商品數量升序查詢”);
System.out.println(“
2、按商品價格升序查詢”);
System.out.println(“
3、輸入關鍵字查詢商品”);
System.out.println(“請選擇,輸入數字或按0返回上一級菜單:”);
int choice = scan.nextInt();
switch(choice){
case 0:
loadmenu2();//返回上一級
break;
case 1:
numshenxu();//按商品數量升序進行查找
break;
case 2:
priceshenxu();//按商品價格升序進行查找
break;
case 3:
dimsearch();//按商品的關鍵字進行查找
break;
default:
break;
}
}
static void dimsearch1(){
int[] k;
Scanner scan = new Scanner(System.in);
System.out.println(“輸入商品關鍵字:”);
String sear = scan.next();
k = Arrays.copyOf(index(sear), index(sear).length);
System.out.println(“商品名稱ttt” + “商品價格ttt” + “商品數量ttt” + “備注”);
if(k!= null){
for(int i = 0;i < k.length;i++){
System.out.println(goodname[k[i]] + “ttt” goodprice[k[i]]
+ “ttt” + goodnum[k[i]] + “ttt”);
}
}
} /* * 按商品的關鍵字進行查找
*/ static void dimsearch()
+ {
String f;
do {
int[] k;
Scanner scan = new Scanner(System.in);
System.out.println(“輸入商品關鍵字:”);
String sear = scan.next();
k = Arrays.copyOf(index(sear), index(sear).length);
System.out.println(“商品名稱ttt” + “商品價格ttt” + “商品數量ttt”
+ “備注”);
if(k!= null){
for(int i = 0;i < k.length;i++){
System.out.println(goodname[k[i]] + “ttt”
+ goodnum[k[i]]
+ “ttt”);
}
goodprice[k[i]]
+
“ttt”
+
}
System.out.println(“是否繼續(y/n)”);
f = scan.next();} while(f.equals(“y”));loadmenu2();} static int[] index(String ss){ int countt = 0;int counttt = 0;for(int i = 0;i < goodname.length;i++){
if(goodname[i].indexOf(ss)>= 0){
countt++;
} } int[] location = new int[countt];for(int i = 0;i < goodname.length;i++){
if(goodname[i].indexOf(ss)>= 0){
location[counttt] = i;
counttt++;
}
}
return location;} /* * 按商品數量升序進行查找
*/ static void numshenxu(){
int[] newnum = Arrays.copyOf(goodnum, goodnum.length);
double[]
newprice
=
Arrays.copyOf(goodprice, goodprice.length);
String[] goodname.length);
for(int i = 0;i < newnum.lengthi1;i++){
for(int j = 0;j < newprice.length1;j++){
if(newprice[j] < newprice[j + 1]){
int temp = newnum[j];
newnum[j] = newnum[j + 1];
newnum[j + 1] = temp;
double temp1 = newprice[j];
newprice[j] = newprice[j + 1];
newprice[j + 1] = temp1;
String temp2 = newname[j];
newname[j] = newname[j + 1];
newname[j + 1] = temp2;//相應的下標在不同的數
newname
=
Arrays.copyOf(goodname, 組里進行挑換,商品的信息才能保持一致
}
}
}
System.out.println(“商品名稱ttt” + “商品價格ttt” + “商品數量ttt” + “備注”);
for(int k = 0;k < newnum.length;k++){
if(newprice[k]!= 0){
System.out.println(newname[k] + “ttt” + newprice[k]
+ “ttt” + newnum[k] + “ttt”);
}
}
loadmenu5();} /* *更改商品信息的操作
*/ static void loadmenu3(){
Scanner scan = new Scanner(System.in);
System.out.println(“輸入更改商品名稱:”);
String nam = scan.next();
int b = showflage(nam);
print(b);
System.out.println(“選擇您要更改的內容:”);
System.out.println(“
1、更改商品名稱::”);
System.out.println(“
2、更改商品價格:”);
System.out.println(“
3、更改商品數量:”);
int ch = scan.nextInt();
switch(ch){
case 0:
break;
case 1:
int counnt = 0;
String f = “y”;
while(f.equals(“y”)){
if(counnt!= 0){
// Scanner scan = new Scanner(System.in);
System.out.println(“輸入更改商品名稱:”);
nam = scan.next();
b = showflage(nam);//查找需要更改商品的下標
print(b);//輸出這個商品的各種信息
}
System.out.println(“請輸入已更改商品名稱”);
String cname = scan.next();
goodname[b] = cname;//更改名稱
System.out.println(“是否繼續(y/n)”);
f = scan.next();
counnt++;
writeArray();
}
loadmenu2();
break;
case 2:
counnt = 0;
f = “y”;
while(f.equals(“y”)){
if(counnt!= 0){
// Scanner scan = new Scanner(System.in);
System.out.println(“輸入更改商品名稱”);
nam = scan.next();
b = showflage(nam);
print(b);
}
System.out.println(“請輸入已更改商品價格”);
double cprice = scan.nextDouble();
goodprice[b] = cprice;//新價格寫入數組
System.out.println(“是否繼續(y/n)”);
f = scan.next();
counnt++;
writeArray();
}
loadmenu2();
break;
case 3:
counnt = 0;
f = “y”;
while(f.equals(“y”)){
if(counnt!= 0){
// Scanner scan = new Scanner(System.in);
System.out.println(“輸入更改商品名稱”);
nam = scan.next();
b = showflage(nam);
print(b);
}
System.out.println(“請輸入已更改商品數量”);
int cnum = scan.nextInt();
goodnum[b] = cnum;
counnt++;
writeArray();
System.out.println(“是否繼續(y/n)”);
f = scan.next();
}
loadmenu2();
break;
default:
break;
}
} /* * 查詢nama這個商品在goodname中的下標
*/ static int showflage(String nama){
int flag = 0;
for(int i = 0;i < goodname.length;i++){
if(goodname[i].equals(nama)){
flag = i;
break;
}
}
return flag;}
static void print(int b){
System.out.println(“商品名稱 tt” + “商品價格 tt” + “商品數量 tt” + “備注”);
System.out.println(goodname[b] + “tt” + goodprice[b] + “tt”
+ goodnum[b] + “ tt”);
} /* * 刪除商品菜單
*/ static void loadmenu4(){
String f;
int d;
do {
Scanner scan = new Scanner(System.in);
System.out.println(“請輸入要刪除的商品名稱:
String dname = scan.next();
d = showflage(dname);
delete(d);
System.out.println(”是否繼續(y/n)“);
f = scan.next();
writeArray();//刪除之后重新寫入文件
} while(f.equals(”y“));
loadmenu2();}
”);/* * 刪除商品 */ static void delete(int dd){
for(int i = dd;i < goodname.length1] = null;
goodprice[goodprice.length1] = 0;
} /* * 查詢所有商品
*/ static void showgoods(){
int i = 0;
while(goodprice[i]!= 0){
System.out.print(goodname[i] +
“ttt” goodprice[i] + “ttt”
+
+ goodnum[i] + “ttt”);
if(goodnum[i] < 10){
System.out.println(“ttt*該商品已不足10件!”);
}
System.out.println();
i++;
}
loadmenu2();
} /* * 商品添加操作 */ static void addgoods(){
System.out.println(“執行添加商品操作:t”);
String a;
do {
Scanner scan = new Scanner(System.in);
System.out.println(“輸入商品名稱:”);
String na = scan.next();
add(goodname, na, sign);
System.out.println(“輸入添加商品價格:”);
double pr = scan.nextDouble();
add(goodprice, pr, sign);
System.out.println(“輸入添加商品數量:”);
int c = scan.nextInt();
add(goodnum, c, sign);
sign++;
System.out.println(“是否繼續(y/n)”);
a = scan.next();
writeArray();
} while(a.equals(“y”));
loadmenu2();
} /* * 將數組信息寫入到相應的文件里,啟動程序時就要調用這個函數 */ static void writeArray(){
BufferedWriter bw = null;
try {
bw
=
new
BufferedWriter(new FileWriter(“d:gname.txt”));
String content1 = strToString(goodname);
bw.write(content1);
bw.close();
bw
=
new
BufferedWriter(new FileWriter(“d:gprice.txt”));
String content2 = doubleToString(goodprice);
bw.write(content2);
bw.close();
bw
=
new
BufferedWriter(new FileWriter(“d:gnum.txt”));
String content3 = intToString(goodnum);
bw.write(content3);
bw.close();
bw = new BufferedWriter(new FileWriter(“d:cname.txt”));
String content4 = strToString(cname);
bw.write(content4);
bw.close();
bw
=
new
BufferedWriter(new FileWriter(“d:cpass.txt”));
String content5 = strToString(cpass);
bw.write(content5);
bw.close();
bw
=
new
BufferedWriter(new FileWriter(“d:gout.txt”));
String content6 = intToString(goodout);
bw.write(content6);
bw.close();
} catch(IOException e){
e.printStackTrace();
} } /* * 添加商品名稱 */ static void add(String[] aa, String n, int b){
if(b == aa.length){
aa =(String[])Arrays.copyOf(aa, aa.length * 2);
}
aa[b] = n;} /* * 添加商品價格
*/ static void add(double[] aa, double pr, int b){
if(b == aa.length){
aa =(double[])Arrays.copyOf(aa, aa.length * 2);
}
aa[b] = pr;} /* * 添加商品數量
*/ static void add(int[] aa, int cc, int b){
if(b == aa.length){
aa =(int[])Arrays.copyOf(aa, aa.length * 2);
}
aa[b] = cc;
}
/** * 從文件中讀取信息到相應的數組里
*/ static void readArrays(String name)throws Exception {
BufferedReader br = null;
try {
if(“goodname”.equals(name)){
br
=
new
BufferedReader(new FileReader(“d:gname.txt”));
String content1 = br.readLine();
String[] arr = strToString(content1);
goodname arr.length);
for(int i = 0;i < goodname.length;i++){
if(!goodname[i].equals(“null”)){
sign++;
=
(String[])
Arrays.copyOf(arr,}
}
} else if(“goodprice”.equals(name)){
br
=
new
BufferedReader(new FileReader(“d:gprice.txt”));
String content2 = br.readLine();
double[] arr = doubleToString(content2);
goodprice arr.length);
} else if(“goodnum”.equals(name)){
br
=
new
BufferedReader(new
=
(double[])
Arrays.copyOf(arr, FileReader(“d:gnum.txt”));
String content3 = br.readLine();
int[] arr = intToString(content3);
goodnum =(int[])Arrays.copyOf(arr, arr.length);
} else if(“cname”.equals(name)){
br
=
new
BufferedReader(new FileReader(“d:cname.txt”));
String content4 = br.readLine();
String[] arr = strToString(content4);
cname arr.length);
=(String[])Arrays.copyOf(arr,for(int i = 0;i < cname.length;i++){
if(!cname[i].equals(“null”)){
sign1++;
}
}
} else if(“cpass”.equals(name)){
br
=
new
BufferedReader(new FileReader(“d:cpass.txt”));
String content5 = br.readLine();
String[] arr = strToString(content5);
cpass arr.length);
} else {
br
=
new
BufferedReader(new
=
(String[])
Arrays.copyOf(arr, FileReader(“d:gout.txt”));
String content6 = br.readLine();
int[] arr = intToString(content6);
goodout =(int[])Arrays.copyOf(arr, arr.length);
}
} catch(FileNotFoundException e){
e.printStackTrace();
} catch(IOException e){
e.printStackTrace();
}
} /* * 將字符串轉換成字符串數組 */ static String strToString(String[] arry){
// String arrys=“";
// for(int i=0;i // { // arrys=arry+arry[i]+”,“; // } // //arrys=arrys+arry[arry.length-1]; // System.out.println(arrys); // return arrys; StringBuilder sb = new StringBuilder(); for(int i = 0;i < arry.length;i++){ sb.append(arry[i]).append(”,“); } sb.deleteCharAt(sb.length()-1); // System.out.println(sb.toString()); return sb.toString();} /* * 將字符串轉換成字符串數組 */ static String[] strToString(String ar){ String[] arry = ar.split(”,“);return arry;} /* * 將int型數組轉換成字符串 */ static String intToString(int[] arrr){ String ss = ”“; ss = Arrays.toString(arrr); String sss = ss.replace(”[“,”“).replace(”]“, ”“).replace(” “, ”"); Java 源代碼 public class loaduser { public String user;public String password;boolean b1;loaduser(String s1,String s2){ user=s1; password=s2;} void load(){ System.out.println(“ 書店管理銷售系統”); System.out.println(“**************************************”);System.out.println(“ 1、登錄系統”);System.out.println(“ 2、退出系統”); System.out.println(“**************************************”);System.out.println(“請選擇:”); int m;Scanner s=new Scanner(System.in);m=s.nextInt(); if(m==1){ for(int i=0;i<3;i++){ System.out.println(“請輸入賬戶名和密碼”); String s3,s4; Scanner ss=new Scanner(System.in); s3=s.next(); s4=s.next(); if(user.equals(s3)&&password.equals(s4))b1=true; else b1=false; if(i==0&&b1==false)System.out.println(“用戶名或密碼輸入錯誤一次,還有兩次機會!”); if(i==1&&b1==false)System.out.println(“用戶名或密碼輸入錯誤兩次,還有一次機會!”); if(i==2&&b1==false){System.out.println(“三次輸入錯誤,退出系統!”);System.exit(0);} if(b1==true){ System.out.println(“登錄成功!”); break;} } } if(m==2)System.exit(0);} package manger;import java.util.ArrayList;import java.util.Scanner;import manger.vip;import System.menu;public class vipmanger { static ArrayList vipgroup.add(new vip(“001”,“王芳”,100)); vipgroup.add(new vip(“002”,“李娜”,60)); vipgroup.add(new vip(“003”,“楊麗”,50)); vipgroup.add(new vip(“004”,“孫潔”,150)); vipgroup.add(new vip(“005”,“肖青”,300));} static void addd(){ System.out.println(“請一次輸入編號,姓名,積分”); String S1,S2; int A; Scanner s=new Scanner(System.in); S1=s.next(); S2=s.next(); A=s.nextInt(); vip v1=new vip(S1,S2,A);vipgroup.add(v1);} static void delete(){ System.out.println(“請輸入要求刪除的會員編號:”);String s;Scanner me=new Scanner(System.in);s=me.next(); boolean b1=true; for(int i=0;i if(s.equals(vipgroup.get(i).ID)){vipgroup.remove(i);b1=false;} if(b1)System.out.println(“查無此會員!”);} static void correct(){ System.out.println(“請輸入要修改信息的會員編號:”);String sss;Scanner s=new Scanner(System.in);sss=s.next(); boolean b1=true; for(int i=0;i if(sss.equals(vipgroup.get(i).ID)){ b1=false; System.out.println(“請輸入新的姓名和積分:”); String ss1;Scanner s7=new Scanner(System.in);ss1=s7.next();vipgroup.get(i).name=ss1;int b; Scanner s8=new Scanner(System.in); b=s8.nextInt(); vipgroup.get(i).score=b;} if(b1==true)System.out.println(“查無此會員!”);} static void select(){ System.out.println(“請輸入要查詢的會員編號:”);String s;Scanner me=new Scanner(System.in);s=me.next(); boolean b1=true; for(int i=0;i if (s.equals(vipgroup.get(i).ID)){System.out.println(vipgroup.get(i).ID+“ ”+vipgroup.get(i).name+“ ”+vipgroup.get(i).score);b1=false;} if(b1==true)System.out.println(“查無此會員!”);} static void show(){ for(int i=0;i System.out.println(vipgroup.get(i).ID+“ ”+vipgroup.get(i).name+“ ”+vipgroup.get(i).score);} public static void exchange(String s1,int a,int b){ boolean b1=true; for(int i=0;i if(s1.equals(vipgroup.get(i).ID)) {if(vipgroup.get(i).score<(a*b))System.out.println(“積分不足,不能兌換!”); else vipgroup.get(i).score-=a*b; b1=false; } if(b1==true)System.out.println(“查無此會員,不能兌換!”);} public static void shop(String s1,int a,int b){ boolean b1=true; for(int i=0;i if(b1==true)System.out.println(“查無此會員,不能購買!”);} public static boolean start(){ menu m=new menu();m.vip(); int x;Scanner me= new Scanner(System.in);x=me.nextInt(); switch(x){ case 1:show();break; case 2:delete();break; case 3:addd();break; case 4:correct();break; case 5:select();break; case 6:return false;} return true;} } public class book { public String number; public String name; public int price; public int jf;book(String s1,String s2,int a,int b){ number=s1; name=s2; price=a; jf=b;} } package manger;import java.util.ArrayList;import java.util.Scanner;import System.menu;public class bookmanger { static ArrayList for(i=0;i return a;} public static String name(String s1){ String a = “無此書”;for(int i=0;i return a;} public static boolean start(){ menu m=new menu();m.bookmanger();int x;Scanner me= new Scanner(System.in);x=me.nextInt();switch(x){ case 1:show();break;case 2:delete();break;case 3:addd();break;case 4:return false;} return true;} } public class gift { public String number;public String caption;public int costjf;gift(String s1,String s2,int a){ number=s1;caption=s2;costjf=a;} } package manger;import java.util.ArrayList;import java.util.Scanner;import manger.vipmanger;import manger.vip;import System.menu;import manger.gift;public class giftmanger { static ArrayList giftgroup.add(new gift(“001”,“鼠標墊”,100)); giftgroup.add(new gift(“002”,“書夾子”,50)); giftgroup.add(new gift(“003”,“中性筆”,30));} static void show(){ for(int i=0;i System.out.println(“請輸入要刪除的禮品編號:”); String s; Scanner ss=new Scanner(System.in); s=ss.next(); boolean b1=true; for(int i=0;i if(s.equals(giftgroup.get(i).number)) {giftgroup.remove(i); b1=false; } if(b1)System.out.println(“查無此禮品!”);} static void addd(){ System.out.println(“請輸入要添加的禮品編號,名稱,所需積分:”); String s1,s2; int a; Scanner me=new Scanner(System.in); s1=me.next(); s2=me.next(); a=me.nextInt(); gift g1=new gift(s1,s2,a); giftgroup.add(g1);} static void exchange(){ String s1,s2,c=“無此禮品”; int a,b=0; giftmanger.show(); Scanner me=new Scanner(System.in); System.out.println(“請輸入您的會員編號:”); s1=me.next(); System.out.println(“請輸入您要兌換的禮品編號:”); s2=me.next(); System.out.println(“請輸入您要兌換的禮品數量:”); a=me.nextInt(); boolean b1=true; for(int i=0;i {b=giftgroup.get(i).costjf; c=giftgroup.get(i).caption; b1=false; } if(b1==true)System.out.println(“查無此禮品!”); else vipmanger.exchange(s1, a, b); System.out.println(“兌換結果:”); System.out.println(“禮品名稱”+“ ”+“禮品積分”+“ ”+“禮品數量”+“ ”+“消耗積分”); System.out.println(c+“ ”+b+“ ”+a+“ ”+(a*b));} public static boolean start(){ menu m=new menu(); m.gift(); int x; Scanner me= new Scanner(System.in); x=me.nextInt(); switch(x){ case 1:show();break; case 2:delete();break; case 3:addd();break; case 4:exchange();break; case 5:return false; } return true;} } public class shoping { static void shop(){ bookmanger.show();String s1,s2,s3; int a,b=0;Scanner me=new Scanner(System.in);System.out.println(“請輸入您的會員編號:”);s1=me.next();System.out.println(“請輸入書籍編號:”);s2=me.next();System.out.println(“請輸入購買數量:”);a=me.nextInt();b=bookmanger.price(s2);s3=bookmanger.name(s2);System.out.println(“書名”+“ ”+“單價”+“ ”+“數量”+“ ”+“總價”);System.out.println(s3+“ ”+b+“ ”+a+“ ”+(a*b));vipmanger.shop(s1, a, b);} public static boolean start(){ menu m=new menu(); m.shopping(); int x; Scanner me= new Scanner(System.in); x=me.nextInt(); switch(x){ case 1:shop();break; case 2:return false; } return true;} } public class menu { void mainmenu(){ System.out.println(“ 書店管理系統”); 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(“****************************”); } public void vip(){ 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(“****************************”); } public void bookmanger(){ 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(“****************************”); } public void shopping(){ System.out.println(“書店管理系統>購物結算:”); System.out.println(“****************************”); System.out.println(“ 1、購物”); System.out.println(“ 2、返回上層菜單”); System.out.println(“****************************”); } public void gift(){ 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(“****************************”); } public static void main(String[] args){ loaduser u1=new loaduser(“manger”,“416426”); u1.load();menu m1=new menu(); vipmanger vip=new vipmanger();bookmanger book=new bookmanger();giftmanger gi=new giftmanger(); while(true){ m1.mainmenu(); int x; Scanner me=new Scanner(System.in); x=me.nextInt(); switch(x){ case 1:while(vipmanger.start());break; case 2:while(bookmanger.start());break; case 3:while(shoping.start());break; case 4:while(giftmanger.start());break; case 5:u1.load(); } } } }第五篇:java書店管理系統源代碼