電子商務(wù)專業(yè)課程設(shè)計——會員信息管理系統(tǒng)_第1頁
電子商務(wù)專業(yè)課程設(shè)計——會員信息管理系統(tǒng)_第2頁
電子商務(wù)專業(yè)課程設(shè)計——會員信息管理系統(tǒng)_第3頁
電子商務(wù)專業(yè)課程設(shè)計——會員信息管理系統(tǒng)_第4頁
電子商務(wù)專業(yè)課程設(shè)計——會員信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、大連海事大學課程設(shè)計實驗報告姓名:周慧敏班級:2011級電子商務(wù)1班學號:2220113494指導老師:張偲專業(yè)班級: 電子商務(wù) _學生姓名: 周慧敏 _ 指導教師(簽名): 一、課程設(shè)計題目會員信息管理系統(tǒng)二、本次課程設(shè)計應達到的目的 1. 通過該題目的設(shè)計,使學生掌握軟件開發(fā)過程的問題分析、系統(tǒng)設(shè)計、程序編碼、測試等基本方法和技能; 三、本次課程設(shè)計任務(wù)的主要內(nèi)容和要求(包括原始數(shù)據(jù)、技術(shù)參數(shù)、設(shè)計要求等)使用窗體等控件構(gòu)建會員信息管理系統(tǒng)界面,實現(xiàn)簡單的會員信息管理功能,每次錄入完會員信息之后就能實現(xiàn)對其刪除,查詢,修改等操作。要求:11人完成 2功能實現(xiàn),界面友好四、進度安排1. 第1

2、天:選題、查閱資料;2. 第2天:確定設(shè)計方案;3. 3 -8天:方案的實現(xiàn)、調(diào)試與驗證;4. 9-10天:撰寫課程設(shè)計報告初稿并修改;五、主要參考文獻: 1. javas實用教程(第2版), 鄭阿奇,電子工業(yè)出版社2. msdn 一、應用技術(shù)及開發(fā)環(huán)境1.java語言及jdkjdk(java development kit)是sun microsystems針對java開發(fā)員的產(chǎn)品。自從java推出以來,jdk已經(jīng)成為使用最廣泛的java sdk。jdk 是整個java的核心,包括了java運行環(huán)境、java工具和java基礎(chǔ)類庫。jdk是學好java的第一步。而專門運行在x86平臺的jro

3、cket在服務(wù)端運行效率也要比sun jdk好很多。從sun的jdk5.0開始,提供了泛型等非常實用的功能,其版本也不斷更新,運行效率得到了非常大的提高。2.eclipseeclipse 是一個開放源代碼的、基于java的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運的是,eclipse 附帶了一個標準的插件集,包括java開發(fā)工具(java development kit,jdk)。二、結(jié)構(gòu)設(shè)計與結(jié)構(gòu)功能圖1. 結(jié)構(gòu)設(shè)計根據(jù)對系統(tǒng)進行需求分析,本系統(tǒng)將分為4個模塊: 會員基本信息管理管理會員基本信息,包括個人信息的添加、修改、刪除以及查詢。 會員消

4、費信息管理管理會員的消費信息,包括消費記錄的添加、修改、刪除以及查詢。 會員積分信息管理管理會員積分信息,包括會員積分的添加、修改、刪除以及查詢。2. 功能結(jié)構(gòu)圖會員信息管理系統(tǒng)功能結(jié)構(gòu)如圖2.1所示。會員信息管理系統(tǒng)會員基本信息管理模塊會員消費信息管理模塊會員積分信息管理模塊查詢修改刪除添加查詢修改刪除添加顯示查詢修改刪除添加圖2.1 會員信息管理系統(tǒng)功能結(jié)構(gòu)圖三、系統(tǒng)實現(xiàn)該系統(tǒng)由4個模塊構(gòu)成,包括會員信息管理系統(tǒng)主界面模塊、會員基本信息管理模塊、會員消費信息管理模塊和會員積分信息管理模塊。下面分別加以敘述: 會員信息管理系統(tǒng)主界面模塊圖3.1 會員信息管理系統(tǒng)主界面 會員基本信息管理模塊圖

5、3.2 會員基本信息管理模塊的運行界面 會員消費信息管理模塊圖3.3 會員消費信息管理模塊運行界面 會員積分信息管理模塊圖3.4 會員積分信息管理模塊的運行界面四、 系統(tǒng)調(diào)試與測試4.1測試的定義及目的軟件測試就是在軟件投入運行之前,對軟件需求分析、設(shè)計規(guī)格說明和編碼的最終復審,是保證軟件質(zhì)量的關(guān)鍵步驟。如果要給軟件測試下定義,可以這樣講,軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。測試的目的在于將軟件設(shè)計時設(shè)計者與程序開發(fā)者之間理解不一致的地方、功能與需求不一致的地方、不符合邏輯思維的情況都反映給質(zhì)量控制部門,由質(zhì)量控制部門調(diào)配需求部門統(tǒng)一做出一個明確解答,再由開發(fā)人員進行修改和補充。4.2系統(tǒng)

6、功能測試功能測試主要是測試程序模塊是否實現(xiàn)了設(shè)計中所要求的功能。功能測試中需要注意的有:(1)查詢功能中,是按會員號進行查詢的。每次查詢前需要先輸入會員號,如果沒有,程序運行時會彈出提示信息窗口,告訴用戶輸入會員信息。(2)錄入功能中,需要注意的是前臺設(shè)置的數(shù)值長度是否大于后臺數(shù)值長度,以及前臺和后臺的數(shù)據(jù)結(jié)構(gòu)是否相符,很多時候錄入功能無法實現(xiàn)是由于這些原因。還有就是必須錄入的字段的設(shè)置時候有誤。(3)測試刪除功能中需要注意的是單擊"刪除"按鈕后,一般會出現(xiàn)提示信息,詢問是否確定刪除。通常情況下,我們單擊"確認"按鈕查看信息是否被刪除掉了,而忽略了單擊&

7、quot;取消"按鈕后程序的反應:這時有可能的是沒有刪除,還有一種可能是即便單擊了"取消"按鈕,也一樣刪除了數(shù)據(jù)。 (4)關(guān)于修改功能的測試主要是看修改確認后是否數(shù)據(jù)真正已被修改了。這是最基本的功能,需要注意的是看是否能把不應該修改的數(shù)據(jù)也修改成功了。 4.3系統(tǒng)調(diào)試常見錯誤1.nullpointerexception異常一般是對一個為null值的變量進行操作引起的。為避免這種異常,最好在對變量操作之前檢查,看它是否為null值。2.numberformatexception異常這是由于數(shù)字的格式錯誤而出現(xiàn)的例外。為了避免出現(xiàn)此類錯誤,一般必須保證數(shù)據(jù)格式輸入正確

8、。結(jié)束語經(jīng)過這次課題的設(shè)計并實現(xiàn),盡管會遇到很多難題,但是讓我更加受益的是在這次課題中得到的經(jīng)驗、心得和鍛煉。我發(fā)現(xiàn)開發(fā)項目的過程其實就是個不斷的解決問題的過程,從中也感覺到項目開發(fā)的快樂,一個人永遠有學不完的知識,就算是項目開發(fā)中的知識點都學了,但在實際的開發(fā)過程中仍然會遇到不少問題,遇到問題時要做到兩點:一個是“查”,一個是“問”。不懂的地方就得要自己找答案,可以從書本、網(wǎng)絡(luò)中查找解決的答案;再一個就是問周邊的同學。比如,在本科課題的編寫代碼部分,本人就參考了java 核心技術(shù),從中得到了圖形編程的很多有用的方法。這次課程的設(shè)計給我以前所學的知識做了一個總結(jié),為我深入學習編程做了鋪墊。在本

9、課題中存在的不足之處是在所難免的,本人將在日后加于改進。致 謝在本課題的設(shè)計和實現(xiàn)的過程中遇到的不少的難題,我要感謝那些給我?guī)韼椭臅蚷nternet,還有周邊的同學們。如果沒有他們的幫助,本課題的設(shè)計和實現(xiàn)就不會如期順利完成。還要感謝我們的指導老師給我們這么多學生的文檔認真批改,讓我們知道在課程設(shè)計與實現(xiàn)的過程中存在的問題。附錄:程序源代碼(1)menu.java(主窗口)package crm;import java.awt.*;import java.awt.event.*;import java.io.*;import java.util.*;import javax.swing

10、.*;import javax.swing.border.*;import java.util.*;class menu extends jframe implements actionlistener jbutton customermanager = new jbutton("會員信息");jbutton consumptionmanager = new jbutton("消費信息");jbutton score = new jbutton("會員積分信息");jmenubar mb = new jmenubar();/ 菜單欄j

11、panel jp = new jpanel();/ 用來填放子模塊container cp = getcontentpane();string username;menu() menu(string username) this.username = username;mb.add(customermanager);mb.add(consumptionmanager);mb.add(score);cp.add(mb, "north");/ 設(shè)置邊框jp.setborder(borderfactory.createtitledborder(borderfactory.crea

12、telineborder(color.blue, 2), null,titledborder.center, titledborder.top);jp.setlayout(new borderlayout();jlabel label1 = new jlabel(new imageicon("4.jpg");jp.add(label1);jlabel label2 = new jlabel(new imageicon("2.jpg");jp.add(label2, "south");jscrollpane scrollpane = n

13、ew jscrollpane(jp);cp.add(scrollpane);toolkit kit = toolkit.getdefaulttoolkit();dimension screen = kit.getscreensize();int x = screen.width; /* 取得顯示器窗口的寬度 */int y = screen.height; /* 取得顯示器窗口的高度 */setsize(600, 600);int xcenter = (x - 600) / 2;int ycenter = (y - 600) / 2;setlocation(xcenter, ycenter);

14、/* 顯示在窗口中央 */setvisible(true);setdefaultcloseoperation(jframe.exit_on_close);/ 注冊臨聽器customermanager.addactionlistener(this);consumptionmanager.addactionlistener(this);score.addactionlistener(this);public void actionperformed(actionevent e) string cmd = e.getactioncommand();if (cmd.equals("會員信息&

15、quot;) new customermanager();if (cmd.equals("消費信息") new consumptionmanager();if (cmd.equals("會員積分信息") new score();public static void main(string args) new menu("");(2)score.java (會員積分管理界面)package crm;import java.awt.*;import java.awt.event.*;import javax.swing.*;import

16、java.io.*;import java.util.*;class customer1 implements java.io.serializable /* * */private static final long serialversionuid = 1l;string number, name, lastmonth, thismonth, sex, total;public customer1() ;public void setnumber(string number) this.number = number;public string getnumber() return num

17、ber;public void setname(string name) = name;public string getname() return name;public void setlastmonth(string lastmonth) this.lastmonth = lastmonth;public string getlastmonth() return lastmonth;public void setthismonth(string thismonth) this.thismonth = thismonth;public string getthismon

18、th() return thismonth;public void setsex(string sex) this.sex = sex;public string getsex() return sex;public void settotal(string total) this.total = total;public string gettotal() return total;public class score extends jframe /* * */private static final long serialversionuid = 1l;jlabel lb = new j

19、label("錄入請先輸入記錄,查詢、刪除請先輸入會員號,修改時對查詢" + "內(nèi)容改后的保存!");jtextfield 會員號, 姓名, 上月積分, 本月積分, 總積分;jradiobutton 男, 女;buttongroup group = null;jbutton 錄入, 查詢, 刪除, 修改, 顯示;jpanel p1, p2, p3, p4, p5, p6, pv, ph;customer1 會員 = null;hashtable<string, customer1> 會員散列表 = null;file file = null;

20、fileinputstream inone = null;objectinputstream intwo = null;fileoutputstream outone = null;objectoutputstream outtwo = null;public score() super("會員積分信息管理系統(tǒng)");會員號 = new jtextfield(10);姓名 = new jtextfield(10);上月積分 = new jtextfield(10);本月積分 = new jtextfield(10);總積分 = new jtextfield(10);group

21、 = new buttongroup();男 = new jradiobutton("男", true);女 = new jradiobutton("女", false);group.add(男);group.add(女);錄入 = new jbutton("錄入");查詢 = new jbutton("查詢");刪除 = new jbutton("刪除");修改 = new jbutton("修改");顯示 = new jbutton("顯示");錄入.

22、addactionlistener(new inputact();查詢.addactionlistener(new inquestact();修改.addactionlistener(new modifyact();刪除.addactionlistener(new deleteact();顯示.addactionlistener(new showact();修改.setenabled(false);p1 = new jpanel();p1.add(new jlabel(" 會員號:", jlabel.center);p1.add(會員號);p2 = new jpanel()

23、;p2.add(new jlabel(" 姓名:", jlabel.center);p2.add(姓名);p3 = new jpanel();p3.add(new jlabel(" 性別:", jlabel.center);p3.add(男);p3.add(女);p4 = new jpanel();p4.add(new jlabel(" 上月積分:", jlabel.center);p4.add(上月積分);p5 = new jpanel();p5.add(new jlabel(" 本月積分:", jlabel.c

24、enter);p5.add(本月積分);p6 = new jpanel();p6.add(new jlabel(" 總積分:", jlabel.center);p6.add(總積分);pv = new jpanel();pv.setlayout(new gridlayout(6, 1);pv.add(p1);pv.add(p2);pv.add(p3);pv.add(p4);pv.add(p5);pv.add(p6);ph = new jpanel();ph.add(錄入);ph.add(查詢);ph.add(修改);ph.add(刪除);ph.add(顯示);file =

25、new file("會員積分信息.txt");會員散列表 = new hashtable<string, customer1>();if (!file.exists() try fileoutputstream out = new fileoutputstream(file);objectoutputstream objectout = new objectoutputstream(out);objectout.writeobject(會員散列表);objectout.close();out.close(); catch (ioexception e) cont

26、ainer con = getcontentpane();con.setlayout(new borderlayout();con.add(lb, borderlayout.north);con.add(pv, borderlayout.center);con.add(ph, borderlayout.south);setdefaultcloseoperation(exit_on_close);setbounds(100, 50, 500, 380);setvisible(true);public static void main(string args) new score();class

27、inputact implements actionlistener public void actionperformed(actionevent e) 修改.setenabled(false);string number = ""number = 會員號.gettext();if (number.length() > 0) try inone = new fileinputstream(file);intwo = new objectinputstream(inone);會員散列表 = (hashtable) intwo.readobject();inone.cl

28、ose();intwo.close(); catch (exception ee) system.out.println("創(chuàng)建散列表出現(xiàn)問題!");if (會員散列表.containskey(number) string warning = "該會員信息已存在,請到修改頁面修改!"joptionpane.showmessagedialog(null, warning, "警告",joptionpane.warning_message);/ end if1else string m = "該會員信息將被錄入!"in

29、t ok = joptionpane.showconfirmdialog(null, m, "確認",joptionpane.yes_no_option,joptionpane.question_message);if (ok = joptionpane.yes_option) string name = 姓名.gettext();string lastmonth = 上月積分.gettext();string thismonth = 本月積分.gettext();string total = 總積分.gettext();string sex = null;if (男.is

30、selected() sex = 男.gettext(); else sex = 女.gettext();會員 = new customer1();會員.setnumber(number);會員.setname(name);會員.setlastmonth(lastmonth);會員.setthismonth(thismonth);會員.settotal(total);會員.setsex(sex);try outone = new fileoutputstream(file);outtwo = new objectoutputstream(outone);會員散列表.put(number, 會員

31、);outtwo.writeobject(會員散列表);outtwo.close();outone.close(); catch (exception ee) system.out.println("輸出散列表出現(xiàn)問題!");會員號.settext(null);姓名.settext(null);上月積分.settext(null);本月積分.settext(null);總積分.settext(null);/ end else1/ end if0else string warning = "必須輸入會員號!"joptionpane.showmessaged

32、ialog(null, warning, "警告",joptionpane.warning_message);/ end else0/ end actionperformed/ end classclass inquestact implements actionlistener public void actionperformed(actionevent e) string number = ""number = 會員號.gettext();if (number.length() > 0) try inone = new fileinputst

33、ream(file);intwo = new objectinputstream(inone);會員散列表 = (hashtable) intwo.readobject();inone.close();intwo.close(); catch (exception ee) system.out.println("散列表有問題!");if (會員散列表.containskey(number) 修改.setenabled(true);customer1 stu = (customer1) 會員散列表.get(number);姓名.settext(stu.getname();上月

34、積分.settext(stu.getlastmonth();本月積分.settext(stu.getthismonth();總積分.settext(stu.gettotal();if (stu.getsex().equals("男") 男.setselected(true); else 女.setselected(true); else 修改.setenabled(false);string warning = "該會員號不存在!"joptionpane.showmessagedialog(null, warning, "警告",jo

35、ptionpane.warning_message); else 修改.setenabled(false);string warning = "必須輸入會員號!"joptionpane.showmessagedialog(null, warning, "警告",joptionpane.warning_message);class modifyact implements actionlistener public void actionperformed(actionevent e) string number = 會員號.gettext();strin

36、g name = 姓名.gettext();string lastmonth = 上月積分.gettext();string thismonth = 本月積分.gettext();string total = 總積分.gettext();string sex = null;if (男.isselected() sex = 男.gettext(); else sex = 女.gettext();customer1 會員 = new customer1();會員.setnumber(number);會員.setname(name);會員.setlastmonth(lastmonth);會員.set

37、thismonth(thismonth);會員.settotal(total);會員.setsex(sex);try outone = new fileoutputstream(file);outtwo = new objectoutputstream(outone);會員散列表.put(number, 會員);outtwo.close();outone.close();會員號.settext(null);姓名.settext(null);上月積分.settext(null);本月積分.settext(null);總積分.settext(null); catch (exception ee)

38、system.out.println("錄入修改出現(xiàn)問題!");修改.setenabled(false);class deleteact implements actionlistener public void actionperformed(actionevent e) 修改.setenabled(false);string number = 會員號.gettext();if (number.length() > 0) try inone = new fileinputstream(file);intwo = new objectinputstream(inone

39、);會員散列表 = (hashtable) intwo.readobject();intwo.close();inone.close(); catch (exception ee) if (會員散列表.containskey(number) customer1 stu = (customer1) 會員散列表.get(number);姓名.settext(stu.getname();上月積分.settext(stu.getlastmonth();本月積分.settext(stu.getthismonth();總積分.settext(stu.gettotal();if (stu.getsex().

40、equals("男") 男.setselected(true); else 女.setselected(true);string m = "確定要刪除該會員的記錄嗎?"int ok = joptionpane.showconfirmdialog(null, m, "確認",joptionpane.yes_no_option,joptionpane.question_message);if (ok = joptionpane.yes_option) 會員散列表.remove(number);try outone = new fileou

41、tputstream(file);outtwo = new objectoutputstream(outone);outtwo.writeobject(會員散列表);outtwo.close();outone.close();會員號.settext(null);姓名.settext(null);上月積分.settext(null);本月積分.settext(null);總積分.settext(null); catch (exception ee) system.out.println(ee); else if (ok = joptionpane.no_option) 會員號.settext(n

42、ull);姓名.settext(null);上月積分.settext(null);本月積分.settext(null);總積分.settext(null); else string warning = "該會員不存在!"joptionpane.showmessagedialog(null, warning, "警告",joptionpane.warning_message); else string warning = "必須輸入會員號!"joptionpane.showmessagedialog(null, warning, &qu

43、ot;警告",joptionpane.warning_message);class showact implements actionlistener public void actionperformed(actionevent e) new customershow(file);class customershow extends jdialog /* * */private static final long serialversionuid = 1l;hashtable 會員散列表 = null;jtextarea 顯示 = null;fileinputstream inon

44、e = null;objectinputstream intwo = null;file file = null;public customershow(file file) super(new jframe(), "顯示對話框");this.file = file;顯示 = new jtextarea(16, 30);try inone = new fileinputstream(file);intwo = new objectinputstream(inone);會員散列表 = (hashtable) intwo.readobject();intwo.close();i

45、none.close(); catch (exception ee) if (會員散列表.isempty()顯示.append("目前還沒有會員的信息記錄!n");else 顯示.settext("會員號 姓名 性別 上月積分 本月積分 總積分 n");for (enumeration enm = 會員散列表.elements(); enm.hasmoreelements();) customer1 stu = (customer1) enm.nextelement();string sex = ""if (stu.getsex().

46、equals("男")sex = "男"elsesex = "女"string str = stu.getnumber() + " " + stu.getname()+ " " + sex + " " + stu.getlastmonth()+ " " + stu.getthismonth()+ " " + stu.gettotal() + "n"顯示.append(str);jscrollpane scroll =

47、 new jscrollpane(顯示);container con = getcontentpane();con.add("center", scroll);con.validate();setvisible(true);setbounds(200, 200, 400, 300);addwindowlistener(new windowadapter() public void windowclosing(windowevent e) setvisible(false););(3)customermanager.java (會員基本信息管理)package crm;imp

48、ort java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;class customer implements java.io.serializable string number, name, address, telephone, borth, sex;public customer() ;public void setnumber(string number) this.number = number;public string getnumber() re

49、turn number;public void setname(string name) = name;public string getname() return name;public void setaddress(string address) this.address = address;public string getaddress() return address;public void settelephone(string telephone) this.telephone = telephone;public string gettelephone()

50、 return telephone;public void setborth(string borth) this.borth = borth;public string getborth() return borth;public void setsex(string sex) this.sex = sex;public string getsex() return sex;public class customermanager extends jframe jlabel lb = new jlabel("錄入請先輸入記錄,查詢、刪除請先輸入會員號,修改時對查詢" + "內(nèi)容改后的保存!");jtextfield 會員號, 姓名, 家庭地址, 電話號碼, 出生;jradiobutton 男, 女;buttongroup group = null;jbutton 錄入, 查詢, 刪除, 修改, 顯示;jpanel p1, p2, p3, p4, p5, p6, pv, ph;customer 會員 = null;hashtable 會員散列表 = null;file file = null;fileinputstream inone = null;objectinputstream in

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論