java學(xué)生成績管理系統(tǒng).doc
《java學(xué)生成績管理系統(tǒng).doc》由會員分享,可在線閱讀,更多相關(guān)《java學(xué)生成績管理系統(tǒng).doc(31頁珍藏版)》請在裝配圖網(wǎng)上搜索。
西安文理學(xué)院 計算機科學(xué)系 課程設(shè)計報告 設(shè)計名稱: 軟件課程設(shè)計 設(shè)計題目: 學(xué)生成績管理系統(tǒng) 學(xué)生學(xué)號: 14102080217 專業(yè)班級: 軟件工程二班 學(xué)生姓名: 陳健 學(xué)生成績: 指導(dǎo)教師(職稱): 楊全() 課題工作時間: 2011.4.11至 2011.4.21 說明: 1、報告中的任務(wù)書、進(jìn)度表由指導(dǎo)教師在課程設(shè)計開始前填寫并發(fā)給每個學(xué)生;四、五兩項(中英文摘要)由學(xué)生在完成綜合設(shè)計后填寫。 2、學(xué)生成績由指導(dǎo)教師根據(jù)學(xué)生的設(shè)計情況給出各項分值及總評成績。 3、指導(dǎo)教師評語一欄由指導(dǎo)教師就學(xué)生在整個設(shè)計期間的平時表現(xiàn)、設(shè)計完成情況、報告的質(zhì)量及答辯情況,給出客觀、全面的評價。 4、所有學(xué)生必須參加課程設(shè)計的答辯環(huán)節(jié),凡不參加答辯者,其成績一律按不及格處理。答辯小組成員應(yīng)由2人及以上教師組成。 5、報告正文字?jǐn)?shù)一般應(yīng)不少于3000字,也可由指導(dǎo)教師根據(jù)本門綜合設(shè)計的情況另行規(guī)定。 6、平時表現(xiàn)成績低于6分的學(xué)生,取消答辯資格,其本項綜合設(shè)計成績按不及格處理。 學(xué)生姓名 陳健 學(xué)號 14102080217 專業(yè) 班級 08級軟件二班 設(shè)計題目 基于C/S模式的學(xué)生成績記錄查詢系統(tǒng) 內(nèi)容概要: 學(xué)生成績記錄查詢系統(tǒng)(C/S)的設(shè)計與實現(xiàn)。 具體要求如下: 1) 創(chuàng)建學(xué)生信息(學(xué)生的新增、刪除、修改、查詢); 2) 課程成績維護(hù)(成績的新增、刪除、修改、查詢); 3) 按學(xué)號或姓名查詢課程成績; 4) 顯示某課程60分以下、60~79、80~89、90分以上各分?jǐn)?shù)段的學(xué)生信息; 5) 報表輸出(根據(jù)用戶需要打印有關(guān)資料); 6)判斷用戶標(biāo)識和口令,并進(jìn)行權(quán)限管理; 7)修改當(dāng)前用戶的密碼及用戶管理。 備注:每個學(xué)生信息包括:學(xué)號、姓名、課程名、成績。 文獻(xiàn)資料: [1] 張海藩.軟件工程導(dǎo)論. 清華大學(xué)出版社, 2010 [2] 沈洪, 施明利. VB程序設(shè)計案例匯編. 清華大學(xué)出版社, 2010 [3] 孟德欣. VB程序設(shè)計. 清華大學(xué)出版社, 2011 [4] 石志國. VB.NET數(shù)據(jù)庫編程. 清華大學(xué)出版社, 2009 [5] 張友生. 軟件體系結(jié)構(gòu)原理、方法與實踐. 清華大學(xué)出版社, 2010 設(shè)計要求: 1. 采用客戶/服務(wù)器方式作為系統(tǒng)開發(fā)結(jié)構(gòu); 2. 后臺數(shù)據(jù)庫(服務(wù)器)采用Microsoft SQL Server 2000; 3. 用戶使用界面(客戶端)采用高級程序設(shè)計語言(如VB 6.0)進(jìn)行開發(fā); 4. 程序必須上機調(diào)試運行通過,并獲得滿意的結(jié)果; 5. 提交打印稿的課程設(shè)計報告。 工作期限: 設(shè)計工作自2011 年4 月11 日至2011年4 月21 日止。 指導(dǎo)教師: 楊全 系主任: 日 期:2011 年 4 月 11 日 計算機科學(xué)系課程設(shè)計進(jìn)度安排表 專業(yè): 姓名: 學(xué)號: 日期 內(nèi) 容 備注 5月31日 ~ 6月 1日 分析題目,查閱相關(guān)資料 6月2 日~ 6月3 日 擬定整體方案,編寫程序 6月4 日~ 6月6 日 程序編寫 6月7 日~ 6月8 日 調(diào)試程序 6月9 日~ 6月10 日 整理報告 6月11 日~ 6月11日 答辯 月 日~ 月 日 月 日~ 月 日 月 日~ 月 日 月 日~ 月日 月 日~ 月 日 月 日~ 月 日 月 日~ 月 日 月 日~ 月 日 月 日~ 月 日 指導(dǎo)教師簽名: 2010年5 月 28 日 指導(dǎo)教師評語 指導(dǎo)教師: (簽字) 日 期: 2010 年 6 月 10 日 答辯記錄表 學(xué)生姓名: 學(xué)號: 班級:軟件二班 答辯地點: 答辯內(nèi)容記錄: 答辯成績 合計 分值 各項分值 評分標(biāo)準(zhǔn) 實際得分 合計得分 備注 25 10 在規(guī)定時間內(nèi)能就所設(shè)計的內(nèi)容進(jìn)行闡述,言簡意明,重點突出,論點正確,條理清晰。 15 在規(guī)定時間內(nèi)能準(zhǔn)確、完整、流利地回答教師所提出的問題。 答辯小組成員(簽字): 2010 年 6 月 11 日 成績評定表 學(xué)生姓名: 陳健 學(xué)號: 班級: 類別 合計 分值 各項分值 評分標(biāo)準(zhǔn) 實際得分 合計得分 備注 平時表現(xiàn) 10 10 按時參加設(shè)計指導(dǎo),無違反紀(jì)律情況。 完成情況 30 20 按設(shè)計任務(wù)書的要求完成了全部任務(wù),能完整演示其設(shè)計內(nèi)容,符合要求。 10 能對其設(shè)計內(nèi)容進(jìn)行詳細(xì)、完整的介紹,并能就指導(dǎo)教師提出的問題進(jìn)行正確的回答。 報告質(zhì)量 35 10 報告文字通順,內(nèi)容翔實,論述充分、完整,立論正確,結(jié)構(gòu)嚴(yán)謹(jǐn)合理;報告字?jǐn)?shù)符合相關(guān)要求,工整規(guī)范,整齊劃一。 5 課題背景介紹清楚,綜述分析充分。 5 設(shè)計方案合理、可行,論證嚴(yán)謹(jǐn),邏輯性強,具有說服力。 5 符號統(tǒng)一;圖表完備、符合規(guī)范要求。 5 能對整個設(shè)計過程進(jìn)行全面的總結(jié),得出有價值的結(jié)論或結(jié)果。 5 參考文獻(xiàn)數(shù)量在2篇以上,格式符合要求,在正文中正確引用。 答辯情況 25 10 在規(guī)定時間內(nèi)能就所設(shè)計的內(nèi)容進(jìn)行闡述,言簡意明,重點突出,論點正確,條理清晰。 15 在規(guī)定時間內(nèi)能準(zhǔn)確、完整、流利地回答教師所提出的問題。 總評成績: 分 指導(dǎo)教師: (簽字) 日 期: 2010 年 6 月 15 日 摘 要 摘 要:隨著計算機技術(shù)的飛速發(fā)展和高等教育體制改革的不斷深入,傳統(tǒng)教育管理方法、手段以及工作效率已不能適應(yīng)新的發(fā)展需要,無法很好地完成教學(xué)管理工作。提高教學(xué)管理水平的主要途徑是更新管理者的思想,增強對管理活動的科學(xué)認(rèn)識?;贘ava與SQL server數(shù)據(jù)庫技術(shù)建立一個高校成績管理系統(tǒng)該系統(tǒng)為管理員、學(xué)生和教師提供了查詢、修改、增加記錄、刪除等功能,功能比較落齊全,基本上能滿足學(xué)生和老師的要求。 關(guān)鍵詞:Java;需求分析;概要設(shè)計;學(xué)生成績管理系統(tǒng); The Design And Realization Of the educational administration management system Based On JAVA Author: ChenJian Tutor:YangQuan Abstract: Fly technically along with the calculator to develop soon and the higher education system reform of continuously thorough, traditional education management the method, means and work efficiencies have already cant adapt the new development demand, cant complete the teaching management work nicely.The main path that raises the educational administration management level is a thought that renews the governor, strengthenning the science understanding to manage the activity.According to the JAVA build up that system of an educational administration of high school management systems pursue studies with the database technique to living to provided the search, modify, save, increase the record and select elective courses etc. with teacher function, the function relatively falls well-found, can satisfy the request between student and teacher basically. Keyword:JAVA; The need analysis; The essentiadesign; Database; Detailed design 目錄 前言 x 1 需求分析 x 1.1 功能需求分析 x 1.2 性能需求分析 xi 1.3 數(shù)據(jù)庫需求分析――數(shù)據(jù)流圖 xi 1.3.1 數(shù)據(jù)結(jié)構(gòu) xi 1.3.2 數(shù)據(jù)流: xi 2概要結(jié)構(gòu)設(shè)計 xii 2.1系統(tǒng)功能結(jié)構(gòu)設(shè)計 xii 2.1.1模塊的功能設(shè)計 xii 2.2 概要結(jié)構(gòu)設(shè)計 xiii 3詳細(xì)設(shè)計及實現(xiàn) 14 3.1用戶登陸模塊 14 3.1.1 代碼實現(xiàn) 14 3.2 管理員界面 16 3.2.1 代碼實現(xiàn): 17 3.3 用戶界面 19 3.3.1 代碼實現(xiàn): 19 3.4 添加模塊 23 3.4.1 添加模塊代碼實現(xiàn): 24 3.5 刪除模塊 27 3.5.1 代碼實現(xiàn): 27 總 結(jié) 29 致 謝 30 參考文獻(xiàn) 30 前言 學(xué)生成績管理工作是高校教育工作的一項重要內(nèi)容。教務(wù)管理工作是指學(xué)校管理人員按照一定教育方針,運用先進(jìn)的管理手段,組織 、協(xié)調(diào) 、指揮并指導(dǎo)各用戶活動,以便高效率、高質(zhì)量地完成各項教學(xué)任務(wù),完成國家所制定的教育目標(biāo)。學(xué)生成績管理工作是學(xué)校教學(xué)工作的中樞,是保證高校教學(xué)機制正常運轉(zhuǎn)的樞紐,它是一項目的性、計劃性、適用性、創(chuàng)造性和科學(xué)性很強的工作。學(xué)生成績工作關(guān)系到高校教學(xué)秩序的穩(wěn)定。 隨著計算機技術(shù)的飛速發(fā)展和高等教育體制改革的不斷深入,傳統(tǒng)教育管理方法、手段以及工作效率已不能適應(yīng)新的發(fā)展需要,無法很好地完成教學(xué)管理工作。提高教務(wù)管理水平的主要途徑是更新管理者的思想,增強對管理活動的科學(xué)認(rèn)識。同時,運用先進(jìn)的信息技術(shù),開發(fā)高校綜合成績管理信息系統(tǒng),是深化教務(wù)體制改革的有利措施。 JAVA以GUI的編程方式、面向?qū)ο蟮某绦蛟O(shè)計、眾多的GUI組件和強大的數(shù)據(jù)庫應(yīng)用開發(fā)支持,在競爭激勵的開發(fā)工具市場中越來越羸得程序設(shè)計者的青睞。JAVA是Windows系統(tǒng)下的可視化集成開發(fā)工具,提供了強大的可視化組件功能,使程序員能夠快速、高效地開發(fā)出Windows系統(tǒng)下的應(yīng)用程序,特別是在數(shù)據(jù)庫和網(wǎng)絡(luò)方面,JAVA與其它開發(fā)工具相比更是勝出一籌??梢暬饕侵搁_發(fā)圖形用戶界面,而只需調(diào)用GUI組件即可。 1 需求分析 1.1 功能需求分析 該學(xué)生成績管理系統(tǒng)具備三方面的功能:一方面是學(xué)生用戶,學(xué)生通過輸入學(xué)號和密碼進(jìn)下該系統(tǒng)后,可以進(jìn)行一些基礎(chǔ)查詢(學(xué)生信息查詢、班級信息查詢、課程信息查詢)、成績管理(成績查詢、計算平均分)重新登陸系統(tǒng);一方面老師進(jìn)入該系統(tǒng)則比學(xué)生多一些權(quán)限:成績輸入、成績查詢。 具體功能的詳細(xì)描述如下 1.1.1 選擇[學(xué)生基本維護(hù)]菜單命令,即可進(jìn)入 [學(xué)生基本維護(hù)]功能窗體,在其中輸入學(xué)生的相關(guān)信息,如果需要添加或修改學(xué)生信息,則單擊相應(yīng)的按紐,輸入新信息后單擊[添加]就可以了。需要刪除一條信息,則只要選擇這條信息再點擊 [刪除]。在搜索條件中輸入相關(guān)的條件,單擊 [查詢]就可查找信息。 1.1.2 選擇[學(xué)生信息查詢]菜單命令,即可進(jìn)入[學(xué)生信息查詢]功能窗體,在其中的下拉列表中選擇你要看的信息,則在下面的表格中顯示你要的信息。 1.1.3 選擇[成績管理] [添加成績]菜單命令,即可進(jìn)入 [添加成績]功能窗體,此功能權(quán)限只有管理員和教師。 1.1.4 選擇[成績管理] [輸入成績]菜單命令,即可進(jìn)入 [輸入成績]功能窗體, 此功能權(quán)限只有管理員和教師。 1.1.5 選擇[成績管理] [修改成績] 界面,此功能規(guī)管理員所有。 1.1.6 選擇[成績管理] [查詢成績]界面此界面對學(xué)生也是可見的,它的權(quán)限規(guī)所有用戶所有。 1.1.7 選擇[登陸] [重新登陸] 則會返回登陸界面,為用戶提供方便。 1.1.8 選擇[退出]將退出整個系統(tǒng)。 1.2 性能需求分析 時間特性要求:在軟件方面,響應(yīng)時間有點慢,因為是用Eclipse做的,它占用內(nèi)存比較大,更新處理時間比較快而且迅速。 安全性:設(shè)立口令號和密碼驗證方式,防止非法用戶登錄進(jìn)行操作。也就是用戶只有管理員、學(xué)生和教師才能進(jìn)入這個系統(tǒng),用戶憑口令號和密碼進(jìn)入此系統(tǒng),系統(tǒng)會自動判斷用戶是那種類型,分別擁有不同的權(quán)限。 1.3 數(shù)據(jù)庫需求分析――數(shù)據(jù)流圖 1.3.1 數(shù)據(jù)結(jié)構(gòu) 在系統(tǒng)中功能模塊主要牽涉到的信息包括:是學(xué)生信息(Student)、課程信息(Course)、成績表(SC). 學(xué)生信息:包含學(xué)號(STNO)、姓名(SNAME)、年齡(SAGE)、性別(SSEX)、系別(SDEPT) 課程信息:包括課程編號(Cno)、課程名稱(Cname)、先行課(Cpno) 成績表;學(xué)號(STNO)、課程號(Cno)、成績(Grade) 1.3.2 數(shù)據(jù)流: 1) 數(shù)據(jù)流名:口令號 說明:根據(jù)這個口令號定位到用戶管理數(shù)據(jù)庫,以便進(jìn)行身份驗證。 數(shù)據(jù)流來源:登陸界面輸入的口令號和密碼。 數(shù)據(jù)流去向:其中用戶口令信息將存在于整個操作過程中,防止非法登陸。 數(shù)據(jù)流組成:口令號(文本);密碼(文本) 2) 數(shù)據(jù)流名:尋找信息 說明:根據(jù)用戶在學(xué)生信息維護(hù)的時候所填寫的信息。 數(shù)據(jù)流來源:學(xué)生信息維護(hù)界面學(xué)生輸入包含學(xué)號、班級編號、名稱等。 數(shù)據(jù)流去向:學(xué)號將存在整個操作,其它的存入數(shù)據(jù)庫。 數(shù)據(jù)流組成:學(xué)號(文本);姓名(文本)等 3) 數(shù)據(jù)流名:尋找信息 說明:根據(jù)用戶在成績管理的時候所填寫的信息。 數(shù)據(jù)流來源:成績輸入、修改、添加等界面用戶輸入包含課程編號、課程名稱、成績、教師。 數(shù)據(jù)流去向:學(xué)號、班級編號、課程編號將存在整個操作,其它的存入數(shù)據(jù)庫。 數(shù)據(jù)流組成:課程編號(文本)、課程名稱(文本)、教師(文本)等。 4) 數(shù)據(jù)流名:返回信息 說明:根據(jù)用戶在學(xué)生信息維護(hù)的時候所填寫的信息存入了數(shù)據(jù)庫之后。 數(shù)據(jù)流來源:由學(xué)生信息維護(hù)界面學(xué)生輸入的包含學(xué)號、姓名、性別等存入數(shù)據(jù)庫的。 數(shù)據(jù)流去向:學(xué)生信息維護(hù)界面。 數(shù)據(jù)流組成:學(xué)號(文本)、姓名(文本)、班級名稱(文本)、性別(文本)等。 5) 數(shù)據(jù)流名:返回信息 說明:根據(jù)用戶在成績管理的時候所填寫的信息存入數(shù)據(jù)庫后。 數(shù)據(jù)流來源:由成績管理輸入的包含班級名稱、教師、課程名、成績存入數(shù)據(jù)庫的。 數(shù)據(jù)流去向:成績管理的各子界面。 數(shù)據(jù)流組成:班級編號(文本);班級名稱(文本);教師(文本)等; 2概要結(jié)構(gòu)設(shè)計 2.1系統(tǒng)功能結(jié)構(gòu)設(shè)計 2.1.1模塊的功能設(shè)計 根據(jù)需求分析階段得到的功能需求,管理員、學(xué)生和教師用戶通過輸入口令號和密碼進(jìn)下該系統(tǒng)后,可以進(jìn)行一些學(xué)生基礎(chǔ)信息查詢(學(xué)生信息查詢、班級信息查詢、課程信息查詢)、學(xué)生信息維護(hù)、成績管理(成績查詢、計算平均分)重新登陸系統(tǒng)、退出。 模塊功能大概可以分為如下4個方面:這幾個模塊學(xué)生基礎(chǔ)維護(hù)、成績管理、登陸、退出。其中基礎(chǔ)維護(hù)還要包括學(xué)生信息維護(hù)、班級信息維護(hù)、課程信息維護(hù)。成績管理包括成績查詢、添加成績、成績輸入等。綜上所述,得到客戶端功能模塊圖如下2.1所示。 2.2 概要結(jié)構(gòu)設(shè)計 用戶登陸 登陸 管理員登陸 增加信息 查詢信息 查詢信息 刪除信息 E-R 圖:開課 系別 名稱 含有 課名 先行課 成績 姓名 課程 選課 學(xué)號 系別 年齡 學(xué)生 3詳細(xì)設(shè)計及實現(xiàn) 3.1用戶登陸模塊 3.1.1 代碼實現(xiàn) package com.kk; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Login extends JFrame { private static final long serialVersionUID = 4949257312955311099L; TextField f1; TextField f2; JButton b1; JButton b2; JButton b3; String power;//表示權(quán)限 Login(){ Container cp=getContentPane(); cp.setLayout(new GridLayout(4,1)); Label l1=new Label("用戶名"); Label l2=new Label("密 碼"); Panel p1=new Panel(); Panel p2=new Panel(); Panel p3=new Panel(); f1=new TextField(10); f2=new TextField(10); f2.setEchoChar(*); b1=new JButton("登錄"); b2=new JButton("重置"); b3=new JButton("退出"); p1.add(l1); p1.add(f1); p2.add(l2); p2.add(f2); p3.add(b1); p3.add(b2); p3.add(b3); cp.add(p1); cp.add(p2); cp.add(p3); b1.addActionListener(new Enter()); b2.addActionListener(new ReWrite()); b3.addActionListener(new Close()); } public static void main(String[] args) { Login log=new Login(); log.setTitle("系統(tǒng)登錄"); log.setBounds(200, 200, 300, 300); log.setBackground(Color.blue); log.setVisible(true); } class Enter implements ActionListener{ public void actionPerformed(ActionEvent e) { if((f1.getText()).equals("1410")&&(f2.getText()).equals("chenjian")) { JOptionPane.showMessageDialog(null, "登錄成功!用戶權(quán)限是管理員"); power="管理員"; XueSheng frame1 = new XueSheng(); frame1.setVisible(true); } else if((f1.getText()).equals("abc")&&(f2.getText()).equals("123456")) { JOptionPane.showMessageDialog(null, "登錄成功!登錄成功!用戶權(quán)限是游客"); power="游客"; Find f2 = new Find(); f2.setVisible(true); } else JOptionPane.showMessageDialog(null, "登錄失敗,請重新登錄!"); } } class ReWrite implements ActionListener{ public void actionPerformed(ActionEvent e) { f1.setText(""); f2.setText(""); f1.requestFocus(); } } class Close implements ActionListener{ public void actionPerformed(ActionEvent e) { JButton bt=(JButton)e.getSource(); if(bt==b3) System.exit(0); } } } 3.2 管理員界面 3.2.1 代碼實現(xiàn): package com.kk; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.JFrame; public class XueSheng extends JFrame implements ActionListener { JButton cx, zj, tc, sc; XueSheng() { setBounds(100, 100, 600, 600); JPanel panel2 = new JPanel(); setContentPane(panel2); panel2.setLayout(null); JLabel label1 = new JLabel("歡迎進(jìn)入學(xué)生信息管理界面"); label1.setFont(new Font("BOLD", Font.BOLD, 28)); panel2.add(label1); label1.setBounds(50, 20, 400, 100); cx = new JButton("查詢"); panel2.add(cx); cx.setBounds(50, 200, 80, 50); zj = new JButton("增加"); panel2.add(zj); zj.setBounds(150, 200, 80, 50); sc = new JButton("刪除"); panel2.add(sc); sc.setBounds(250, 200, 80, 50); tc = new JButton("退出"); panel2.add(tc); tc.setBounds(350, 200, 80, 50); cx.addActionListener(this); zj.addActionListener(this); sc.addActionListener(this); tc.addActionListener(this); setVisible(true); } public void actionPerformed(ActionEvent e) { if (e.getSource() == cx) { Find f = new Find(); } if(e.getSource()==zj){ AddFI f = new AddFI(); } if(e.getSource()==sc){ Delet d = new Delet(); } if(e.getSource()==tc){ shutDown(); } } private void shutDown(){ this.dispose(); } } 3.3 用戶界面 3.3.1 代碼實現(xiàn): package com.kk; import java.awt.*; import java.awt.event.*; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import javax.swing.*; public class Find extends JFrame implements ActionListener { JTextField t1; String STNO, r1, r2, r3, r4, r5, r6; JButton b1, b2; XueSheng xue; Find() { super("查詢學(xué)生信息"); Container c1 = this.getContentPane(); setBackground(new Color(215, 215, 215)); c1.setLayout(new GridLayout(3, 2)); JPanel pp = new JPanel(); JLabel label0 = new JLabel("請輸入你的學(xué)號"); label0.setForeground(Color.blue); pp.add(label0); JPanel p1 = new JPanel(); t1 = new JTextField(10); p1.add(new Label("")); p1.add(t1); c1.add(p1); JPanel p2 = new JPanel(); b1 = new JButton("查詢"); b2 = new JButton("退出"); b1.addActionListener(this); b2.addActionListener(this); p2.add(b1); p2.add(b2); c1.add(p2); this.setVisible(true); this.setBounds(200, 200, 400, 300); } public void actionPerformed(ActionEvent e) { try { if (e.getSource() == b1) { try { STNO = t1.getText(); Class.forName( "com.microsoft.sqlserver.jdbc.SQLServerDriver") .newInstance(); String url = "jdbc:sqlserver://localhost:1433; DatabaseName=ss"; String userName = "sa"; // 默認(rèn)用戶名 String userPwd = "sa"; Connection cn = DriverManager.getConnection(url, userName, userPwd); String str = "select Student.SNAME,Student.SAGE,Student.SSEX,Student.STNO,Course.Cname,SC.Grade from Student,Course ,SC where Student.STNO = SC.STNO and SC.Cno = Course.Cno and Student.STNO ="+STNO+""; PreparedStatement ps = cn.prepareStatement(str); ResultSet rs = ps.executeQuery(); System.out.println("STNO=" + STNO); if (rs.next()) { r1 = rs.getString("STNO"); r2 = rs.getString("SNAME"); r3 = rs.getString("SAGE"); r4 = rs.getString("SSEX"); r5 = rs.getString("Cname"); r6 = rs.getString("Grade"); } else { JOptionPane.showMessageDialog(null, "你輸入的學(xué)號有誤"); } cn.close(); } catch (SQLException g) { System.out.println("Error" + g.getErrorCode()); System.out.println("Merrage=" + g.getMessage()); } catch (Exception f) { f.printStackTrace(); } File f = new File(); this.dispose(); } if (e.getSource() == b2) { t1.setText(""); t1.repaint(); } } catch (NumberFormatException ex) { JOptionPane.showMessageDialog(null, "數(shù)據(jù)轉(zhuǎn)換錯誤"); } } class File extends JFrame implements ActionListener { JTextField tt1, t2, t3, t4, t5, t6; JButton b3; File() { super("查詢學(xué)生信息"); Container c2 = this.getContentPane(); setBackground(new Color(215, 215, 215)); c2.setLayout(new GridLayout(3, 1)); tt1 = new JTextField(r1); t2 = new JTextField(r2); t3 = new JTextField(r3); t4 = new JTextField(r4); t5 = new JTextField(r5); t6 = new JTextField(r6); tt1.setEditable(false); t2.setEditable(false); t3.setEditable(false); t4.setEditable(false); t5.setEditable(false); t6.setEditable(false); JPanel pp1 = new JPanel(); JLabel label2 = new JLabel("學(xué)號為" + STNO + "學(xué)生的信息"); pp1.add(label2); label2.setFont(new Font("BOLD", Font.BOLD, 28)); c2.add(pp1); JPanel pp2 = new JPanel(new GridLayout(6, 2)); pp2.add(new JLabel("學(xué)號", SwingConstants.CENTER)); tt1.setText(STNO); pp2.add(tt1); pp2.add(new JLabel("姓名", SwingConstants.CENTER)); pp2.add(t2); pp2.add(new JLabel("年齡", SwingConstants.CENTER)); pp2.add(t3); pp2.add(new JLabel("性別", SwingConstants.CENTER)); pp2.add(t4); pp2.add(new JLabel("課程", SwingConstants.CENTER)); pp2.add(t5); pp2.add(new JLabel("成績", SwingConstants.CENTER)); pp2.add(t6); c2.add(pp2); JPanel pp3 = new JPanel(); b3 = new JButton("返回"); b3.addActionListener(this); pp3.add(b3); c2.add(pp3); this.setBounds(200, 200, 600, 400); setVisible(true); } public void actionPerformed(ActionEvent f) { if (f.getSource() == b3) { this.dispose(); } } } } 3.4 添加模塊 3.4.1 添加模塊代碼實現(xiàn): package com.kk; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class AddFI extends JFrame implements ActionListener { JTextField STNOText, SNAMEText, SAGEText, SSEXText, SDEPTText; JButton b1, b2, b3; String STNO, SNAME, SAGE, SSEX, SDEPT; public AddFI() { Container c = this.getContentPane(); c.setLayout(new GridLayout(3, 1)); JPanel center = new JPanel(new GridLayout(5, 2)); JPanel low = new JPanel(new FlowLayout()); JLabel label1 = new JLabel("添加學(xué)生信息", SwingConstants.CENTER); label1.setFont(new Font("TRUE", Font.TRUETYPE_FONT, 20)); c.add(label1); STNOText = new JTextField(30); SNAMEText = new JTextField(30); SSEXText = new JTextField(30); SAGEText = new JTextField(30); SDEPTText = new JTextField(30); center.add(new JLabel("學(xué)號", SwingConstants.CENTER)); center.add(STNOText); center.add(new JLabel("姓名", SwingConstants.CENTER)); center.add(SNAMEText); center.add(new JLabel("性別", SwingConstants.CENTER)); center.add(SSEXText); center.add(new JLabel("年齡", SwingConstants.CENTER)); center.add(SAGEText); center.add(new JLabel("系別", SwingConstants.CENTER)); center.add(SDEPTText); c.add(center); b1 = new JButton("添加"); b2 = new JButton("清除"); b3 = new JButton("退出"); low.add(b1); low.add(b2); low.add(b3); c.add(low); // 為按鈕添加jianting b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); this.setBounds(200, 200, 600, 400); this.setVisible(true); this.setTitle("添加學(xué)生信息"); } public void actionPerformed(ActionEvent e) { if (e.getSource() == b1) { addFI(); } if (e.getSource() == b2) { clearForm(); } if (e.getSource() == b3) { shutdown(); } } private void addFI() { STNO = STNOText.getText(); SNAME = SNAMEText.getText(); SSEX = SSEXText.getText(); SAGE = SAGEText.getText(); SDEPT = SDEPTText.getText(); if (STNO.length() == 0 || SNAME.length() == 0 || SAGE.length() == 0 || SDEPT.length() == 0 || SSEX.length() == 0) JOptionPane.showMessageDialog(this, "請?zhí)砑油耆畔?); else { try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver") .newInstance(); String url = "jdbc:sqlserver://localhost:1433; DatabaseName=ss"; String userName = "sa"; // 默認(rèn)用戶名 String userPwd = "sa"; Connection cn = DriverManager.getConnection(url, userName, userPwd); String str = "INSERT INTO Student VALUES(?,?,?,?,?)"; PreparedStatement ps = cn.prepareStatement(str); ps.setString(1, STNO); ps.setString(2, SNAME); ps.setString(3, SSEX); ps.setString(4, SAGE); ps.setString(5, SDEPT); ps.executeUpdate(); cn.close(); JOptionPane.showMessageDialog(this, "添加成功"); clearForm(); } catch (SQLException e) { System.out.println("ECode" + e.getErrorCode()); System.out.println("E M=" + e.getMessage()); } catch (Exception e) { e.printStackTrace(); } } } private void clearForm() { STNOText.setText(""); SNAMEText.setText(""); SAGEText.setText(""); SSEXText.setText(""); SDEPTText.setText(""); } private void shutdown() { this.dispose(); } } 3.5 刪除模塊 3.5.1 代碼實現(xiàn): package com.kk; import java.awt.*; import java.awt.event.*; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import javax.swing.*; public class Delet extends JFrame implements ActionListener{ JButton yes; JButton cancle; JTextField text1; String STNO; Delet(){ Container c = this.getContentPane(); c.setLayout(new GridLayout(3, 1)); c.setFont(new Font("true",Font.TRUETYPE_FONT,13)); JPanel p1 = new JPanel(); JPanel p2 = new JPanel(); JLabel label1 = new JLabel("刪除學(xué)生信息",SwingConstants.CENTER); label1.setFont(new Font("true",Font.TRUETYPE_FONT,13)); label1.setForeground(Color.blue); c.add(label1); JLabel label2 = new JLabel("請輸入學(xué)號"); text1 = new JTextField(10); p1.add(label2); p1.add(text1); c.add(- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該PPT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- java 學(xué)生 成績管理系統(tǒng)
鏈接地址:http://m.appdesigncorp.com/p-6565761.html