




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 . . . Java網(wǎng)絡(luò)編程實(shí)踐課程設(shè)計(jì)說明書課程名稱:JAVA網(wǎng)絡(luò)編程課程設(shè)計(jì)題目:基于CS學(xué)生信息管理系統(tǒng): 淳學(xué)號(hào): 201105152班級(jí):信息與計(jì)算科學(xué)1101班指導(dǎo)教師: 王小剛交通大學(xué)軟件科學(xué)與工程系二一三 年 十二 月 二十六 日一、課程設(shè)計(jì)目的1.通過JAVA課程設(shè)計(jì),使學(xué)生能夠?qū)W(xué)到的面向?qū)ο蟮脑O(shè)計(jì)思想運(yùn)用在具體的工作和學(xué)習(xí)中,加深對(duì)類和對(duì)象的理解,要求學(xué)生對(duì)生活中許多具體的事物抽象出類。2、通過這次課程設(shè)計(jì)掌握J(rèn)AVA的編程思想,為后續(xù)課程打下基礎(chǔ)。3、培養(yǎng)我實(shí)際操作能力和實(shí)踐能力,為以后的工作打下堅(jiān)實(shí)的基礎(chǔ)。課程設(shè)計(jì)的要求 利用學(xué)到的編程知識(shí)和編程技巧,要求學(xué)生:1、
2、對(duì)系統(tǒng)進(jìn)行功能模塊分析、控制模塊分析正確2、系統(tǒng)設(shè)計(jì)要能完成題目所要求的功能。3、編程簡練,可用,盡可能的使系統(tǒng)的功能更加完善和全面4、使用說明書、流程圖要清楚。二、解題思路1、課程設(shè)計(jì)的題目與簡介有新生來報(bào)到,要逐個(gè)錄入其信息,如:學(xué)生,性別,出生日期,國籍。要求設(shè)計(jì)鏈表類來實(shí)現(xiàn),并統(tǒng)計(jì)學(xué)生人數(shù)。文本界面為:1. 添加學(xué)生信息2. 刪除學(xué)生信息3. 查詢學(xué)生信息4. 修改學(xué)生信息5. 學(xué)生信息保存6. 退出2、設(shè)計(jì)說明總體結(jié)構(gòu)我們采取模塊化方式進(jìn)行程序設(shè)計(jì),要求程序的功能設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)與整體結(jié)構(gòu)設(shè)計(jì)合理。也可根據(jù)自己對(duì)題目的理解增加新的功能模塊。系統(tǒng)以菜單界面方式(至少采用文本菜單界面,
3、如能采用圖形菜單界面更好)工作,運(yùn)行界面友好,演示程序以用戶和計(jì)算機(jī)的對(duì)話方式進(jìn)行看題目要求,每一條記錄包括一個(gè)學(xué)生的、性別、出生日期、國籍。同時(shí),應(yīng)具備以下功能:1、刪除功能:對(duì)指定學(xué)生的信息進(jìn)行刪除。2、修改功能:對(duì)指定學(xué)生的信息進(jìn)行修改。3、查詢功能:選擇某種方式并輸入該信息查詢符合條件的學(xué)生信息。6、 添加功能:添加新增學(xué)生信息。7、 退出主菜單。三、 分析和設(shè)計(jì) 各功能模塊的實(shí)現(xiàn)流程圖:1增加學(xué)生信息判斷*學(xué)生是否存在,若存在則錯(cuò)誤,不存在則添加。具體流程如下圖所示:流程圖新增學(xué)生信息判斷以前是否存儲(chǔ)了學(xué)生信息是新增信息按提示:輸入學(xué)個(gè)的各種信息按格式顯示輸入的學(xué)生信息退出該功能,返
4、回主菜單,繼續(xù)選擇2刪除學(xué)生信息 刪除學(xué)生的信息則必須對(duì)鏈表結(jié)點(diǎn)進(jìn)行刪除意味著將某個(gè)要?jiǎng)h除結(jié)點(diǎn)前后的連續(xù)打斷,去掉該結(jié)點(diǎn),使前后指針變量重新連接,完成鏈表結(jié)點(diǎn)的刪除任務(wù) 流程圖退出該功能,返回主菜單,繼續(xù)選擇輸入要?jiǎng)h除信息的編號(hào)輸出所有學(xué)生的信息輸入要?jiǎng)h除學(xué)生信息2該生信息已刪除,顯示其他同學(xué)的信息 3、查詢學(xué)生信息按學(xué)生的學(xué)號(hào)進(jìn)行查詢 流程圖:按照提示輸入學(xué)生的學(xué)號(hào)進(jìn)行搜索輸出所以查詢的學(xué)生信息退出該功能,返回主菜單,繼續(xù)選擇搜索學(xué)生信息 總功能模塊圖:5、退出系統(tǒng)2、輸入要?jiǎng)h除的學(xué)生的學(xué)號(hào),刪除學(xué)生信息。1輸入學(xué)生的信息:XX、性別、出生日期、國籍 菜單1. 新增學(xué)生信息2. 刪除學(xué)生信息
5、3. 學(xué)生信息查詢4. 確實(shí)刪除5. 確定修改6. 提交添加7. 退出3、輸入你要查找你學(xué)生學(xué)號(hào)6提交添加學(xué)生管理系統(tǒng)功能模塊圖四、主要源代碼import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;/主函數(shù)、主要類publicclass JCTX publicstaticvoid main(String args) new Frm_Main();/ 實(shí)現(xiàn)類class Frm_Main implements ActionListener / throws IOExceptionpublic
6、JFrame frame;public Container c;public JMenuBar menuBar;public JMenu mainMenu1;public JMenu mainMenu2;public JMenu mainMenu3;public JMenuItem subMenu1 = new JMenuItem5;public JMenuItem subMenu2 = new JMenuItem7;public JMenuItem subMenu3 = new JMenuItem2;utton toolBarButton = new utton8;public JToolB
7、ar toolBar;String strTip = 查詢您要找的學(xué)生記錄., 添加學(xué)生記錄., 刪除已有的學(xué)生記錄, 修改學(xué)生記錄.,使您修改的學(xué)生記錄生效., 使 您添加的學(xué)生記錄生效., 確認(rèn)刪除當(dāng)前記錄., 退出本系統(tǒng):) ;String id = new String();String name = new String();String sex = new String();String birthday = new String();String address = new String();String birth = new String();Connection conn;
8、ResultSet rs;Statement st;PreparedStatement pst;public JLabel idL = new JLabel(學(xué)號(hào):);public JLabel nameL = new JLabel(:);public JLabel sexL = new JLabel(性別:);public JLabel jlbirth = new JLabel(出生年月:);public JLabel jladdr = new JLabel(籍貫:);public JTextField idT = new JTextField();public JTextField nam
9、eT = new JTextField();public JTextField sexT = new JTextField();public JTextField jtbirth = new JTextField();public JTextField jtaddr = new JTextField();public Frm_Main() frame = new JFrame(學(xué)生信息管理系統(tǒng));c = frame.getContentPane();c.setLayout(null);menuBar = new JMenuBar();toolBar = new JToolBar();toolB
10、ar.setFloatable(false);frame.setJMenuBar(menuBar);frame.setResizable(false);mainMenu1 = new JMenu(管理);String str1 = 添加用戶, 刪除用戶, 查詢用戶, , 退出 ;for (int i = 0; i 5; i+) if (i = 3)mainMenu1.addSeparator();else subMenu1i = new JMenuItem(str1i);subMenu1i.addActionListener(this);mainMenu1.add(subMenu1i);men
11、uBar.add(mainMenu1);mainMenu2 = new JMenu(維護(hù)學(xué)生信息);String str2 = 查詢記錄, 添加記錄, 刪除記錄, 修改記錄, 提交修改, 提交添加,確認(rèn)刪除 ;for (int i = 0; i 7; i+) subMenu2i = new JMenuItem(str2i);subMenu2i.addActionListener(this);mainMenu2.add(subMenu2i);menuBar.add(mainMenu2);mainMenu3 = new JMenu(幫助);String str3 = 幫助., 關(guān)于. ;for (
12、int i = 0; i 2; i+) subMenu3i = new JMenuItem(str3i);subMenu3i.addActionListener(this);mainMenu3.add(subMenu3i);menuBar.add(mainMenu3);String strToolBar = 查詢, 添加, 刪除, 修改, 提交修改, 提交添加, 確認(rèn)刪除 ;for (int i = 0; i 7; i+) toolBarButtoni = new utton(strToolBari);toolBarButtoni.setToolTipText(strTipi);toolBar
13、Buttoni.addActionListener(this);toolBar.add(toolBarButtoni);toolBar.setLocation(0, 0);toolBar.setSize(400, 30);c.add(toolBar);idL.setLocation(35, 40);idL.setSize(40, 20);/ idL.setFont(new Font(宋體,Font.BOLD,12);c.add(idL);idT.setLocation(90, 40);idT.setSize(200, 20);/ idT.setEnabled(false);c.add(idT)
14、;nameL.setLocation(35, 70);nameL.setSize(40, 20);c.add(nameL);nameT.setLocation(90, 70);nameT.setSize(200, 20);c.add(nameT);sexL.setLocation(35, 100);sexL.setSize(40, 20);c.add(sexL);sexT.setLocation(90, 100);sexT.setSize(200, 20);c.add(sexT);jlbirth.setLocation(35, 160);jlbirth.setSize(40, 20);c.ad
15、d(jlbirth);jtbirth.setLocation(90, 160);jtbirth.setSize(200, 20);c.add(jtbirth);jladdr.setLocation(35, 190);jladdr.setSize(40, 20);c.add(jladdr);jtaddr.setLocation(90, 190);jtaddr.setSize(200, 20);c.add(jtaddr);JLabel information = new JLabel();information.setFont(new Font(宋體, Font.BOLD, 35);informa
16、tion.setSize(380, 110);information.setLocation(10, 210);c.add(information);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(400, 400);frame.setLocation(200, 200);frame.setVisible(true);conDB();/ 以上是設(shè)置數(shù)據(jù)庫面版、框架/ 以下是連接數(shù)據(jù)庫public Connection conDB() Connection con = null;try Class.forNam
17、e(.microsoft.sqlserver.jdbc.SQLServerDriver); catch (ClassNotFoundException e) try con = DriverManager.getConnection(jdbc:sqlserver:/127.0.0.1:1433;databaseName=mysql, sa,111); catch (SQLException e) JOptionPane.showMessageDialog(null, 數(shù)據(jù)庫連接失敗);return con;/ 以下是關(guān)閉數(shù)據(jù)庫publicvoid closeDB() try pst.close
18、();conn.close(); catch (SQLException e) JOptionPane.showMessageDialog(null, 數(shù)據(jù)庫關(guān)閉失??!);/ 以下是針對(duì)數(shù)據(jù)庫的各種操作publicvoid actionPerformed(ActionEvent e) conn=conDB();if (e.getSource() = subMenu31 | e.getSource() = toolBarButton7)JOptionPane.showMessageDialog(null, );if (e.getSource() = subMenu10 | e.getSource
19、() = subMenu11| e.getSource() = subMenu12)JOptionPane.showMessageDialog(null, );/ 查找功能的實(shí)現(xiàn)if (e.getSource() = subMenu20 | e.getSource() = toolBarButton0) String idid = JOptionPane.showInputDialog(請(qǐng)輸入要查找的學(xué)生學(xué)號(hào));if (idid.trim() != ) /String strSQL = select * from student where id = + idid+ ;String strSQ
20、L = select * from student where id =? ;try pst=conn.prepareStatement(strSQL);pst.setString(1, idid);rs=pst.executeQuery();/*st=conn.createStatement();rs = st.executeQuery(strSQL);*/int count = 0;while (rs.next() id = rs.getString(id);name = rs.getString(name);address = rs.getString(address);sex = rs
21、.getString(sex);birth=rs.getString(birthday);count+;if (count = 0)JOptionPane.showMessageDialog(null, 對(duì)不起,沒有您要查找的學(xué)生!);else idT.setText(id);nameT.setText(name);sexT.setText(sex);jtaddr.setText(address);jtbirth.setText(birth); catch (Exception ex) JOptionPane.showMessageDialog(null, 抱歉,程序出現(xiàn)異常!);if (e.
22、getSource() = subMenu14) closeDB();System.exit(0);if (e.getSource() = subMenu21 | e.getSource() = toolBarButton1) JOptionPane.showMessageDialog(null, 請(qǐng)輸入要添加的學(xué)生信息);idT.setEnabled(true);idT.setText();nameT.setText();sexT.setText();jtaddr.setText();jtbirth.setText();if (e.getSource() = toolBarButton5 |
23、 e.getSource() = subMenu25) if (idT.getText().trim().equals()| (nameT.getText().trim().equals()| (sexT.getText().trim().equals()| (jtaddr.getText().trim().equals()| (jtbirth.getText().trim().equals()JOptionPane.showMessageDialog(null, 請(qǐng)輸入信息再點(diǎn)擊提交添加!);else id = idT.getText();name = nameT.getText();sex
24、 = sexT.getText();birthday = jtaddr.getText();address = jtbirth.getText();String strSQL = insert into student values(?,?,?,?,?);try pst=conn.prepareStatement(strSQL);pst.setString(1, id);pst.setString(2, name);pst.setString(3, sex);pst.setString(4, address);pst.setString(5, birthday);pst.executeUpda
25、te(); catch (SQLException e1) / TODO Auto-generated catch block/e1.printStackTrace();JOptionPane.showMessageDialog(null, 數(shù)據(jù)庫中已經(jīng)存在您要添加的學(xué)生的學(xué)號(hào)!);return;/*try pst.executeUpdate(strSQL); catch (Exception exx) JOptionPane.showMessageDialog(null, 數(shù)據(jù)庫中已經(jīng)存在您要添加的學(xué)生的學(xué)號(hào)!); * idT.setText(); nameT.setText(); sexT
26、.setText(); * birthdayT.setText(); departmentT.setText();return;*/JOptionPane.showMessageDialog(null, 恭喜您,添加成功了!);if (e.getSource() = subMenu24 | e.getSource() = toolBarButton4) if (idT.getText().trim().equals()| (nameT.getText().trim().equals()| (sexT.getText().trim().equals()| (jtaddr.getText().tr
27、im().equals()| (jtbirth.getText().trim().equals() JOptionPane.showMessageDialog(null, 請(qǐng)輸入信息再點(diǎn)擊修改!);return; else id = idT.getText();name = nameT.getText();sex = sexT.getText();birthday = jtaddr.getText();address = jtbirth.getText();String strSQL = update student set name=?,sex=?,address=?,birthday=?
28、where id=?;try pst=conn.prepareStatement(strSQL);pst.setString(1, name);pst.setString(2, sex);pst.setString(3, address);pst.setString(4, birthday);pst.setString(5, id);pst.executeUpdate(); catch (SQLException e1) / TODO Auto-generated catch block/e1.printStackTrace();JOptionPane.showMessageDialog(nu
29、ll, 數(shù)據(jù)庫中已經(jīng)存在您要修改的學(xué)生記錄!);return;/*try pst.executeUpdate(strSQL); catch (Exception exx) JOptionPane.showMessageDialog(null, 數(shù)據(jù)庫中已經(jīng)存在您要修改的學(xué)生記錄!); * idT.setText(); nameT.setText(); sexT.setText(); * birthdayT.setText(); departmentT.setText();return;*/JOptionPane.showMessageDialog(null, 恭喜您,修改成功了!);if (e
30、.getSource() = subMenu23 | e.getSource() = toolBarButton3) String idid = JOptionPane.showInputDialog(請(qǐng)輸入要修改的學(xué)生學(xué)號(hào));if (idid.trim() != ) String strSQL = select * from student where id =? ;try pst=conn.prepareStatement(strSQL);pst.setString(1, idid);/ rs =/ st.executeQuery(select * from Coolboy where i
31、d =2004010123);rs = pst.executeQuery();int count = 0;while (rs.next() id = rs.getString(id);name = rs.getString(name);address = rs.getString(address);sex = rs.getString(sex);birthday = rs.getString(birthday);count+;if (count = 0)JOptionPane.showMessageDialog(null, 對(duì)不起,沒有您要修改的學(xué)生信息!);else idT.setText(
32、id);nameT.setText(name);sexT.setText(sex);jtaddr.setText(address);jtbirth.setText(birthday);idT.setEnabled(false); catch (Exception ex) JOptionPane.showMessageDialog(null, 抱歉,程序出現(xiàn)異常!);if (e.getSource() = subMenu22 | e.getSource() = toolBarButton2) String idDel = JOptionPane.showInputDialog(請(qǐng)輸入要?jiǎng)h除的學(xué)生
33、學(xué)號(hào));if (idDel.trim() != ) String strSQL = select * from student where id =?;try pst=conn.prepareStatement(strSQL);pst.setString(1, idDel);rs = pst.executeQuery();int count = 0;while (rs.next() id = rs.getString(id);name = rs.getString(name);address = rs.getString(address);sex = rs.getString(sex);bir
34、thday = rs.getString(birthday);+count;if (count = 0)JOptionPane.showMessageDialog(null, 對(duì)不起,沒有您要?jiǎng)h除的學(xué)生信息!);else idT.setText(id);nameT.setText(name);sexT.setText(sex);jtaddr.setText(address);jtbirth.setText(birthday);idT.setEnabled(false); catch (Exception ex) JOptionPane.showMessageDialog(null, 抱歉,程序出現(xiàn)異常!);if (e.getSource() = toolBarButton6 |
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 供應(yīng)材料解除合同范本
- 化妝合同范本
- 代理雨鞋采購合同范本
- 獸藥委托加工合同范本
- 公租房出售合同范本
- 代理工程合同范本
- 買新房認(rèn)購合同范例
- 2024年洛陽市新安縣龍?zhí)洞髰{谷荊紫仙山景區(qū)招聘考試真題
- 農(nóng)業(yè)技術(shù)人員服務(wù)合同范本
- 2024年菏澤市勞信就業(yè)服務(wù)有限公司招聘制醫(yī)院人員考試真題
- Q∕GDW 11612.41-2018 低壓電力線高速載波通信互聯(lián)互通技術(shù)規(guī)范 第4-1部分:物理層通信協(xié)議
- 2006 年全國高校俄語專業(yè)四級(jí)水平測(cè)試試卷
- 浙江省勞動(dòng)保障監(jiān)察員培訓(xùn)監(jiān)察執(zhí)法程序(林琳)
- 新人教版數(shù)學(xué)四年級(jí)下冊(cè)全冊(cè)表格式教案
- 疫情期間離市外出審批表
- (完整版)全身體格檢查評(píng)分標(biāo)準(zhǔn)(表)
- 裝飾裝修工程施工合理化建議和降低成本措施提要:完整
- (改)提高地下室側(cè)墻剛性防水施工合格率_圖文
- 電芯品質(zhì)協(xié)議版本(標(biāo)準(zhǔn)版)
- 食管癌化療臨床路徑(最全版)
- 食品銷售經(jīng)營者食品安全管理制度(零售)
評(píng)論
0/150
提交評(píng)論