版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 課 程 設(shè) 計 報 告</p><p> 課程名稱 企業(yè)資源計劃 </p><p> 課題名稱 高校學生成績管理信息系統(tǒng) </p><p> 2012年 6 月 25 日</p><p> 一、設(shè)計內(nèi)容與設(shè)計要求</p><p><
2、b> 1.設(shè)計內(nèi)容:</b></p><p> 高校學生成績管理信息系統(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> ?。?)本系統(tǒng)采用C/S模式進行開發(fā),采用JAVA語言進行界面及程序設(shè)計,后端采用SQL Server 2000數(shù)據(jù)庫系統(tǒng)。</p><p> (2)論
4、述課題的性質(zhì)、內(nèi)容以及本次課程設(shè)計的目的和要求。說明系統(tǒng)對計算機軟、硬件環(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> ?。?)編寫代碼、上機輸入、調(diào)試、修改并運行通過。</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、 二、進度安排</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> 正文的格式:一級標題用3號黑體,二級標題用四號宋體加粗,正文用小四號宋體;行距為22。</p><p> 正文的內(nèi)容:一、課題的主要功能;二、課題的功能模塊的劃分(要求畫出模塊圖);三、主要功能的實現(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實現(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ù)庫連接的實現(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 詳細設(shè)計7</b></p><p> 3.1系部插入模塊7</p><p>
11、 3.2系部刪除模塊8</p><p> 4 系統(tǒng)運行結(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 參考文獻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> 本文論述某學校學生成績管理系統(tǒng)專業(yè)系部兩個模塊的開發(fā)過程。全文分課程任務(wù)及要求、需求分析、設(shè)計思路、詳細設(shè)計、運行調(diào)試與分析討論設(shè)計體與小結(jié)及參考文獻共七部份內(nèi)容。本系統(tǒng)以Java Eclipse為開發(fā)平臺,選擇了易學易用可java圖形界面開發(fā)編程語言,主要用到了swing、awt、sql三個類包,結(jié)合單位實際,利用軟件工程化思想和方法,
15、總體上用結(jié)構(gòu)化生命周期法進行系統(tǒng)分析和設(shè)計,采用快速原型法來實現(xiàn)系統(tǒng)。在程序設(shè)計與調(diào)試上采用了自上而下、逐步細化,逐步完善的原則。</p><p> 采用結(jié)構(gòu)化的功能模塊設(shè)計系統(tǒng)功能,可讀性好,易于擴充。系部模塊由“系部插入”、“系部修改”、“系部刪除”、“系部所有專業(yè)查詢”等功能模塊組成,專業(yè)模塊由“專業(yè)插入”、“專業(yè)修改”、“專業(yè)刪除”和“專業(yè)所在系部查詢”等功能模塊組成?;竟δ茌^全面。本系統(tǒng)用戶界面友好
16、、清晰、操作簡便,易學易用;系統(tǒng)可讀性好,易于維護、更新,安全性較好。本系統(tǒng)采用傳統(tǒng)下拉菜單功能選擇,方便、快捷、一目了然,并且在一個窗體中進行操作,每個功能界面顏色不同,這樣可使系統(tǒng)可視化性比較強。對學生的基本信息進行簡單操作,可按名稱進行查詢、修改、刪除操作。本系統(tǒng)采用鏈入數(shù)據(jù)庫進行存儲,可動態(tài)進行查看、操作,這樣的系統(tǒng)可修改性較強。</p><p><b> 1.2實現(xiàn)方法</b>&
17、lt;/p><p> ?、賹W生學籍管理系統(tǒng)主界面模塊:</p><p> 采用Frame窗體來設(shè)置歡迎界面包括背景圖片及字幕(可以設(shè)計成滾動字幕效果),左上方的菜單條設(shè)計成下拉式。包括“系部插入”、“系部修改”、“系部刪除”、“系部所有專業(yè)查詢”“專業(yè)插入”、“專業(yè)修改”、“專業(yè)刪除”和“專業(yè)所在系部查詢”八項菜單項。</p><p> ?、谙挡坎迦牖拘畔⒛K:&
18、lt;/p><p> 由于我們在數(shù)據(jù)庫department表中的id采用的是自增,所以在界面當中只要輸入系部名稱就可以了。所以我們直接在Frame窗體中加入一個輸入框,用來填寫系部名字,再加上添加按鈕和取消兩個按鈕進行監(jiān)聽。</p><p> ?、坌薷南挡炕拘畔⒛0澹?lt;/p><p> 這個功能我們采用了下拉框的形式,我們下拉框里面的內(nèi)容是系部的id,然后下面的輸
19、出框就顯示出了這個系部的名稱,你可以在這個輸出輸入框中修改內(nèi)容,再加上添加按鈕和取消兩個按鈕進行監(jiān)聽。</p><p> ?、芟挡克袑I(yè)查詢基本信息模板:</p><p> 這個功能我們采用了一個二維表來顯示查詢到的結(jié)果,然后加上一個輸入框,里面輸入你想要查詢的系部的名稱,再加上一個添加的按鈕來進行監(jiān)聽并觸動事件,就能在二維表中顯示出你所查詢出來的所有專業(yè)。</p>&l
20、t;p> ⑤系部刪除基本信息模板:</p><p> 這個主要是采用了下拉框的方式,下拉框中的內(nèi)容是從數(shù)據(jù)庫中提取出來的,選中你所要刪除的系部,然后點擊“刪除”按鈕來實現(xiàn)監(jiān)聽。</p><p> 專業(yè)的插入查詢刪除修改的Frame窗體和系部是差不多的,所以我就不在這里一一介紹咯額,以下有圖片與代碼詳解。</p><p> 綜上,我們小組的模塊就是由以上
21、六部分組成,并將所有內(nèi)容信息在同一窗體中實現(xiàn),這樣可使系統(tǒng)可視化性提高。</p><p><b> 2 總體設(shè)計</b></p><p><b> 2.1總體設(shè)計圖</b></p><p><b> 圖1</b></p><p> 運行程序到系統(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> 運行程序到系統(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ù)庫連接的實現(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> 注意修改默認的數(shù)據(jù)庫,選中自己的數(shù)據(jù)庫student</p><p><b> 圖9</b></p><p> 進行數(shù)據(jù)庫的鏈接測試</p><p><b> 圖10</b></p><p><b> 圖11
29、</b></p><p> 在數(shù)據(jù)源管理器中會看到自己添加的數(shù)據(jù)源student。</p><p><b> 3 詳細設(shè)計</b></p><p> ?。ㄒ驗閷I(yè)這個模塊的功能與系部這個差不多,所里我這里就只舉例了系部這個模塊而已,剩下的看最后的源代碼)</p><p><b> 3.1系部插
30、入模塊</b></p><p> 1.首先導入該程序中所需要用到的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; //組件的實例化放在類</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è)置窗體的標題</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> //實現(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í)行的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.首先導入該程序中所需要用到的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> //實現(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í)行的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)運行結(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ī)配置不同,最后要輸入本機的計算機名字加上一個后綴才可以。</p><p> 2.在添加細部模塊的時候,遇到了下拉框的問
74、題(在老師還沒教下拉框之前做的),原本是打算要用死的方式來配置這個下拉框,后來想想應(yīng)該要用活的方式來弄下拉框會比較方便,就是下拉框的內(nèi)容直接從數(shù)據(jù)庫中提取出來,這個問題在陳德利的主導下,浪費一點時間,問題就解決了。</p><p> 3.在系部所有專業(yè)查詢的模塊中,遇到了一個修改的問題,就是說我們要把查詢,修改,刪除集中在一個版面來解決,在查詢,刪除這兩個功能的順利完成下,到了修改這個功能時便停下了腳步,因為老
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é)束了,這期間既有快樂又有煩惱,快樂呢,是因為每編完一個模塊的內(nèi)容時,并且能夠正確的運行出來,心里總會很高興,煩惱呢,也就是改了一個早上的程序還是不能運行出正確的結(jié)果,很郁悶….</p><p> java是一門很靈活的課程,它的形式千變?nèi)f化,格式也是萬千種,如果只是“紙上談兵”,而不是“親臨戰(zhàn)場”,是很
81、難全面的掌握java的,原本我剛拿到書的那一刻,我就覺得這肯定又是一門無聊的理論課,后來證明我是錯的,java并不是純粹的理論課,它是集理論與實踐于一身的一門課程,既能讓人學到知識,又能讓人提高動手實踐的能力…剛拿到這個《學生成績管理系統(tǒng)》這個課題時,頭就開始痛了,因為不知道從何抓起,后來聽老師所講,模塊化思維能力非常重要,利用結(jié)構(gòu)體,分為一個模塊一個模塊,然后用選擇,循環(huán),依次輸出結(jié)果,同時對文件的操作也是必須有所掌握,我按老師所講,
82、理了理頭緒,就開始編程了…經(jīng)過了四天的編程,調(diào)試,再改,再調(diào)試…然后再經(jīng)老師的指導…..終于完成了…從這兩周的課程設(shè)計中,我明白了課程設(shè)計這個課程是培養(yǎng)我們綜合運用所學知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié), 是對學生實際工作能力的具體訓練和考察過程.我們從接到課題的迷迷糊糊,到現(xiàn)在能夠完整的,按時的完成這個報告,非常感謝老師的指導還有同學們的幫忙。經(jīng)歷了這一個星期,我收獲了如下的幾點:</p>&l
83、t;p> 1. 程序的設(shè)計思想的精巧的重要性,是不管怎么說都不為過的,好的程序可以讓大家很快的明白你的思想,而且很方便的來實現(xiàn)它。還有不管這程序有多長,只要你解釋了之后,別人很快就能明白,看程序也比較簡單了。</p><p> 2.java是一門實踐性較強的課程,為了學好這門課程,必須在掌握理論知識的同時,加強上機實踐。一個人的力量是有限的,要想把課程設(shè)計做的更好,就要學會參考一定的資料,要善于捕獲資料
84、,吸取別人的經(jīng)驗,讓自己和別人的思想有機的結(jié)合起來,得出屬于你自己的靈感。</p><p> 3.學會“遞進”的思想:程序的編寫需要有耐心,有些事情看起來很復雜,但問題需要一點一點去解決,分析問題,把問題一個一個劃分,劃分成小塊以后就逐個去解決。再總體解決大的問題。這樣做起來不僅有條理也使問題得到了輕松的解決。</p><p> 這次的程序訓練培養(yǎng)了我實際分析問題、編程和動手能力,使我
85、掌握了程序設(shè)計的基本技能,提高了我適應(yīng)實際,實踐編程的能力。</p><p> 這次的課程設(shè)計我對于專業(yè)課的學習有了更加深刻的認識,以為現(xiàn)在學的知識用不上就加以怠慢,等到想用的時候卻發(fā)現(xiàn)自己的學習原來是那么的不扎實。以后努力學好每門專業(yè)課,讓自己擁有更多的知識,才能解決更多的問題! </p><p> 總的來說,這次課程設(shè)計讓我獲益匪淺,對數(shù)據(jù)結(jié)構(gòu)也有了進一步的理解和認識,也讓我相信
86、,只要你要做(just do it),沒有什么困難能難倒我們……</p><p> “黑夜過去了,我們收獲的是黎明?!边@一句話是我對這次java課程設(shè)計的最后總結(jié)。</p><p> 感謝課程設(shè)計,它的確教會我很多。</p><p> 感謝老師,讓我學到了更多的知識,給我構(gòu)建了一個知識系統(tǒng)框架。</p><p> 感謝同學,與我風雨同
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> //組件的實例化放在類</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è)置窗體的標題</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í)行的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> //組件的實例化放在類</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è)置窗體的標題</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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- erp課程設(shè)計--高校學生成績管理信息系統(tǒng)
- 學生成績管理信息系統(tǒng)課程設(shè)計
- 管理信息系統(tǒng)課程設(shè)計_-學生成績管理系統(tǒng)
- mis課程設(shè)計---學生成績管理信息系統(tǒng)
- 管理信息系統(tǒng)課程設(shè)計---學生成績管理系統(tǒng)
- 管理信息系統(tǒng)課程設(shè)計---學生成績管理系統(tǒng)
- java學生管理系統(tǒng)課程設(shè)計--學生成績管理信息系統(tǒng)
- 管理信息系統(tǒng)課程設(shè)計報告---班級學生成績查詢系統(tǒng)
- 基于cs的高校學生成績管理信息系統(tǒng)設(shè)計與實現(xiàn)
- 管理信息系統(tǒng)課程設(shè)計--學生成績管理系統(tǒng)設(shè)計與開發(fā)
- 課程設(shè)計---學生綜合成績評定管理信息系統(tǒng)
- c++程序設(shè)計課程設(shè)計---學生成績管理信息系統(tǒng)設(shè)計與開發(fā)
- 管理信息系統(tǒng)課程設(shè)計--企業(yè)工資管理信息系統(tǒng)
- 學生學籍管理信息系統(tǒng)課程設(shè)計
- 課程設(shè)計 學生選課管理信息系統(tǒng)
- 課程設(shè)計-- 學生成績信息管理系統(tǒng)
- 信息管理系統(tǒng)課程設(shè)計_學生選課管理信息系統(tǒng)課程設(shè)計
- 課程設(shè)計--學生信息管理信息系統(tǒng)
- 信息管理系統(tǒng)課程設(shè)計——學生成績管理系統(tǒng)
- 畢業(yè)論文-學生成績管理信息系統(tǒng)
評論
0/150
提交評論