Java面向對象程序設計課程設計報告_第1頁
Java面向對象程序設計課程設計報告_第2頁
Java面向對象程序設計課程設計報告_第3頁
Java面向對象程序設計課程設計報告_第4頁
Java面向對象程序設計課程設計報告_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

2016-2017學年第2學期經濟管理學院實踐教學

成績評定表實踐教學項目面向對象程序設計專業(yè)信息管理與信息系統(tǒng)學生姓名班級學號評語成績日期

課程實踐任務書學院經濟管理學院專業(yè)信息管理與信息系統(tǒng)姓名學號15040602150406021504060222課程名稱面向對象程序設計設計題目學生信息管理系統(tǒng)程序設計設計要求與任務:使用任意一款JAVA開發(fā)工具開發(fā)一個實用的應用系統(tǒng)?如記事本、計算器、繪圖軟件、JSP網站或者MIS??梢圆扇/S或者C/S模式。此次設計的具體要求還包括:(1) 根據課程設計時間選擇適當規(guī)模大小的設計題目.分小組進行設計。(2) 小組組長為組員分配任務?根據合理的安排.按照軟件開發(fā)的流程及方法.踏實地開展課程設計活動。(3) 課程設計包括開發(fā)編碼和撰寫相關文檔。最后提交詳細的課程設計報告。(4) 開發(fā)出可上機運行的JAVA應用.并上機測試。工作計劃與進度安排:第1-3天:布置任務、分組、粗略調查、選題、可行性研究、系統(tǒng)規(guī)劃。第4-6天:深入調研、系統(tǒng)分析、建立數(shù)據邏輯模型、系統(tǒng)設計、建立數(shù)據物理模型第7-9天:系統(tǒng)實施、程序設計、系統(tǒng)調試。第9-10天:應用測試、整理資料、撰寫報告、準備驗收指導教師(簽字):年月日專業(yè)負責人(簽字):年月日學院院長(簽字):年月日摘要信息技術的快速發(fā)展的同時也帶來了社會各個行業(yè)的發(fā)展。它的發(fā)展已經深入到社會的各個角落。作為社會發(fā)展的前沿技術.各行各業(yè)只要對其合理的進行運用.必將會帶來巨大的便捷。成功的運用信息技術將為各類學校學生信息管理帶來無限便利。作為計算機應用的一部分.使用學生信息管理系統(tǒng)對學生檔案進行管理.有著手工管理所無法比擬的優(yōu)點.如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等.大地提高學生檔案管理的效率。本文介紹了系統(tǒng)開發(fā)的全過程。該系統(tǒng)以Windows為操作平臺.Java為開發(fā)語言.Access為數(shù)據庫.Eclipse為開發(fā)工具,使用JDBC技術進行連接.實現(xiàn)了在可視化的基礎上.利用數(shù)據庫進行后臺管理。系統(tǒng)由學生和老師基本信息添加、學生和老師基本信息查詢、學生和老師基本信息刪除、學生和老師基本信息修改及退出系統(tǒng)等功能模塊組成.基本功能較全面。用戶界面友好、清晰、操作簡便.易學易用;系統(tǒng)可讀性好.易于維護、更新.安全性較好。采用傳統(tǒng)下拉菜單功能選擇.方便、快捷、一目了然.并且在一個窗體中進行操作.可視化強。采用鏈入數(shù)據庫進行存儲.可動態(tài)進行查看、操作.這樣的系統(tǒng)可修改性較強。關鍵字:面向對象;Eclipse;JDBC目錄TOC\o"1-5"\h\z\o"CurrentDocument"1前言 1\o"CurrentDocument"課題簡介 1\o"CurrentDocument"設計目的 1\o"CurrentDocument"2需求分析 2\o"CurrentDocument"業(yè)務需求分析 2\o"CurrentDocument"功能需求分析 2\o"CurrentDocument"2.2.1學生信息 2\o"CurrentDocument"2.2.2教師信息 2\o"CurrentDocument"2.2.3成績管理 3\o"CurrentDocument"3數(shù)據庫設計 4\o"CurrentDocument"3.1Java連接數(shù)據庫 4\o"CurrentDocument"關系數(shù)據庫概述 4\o"CurrentDocument"3.1.2通過JDBC訪問數(shù)據庫 4\o"CurrentDocument"3.2數(shù)據庫與基本表設計 4\o"CurrentDocument"4系統(tǒng)設計與實施 7\o"CurrentDocument"EclipseJavaNeon3 7\o"CurrentDocument"結構設計 7\o"CurrentDocument"4.3文件組織結構 7\o"CurrentDocument"登錄模塊 8\o"CurrentDocument"4.4.1設計構想 8\o"CurrentDocument"4.4.2實現(xiàn)登錄模塊 8\o"CurrentDocument"學生信息模塊 11\o"CurrentDocument"4.5.1設計構想 114.5.2實現(xiàn)學生信息模塊主界面 11\o"CurrentDocument"4.5.3添加信息 12\o"CurrentDocument"4.5.4刪除信息 14\o"CurrentDocument"4.5.5修改信息 15\o"CurrentDocument"4.5.6基本信息查詢 17\o"CurrentDocument"4.5.7成績查詢 19\o"CurrentDocument"4.5.8退出系統(tǒng) 21\o"CurrentDocument"教師信息模塊 22\o"CurrentDocument"結束語 26\o"CurrentDocument"參考文獻 27\o"CurrentDocument"附錄A 28前言課題簡介學生信息檔案的管理對于學校的管理者來說至關重要.學生信息是高等學校非常重要的一項數(shù)據資源.是一個教育單位不可缺少一部分。近幾年來.國家政策的調整.我國高等院校大規(guī)模擴招.給高等院校的教學管理、學生管理、后勤管理等方面都帶來不少的沖擊。其包含的數(shù)據量大.涉及的人員面廣.而且需要及時更新.故較為復雜.難以單純地依靠人工管理.而且傳統(tǒng)的人工管理方式既不易于規(guī)范化.管理效率也不高。目前我國各類高等院校中還有相當一部分學生檔案管理還停留在紙介質的基礎上.中、小學對學生檔案的管理更是落后.這樣的管理機制嚴重浪費人力和物力.已經不能適應時代發(fā)展的要求。計算機應用的普及已進入人類社會生活的各個領域.并發(fā)揮著越來越重要的作用。這種傳統(tǒng)的手工管理模式必然被以計算機為物質基礎的信息管理方法所取代。作為計算機應用的一部分.使用學生信息管理系統(tǒng)對學生檔案進行管理.有著手工管理所無法比擬的優(yōu)點.如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高學生檔案管理的效率.也是學校向科學化、正規(guī)化管理發(fā)展的必要條件。設計目的對學生信息管理系統(tǒng).目的是為了對學校的學生信息管理工作進行系統(tǒng)的管理.以提高工作效率。通過程序設計.開發(fā)出學生信息管理系統(tǒng)代替相應的手工管理。學生信息管理系統(tǒng)可為用戶提供充足的信息和快捷的查詢手段.不但可以實現(xiàn)教師、學生的信息錄入、修改與刪除.而且可以實現(xiàn)學生成績的信息錄入、修改與刪除.同時可以對所有的信息進行查詢.實現(xiàn)學校的規(guī)范化管理。需求分析業(yè)務需求分析開發(fā)一個系統(tǒng)前.首先應該對該系統(tǒng)要實現(xiàn)的功能進行整體的分析和規(guī)劃.確保在開發(fā)過程中不會出現(xiàn)重大缺陷和漏洞。因此.在軟件開發(fā)的過程中應嚴格按照軟件工程的流程進行系統(tǒng)的分析與設計。該系統(tǒng)是學生管理系統(tǒng).應以學生信息為中心.組織相關程序結構。通過分析可知.學生信息管理系統(tǒng)的主要業(yè)務應有:學生基本信息管理、教師基本信息管理、學生成績管理、用戶管理等。功能需求分析通過業(yè)務需求分析可知.該系統(tǒng)主要有三類用戶:學生.教師和系統(tǒng)管理員。因此.該系統(tǒng)的功能可分為學生信息管理、教師信息管理和成績管理.具體有以下幾個方面:(1)學生:可以對每個學生的信息進行添加、修改、刪除和查詢。(2)成績:可以對每個學生所學科目的成績進行添加、刪除、修改和查詢。(3)教師:可以對每個教師的信息進行添加、刪除、修改和查詢。學生信息學生信息主要存儲了學生的基本情況.包括學號、姓名、性別、所在班級、所在學院等信息。一個學號可唯一確定一名學生。學生信息集中進行管理.方便進行相關基本信息的查詢、修改、刪除等活動.大大簡化了手續(xù)。教師信息教師信息主要存儲了教師的基本情況.包括教師編號、姓名、性別、職稱、所在學院等信息。一個教師編號可唯一確定一名教師。教師信息集中進行管理.方便進行查詢、修改、刪除和人事變動等活動.大大簡化了手續(xù)。

成績管理成績管理的對象是學生所學科目的相應成績.對成績進行集中管理.方便了學生查詢成績、教師添加、查詢和修改成績.加快了查詢速度.提高了準確率.大大簡化了手續(xù)。圖2-1學生信息管理系統(tǒng)功能模塊圖數(shù)據庫設計Java連接數(shù)據庫關系數(shù)據庫概述關系數(shù)據庫.是建立在關系數(shù)據庫模型基礎上的數(shù)據庫.借助于集合代數(shù)等概念和方法來處理數(shù)據庫中的數(shù)據.用二維表格形式來表述實體與實體之間關系有3種完整性約束:實體完整性、參照完整性和用戶自定義完整性.其中實體完整性和參照完整性是關系數(shù)據庫中必不可少的完整性條件.分別表述為主屬性不為空和一表或多表之間具有某種對應關系、相互制約。通過JDBC訪問數(shù)據庫JDBC由Java編程語言編寫的類和接口組成.是實現(xiàn)Java與各種數(shù)據庫連接的關鍵.提供了將Java與數(shù)據庫連接起來的程序接口.使用戶可以以SQL的形式編寫訪問請求.然后傳給數(shù)據庫.其結果再由這一接口返回.從而實現(xiàn)對數(shù)據庫中數(shù)據操作的目的。數(shù)據庫與基本表設計由于該系統(tǒng)數(shù)據量不大.采用了Access作為數(shù)據庫.所建的系統(tǒng)數(shù)據庫名為“student1”。通過需求分析、概念設計與邏輯設計?可知該系統(tǒng)數(shù)據庫應涉及到以下基本表:班級表、學生表、教師表.具體結構如下:班級表(班級編號?班級名稱?所屬學院?班級人數(shù))該表用于保存班級信息?其數(shù)據字典如表3-1所示:表3-1班級表數(shù)據字典字段名稱數(shù)據類型說明班級編號varchar(20)主鍵班級名稱varchar(20)所屬學院varchar(20)班級人數(shù)int2)學生表(學號.姓名.性別.出生日期.班級編號)該表用于存儲學生的基本信息.其數(shù)據字典如表3-2所示表3-2學生表數(shù)據字典字段名稱數(shù)據類型說明學號varchar(20)主鍵姓名varchar(20)性別varchar(20)屬性域為“男”?“女”出生日期data班級編號varchar(20)外鍵?參照班級表中班級編號(3)教師表(教師編號?姓名?性別?職稱?所屬學院?出生日期)該表用于存儲教師的基本信息.其數(shù)據字典如表3-3所示:表3-3教師表數(shù)據字典字段名稱數(shù)據類型說明教師編號varchar(20)主鍵姓名varchar(20)性別varchar(20)屬性域為“男”?“女”出生日期data職稱varchar(20)所屬學院varchar(20)

4)課程表(課程號.課程名.學分)該表用于存儲學生可學課程的基本信息.其數(shù)據字典如表3-4所示表3-4課程表數(shù)據字典字段名稱數(shù)據類型說明課程號varchar(20)主鍵課程名varchar(20)學分int5)成績表(學號.課程號.成績.教師編號)該表用于存儲學生可學課程的成績情況.其數(shù)據字典如表3-5所示表3-5課程表數(shù)據字典字段名稱數(shù)據類型說明學號varchar(20)外鍵?參照學生表中學號課程號varchar(20)外鍵.參照課程表中課程編號成績int教師編號varchar(20)外鍵.參照教師表中教師編號系統(tǒng)設計與實施EclipseJavaNeon3出于穩(wěn)定性與便利性的考量.本設計選用了EclipseJavaNeon3作為程序的開發(fā)環(huán)境.Eclipse是著名的跨平臺的自由集成開發(fā)環(huán)境(IDE).最初由OTI和IBM兩家公司的IDE產品開發(fā)組創(chuàng)建.它本身只是一個框架平臺?但是眾多插件的支持使得Eclipse擁有其他功能相對固定的IDE軟件很難具有的靈活性。使用時可清楚的發(fā)現(xiàn)錯誤.并能根據相應規(guī)則進行修改.大大簡化了程序檢查工作。由于packageexplorer的存在.使得隨時查找文件變得十分方便。同時又提供有很便利的數(shù)據庫連接方式。EclipseJavaNeon3具有以下四大優(yōu)點:(1)從編寫、查錯、編譯、幫助等等各方面為Java語言貼身定做。(2)可無限擴展的強大插件功能。(3)眾多公司、廠商、組織支持。(4)開放.自由.免費。結構設計該系統(tǒng)用于對學生的基本信息與學生的成績進行管理.主要包括添加、修改和刪除學生與教師基本信息.錄入、修改和刪除學生的成績.查詢學生和教師的基本信息.為了方便.全部操作均在界面中完成。由此.將該系統(tǒng)結構設計為登錄模塊、學生模塊、教師模塊.對應于學生與教師這兩類主要用戶。由于涉及界面設計.因此調用了java.awt.*、java.awt.event.*、javax.swing.*、java.util.*、javax.swing.event.*、java.sql.*等包。文件組織結構學生信息管理系統(tǒng)中使用的根目錄文件夾是“nnn”?其文件組織結構圖如圖4-1所示:v畀nnn7鍔src7nnn1巫AddGrade.javaJUAddStudent.javaQAddteacher.javaJUDeleteGrade.javaJUDeleteStudent.javaJXDeleteTeacher.javaJUGetGrade.javaJUGetStudent.java巫GetTeacher.java也InfoManage.javaJUSetGrade.javaJUSetStudent.javaJUSetTeacher.javaJUstudentmanagejavaJUteachermanage.java直UsingExit.javaUsingExit1.java>JRESystemLibrary[JavaSE-1圖4-1項目文件組織結構圖登錄模塊登錄模塊使進入學生信息管理系統(tǒng)的第一個界面.相當于一個網站的主頁。設計構想該系統(tǒng)是學生信息管理系統(tǒng).用戶為三類:學生、教師和系統(tǒng)管理員.可在相應的權限范圍內查詢和更新系統(tǒng)數(shù)據。因此.不同的用戶在登錄時需有不同的角色選項.此外.還應有各自的用戶名和密碼。實現(xiàn)登錄模塊(1)要生成一個界面.可應用AWT知識。設置其名字為學生信息管理系統(tǒng);設置布局管理器為(null)布局管理器?這樣方便往其中放組件;設置窗口大小和位置.還要設置窗口可見性。(2)生成界面后.接下來就需要實現(xiàn)每個功能.在設計構想中提到的第一個功能就是要對操作對象的身份進行選擇.這里要用下拉列表的形式進行選擇.也可以用單選按鈕來完成這個功能。在這項功能中.首先要選擇身份.所以要定義一個JLabel來說明.定義完JLabel后.就需要定義一個JComoBox.也就是下拉列表框。輸入用戶名和密碼。需要用兩個JLabel來指明需要輸入用戶名和密碼。輸入用戶名需要定義一個JTextField?也就是單文本框。同時輸入文本?但輸入密碼和輸入用戶名是不一樣的?它需要定義成JPasswordField.它的輸出結果為“*****”這樣的形式。創(chuàng)建兩個按鈕?一個是登錄按鈕?另一個是取消登錄按鈕.用來輸入的用戶名和密碼及選擇的身份進行提交。當然要對登錄按鈕事件進行事件監(jiān)聽?首先要驗證用戶名和密碼是否正確并對上.然后根據選擇的身份來選擇需要進入那個界面.其代碼如下:publicclassInfo_ManageextendsFrameimplementsActionListener{JLabelJLUserName=newJLabel("用戶名");JLabelJLPaw=newJLabel("密碼");JLabelJLP=newJLabelC角色");JTextFieldJTUserName=newJTextField();JPasswordFieldJPsw=newJPasswordField();JTextFieldjt=newJTextField(10);Stringstr[]={"學生","教師","管理者"};JComboBoxJCB=newJComboBoxstr);JButtonJB1二newJButton"登錄");JButtonJB2=newJButton"取消");publicInfo_Manage(){this.setTitle"學生信息管理系統(tǒng));this.setLayoutnull);JLUserNam?setBounds(100,40,100,20);this.add(JLUserNam);JTUserNam?setBounds(200,40,100,20);this.add(JTUserNam);JLPaw.setBounds(100,100,100,20);this.add(JLPaw);JPsw.setBounds(200,100,80,20);this.add(JPsw);JCB.setBounds(200,150,100,20);this.add(JCB);JLP.setBounds(100,150,100,20);this.add(JLP);JB1.setBounds(100,200,60,20);this.add(JB1);JB1.addActionListenerthis);JB2.setBounds(200,200,60,20);this.add(JB2);JB2.addActionListenerthis);this.setVisibletrue);this.setBounds(10,10,400,250);addWindowListenernewWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});JCB.addActionListenernewActionListener(){publicvoidactionPerformed(ActionEvente){inth=JCB.getSelectedIndex();if(h==0)student_managesm=newstudent_manage();elseif(h==1)teacher_managetm=newteacher_manage();}});}publicvoidactionPerformed(ActionEvente){if(e.getSource()=JB1){Stringname=JTUserNam.getText();Stringpassword=newString(JPsw.getPassword());if((name!=null&&(name.equals("1")))&&(password!=null&&(password.equals("1")))){newstudent_manage();}else{}}}其運行結果如圖4-2所示:£|學主信息管理M統(tǒng) 一□X圖4-2Info_Manage.java的顯示結果學生信息模塊當選擇“學生”時.單擊“登錄”按鈕就可以進入學生信息管理系統(tǒng)了.其信息量很大.具體如下所述:4.5.1設計構想進入了學生信息管理系統(tǒng).就可以對摸個學生的信息進行輸入、修改和刪除.也能對同學的信息進行查詢和對程序進行查詢。當打算離開時.還要有一個選項用來退出學生信息管理系統(tǒng)。實現(xiàn)學生信息模塊主界面根據設計構想.首先要搭建一個界面.然后吧學生信息操作的每一部分分為3大塊.分別是信息、查詢、和其他.并把他們做成菜單形式.最后將對信息的輸入.修改和刪除做成子菜單添加到信息菜單下;將查詢信息和查詢成績添加到查詢菜單下;將突出添加到其他菜單下.并把他做成子菜單放在一個菜單下.這樣做是為了如果以后需要更多的功能.可以很方便的進行添加。創(chuàng)建菜單需要的定義JMenu.創(chuàng)建子菜單需要定義JMenultem.并且要指明是添加到哪個菜單下面.下面是學生管理模塊主界面的部分代碼classstudent_manageextendsJFrameimplementsActionListener{JMenuBarjm=newJMenuBar();JMenujm仁newJMenu(信息");JMenuItemjmi仁newJMenuItem增加信息');JMenuItemjmi2二newJMenuItem刪除信息');JMenuItemjmi3二newJMenuItem修修改信息');JMenujm2=newJMenu(查詢");JMenuItemjmi2仁newJMenuItem基本信息查詢');JMenuItemjm22=newJMenuItem成績查詢');JMenujm3=newJMenu(其他");JMenuItemjmi3仁newJMenuItem退出");//添加組件與設置位置部分代碼與lnfo_Manage.java類似publicvoidactionPerformed(ActionEvente){if(e.getSource()==jmi1)newAddStudent();if(e.getSource()==jmi2)newDeleteStudent();if(e.getSource()==jmi3)newGetStudent();if(e.getSource()==jmi21)newSetStudent();if(e.getSource()==jmi31)newUsingExit().setVisible(true);}其運行結果如圖4-3所示:圖4-3student_manage.java的顯示結果添加信息每個子菜單都對應著一個操作界面.接下來對每一個子菜單進行講解。當選擇信息菜單下的“增加信息”子菜單時.將彈出如圖所示的界面.它調用了AddStudent.java類實現(xiàn)該功能。通過對“增加信息”這一子菜單設置監(jiān)聽.彈出界面。AddStudent.java的代碼如下:classAddStudentextendsJFrameimplementsActionListener{JLabelJL二newJLabel(添加基本信息",JLabel.CENTER);JLabelJLNumber二newJLabel(學號");JTextFieldJTNumber二newJTextField();JLabelJLName=newJLabel(姓名");JTextFieldJTName二newJTextField();JLabelJLClass二newJLabel(班級");JTextFieldJTClass=newJTextField();JLabelJLsex=newJLabel("性別");ButtonGroupBG二newButtonGroup();JRadioButtonJRB仁newJRadioButton男");JRadioButtonJRB2=newJRadioButton女");JLabelJL1二newJLabel(學院");JTextFieldJT仁newJTextField();JLabelJL2=newJLabel(生日");JTextFieldJT2=newJTextField();JButtonJBAdd=newJButton(添加");JButtonJBNext二newJButton(重置");JButtonJBExit二newJButton(退出");Stringsql="";//添加組件與設置位置部分代碼與lnfo_Manage.java類似publicvoidactionPerformed(ActionEvente){if(e.getSource()==JBAdd){Stringsnumber=JTNumber.getText();Stringsname=JTName.getText();Stringsclass=JTClass.getText();Stringssex二'女";if(JRB1.isSelected())ssex="男";Stringscollect=JT1.getText();Stringsbir=JT2.getText();sql="select*fromstudentwhereid='"+snumber+"'";try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncot=DriverManager.getConnection("jdbc:odbc:student1","","");Statementstm=cot.createStatement();ResultSetrs=stm.executeQuery(sql);if(rs.next())JOptionPane.showMessageDialog(null,該"號碼已存在!");else{sql="insertintostudentvalues('"+snumber+"','"

+sname+"','"+sclass+"','"+ssex+"','"+scollect+"','"+sbir+")'";inti=stm.executeUpdate(sql);if(i>0)JOptionPane.showMessageDialog(null,添加成功!");elseJOptionPane.showMessageDialog(null,刪"除失??!");}}catch(Exceptionee){}}if(e.getSource()==JBNext){JTNumber.setText(null);JTName.setText(null);JTClass.setText(null);JT1.setText(null);JT2.setText(null);}if(e.getSource()==JBExit){setVisible(false);

其運行結果如圖4-4所示:I?I漏加孚主佶慝生口濟in0:蟲生口濟in0:蟲過出圖4-4AddStudent.java的顯示結果刪除信息當選擇信息菜單下的刪除信息子菜單是.將彈出圖所示的界面.它調用了DeleteStudent.java類實現(xiàn)該功能.其代碼如下:classDeleteStudentextendsJFrameimplementsActionListener{JLabelJL二newJLabel("刪除基本信息",JLabel.CENTER);JLabelJLNumber=newJLabel("學號");JTextFieldJTNumber=newJTextField();JLabelJLName=newJLabel("姓名");JTextFieldJTName=newJTextField();JButtonJBDel=newJButton("刪除");JButtonJBNext=newJButton("重置");JButtonJBExit=newJButton("退出");Stringsql="";//添加組件與設置位置部分代碼與lnfo_Manage.java類似publicvoidactionPerfomed(ActionEvente){if(e.getSource()=JBDel){Stringsnumber=JTNumber.getText();Stringsname二JTName,getText();sql二"select*fromstudentwhereId=+Snumber+"'";try{Class.forName"sun.jdbc.odbc.JdbcOdbcDriver);Connectioncot=DriverManager.getConnection("jdbc:odbc:student1,"","");Statementstm=cot.createStatement();ResultSetrs=stm.executeQuerysql);if(rs.next()){sql="delete*fromstudentwhereId=+snumber+"'";intn=stm.executeUpdatesql);if(n>0)JOptionPane.showMessageDialonull,"刪除成功');elseJOptionPane.showMessageDialonull,"刪除失敗');}elseJOptionPane.showMessageDialonull,"此用戶不存在');}catch(Exceptioner){}}if(e.getSource()=JBNext){JTNumber.setTextnull);JTName.setTextnull);}if(e.getSource()=JBExit)setVisiblefalse);}其運行結果如圖4-5所示:圖4-5DeleteStudent.java的顯示結果修改信息當選擇“信息”菜單下的“修改信息”子菜單時.將彈出如圖所示的界面他將點用了GetStudent.java類實現(xiàn)該功能。GetStudent.java的代碼如下:classGetStudentextendsJFrameimplementsActionListener{JLabelJL=newJLabel("學生基本信息',JLabel.CENTER);JLabelJLNumber二newJLabelf學號");JTextFieldJTNumber=newJTextField();JLabelJLName二newJLabelC姓名");JTextFieldJTName=newJTextField();JLabelJLCIass=newJLabelC班級");JTextFieldJTClass=newJTextField();JLabelJLsex=newJLabelC性別");ButtonGroupBG=newButtonGroup();JRadioButtonJRB1二newJRadioButton"男");JRadioButtonJRB2=newJRadioButton"女");JLabelJL1=newJLabelC學院");JTextFieldJT1=newJTextField();JLabelJL2=newJLabelC生日");JTextFieldJT2=newJTextField();JButtonJBGet=newJButton"修改");JButtonJBNext=newJButton"取消");JButtonJBExit=newJButton"退出");Stringsql="";//添加組件與設置位置部分代碼與lnfo_Manage.java類似publicvoidactionPerformed(ActionEvente){if(e.getSource()=JBGet){Stringsnumber=JTNumber.getText();Stringsname=JTName.getText();Stringsclass=JTClass.getText();Stringssex="女",sql;if(JRB1.isSelected())ssex="男";Stringscollect=JT1.getText();Stringsbir=JT2.getText();sql="select*fromstudentwhereld=+snumber+"'";try{Class.forName"sun.jdbc.odbc.JdbcOdbcDriver);Connectioncot=DriverManager.getConnection("jdbc:odbc:student1,"","");Statementstm=cot.createStatement();ResultSetrs=stm.executeQuerysql);if(rs.next()){sql="updatestudentsetname='+sname+"',class='"+sclass+"',sex='"+ssex+"',collect='"+scollect+"',bir='"+sbir+"'whereld='"+snumber+"'";intn=stm.executeUpdatesql);if(n>0)JOptionPane.showMessageDialonull,"修改成功');elseJOptionPane.showMessageDialonull,"修改失敗!");elseJOptionPane.showMessageDialognull,"此用戶不存在!");}catch(Exceptioner){}}if(e.getSource()=JBNext){JTNumber.setTextnull);JTName.setTextnull);JTClass.setTextnull);JT1.setTextnull);JT2.setTextnull);}if(e.getSource()=JBExit){setVisiblefalse);}}publicstaticvoidmain(Stringargs[]){newGetStudent();}}其運行結果如圖4-6所示:圖4-6GetStudent.java的顯示結果基本信息查詢當選擇“查詢”菜單下的“基本信息查詢”子菜單時.將彈出如圖所示的界面.它調用了SetStudent.java類實現(xiàn)該功能。SetStudent.java的代碼如下:classSetStudentextendsJFrameimplementsActionListener{JLabelJL=newJLabel("查詢基本信息",JLabel.CENTER);JLabelJLNumber二newJLabel("學號");JTextFieldJTNumber=newJTextField();JLabelJLName二newJLabel("姓名");JTextFieldJTName=newJTextField();JLabelJLClass=newJLabel("班級");JTextFieldJTClass=newJTextField();JLabelJLsex=newJLabel("性別");ButtonGroupBG=newButtonGroup();JRadioButtonJRB1=newJRadioButton("男");JRadioButtonJRB2=newJRadioButton("女");JLabelJL1=newJLabel("學院");JTextFieldJT1=newJTextField();JLabelJL2=newJLabel("生日");JTextFieldJT2=newJTextField();JButtonJBSet=newJButton("查詢");JButtonJBNext=newJButton("重置");JButtonJBExit=newJButton("退出");Stringsql="";//添加組件與設置位置部分代碼與lnfo_Manage.java類似publicvoidactionperfoemaed(ActionEvente){if(e.getSource()==JBSet){Stringsnumber=JTNumber.getText();Stringsname二JTName.getTextO:Stringsclass二JTCIass.getTextO:Stringssex二"女":if(JRB1.isSelected())ssex="男";Stringscollect=JT1.getText();Stringsbir=JT2.getText():sql="select*fromstudentwhereld='"+snumber+"'"try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"):Connectioncot=DriverManager.getConnection("jdbc.odbc.student1","",""):Statementstm=cot.createStatement():ResultSetrs=stm.executeQuery(sql):if(rs.next()){Stringname=rs.getString(2):JTName.setText(name):Stringclas=rs.getString(3):JTClass.setText(clas):Stringsex=rs.getString(4):JRB1.setText(sex):Stringcollect=rs.getString(5):JT1.setText(collect):Stringbir=rs.getString(6):JT2.setText(bir);intn=stm.executeUpdate(sql);if(n>0)JOptionPane.showMessageDialo(null,"查詢成功”);elseJOptionPane.showMessageDialo(null,"查詢失敗");}ElseJOptionPane.showMessageDialog(null,"此用戶不存在");}catch(Exceptionee){}}if(e.getSource()==JBNext){JTNumber.setText(null);JTName.setText(null);JTClass.setText(null);JT1.setText(null);JT2.setText(null);}if(e.getSource()==JBExit)setVisible(false);}}其運行結果如圖4-6所示:圖4-7SetStudent.java的顯示結果成績查詢當選擇“查詢”菜單下的“成績查詢”子菜單時.調用SetGrade.java類來實現(xiàn)功能。SetGrade.java的代碼如下:classSetGradeextendsJFrameimplementsActionListener{JLabelJL=newJLabel("查詢成績",JLabel.CENTER);JLabelJLNumber=newJLabel("學號");JTextFieldJTNumber=newJTextField();JLabelJLName=newJLabel("姓名");JTextFieldJTName=newJTextField();JLabelJLCIass二newJLabel("大學英語");JTextFieldJTClass=newJTextField();JLabelJLsex=newJLabel("性別");ButtonGroupBG=newButtonGroup();JRadioButtonJRB1=newJRadioButton("男");JRadioButtonJRB2=newJRadioButton("女");JLabelJL1=newJLabel("高等數(shù)學");JTextFieldJT1=newJTextField();JLabelJL2=newJLabel("班級");JTextFieldJT2=newJTextField();JButtonJBSet=newJButton("查詢");JButtonJBNext=newJButton("重置");JButtonJBExit=newJButton("退出");Stringsql="";//添加組件與設置位置部分代碼與lnfo_Manage.java類似publicvoidactionPerformed(ActionEvente){if(e.getSource()==JBSet){Stringsnumber=JTNumber.getText();Stringsname二JTName.getTextO:Stringsclass二JTCIass.getTextO:Stringssex二"女":if(JRB1.isSelectedO)ssex="男":Stringscollect=JT1.getText();Stringsbir=JT2.getText():sql="select*fromgradewhereld='"+snumber+"'":try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"):Connectioncot=DriverManager.getConnection("jdbc:odbc:student1","",""):Statementstm=cot.createStatement():ResultSetrs=stm.executeQuery(sql):if(rs.next()){Stringname=rs.getString(2):JTName.setText(name):Stringclas=rs.getString(3):JTClass.setText(clas):Stringsex=rs.getString(4):JRB1.setText(sex):Stringcollect=rs.getString(5):JT1.setText(collect):Stringbir=rs.getString(6):JT2.setText(bir):intn=stm.executeUpdate(sql);if(n>0)JOptionPane.showMessageDialog(null,"查詢成功!");elseJOptionPane.showMessageDialo(null,"查詢失敗!");}elseJOptionPane.showMessageDialog(null,"此用戶不存在!");}catch(Exceptionee){}}if(e.getSource()==JBNext){JTNumber.setText(null);JTName.setText(null);JTClass.setText(null);JT1.setText(null);JT2.setText(null);}if(e.getSource()==JBExit)setVisible(false);}}其運行結果如圖4-8所示:圖4-8SetGrade.java的顯示結果退出系統(tǒng)當選擇“其他”菜單下的“退出”子菜單時將彈出如圖所示的界面.它調用了UssingExit.java類實現(xiàn)該功能。其代碼如下:classUsingExitextendsJFrameimplementsActionListener{JLabelJLInfo=newJLabel("學生信息管理");JButtonJBExit=newJButton("退出");JButtonJBNE二newJButton(”取消"

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論