版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> JAVA程序設(shè)計 課程設(shè)計報告</p><p> 課 題: </p><p> 姓 名: </p><p> 學(xué) 號: </p><p> 同組姓名:
2、 </p><p> 專業(yè)班級: </p><p> 指導(dǎo)教師: </p><p> 設(shè)計時間:2011-2-22 </p><p> 目 錄</p><p
3、> 一、課程設(shè)計目的和意義2</p><p> 二、高考信息管理系統(tǒng)數(shù)據(jù)庫結(jié)構(gòu)設(shè)計3</p><p> 三、主控界面的設(shè)計5</p><p><b> 四、系統(tǒng)設(shè)計10</b></p><p> 五、數(shù)據(jù)源連接說明14</p><p> 六、運行截圖及說明16<
4、/p><p><b> 七、小結(jié)19</b></p><p><b> 八、參考文獻20</b></p><p> 一、課程設(shè)計目的和意義</p><p> 高考成績的統(tǒng)計和查詢工作是非常重要的,高考成績面向的是全國范圍內(nèi)的考生,它涉及的面比較廣、數(shù)據(jù)量大,如果在設(shè)計上出現(xiàn)什么問題,都會在社
5、會上產(chǎn)生巨大的影響。在這里我們只是簡單地做一個高考成績查詢和統(tǒng)計的小系統(tǒng),并沒有考慮安全性等方面的的問題,主要目的是通過這個課程設(shè)計的學(xué)習(xí),對用JAVA開發(fā)數(shù)據(jù)庫系統(tǒng)有更為深刻的認(rèn)識。還有本次我們開發(fā)的是高考管理系統(tǒng)是以“3+2”為模型的。</p><p> 高考成績管理模塊主要實現(xiàn)以下功能:</p><p> ?。?)高考成績錄入。高考成績錄入包括成績的添加、修改、編輯和自動統(tǒng)計等功能
6、。目前高考主要包括兩個方面:文科和理科。文科成績錄入和理科成績錄入分別是兩個不同的模塊。</p><p> ?。?)高考成績查詢。成績查詢也分為理科查詢和文科查詢兩個部分,成績查詢部分最好是應(yīng)用準(zhǔn)考證查詢,這是因為準(zhǔn)考證號是全國統(tǒng)一并且唯一的,這樣就避免了同名同姓出現(xiàn)查詢重復(fù)的。如圖1所示,在這個系統(tǒng)中,包含4個模塊:理科成績錄入、理科成績查詢、文科成績錄入和文科成績查詢。其中,理科成績錄入和文科成績錄入、理科成
7、績查詢和文科成績查詢兩個模塊的設(shè)計思想基本一致。</p><p> ?。?)建立理(文)科成績錄入和查詢界面。建立一個理科數(shù)據(jù)庫表,用來記錄準(zhǔn)考證號(這個作為數(shù)據(jù)庫表的主鍵,惟一標(biāo)識)、學(xué)生考號和姓名。另外再建立一個理科數(shù)據(jù)庫表,用來記錄學(xué)生姓名、考號之外的其他信息,并記錄各科的成績。</p><p> ?。?)本系統(tǒng)查詢與成績設(shè)計。系統(tǒng)設(shè)計要求在考生查詢的同時自動進行統(tǒng)計工作,這是一種人
8、性化的需求,統(tǒng)計和查詢只需要一個事件代碼和一個執(zhí)行動作即可完成。</p><p> 高考系統(tǒng)模塊設(shè)計如下圖1所示:</p><p> 圖1 高考系統(tǒng)模塊設(shè)計</p><p> 二、高考信息管理系統(tǒng)數(shù)據(jù)庫結(jié)構(gòu)設(shè)計</p><p> 文科數(shù)據(jù)表的設(shè)計與理科表的設(shè)計方式基本上一致,并且本人負(fù)責(zé)的是理科查詢部分,在這里就不詳細(xì)介紹文科的了,
9、下面介紹理科表詳細(xì)設(shè)計。</p><p><b> 1、理科主數(shù)據(jù)表</b></p><p> 建立理科主數(shù)據(jù)表,如表1所示。</p><p> 表1 理科主數(shù)據(jù)表的結(jié)構(gòu)</p><p> 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計如圖2所示,該結(jié)構(gòu)說明在數(shù)據(jù)表的結(jié)構(gòu)創(chuàng)建時,設(shè)置了準(zhǔn)考證號為關(guān)鍵字段,即在cardID的左邊有一個鑰匙的
10、符號,是關(guān)鍵字的符號。另個添加了學(xué)生姓名,還設(shè)計了該考生的考前學(xué)校,這樣,當(dāng)查詢到該考號時就可以知道該生所在學(xué)校。</p><p><b> 2、理科從數(shù)據(jù)表</b></p><p> 從表的字段主要包括4個字段,即科目序號、考試成績、準(zhǔn)考證號和考試科目,如下表2所示。</p><p> 表2 理科從數(shù)據(jù)表</p>&l
11、t;p> 理科從數(shù)據(jù)表設(shè)計如圖3所示,該結(jié)構(gòu)說明在數(shù)據(jù)表的結(jié)構(gòu)創(chuàng)建時,設(shè)置了準(zhǔn)考證號和科目序號一起作為關(guān)鍵字段,即在cardID和subjectID的左邊有一個鑰匙的符號,是關(guān)鍵字的符號。另個添加了考試科目、考試成績和與考試科目對應(yīng)的字段。</p><p> 圖2 理科主數(shù)據(jù)表</p><p> 圖3 理科從數(shù)據(jù)表</p><p><b>
12、 三、主控界面的設(shè)計</b></p><p> 主控界面主要用來調(diào)用其他界面,這個界面的主要作用是顯示理科成績錄入、理科成績查詢、文科成績錄入和文科成績查詢4個界面,可以根據(jù)需要對其進行選擇。它的基本結(jié)構(gòu)如圖4所示。</p><p><b> 圖4 主控界面圖</b></p><p> 1、主控界面放入控件與窗體布局:<
13、;/p><p> (1)在控件中放入一個jPanel,將布局方式改為xyLayout.</p><p> ?。?)在控件中放入4個jLabel:jLabel1、jLabel2、jLabel3、jLabel4,主要是用來設(shè)計整個界面的布局。</p><p> ?。?)在控件中放入4個jRadioButton:rdbInputScnAch(理科成績錄入)、rdbQuer
14、yScnAch(理科成績查詢)、rdbInputArtAch(文科成績錄入)、rdbQueryArtAch(文科成績查詢)。</p><p> ?。?)添加鼠標(biāo)單擊事件rdbInputScnAch_mouseClickd(MouseEvent e)、rdbQueryScnAch_mouseClickd(MouseEvent e)、rdbInputArtAch_mouseClickd(MouseEvent e)、r
15、dbQuerytArtAch_mouseClickd(MouseEvent e).</p><p> 2、主控界面設(shè)計具體代碼如下所示:</p><p> package infomanagement;</p><p> import java.awt.*;</p><p> import java.awt.event.*;</
16、p><p> import javax.swing.*;</p><p> import com.borland.jbcl.layout.*;</p><p> import javax.swing.border.*;</p><p> public class Frame1 extends JFrame {</p><
17、;p> private JPanel contentPane;</p><p> private BorderLayout borderLayout1 = new BorderLayout();</p><p> private JPanel jPanel1 = new JPanel();</p><p> //設(shè)置jPanel1的布局方式為xylay
18、out,任意布局</p><p> private XYLayout xYLayout1 = new XYLayout();</p><p> private JLabel jLabel1 = new JLabel();</p><p> private TitledBorder titledBorder1;</p><p> pri
19、vate JLabel jLabel2 = new JLabel();</p><p> private JLabel jLabel3 = new JLabel();</p><p> private JLabel jLabel4 = new JLabel();</p><p><b> //理科成績錄入</b></p>&
20、lt;p> private JRadioButton rdbInputScnAch = new JRadioButton();</p><p><b> //理科成績查詢</b></p><p> private JRadioButton rdbQqueryScnAch = new JRadioButton();</p><p>&
21、lt;b> //文科成績錄入</b></p><p> private JRadioButton rdbInputArtAch = new JRadioButton();</p><p><b> //文科成績查詢</b></p><p> private JRadioButton rdbQueryArtAch = n
22、ew JRadioButton();</p><p><b> //建立框架</b></p><p> public Frame1() {</p><p> enableEvents(AWTEvent.WINDOW_EVENT_MASK);</p><p><b> try {</b><
23、;/p><p><b> jbInit();</b></p><p><b> }</b></p><p> catch(Exception e) {</p><p> e.printStackTrace();</p><p><b> }</b>
24、</p><p><b> }</b></p><p><b> //組件初始化</b></p><p> private void jbInit() throws Exception {</p><p> contentPane = (JPanel) this.getContentPan
25、e();</p><p> titledBorder1 = new TitledBorder("");</p><p> contentPane.setLayout(borderLayout1);</p><p> this.setSize(new Dimension(399, 288));</p><p> th
26、is.setTitle("Frame Title");</p><p> jPanel1.setLayout(xYLayout1);</p><p> jLabel1.setFont(new java.awt.Font("Dialog", 0, 23));</p><p> jLabel1.setForeground(C
27、olor.green);</p><p> jLabel1.setBorder(titledBorder1);</p><p><b> //輸入項目標(biāo)題</b></p><p> jLabel1.setText(" 通用高考成績管理系統(tǒng)");</p><p> //
28、設(shè)置jLabel2的邊界為etch</p><p> jLabel2.setBorder(BorderFactory.createEtchedBorder());</p><p> jLabel3.setText("請選擇");</p><p> jLabel4.setBorder(BorderFactory.createEtchedBor
29、der());</p><p> jLabel4.setToolTipText("");</p><p> //將文字顏色設(shè)為紅色</p><p> rdbInputScnAch.setForeground(Color.red);</p><p> //rdbInputScnAch的標(biāo)題 理科成績錄入</p&
30、gt;<p> rdbInputScnAch.setText("理科成績錄入");</p><p> //加入jRadioButton事件,rdbInputScnAch(理科成績錄入)</p><p> rdbInputScnAch.addMouseListener(new java.awt.event.MouseAdapter() {</p&
31、gt;<p> //添加鼠標(biāo)單擊事件</p><p> public void mouseClicked(MouseEvent e) {</p><p> rdbInputScnAch_mouseClicked(e);</p><p><b> }</b></p><p><b> })
32、;</b></p><p> //將文字顏色設(shè)為紅色</p><p> rdbQqueryScnAch.setForeground(Color.red);</p><p> //rdbQqueryScnAch的標(biāo)題 理科成績查詢</p><p> rdbQqueryScnAch.setText("理科成績查詢&q
33、uot;);</p><p> //加入jRadioButton事件 rdbQqueryScnAch("理科成績查詢")</p><p> rdbQqueryScnAch.addMouseListener(new java.awt.event.MouseAdapter() {</p><p> //添加鼠標(biāo)單擊事件</p>&
34、lt;p> public void mouseClicked(MouseEvent e) {</p><p> rdbQqueryScnAch_mouseClicked(e);</p><p><b> }</b></p><p><b> });</b></p><p> //將文
35、字顏色設(shè)為紅色</p><p> rdbInputArtAch.setForeground(Color.red);</p><p> //rdbInputArtAch的標(biāo)題 文科成績錄入</p><p> rdbInputArtAch.setText("文科成績錄入");</p><p> //加入jRadioBu
36、tton事件 rdbInputArtAch("文科成績錄入")</p><p> rdbInputArtAch.addMouseListener(new java.awt.event.MouseAdapter() {</p><p> //添加鼠標(biāo)單擊事件</p><p> public void mouseClicked(MouseEve
37、nt e) {</p><p> rdbInputArtAch_mouseClicked(e);</p><p><b> }</b></p><p><b> });</b></p><p> //將文字顏色設(shè)為紅色</p><p> rdbQueryArtAch
38、.setForeground(Color.red);</p><p> //rdbQueryArtAch的標(biāo)題 文科成績查詢</p><p> rdbQueryArtAch.setText("文科成績查詢");</p><p> //加入jRadioButton事件 rdbQueryArtAch("文科成績查詢")<
39、;/p><p> rdbQueryArtAch.addMouseListener(new java.awt.event.MouseAdapter() {</p><p> //添加鼠標(biāo)單擊事件</p><p> public void mouseClicked(MouseEvent e) {</p><p> rdbQueryArtAch
40、_mouseClicked(e);</p><p><b> }</b></p><p><b> });</b></p><p> contentPane.add(jPanel1, BorderLayout.CENTER);</p><p> //放置jLanel1在jPanel1中的位置
41、</p><p> jPanel1.add(jLabel1, new XYConstraints(0, 0, 400, 47));</p><p> //放置jLanel2在jPanel1中的位置</p><p> jPanel1.add(jLabel2, new XYConstraints(1, 46, 398, 242));</p>
42、<p> //放置rdbInputScnAch在jPanel1中的位置</p><p> jPanel1.add(rdbInputScnAch, new XYConstraints(50, 130, -1, -1));</p><p> //放置rdbQqueryScnAch在jPanel1中的位置</p><p> jPanel1.add(r
43、dbQqueryScnAch, new XYConstraints(200, 130, -1, -1));</p><p> //放置rdbInputArtAch在jPanel1中的位置</p><p> jPanel1.add(rdbInputArtAch, new XYConstraints(50, 200, -1, -1));</p><p>
44、//放置rdbQueryArtAch在jPanel1中的位置</p><p> jPanel1.add(rdbQueryArtAch, new XYConstraints(200, 200, -1, -1));</p><p> //放置jLanel3在jPanel1中的位置</p><p> jPanel1.add(jLabel3, new XYCon
45、straints(3, 48, 92, 22));</p><p> //放置jLanel4在jPanel1中的位置</p><p> jPanel1.add(jLabel4, new XYConstraints(33, 94, 320, 165));</p><p><b> }</b></p><p> //
46、當(dāng)窗口關(guān)閉時,退出系統(tǒng)</p><p> protected void processWindowEvent(WindowEvent e) {</p><p> super.processWindowEvent(e);</p><p> if (e.getID() == WindowEvent.WINDOW_CLOSING) {</p><
47、p> System.exit(0);</p><p><b> }</b></p><p><b> }</b></p><p> //顯示理科成績錄入界面</p><p> void rdbInputScnAch_mouseClicked(MouseEvent e) {</p
48、><p> //調(diào)用理科成績錄入界面對話框</p><p> ScienceAchievement dlg = new ScienceAchievement();</p><p> Dimension dlgSize = dlg.getPreferredSize();</p><p> Dimension frmSize = getSiz
49、e();</p><p> Point loc = getLocation();</p><p> dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);</p><p> dlg.setModal(
50、true);</p><p> dlg.pack();</p><p> dlg.show();</p><p><b> }</b></p><p> //顯示理科成績查詢界面</p><p> void rdbQqueryScnAch_mouseClicked(MouseEvent
51、e) {</p><p> //調(diào)用理科成績查詢界面對話框</p><p> ScienceQuery dlg = new ScienceQuery();</p><p> Dimension dlgSize = dlg.getPreferredSize();</p><p> Dimension frmSize = getSize(
52、);</p><p> Point loc = getLocation();</p><p> dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);</p><p> dlg.setModal(tr
53、ue);</p><p> dlg.pack();</p><p> dlg.show();</p><p><b> }</b></p><p> //顯示文科成績錄入界面</p><p> void rdbInputArtAch_mouseClicked(MouseEvent e)
54、{</p><p> //調(diào)用文科成績錄入界面對話框</p><p> ArtsAchievement dlg = new ArtsAchievement();</p><p> Dimension dlgSize = dlg.getPreferredSize();</p><p> Dimension frmSize = getSi
55、ze();</p><p> Point loc = getLocation();</p><p> dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);</p><p> dlg.setModal
56、(true);</p><p> dlg.pack();</p><p> dlg.show();</p><p><b> }</b></p><p> //顯示文科成績查詢界面</p><p> void rdbQueryArtAch_mouseClicked(MouseEvent
57、e) {</p><p> //調(diào)用文科成績查詢界面對話框</p><p> ArtsQuery dlg = new ArtsQuery();</p><p> Dimension dlgSize = dlg.getPreferredSize();</p><p> Dimension frmSize = getSize();<
58、/p><p> Point loc = getLocation();</p><p> dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);</p><p> dlg.setModal(true);&l
59、t;/p><p> dlg.pack();</p><p> dlg.show();</p><p><b> }</b></p><p><b> }</b></p><p><b> 四、系統(tǒng)設(shè)計</b></p><p>
60、; 據(jù)分工不同,此處只說明本人負(fù)責(zé)的理科成績查詢設(shè)計,文科成績錄入及查詢等其他功能部分由同組其他成員詳敘。</p><p> 1、理科成績查詢模塊窗體屬性事件的設(shè)計如下:</p><p> ?。?)加入jPanel1,并設(shè)布局方式威爾xyLayout1。</p><p> ?。?)加入兩個jLabel,對窗體進行整體布局。jLabel1的文本標(biāo)題設(shè)置為“理科成績
61、查詢”;jLabel2在整體布局時只是起到裝飾作用。</p><p> ?。?)加入一個jLabel3,文本標(biāo)題為“準(zhǔn)考證號”。</p><p> ?。?)加入一個jTextField,將其命名為jtfCardID.</p><p> ?。?)加入一個jButton,將其命名為jbnQuery,文本設(shè)置為“執(zhí)行查詢”。</p><p> (
62、6)加入一個jLabel4,文本標(biāo)題設(shè)置為“總成績”。</p><p> ?。?)加入一個jdbTextField1。</p><p> ?。?)加入一個jButton,將其命名為jbnExit。</p><p> ?。?)加入一個數(shù)據(jù)庫控件database1,用于連接數(shù)據(jù)庫。</p><p> (10)加入一個數(shù)據(jù)庫控件queryData
63、Set1,用于執(zhí)行SQL語句。</p><p> ?。?1)加入一個jdbTable1數(shù)據(jù)庫控件。 </p><p> 窗體屬性設(shè)計部分具體代碼如下:</p><p> package infomanagement;</p><p> import java.awt.*;</p><p> import jav
64、ax.swing.*;</p><p> import com.borland.jbcl.layout.*;</p><p> import com.borland.dbswing.*;</p><p> import com.borland.dx.sql.dataset.*;</p><p> import java.awt.eve
65、nt.*;</p><p> import com.borland.dx.dataset.*;</p><p> public class ScienceQuery extends JDialog {</p><p> private JPanel jPanel1 = new JPanel(); //添加新的面板</p><p>
66、 private XYLayout xYLayout1 = new XYLayout();</p><p> private JLabel jLabel1 = new JLabel(); //添加“理科成績查詢標(biāo)簽”</p><p> private JLabel jLabel2 = new JLabel(); //添加一個標(biāo)簽,完成界面布局</p><p&
67、gt; private JLabel jLabel3 = new JLabel(); //添加“準(zhǔn)考證號”標(biāo)簽</p><p> private JTextField jtfCardID = new JTextField();</p><p> private JButton jbnQuery = new JButton();</p><p> priv
68、ate Database database1 = new Database();</p><p> private QueryDataSet queryDataSet1 = new QueryDataSet(); //添加數(shù)據(jù)集queryDataSet1</p><p> private JdbTable jdbTable1 = new JdbTable();</p>&
69、lt;p> private JLabel jLabel4 = new JLabel(); //添加“總成績”標(biāo)簽</p><p> private JLabel jLabel5 = new JLabel(); //添加“退出”標(biāo)簽</p><p> private JButton jbnExit = new JButton();</p><p
70、> private Column column1 = new Column();</p><p> private Column column2 = new Column();</p><p> private Column column3 = new Column();</p><p> private Column column4 = new Co
71、lumn();</p><p> private Column column5 = new Column();</p><p> private JdbTextField jdbTextField1 = new JdbTextField();</p><p> private QueryDataSet queryDataSet2 = new QueryData
72、Set();</p><p> public ScienceQuery(Frame frame, String title, boolean modal) {</p><p> super(frame, title, modal);</p><p><b> try {</b></p><p><b>
73、 jbInit();</b></p><p><b> pack();</b></p><p><b> }</b></p><p> catch(Exception ex) {</p><p> ex.printStackTrace();</p><p>
74、;<b> }</b></p><p><b> }</b></p><p> public ScienceQuery() {</p><p> this(null, "", false);</p><p><b> }</b></p>
75、<p> private void jbInit() throws Exception {</p><p> //設(shè)置jPanel1為任意放置</p><p> jPanel1.setLayout(xYLayout1);</p><p> jLabel1.setFont(new java.awt.Font("Dialog",
76、 0, 23));</p><p> jLabel1.setForeground(Color.magenta);</p><p> jLabel1.setBorder(BorderFactory.createEtchedBorder());</p><p> //設(shè)置文本標(biāo)題 理科成績查詢</p><p> jLabel1.setTe
77、xt("理科成績查詢");</p><p> jLabel2.setBorder(BorderFactory.createEtchedBorder());</p><p> //設(shè)置文本標(biāo)題 準(zhǔn)考證號</p><p> jLabel3.setText("準(zhǔn)考證號");</p><p><b&
78、gt; //設(shè)置文本標(biāo)題</b></p><p> jbnQuery.setText("執(zhí)行查詢");</p><p> jbnQuery.addActionListener(new java.awt.event.ActionListener() {</p><p> public void actionPerformed(A
79、ctionEvent e) {</p><p> jbnQuery_actionPerformed(e);</p><p><b> }</b></p><p><b> });</b></p><p> //連接數(shù)據(jù)庫(local)</p><p> databa
80、se1.setConnection(new com.borland.dx.sql.dataset.ConnectionDescriptor("jdbc:odbc:local","sa","",false, "sun.jdbc.odbc.JdbcOdbcDriver"));</p><p> //設(shè)置文本標(biāo)題 執(zhí)行查詢</p&g
81、t;<p> jLabel4.setText("總成績");</p><p> //設(shè)置文本標(biāo)題 退出</p><p> jbnExit.setText("退出");</p><p><b> //添加退出事件</b></p><p> jbnExit.ad
82、dActionListener(new java.awt.event.ActionListener() {</p><p> public void actionPerformed(ActionEvent e) {</p><p> jbnExit_actionPerformed(e);</p><p><b> }</b></p&
83、gt;<p><b> });</b></p><p> column1.setColumnName("NewColumn1");</p><p> column1.setDataType(com.borland.dx.dataset.Variant.STRING);</p><p> column1.
84、setPreferredOrdinal(4);</p><p> column1.setServerColumnName("NewColumn1");</p><p> column1.setSqlType(0);</p><p> column2.setColumnName("subject");</p>
85、<p> column2.setDataType(com.borland.dx.dataset.Variant.STRING);</p><p> column2.setPrecision(50);</p><p> column2.setPreferredOrdinal(0);</p><p> column2.setSchemaName(&q
86、uot;dbo");</p><p> column2.setTableName("science2");</p><p> column2.setServerColumnName("subject");</p><p> column2.setSqlType(12);</p><p>
87、 column3.setColumnName("subjectNameID");</p><p> column3.setDataType(com.borland.dx.dataset.Variant.LONG);</p><p> column3.setPreferredOrdinal(1);</p><p> column3.setS
88、chemaName("dbo");</p><p> column3.setTableName("science2");</p><p> column3.setServerColumnName("subjectNameID");</p><p> column3.setSqlType(-5);<
89、;/p><p> column4.setColumnName("cardID");</p><p> column4.setDataType(com.borland.dx.dataset.Variant.LONG);</p><p> column4.setPreferredOrdinal(2);</p><p> c
90、olumn4.setSchemaName("dbo");</p><p> column4.setTableName("science2");</p><p> column4.setServerColumnName("cardID");</p><p> column4.setSqlType(-5)
91、;</p><p> column5.setColumnName("achievement");</p><p> column5.setDataType(com.borland.dx.dataset.Variant.STRING);</p><p> column5.setPrecision(50);</p><p&g
92、t; column5.setPreferredOrdinal(3);</p><p> column5.setSchemaName("dbo");</p><p> column5.setTableName("science2");</p><p> column5.setServerColumnName("
93、achievement");</p><p> column5.setSqlType(12);</p><p> this.getContentPane().add(jPanel1, BorderLayout.CENTER);</p><p> //在jPanel1中放置各個控件</p><p> jPanel1.add(j
94、Label1, new XYConstraints(0, 1, 399, 53));</p><p> jPanel1.add(jLabel3, new XYConstraints(10, 66, 80, 19));</p><p> jPanel1.add(jtfCardID, new XYConstraints(97, 66, 80, 21));</p>&
95、lt;p> jPanel1.add(jLabel2, new XYConstraints(0, 53, 398, 49));</p><p> jPanel1.add(jbnQuery, new XYConstraints(300, 66, 90, 22));</p><p> jPanel1.add(jdbTable1, new XYConstrai
96、nts(0, 100, 398, 154));</p><p> jPanel1.add(jLabel4, new XYConstraints(10, 268, 80, 20));</p><p> jPanel1.add(jbnExit, new XYConstraints(300, 268, 90, 20));</p><p> jPane
97、l1.add(jdbTextField1, new XYConstraints(100, 268, 90, 20));</p><p><b> }</b></p><p><b> //定義退出方法</b></p><p> void cancel(){</p><p> dispo
98、se() ;</p><p><b> }</b></p><p><b> //退出事件</b></p><p> void jbnExit_actionPerformed(ActionEvent e) {</p><p> cancel();}</p><p>&
99、lt;b> }</b></p><p> 2、成績查詢流程圖如下:</p><p> 圖5 理科成績查詢流程圖</p><p><b> 五、數(shù)據(jù)源連接說明</b></p><p> 在SQL Server 里創(chuàng)建數(shù)據(jù)庫和表后,前臺界面設(shè)計好,就開始前后臺數(shù)據(jù)源的連接了。我們采用的是ODBC數(shù)
100、據(jù)源連接,具體做法是在電腦控制面板中點擊“管理工具”—>“數(shù)據(jù)源(ODBC)”,彈出數(shù)據(jù)源管理器對話框,選擇系統(tǒng)DNS面板,配置SQL sever DNS,如圖6所示,接著一步一步選擇相應(yīng)數(shù)據(jù)庫等簡單步驟,最后測試數(shù)據(jù)源,確定即可,見圖7。</p><p><b> 圖 6 配置數(shù)據(jù)源</b></p><p><b> 圖7 測試數(shù)據(jù)源</b
101、></p><p><b> 六、運行截圖及說明</b></p><p> 本人負(fù)責(zé)理科查詢,此處只貼出理科查詢運行情況,其他功能部分運行截圖略去。</p><p> 理科成績查詢?nèi)缦聢D15:</p><p> 圖15 理科成績查詢截圖</p><p> 上述查詢結(jié)果由輸入準(zhǔn)考證號
102、,點擊“執(zhí)行查詢”觸發(fā)數(shù)據(jù)集執(zhí)行數(shù)據(jù)庫里查詢,主要方法代碼如下:</p><p><b> //執(zhí)行查詢語句</b></p><p> void jbnQuery_actionPerformed(ActionEvent e) {</p><p><b> //進行數(shù)據(jù)查詢</b></p><p&g
103、t;<b> try{</b></p><p> queryDataSet1 = new QueryDataSet();</p><p> queryDataSet2 = new QueryDataSet();</p><p><b> //獲得準(zhǔn)考證號</b></p><p> int
104、cardID1 = Integer.parseInt(jtfCardID.getText().trim());</p><p><b> //查詢學(xué)習(xí)成績</b></p><p> queryDataSet1.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELEC
105、T science2.cardID,science2.subject,science2.achievement,science2.subjectNameID " +</p><p> "FROM info.dbo.science2 where science2.cardID = '"+cardID1+"'", null, true, Load.A
106、LL));</p><p> //加入到j(luò)dbTable1中</p><p> jdbTable1.setDataSet(queryDataSet1);</p><p> //執(zhí)行sum語句,獲得成績總分</p><p> queryDataSet2.setQuery(new com.borland.dx.sql.dataset.Qu
107、eryDescriptor(database1,"SELECT SUM(achievement) AS SUM_achievement FROM info.dbo.science2\n" +"where science2.cardID ='"+cardID1+"'", null, true, Load.ALL));</p><p> /
108、/在jdbTextField1中加入一列</p><p> jdbTextField1.setColumnName("SUM_achievement");</p><p> //把數(shù)據(jù)集加入到j(luò)dbTextField1中</p><p> jdbTextField1.setDataSet(queryDataSet2);</p>
109、<p><b> }</b></p><p> catch(Exception sql){</p><p> JOptionPane.showMessageDialog(this,"準(zhǔn)考證不存在,請重試");</p><p> sql.printStackTrace();</p><p
110、><b> }</b></p><p><b> }</b></p><p> 其中數(shù)據(jù)集QueryDataSet()在數(shù)據(jù)庫里的操作具體實現(xiàn)如下:</p><p> package infomanagement;</p><p> import com.borland.dx.dat
111、aset.*;</p><p> public class QueryDataSet1RowIterator {</p><p> private RowIterator rowIterator = new RowIterator();</p><p> public QueryDataSet1RowIterator() {}</p><p
112、> void bind(DataSet dataset) throws DataSetException {</p><p> rowIterator.bind(dataset);</p><p><b> }</b></p><p> void bind(ReadRow readRow) throws DataSetExcept
113、ion {</p><p> rowIterator.bind(readRow);</p><p><b> }</b></p><p> void bind(ReadWriteRow readWriteRow) throws DataSetException {</p><p> rowIterator.bin
114、d(readWriteRow);</p><p><b> }</b></p><p> void bind(RowIterator ri) throws DataSetException {</p><p> rowIterator.bind(ri);</p><p><b> }</b>
115、</p><p><b> //獲得第一條記錄</b></p><p> public void first() throws DataSetException {</p><p> rowIterator.first();</p><p><b> }</b></p><
116、;p> //獲得最后一條記錄</p><p> public void last() throws DataSetException {</p><p> rowIterator.last();</p><p><b> }</b></p><p><b> //獲得下一條記錄</b>
117、;</p><p> public boolean next() throws DataSetException {</p><p> return rowIterator.next();</p><p><b> }</b></p><p><b> //獲得上一條記錄</b></p
118、><p> public boolean prior() throws DataSetException {</p><p> return rowIterator.prior();</p><p><b> }</b></p><p><b> //獲得準(zhǔn)考證號</b></p>
119、<p> public int getCardID() throws DataSetException { </p><p> return rowIterator.getInt("cardID");</p><p><b> }</b></p><p><b> //設(shè)置準(zhǔn)考證號</b&
120、gt;</p><p> public void setCardID(int value) throws DataSetException { </p><p> rowIterator.setInt("cardID", value);</p><p><b> }</b></p><p>&l
121、t;b> //獲得學(xué)生姓名</b></p><p> public String getStudentName() throws DataSetException { </p><p> return rowIterator.getString("studentName");</p><p><b> }&l
122、t;/b></p><p><b> //設(shè)置學(xué)生姓名</b></p><p> public void setStudentName(String value) throws DataSetException {</p><p> rowIterator.setString("studentName", val
123、ue);</p><p><b> } </b></p><p><b> //獲得學(xué)校名</b></p><p> public String getSchoolBefore() throws DataSetException { </p><p> return rowIterator.
124、getString("schoolBefore");</p><p><b> } </b></p><p><b> //設(shè)置學(xué)校</b></p><p> public void setSchoolBefore(String value) throws DataSetException {&l
125、t;/p><p> rowIterator.setString("schoolBefore", value);</p><p><b> }</b></p><p><b> }</b></p><p><b> 七、小結(jié)</b></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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java課程設(shè)計--學(xué)生信息管理系統(tǒng)
- 學(xué)生信息管理系統(tǒng)java課程設(shè)計
- java課程設(shè)計--員工信息管理系統(tǒng)
- java課程設(shè)計---學(xué)生信息管理系統(tǒng)
- java課程設(shè)計--學(xué)生信息管理系統(tǒng)
- java課程設(shè)計-學(xué)生信息管理系統(tǒng)
- java課程設(shè)計--員工信息管理系統(tǒng)
- java課程設(shè)計---學(xué)生信息管理系統(tǒng)
- java課程設(shè)計--員工信息管理系統(tǒng)報告
- java課程設(shè)計報告--學(xué)生信息管理系統(tǒng)
- java課程設(shè)計報告---學(xué)生信息管理系統(tǒng)
- 圖書信息管理系統(tǒng)java課程設(shè)計
- java課程設(shè)計--基于cs學(xué)生信息管理系統(tǒng)
- java圖書信息管理系統(tǒng)課程設(shè)計報告
- java課程設(shè)計---圖書館信息管理系統(tǒng)
- 學(xué)生個人信息管理系統(tǒng)java課程設(shè)計
- java課程設(shè)計--基于mysql的學(xué)生信息管理系統(tǒng)
- java課程設(shè)計-- 學(xué)生個人信息管理系統(tǒng)
- java+mysql學(xué)生信息管理系統(tǒng)課程設(shè)計報告
- 學(xué)生個人信息管理系統(tǒng)java課程設(shè)計
評論
0/150
提交評論