學生學籍管理系統(tǒng)JAVA+SQL.docx_第1頁
學生學籍管理系統(tǒng)JAVA+SQL.docx_第2頁
學生學籍管理系統(tǒng)JAVA+SQL.docx_第3頁
學生學籍管理系統(tǒng)JAVA+SQL.docx_第4頁
學生學籍管理系統(tǒng)JAVA+SQL.docx_第5頁
免費預覽已結束,剩余39頁可下載查看

下載本文檔

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

文檔簡介

課 題 學生姓名 學 號 專 業(yè) 班 級 系(院) 指導教師 職 稱 二 年 月 畢業(yè)設計真實性承諾及指導教師聲明學生畢業(yè)設計真實性承諾本人鄭重聲明:所提交的畢業(yè)設計是本人在指導教師的指導下,獨立進行研究工作所取得的成果,內(nèi)容真實可靠,不存在抄襲、造假等學術不端行為。除文中已經(jīng)注明引用的內(nèi)容外,本設計不含其他個人或集體已經(jīng)發(fā)表或撰寫過的研究成果。對本文的研究做出重要貢獻的個人和集體,均已在文中以明確方式標明。如被發(fā)現(xiàn)設計中存在抄襲、造假等學術不端行為,本人愿承擔相應的法律責任和一切后果。學生(簽名): 日 期: 指導教師關于學生畢業(yè)設計真實性審核的聲明本人鄭重聲明:已經(jīng)對學生畢業(yè)設計所涉及的內(nèi)容進行嚴格審核,確定其成果均由學生在本人指導下取得,對他人論文及成果的引用已經(jīng)明確注明,不存在抄襲等學術不端行為。 指導教師(簽名): 日 期: 注:此聲明由指導教師和學生本人親筆簽名。29目錄摘 要1Abstruct2第1章 項目背景3第2章 需求分析42.1系統(tǒng)需求簡介4 2.2系統(tǒng)ER圖5第3章 總體設計63.1設計概述63.2系統(tǒng)總體結構及功能模塊劃分63.3系統(tǒng)數(shù)據(jù)庫的設計6第4章 詳細設計94.1概述94.2系統(tǒng)程序流程圖94.3安全保密設計104.3.1用戶登錄安全性104.4主要功能模塊代碼104.4.1公共類代碼設計(數(shù)據(jù)的增刪查改)104.4.2 登錄界面代碼設計18第5章 實行215.1系統(tǒng)登錄215.2參數(shù)設置215.3基本信息235.4系統(tǒng)查詢模塊255.5系統(tǒng)管理26第6章 測試276.1總體測試27總結28致謝29參考30摘 要隨著教育的不斷普及,各個學校的學生人數(shù)也越來越多。傳統(tǒng)的管理方式并不能適應時代的發(fā)展。為了提高管理效率,減少學校開支,使用軟件管理學生信息已成為必然。本學生信息管理系統(tǒng)是基于Java EE與SQL server 2008數(shù)據(jù)庫技術建立的一個系統(tǒng),使用了Swing、IDBC技術連接數(shù)據(jù)庫、javabean等技術,該系統(tǒng)提供了查詢、修改、增加記錄、刪除等功能,功能比較落齊全,基本上能滿足學校的需求。關鍵詞: 學生信息管理;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章 項目背景隨著科學技術的不斷提高,計算機科學日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領域并發(fā)揮著越來越重要的作用。隨著計算機網(wǎng)絡技術發(fā)展,Web數(shù)據(jù)庫技術已經(jīng)成為應用最為廣泛的網(wǎng)站架構基礎技術在應用系統(tǒng)中,Web提供了與用戶進行通信聯(lián)絡的有效手段,利用Web技術,實現(xiàn)Web服務器與數(shù)據(jù)庫系統(tǒng)的連接,完成對數(shù)據(jù)的處理與查詢,用戶可以通過操作簡單易學的瀏覽器來查詢處理所需要的各種數(shù)據(jù)。學生信息的管理是學校日常工作中的重要組成部分。高校招生規(guī)模的逐步擴大和認識制度的改革,在校學生人數(shù)將不斷增加,而學生管理人員則相對減少。加上我國高等學?;鶎訉W生管理工作的頭緒多,內(nèi)容雜,管理細,要求高,傳統(tǒng)管理辦法已基本不適應新形勢的要求。在校生的基本信息的管理,選課及成績的信息的管理,學生學籍的管理,稍有不慎就會出現(xiàn)錯誤。同時學生成績的手工登錄與查詢,是一項非常繁重而枯燥的勞動,每年課程的變化都需要重新規(guī)劃,耗費許多人力和物力,而且會因人的情緒煩燥而出現(xiàn)失誤。因此在計算機飛速發(fā)展的今天,應用數(shù)據(jù)庫技術實現(xiàn)學生信息的管理是可行而必要的工作,實現(xiàn)高校學生信息網(wǎng)上管理,既能夠提高工作效率,又可以提高工作水平。計算機具有運算速度快、精度高、能按照設計邏輯處理問題等特性,在學生信息的錄入、統(tǒng)計中如采用一個計算機化的信息系統(tǒng)進行處理,就不會發(fā)生信息遺漏或者數(shù)據(jù)輸入不正確的情形。在學校,而長期以來,學生信息管理都是依賴人工進行的,面對如此眾多的學生信息,其工作量可想而知。不僅僅浪費了大量的人力物力,而且由于人工管理存在著大量的不可控因素,造成了信息管理的某些不規(guī)范。作為計算機應用的一部分,使用計算機對學生信息進行管理,具有手工管理所無法比擬的優(yōu)點。例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高的效率。開發(fā)這樣一套管理軟件成為很有必要的事情。第2章 需求分析2.1系統(tǒng)需求(1) 實現(xiàn)用戶登錄(2) 根據(jù)查詢條件實現(xiàn)學生信息的查詢(3) 根據(jù)查詢條件實現(xiàn)成績信息的查詢(4) 學生信息、課程信息、成績信息的增加、刪除、修改(5) 學生獎懲信息管理(6) 學生信息統(tǒng)計 本系統(tǒng)的功能需求分析如下:(1) 學生信息查詢:學生可以根據(jù)學號、姓名、專業(yè)進行查詢.(2) 學生信息管理:主要是用于學生信息更新、插入、刪除;(3) 學生成績錄入:用于學生成績管理,錄入學生成績,也可以更新;性能需求分析:(1) 登錄、用戶界面需求:簡潔、易懂、易用、友好的用戶界面。(2) 安全保密性需求:只有憑借用戶名和密碼登陸系統(tǒng),才能進行信息的管理等。2.2系統(tǒng)ER圖圖2.2.1系統(tǒng)E-R圖結構第3章 總體設計3.2系統(tǒng)總體結構及功能模塊劃分經(jīng)過對系統(tǒng)的需求分析,學生信息管理系統(tǒng)主要劃分為五個部分:用戶登錄,參數(shù)設置,基本信息,系統(tǒng)查詢,系統(tǒng)管理五個功能模塊。如圖3.3.1 系統(tǒng)的總體結構。圖3.2.1 系統(tǒng)的總體結構3.3系統(tǒng)數(shù)據(jù)庫的設計數(shù)據(jù)表設計是非常重要的環(huán)節(jié),主要設計表如下: 圖3.3.1班級信息表(tb_classinfo)用于存儲班級信息圖3.3.2考試種類表(tb_examkind)用于保存考試種類信息圖3.3.3年級信息表 (tb_gradeinfo)圖3.3.4考試科目成績表(tb_gradeinfo_sub)圖3.3.5學生信息表(tb_studentinfo)圖3.3.6科目表(tb_subject)用于保存科目信息圖3.3.7教師信息表(tb_teacher)圖3.3.8用戶表(tb_user)第4章 詳細設計4.2系統(tǒng)程序流程圖程序流程圖又稱為程序框圖,它是歷史悠久使用最廣泛的描述軟件設計的方法。它可將整個程序的總體流程清楚明白的顯示出來。如圖4.2.1系統(tǒng)總流程圖結構。圖4.2.1系統(tǒng)總體流程圖4.3安全保密設計4.3.1用戶登錄安全性系統(tǒng)設計了登錄界面,每個合法用戶有用戶名及一個密碼,只有當用戶輸入正確的用戶名及密碼組合后才能夠對學生信息進行操作。4.4主要功能模塊代碼4.4.1公共類代碼設計(數(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); / 彈出相應提示對話框 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)生更新存盤學生信息語句 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 = 更新學生信息; 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 = 添加學生信息; 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)生更新學生信息信息語句 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)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論