課程設計報告_第1頁
課程設計報告_第2頁
課程設計報告_第3頁
課程設計報告_第4頁
課程設計報告_第5頁
已閱讀5頁,還剩11頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

)課程設計報告一、課程設計任務完成學生選課管理系統的開發二、需求描述本系統是一個WEB版的小型的學生成績管理系統,在本系統中,開發了一個面向管理員平臺,對管理員提供的服務有增加學生、刪除學生和修改學生、查詢學生的服務,還有對成績、增加、刪除、查詢的管理。三、系統總體設計1.系統架構設計(1)架構:單機—(2)運行軟件環境:windows10、、Apache、eclipseee(3)開發環境:硬件平臺:CPU:內存:4gb以上軟件平臺:windows10、操作系統:Windows10數據庫:【開發工具:Eclipseee2.功能模塊設計學生學生成績管理系統登錄模塊管理員登錄模塊成績信息~管理模塊學生信息、管理模塊各模塊功能:學生信息管理模塊:管理員用于添加和刪除、修改、查詢學生信息的模塊。成績信息管理模塊、用于對成績的增加、刪除、查詢3.數據庫設計(概要設計...):(1)E-R圖學生學生學生學號學生姓名課程選課所在班級·學生院系學生性別學分課程編號課程名成績(2)關系模式學生(學生學號,學生姓名,學生性別,所在班級,所在院系)'班級(班級號,教師姓名,班級名)課程(課程號,課程名,學分)選課(課程號,學生學號,課程名、成績)院系(院系號,院系名)(3)數據庫管理系統:MYSQL(4)數據庫命名test(5)數據庫表·students主要用來保存學生信息字段名數據類型長度是否為空是否主鍵SID】Varchar11不為空主鍵SNAMEVarchar255是】否GENTERVarchar255是否SCLASSVarchar%255是否SCOLLEGEOFVarchar255是否·newclass(班級信息表)主要用來保存學生信息。字段名數據類型長度主鍵否是否為空?描述NEWCLASSIDVarchar255主鍵不為空班級編號NEWCLASSNAME)Varchar255否是班級名稱courses(課程信息表)用來儲存教師的基本信息:字段名數據類型長度主鍵否是否為空描述COURSEIDVarchar*255主鍵不為空課程編號COURDENAMEVarchar255否、是課程名字collegeof(院系信息表)字段名數據類型長度主鍵否,是否為空描述COLLEGEOFIDVarchar255主鍵不為空院系編號"COLLEGEOFNAMEVarchar255否是院系名稱selectcollege(學生成績表)\用于存儲學生成績字段名數據類型長度是否為空是否主鍵SELECTIDVarchar,255是否SELECTCOURSENAMEVarchar255不為空否'SELECTSIDVarchar255是主鍵SELECTCOURSEIDVarchar255}不為空主鍵SELECTSCOREVarchar255是否,(8)數據庫賬戶及權限(截圖)學生信息表班級表院系表:$(9)數據庫存儲過程:本次實驗采用的為Struts2+hibernate+mysql的方式開發儲存采用的是hibernate框架主要代碼:見附加文檔四、系統實現技術小結為了方便管理,將數據庫的封裝分成兩部分,數據庫資源配置文件和封裝數據庫操作的類:Hibernate框架配置文件version=''encoding='UTF-8'>$<!DOCTYPEhibernate-configurationPUBLIC"---><hibernate-configuration><session-factory><propertyname="dialect"><propertyname="">123456</property><propertyname="">root</property><propertyname="">jdbc:<propertyname=""> <propertyname="">thread</property>[ <propertyname="show_sql">true</property> <propertyname="format_sql">true</property> <propertyname="">update</property> <propertyname="">update</property> <mappingresource="entity/"/> <mappingresource="entity/"/> <mappingresource="entity/"/> <mappingresource="entity/"/>[ <mappingresource="entity/"/></session-factory></hibernate-configuration>Struts2框架配置文件:<xmlversion=""encoding="UTF-8"><!DOCTYPEstrutsPUBLIC"-1}Action"method="{2}">》<resultname="select_add_success">/selects/</result><resultname="select_query_success">/selects/</result><resultname="select_delete_success">/selects/</result></action></package><packagename="students"namespace="/students"extends="default"><actionname="*_*"class="action.{1}Action"method="{2}">[<resultname="query_allstudents_success">/students/</result><resultname="students_add_success">/students/</result><resultname="students_queryone_success">/students/</result><resultname="delete_students_success">/students/</result></action></package></struts>Hibernate工具類:HibernateUtil。Java-packagedb;importclassHibernateUtil{privatestaticSessionFactorysessionFactory; privateHibernateUtil(){ } publicstaticSessionFactorygetSessionFactory(){] if(sessionFactory==null){ Configurationconfig=newConfiguration().configure(); ServiceRegistryserviceRegistry=newServiceRegistryBuilder().applySettings()).buildServiceRegistry(); sessionFactory=(serviceRegistry); returnsessionFactory; }else{ 。 returnsessionFactory; } }}具體的實現類詳見附加文件五、課程設計體會該系統主要實現了學生信息以及成績信息的修改的功能,這個系統是我獨立完成,從需求分析,web界面,到數據庫的連接,表格,存儲過程和存儲過程等的建立,在這段時間的摸索中,我確實學到了很多東西,特別是對以前不太了解的Java的框架了更深刻的了解。比如Hibernate,對于它的用法我在網上找了很多資料,Hibernate的配置有很多規則,每一個屬性都要對應一個字段、并且是具體確定到具體的類,對于struts2,關于action的配置以及動態action的配置,還有如何接受前臺的內容,如何從后臺獲取內容,如何將前臺的jsp頁面與后臺的action聯系起來,還有再編寫前端代碼時,因為時間問題所以沒有對前端進行美化,只是將應用的功能添加進去,在這其中,因為沒有學過,所以每一次的前后臺的交互都需要一番功夫,不過從其中學習到了很多。對于數據庫,我盡量將對數據庫的操作放在存儲過程中,這樣的抽象和封裝使得源程序代碼更加容易理解,而且在web應用系統中也可以避免發生不安全的狀況,我想這是一個好的程序員應當要養成的習慣,我對于五個表分別創建了五個接口collegeofDAO、courseDAO、sclassDAO、SelectCourseDAO、StudentsDAO。之后再分別用五個實現類來實現五個接口,將它們的條理邏輯清晰化。在這次的課程設計中,層次化,模塊化,抽象化也是我學到的一個重要的經驗,參考一些資料后發現模塊化能使程序設計更加簡單,設計代碼時目標更加明確,效率更高,以前雖然也知道這些道理,但自己真正實施起來卻感到無從下手,比如前面的數據庫操作和數據庫資源配置文件,就是我從書中看來的,這樣做的好處是,在程序中操作數據庫的時候避免了使用很多try和catch語句,是代碼更加簡潔,更容易理解,此外需要連接不同的數據庫時只要修改數據庫的資源配置文件就可以了。=后我會嘗試用jsp來做這個系統。六、系統主要源程序清單】五個實體類packageentity;/**創建院系實體類*設置的屬性有院系號、院系名、其中院系號作為主鍵*/[publicclassCollegeOf{ privateStringcollegeofid; privateStringcollegeofname; publicStringgetCollegeofid(){ returncollegeofid; } publicvoidsetCollegeofid(Stringcollegeofid){ =collegeofid;】 } publicStringgetCollegeofname(){ returncollegeofname; } publicvoidsetCollegeofname(Stringcollegeofname){ =collegeofname; } publicCollegeOf(){【 } publicCollegeOf(Stringcollegeofid,Stringcollegeofname){ //super(); =collegeofid; =collegeofname; } (}packageentity;/**創建課程實體類*設置屬性課程號、課程名、學分*其中課程號作為一個主鍵…*/publicclassCourses{ privateStringcourseid; privateStringcoursename; privateStringcoursescore; publicStringgetCourseid(){ returncourseid; }} publicvoidsetCourseid(Stringcourseid){ =courseid; } publicStringgetCoursename(){ returncoursename; } publicvoidsetCoursename(Stringcoursename){ =coursename;~ } publicStringgetCoursescore(){ returncoursescore; } publicvoidsetCoursescore(Stringcoursescore){ =coursescore; } publicCourses(){$ } publicCourses(Stringcourseid,Stringcoursename,Stringcoursescore){ //super(); =courseid; =coursename; =coursescore; }: }packageentity;/**創建班級實體類*設置屬性班級號、班級名稱}*其中將班級號設置為主鍵*/publicclassNewClass{ privateStringnewclassid; privateStringnewclassname; publicStringgetNewclassid(){ returnnewclassid; }^ publicvoidsetNewclassid(Stringnewclassid){ =newclassid; } publicStringgetNewclassname(){ returnnewclassname; } publicvoidsetNewclassname(Stringnewclassname){ =newclassname;- } publicNewClass(){ } publicNewClass(Stringnewclassid,Stringnewclassname){ //super(); =newclassid; =newclassname;( } }packageentity;/*(*創建選課的實體類*設置的屬性有選課號、課程號、學號、成績、*其中選課號作為主鍵,課程號作為外鍵與課程號相關聯,學號作為外鍵與學號相關聯*/publicclassSelectCourse{ privateStringselectid; privateStringselectcourseid; privateStringselectcoursename;、 privateStringselectsid; privateStringselectscore; publicStringgetSelectid(){ returnselectid; } publicvoidsetSelectid(Stringselectid){ =selectid; }~ publicStringgetSelectcourseid(){ returnselectcourseid; } publicvoidsetSelectcourseid(Stringselectcourseid){ =selectcourseid; } publicStringgetSelectsid(){ returnselectsid;" } publicvoidsetSelectsid(Stringselectsid){ =selectsid; } publicStringgetSelectscore(){ returnselectscore; } publicvoidsetSelectscore(Stringselectscore){\ =selectscore; } publicSelectCourse(){ } publicStringgetSelectcoursename(){ returnselectcoursename; }《 publicvoidsetSelectcoursename(Stringselectcoursename){ =selectcoursename; } publicSelectCourse(Stringselectid,Stringselectcourseid,Stringselectcoursename,Stringselectsid, Stringselectscore){ super(); =selectid; =selectcourseid;| =selectcoursename; =selectsid; =selectscore; } }【packageentity;/**創建學生實體類的javabean*分別有學號、姓名、性別、班級、院系*/publicclassStudents{ privateStringsid;, privateStringsname; privateStringgenter; privateStringsclass; privateStringscollegeof; publicStringgetSid(){ returnsid; } publicvoidsetSid(Stringsid){~ =sid; } publicStringgetSname(){ returnsname; } publicvoidsetSname(Stringsname){ =sname; }. publicStringgetGenter(){ returngenter; } publicvoidsetGenter(Stringgenter){ =genter; } publicStringgetSclass(){ returnsclass;~ } publicvoidsetSclass(Stringsclass){ =sclass; } publicStringgetScollegeof(){ returnscollegeof; } publicvoidsetScollegeof(Stringscollegeof){, =scollegeof; } publicStudents(){ } publicStudents(Stringsid,Stringsname,Stringgenter,Stringsclass,Stringscollegeof){ //super(); =sid;! =sname; =genter; =sclass; =scollegeof; } }:五個接口類packageservice;import;…publicinterfacecollegeofDAO{ publicList<CollegeOf>queryCollegeOf();}packageservice;(/**course接口*/import;publicinterfacecourseDAO{ publicList<Courses>queryCou

溫馨提示

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

評論

0/150

提交評論