版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 《Java程序設(shè)計(jì)》課程期末作業(yè)</p><p> 題 目 學(xué)生成績(jī)管理系統(tǒng) </p><p> 學(xué) 院 信息科學(xué)與工程學(xué)院</p><p> 專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) </p><p> 班 別 </p><p> 學(xué)
2、 號(hào) </p><p> 姓 名 </p><p> 2011年12月17日</p><p><b> 目錄</b></p><p><b> 一、課程題目:3</b></p><p> 二、
3、軟件的功能描述3</p><p> 三、系統(tǒng)的UML類圖4</p><p><b> (一)用況圖4</b></p><p> ?。ǘ╊愔g的圖4</p><p> (三)數(shù)據(jù)流程圖6</p><p><b> 四、功能調(diào)試6</b></p>
4、<p><b> 五、具體代碼15</b></p><p><b> 一、課程題目:</b></p><p> 設(shè)計(jì)一個(gè)學(xué)生Java成績(jī)管理系統(tǒng)(可以不使用界面;如果使用,則界面使用AWT或SWING),要求:</p><p> 增添、刪除、修改學(xué)生基本信息(基本信息包含學(xué)生的學(xué)號(hào)、姓名、專業(yè)分?jǐn)?shù)等
5、信息);</p><p> 計(jì)算每門課的平均成績(jī);</p><p> 統(tǒng)計(jì)優(yōu)秀、良好、中等、及格、不及格的人數(shù)百分比,并以柱狀圖、餅圖呈現(xiàn)【說(shuō)明:可以使用SWING、AWT自己繪制;也可以使用開源類庫(kù),如JFreeChar】</p><p> 按學(xué)號(hào)查詢學(xué)生及成績(jī);</p><p><b> 按照成績(jī)分?jǐn)?shù)排序</b&g
6、t;</p><p><b> 二、軟件的功能描述</b></p><p> 能夠?qū)崿F(xiàn)學(xué)生信息的增刪改查四項(xiàng)基本的操作。此程序允許出現(xiàn)重名的現(xiàn)象出現(xiàn),另外在刪除的時(shí)候提供了刪除所有重名同學(xué)的信息和刪除指定學(xué)號(hào)的學(xué)生的兩種方法,更加貼近現(xiàn)實(shí)。</p><p> 能夠?qū)⒊绦蛑械臄?shù)據(jù)存儲(chǔ)到data.txt文件中,另外能在程序中通過Swing中的
7、table組件將文件中的內(nèi)容進(jìn)行打印出來(lái)??梢灾庇^的看到文件內(nèi)部的結(jié)果。</p><p> 此程序給出了“按照學(xué)號(hào)排序”“按照平均成績(jī)排序”“按照英語(yǔ)成績(jī)排序”“按照數(shù)學(xué)成績(jī)排序”“按照專業(yè)成績(jī)排序”等五個(gè)排序方法。</p><p> 此程序在查詢的同時(shí)又能同時(shí)顯示出三科成績(jī)的餅圖分布,餅圖上標(biāo)出了四個(gè)成績(jī)段的人數(shù)和百分比。更加方便直觀的體現(xiàn)出了單科的成績(jī)分布。</p>
8、<p> 程序有一個(gè)增加的功能。能夠?qū)⑺型瑢W(xué)的信息用三維柱狀圖的形式全部呈現(xiàn)出來(lái),能夠進(jìn)行縱向、橫向兩種比較方式。方便人性化的進(jìn)行成績(jī)的比較。</p><p> 三、系統(tǒng)的UML類圖</p><p><b> ?。ㄒ唬┯脹r圖</b></p><p><b> (二)類之間的圖</b></p>
9、<p><b> ?、賡tudent類</b></p><p><b> ②sort類</b></p><p><b> ?。ㄈ?shù)據(jù)流程圖</b></p><p><b> 四、功能調(diào)試</b></p><p><b> 1,
10、主界面</b></p><p><b> 2,新建學(xué)生信息</b></p><p><b> 3,查詢成績(jī)頁(yè)面</b></p><p><b> 4,修改成績(jī)</b></p><p><b> 5,刪除成績(jī)</b></p>
11、<p><b> 第二種方法</b></p><p><b> 打印文件內(nèi)容</b></p><p><b> 三科的排序</b></p><p><b> 平均成績(jī)排序:</b></p><p><b> 9,三科的餅圖分
12、布</b></p><p> 10,所有同學(xué)的成績(jī)?nèi)S柱狀圖分析</p><p><b> 五、具體代碼</b></p><p> 1,主界面代碼(Grade.java)</p><p> public class Grade {</p><p><b> // 定
13、義主框架</b></p><p> private JFrame frame = new JFrame("學(xué)生成績(jī)管理系統(tǒng)");// 定義菜單欄</p><p> private JMenuBar Bar = new JMenuBar();// 定義菜單</p><p> private JMenu JMedit = new
14、 JMenu("編輯");</p><p> private JMenu JMcount = new JMenu("統(tǒng)計(jì)");</p><p> private JMenu JMhelp = new JMenu("數(shù)據(jù)");// 定義菜單項(xiàng)</p><p> private JMenuItem JM
15、Icreate = new JMenuItem("新建");</p><p> private JMenuItem JMImodify = new JMenuItem("修改");</p><p> private JMenuItem JMIsearch = new JMenuItem("尋找");</p>&l
16、t;p> private JMenuItem JMIdelete = new JMenuItem("刪除");</p><p> private JMenuItem JMIall = new JMenuItem("成績(jī)排序");</p><p> private JMenuItem JMIgraphics = new JMenuItem(
17、"圖形統(tǒng)計(jì)");</p><p> private JMenuItem JMIhelp = new JMenuItem("文件信息");// 定義文本標(biāo)簽</p><p> private JLabel text = new JLabel();</p><p> private JLabel text1 = new JL
18、abel();</p><p> private JLabel text2 = new JLabel();</p><p> private JLabel text3 = new JLabel();</p><p> private JLabel text4 = new JLabel();// 定義面板</p><p> priva
19、te Container con = frame.getContentPane();// 定義輸入框?qū)ο?lt;/p><p> // private StudentManager inputinfo =null;// 定義查詢框架對(duì)象</p><p> private Search search = null;</p><p> private Create
20、create = null;</p><p> private Delete delete = null;</p><p> private Modify modify = null;</p><p> private Datasort sort = null;</p><p> private BarCharts ss = null
21、;</p><p> // 定義總分統(tǒng)計(jì)對(duì)象</p><p> // private AllgradeCount all = null;</p><p> // 定義個(gè)人統(tǒng)計(jì)對(duì)象</p><p> // private SignalCount signal = null;</p><p><b>
22、// 構(gòu)造函數(shù)</b></p><p> public Grade() {</p><p> // 把菜單欄加入框架</p><p> frame.setJMenuBar(Bar);// 把菜單加入菜單欄</p><p> Bar.add(JMedit);</p><p> Bar.add(J
23、Mcount);</p><p> Bar.add(JMhelp);// 把菜單項(xiàng)加入菜單</p><p> JMedit.add(JMIcreate);</p><p> JMedit.addSeparator();</p><p> JMedit.add(JMIsearch);</p><p> JM
24、edit.addSeparator();</p><p> JMedit.add(JMImodify);</p><p> JMedit.addSeparator();</p><p> JMedit.add(JMIdelete);// 第一個(gè)下拉菜單</p><p> JMcount.add(JMIall);</p>
25、<p> JMcount.addSeparator();</p><p> JMcount.add(JMIgraphics);// 第二個(gè)下拉</p><p> JMhelp.add(JMIhelp);// 第三個(gè)// 設(shè)置文本界面</p><p> text.setText("==============基于TXT文件的J
26、ava學(xué)生管理系統(tǒng)===========");</p><p> text1.setText("1.增添、刪除、修改學(xué)生基本信息;并計(jì)算每門課的平均成績(jī);");</p><p> text2.setText("2.統(tǒng)計(jì)優(yōu)秀、良好、中等、及格、不及格的百分比,并以圖呈現(xiàn)");</p><p> text3.set
27、Text("3.按學(xué)號(hào)查詢學(xué)生及成績(jī),并按照不同的成績(jī)分?jǐn)?shù)排序。");</p><p> text4.setText("===============制作者,計(jì)算機(jī)09-3,王繼重=============");// 設(shè)置歡迎界面</p><p> con.setLayout(new FlowLayout(FlowLayout.LEFT, 0
28、, 10));</p><p> con.add(text);</p><p> con.add(text1);</p><p> con.add(text2);</p><p> con.add(text3);</p><p> con.add(text4);// 設(shè)置框架</p><
29、;p> frame.setLocation(200, 200);</p><p> frame.setSize(400, 300);</p><p> frame.setVisible(true);</p><p> frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);// 增加監(jiān)聽器</p&g
30、t;<p> JMIcreate.addActionListener(new ActionListener() {</p><p> public void actionPerformed(ActionEvent arg0) {// TODO 自動(dòng)生成方法存根</p><p> create = new Create();}</p><
31、p><b> });</b></p><p> JMIsearch.addActionListener(new ActionListener() {</p><p> public void actionPerformed(ActionEvent arg0) {</p><p> search = new Search();
32、}});</p><p> JMImodify.addActionListener(new ActionListener() {</p><p> public void actionPerformed(ActionEvent arg0) {modify = new Modify();}});</p><p> JMIdelete.add
33、ActionListener(new ActionListener() {</p><p> public void actionPerformed(ActionEvent arg0) {</p><p> delete = new Delete();</p><p><b> }});</b></p><p>
34、; JMIall.addActionListener(new ActionListener() {</p><p> public void actionPerformed(ActionEvent arg0) {</p><p> sort = new Datasort();}});</p><p> JMIgraphics.addActionLi
35、stener(new ActionListener() {</p><p> public void actionPerformed(ActionEvent arg0) {</p><p> ss= new BarCharts("成績(jī)分布柱狀圖");</p><p><b> }});</b></p&g
36、t;<p> JMIhelp.addActionListener(new ActionListener() {</p><p> public void actionPerformed(ActionEvent arg0) {// TODO 自動(dòng)生成方法存根</p><p> // JOptionPane.showMessageDialog(null, "
37、;計(jì)算機(jī)09-3 王繼重");Outfile a = new Outfile();}});}</p><p> public static void main(String[] args) </p><p> {Grade a = new Grade();}</p><p><b> 2,新建用戶的代碼</b&
38、gt;</p><p> public class Create extends JFrame {</p><p><b> /**</b></p><p><b> * 當(dāng)前容器</b></p><p><b> */</b></p><p>
39、 Container currentContainer = this;</p><p><b> /**</b></p><p><b> * 存儲(chǔ)的文件名</b></p><p><b> */</b></p><p> String fileName = new
40、String("data.txt");</p><p><b> /**</b></p><p><b> * 顯示標(biāo)題文本</b></p><p><b> */</b></p><p> JLabel titleLabel = new JLabe
41、l("添加成績(jī)界面");</p><p><b> /**</b></p><p><b> * 標(biāo)題面板</b></p><p><b> */</b></p><p> JPanel titlePanel = new JPanel();</
42、p><p><b> /**</b></p><p><b> * 顯示姓名文本</b></p><p><b> */</b></p><p> JLabel nameLabel = new JLabel("學(xué)生姓名");</p><
43、;p><b> /**</b></p><p><b> * 顯示成績(jī)文本</b></p><p><b> */</b></p><p> JLabel scoreLabel = new JLabel("學(xué)生學(xué)號(hào)");</p><p> J
44、Label score1Label = new JLabel("英語(yǔ)成績(jī)");</p><p> JLabel score2Label = new JLabel("數(shù)學(xué)成績(jī)");</p><p> JLabel score3Label = new JLabel("專業(yè)成績(jī)");</p><p><
45、b> /**</b></p><p><b> * 姓名文本框</b></p><p><b> */</b></p><p> JTextField nameTextField = new JTextField(15);</p><p><b> /**<
46、;/b></p><p><b> * 成績(jī)文本框</b></p><p><b> */</b></p><p> JTextField scoreTextField = new JTextField(15);</p><p> JTextField score1TextField
47、= new JTextField(15);</p><p> JTextField score2TextField = new JTextField(15);</p><p> JTextField score3TextField = new JTextField(15);</p><p><b> /**</b></p>
48、<p><b> * 輸入面板</b></p><p><b> */</b></p><p> JPanel inputPanel = new JPanel();</p><p><b> /**</b></p><p><b> * 添加按鈕&
49、lt;/b></p><p><b> */</b></p><p> JButton insertBtn = new JButton("新建");</p><p><b> /**</b></p><p><b> * 管理面板</b><
50、;/p><p><b> */</b></p><p> JPanel managePanel = new JPanel();</p><p><b> /**</b></p><p><b> * 按鈕監(jiān)聽器</b></p><p><b&g
51、t; */</b></p><p> ButtonActionListener btnAction = new ButtonActionListener();</p><p><b> /**</b></p><p> * 構(gòu)造器:初始化窗體</p><p><b> */</b&g
52、t;</p><p> public Create() {</p><p> this.setSize(280, 300);</p><p> this.setLocation(300, 300);</p><p> this.setResizable(false);</p><p> this.setDef
53、aultCloseOperation(JFrame.DISPOSE_ON_CLOSE);</p><p> this.setTitle("java學(xué)生成績(jī)管理系統(tǒng)");</p><p><b> /*</b></p><p> * 將窗體劃分為上中下三個(gè)塊</p><p><b>
54、*/</b></p><p> this.setLayout(new BorderLayout());</p><p> this.add(titlePanel, "North");</p><p> this.add(inputPanel, "Center");</p><p>
55、this.add(managePanel, "South");</p><p><b> /*</b></p><p> * 第一塊用來(lái)放標(biāo)題面板 = =</p><p><b> */</b></p><p> titlePanel.setLayout(new Flow
56、Layout(FlowLayout.CENTER, 0, 10));</p><p> titlePanel.add(titleLabel);</p><p> titleLabel.setFont(new Font("黑體", Font.PLAIN, 16));</p><p><b> /*</b></p&g
57、t;<p> * 第二塊放輸入面板</p><p><b> */</b></p><p> inputPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 20, 10));</p><p> inputPanel.add(nameLabel);// 姓名</p>
58、<p> inputPanel.add(nameTextField);</p><p> inputPanel.add(scoreLabel);// 成績(jī)</p><p> inputPanel.add(scoreTextField);// ?????</p><p> inputPanel.add(score1Label);// 成績(jī)1<
59、;/p><p> inputPanel.add(score1TextField);// ?????</p><p> inputPanel.add(score2Label);// 成績(jī)2</p><p> inputPanel.add(score2TextField);// ?????</p><p> inputPanel.add(sc
60、ore3Label);// 成績(jī)3</p><p> inputPanel.add(score3TextField);// ?????</p><p><b> /*</b></p><p> * 第三塊是管理面板</p><p><b> */</b></p><p&g
61、t; managePanel.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 10));</p><p> managePanel.add(insertBtn);</p><p><b> /*</b></p><p> * 為按鈕注冊(cè)按鈕監(jiān)聽器</p><p>&l
62、t;b> */</b></p><p> insertBtn.addActionListener(btnAction);</p><p><b> /*</b></p><p><b> * 顯示窗體</b></p><p><b> */</b>&
63、lt;/p><p> this.setVisible(true);}</p><p><b> /**</b></p><p><b> * 按鈕監(jiān)聽類</b></p><p><b> */</b></p><p> class ButtonA
64、ctionListener implements ActionListener {</p><p> public void actionPerformed(ActionEvent e) {</p><p><b> /*</b></p><p> * 檢查是否輸入了姓名</p><p><b> */
65、</b></p><p> String name = nameTextField.getText().trim();</p><p> if (name.length() == 0) {</p><p> JOptionPane.showMessageDialog(currentContainer, "輸入的姓名為空!",&l
66、t;/p><p> "操作失敗", JOptionPane.ERROR_MESSAGE);</p><p><b> return;</b></p><p><b> }</b></p><p><b> /*</b></p><p&
67、gt;<b> * 是否要求查詢</b></p><p><b> */</b></p><p> int score = 0;</p><p> int score1 = 0;</p><p> int score2 = 0;</p><p> int scor
68、e3 = 0;</p><p><b> /*</b></p><p> * 檢查是否輸入了成績(jī),輸入不同的成績(jī)</p><p><b> */</b></p><p><b> try {</b></p><p> score = Integ
69、er.parseInt(scoreTextField.getText().trim());</p><p> } catch (Exception e1) {</p><p> JOptionPane.showMessageDialog(currentContainer, "輸入的成績(jī)不是數(shù)字!",</p><p> "操作失敗&
70、quot;, JOptionPane.ERROR_MESSAGE);</p><p> return;}</p><p><b> try {</b></p><p> score1 = Integer.parseInt(score1TextField.getText().trim());</p><p>
71、 } catch (Exception e1) {</p><p> JOptionPane.showMessageDialog(currentContainer, "輸入的成績(jī)不是數(shù)字!",</p><p> "操作失敗", JOptionPane.ERROR_MESSAGE);</p><p> return;
72、}</p><p><b> try {</b></p><p> score2 = Integer.parseInt(score2TextField.getText().trim());</p><p> } catch (Exception e1) {</p><p> JOptionPane.showMes
73、sageDialog(currentContainer, "輸入的成績(jī)不是數(shù)字!",</p><p> "操作失敗", JOptionPane.ERROR_MESSAGE);</p><p><b> return;</b></p><p><b> }</b></p&g
74、t;<p><b> try {</b></p><p> score3 = Integer.parseInt(score3TextField.getText().trim());</p><p> } catch (Exception e1) {</p><p> JOptionPane.showMessageDialo
75、g(currentContainer, "輸入的成績(jī)不是數(shù)字!",</p><p> "操作失敗", JOptionPane.ERROR_MESSAGE);</p><p><b> return;</b></p><p><b> }</b></p><p
76、><b> /*</b></p><p><b> * 是否要求錄入</b></p><p><b> */</b></p><p> if (e.getSource() == insertBtn) {</p><p> boolean flag = inser
77、t(name, score, score1, score2, score3); // 執(zhí)行方法,進(jìn)行錄入操作</p><p> if (flag) {</p><p> JOptionPane.showMessageDialog(currentContainer, "錄入成功!");</p><p> scoreTextField.setT
78、ext(""); // 清空成績(jī)框</p><p> score1TextField.setText("");</p><p> score2TextField.setText("");</p><p> score3TextField.setText("");</p>
79、<p><b> } else {</b></p><p> JOptionPane.showMessageDialog(currentContainer,</p><p> "錄入過程中出現(xiàn)了異常,請(qǐng)聯(lián)絡(luò)技術(shù)人員!", "錄入失敗",</p><p> JOptionPane.ER
80、ROR_MESSAGE);</p><p><b> }</b></p><p><b> return;</b></p><p><b> }}}</b></p><p><b> /**</b></p><p>&
81、lt;b> * 插入新記錄</b></p><p><b> * </b></p><p> * @param name</p><p> * 姓名</p><p> * @param score</p><p> * 成績(jī)
82、</p><p><b> */</b></p><p> public boolean insert(String name, int score, int score1, int score2,</p><p> int score3) {</p><p><b> try {</b>&
83、lt;/p><p><b> /*</b></p><p><b> * 寫入文件</b></p><p><b> */</b></p><p> Writer out = new FileWriter(fileName, true);</p><p&
84、gt; out.write(name + ":" + score + ":" + score1 + ":" + score2 + ":"</p><p> + score3 + "\r\n");</p><p> out.close();</p><p> r
85、eturn true;</p><p> } catch (IOException e) {</p><p> e.printStackTrace();</p><p> return false;</p><p><b> }}</b></p><p><b> /**&l
86、t;/b></p><p><b> * 入口方法</b></p><p><b> * </b></p><p> * @param args</p><p> public static void main(String[] args) {</p><p>
87、 new Create();</p><p><b> }</b></p><p><b> }</b></p><p><b> 3,修改類</b></p><p> public class Modify extends JFrame {</p>&
88、lt;p><b> /**</b></p><p><b> * 當(dāng)前容器</b></p><p><b> */</b></p><p> Container currentContainer = this;</p><p><b> /**<
89、/b></p><p><b> * 存儲(chǔ)的文件名</b></p><p><b> */</b></p><p> String fileName = new String("data.txt");</p><p><b> /**</b>&
90、lt;/p><p><b> * 顯示標(biāo)題文本</b></p><p><b> */</b></p><p> JLabel titleLabel = new JLabel("修改成績(jī)界面");</p><p><b> /**</b></p&g
91、t;<p><b> * 標(biāo)題面板</b></p><p><b> */</b></p><p> JPanel titlePanel = new JPanel();</p><p><b> /**</b></p><p><b> * 顯
92、示姓名文本</b></p><p><b> */</b></p><p> JLabel nameLabel = new JLabel("學(xué)生姓名");</p><p><b> /**</b></p><p><b> * 顯示成績(jī)文本</
93、b></p><p><b> */</b></p><p> JLabel scoreLabel = new JLabel("學(xué)生學(xué)號(hào)");</p><p> JLabel score1Label = new JLabel("英語(yǔ)成績(jī)");</p><p> JLa
94、bel score2Label = new JLabel("數(shù)學(xué)成績(jī)");</p><p> JLabel score3Label = new JLabel("專業(yè)成績(jī)");</p><p><b> /**</b></p><p><b> * 姓名文本框</b></p
95、><p><b> */</b></p><p> JTextField nameTextField = new JTextField(15);</p><p><b> /**</b></p><p><b> * 成績(jī)文本框</b></p><p&g
96、t;<b> */</b></p><p> JTextField scoreTextField = new JTextField(15);</p><p> JTextField score1TextField = new JTextField(15);</p><p> JTextField score2TextField = ne
97、w JTextField(15);</p><p> JTextField score3TextField = new JTextField(15);</p><p><b> /**</b></p><p><b> * 輸入面板</b></p><p><b> */</
98、b></p><p> JPanel inputPanel = new JPanel();</p><p><b> /**</b></p><p><b> * 修改按鈕</b></p><p><b> */</b></p><p>
99、 JButton modifyBtn = new JButton("修改");</p><p><b> /**</b></p><p><b> * 管理面板</b></p><p><b> */</b></p><p> JPanel mana
100、gePanel = new JPanel();</p><p><b> /**</b></p><p><b> * 按鈕監(jiān)聽器</b></p><p><b> */</b></p><p> ButtonActionListener btnAction = new
101、 ButtonActionListener();</p><p><b> /**</b></p><p> * 構(gòu)造器:初始化窗體</p><p><b> */</b></p><p> public Modify() {</p><p> this.setSi
102、ze(280, 300);</p><p> this.setLocation(300, 300);</p><p> this.setResizable(false);</p><p> this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);</p><p> this.set
103、Title("java學(xué)生成績(jī)管理系統(tǒng)");</p><p><b> /*</b></p><p> * 將窗體劃分為上中下三個(gè)塊</p><p><b> */</b></p><p> this.setLayout(new BorderLayout());</
104、p><p> this.add(titlePanel, "North");</p><p> this.add(inputPanel, "Center");</p><p> this.add(managePanel, "South");</p><p><b> /*
105、</b></p><p> * 第一塊用來(lái)放標(biāo)題面板 = =</p><p><b> */</b></p><p> titlePanel.setLayout(new FlowLayout(FlowLayout.CENTER, 0, 10));</p><p> titlePanel.add(tit
106、leLabel);</p><p> titleLabel.setFont(new Font("黑體", Font.PLAIN, 16));</p><p><b> /*</b></p><p> * 第二塊放輸入面板</p><p><b> */</b></p
107、><p> inputPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 20, 10));</p><p> inputPanel.add(nameLabel);// 姓名</p><p> inputPanel.add(nameTextField);</p><p> inputPane
108、l.add(scoreLabel);// 成績(jī)</p><p> inputPanel.add(scoreTextField);// </p><p> inputPanel.add(score1Label);// 成績(jī)1</p><p> inputPanel.add(score1TextField);// inputPanel.add(score2La
109、bel);// 成績(jī)2</p><p> inputPanel.add(score2TextField);// inputPanel.add(score3Label);// 成績(jī)3</p><p> inputPanel.add(score3TextField);//* 第三塊是管理面板 */</p><p> managePanel.setLayo
110、ut(new FlowLayout(FlowLayout.CENTER, 5, 10));</p><p> managePanel.add(modifyBtn);</p><p><b> /*</b></p><p> * 為按鈕注冊(cè)按鈕監(jiān)聽器 */</p><p> modifyBtn.addAction
111、Listener(btnAction);</p><p> /* * 顯示窗體 */</p><p> this.setVisible(true);}</p><p> /** * 按鈕監(jiān)聽類 */</p><p> class ButtonActionListener implements ActionListener
112、 {</p><p> public void actionPerformed(ActionEvent e) {</p><p> /* * 檢查是否輸入了姓名 */</p><p> String name = nameTextField.getText().trim();</p><p> if (name.lengt
113、h() == 0) {</p><p> JOptionPane.showMessageDialog(currentContainer, "輸入的姓名為空!",</p><p> "操作失敗", JOptionPane.ERROR_MESSAGE);</p><p> return;}</p><
114、;p> /* * 是否要求查詢 */</p><p> int score = 0;</p><p> int score1 = 0;</p><p> int score2 = 0;</p><p> int score3 = 0;</p><p> /* * 檢查是否輸入了成績(jī),
115、輸入不同的成績(jī) */</p><p><b> try {</b></p><p> score = Integer.parseInt(scoreTextField.getText().trim());</p><p> } catch (Exception e1) {</p><p> JOptionPa
116、ne.showMessageDialog(currentContainer, "輸入的成績(jī)不是數(shù)字!",</p><p> "操作失敗", JOptionPane.ERROR_MESSAGE);</p><p> return;}</p><p><b> try {</b></p>
117、;<p> score1 = Integer.parseInt(score1TextField.getText().trim());</p><p> } catch (Exception e1) {</p><p> JOptionPane.showMessageDialog(currentContainer, "輸入的成績(jī)不是數(shù)字!",</
118、p><p> "操作失敗", JOptionPane.ERROR_MESSAGE);</p><p><b> return;</b></p><p><b> }</b></p><p><b> try {</b></p><p&
119、gt; score2 = Integer.parseInt(score2TextField.getText().trim());</p><p> } catch (Exception e1) {</p><p> JOptionPane.showMessageDialog(currentContainer, "輸入的成績(jī)不是數(shù)字!",</p>&l
120、t;p> "操作失敗", JOptionPane.ERROR_MESSAGE);</p><p><b> return;</b></p><p><b> }try {</b></p><p> score3 = Integer.parseInt(score3TextField.g
121、etText().trim());</p><p> } catch (Exception e1) {</p><p> JOptionPane.showMessageDialog(currentContainer, "輸入的成績(jī)不是數(shù)字!",</p><p> "操作失敗", JOptionPane.ERROR_MES
122、SAGE);</p><p><b> return;</b></p><p> }/* * 是否要求錄入 */</p><p> /* * 是否要求修改 */</p><p> if (e.getSource() == modifyBtn) {</p><p>
123、; int choose = JOptionPane.showConfirmDialog(currentContainer,</p><p> "確定要修改該學(xué)生的成績(jī)嗎?", "確認(rèn)修改",</p><p> JOptionPane.YES_NO_CANCEL_OPTION);</p><p> if (choose
124、 == JOptionPane.YES_OPTION) {</p><p> boolean flag = modify(name, score, score1, score2, score3); // 當(dāng)確定時(shí)修改所有名字為name的同學(xué)的成績(jī)?yōu)閟core</p><p> if (flag) {</p><p> JOptionPane.showMessa
125、geDialog(currentContainer, "已將修改",</p><p> "修改成功!", JOptionPane.PLAIN_MESSAGE);</p><p><b> } else {</b></p><p> JOptionPane.showMessageDialog(curr
126、entContainer,</p><p> "沒有該姓名的同學(xué)的成績(jī)記錄!", "修改失敗!",</p><p> JOptionPane.ERROR_MESSAGE);</p><p><b> }</b></p><p><b> }</b>&l
127、t;/p><p> return;}}}</p><p> public boolean modify(String name, int score, int score1, int score2,</p><p> int score3) {</p><p> try {/* * 先讀入所有學(xué)生成績(jī)信息, 把滿足
128、條件的記錄更新為新成績(jī)后,暫存到內(nèi)存中 其他記錄直接存儲(chǔ) */</p><p> BufferedReader in = new BufferedReader(new FileReader(fileName));</p><p> String line = null, data = "";</p><p> boolean flag
129、 = false;</p><p> while ((line = in.readLine()) != null) {</p><p> String[] info = line.split(":");</p><p> if (info[0].equals(name)) {</p><p> line = inf
130、o[0] + ":" + score + ":" + score1 + ":" + score2</p><p> + ":" + score3;</p><p> flag = true;</p><p><b> }</b></p><
131、p> data += line + "\r\n";</p><p> }in.close();</p><p> /* * 重新寫文件 */</p><p> Writer out = new FileWriter(fileName);</p><p> out.write(data);&
132、lt;/p><p> out.close();</p><p> return flag;</p><p> } catch (IOException e) {e.printStackTrace();</p><p> }return false;}</p><p><b> 入口方法<
133、;/b></p><p> public static void main(String[] args) {</p><p> new Modify();</p><p><b> }}</b></p><p><b> 4,刪除類</b></p><p>
134、public class Delete extends JFrame {</p><p> Container currentContainer = this;</p><p> String fileName = new String("data.txt");</p><p> JLabel titleLabel = new JLabel
135、("刪除成績(jī)界面");</p><p> JPanel titlePanel = new JPanel();</p><p> JLabel nameLabel = new JLabel("學(xué)生姓名");</p><p> JLabel scoreLabel = new JLabel("學(xué)生學(xué)號(hào)");
136、</p><p> JLabel score1Label = new JLabel("英語(yǔ)成績(jī)");</p><p> JLabel score2Label = new JLabel("數(shù)學(xué)成績(jī)");</p><p> JLabel score3Label = new JLabel("專業(yè)成績(jī)");&
137、lt;/p><p> JTextField nameTextField = new JTextField(15);</p><p> JTextField scoreTextField = new JTextField(15);</p><p> JTextField score1TextField = new JTextField(15);</p>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)生管理系統(tǒng)課程設(shè)計(jì)(java)
- 學(xué)生管理系統(tǒng)-java課程設(shè)計(jì)
- 學(xué)生管理系統(tǒng)課程設(shè)計(jì)(java)
- unix課程設(shè)計(jì)--java學(xué)生管理系統(tǒng)
- java課程設(shè)計(jì)報(bào)告學(xué)生管理系統(tǒng)
- java課程設(shè)計(jì)---學(xué)生學(xué)籍管理系統(tǒng)
- java學(xué)生管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- java課程設(shè)計(jì)--學(xué)生黨員管理系統(tǒng)
- java課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng)
- 學(xué)生信息管理系統(tǒng)java課程設(shè)計(jì)
- java課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- java課程設(shè)計(jì)---學(xué)生信息管理系統(tǒng)
- java課程設(shè)計(jì)----學(xué)生成績(jī)管理系統(tǒng)
- 學(xué)生成績(jī)管理系統(tǒng)java課程設(shè)計(jì)
- java課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng)
- java課程設(shè)計(jì)-學(xué)生信息管理系統(tǒng)
- java課程設(shè)計(jì)---學(xué)生信息管理系統(tǒng)
- java學(xué)生成績(jī)管理系統(tǒng) 課程設(shè)計(jì)
- java學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論