python综合管理系统_学生综合信息管理系统
1 緒論
1.1 項目概述
學生基本信息管理系統分為六個板塊 分別是修改密碼、班級管理 學生管理、教師管理、課程管理和選課管理
①密碼修改是對登錄身份(系統管理員、教師、學生)密碼的修改
②班級管理系統是實現 對班級信息的增加、修改、刪除、查詢。
③學生管理是實現對學生信息的增加、修改、刪除、查詢。
④教師管理是實現對教師信息的增加、修改、刪除、查詢。
⑤課程管理是實現對課程信息的增加、修改、刪除、查詢。
⑥選課管理是對學生對當前已有課程進行選課、已選課程的查詢、修改、退課。
1.2 項目意義
我著學校的規模不斷擴大,學生數量急劇增加,有關學生的各種信息量也成倍增長。面對龐大的信息量,就需要有學生信息管理系統來提高學生管理工作的效率。通過這樣的系統,可以做到信息的規范管理、和快速的查詢,從而減少管理方面的工作量。
2 開發工具和相關技術簡介
本項目是學生基本信息管理系統。開發環境:Eclipse、MySQL;開發語言:Java語言;開發技術:JDBC等。本章將對開發工具和相關技術進行簡單介紹。
2.1 Eclipse簡介(或者MyEclipse和IEDA簡介)
2.1.1? IDEA簡介
IDEA 全稱IntelliJ IDEA,是Java語言開發的集成環境,IntelliJ在業界被公認為最好的Java開發工具之一,尤其在智能代碼助手、代碼自動提示、重構、J2EE支持、各類版本工具(git、svn、github等)、JUnit、CVS整合、代碼分析、 創新的GUI設計等方面的功能可以說是超常的。IntelliJ IDEA的每個方面都專門設計用于最大限度地提高開發人員的工強大的靜態代碼分析和符合人體工程學的設計使開發不僅具有高效性,而且還具有令人愉悅的體驗。在IntelliJ IDEA為您的源代碼編制索引之后,它通過在每個上下文中提供相關建議提供了快速而智能的體驗:即時和巧妙的代碼完成,動態代碼分析和可靠的重構工具。
2.1.2 Eclipse簡介
Eclipse是一個基于Java的、開放源碼的、可擴展的應用開發平臺,它為編程人員提供了一流的Java集成開發環境(Integrated Development Environment,IDE)。在Eclipse的官方網站中提供了一個Java EE版的Eclipse IDE。應用Eclipse IDE for Java EE,既可以創建Java項目,也可以創建動態Web項目,同時eclipse是Java開發者最喜歡的工具之一,因為它具有強大的編輯、調試功能。很多人把eclipse當做IDE來使用,但從本質而言,eclipse不僅僅局限于一個IDE,它只是實現了一般IDE具有的普遍功能。就eclips而言,它只是一個框架和一組服務,用于通過插件組件構建開發環境。
eclipse的設計思想:一切皆為插件,其底層封裝了一個核心,其他功能都基于此核心寫成插件。從而擴展整個eclipse的功能。
2.2 Java語言介紹
Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特征。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。
Java的優點:
(1)簡單性
(2)面向對象
(3)跨平臺性
(4)健壯的
(5)安全性
(6)多線程
(7)動態的
(8)高性能
2.3 MySQL簡介
MySQL是一個關系型數據庫管理系統,關系型數據庫將保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度并提高了靈活性。MySQL時開源的,所以不需要支付額外的費用,它也支持大型的數據庫,可以處理擁有上千條記錄的大型數據庫。MySQL使用標準的SQL數據語言形式,MySQL可以運行多個系統上,并且支持多種語言。這些編程語言包括C,C++,Python,Java,Perl,Ruby,PHP,Eiffel,Tcl等。MySQL存儲數據量較大,32位系統表文件最大可支持4GB,64位系統支持最大的表文件為8TB。MySQL是可以定制的,采用了GPL協議,你可以修改源碼來開發自己的MySQL系統。
2.4 JDBC技術簡介
JDBC是一種用于執行SQL語句的java API,由一組類與接口組成,通過調用這種類和接口所提供地方法,可以使用標準的SQL語言來存取數據庫中的數據。Java具有健壯、安全、易用等特性,而且支持自動網上下載,本質上是一種很好的數據庫應用的編程語言。它所需要的是Java應用如何同各種各樣的數據庫連接,JDBC正是實現這種連接的關鍵。JDBC擴展了Java的能力,如使用Java和JDBCAPI就可以公布一個Web頁,頁中帶有能訪問遠端數據庫的Applet。或者企業可以通過JDBC讓全部的職工(他們可以使用不同的操作系統,如Windwos,Machintosh和UNIX)在Intranet上連接到幾個全球數據庫上,而這幾個全球數據庫可以是不相同的。隨著越來越多的程序開發人員使用Java語言,對Java訪問數據庫易操作性的需求越來越強烈。簡單地說,JDBC能完成下列三件事:
1)同一個數據庫建立連接;
2)向數據庫發送SQL語句;
3)處理數據庫返回的結果。
3 系統需求分析
3.1 系統可行性分析
3.2 系統需求分析
學生基本信息管理系統分為六個板塊 分別是修改密碼、班級管理 學生管理、教師管理、課程管理和選課管理
3.2.1 修改密碼
輸入原密碼、新密碼、確認密碼。根據當前登錄身份和輸入的內容在dao層和數據庫發生交互 來判斷原密碼是否正確 在正確的前提下 對相應的密碼更新為新密碼。
3.2.2班級管理
①班級信息的添加:在班級名稱的textField和班級信息的textArea輸入信息點擊提交按鈕 實現一個班級信息的添加。重置按鈕實現清空當前輸入域的所有內容
②班級信息的查詢:在班級列表打開時生成一個所有班級信息的JTable通過上方班級名稱的textField輸入的內容 點擊查詢 從數據庫中遍歷找到包含有輸入內容的字段顯示在JTable上。
③班級信息的修改:通過鼠標點擊JTbale(JTbale鼠標監聽事件)選擇修改的內容,在下方編輯區域輸入要修改的內容 點擊確認修改按鈕 完成對數據庫班級表信息的修改。
④班級信息的刪除:通過鼠標點擊JTbale(JTbale鼠標監聽事件)選擇刪除的內容,點擊刪除按鈕完成對數據庫班級表信息的刪除。
3.2.3學生管理
①學生信息的添加:學生信息添加界面 在學生姓名的textField輸入學生姓名,所屬班級的combox下拉框選擇數據庫班級表中班級,輸入要添加學生的登錄密碼,選擇學生性別的單選按鈕點擊確定實現對數據庫學生表信息的添加。重置按鈕可重置兩個輸入域的內容 班級下拉框和學生性別默認選第一個。
②學生信息的查詢:在學生列表打開時生成一個所有學生信息的JTable通過上方學生姓名的textField輸入的內容 和所屬班級的下拉框 點擊查詢按鈕 從數據庫中遍歷出相應的信息顯示在JTable上。
③學生信息的修改:通過鼠標點擊JTbale(JTbale鼠標監聽事件)選擇修改的內容,在下方編輯區域輸入要修改的內容 選擇修改的班級和學生性別 點擊確認修改按鈕 完成對數據庫學生表信息的修改。
④學生信息的刪除:通過鼠標點擊JTbale(JTbale鼠標監聽事件)選擇刪除的內容,點擊刪除按鈕完成對數據庫學生表信息的刪除。
3.2.4老師管理
①老師信息的添加:老師信息添加界面 在教師姓名、職稱、年齡、密碼的textField輸入內容 選擇教師性別的單選按鈕,點擊確認添加按鈕實現對數據庫教師表信息的添加。重置按鈕清空當前輸入域的所有內容,性別單選按鈕默認選擇男。
②老師信息的查詢:教師列表打開時生成一個所有教師信息的JTable通過上方教師姓名的textField輸入內容點擊查詢,從數據庫中遍歷找到包含有輸入內容的字段顯示在JTable上。
③老師信息的修改:通過鼠標點擊JTbale(JTbale鼠標監聽事件)選擇修改的內容,在下方編輯區域輸入要修改的內容,選擇教師性別,點擊確認修改,完成對數據庫教師表信息的修改。
④老師信息的刪除:通過鼠標點擊JTbale(JTbale鼠標監聽事件)選擇刪除的內容,點擊刪除按鈕完成對數據庫教師表信息的刪除。
3.2.5 課程管理
①課程查詢:在課程管理界面輸入查詢信息,點擊"查詢"按鈕,從數據庫中搜索相對應的課程信息,并輸出在界面。
②課程添加:在課程添加界面,輸入課程名稱,學生人數,授課老師,課程介紹等信息的添加。
③課程修改:修改界面點擊下拉框選擇需要進行修改的信息,輸入新信息,完成修改,同時修改相應數據信息。
④課程刪除:選擇刪除的信息,點擊按鈕刪除課程信息。
3.3.6 選課管理
①課程選擇:在選課管理界面選擇課程下拉框,從數據庫中搜索課程信息進行選擇.對于已經選擇過的課程進行提示
②課程退課;在選課管理界面選擇學生已經選好的課程,點擊退課按鈕刪除學生選課信息
③課程修改;在選課管理界面選擇學生已經選好的課程,點擊課程下拉框對其進行修改,點擊修改按鈕,修改學生選課信息.
3.3?組內成員分工
表3-1 組內成員分工情況表
序號
姓名
組內角色
小組分工
備注
1
王一帆
項目經理
所有界面的設計、數據庫的設計、權限的分配 密碼的修改 班級學生教師信息的管理 (增刪改查)
2
司天明
編碼
課程管理模塊
3
謝偉夫
架構師
選課管理模塊
4
周啟航
測試
選課管理模塊
說明:組內角色:組長為項目經理;其他人分別為編碼、測試、架構師等。
3.4?進度安排
進度安排如表3-2所示。
表3-2 進度安排表
階段
持續時間
階段描述
輸出
構思階段
4h
需求分析
需求說明,功能模塊圖
設計階段
5h
系統設計
設計說明-可以畫流程圖;數據庫設計
是現階段
3day
編寫代碼
項目工程源代碼
1day
系統測試
進行黑盒測試(功能測試)-測試說明
運行階段
4h
部署、運行
系統使用說明、運維報告-答辯
4 系統設計
4.1?系統設計
根據系統的實際功能需求分析,對系統功能部分進行了設計。
整個系統的所有界面是通過windows builder實現界面的設計。
4.1.1 登錄界面的實現
學生信息管理登錄界面 輸入賬號和密碼 在系統身份的combox的下拉框選擇當前賬號密碼的身份。
combox添加的是UserType枚舉類型(系統管理員、教師、學生)默認選第一個系統管理員,若沒有輸入信息點擊登錄 給出JOptionPane.showMessageDialog提示用戶名不能為空 若只輸入賬號沒輸入密碼則提示 密碼不能為空。因為后續很多操作都要判斷輸入域的內容 所有在Util包創建StringUtil類 新建一個返回值為布爾類型的判斷字符串的靜態方法public?static?boolean?isEmpty(String str)
確定按鈕的監聽事件定義字符串獲取輸入域內容 定義枚舉類型對象接受下拉框選項然后判斷當前身份比如系統管理員的話,新建admindao對象實現admindao層里的返回值admin的login方法傳進去的是admin對象。在login方法里進行對admin表的select限制條件?where name=?and password=?"。完成方法后判斷傳出去的是否是null若為null然后給出提示用戶名或密碼錯誤并終止操作(return)否則給出歡迎登陸的提示語 并生成主界面對象(傳進去當前身份UserType和對象Object)設置為可見。其他身份登陸的操作和上述類似。重置按鈕監聽事件 重置輸入域內容和下拉框默認選第一個。
4.1.2修改密碼
在修改密碼界面輸入原密碼、新密碼、確認密碼。根據當前登錄身份和輸入的內容在dao層和數據庫發生交互 來判斷原密碼是否正確 在正確的前提下 對相應的密碼更新為新密碼。
在當前用戶的textField給出當前與用戶的類型和名字 定義字符串接受三個輸入域的內容 然后用StringUtil.isEmpty()依次判斷舊密碼 新密碼和確認密碼內容是否為空 若為空給出提示并且return。
比如當前身份是系統管理員的話,通過登錄界面傳進來的UserType進行if("系統管理員".equals(MainFrame.userType.getName()))將通過登錄界面傳進來的userObject強轉Admin的對象admin新建Admin對象adminTemp來接收admin的內容通過adminDao執行editPassword方法(返回值為String)將返回的字符串放在JOptionPane.showMessageDialog給出提示 響應的代碼如下
if("系統管理員".equals(MainFrame.userType.getName()))
{
AdminDao adminDao=new?AdminDao();
Admin admintemp=new?Admin();
Admin ?admin=(Admin)MainFrame.userObject;
admintemp.setName(admin.getName());
admintemp.setPassword(oldPassword);
admintemp.setId(admin.getId());
String a=adminDao.editPassword(admintemp, newPassword);
JOptionPane.showMessageDialog(this,a);
adminDao.closeDao();
Return;
}
dao層的方法public?String editPassword(Admin admin,String newPassword)?首先對id和舊密碼進行"select * from admin where id=? and password=?";如果沒有操作成功返回字符串"舊密碼錯誤!"若操作成功 證明輸入的賬號和舊密碼是正確的,從查詢的結果集拿出來id 并繼續下一步的根據這個id來update密碼"update admin set password = ? where id = ? ";操作成功字符串"密碼修改成功!",否則返回字符串"修改失敗"。
4.1.3班級管理
①班級信息添加的實現
在班級名稱的textField和班級信息的textArea輸入信息點擊提交按鈕 實現一個班級信息的添加。重置按鈕實現清空當前輸入域的所有內容
提交按鈕監聽事件定義符串類型接受輸入域的內容用StringUtil.isEmpty()依次判斷內容是否為空,若為空給出提示并且return。定義StudentClass對象接受輸入域 的內容 新建班級的dao層對象 調用添加方法將新建的StudentClass對象傳進去
dao層方法public?boolean?addClass(StudentClass scl)?執行insert into class value(null,?,?)?null為id在數據庫表的設計為主鍵并且自增 如果操作成功返回true否則返回false
②班級信息查詢的實現
在班級列表打開時生成一個所有班級信息的JTable通過上方班級名稱的textField輸入的內容 點擊查詢 從數據庫中遍歷找到包含有輸入內容的字段顯示在JTable上。
JTable要在打開時就生成所以方法必須放在生成界面的無參構造里 具體操作為清空當前列表內容dft.setRowCount(0);?定義ClassDao對象調用dao層的
public?List getClassList(StudentClass studentClass)方法執行select * from class將查詢到的信息放在結果集 若查找成功 將結果集的內容按類型拿出賦給新建的StudentClass對象的set方法 然后將這個對象add到列表對象retList并且返回
在setTable方法里 將返回的retList接收 用增強型for遍歷內容 并且Vector?v=new?Vector(); v.add();dft.addRow(v)?;將內容添加到表里。
查詢的實現主要dao層生成表方法里的if(!StringUtil.isEmpty(studentClass.getName()))
{
sqlString?+= " where name like ‘%"+studentClass.getName()+"%‘";
}從數據庫中遍歷找到包含有輸入內容的字段顯示在JTable上。
③班級信息的修改
通過鼠標點擊JTbale(JTbale鼠標監聽事件)選擇修改的內容,在下方編輯區域輸入要修改的內容 點擊確認修改按鈕 完成對數據庫班級表信息的修改。
JTbale鼠標監聽事件 用getValueAt方法獲取的內容賦給編輯域的setText。
首先判斷當前鼠標是否點擊了表的內容 若沒有點擊 給出提示 并且return
定義倆字符串接受編輯域的內容 定義倆字符串接受鼠標點擊JTable接收的內容
進行判斷,若都一致說明僅僅是點擊了JTable沒有對信息進行編輯修改給出提示并且return。定義int類型接受JTable表鼠標點擊的行的ID然后新建StudentClass對象set接受ID和編輯域的內容 執行dao層的public?boolean?update(StudentClass sc)方法 執行"update ?class ?set name=? , info=? where id=?";也是根據id來操作,當前表的主鍵為id。返回的布爾值在主方法if-else判斷 給出相應的提示,最后刷新表的內容setTable(new?StudentClass());
④班級信息刪除的實現
跟上面修改的操作類似 首先得鼠標選擇JTable你要刪除的內容 若沒有點擊 給出提示 并且return然后給出一個JOptionPane.showConfirmDialog(this, "您確定要刪除嗎")!=JOptionPane.OK_OPTION的選擇,若選擇否則return。
定義int類型接受鼠標選擇行的ID也是根據ID(id為主鍵)來在dao層的方法。
public?boolean?deletd(int?id)里進行刪除,將返回的布爾值在主方法if-else進行判斷給出相應提示語,并且也刷新表setTable(new?StudentClass());。
4.1.4學生管理
①學生信息添加的實現
在所屬班級的下拉框里要添加當前數據庫class表里的name具體操作為
protected?void?setStudentClassinfo() {
ClassDao classDao?= new?ClassDao();
List classList?= classDao.getClassList(new?StudentClass());
for?(StudentClass sc?: classList)
StudentClasscomboBox.addItem(sc);
}
這里必須要在Teacher類里重寫toString方法 返回this.name才能在下拉框顯示的是班級名否則顯示的是地址。
定義字符串類型接受輸入域的內容,用if依次執行StringUtil.isEmpty()判斷內容,若為空 給出相應提示并return。將下拉框所選的getSelectedItem()強轉StudentClass類型并且新建對象接受。用三目運算判斷點擊的性別按鈕是男是女定義字符串接受按鈕的內容。然后將這些內容都傳給新建Stduent 對象的set方法(下拉框是當前所選課的id傳給的Stduent對象的set方法里)新建dao層對象 執行dao層的public?boolean?addStudent(Student s)方法sql語句為"insert into student values(null,?,?,?,?)"第一個位置為id是在表的設計為主鍵并且自增。根據返回結果的布爾類型用if-else進行判斷,給出相應的提示。執行完成后清空輸入域的內容 默認選擇性別為男 下拉框為第一個選項。
②學生信息查詢的實現
也是在界面打開時生成JTable。生成的方法放在生成界面的無參構造跟班級管理JTable的生成方法一致。只不過要注意的是添加一個將教師ID轉化為教師名字的方法
查詢實現是可以根據姓名查詢 也可以配合下拉框的班級選項一起查詢。也可以只用下拉框查詢某班級的學生。主要的改變地方是在dao層的遍歷表的方法public?List getStudentList(Student student)添加語句
if(!StringUtil.isEmpty(student.getName()))
{sqlString?+= " and ?name like ‘%"+student.getName()+"%‘";}
if(student.getClassid()!=0)
{sqlString?+=" and ?classId ="+student.getClassid();}
PreparedStatement preparedStatement?= con.prepareStatement(sqlString.toString().replaceFirst("and", "where"));
③學生信息修改的實現
JTable設置鼠標點擊事件選擇修改的內容,在下方編輯區域輸入要修改的內容 點擊確認修改按鈕 完成對數據庫班級表信息的修改。
用getValueAt方法獲取的點擊行的內容賦給編輯域的setText,用foe循環判斷當前點擊的班級是哪一個 并且在編輯區的編輯班級的下拉框進行選擇,具體代碼為for(int?i=0;i
{
StudentClass?sc=(StudentClass)editStudentClasscomboBox.getItemAt(i);
if(className.equals(sc.getName()))
{editStudentClasscomboBox.setSelectedIndex(i);}
}
定義字符串接受當前點擊行的性別。用equals來判斷點亮哪個編輯域性別選擇的單選按鈕。
若鼠標沒有點擊行,則給出提示并return。若編輯域姓名和密碼為空,也給出相應提示并且return。然后定義Student對象student來set接收編輯域的姓名、密碼和鼠標點擊行的id和下拉框選擇班級的id和當前選擇性別的內容。
將次對象傳入執行dao層的public?boolean?update(Student student)方法。然后根據返回的布爾類型在主方法用if-else判斷給出相應提示。然后刷新表setTable(new?Student());。
④學生信息刪除的實現
跟上面修改的操作類似 首先得鼠標選擇JTable你要刪除的內容 若沒有點擊 給出提示 并且return然后給出一個JOptionPane.showConfirmDialog(this, "您確定要刪除嗎")!=JOptionPane.OK_OPTION的選擇 若選擇否 則return。
將獲取點擊行的id執行dao層的public?boolean?deletdStudent(int?id)?sql語句為"delete from student where id=?";?根據id刪(id為主鍵)。
然后根據返回的布爾類型在主方法用if-else判斷給出相應提示。然后刷新表setTable(new?Student());
4.1.5教師管理
①教師信息添加的實現
在老師添加界面的輸入域輸入內容 分別定義字符串獲取內容,性別是用三目運算獲取當先所選的單選按鈕的內容,確定添加按鈕監聽事件,依次用StringUtil.isEmpty()判斷內容,若為空 給出相應提示并return。并且對年齡的輸入進行try-catch的異常捕捉。
定義teacher類的對象set接收輸入域的內容 定義teacherDao對象執行dao層的public?boolean?addTeacher(Teacher t)方法,sql語句String sql?= "insert into teacher values(null,?,?,?,?,?)";第一值為null因為在表的設計為id是主鍵并且自增。操作完成后將返回的布爾值在主方法進行if-else判斷并且給出提示。添加完成后,重置表內容為空性別默認選“男”。
②教師信息查詢的實現
在教
師信息管理界面打開時生成一個所有教師信息的JTable通過上方教師姓名的textField輸入的內容 點擊查詢 從數據庫中遍歷找到包含有輸入內容的字段顯示在JTable上。
JTable要在打開時就生成所以方法必須放在生成界面的無參構造里 具體操作為清空當前列表內容dft.setRowCount(0);?定義TeacherDao對象調用dao層的
public?List getTeacherList(Teacher teacher)方法執行"select * from teacher"將查詢到的信息放在結果集 若查找成功 將結果集的內容按類型拿出賦給新建的Teacher對象的set方法 然后將這個對象add到列表對象retList并且返回
在setTable方法里 將返回的retList接收 用增強型for遍歷內容 并且Vector?v=new?Vector(); v.add();dft.addRow(v)?;將內容添加到表里。
查詢的實現主要dao層生成表方法里的if(!StringUtil.isEmpty(teacher.getName()))
{sqlString?+= " where ?name like ‘%"+teacher.getName()+"%‘";}
從數據庫中遍歷找到包含有輸入內容的字段顯示在JTable上。
③教師信息修改的實現
通過鼠標點擊JTbale(JTbale鼠標監聽事件)選擇修改的內容,在下方編輯區域輸入要修改的內容 點擊確認修改按鈕 完成對數據庫教師表信息的修改。
JTbale鼠標監聽事件 用getValueAt方法獲取的內容賦給編輯域的setText。
首先判斷當前鼠標是否點擊了表的內容 若沒有點擊 給出提示 并且return
定義字符串接受編輯域的內容,依次用StringUtil.isEmpty()判斷內容,若為空給出相應提示并return。并且也對年齡進行try-catch的異常捕捉。
定義teacher對象set接收編輯域的內容,然后定義dao層對象調用dao的方法
public?boolean?update(Teacher teacher)。根據id來更新數據庫老師表的內容(id為主鍵)返回的布爾值在主方法if-else判斷 給出相應的提示,最后刷新表的內容setTable(new?Teacher());
④教師信息刪除的實現
通過鼠標點擊JTable的數據getValueAt獲取當前點擊行的id 定義teacherDao對象執行dao層的方法public?boolean?deletdTeacher(int?id)返回的布爾值在主方法if-else判斷 給出相應的提示,最后刷新表的內容setTable(new?Teacher());
4.1.6課程管理
①課程信息查詢的實現
在課程信息管理界面打開時生成一個所有教師信息的JTable通過上方教師姓名的textField輸入的內容 點擊查詢 從數據庫中找到包含有輸入內容的字段顯示在JTable上。
②課程信息添加的實現
在課程信息添加界面的輸入域輸入內容 分別定義字符串獲取內容,性別是用三目運算獲取當先所選的單選按鈕的內容,確定添加按鈕監聽事件,依次用StringUtil.isEmpty()判斷內容,若為空 給出相應提示并return。并且對年齡的輸入進行try-catch的異常捕捉。
③課程信息修改的實現
通過鼠標點擊JTbale選擇修改的內容,在下方編輯區域輸入要修改的內容 點擊確認修改按鈕 完成對數據庫教師表信息的修改。
④課程信息刪除的實現
通過鼠標點擊JTable的數據getValueAt獲取當前點擊行的id 定義courseDao對象執行dao層的方法public?boolean?deletdCourselves(int?id)返回的布爾值在主方法if-else判斷 給出相應的提示,最后刷新數據庫的內容。
4.1.7選課管理
①選課界面功能的實現
通過主界面里的無參構造,顯示出來編輯區域的2個下拉框里的內容和搜索區域的內容.
②顯示教師,學生信息的實現
生成老師信息,學生信息也是從表里用dao層的方法一個一個遍歷,添加內容.然后返回每個類的string方法,根據course里已有的課程進行選擇如果學生選擇已經選擇過的課程,系統會給出提示,選擇成功后刷新學生的信息并顯示,也可以進行學生信息的部分修改(將學生退出課程)
③檢查課程是否滿員的實現
每次學生加入課程前都要對該課程是否達到最大人數進行檢查判斷課程是否已被選滿的方法在dao層,通過和數據庫進行交互的操作實現.
④修改學生信息的實現
修改數據主要是用鼠標修改getname里面的內容判斷字符串是否為空,修改內容也要判斷從表里獲取到的內容還有對comBox下拉獲得的選項進行類型的轉換,獲取其相應的名字和表里的內容用if進行比較,判斷是否修改.
4.2?數據庫設計
根據系統需求分析設計了6張表,分別為管理員信息表、班級信息表、學生信息表、教師信息表、課程信息表、選課信息表。具體信息如表4-1到表4-6所示。一下為參考,可以按照自己的需求修改
表4-1 ?管理員信息表
序號
字段名
數據類型
約束
是否為空
說明
1
id
int(5)
主鍵(自增)
是
管理員ID
2
name
varchar(32)
否
管理員姓名(賬號)
3
password
varchar(32)
否
管理員密碼
4
createDate
datetime
否
創建日期
表4-2 ??班級信息表
序號
字段名
數據類型
約束
是否為空
說明
1
id
int(5)
主鍵(自增)
是
班級ID
2
name
varchar(32)
否
班級名字
3
info
varchar(32)
否
班級信息
表4-3???學生信息表
序號
字段名
數據類型
約束
是否為空
說明
1
id
int(5)
主鍵(自增)
是
學生ID
2
name
varchar(32)
否
學生姓名(賬號)
3
classid
int(5)
否
學生班級ID
4
password
varchar(32)
否
學生密碼
5
sex
varchar(32)
否
學生性別
外鍵
表4-4???教師信息表
序號
字段名
數據類型
約束
是否為空
說明
1
id
int(5)
主鍵(自增)
是
教師ID
2
name
varchar(32)
否
教師姓名(賬號)
3
sex
varchar(32)
否
教師性別
4
title
varchar(32)
否
教師職稱
5
age
int(5)
否
教師年齡
6
password
varchar(32)
否
教師密碼
表4-5???課程信息表
序號
字段名
數據類型
約束
是否為空
說明
1
id
int(5)
主鍵(自增)
是
課程ID
2
name
varchar(32)
否
課程名
3
teacher_id
int(5)
否
課程教師ID
4
max_student_num
int(5)
否
課程最大選擇人數
5
info
varchar(32)
否
課程信息
6
select_num
int(5)
默認0
否
課程已選人數
外鍵
表4-6???選課信息表
序號
字段名
數據類型
約束
是否為空
說明
1
id
int(5)
主鍵(自增)
是
課程ID
2
student_id
int(5)
否
課程名
3
course_id
int(5)
否
課程教師ID
外鍵
5?系統實現
5.1 管理員登錄界面實現
管理員通過輸入賬號密碼來進行登錄后臺管理系統。登錄界面如圖5-1-1所示。
5.2系統管理員權限的主界面
成功登錄后彈出系統主界面
5.3用戶密碼修改界面實現
輸入相應的內容點擊確認修改按鈕實現對數據庫信息的查詢
5.4班級信息管理模塊
5.4.1班級信息添加
總結
以上是生活随笔為你收集整理的python综合管理系统_学生综合信息管理系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 做牙齿矫正手术大概需要多少钱
- 下一篇: ipython使用_IPython的介绍