




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、湖南科技學院課程設計報告課程名稱:面向對象程序設計課程設計課程設計題目:圖書信息管理系統系:數學與計算科學系專 業:信息與計算科學年級、班:XXX姓 名:XXX學 號:XXX指導教師:XXX職 稱:XXX2011年5月20日自我評價我給自己的評分為:72分,主要原因有以下幾點:1、 我仔細看了老師給的程序,并且認為很完善,所以并沒有多加改動,而是整理了它的格式與其對象。雖然加入圖形界面可能更有實用性,但由于知識的淺薄我并沒有實現此功能,這也是減分點。2、 在原有程序基礎上我添加了修改函數和程序信息函數,其中我讓修改函數不斷完善。通過輸入圖書編號能修改圖書的任何信息,包括它的圖書編號。但它不能同
2、時修改多本書的多個信息,這是它的缺陷。通過多次進入修改函數更能使操作清晰化,所以我并沒有再改動。至于另一個程序信息函數僅僅是為了實現它的可用性,這樣使用者可以知道它的出處便于一起修改,當然也有點多此一舉。3、 這個課程設計報告是我自己一個一個字打出來的,我主要也是為了自己的組織編寫能力,畢竟以后這樣的文章可能要接觸很多,必須得學會。其中字的排版、大小、編號、頁碼等,每個細節都是應該注意的。4、 我覺得作業的作用就是使我們掌握多少,通過自己慢慢調試,慢慢完善,獲得的動手能力是平時上課得不到的。由于從來沒寫過自我評分,也不知道自己的格式是否正確。同時我相信我給自己的這個分數是完全可以的,因為付出了
3、多少我自己清楚。分數應該不能完全憑借程序的多好,因為每個人的知識儲備是不一樣的。目錄一、 課題分析-11.1課題重述-11.2課題要素-11.3課題假設-1二、 程序設計思路-2三、 程序源代碼及注釋-3四、 程序測試-10五、 設計總結-14六、 參考文獻-15一、課題分析1.1 課題要求此課程設計要求設計一個圖書信息管理系統,圖書信息包括圖書編號、書名、作者、出版社、出版日期、圖書簡介及圖書類別等。本系統的功能包括: 圖書信息錄入功能; 圖書信息瀏覽功能;查詢功能(至少一種查詢方式);圖書信息修改功能;及其它必要的功能。1.2 課題要素此課題的要素主要是要實現程序的實用性,它應該能保存每次
4、錄用進去的圖書信息,而不是每次都要重新輸一次。這就要求應該怎樣保存信息呢?用文檔保存,實現文件的輸入和輸出。同時查找功能如果能用圖書簡介進行查找,它的實用性應該就更強,但需要進行字符匹配概率,比較復雜故沒有在此次課程設計中體現。同時系統功能的編寫,也要實現精簡、實用、時間復雜度最小等。1.3 課題假設此次課題我做這樣的假設流程:創建二個圖書信息保存并退出重新運行讀取信息預覽圖書信息根據圖書編碼查找圖書信息根據圖書編碼改變圖書信息根據圖書編碼刪除圖書信息預覽圖書信息顯示程序信息保存并退出。創建的兩個圖書信息我假設依次輸入為:1、1234 數值計算方法 呂同富 清華大學 200811 數學 ¥33
5、 學習數值計算方法;2、1235 Java程序設計與案例 劉寶林 高等教育 200411 計算機 ¥30 Java程序的編寫與學習。 改變圖書信息我假設為圖書編號1234的圖書的出版日期改為:200810,價格改為:¥32。 刪除圖書信息我假設為圖書編號1235的圖書。則可知最后文檔中保存的信息應該為:1234 數值計算方法 呂同富 清華大學 200810 數學 ¥32 學習數值計算方法;根據以確定的假設要驗證答案是否正確。二、程序設計思路(一)建立圖書信息類(bookInfo)根據課題要求它的對象應該有:序號對象名數據類型含義1numberString圖書編號2writerString作者3
6、nameString書名4publish_houseString出版社5publish_dateString出版日期6categoryString圖書類別7priceString圖書價格8introductionString圖書簡介同時都聲明為全局變量,方便調用。(二)建方法類(way)同樣根據課題要求方法類中實現的操作有:caidan():輸出圖書信息管理系統的主菜單,通過這個函數進入系統的其他功能的操作;creat():實現增加圖書信息的功能;output():預覽圖書信息;search():根據圖書編號查找圖書信息;delete():根據圖書編號刪除圖書信息;chang():根據圖書編號
7、修改圖書信息;displayInfo():顯示程序信息;save():保存圖書信息,并推出系統;read():讀取保存了的圖書信息;三、程序源代碼及注釋/ BookInfomation.javapackage book;/包import java.io.*;public class BookInfomation public static void main(final String args) throws IOException/ throws IOException用來拋出io的錯誤,文件讀寫錯誤,主要涉及到java的安全機制bookInfo bookOne = new bookInfo
8、100; / 定義100個類數組for (int j = 0; j < 100; j+)bookOnej = new bookInfo();/ 建立這100個類的對象final ways bookTwo = new ways(); / 建立這個方法類的對象bookTwo.caidan(bookOne);/調用方法類中的caidan函數class bookInfo / 圖書信息類,存放圖書的信息public String number;/圖書編號public String writer;/作者public String name;/書名public String publish_house
9、;/出版社public String publish_date;/出版日期public String category;/圖書類別public String price;/圖書價格public String introduction;/圖書簡介/ 把number、writer、name、publish_house等聲明為全局變量,/ 因為它們貫穿于整個程序中,方便其它方法、類調用它們/ 方法類,主要實現圖書信息的建立,顯示,查找,刪除,修改,信息的保存/與讀??;這個類是整個程序的操作類。class ways public String recordkey;/用來接收鍵盤輸入的數據public
10、int i = 0;/ i用來存放圖書的數量public String filename = "Infomation.txt"/保存信息文件BufferedReader buf = new BufferedReader(new InputStreamReader(System.in);void caidan(bookInfo bookOne) throws IOException final BufferedReader buf = new BufferedReader(new InputStreamReader(System.in);/ 產生buf對象;buf是Buffe
11、redReader類的變量,此處將讀入/字符串至bufint choice;do System.out.println(" *圖書信息管理系統主菜單界面* ");System.out.println("1.輸入圖書信息 ");System.out.println("2.預覽圖書信息");System.out.println("3.查詢圖書信息");System.out.println("4.刪除圖書信息");System.out.println("5.修改圖書信息");Sys
12、tem.out.println("6.程序相關信息");System.out.println("7.安全退出系統");System.out.println("8.讀取數據");System.out.print(" 請輸入您的選擇(1-8):");choice = Integer.parseInt(buf.readLine();switch (choice) case 1:creat(bookOne);/創建圖書信息break;case 2:output(bookOne);/預覽圖書信息break;case 3:se
13、arch(bookOne);/查找圖書信息break;case 4:delete(bookOne);/刪除圖書信息break;case 5:chang(bookOne);/修改圖書信息break;case 6:displayInfo();/顯示程序信息break;case 7:save(bookOne);/保存并退出break;case 8:read(bookOne);/讀取已保存的信息break; default: System.out.println("沒有該選項!"); / 選項輸入錯誤 while (true);/增加(建立)圖書信息void creat(bookI
14、nfo bookOne) throws IOException final BufferedReader buf = new BufferedReader(new InputStreamReader(System.in);System.out.print("n請輸入圖書信息(以0結束)n");System.out.print("圖書編號:");bookOnei.number = buf.readLine();/ 用數組bookOnei來暫存圖書的序號,并用compareTo方法確定判定/是否應該寫入新信息while (bookOneipareTo(&qu
15、ot;0") != 0) System.out.print("書名:");bookO= buf.readLine();System.out.print("作者:");bookOnei.writer= buf.readLine();System.out.print("出版社:");bookOnei.publish_house= buf.readLine();System.out.print("出版日期:");bookOnei.publish_date= buf.readLine();Syst
16、em.out.print("圖書類別:");bookOnei.category = buf.readLine();System.out.print("圖書價格:");bookOnei.price = buf.readLine();System.out.print("圖書簡介:");bookOroduction= buf.readLine();i+;System.out.println("請輸入下一個圖書信息:n");System.out.print("圖書編號:");bookOne
17、i.number= buf.readLine();/輸出(預覽)圖書信息void output(bookInfo bookOne) throws IOException System.out.println(" n*圖書信息表* ");if (i != 0) for (int j = 0; j < i; j+) System.out.print("圖書編號:"+bookOnej.number + "n" + "書名:"+bookO+ "n" + "作者:"
18、;+ bookOnej.writer + " n"+"出版社:"+bookOnej.publish_house +"n"+"出版日期:"+bookOnej.publish_date+"n"+"圖書分類:"+bookOnej.category+"n"+"圖書價格:"+bookOnej.price+"n"+"圖書簡介:"+bookOroduction+"n"); el
19、seSystem.out.println("沒有圖書信息!");/ 實現圖書信息的查詢功能的模塊void search(bookInfo bookOne) throws IOException final BufferedReader buf = new BufferedReader(new InputStreamReader(System.in);System.out.println("n請輸入您要查找的圖書編號:");recordkey = buf.readLine();boolean flag = true;for (int j = 0; j &l
20、t; i; j+) if (recordkey.equals(bookOnej.number) / equals是字符串比較函數相等返回trueSystem.out.println(" *圖書信息表* ");System.out.print("圖書編號:"+bookOnej.number + "n" + "書名:"+bookO+ "n" + "作者:"+ bookOnej.writer + " n"+"出版社:"+boo
21、kOnej.publish_house +"n"+"出版日期:"+bookOnej.publish_date+"n"+"圖書分類:"+bookOnej.category+"n"+"圖書價格:"+bookOnej.price+"n"+"圖書簡介:"+bookOroduction+"n");flag = false;if (flag)System.out.println("對不起,圖書館沒有此書!
22、");/ 實現圖書信息的刪除功能的模塊void delete(bookInfo bookOne) throws IOException final BufferedReader buf = new BufferedReader(new InputStreamReader(System.in);System.out.println("n請輸入您要刪除的圖書編號:");recordkey = buf.readLine();boolean flag = true;for (int j = 0; j < i; j+) if (recordkey.equals(boo
23、kOnej.number) / 利用順序表的刪除算法,刪除值之后,再把后面的值往前移位,從而實現刪除for (int k = j; k <= i - 1; k+) bookOnek.number = bookOnek + 1.number;bookO = bookOnek + 1.name;bookOnek.writer = bookOnek + 1.writer;bookOnek.publish_house=bookOnek + 1.publish_house;bookOnek.publish_date=bookOnek + 1.publish_date;bookOne
24、k.category= bookOnek + 1.category;bookOnek.price= bookOnek + 1.price;bookOroduction=bookOnek + 1.introduction;i-;/ 圖書要減一flag = false;if (flag)System.out.println("對不起,圖書館沒有此書!");elseSystem.out.println("已經刪除!"); / 實現圖書信息的修改功能的模塊void chang(bookInfo bookOne) throws IOException
25、 final BufferedReader buf = new BufferedReader(new InputStreamReader(System.in);System.out.println("n請輸入您要修改的圖書編號(以0結束):");recordkey = buf.readLine();boolean flag = true;for (int j = 0; j < i; j+) System.out.println("n請輸入您要修改的圖書方面(編號、書名、作者、出版社、出版日期、類別、價格、簡介):"); recordkey = bu
26、f.readLine();while(pareTo("0") != 0) /實現可修改多個方面if (recordkey.equals("編號") System.out.print("新的圖書編號:");bookOnej.number= buf.readLine();if (recordkey.equals("書名") System.out.print("新的書名:");bookO= buf.readLine(); if (recordkey.equals("作者&qu
27、ot;) System.out.print("新的作者:");bookOnej.writer= buf.readLine();if (recordkey.equals("出版社") System.out.print("新的出版社:");bookOnej.publish_house= buf.readLine();if (recordkey.equals("出版日期") System.out.print("新的出版日期:");bookOnej.publish_date= buf.readLine(
28、);if (recordkey.equals("類別") System.out.print("新的圖書類別:");bookOnej.category = buf.readLine();if (recordkey.equals("價格") System.out.print("新的圖書價格:");bookOnej.price= buf.readLine();if (recordkey.equals("簡介") System.out.print("新的圖書簡介:");bookOne
29、roduction= buf.readLine();System.out.println("請輸入下一個修改方面:n");recordkey = buf.readLine(); flag = false; if (flag)System.out.println("對不起,圖書館沒有此書!");elseSystem.out.println("已經修改完成!");/顯示程序信息功能的模塊 void displayInfo() System.out.println("n【 程序信息 】"); System.ou
30、t.println("環境:" ); System.out.println(" eclipse"); System.out.println("人員:" ); System.out.println(" 申燕萍" ); System.out.println("學號:"); System.out.println(" 200805002117"); System.out.println("系部班級:"); System.out.println(" 數學系
31、0803班"); System.out.println("指導老師:"); System.out.println(" 牛志毅"); System.out.println("參考程序:"); System.out.println(" 職工信息管理系統"); System.out.println("完成時間:"); System.out.println(" 2008年5月15日"+"n"); / 數據的保存模塊,把輸入的圖書信息保存到相應的文件里vo
32、id save(bookInfo bookOne) throws IOException int k;final FileWriter fw = new FileWriter(filename);/ 調用構造函數FileWriter()創建FileWriter類的對象fw.write(i + "n");/ 把圖書的人數保存到文件中以便下次讀取是使用for (k = 0; k < i; k+) / 圖書的8個信息段fw.write(bookOnek.number + "n");fw.write(bookO + "n"
33、;);fw.write(bookOnek.writer+ "n");fw.write(bookOnek.publish_house+ "n");fw.write(bookOnek.publish_date+ "n");fw.write(bookOnek.category+ "n");fw.write(bookOnek.price+ "n");fw.write(bookOroduction+ "n");fw.close();System.out.println(&
34、quot;n 系統已經安全退出!感謝您的使用!");System.exit(0);/ 讀文件模塊,讀取先前已存在的圖書信息文件void read(bookInfo bookOne) throws IOException final FileReader fr = new FileReader(filename);final BufferedReader bfr = new BufferedReader(fr);if (recordkey = bfr.readLine() != null)i = Integer.parseInt(recordkey);for (int j = 0; j
35、 < i; j+) bookOnej.number = bfr.readLine();bookO = bfr.readLine();bookOnej.writer= bfr.readLine();bookOnej.publish_house= bfr.readLine();bookOnej.publish_date= bfr.readLine();bookOnej.category= bfr.readLine();bookOnej.price= bfr.readLine();bookOroduction= bfr.readLine();fr.close();
36、System.out.println("n 數據已經成功讀?。?quot;);四、程序測試(一)測試:根據1.3 課題假設 操作步驟為下:保存 -> 運行控制臺: *圖書信息管理系統主菜單界面 * 1.輸入圖書信息 2.預覽圖書信息3.查詢圖書信息4.刪除圖書信息5.修改圖書信息6.程序相關信息7.安全退出系統8.讀取數據 請輸入您的選擇(1-8):1請輸入圖書信息(以0結束)圖書編號:1234書名:數值計算方法作者:呂同富出版社:清華大學出版日期:200811圖書類別:數學圖書價格:¥33圖書簡介:學習數值計算方法請輸入下一個圖書信息:圖書編號:1235書名:Java程序設計
37、與案例作者:劉寶林出版社:高等教育出版日期:200411圖書類別:計算機圖書價格:¥30圖書簡介:Java程序的編寫與學習請輸入下一個圖書信息:圖書編號:0 *圖書信息管理系統主菜單界面 * 1.輸入圖書信息 2.預覽圖書信息3.查詢圖書信息4.刪除圖書信息5.修改圖書信息6.程序相關信息7.安全退出系統8.讀取數據 請輸入您的選擇(1-8):7 系統已經安全退出!感謝您的使用!運行:控制臺 *圖書信息管理系統主菜單界面 * 1.輸入圖書信息 2.預覽圖書信息3.查詢圖書信息4.刪除圖書信息5.修改圖書信息6.程序相關信息7.安全退出系統8.讀取數據 請輸入您的選擇(1-8):8 數據已經成功
38、讀取! *圖書信息管理系統主菜單界面 * 1.輸入圖書信息 2.預覽圖書信息3.查詢圖書信息4.刪除圖書信息5.修改圖書信息6.程序相關信息7.安全退出系統8.讀取數據 請輸入您的選擇(1-8):2 *圖書信息表* (圖書編號):1234書名:數值計算方法作者:呂同富 出版社:清華大學出版日期:200811圖書分類:數學圖書價格:¥33圖書簡介:學習數值計算方法(圖書編號):1235書名:Java程序設計與案例作者:劉寶林 出版社:高等教育出版日期:200411圖書分類:計算機圖書價格:¥30圖書簡介:Java程序的編寫與學習 *圖書信息管理系統主菜單界面 * 1.輸入圖書信息 2.預覽圖書信
39、息3.查詢圖書信息4.刪除圖書信息5.修改圖書信息6.程序相關信息7.安全退出系統8.讀取數據 請輸入您的選擇(1-8):3請輸入您要查找的圖書編號:1234 *圖書信息表* 圖書編號:1234書名:數值計算方法作者:呂同富 出版社:清華大學出版日期:200811圖書分類:數學圖書價格:¥33圖書簡介:學習數值計算方法 *圖書信息管理系統主菜單界面 * 1.輸入圖書信息 2.預覽圖書信息3.查詢圖書信息4.刪除圖書信息5.修改圖書信息6.程序相關信息7.安全退出系統8.讀取數據 請輸入您的選擇(1-8):5請輸入您要修改的圖書編號(以0結束):1234請輸入您要修改的圖書方面(編號、書名、作者、出版社、出版日期、類別、價格、簡介):出版日期新的出版日期:200810請輸入下一個修改方面:價格新的圖書價格:¥32請輸入下一個修改方面:0已經修改完成! *圖書信息管理系統主菜單界面 * 1.輸入圖書信息 2.預覽圖書信息3.查詢圖書信息4.刪除圖書信息5.修改圖書信息6.程序相關信息7.安全退出系統8.讀取數據 請輸入您的選擇(1-8):4請輸入您要刪除的圖書編號:1235已經刪除! *圖書信息管理系
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年藺草刺繡健康枕項目投資價值分析報告
- 2025至2030年膠合無塵紙項目投資價值分析報告
- 2025至2030年電焊機用整流橋項目投資價值分析報告
- 2025至2030年電子制冷型飲水機行業深度研究報告
- 2025至2030年熱水管道離心泵項目投資價值分析報告
- 防溺水技能培訓
- 2025至2030年氣動角磨項目投資價值分析報告
- 2025至2030年榨水車項目投資價值分析報告
- 2025至2030年數字矩陣式觸摸屏項目投資價值分析報告
- 接觸器控制系統的設計與調試-確定電力拖動方案和選擇電動機
- 城鄉環衛一體化保潔服務投標方案(技術方案)
- 血管活性藥物靜脈輸注護理
- Nikon尼康D3100中文說明書
- Module 3 Unit-7 Chinese Zodiac Signs(Period 4)(解密中國十二生肖)
- 中國糖尿病血酮監測專家共識
- 直播運營專員崗位職責說明書
- 2024年遼寧高考地理真題試題(原卷版+含解析)
- 廣州市白云區金廣實驗學校2022-2023學年七年級下學期期中考試英語試題
- 2024年吉林省長春蓮花山生態旅游度假區事業單位招聘5人(3號)【重點基礎提升】模擬試題(共500題)附帶答案詳解
- 俄羅斯介紹模板
- 50以內加減法練習題
評論
0/150
提交評論