學(xué)生學(xué)籍管理系統(tǒng)JAVA+SQL.docx_第1頁
學(xué)生學(xué)籍管理系統(tǒng)JAVA+SQL.docx_第2頁
學(xué)生學(xué)籍管理系統(tǒng)JAVA+SQL.docx_第3頁
學(xué)生學(xué)籍管理系統(tǒng)JAVA+SQL.docx_第4頁
學(xué)生學(xué)籍管理系統(tǒng)JAVA+SQL.docx_第5頁
已閱讀5頁,還剩39頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

課 題 學(xué)生姓名 學(xué) 號 專 業(yè) 班 級 系(院) 指導(dǎo)教師 職 稱 二 年 月 畢業(yè)設(shè)計真實性承諾及指導(dǎo)教師聲明學(xué)生畢業(yè)設(shè)計真實性承諾本人鄭重聲明:所提交的畢業(yè)設(shè)計是本人在指導(dǎo)教師的指導(dǎo)下,獨立進行研究工作所取得的成果,內(nèi)容真實可靠,不存在抄襲、造假等學(xué)術(shù)不端行為。除文中已經(jīng)注明引用的內(nèi)容外,本設(shè)計不含其他個人或集體已經(jīng)發(fā)表或撰寫過的研究成果。對本文的研究做出重要貢獻的個人和集體,均已在文中以明確方式標明。如被發(fā)現(xiàn)設(shè)計中存在抄襲、造假等學(xué)術(shù)不端行為,本人愿承擔相應(yīng)的法律責任和一切后果。學(xué)生(簽名): 日 期: 指導(dǎo)教師關(guān)于學(xué)生畢業(yè)設(shè)計真實性審核的聲明本人鄭重聲明:已經(jīng)對學(xué)生畢業(yè)設(shè)計所涉及的內(nèi)容進行嚴格審核,確定其成果均由學(xué)生在本人指導(dǎo)下取得,對他人論文及成果的引用已經(jīng)明確注明,不存在抄襲等學(xué)術(shù)不端行為。 指導(dǎo)教師(簽名): 日 期: 注:此聲明由指導(dǎo)教師和學(xué)生本人親筆簽名。29目錄摘 要1Abstruct2第1章 項目背景3第2章 需求分析42.1系統(tǒng)需求簡介4 2.2系統(tǒng)ER圖5第3章 總體設(shè)計63.1設(shè)計概述63.2系統(tǒng)總體結(jié)構(gòu)及功能模塊劃分63.3系統(tǒng)數(shù)據(jù)庫的設(shè)計6第4章 詳細設(shè)計94.1概述94.2系統(tǒng)程序流程圖94.3安全保密設(shè)計104.3.1用戶登錄安全性104.4主要功能模塊代碼104.4.1公共類代碼設(shè)計(數(shù)據(jù)的增刪查改)104.4.2 登錄界面代碼設(shè)計18第5章 實行215.1系統(tǒng)登錄215.2參數(shù)設(shè)置215.3基本信息235.4系統(tǒng)查詢模塊255.5系統(tǒng)管理26第6章 測試276.1總體測試27總結(jié)28致謝29參考30摘 要隨著教育的不斷普及,各個學(xué)校的學(xué)生人數(shù)也越來越多。傳統(tǒng)的管理方式并不能適應(yīng)時代的發(fā)展。為了提高管理效率,減少學(xué)校開支,使用軟件管理學(xué)生信息已成為必然。本學(xué)生信息管理系統(tǒng)是基于Java EE與SQL server 2008數(shù)據(jù)庫技術(shù)建立的一個系統(tǒng),使用了Swing、IDBC技術(shù)連接數(shù)據(jù)庫、javabean等技術(shù),該系統(tǒng)提供了查詢、修改、增加記錄、刪除等功能,功能比較落齊全,基本上能滿足學(xué)校的需求。關(guān)鍵詞: 學(xué)生信息管理;SQLSERVER;JAVA EE;JavaBeanAbstruct With the popularization of education, the number of students in each school are more and more. The pain management mode and can not adapt to the development of the times. In order to improve management efficiency, reduce school spending, the use of software to manage student information has become an inevitable. The student information management system is based on Java EE and SQL Server 2008 database technology to establish a system, the use of the swing, IDBC technology connecting database, JavaBean technology, the system provides query, modify, add records, delete and other functions, function relatively complete, can basically meet the school requirements.Keywords: student information management; SQLSERVER; JAVA EE; JavaBean第1章 項目背景隨著科學(xué)技術(shù)的不斷提高,計算機科學(xué)日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。隨著計算機網(wǎng)絡(luò)技術(shù)發(fā)展,Web數(shù)據(jù)庫技術(shù)已經(jīng)成為應(yīng)用最為廣泛的網(wǎng)站架構(gòu)基礎(chǔ)技術(shù)在應(yīng)用系統(tǒng)中,Web提供了與用戶進行通信聯(lián)絡(luò)的有效手段,利用Web技術(shù),實現(xiàn)Web服務(wù)器與數(shù)據(jù)庫系統(tǒng)的連接,完成對數(shù)據(jù)的處理與查詢,用戶可以通過操作簡單易學(xué)的瀏覽器來查詢處理所需要的各種數(shù)據(jù)。學(xué)生信息的管理是學(xué)校日常工作中的重要組成部分。高校招生規(guī)模的逐步擴大和認識制度的改革,在校學(xué)生人數(shù)將不斷增加,而學(xué)生管理人員則相對減少。加上我國高等學(xué)?;鶎訉W(xué)生管理工作的頭緒多,內(nèi)容雜,管理細,要求高,傳統(tǒng)管理辦法已基本不適應(yīng)新形勢的要求。在校生的基本信息的管理,選課及成績的信息的管理,學(xué)生學(xué)籍的管理,稍有不慎就會出現(xiàn)錯誤。同時學(xué)生成績的手工登錄與查詢,是一項非常繁重而枯燥的勞動,每年課程的變化都需要重新規(guī)劃,耗費許多人力和物力,而且會因人的情緒煩燥而出現(xiàn)失誤。因此在計算機飛速發(fā)展的今天,應(yīng)用數(shù)據(jù)庫技術(shù)實現(xiàn)學(xué)生信息的管理是可行而必要的工作,實現(xiàn)高校學(xué)生信息網(wǎng)上管理,既能夠提高工作效率,又可以提高工作水平。計算機具有運算速度快、精度高、能按照設(shè)計邏輯處理問題等特性,在學(xué)生信息的錄入、統(tǒng)計中如采用一個計算機化的信息系統(tǒng)進行處理,就不會發(fā)生信息遺漏或者數(shù)據(jù)輸入不正確的情形。在學(xué)校,而長期以來,學(xué)生信息管理都是依賴人工進行的,面對如此眾多的學(xué)生信息,其工作量可想而知。不僅僅浪費了大量的人力物力,而且由于人工管理存在著大量的不可控因素,造成了信息管理的某些不規(guī)范。作為計算機應(yīng)用的一部分,使用計算機對學(xué)生信息進行管理,具有手工管理所無法比擬的優(yōu)點。例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高的效率。開發(fā)這樣一套管理軟件成為很有必要的事情。第2章 需求分析2.1系統(tǒng)需求(1) 實現(xiàn)用戶登錄(2) 根據(jù)查詢條件實現(xiàn)學(xué)生信息的查詢(3) 根據(jù)查詢條件實現(xiàn)成績信息的查詢(4) 學(xué)生信息、課程信息、成績信息的增加、刪除、修改(5) 學(xué)生獎懲信息管理(6) 學(xué)生信息統(tǒng)計 本系統(tǒng)的功能需求分析如下:(1) 學(xué)生信息查詢:學(xué)生可以根據(jù)學(xué)號、姓名、專業(yè)進行查詢.(2) 學(xué)生信息管理:主要是用于學(xué)生信息更新、插入、刪除;(3) 學(xué)生成績錄入:用于學(xué)生成績管理,錄入學(xué)生成績,也可以更新;性能需求分析:(1) 登錄、用戶界面需求:簡潔、易懂、易用、友好的用戶界面。(2) 安全保密性需求:只有憑借用戶名和密碼登陸系統(tǒng),才能進行信息的管理等。2.2系統(tǒng)ER圖圖2.2.1系統(tǒng)E-R圖結(jié)構(gòu)第3章 總體設(shè)計3.2系統(tǒng)總體結(jié)構(gòu)及功能模塊劃分經(jīng)過對系統(tǒng)的需求分析,學(xué)生信息管理系統(tǒng)主要劃分為五個部分:用戶登錄,參數(shù)設(shè)置,基本信息,系統(tǒng)查詢,系統(tǒng)管理五個功能模塊。如圖3.3.1 系統(tǒng)的總體結(jié)構(gòu)。圖3.2.1 系統(tǒng)的總體結(jié)構(gòu)3.3系統(tǒng)數(shù)據(jù)庫的設(shè)計數(shù)據(jù)表設(shè)計是非常重要的環(huán)節(jié),主要設(shè)計表如下: 圖3.3.1班級信息表(tb_classinfo)用于存儲班級信息圖3.3.2考試種類表(tb_examkind)用于保存考試種類信息圖3.3.3年級信息表 (tb_gradeinfo)圖3.3.4考試科目成績表(tb_gradeinfo_sub)圖3.3.5學(xué)生信息表(tb_studentinfo)圖3.3.6科目表(tb_subject)用于保存科目信息圖3.3.7教師信息表(tb_teacher)圖3.3.8用戶表(tb_user)第4章 詳細設(shè)計4.2系統(tǒng)程序流程圖程序流程圖又稱為程序框圖,它是歷史悠久使用最廣泛的描述軟件設(shè)計的方法。它可將整個程序的總體流程清楚明白的顯示出來。如圖4.2.1系統(tǒng)總流程圖結(jié)構(gòu)。圖4.2.1系統(tǒng)總體流程圖4.3安全保密設(shè)計4.3.1用戶登錄安全性系統(tǒng)設(shè)計了登錄界面,每個合法用戶有用戶名及一個密碼,只有當用戶輸入正確的用戶名及密碼組合后才能夠?qū)W(xué)生信息進行操作。4.4主要功能模塊代碼4.4.1公共類代碼設(shè)計(數(shù)據(jù)的增刪查改)package appstu.util;import java.sql.Connection;import java.sql.DriverManager;public class CommonaJdbc public static Connection conection = null; public CommonaJdbc() getCon(); private Connection getCon() try Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); conection = DriverManager.getConnection(jdbc:sqlserver:/localhost:1433;DatabaseName=DB_Student , sa, 196816); catch (java.lang.ClassNotFoundException classnotfound) classnotfound.printStackTrace(); catch (java.sql.SQLException sql) new appstu.view.JF_view_error(sql.getMessage(); sql.printStackTrace(); return conection; package appstu.util;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.Statement;import javax.swing.JOptionPane;import appstu.model.Obj_classinfo;import appstu.model.Obj_examkinds;import appstu.model.Obj_gradeinfo;import appstu.model.Obj_gradeinfo_sub;import appstu.model.Obj_student;import appstu.model.Obj_subject;import appstu.model.Obj_teacher;import appstu.model.Obj_user;import appstu.view.JF_view_error;public class JdbcAdapter private Connection con = null; private Statement stmt = null; private PreparedStatement pstmt = null; private String infoStr = null; public boolean BuildeDeleteTempView(String sqlState) boolean flag = false; System.out.println(執(zhí)行的語句為: + sqlState); try con = CommonaJdbc.conection; pstmt = con.prepareStatement(sqlState); pstmt.execute(); flag = true; catch (java.sql.SQLException sql) flag = false; sql.printStackTrace(); return flag; / 真正的執(zhí)行對數(shù)據(jù)庫的各種操作 private boolean AdapterObject(String sqlState) boolean flag = false; try con = CommonaJdbc.conection; / 獲取數(shù)據(jù)庫連接 pstmt = con.prepareStatement(sqlState); / 獲取PreparedStatement實例 pstmt.execute(); / 執(zhí)行該SQL語句 flag = true; / 將標識量修改為true JOptionPane.showMessageDialog(null, infoStr + 數(shù)據(jù)成功!, 系統(tǒng)提示, JOptionPane.INFORMATION_MESSAGE); / 彈出相應(yīng)提示對話框 catch (java.sql.SQLException sql) flag = false; sql.printStackTrace(); return flag; / 將標識量返回 / 執(zhí)行刪除數(shù)據(jù)表中的數(shù)據(jù) public boolean DeleteObject(String deleteSql) infoStr = 刪除; return AdapterObject(deleteSql); / 驗證數(shù)據(jù)表中是否存在數(shù)據(jù) private boolean validateID(String id, String tname, String idvalue) String sqlStr = null; sqlStr = select count(*) from + tname + where + id + = + idvalue + ; / 定義SQL語句 try con = CommonaJdbc.conection; / 獲取數(shù)據(jù)庫連接 pstmt = con.prepareStatement(sqlStr); / 獲取PreparedStatement實例 java.sql.ResultSet rs = null; / 獲取ResultSet實例 rs = pstmt.executeQuery(); / 執(zhí)行SQL語句 if (rs.next() if (rs.getInt(1) 0) / 如果數(shù)據(jù)表中有值 return true; / 返回true值 catch (java.sql.SQLException sql) / 如果產(chǎn)生異常 sql.printStackTrace(); / 輸出異常 return false; / 返回false值 return false; / 返回false值 public boolean InsertOrUpdateObject(Obj_gradeinfo objgradeinfo) String sqlStatement = null; if (validateID(gradeID, tb_gradeinfo, objgradeinfo.getGradeID().trim() sqlStatement = Update tb_gradeinfo set gradeID = + objgradeinfo.getGradeID() + ,gradeName = + objgradeinfo.getGradeName() + where gradeID = + objgradeinfo.getGradeID().trim() + ; infoStr = 更新年級; else sqlStatement = Insert tb_gradeinfo(gradeID,gradeName) values ( + objgradeinfo.getGradeID() + , + objgradeinfo.getGradeName() + ); infoStr = 添加年級; System.out.println(sqlStatement); return AdapterObject(sqlStatement); public boolean InsertOrUpdateObject(Obj_classinfo objclassinfo) String sqlStatement = null; if (validateID(classID, tb_classinfo, objclassinfo.getClassID() sqlStatement = Update tb_classinfo set className = + objclassinfo.getClassName() + where classID = + objclassinfo.getClassID().trim() + ; infoStr = 更新班級; else sqlStatement = Insert tb_classinfo(classID,gradeID,className) values ( + objclassinfo.getClassID() + , + objclassinfo.getGradeID() + , + objclassinfo.getClassName() + ); infoStr = 添加班級; System.out.println(sqlStatement); return AdapterObject(sqlStatement); public boolean InsertOrUpdateObject(Obj_subject objsubject) String sqlStatement = null; if (validateID(code, tb_subject, objsubject.getCode() sqlStatement = Update tb_subject set code = + objsubject.getCode() + ,subject = + objsubject.getSubject() + where code = + objsubject.getCode().trim() + ; infoStr = 更新考試科目; else sqlStatement = Insert tb_subject(code,subject) values ( + objsubject.getCode() + , + objsubject.getSubject() + ); infoStr = 添加考試科目; return AdapterObject(sqlStatement); public boolean InsertOrUpdateObject(Obj_examkinds objexamkinds) String sqlStatement = null; if (validateID(KindID, tb_examkinds, objexamkinds.getKindID() sqlStatement = Update tb_examkinds set KindID = + objexamkinds.getKindID() + ,KindName = + objexamkinds.getKindName() + where KindID = + objexamkinds.getKindID().trim() + ; infoStr = 更新考試類別; else sqlStatement = Insert tb_examkinds(KindID,KindName) values ( + objexamkinds.getKindID() + , + objexamkinds.getKindName() + ); infoStr = 添加考試類別; return AdapterObject(sqlStatement); public boolean InsertOrUpdateObject(Obj_user objuser) String sqlStatement = null; if (validateID(userid, tb_user, objuser.getUserid() sqlStatement = Update tb_user set userid = + objuser.getUserid() + ,username = + objuser.getUsername() + ,pass = + objuser.getPass() + where userid = + objuser.getUserid().trim() + ; infoStr = 更新用戶; else sqlStatement = Insert tb_user(userid,username,pass) values ( + objuser.getUserid() + , + objuser.getUsername() + , + objuser.getPass() + ); infoStr = 添加用戶; return AdapterObject(sqlStatement); / / / 產(chǎn)生更新存盤學(xué)生信息語句 public boolean InsertOrUpdateObject(Obj_student objstudent) String sqlStatement = null; if (validateID(stuid, tb_studentinfo, objstudent.getStuid() sqlStatement = Update tb_studentinfo set stuid = + objstudent.getStuid() + ,classID = + objstudent.getClassID() + ,stuname = + objstudent.getStuname() + ,sex = + objstudent.getSex() + ,age = + objstudent.getAge() + ,addr = + objstudent.getAddress() + ,phone = + objstudent.getPhone() + where stuid = + objstudent.getStuid().trim() + ; infoStr = 更新學(xué)生信息; else sqlStatement = Insert tb_studentinfo(stuid,classid,stuname,sex,age,addr,phone) values ( + objstudent.getStuid() + , + objstudent.getClassID() + , + objstudent.getStuname() + , + objstudent.getSex() + , + objstudent.getAge() + , + objstudent.getAddress() + , + objstudent.getPhone() + ); infoStr = 添加學(xué)生信息; return AdapterObject(sqlStatement); / 產(chǎn)生更新存盤教師信息語句 public boolean InsertOrUpdateObject(Obj_teacher objteacher) String sqlStatement = null; if (validateID(teaid, tb_teacher, objteacher.getTeaid() sqlStatement = Update tb_teacher set teaid = + objteacher.getTeaid() + ,classID = + objteacher.getClassID() + ,teaname = + objteacher.getTeaname() + ,sex = + objteacher.getSex() + ,knowledge = + objteacher.getKnowledge() + ,knowlevel = + objteacher.getKnowlevel() + where teaid = + objteacher.getTeaid().trim() + ; infoStr = 更新教師信息; else sqlStatement = Insert tb_teacher(teaid,classID,teaname,sex,knowledge,knowlevel) values ( + objteacher.getTeaid() + , + objteacher.getClassID() + , + objteacher.getTeaname() + , + objteacher.getSex() + , + objteacher.getKnowledge() + , + objteacher.getKnowlevel() + ); infoStr = 添加教師信息; return AdapterObject(sqlStatement); / 驗證數(shù)據(jù)表中是否存在數(shù)據(jù) private boolean validateobjgradeinfo(String stuid, String kindid, String code) String sqlStr = null; sqlStr = select count(*) from tb_gradeinfo_sub where stuid = + stuid + and kindID = + kindid + and code = + code + ; System.out.println(sqlStr); try con = CommonaJdbc.conection; pstmt = con.prepareStatement(sqlStr); java.sql.ResultSet rs = null; rs = pstmt.executeQuery(); if (rs.next() if (rs.getInt(1) 0) return true; catch (java.sql.SQLException sql) sql.printStackTrace(); new appstu.view.JF_view_error(執(zhí)行的SQL語句為:n + sqlStr + n錯誤信息為: + sql.getMessage(); return false; return false; / 產(chǎn)生更新學(xué)生信息信息語句 public boolean InsertOrUpdate_Obj_gradeinfo_sub(Obj_gradeinfo_sub object) try con = CommonaJdbc.conection; stmt = con.createStatement(); for (int i = 0; i object.length; i+) String sqlStr = null; if (validateobjgradeinfo(objecti.getStuid(), objecti.getKindID(), objecti.getCode() sqlStr = update tb_gradeinfo_sub set stuid = + objecti.getStuid() + ,stuname = + objecti.getSu

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論