版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 課 程 設(shè) 計 報 告</p><p> 課程名稱 企業(yè)資源計劃 </p><p> 課題名稱 高校學(xué)生成績管理信息系統(tǒng) </p><p> 2012年 6 月 25 日</p><p> 一、設(shè)計內(nèi)容與設(shè)計要求</p><p><
2、b> 1.設(shè)計內(nèi)容:</b></p><p> 高校學(xué)生成績管理信息系統(tǒng)</p><p> 8-14號:系部信息管理,專業(yè)信息管理</p><p> 命名規(guī)范.doc 整理</p><p><b> E-R圖 整理</b></p><p><b> FAQ
3、信息</b></p><p><b> *報表功能</b></p><p><b> 2.設(shè)計要求: </b></p><p> (1)本系統(tǒng)采用C/S模式進(jìn)行開發(fā),采用JAVA語言進(jìn)行界面及程序設(shè)計,后端采用SQL Server 2000數(shù)據(jù)庫系統(tǒng)。</p><p> (2)論
4、述課題的性質(zhì)、內(nèi)容以及本次課程設(shè)計的目的和要求。說明系統(tǒng)對計算機(jī)軟、硬件環(huán)境的基本要求,對JAVA語言和SQL Server數(shù)據(jù)庫管理系統(tǒng)和C/S模式簡要的說明。</p><p> (3)總體設(shè)計方案的分析、比較和論證。</p><p> ?。?)數(shù)據(jù)庫的建立,數(shù)據(jù)庫中表的結(jié)構(gòu),各表中關(guān)鍵字的設(shè)置,表與表之間的關(guān)系。</p><p> ?。?)應(yīng)用程序各功能模塊和
5、報表的設(shè)計。</p><p> (6)編寫代碼、上機(jī)輸入、調(diào)試、修改并運(yùn)行通過。</p><p> ?。?)編寫課程設(shè)計說明書。說明書是總結(jié)性的技術(shù)文件,應(yīng)全面敘述整個設(shè)計的內(nèi)容及過程(可參考上述6條),發(fā)現(xiàn)的問題及解決方法等。</p><p> (9)說明書應(yīng)采用A4紙張,文字說明不少于5000字。</p><p><b>
6、 二、進(jìn)度安排</b></p><p> 第一周:星期一 上午8:00——12:00,星期二 上午8:00——12:00 </p><p> 星期三 晚上7:00——10:00,星期四 上午8:00——12:00</p><p> 第二周:星期六 上午8:00——12:00,下午2:30——6:30</p><p&g
7、t;<b> 附:</b></p><p> 課程設(shè)計報告裝訂順序:封面、任務(wù)書、目錄、正文、評分。 </p><p> 正文的格式:一級標(biāo)題用3號黑體,二級標(biāo)題用四號宋體加粗,正文用小四號宋體;行距為22。</p><p> 正文的內(nèi)容:一、課題的主要功能;二、課題的功能模塊的劃分(要求畫出模塊圖);三、主要功能的實(shí)現(xiàn)(至少要有一個
8、主要模塊的流程圖);四、程序調(diào)試;五、總結(jié);</p><p><b> 目 錄</b></p><p> 1 系統(tǒng)需求分析1</p><p><b> 1.1設(shè)計思想1</b></p><p><b> 1.2實(shí)現(xiàn)方法1</b></p><p&
9、gt;<b> 2 總體設(shè)計3</b></p><p> 2.1總體設(shè)計圖3</p><p> 2.2 E-R圖4</p><p> 2.2.1專業(yè)E-R圖4</p><p> 2.2.1系部E-R圖4</p><p> 2.3數(shù)據(jù)庫的設(shè)計與數(shù)據(jù)庫連接的實(shí)現(xiàn)4</p&
10、gt;<p> 2.3.1:department表的創(chuàng)建4</p><p> 2.3.2:major表的創(chuàng)建4</p><p> 2.3.3:數(shù)據(jù)庫的連接5</p><p><b> 3 詳細(xì)設(shè)計7</b></p><p> 3.1系部插入模塊7</p><p>
11、 3.2系部刪除模塊8</p><p> 4 系統(tǒng)運(yùn)行結(jié)果11</p><p> 4.1系部添加11</p><p> 4.2系部修改11</p><p> 4.3系部刪除12</p><p> 4.4系部所有專業(yè)查詢13</p><p> 4.5專業(yè)添加13<
12、/p><p> 4.6專業(yè)修改14</p><p> 4.7專業(yè)刪除14</p><p> 4.8專業(yè)所在系部查詢15</p><p><b> 5 調(diào)試分析16</b></p><p><b> 6 心得體會17</b></p><p&g
13、t;<b> 7 附錄19</b></p><p> 7.1源程序代碼19</p><p> 7.2 參考文獻(xiàn)34</p><p><b> 8 評分表35</b></p><p><b> 1 系統(tǒng)需求分析</b></p><p>&
14、lt;b> 1.1設(shè)計思想</b></p><p> 本文論述某學(xué)校學(xué)生成績管理系統(tǒng)專業(yè)系部兩個模塊的開發(fā)過程。全文分課程任務(wù)及要求、需求分析、設(shè)計思路、詳細(xì)設(shè)計、運(yùn)行調(diào)試與分析討論設(shè)計體與小結(jié)及參考文獻(xiàn)共七部份內(nèi)容。本系統(tǒng)以Java Eclipse為開發(fā)平臺,選擇了易學(xué)易用可java圖形界面開發(fā)編程語言,主要用到了swing、awt、sql三個類包,結(jié)合單位實(shí)際,利用軟件工程化思想和方法,
15、總體上用結(jié)構(gòu)化生命周期法進(jìn)行系統(tǒng)分析和設(shè)計,采用快速原型法來實(shí)現(xiàn)系統(tǒng)。在程序設(shè)計與調(diào)試上采用了自上而下、逐步細(xì)化,逐步完善的原則。</p><p> 采用結(jié)構(gòu)化的功能模塊設(shè)計系統(tǒng)功能,可讀性好,易于擴(kuò)充。系部模塊由“系部插入”、“系部修改”、“系部刪除”、“系部所有專業(yè)查詢”等功能模塊組成,專業(yè)模塊由“專業(yè)插入”、“專業(yè)修改”、“專業(yè)刪除”和“專業(yè)所在系部查詢”等功能模塊組成。基本功能較全面。本系統(tǒng)用戶界面友好
16、、清晰、操作簡便,易學(xué)易用;系統(tǒng)可讀性好,易于維護(hù)、更新,安全性較好。本系統(tǒng)采用傳統(tǒng)下拉菜單功能選擇,方便、快捷、一目了然,并且在一個窗體中進(jìn)行操作,每個功能界面顏色不同,這樣可使系統(tǒng)可視化性比較強(qiáng)。對學(xué)生的基本信息進(jìn)行簡單操作,可按名稱進(jìn)行查詢、修改、刪除操作。本系統(tǒng)采用鏈入數(shù)據(jù)庫進(jìn)行存儲,可動態(tài)進(jìn)行查看、操作,這樣的系統(tǒng)可修改性較強(qiáng)。</p><p><b> 1.2實(shí)現(xiàn)方法</b>&
17、lt;/p><p> ?、賹W(xué)生學(xué)籍管理系統(tǒng)主界面模塊:</p><p> 采用Frame窗體來設(shè)置歡迎界面包括背景圖片及字幕(可以設(shè)計成滾動字幕效果),左上方的菜單條設(shè)計成下拉式。包括“系部插入”、“系部修改”、“系部刪除”、“系部所有專業(yè)查詢”“專業(yè)插入”、“專業(yè)修改”、“專業(yè)刪除”和“專業(yè)所在系部查詢”八項菜單項。</p><p> ②系部插入基本信息模塊:&
18、lt;/p><p> 由于我們在數(shù)據(jù)庫department表中的id采用的是自增,所以在界面當(dāng)中只要輸入系部名稱就可以了。所以我們直接在Frame窗體中加入一個輸入框,用來填寫系部名字,再加上添加按鈕和取消兩個按鈕進(jìn)行監(jiān)聽。</p><p> ?、坌薷南挡炕拘畔⒛0澹?lt;/p><p> 這個功能我們采用了下拉框的形式,我們下拉框里面的內(nèi)容是系部的id,然后下面的輸
19、出框就顯示出了這個系部的名稱,你可以在這個輸出輸入框中修改內(nèi)容,再加上添加按鈕和取消兩個按鈕進(jìn)行監(jiān)聽。</p><p> ?、芟挡克袑I(yè)查詢基本信息模板:</p><p> 這個功能我們采用了一個二維表來顯示查詢到的結(jié)果,然后加上一個輸入框,里面輸入你想要查詢的系部的名稱,再加上一個添加的按鈕來進(jìn)行監(jiān)聽并觸動事件,就能在二維表中顯示出你所查詢出來的所有專業(yè)。</p>&l
20、t;p> ⑤系部刪除基本信息模板:</p><p> 這個主要是采用了下拉框的方式,下拉框中的內(nèi)容是從數(shù)據(jù)庫中提取出來的,選中你所要刪除的系部,然后點(diǎn)擊“刪除”按鈕來實(shí)現(xiàn)監(jiān)聽。</p><p> 專業(yè)的插入查詢刪除修改的Frame窗體和系部是差不多的,所以我就不在這里一一介紹咯額,以下有圖片與代碼詳解。</p><p> 綜上,我們小組的模塊就是由以上
21、六部分組成,并將所有內(nèi)容信息在同一窗體中實(shí)現(xiàn),這樣可使系統(tǒng)可視化性提高。</p><p><b> 2 總體設(shè)計</b></p><p><b> 2.1總體設(shè)計圖</b></p><p><b> 圖1</b></p><p> 運(yùn)行程序到系統(tǒng)界面,接著系統(tǒng)界面就會出
22、現(xiàn)讓你能選擇的功能:</p><p> 系部插入【2】系部修改【3】系部所有專業(yè)查詢</p><p> 【4】系部刪除【5】數(shù)據(jù)庫相關(guān)功能設(shè)定</p><p><b> 圖2</b></p><p> 運(yùn)行程序到系統(tǒng)界面,接著系統(tǒng)界面就會出現(xiàn)讓你能選擇的功能:</p><p> 【1】專
23、業(yè)插入【2】專業(yè)修改【3】專業(yè)所在系部查詢</p><p> 【4】專業(yè)刪除【5】數(shù)據(jù)庫相關(guān)功能設(shè)定</p><p><b> 2.2 E-R圖</b></p><p> 2.2.1專業(yè)E-R圖</p><p><b> 圖3</b></p><p> 2.2.1系
24、部E-R圖</p><p><b> 圖4</b></p><p> 2.3數(shù)據(jù)庫的設(shè)計與數(shù)據(jù)庫連接的實(shí)現(xiàn)</p><p> 2.3.1:department表的創(chuàng)建</p><p> create table department</p><p> (id int primary ke
25、y identity(1,1),</p><p> name varchar(50) not null)</p><p><b> 圖5</b></p><p> 2.3.2:major表的創(chuàng)建</p><p> create table major</p><p> (id int p
26、rimary key identity(1,1),</p><p> name varchar(50) not null,</p><p> did int foreign key (did) references department(id))</p><p><b> 圖6</b></p><p> 2.3.
27、3:數(shù)據(jù)庫的連接</p><p> 新建名為student的數(shù)據(jù)源</p><p> 打開控制面板,找到數(shù)據(jù)源新建一個student的數(shù)據(jù)源。</p><p><b> 圖7</b></p><p> 單擊添加,選擇SQL,并在服務(wù)器內(nèi)添加(local)</p><p><b>
28、 圖8</b></p><p> 注意修改默認(rèn)的數(shù)據(jù)庫,選中自己的數(shù)據(jù)庫student</p><p><b> 圖9</b></p><p> 進(jìn)行數(shù)據(jù)庫的鏈接測試</p><p><b> 圖10</b></p><p><b> 圖11
29、</b></p><p> 在數(shù)據(jù)源管理器中會看到自己添加的數(shù)據(jù)源student。</p><p><b> 3 詳細(xì)設(shè)計</b></p><p> ?。ㄒ?yàn)閷I(yè)這個模塊的功能與系部這個差不多,所里我這里就只舉例了系部這個模塊而已,剩下的看最后的源代碼)</p><p><b> 3.1系部插
30、入模塊</b></p><p> 1.首先導(dǎo)入該程序中所需要用到的java包如下:</p><p> import java.awt.event.ActionEvent;</p><p> import java.awt.event.ActionListener;</p><p> import javax.swing.*
31、;</p><p> import java.sql.*;import javax.swing.JOptionPane;</p><p> 2.設(shè)計系部插入這一模塊的框架</p><p> public class DepartmentAdd extends JFrame implements ActionListener{</p><p&
32、gt; //組件的實(shí)例化放在類</p><p> JLabel lblClassName=new JLabel("系部名稱:");//構(gòu)造方法</p><p> JTextField txtName=new JTextField(20);</p><p> JButton btnAdd=new JButton("添加&qu
33、ot;);</p><p> JButton btnCancel=new JButton("取消");</p><p> public DepartmentAdd(){</p><p> //set frame</p><p> this.setSize(300,200); //設(shè)置窗體的大小</p&
34、gt;<p> this.setTitle("添加系部");//設(shè)置窗體的標(biāo)題</p><p> this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//設(shè)置關(guān)閉</p><p> this.setResizable(false);//設(shè)置窗體的大小不可變</p><p&g
35、t; this.setLocationRelativeTo(null); //設(shè)置居中</p><p> this.btnCancel.addActionListener(new ActionListener(){</p><p> //實(shí)現(xiàn)動作事件并鏈接數(shù)據(jù)庫將文本框內(nèi)信息存儲到數(shù)據(jù)庫中:</p><p> public void actionPerfor
36、med(ActionEvent arg0) {</p><p> // TODO 自動生成方法存根</p><p> DepartmentAdd.this.setVisible(false);</p><p> DepartmentAdd.this.dispose();} });</p><p> this.setLayout(nul
37、l);//將內(nèi)容面板的布局設(shè)置為空布局</p><p> lblClassName.setBounds(30,40, 80, 20);</p><p> txtName.setBounds(120,40,150,20);</p><p> btnAdd.setBounds(50,80,80,20); //alt+/:自動完成功能</p>&l
38、t;p> btnCancel.setBounds(150,80,80,20);</p><p> this.add(lblClassName);</p><p> this.add(txtName);</p><p> this.add(btnAdd);</p><p> this.add(btnCancel);</p&
39、gt;<p> btnAdd.addActionListener(this);</p><p> btnCancel.addActionListener(this);}</p><p> public static void main(String []args){</p><p> DepartmentAdd caf=new Departm
40、entAdd();</p><p> caf.setVisible(true); }</p><p> public void actionPerformed(ActionEvent e) {</p><p> if(e.getSource()==btnAdd){</p><p> //判斷文本框的值是否為空</p>&
41、lt;p> if(this.txtName.getText().equals("")){</p><p> JOptionPane.showMessageDialog(null, "系部名不能為空!","提示",JOptionPane.ERROR_MESSAGE,null); }</p><p> else{try {
42、</p><p> //step1:查找驅(qū)動</p><p> Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");</p><p> //step2:創(chuàng)建連接對象</p><p> Connection conn=DriverManager.getConnecti
43、on("jdbc:odbc:studb");</p><p> //System.out.println("數(shù)據(jù)庫已連接!");</p><p> //step3:操作數(shù)據(jù)庫的對象</p><p> Statement st=conn.createStatement();</p><p> //
44、step4:準(zhǔn)備需要執(zhí)行的sql 語句</p><p> String sql="insert into department values('"+txtName.getText()+"')";</p><p> //System.out.println(sql);</p><p> //step5: 執(zhí)
45、行insert的操作</p><p> int count= st.executeUpdate(sql);</p><p> //step 6:關(guān)閉對象</p><p> st.close();</p><p> conn.close();JOptionPane.showMessageDialog(null, "系部添加成功
46、!","提示",JOptionPane.INFORMATION_MESSAGE,null);</p><p> } catch (ClassNotFoundException e1) {</p><p> // TODO 自動生成 catch 塊</p><p> System.out.println("未找到驅(qū)動!&q
47、uot;);</p><p> e1.printStackTrace();</p><p> } catch (SQLException e2) {</p><p> // TODO 自動生成 catch 塊</p><p> e2.printStackTrace();}}}</p><p> else{th
48、is.txtName.setText("");}}}</p><p><b> 3.2系部刪除模塊</b></p><p> 1.首先導(dǎo)入該程序中所需要用到的java包如下:</p><p> import java.awt.*;</p><p> import java.awt.event.
49、*;</p><p> import java.sql.Connection;</p><p> import java.sql.ResultSet;</p><p> import java.sql.SQLException;</p><p> import java.sql.Statement;</p><p&
50、gt; import javax.swing.*;</p><p> 2.設(shè)計系部插入這一模塊的框架</p><p> public class DepartmentDelete1 {</p><p> private JComboBox departmentList = null;</p><p> private JTextF
51、ield pMajoyResult = null;</p><p> private JFrame jf = null ;</p><p> public static void main(String[] args) {</p><p> new DepartmentDelete1().function();}</p><p> p
52、ublic void bindDepartmentList(){</p><p> departmentList.removeAllItems();</p><p> String sql="select name from department;";</p><p> ResultSet rs =SqlHelper.executeQue
53、ry(sql);</p><p><b> try {</b></p><p> while(rs.next()){</p><p> this.departmentList.addItem(rs.getString(1)); }</p><p> Statement st=rs.getStatement();&
54、lt;/p><p> Connection conn=st.getConnection();</p><p> rs.close();</p><p> st.close();</p><p> conn.close();</p><p> } catch (SQLException e) {</p>
55、<p> e.printStackTrace();}}</p><p> //實(shí)現(xiàn)動作事件并鏈接數(shù)據(jù)庫將文本框內(nèi)信息存儲到數(shù)據(jù)庫中:</p><p> public void actionPerformed(ActionEvent e) {</p><p> if(e.getSource()==btnModify){</p>&l
56、t;p> if(txtName.getText().length()==0){</p><p> JOptionPane.showMessageDialog(null,"系部名不能為空!");</p><p><b> return; }</b></p><p> String sql="update
57、 department set name='"+txtName.getText()+"' where id="+cboId.getSelectedItem();</p><p> int count=SqlHelper.executeUpdate(sql);</p><p> if(count>0){ JOptionPane.show
58、MessageDialog(null,"系部名更新成功!"); }</p><p> else{JOptionPane.showMessageDialog(null,"系部名更新失敗!"); } }</p><p> if(e.getSource()==btnCancel){ dispose();}}</p><p>
59、public void itemStateChanged(ItemEvent e) {</p><p> if(e.getStateChange()==ItemEvent.SELECTED){</p><p> String did= cboId.getSelectedItem()+"";</p><p> String sql="
60、;select name from department where id="+did;</p><p> ResultSet rs =SqlHelper.executeQuery(sql);</p><p> try {rs.next();</p><p> txtName.setText(rs.getString(1));</p>
61、<p> Statement st =rs.getStatement();</p><p> Connection conn= st.getConnection();</p><p> rs.close();</p><p> st.close();</p><p> conn.close();</p>&l
62、t;p> } catch (SQLException e1) {</p><p> // TODO 自動生成 catch 塊</p><p> e1.printStackTrace();}}}}</p><p> //step3:操作數(shù)據(jù)庫的對象</p><p> Statement st=conn.createStateme
63、nt();</p><p> //step4:準(zhǔn)備需要執(zhí)行的sql 語句</p><p> String sql="insert into department values('"+txtName.getText()+"')";</p><p> //System.out.println(sql);<
64、;/p><p> //step5: 執(zhí)行insert的操作</p><p> int count= st.executeUpdate(sql);</p><p> //step 6:關(guān)閉對象</p><p> st.close();</p><p> conn.close(); JOptionPane.showM
65、essageDialog(null, "系部添加成功!","提示",JOptionPane.INFORMATION_MESSAGE,null);</p><p> } catch (ClassNotFoundException e1) {</p><p> System.out.println("未找到驅(qū)動!");</p
66、><p> e1.printStackTrace();} catch (SQLException e2) {</p><p> // TODO 自動生成 catch 塊</p><p> e2.printStackTrace();}}}</p><p><b> else</b></p><p&g
67、t; {this.txtName.setText("");}}</p><p><b> 4 系統(tǒng)運(yùn)行結(jié)果</b></p><p><b> 4.1系部添加</b></p><p><b> 圖12</b></p><p> 數(shù)據(jù)庫里面就有這條內(nèi)
68、容9</p><p><b> 圖13</b></p><p><b> 4.2系部修改</b></p><p><b> 圖14</b></p><p> 數(shù)據(jù)庫里面的內(nèi)容修改就如下:</p><p><b> 圖15</b&
69、gt;</p><p><b> 4.3系部刪除</b></p><p><b> 圖16</b></p><p> 數(shù)據(jù)庫里面的內(nèi)容如下:</p><p><b> 圖17</b></p><p> 4.4系部所有專業(yè)查詢</p>
70、<p><b> 圖18</b></p><p><b> 4.5專業(yè)添加</b></p><p><b> 圖19</b></p><p> 數(shù)據(jù)庫里面的內(nèi)容如下:</p><p><b> 圖20</b></p>
71、<p><b> 4.6專業(yè)修改</b></p><p><b> 圖21</b></p><p> 數(shù)據(jù)庫里面的內(nèi)容如下:</p><p><b> 圖22</b></p><p><b> 4.7專業(yè)刪除</b></p>
72、<p><b> 圖23</b></p><p><b> 數(shù)據(jù)庫的內(nèi)容如下:</b></p><p><b> 圖24</b></p><p> 4.8專業(yè)所在系部查詢</p><p><b> 圖25</b></p>
73、<p><b> 5 調(diào)試分析</b></p><p> 1.遇到數(shù)據(jù)庫連接的問題,在配置ODBC數(shù)據(jù)源的時候,找不到服務(wù)器,即使是配置本地的服務(wù)器也是不可以的,最后才發(fā)現(xiàn)我安裝的SQL Server2005是一個快速版本的,與常規(guī)配置不同,最后要輸入本機(jī)的計算機(jī)名字加上一個后綴才可以。</p><p> 2.在添加細(xì)部模塊的時候,遇到了下拉框的問
74、題(在老師還沒教下拉框之前做的),原本是打算要用死的方式來配置這個下拉框,后來想想應(yīng)該要用活的方式來弄下拉框會比較方便,就是下拉框的內(nèi)容直接從數(shù)據(jù)庫中提取出來,這個問題在陳德利的主導(dǎo)下,浪費(fèi)一點(diǎn)時間,問題就解決了。</p><p> 3.在系部所有專業(yè)查詢的模塊中,遇到了一個修改的問題,就是說我們要把查詢,修改,刪除集中在一個版面來解決,在查詢,刪除這兩個功能的順利完成下,到了修改這個功能時便停下了腳步,因?yàn)槔?/p>
75、師教的TABLE只用來顯示,并沒有執(zhí)行的功能,要想執(zhí)行編輯修改的功能必須還要另外的控件,這個過程會比較的麻煩,所以我們選擇了放棄,不過在私底下會自己好好的探尋。</p><p> 4.在系部刪除的模塊中,很容易忽略這樣的一個問題,也就是說在你把系部刪除之后,Major表,也就是專業(yè)表的這個系部的專業(yè)沒有刪除,后來我在刪除系部這個模塊的功能內(nèi)添加了兩個SQL語句,同時刪除專業(yè)表中的數(shù)據(jù)。</p>&
76、lt;p> 5.在刪除系部的模塊中,由于我采用的是下拉框的形式,在刪除之后下拉框還是顯示原來的內(nèi)容,并沒有把刪除的那個系部刪除掉(只是在界面而已,數(shù)據(jù)庫中已經(jīng)刪除掉了),后來我自己想出了一個很笨的辦法,就是在刪除完這個系部之后,把這個Frame直接Dispose掉,然后再讓它自動跳出一個Frame,這個新的Frame就沒有顯示那個已經(jīng)刪除掉的系部名稱。后來我還是向老師請教了問題,老師用了一個控件就是Bind(雖然在JDK里面沒有
77、查到這個),代碼如下:</p><p> public void bindDepartmentList(){departmentList.removeAllItems();</p><p> String sql="select name from department;"; </p><p> ResultSet rs =SqlHelp
78、er.executeQuery(sql);</p><p> try {while(rs.next()){this.departmentList.addItem(rs.getString(1)); </p><p> }Statement st=rs.getStatement();</p><p> Connection conn=st.getConnecti
79、on();s.close();st.close();conn.close();</p><p> }catch (SQLException e) {e.printStackTrace();}}</p><p> 6.數(shù)據(jù)庫中的department表與major表中的id如果不設(shè)置自增形式的話,在系部或者專業(yè)插入的時候,就會遇到異常。</p><p><b&
80、gt; 6 心得體會</b></p><p> 兩周的課程設(shè)計就這樣結(jié)束了,這期間既有快樂又有煩惱,快樂呢,是因?yàn)槊烤幫暌粋€模塊的內(nèi)容時,并且能夠正確的運(yùn)行出來,心里總會很高興,煩惱呢,也就是改了一個早上的程序還是不能運(yùn)行出正確的結(jié)果,很郁悶….</p><p> java是一門很靈活的課程,它的形式千變?nèi)f化,格式也是萬千種,如果只是“紙上談兵”,而不是“親臨戰(zhàn)場”,是很
81、難全面的掌握java的,原本我剛拿到書的那一刻,我就覺得這肯定又是一門無聊的理論課,后來證明我是錯的,java并不是純粹的理論課,它是集理論與實(shí)踐于一身的一門課程,既能讓人學(xué)到知識,又能讓人提高動手實(shí)踐的能力…剛拿到這個《學(xué)生成績管理系統(tǒng)》這個課題時,頭就開始痛了,因?yàn)椴恢缽暮巫テ?,后來聽老師所講,模塊化思維能力非常重要,利用結(jié)構(gòu)體,分為一個模塊一個模塊,然后用選擇,循環(huán),依次輸出結(jié)果,同時對文件的操作也是必須有所掌握,我按老師所講,
82、理了理頭緒,就開始編程了…經(jīng)過了四天的編程,調(diào)試,再改,再調(diào)試…然后再經(jīng)老師的指導(dǎo)…..終于完成了…從這兩周的課程設(shè)計中,我明白了課程設(shè)計這個課程是培養(yǎng)我們綜合運(yùn)用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié), 是對學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程.我們從接到課題的迷迷糊糊,到現(xiàn)在能夠完整的,按時的完成這個報告,非常感謝老師的指導(dǎo)還有同學(xué)們的幫忙。經(jīng)歷了這一個星期,我收獲了如下的幾點(diǎn):</p>&l
83、t;p> 1. 程序的設(shè)計思想的精巧的重要性,是不管怎么說都不為過的,好的程序可以讓大家很快的明白你的思想,而且很方便的來實(shí)現(xiàn)它。還有不管這程序有多長,只要你解釋了之后,別人很快就能明白,看程序也比較簡單了。</p><p> 2.java是一門實(shí)踐性較強(qiáng)的課程,為了學(xué)好這門課程,必須在掌握理論知識的同時,加強(qiáng)上機(jī)實(shí)踐。一個人的力量是有限的,要想把課程設(shè)計做的更好,就要學(xué)會參考一定的資料,要善于捕獲資料
84、,吸取別人的經(jīng)驗(yàn),讓自己和別人的思想有機(jī)的結(jié)合起來,得出屬于你自己的靈感。</p><p> 3.學(xué)會“遞進(jìn)”的思想:程序的編寫需要有耐心,有些事情看起來很復(fù)雜,但問題需要一點(diǎn)一點(diǎn)去解決,分析問題,把問題一個一個劃分,劃分成小塊以后就逐個去解決。再總體解決大的問題。這樣做起來不僅有條理也使問題得到了輕松的解決。</p><p> 這次的程序訓(xùn)練培養(yǎng)了我實(shí)際分析問題、編程和動手能力,使我
85、掌握了程序設(shè)計的基本技能,提高了我適應(yīng)實(shí)際,實(shí)踐編程的能力。</p><p> 這次的課程設(shè)計我對于專業(yè)課的學(xué)習(xí)有了更加深刻的認(rèn)識,以為現(xiàn)在學(xué)的知識用不上就加以怠慢,等到想用的時候卻發(fā)現(xiàn)自己的學(xué)習(xí)原來是那么的不扎實(shí)。以后努力學(xué)好每門專業(yè)課,讓自己擁有更多的知識,才能解決更多的問題! </p><p> 總的來說,這次課程設(shè)計讓我獲益匪淺,對數(shù)據(jù)結(jié)構(gòu)也有了進(jìn)一步的理解和認(rèn)識,也讓我相信
86、,只要你要做(just do it),沒有什么困難能難倒我們……</p><p> “黑夜過去了,我們收獲的是黎明?!边@一句話是我對這次java課程設(shè)計的最后總結(jié)。</p><p> 感謝課程設(shè)計,它的確教會我很多。</p><p> 感謝老師,讓我學(xué)到了更多的知識,給我構(gòu)建了一個知識系統(tǒng)框架。</p><p> 感謝同學(xué),與我風(fēng)雨同
87、舟</p><p><b> 7 附錄</b></p><p><b> 7.1源程序代碼</b></p><p> 7.1.1系部添加模塊的代碼: DepartmentAdd.java</p><p> package com.zj.stu.prj.ui;</p><p
88、> import java.awt.event.ActionEvent;</p><p> import java.awt.event.ActionListener;</p><p> import javax.swing.*;</p><p> import java.sql.*;</p><p> public class
89、 DepartmentAdd extends JFrame implements ActionListener{</p><p> //組件的實(shí)例化放在類</p><p> JLabel lblClassName=new JLabel("系部名稱:");//構(gòu)造方法</p><p> JTextField txtName=new JTex
90、tField(20);</p><p> JButton btnAdd=new JButton("添加");</p><p> JButton btnCancel=new JButton("取消");</p><p> public DepartmentAdd(){</p><p> /
91、/set frame</p><p> this.setSize(300,200); //設(shè)置窗體的大小</p><p> this.setTitle("添加系部");//設(shè)置窗體的標(biāo)題</p><p> this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//設(shè)置關(guān)閉</
92、p><p> this.setResizable(false);//設(shè)置窗體的大小不可變</p><p> this.setLocationRelativeTo(null); //設(shè)置居中</p><p> this.setIconImage(new ImageIcon("imgs/1.ico").getImage());//error<
93、/p><p> this.btnCancel.addActionListener(new ActionListener(){</p><p> public void actionPerformed(ActionEvent arg0) {</p><p> // TODO 自動生成方法存根</p><p> DepartmentAdd.t
94、his.setVisible(false);</p><p> DepartmentAdd.this.dispose();}});</p><p> this.setLayout(null);//將內(nèi)容面板的布局設(shè)置為空布局</p><p> lblClassName.setBounds(30,40, 80, 20);</p><p>
95、 txtName.setBounds(120,40,150,20);</p><p> btnAdd.setBounds(50,80,80,20); //alt+/:自動完成功能</p><p> btnCancel.setBounds(150,80,80,20);</p><p> this.add(lblClassName);</p>
96、<p> this.add(txtName);</p><p> this.add(btnAdd);</p><p> this.add(btnCancel);</p><p> btnAdd.addActionListener(this);</p><p> btnCancel.addActionListener(thi
97、s);</p><p><b> }</b></p><p> public static void main(String []args){</p><p> DepartmentAdd caf=new DepartmentAdd();</p><p> caf.setVisible(true); }<
98、/p><p> public void actionPerformed(ActionEvent e) {</p><p> //JOptionPane.showMessageDialog(null, "hello");</p><p> if(e.getSource()==btnAdd){</p><p> //判斷文
99、本框的值是否為空</p><p> if(this.txtName.getText().equals("")){</p><p> JOptionPane.showMessageDialog(null, "系部名不能為空!","提示",JOptionPane.ERROR_MESSAGE,null);</p>&l
100、t;p><b> }else</b></p><p><b> {將信息添加到DB</b></p><p> try {step1:查找驅(qū)動</p><p> Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");</p><p&g
101、t; //step2:創(chuàng)建連接對象</p><p> Connection conn=DriverManager.getConnection("jdbc:odbc:studb");</p><p> //System.out.println("數(shù)據(jù)庫已連接!");</p><p> //step3:操作數(shù)據(jù)庫的對象&l
102、t;/p><p> Statement st=conn.createStatement();</p><p> //step4:準(zhǔn)備需要執(zhí)行的sql 語句</p><p> String sql="insert into department values('"+txtName.getText()+"')";
103、</p><p> //System.out.println(sql);</p><p> //step5: 執(zhí)行insert的操作</p><p> int count= st.executeUpdate(sql);</p><p> //step 6:關(guān)閉對象</p><p> st.close();&l
104、t;/p><p> conn.close();</p><p> JOptionPane.showMessageDialog(null, "系部添加成功!","提示",JOptionPane.INFORMATION_MESSAGE,null);</p><p> } catch (ClassNotFoundException
105、 e1) {</p><p> // TODO 自動生成 catch 塊</p><p> System.out.println("未找到驅(qū)動!");</p><p> e1.printStackTrace();</p><p> } catch (SQLException e2) {</p><
106、;p> // TODO 自動生成 catch 塊</p><p> e2.printStackTrace();</p><p> }}}else{this.txtName.setText("");}}}</p><p> 7.1.2系部修改模塊的代碼: DepartmentModify.java</p><p&g
107、t; package com.zj.stu.prj.ui;</p><p> import java.awt.Graphics;</p><p> import java.awt.event.ActionEvent;</p><p> import java.awt.event.ActionListener;</p><p> im
108、port java.awt.event.ItemEvent;</p><p> import java.awt.event.ItemListener;</p><p> import java.sql.Connection;</p><p> import java.sql.DriverManager;</p><p> import
109、 java.sql.ResultSet;</p><p> import java.sql.SQLException;</p><p> import java.sql.Statement;</p><p> import javax.swing.*;</p><p> public class DepartmentModify ex
110、tends JFrame implements ActionListener,ItemListener{</p><p> //組件的實(shí)例化放在類</p><p> JLabel lblClassId=new JLabel("專業(yè)編號:");</p><p> //JTextField txtClassId=new JTextField
111、(20);</p><p> JComboBox cboId =new JComboBox();</p><p> JLabel lblClassName=new JLabel("專業(yè)名稱:");</p><p> JTextField txtName=new JTextField(20);</p><p>
112、JButton btnModify=new JButton("修改");</p><p> JButton btnCancel=new JButton("取消");</p><p> public DepartmentModify(){</p><p> //set frame</p><
113、p> this.setSize(300,200); //設(shè)置窗體的大小</p><p> this.setTitle("修改系部名稱");//設(shè)置窗體的標(biāo)題</p><p> this.setDefaultCloseOperation(JInternalFrame.DISPOSE_ON_CLOSE);//設(shè)置關(guān)閉</p><p>
114、this.setResizable(false);//設(shè)置窗體的大小不可變</p><p> //this.setClosable(true);</p><p> this.setLocation(200, 200);</p><p> this.setLocationRelativeTo(null); //設(shè)置居中</p><p>
115、 MyPanel contentPane=new MyPanel();</p><p> this.setContentPane(contentPane);</p><p> contentPane.setLayout(null);</p><p> lblClassId.setBounds(30, 10, 80, 20);</p><p
116、> cboId.setBounds(120, 10, 150, 20);</p><p> lblClassName.setBounds(30,40, 80, 20);</p><p> txtName.setBounds(120,40,150,20);</p><p> btnModify.setBounds(60,80,80,20); //al
117、t+/:自動完成功能</p><p> btnCancel.setBounds(160,80,80,20);</p><p> contentPane.add(lblClassId);</p><p> contentPane.add(cboId);</p><p> contentPane.add(lblClassName);<
118、;/p><p> contentPane.add(txtName);</p><p> contentPane.add(btnModify);</p><p> contentPane.add(btnCancel);</p><p> btnModify.addActionListener(this);</p><p&
119、gt; btnCancel.addActionListener(this);</p><p> //將班級編號添加到cboId中</p><p> ResultSet rs =SqlHelper.executeQuery("select id from department ");</p><p> try {while(rs.next(
120、)){</p><p> String id=rs.getString(1);</p><p> cboId.addItem(id); }</p><p> Statement st =rs.getStatement();</p><p> Connection conn= st.getConnection();</p>
121、<p> rs.close();st.close();conn.close();} catch (SQLException e) {</p><p> // TODO 自動生成 catch 塊</p><p> e.printStackTrace();}</p><p> cboId.addItemListener(this); }</p&
122、gt;<p> public static void main(String []args){</p><p> DepartmentModify caf=new DepartmentModify();</p><p> caf.setVisible(true); }</p><p> public void actionPerformed(
123、ActionEvent e) {</p><p> if(e.getSource()==btnModify){</p><p> if(txtName.getText().length()==0){</p><p> JOptionPane.showMessageDialog(null,"系部名不能為空!"); return; }</
124、p><p> String sql="update department set name='"+txtName.getText()+"' where id="+cboId.getSelectedItem();</p><p> int count=SqlHelper.executeUpdate(sql);</p>&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- erp課程設(shè)計--高校學(xué)生成績管理信息系統(tǒng)
- 學(xué)生成績管理信息系統(tǒng)課程設(shè)計
- 管理信息系統(tǒng)課程設(shè)計_-學(xué)生成績管理系統(tǒng)
- 管理信息系統(tǒng)課程設(shè)計---學(xué)生成績管理系統(tǒng)
- mis課程設(shè)計---學(xué)生成績管理信息系統(tǒng)
- 管理信息系統(tǒng)課程設(shè)計---學(xué)生成績管理系統(tǒng)
- java學(xué)生管理系統(tǒng)課程設(shè)計--學(xué)生成績管理信息系統(tǒng)
- 管理信息系統(tǒng)課程設(shè)計--學(xué)生成績管理系統(tǒng)設(shè)計與開發(fā)
- 管理信息系統(tǒng)課程設(shè)計報告---班級學(xué)生成績查詢系統(tǒng)
- 基于cs的高校學(xué)生成績管理信息系統(tǒng)設(shè)計與實(shí)現(xiàn)
- 課程設(shè)計---學(xué)生綜合成績評定管理信息系統(tǒng)
- c++程序設(shè)計課程設(shè)計---學(xué)生成績管理信息系統(tǒng)設(shè)計與開發(fā)
- 管理信息系統(tǒng)課程設(shè)計--企業(yè)工資管理信息系統(tǒng)
- 學(xué)生學(xué)籍管理信息系統(tǒng)課程設(shè)計
- 課程設(shè)計 學(xué)生選課管理信息系統(tǒng)
- 課程設(shè)計-- 學(xué)生成績信息管理系統(tǒng)
- 信息管理系統(tǒng)課程設(shè)計_學(xué)生選課管理信息系統(tǒng)課程設(shè)計
- 課程設(shè)計--學(xué)生信息管理信息系統(tǒng)
- 學(xué)生管理信息系統(tǒng)課程設(shè)計報告
- 管理信息系統(tǒng)課程設(shè)計---醫(yī)藥管理信息系統(tǒng)
評論
0/150
提交評論