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