版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告</b></p><p> 一、應(yīng)用技術(shù)及開發(fā)環(huán)境</p><p> 1.JAVA語言及JDK</p><p> JDK(Java Development Kit)是Sun Microsystems針對(duì)Java開發(fā)員的產(chǎn)品。自從Java推出以來,JDK已經(jīng)成為使用最廣泛的Java SDK。JD
2、K 是整個(gè)Java的核心,包括了Java運(yùn)行環(huán)境、Java工具和Java基礎(chǔ)類庫。JDK是學(xué)好Java的第一步。而專門運(yùn)行在x86平臺(tái)的Jrocket在服務(wù)端運(yùn)行效率也要比Sun JDK好很多。從SUN的JDK5.0開始,提供了泛型等非常實(shí)用的功能,其版本也不斷更新,運(yùn)行效率得到了非常大的提高。</p><p><b> 2.eclipse</b></p><p>
3、 Eclipse 是一個(gè)開放源代碼的、基于Java的可擴(kuò)展開發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括Java開發(fā)工具(Java Development Kit,JDK)。</p><p> 二、結(jié)構(gòu)設(shè)計(jì)與結(jié)構(gòu)功能圖</p><p><b> 1. 結(jié)構(gòu)設(shè)計(jì)</b><
4、/p><p> 根據(jù)對(duì)系統(tǒng)進(jìn)行需求分析,本系統(tǒng)將分為4個(gè)模塊:</p><p> ● 會(huì)員基本信息管理</p><p> 管理會(huì)員基本信息,包括個(gè)人信息的添加、修改、刪除以及查詢。</p><p> ● 會(huì)員消費(fèi)信息管理</p><p> 管理會(huì)員的消費(fèi)信息,包括消費(fèi)記錄的添加、修改、刪除以及查詢。</p&
5、gt;<p> ● 會(huì)員積分信息管理</p><p> 管理會(huì)員積分信息,包括會(huì)員積分的添加、修改、刪除以及查詢。。</p><p><b> 2. 功能結(jié)構(gòu)圖</b></p><p> 會(huì)員信息管理系統(tǒng)功能結(jié)構(gòu)如圖2.1所示。</p><p><b> 三、系統(tǒng)實(shí)現(xiàn)</b>
6、</p><p> 該系統(tǒng)由4個(gè)模塊構(gòu)成,包括會(huì)員信息管理系統(tǒng)主界面模塊、會(huì)員基本信息管理模塊、會(huì)員消費(fèi)信息管理模塊和會(huì)員積分信息管理模塊。下面分別加以敘述:</p><p> ?、?會(huì)員信息管理系統(tǒng)主界面模塊</p><p> 圖3.1 會(huì)員信息管理系統(tǒng)主界面</p><p> ?、?會(huì)員基本信息管理模塊</p><
7、;p> 圖3.2 會(huì)員基本信息管理模塊的運(yùn)行界面</p><p> ?、?會(huì)員消費(fèi)信息管理模塊</p><p> 圖3.3 會(huì)員消費(fèi)信息管理模塊運(yùn)行界面</p><p> ④ 會(huì)員積分信息管理模塊</p><p> 圖3.4 會(huì)員積分信息管理模塊的運(yùn)行界面</p><p> 四、 系統(tǒng)調(diào)試與測試<
8、/p><p> 4.1測試的定義及目的</p><p> 軟件測試就是在軟件投入運(yùn)行之前,對(duì)軟件需求分析、設(shè)計(jì)規(guī)格說明和編碼的最終復(fù)審,是保證軟件質(zhì)量的關(guān)鍵步驟。如果要給軟件測試下定義,可以這樣講,軟件測試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程。</p><p> 測試的目的在于將軟件設(shè)計(jì)時(shí)設(shè)計(jì)者與程序開發(fā)者之間理解不一致的地方、功能與需求不一致的地方、不符合邏輯思維的情
9、況都反映給質(zhì)量控制部門,由質(zhì)量控制部門調(diào)配需求部門統(tǒng)一做出一個(gè)明確解答,再由開發(fā)人員進(jìn)行修改和補(bǔ)充。</p><p><b> 4.2系統(tǒng)功能測試</b></p><p> 功能測試主要是測試程序模塊是否實(shí)現(xiàn)了設(shè)計(jì)中所要求的功能。功能測試中需要注意的有:</p><p> (1)查詢功能中,是按會(huì)員號(hào)進(jìn)行查詢的。每次查詢前需要先輸入會(huì)員號(hào)
10、,如果沒有,程序運(yùn)行時(shí)會(huì)彈出提示信息窗口,告訴用戶輸入會(huì)員信息。</p><p> (2)錄入功能中,需要注意的是前臺(tái)設(shè)置的數(shù)值長度是否大于后臺(tái)數(shù)值長度,以及前臺(tái)和后臺(tái)的數(shù)據(jù)結(jié)構(gòu)是否相符,很多時(shí)候錄入功能無法實(shí)現(xiàn)是由于這些原因。還有就是必須錄入的字段的設(shè)置時(shí)候有誤。</p><p> (3)測試刪除功能中需要注意的是單擊"刪除"按鈕后,一般會(huì)出現(xiàn)提示信息,詢問是否確
11、定刪除。通常情況下,我們單擊"確認(rèn)"按鈕查看信息是否被刪除掉了,而忽略了單擊"取消"按鈕后程序的反應(yīng):這時(shí)有可能的是沒有刪除,還有一種可能是即便單擊了"取消"按鈕,也一樣刪除了數(shù)據(jù)。</p><p> (4)關(guān)于修改功能的測試主要是看修改確認(rèn)后是否數(shù)據(jù)真正已被修改了。這是最基本的功能,需要注意的是看是否能把不應(yīng)該修改的數(shù)據(jù)也修改成功了。 </p&
12、gt;<p> 4.3系統(tǒng)調(diào)試常見錯(cuò)誤</p><p> 1.NullPointerException異常</p><p> 一般是對(duì)一個(gè)為NULL值的變量進(jìn)行操作引起的。為避免這種異常,最好在對(duì)變量操作之前檢查,看它是否為NULL值。</p><p> 2.NumberFormatException異常</p><p>
13、; 這是由于數(shù)字的格式錯(cuò)誤而出現(xiàn)的例外。為了避免出現(xiàn)此類錯(cuò)誤,一般必須保證數(shù)據(jù)格式輸入正確。</p><p><b> 結(jié)束語</b></p><p> 經(jīng)過這次課題的設(shè)計(jì)并實(shí)現(xiàn),盡管會(huì)遇到很多難題,但是讓我更加受益的是在這次課題中得到的經(jīng)驗(yàn)、心得和鍛煉。我發(fā)現(xiàn)開發(fā)項(xiàng)目的過程其實(shí)就是個(gè)不斷的解決問題的過程,從中也感覺到項(xiàng)目開發(fā)的快樂,一個(gè)人永遠(yuǎn)有學(xué)不完的知識(shí),就
14、算是項(xiàng)目開發(fā)中的知識(shí)點(diǎn)都學(xué)了,但在實(shí)際的開發(fā)過程中仍然會(huì)遇到不少問題,遇到問題時(shí)要做到兩點(diǎn):一個(gè)是“查”</p><p> ,一個(gè)是“問”。不懂的地方就得要自己找答案,可以從書本、網(wǎng)絡(luò)中查找解決的答案;再一個(gè)就是問周邊的同學(xué)。比如,在本科課題的編寫代碼部分,本人就參考了《java 核心技術(shù)》,從中得到了圖形編程的很多有用的方法。這次課程的設(shè)計(jì)給我以前所學(xué)的知識(shí)做了一個(gè)總結(jié),為我深入學(xué)習(xí)編程做了鋪墊。在本課題中存
15、在的不足之處是在所難免的,本人將在日后加于改進(jìn)。</p><p><b> 致 謝</b></p><p> 在本課題的設(shè)計(jì)和實(shí)現(xiàn)的過程中遇到的不少的難題,我要感謝那些給我?guī)韼椭臅蚷nternet,還有周邊的同學(xué)們。如果沒有他們的幫助,本課題的設(shè)計(jì)和實(shí)現(xiàn)就不會(huì)如期順利完成。還要感謝我們的指導(dǎo)老師給我們這么多學(xué)生的文檔認(rèn)真批改,讓我們知道在課程設(shè)計(jì)與實(shí)現(xiàn)
16、的過程中存在的問題。</p><p><b> 附錄:程序源代碼</b></p><p> ?。?)Menu.java(主窗口)</p><p> package CRM;</p><p> import java.awt.*;</p><p> import java.awt.event
17、.*;</p><p> import java.io.*;</p><p> import java.util.*;</p><p> import javax.swing.*;</p><p> import javax.swing.border.*;</p><p> import java.util.
18、*;</p><p> class Menu extends JFrame implements ActionListener {</p><p> JButton CustomerManager = new JButton("會(huì)員信息");</p><p> JButton ConsumptionManager = new JButton
19、("消費(fèi)信息");</p><p> JButton Score = new JButton("會(huì)員積分信息");</p><p> JMenuBar mb = new JMenuBar();// 菜單欄</p><p> JPanel jp = new JPanel();// 用來填放子模塊</p>&l
20、t;p> Container cp = getContentPane();</p><p> String username;</p><p><b> Menu() {</b></p><p><b> }</b></p><p> Menu(String username) {&
21、lt;/p><p> this.username = username;</p><p> mb.add(CustomerManager);</p><p> mb.add(ConsumptionManager);</p><p> mb.add(Score);</p><p> cp.add(mb, "
22、;North");</p><p><b> // 設(shè)置邊框</b></p><p> jp.setBorder(BorderFactory.createTitledBorder(</p><p> BorderFactory.createLineBorder(Color.blue, 2), null,</p>&
23、lt;p> TitledBorder.CENTER, TitledBorder.TOP));</p><p> jp.setLayout(new BorderLayout());</p><p> JLabel label1 = new JLabel(new ImageIcon("4.jpg"));</p><p> jp.add(
24、label1);</p><p> JLabel label2 = new JLabel(new ImageIcon("2.jpg"));</p><p> jp.add(label2, "South");</p><p> JScrollPane scrollpane = new JScrollPane(jp);<
25、;/p><p> cp.add(scrollpane);</p><p> Toolkit kit = Toolkit.getDefaultToolkit();</p><p> Dimension screen = kit.getScreenSize();</p><p> int x = screen.width; /* 取得顯示器窗
26、口的寬度 */</p><p> int y = screen.height; /* 取得顯示器窗口的高度 */</p><p> setSize(600, 600);</p><p> int xcenter = (x - 600) / 2;</p><p> int ycenter = (y - 600) / 2;</p&g
27、t;<p> setLocation(xcenter, ycenter);/* 顯示在窗口中央 */</p><p> setVisible(true);</p><p> setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</p><p><b> // 注冊臨聽器</b>&l
28、t;/p><p> CustomerManager.addActionListener(this);</p><p> ConsumptionManager.addActionListener(this);</p><p> Score.addActionListener(this);</p><p><b> }</b&
29、gt;</p><p> public void actionPerformed(ActionEvent e) {</p><p> String cmd = e.getActionCommand();</p><p> if (cmd.equals("會(huì)員信息")) {</p><p> new Customer
30、Manager();</p><p><b> }</b></p><p> if (cmd.equals("消費(fèi)信息")) {</p><p> new ConsumptionManager();</p><p><b> }</b></p><p&
31、gt; if (cmd.equals("會(huì)員積分信息")) {</p><p> new Score();</p><p><b> }</b></p><p><b> }</b></p><p> public static void main(String[] a
32、rgs) {</p><p> new Menu("");</p><p><b> }</b></p><p><b> }</b></p><p> (2)Score.java (會(huì)員積分管理界面)</p><p> package CRM;
33、</p><p> import java.awt.*;</p><p> import java.awt.event.*;</p><p> import javax.swing.*;</p><p> import java.io.*;</p><p> import java.util.*;</p
34、><p> class Customer1 implements java.io.Serializable {</p><p><b> /**</b></p><p><b> * </b></p><p><b> */</b></p><p>
35、 private static final long serialVersionUID = 1L;</p><p> String number, name, lastmonth, thismonth, sex, total;</p><p> public Customer1() {</p><p><b> };</b></p
36、><p> public void setNumber(String number) {</p><p> this.number = number;</p><p><b> }</b></p><p> public String getNumber() {</p><p> retur
37、n number;</p><p><b> }</b></p><p> public void setName(String name) {</p><p> this.name = name;</p><p><b> }</b></p><p> publi
38、c String getName() {</p><p> return name;</p><p><b> }</b></p><p> public void setlastmonth(String lastmonth) {</p><p> this.lastmonth = lastmonth;</
39、p><p><b> }</b></p><p> public String getlastmonth() {</p><p> return lastmonth;</p><p><b> }</b></p><p> public void setthismont
40、h(String thismonth) {</p><p> this.thismonth = thismonth;</p><p><b> }</b></p><p> public String getthismonth() {</p><p> return thismonth;</p>&
41、lt;p><b> }</b></p><p> public void setSex(String sex) {</p><p> this.sex = sex;</p><p><b> }</b></p><p> public String getSex() {</p&
42、gt;<p> return sex;</p><p><b> }</b></p><p> public void settotal(String total) {</p><p> this.total = total;</p><p><b> }</b></p
43、><p> public String gettotal() {</p><p> return total;</p><p><b> }</b></p><p><b> }</b></p><p> public class Score extends JFram
44、e {</p><p><b> /**</b></p><p><b> * </b></p><p><b> */</b></p><p> private static final long serialVersionUID = 1L;</p>&
45、lt;p> JLabel lb = new JLabel("錄入請先輸入記錄,查詢、刪除請先輸入會(huì)員號(hào),修改時(shí)對(duì)查詢" + "內(nèi)容改后的保存!");</p><p> JTextField 會(huì)員號(hào), 姓名, 上月積分, 本月積分, 總積分;</p><p> JRadioButton 男, 女;</p><p>
46、 ButtonGroup group = null;</p><p> JButton 錄入, 查詢, 刪除, 修改, 顯示;</p><p> JPanel p1, p2, p3, p4, p5, p6, pv, ph;</p><p> Customer1 會(huì)員 = null;</p><p> Hashtable<Stri
47、ng, Customer1> 會(huì)員散列表 = null;</p><p> File file = null;</p><p> FileInputStream inOne = null;</p><p> ObjectInputStream inTwo = null;</p><p> FileOutputStream out
48、One = null;</p><p> ObjectOutputStream outTwo = null;</p><p> public Score() {</p><p> super("會(huì)員積分信息管理系統(tǒng)");</p><p> 會(huì)員號(hào) = new JTextField(10);</p>&
49、lt;p> 姓名 = new JTextField(10);</p><p> 上月積分 = new JTextField(10);</p><p> 本月積分 = new JTextField(10);</p><p> 總積分 = new JTextField(10);</p><p> group = new Butto
50、nGroup();</p><p> 男 = new JRadioButton("男", true);</p><p> 女 = new JRadioButton("女", false);</p><p> group.add(男);</p><p> group.add(女);</p&g
51、t;<p> 錄入 = new JButton("錄入");</p><p> 查詢 = new JButton("查詢");</p><p> 刪除 = new JButton("刪除");</p><p> 修改 = new JButton("修改");<
52、/p><p> 顯示 = new JButton("顯示");</p><p> 錄入.addActionListener(new InputAct());</p><p> 查詢.addActionListener(new InquestAct());</p><p> 修改.addActionListener(ne
53、w ModifyAct());</p><p> 刪除.addActionListener(new DeleteAct());</p><p> 顯示.addActionListener(new ShowAct());</p><p> 修改.setEnabled(false);</p><p> p1 = new JPanel();
54、</p><p> p1.add(new JLabel(" 會(huì)員號(hào):", JLabel.CENTER));</p><p> p1.add(會(huì)員號(hào));</p><p> p2 = new JPanel();</p><p> p2.add(new JLabel(" 姓名:&qu
55、ot;, JLabel.CENTER));</p><p> p2.add(姓名);</p><p> p3 = new JPanel();</p><p> p3.add(new JLabel(" 性別:", JLabel.CENTER));</p><p> p3.add(男);</p>
56、;<p> p3.add(女);</p><p> p4 = new JPanel();</p><p> p4.add(new JLabel(" 上月積分:", JLabel.CENTER));</p><p> p4.add(上月積分);</p><p> p5 = new JPa
57、nel();</p><p> p5.add(new JLabel(" 本月積分:", JLabel.CENTER));</p><p> p5.add(本月積分);</p><p> p6 = new JPanel();</p><p> p6.add(new JLabel("
58、 總積分:", JLabel.CENTER));</p><p> p6.add(總積分);</p><p> pv = new JPanel();</p><p> pv.setLayout(new GridLayout(6, 1));</p><p> pv.add(p1);</p><p>
59、 pv.add(p2);</p><p> pv.add(p3);</p><p> pv.add(p4);</p><p> pv.add(p5);</p><p> pv.add(p6);</p><p> ph = new JPanel();</p><p> ph.add(錄
60、入);</p><p> ph.add(查詢);</p><p> ph.add(修改);</p><p> ph.add(刪除);</p><p> ph.add(顯示);</p><p> file = new File("會(huì)員積分信息.txt");</p><p&
61、gt; 會(huì)員散列表 = new Hashtable<String, Customer1>();</p><p> if (!file.exists()) {</p><p><b> try {</b></p><p> FileOutputStream out = new FileOutputStream(file);&l
62、t;/p><p> ObjectOutputStream objectOut = new ObjectOutputStream(out);</p><p> objectOut.writeObject(會(huì)員散列表);</p><p> objectOut.close();</p><p> out.close();</p>
63、<p> } catch (IOException e) {</p><p><b> }</b></p><p><b> }</b></p><p> Container con = getContentPane();</p><p> con.setLayout(new B
64、orderLayout());</p><p> con.add(lb, BorderLayout.NORTH);</p><p> con.add(pv, BorderLayout.CENTER);</p><p> con.add(ph, BorderLayout.SOUTH);</p><p> setDefaultCloseO
65、peration(EXIT_ON_CLOSE);</p><p> setBounds(100, 50, 500, 380);</p><p> setVisible(true);</p><p><b> }</b></p><p> public static void main(String args[])
66、 {</p><p> new Score();</p><p><b> }</b></p><p> class InputAct implements ActionListener {</p><p> public void actionPerformed(ActionEvent e) {</p&g
67、t;<p> 修改.setEnabled(false);</p><p> String number = "";</p><p> number = 會(huì)員號(hào).getText();</p><p> if (number.length() > 0) {</p><p><b> tr
68、y {</b></p><p> inOne = new FileInputStream(file);</p><p> inTwo = new ObjectInputStream(inOne);</p><p> 會(huì)員散列表 = (Hashtable) inTwo.readObject();</p><p> inOne
69、.close();</p><p> inTwo.close();</p><p> } catch (Exception ee) {</p><p> System.out.println("創(chuàng)建散列表出現(xiàn)問題!");</p><p><b> }</b></p><p&
70、gt; if (會(huì)員散列表.containsKey(number)) {</p><p> String warning = "該會(huì)員信息已存在,請到修改頁面修改!";</p><p> JOptionPane.showMessageDialog(null, warning, "警告",</p><p> JOptio
71、nPane.WARNING_MESSAGE);</p><p> }// end if1</p><p><b> else {</b></p><p> String m = "該會(huì)員信息將被錄入!";</p><p> int ok = JOptionPane.showConfirmDia
72、log(null, m, "確認(rèn)",</p><p> JOptionPane.YES_NO_OPTION,</p><p> JOptionPane.QUESTION_MESSAGE);</p><p> if (ok == JOptionPane.YES_OPTION) {</p><p> String na
73、me = 姓名.getText();</p><p> String lastmonth = 上月積分.getText();</p><p> String thismonth = 本月積分.getText();</p><p> String total = 總積分.getText();</p><p> String sex =
74、null;</p><p> if (男.isSelected()) {</p><p> sex = 男.getText();</p><p><b> } else {</b></p><p> sex = 女.getText();</p><p><b> }</b
75、></p><p> 會(huì)員 = new Customer1();</p><p> 會(huì)員.setNumber(number);</p><p> 會(huì)員.setName(name);</p><p> 會(huì)員.setlastmonth(lastmonth);</p><p> 會(huì)員.setthismonth
76、(thismonth);</p><p> 會(huì)員.settotal(total);</p><p> 會(huì)員.setSex(sex);</p><p><b> try {</b></p><p> outOne = new FileOutputStream(file);</p><p>
77、 outTwo = new ObjectOutputStream(outOne);</p><p> 會(huì)員散列表.put(number, 會(huì)員);</p><p> outTwo.writeObject(會(huì)員散列表);</p><p> outTwo.close();</p><p> outOne.close();</p>
78、;<p> } catch (Exception ee) {</p><p> System.out.println("輸出散列表出現(xiàn)問題!");</p><p><b> }</b></p><p> 會(huì)員號(hào).setText(null);</p><p> 姓名.setTex
79、t(null);</p><p> 上月積分.setText(null);</p><p> 本月積分.setText(null);</p><p> 總積分.setText(null);</p><p><b> }</b></p><p> }// end else1</p&g
80、t;<p> }// end if0</p><p><b> else {</b></p><p> String warning = "必須輸入會(huì)員號(hào)!";</p><p> JOptionPane.showMessageDialog(null, warning, "警告",&l
81、t;/p><p> JOptionPane.WARNING_MESSAGE);</p><p> }// end else0</p><p> }// end actionPerformed</p><p> }// end class</p><p> class InquestAct implements A
82、ctionListener {</p><p> public void actionPerformed(ActionEvent e) {</p><p> String number = "";</p><p> number = 會(huì)員號(hào).getText();</p><p> if (number.length
83、() > 0) {</p><p><b> try {</b></p><p> inOne = new FileInputStream(file);</p><p> inTwo = new ObjectInputStream(inOne);</p><p> 會(huì)員散列表 = (Hashtable) i
84、nTwo.readObject();</p><p> inOne.close();</p><p> inTwo.close();</p><p> } catch (Exception ee) {</p><p> System.out.println("散列表有問題!");</p><p&
85、gt;<b> }</b></p><p> if (會(huì)員散列表.containsKey(number)) {</p><p> 修改.setEnabled(true);</p><p> Customer1 stu = (Customer1) 會(huì)員散列表.get(number);</p><p> 姓名.se
86、tText(stu.getName());</p><p> 上月積分.setText(stu.getlastmonth());</p><p> 本月積分.setText(stu.getthismonth());</p><p> 總積分.setText(stu.gettotal());</p><p> if (stu.getSe
87、x().equals("男")) {</p><p> 男.setSelected(true);</p><p><b> } else {</b></p><p> 女.setSelected(true);</p><p><b> }</b></p>&
88、lt;p><b> } else {</b></p><p> 修改.setEnabled(false);</p><p> String warning = "該會(huì)員號(hào)不存在!";</p><p> JOptionPane.showMessageDialog(null, warning, "警告&q
89、uot;,</p><p> JOptionPane.WARNING_MESSAGE);</p><p><b> }</b></p><p><b> } else {</b></p><p> 修改.setEnabled(false);</p><p> Str
90、ing warning = "必須輸入會(huì)員號(hào)!";</p><p> JOptionPane.showMessageDialog(null, warning, "警告",</p><p> JOptionPane.WARNING_MESSAGE);</p><p><b> }</b></p&
91、gt;<p><b> }</b></p><p><b> }</b></p><p> class ModifyAct implements ActionListener {</p><p> public void actionPerformed(ActionEvent e) {</p&g
92、t;<p> String number = 會(huì)員號(hào).getText();</p><p> String name = 姓名.getText();</p><p> String lastmonth = 上月積分.getText();</p><p> String thismonth = 本月積分.getText();</p>
93、<p> String total = 總積分.getText();</p><p> String sex = null;</p><p> if (男.isSelected()) {</p><p> sex = 男.getText();</p><p><b> } else {</b><
94、;/p><p> sex = 女.getText();</p><p><b> }</b></p><p> Customer1 會(huì)員 = new Customer1();</p><p> 會(huì)員.setNumber(number);</p><p> 會(huì)員.setName(name);&
95、lt;/p><p> 會(huì)員.setlastmonth(lastmonth);</p><p> 會(huì)員.setthismonth(thismonth);</p><p> 會(huì)員.settotal(total);</p><p> 會(huì)員.setSex(sex);</p><p><b> try {<
96、/b></p><p> outOne = new FileOutputStream(file);</p><p> outTwo = new ObjectOutputStream(outOne);</p><p> 會(huì)員散列表.put(number, 會(huì)員);</p><p> outTwo.close();</p>
97、;<p> outOne.close();</p><p> 會(huì)員號(hào).setText(null);</p><p> 姓名.setText(null);</p><p> 上月積分.setText(null);</p><p> 本月積分.setText(null);</p><p> 總積分
98、.setText(null);</p><p> } catch (Exception ee) {</p><p> System.out.println("錄入修改出現(xiàn)問題!");</p><p> 修改.setEnabled(false);</p><p><b> }</b></p
99、><p><b> }</b></p><p><b> }</b></p><p> class DeleteAct implements ActionListener {</p><p> public void actionPerformed(ActionEvent e) {</p&
100、gt;<p> 修改.setEnabled(false);</p><p> String number = 會(huì)員號(hào).getText();</p><p> if (number.length() > 0) {</p><p><b> try {</b></p><p> inOne =
101、new FileInputStream(file);</p><p> inTwo = new ObjectInputStream(inOne);</p><p> 會(huì)員散列表 = (Hashtable) inTwo.readObject();</p><p> inTwo.close();</p><p> inOne.close(
102、);</p><p> } catch (Exception ee) {</p><p><b> }</b></p><p> if (會(huì)員散列表.containsKey(number)) {</p><p> Customer1 stu = (Customer1) 會(huì)員散列表.get(number);<
103、/p><p> 姓名.setText(stu.getName());</p><p> 上月積分.setText(stu.getlastmonth());</p><p> 本月積分.setText(stu.getthismonth());</p><p> 總積分.setText(stu.gettotal());</p>
104、<p> if (stu.getSex().equals("男")) {</p><p> 男.setSelected(true);</p><p><b> } else {</b></p><p> 女.setSelected(true);</p><p><b>
105、}</b></p><p><b> }</b></p><p> String m = "確定要?jiǎng)h除該會(huì)員的記錄嗎?";</p><p> int ok = JOptionPane</p><p> .showConfirmDialog(null, m, "確認(rèn)&quo
106、t;,</p><p> JOptionPane.YES_NO_OPTION,</p><p> JOptionPane.QUESTION_MESSAGE);</p><p> if (ok == JOptionPane.YES_OPTION) {</p><p> 會(huì)員散列表.remove(number);</p>&
107、lt;p><b> try {</b></p><p> outOne = new FileOutputStream(file);</p><p> outTwo = new ObjectOutputStream(outOne);</p><p> outTwo.writeObject(會(huì)員散列表);</p><
108、;p> outTwo.close();</p><p> outOne.close();</p><p> 會(huì)員號(hào).setText(null);</p><p> 姓名.setText(null);</p><p> 上月積分.setText(null);</p><p> 本月積分.setText(
109、null);</p><p> 總積分.setText(null);</p><p> } catch (Exception ee) {</p><p> System.out.println(ee);</p><p><b> }</b></p><p> } else if (ok
110、== JOptionPane.NO_OPTION) {</p><p> 會(huì)員號(hào).setText(null);</p><p> 姓名.setText(null);</p><p> 上月積分.setText(null);</p><p> 本月積分.setText(null);</p><p> 總積分.s
111、etText(null);</p><p><b> } else {</b></p><p> String warning = "該會(huì)員不存在!";</p><p> JOptionPane.showMessageDialog(null, warning, "警告",</p>&l
112、t;p> JOptionPane.WARNING_MESSAGE);</p><p><b> }</b></p><p><b> } else {</b></p><p> String warning = "必須輸入會(huì)員號(hào)!";</p><p> JOpti
113、onPane.showMessageDialog(null, warning, "警告",</p><p> JOptionPane.WARNING_MESSAGE);</p><p><b> }</b></p><p><b> }</b></p><p><b&
114、gt; }</b></p><p> class ShowAct implements ActionListener {</p><p> public void actionPerformed(ActionEvent e) {</p><p> new CustomerShow(file);</p><p><b&
115、gt; }</b></p><p><b> }</b></p><p> class CustomerShow extends JDialog {</p><p><b> /**</b></p><p><b> * </b></p>&
116、lt;p><b> */</b></p><p> private static final long serialVersionUID = 1L;</p><p> Hashtable 會(huì)員散列表 = null;</p><p> JTextArea 顯示 = null;</p><p> FileIn
117、putStream inOne = null;</p><p> ObjectInputStream inTwo = null;</p><p> File file = null;</p><p> public CustomerShow(File file) {</p><p> super(new JFrame(), "
118、;顯示對(duì)話框");</p><p> this.file = file;</p><p> 顯示 = new JTextArea(16, 30);</p><p><b> try {</b></p><p> inOne = new FileInputStream(file);</p>
119、<p> inTwo = new ObjectInputStream(inOne);</p><p> 會(huì)員散列表 = (Hashtable) inTwo.readObject();</p><p> inTwo.close();</p><p> inOne.close();</p><p> } catch (Exce
120、ption ee) {</p><p><b> }</b></p><p> if (會(huì)員散列表.isEmpty())</p><p> 顯示.append("目前還沒有會(huì)員的信息記錄!\n");</p><p><b> else {</b></p>&
121、lt;p> 顯示.setText("會(huì)員號(hào) 姓名 性別 上月積分 本月積分 總積分 \n");</p><p> for (Enumeration enm = 會(huì)員散列表.elements(); enm.hasMoreElements();) {</p><p> Customer1 stu = (Custom
122、er1) enm.nextElement();</p><p> String sex = "";</p><p> if (stu.getSex().equals("男"))</p><p> sex = "男";</p><p><b> else</b&
123、gt;</p><p> sex = "女";</p><p> String str = stu.getNumber() + " " + stu.getName()</p><p> + " " + sex + " " + stu.getlas
124、tmonth()</p><p> + " " + stu.getthismonth()</p><p> + " " + stu.gettotal() + "\n";</p><p> 顯示.append(str);</p><
125、p><b> }</b></p><p><b> }</b></p><p> JScrollPane scroll = new JScrollPane(顯示);</p><p> Container con = getContentPane();</p><p> con.add
126、("Center", scroll);</p><p> con.validate();</p><p> setVisible(true);</p><p> setBounds(200, 200, 400, 300);</p><p> addWindowListener(new WindowAdapter()
127、 {</p><p> public void windowClosing(WindowEvent e) {</p><p> setVisible(false);</p><p><b> }</b></p><p><b> });</b></p><p><
128、;b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> ?。?)CustomerManager.java (會(huì)員基本信息管理)</p><p> package CRM;</p><p>
129、import java.awt.*;</p><p> import java.awt.event.*;</p><p> import javax.swing.*;</p><p> import java.io.*;</p><p> import java.util.*;</p><p> class
130、Customer implements java.io.Serializable {</p><p> String number, name, address, telephone, borth, sex;</p><p> public Customer() {</p><p><b> };</b></p><p
131、> public void setNumber(String number) {</p><p> this.number = number;</p><p><b> }</b></p><p> public String getNumber() {</p><p> return number;&l
132、t;/p><p><b> }</b></p><p> public void setName(String name) {</p><p> this.name = name;</p><p><b> }</b></p><p> public String ge
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子商務(wù)專業(yè)課程教學(xué)大綱
- 電子商務(wù)專業(yè)課程教學(xué)大綱
- 超市會(huì)員信息管理系統(tǒng)課程設(shè)計(jì)
- 電子商務(wù)專業(yè)課程體系改革方案
- 高職電子商務(wù)專業(yè)課程結(jié)構(gòu)構(gòu)建探討.pdf
- 高職電子商務(wù)專業(yè)課程教學(xué)改革探討
- 電子商務(wù)專業(yè)課程學(xué)年論文參考題目
- 程序設(shè)計(jì)技術(shù)課程設(shè)計(jì)-信息管理與信息系統(tǒng)專業(yè)課程設(shè)計(jì)成果報(bào)告
- 通信系統(tǒng)專業(yè)課程設(shè)計(jì)
- 專業(yè)課程設(shè)計(jì)
- 專業(yè)課程設(shè)計(jì)
- 電子商務(wù)管理信息系統(tǒng)課程設(shè)計(jì)
- 信息管理與信息系統(tǒng)專業(yè)課程體系建設(shè)
- 中職學(xué)校電子商務(wù)專業(yè)課程建設(shè)的研究.pdf
- 物流管理專業(yè)課程設(shè)計(jì)
- 工商管理專業(yè)課程設(shè)計(jì)
- 液壓專業(yè)課程設(shè)計(jì)
- 鑄造專業(yè)課程設(shè)計(jì)
- 教科研論文-中職電子商務(wù)專業(yè)課程教學(xué)改革
- 淺析信息管理專業(yè)課程實(shí)踐的幾點(diǎn)思考
評(píng)論
0/150
提交評(píng)論