課程設計自動排課系統(tǒng)_第1頁
課程設計自動排課系統(tǒng)_第2頁
課程設計自動排課系統(tǒng)_第3頁
課程設計自動排課系統(tǒng)_第4頁
課程設計自動排課系統(tǒng)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、20212021學年度?WEB程序設計?課程設計班級:090205338姓名:2021年12月17日05網(wǎng)絡3班周秋艷2021 2021 學年度課程設計1090205338 周秋艷基于WEB的高校教師排課系統(tǒng)一、用戶需求分析10 分學校教務的管理作為高校教育信息化工作中的一項重要工作, 如 何構建一個具有開放性、實用性和靈活性的平臺,是一個值得探討的 課題。其中,作為學校教務重點環(huán)節(jié)之一的排課系統(tǒng)也尤為重要。先前,在統(tǒng)籌安排各班級上課的時間需要人工實現(xiàn), 而且經(jīng)常會 出現(xiàn)同時有多個班級要使用教室的沖突。既耗時又耗精力,隨著計算 機技術的不斷開展,計算機技術在各領域的充分完美應用,以學校的 教務

2、管理為該系統(tǒng)的應用背景,開發(fā)一個教室智能排課系統(tǒng)。此系統(tǒng)開發(fā)主要包括后臺數(shù)據(jù)庫的建立和前端應用程序的開發(fā)兩個方面。系統(tǒng)采用 Visual Basic 6.0 開發(fā)工具和 SQL Server 2000 作 為后臺數(shù)據(jù)庫開發(fā)的應用軟件。該系統(tǒng)實現(xiàn)上機時間的安排,課程的 安排,教室的安排,以及它們之間的不沖突和資源的高效利用; 這更 切合學院教學需要,降低了排課管理工作的工作量和節(jié)省了時間, 同 時課程安排完成后,學院可迅速獲得課表情況信息,為教學工作帶來 方便。本系統(tǒng)界面友好,操作簡單,使用方便。二、系統(tǒng)總體設計15 分1.系統(tǒng)功能描述1.1 根本信息管理:教師、教室、班級、課程、教學任務等數(shù)據(jù)

3、的輸 入、編輯功能;1.2 數(shù)據(jù)處理:白動排課、課表修改、刪除功能;1.3 數(shù)據(jù)輸出:桌面查詢教師、教室、班級課程表,報表打印教師、 教室、班級2021 2021 學年度課程設計2090205338 周秋艷課程表;1.4 幫助:指導用戶使用該系統(tǒng)及其他相關說明。2 系統(tǒng)功能設計分析目前市場上流行的各種排課軟件, 它們都具有比擬完善的功 能,但在真正的排課算法上都會有些問題, 因為排課算法最關鍵的問 題是如何解決各式各樣的沖突。 在做需求分析的過程中,通過調查得 知目前排課人員對排課算法的主要要求有:2.1 怎樣的合班組合能防止沖突?目前采取的方式是相同或相近的專業(yè)的班級組合。2.2 什么地方有

4、空能排課?對教室和班級而言是查空,對教師而言是有無排課需求。2.3 有兩個以上的空哪一個更好?是要考慮離散和平衡問題。2.4 排課前如何考慮教師宏觀利用問題?例如:多媒體大班課:大學英語、高等數(shù)學盡量排在上午,思想道德修養(yǎng)、馬克思主義哲學原理等盡量排在下午。2.5 對于數(shù)量巨大的信息,系統(tǒng)仍具有較快的響應速度和較小的 系統(tǒng)開銷。三、系統(tǒng)功能模塊分析25 分詳細分析各功能模塊之間的關系,以及各功能模塊下的子模塊構 成。2021 2021 學年度課程設計3090205338 周秋艷1 系統(tǒng)總體模塊分析如下2登陸子模塊分析如下3 管理員子模塊分析如下各類根本信息2021 2021 學年度課程設計40

5、90205338 周秋艷與前面功能模塊的劃分相一致的建立合理的關系數(shù)據(jù) 庫,詳細說明各關系表的屬性與描述每張關系表適當教師i.ii.i 添加教室需添加信息 1y、.:%/ /X課程4教師子模塊分析如下班級5注銷子模塊分析如下四、數(shù)據(jù)庫設計和建立1 5 分2021 2021 學年度課程設計5090205338 周秋艷添加說明。數(shù)據(jù)庫名稱是 PK,此數(shù)據(jù)庫包含 10 張關系表,它們分別是:表 1: ChooseCourse列名數(shù)據(jù)類型長度允許空fcur eC our sint4CourselDchar10UzerlBchur107ClassIDint4表2: ClassInfo列名數(shù)據(jù)類型長度允許

6、空int4Cl&EEHajnchar10VSpeci altylDint4V表 3: CourseGeneral列名數(shù)據(jù)類型.長度允許空our z10CourseNainevar char5CVC&urseSortvarehar50VSpeci allyint4Vferiodsmall int2/表4: Department列名數(shù)據(jù)類型長度|允許空p ar tmint4D ep ar tnam elf am evarchar507表 5: RoomInfo列名1數(shù)據(jù)類型1長度1允許空int4wchr507表 6: Speciality列名數(shù)據(jù)類型長度允許空埋F W 11口 ;十

7、丁:int4Speci all tyMami&varcliar5C表Eepar tfttiktID7: TermInfoint4V而列名數(shù)據(jù)類型|長度允許空int4TsritiKamtvirchir502021 2021 學年度課程設計6090205338 周秋艷dissIDint42021 2021 學年度課程設計7090205338 周秋艷表 8: TimeInfo座列名數(shù)據(jù)類型長度允許空int4TimeNamewar char5CV表 9: Timetabelyirchir50V列名I數(shù)據(jù)類型允許空int4TwrmIDir&t4Siur eCourselUint4Room

8、llint4Tim&IEint4表 10: UserInfo列名數(shù)據(jù)類型長度允許空?char10VsftrKaiiitvirchar50UserF as swordvar char507UserDeprtmentint47Fermi tint4VUswFhonevarchar50UserEmailvar c har507T色魚eh會N孫琶varchar502、建立數(shù)據(jù)庫及表之間的關系圖2021 2021 學年度課程設計8090205338 周秋艷EoomIDTimelB3、說明系統(tǒng)與數(shù)據(jù)庫的連接方式。此系統(tǒng)使用的數(shù)據(jù)庫是 SQL Server200Q 連接數(shù)據(jù)庫時用的 方法是在系統(tǒng)配置

9、文件 Web.config 中添加一連接字符串: 五、主要界面及相關代碼分析(35 分)通過系統(tǒng)目標和數(shù)據(jù)分析創(chuàng)立好數(shù)據(jù)庫后,接下來進行系統(tǒng)功能的開發(fā)和實現(xiàn)。 該系統(tǒng)流程圖如下圖。Roomlnfo? RoomIDTimeinfoTinelDTimetabelArrange_i d.Ter millSTiireCours&ID8.TineNejnieWeekNaineTermlnfoTermIDTerniiNameUserinfoUwlDUwlDUserUamieVserFasswordU s; erD ar tm ntFftrmi tUsarPhoMUserEmailTeacherNa

10、meChooseCourseClissIEXJSureCflurselDCourselDClassinfoUserIDClssIDSpeciality* Epar tmentlDDeptns淵碩eSpeciiali tylD Sp eci4&li tyMameDepartmentIDCourseGeneralJ.ClassicSpecisltylBCowselDCoMrEeHameCourseSortCl as sNineSpecialtyFeri cd2021 2021 學年度課程設計9090205338 周秋艷系統(tǒng)中采用的主要技術1 1 用 ASP.NETASP.NET 翻開數(shù)據(jù)庫

11、的方法ASP.NET程序中通過ADO.NET存取數(shù)據(jù)庫的數(shù)據(jù)ADO.NET是以離線的數(shù)據(jù)為 根底的,你可以在本地的機器上對數(shù)據(jù)集進行數(shù)據(jù)的添加、刪除或修改,然后更新回真正的數(shù)據(jù)庫。具體實現(xiàn)過程為以下幾步 :1.1.第一種方案1)首先要導入名稱空間2)建立與數(shù)據(jù)庫的連接SqlConnection myconnection;myconnection=new SqlConnection(server=localhost;uid=sa;pwd=;database=數(shù)據(jù)庫名 稱);3)在此數(shù)據(jù)連接上,執(zhí)行SQL語句,返回所需的數(shù)據(jù)集Stringc md=select * from數(shù)據(jù)表名稱;SqlDat

12、aAdapter mycommand = new SqlDataAdapter ( cmd,myconnection);DataSet ds=new DataSet();mycommand.Fill(ds,reg);數(shù)據(jù)連接成功后,利用Sql的插入(INSERT) 刪除(DELETE)和更新(UPDATE)命令 就可以很方便地實現(xiàn)數(shù)據(jù)庫的管理。2.2.第二種方案2021 2021 學年度課程設計10090205338 周秋艷當然我們也可以通過配置web.config來實現(xiàn)2 2 異常的捕獲與控制為了提高系統(tǒng)的交互性與運行的可靠性,系統(tǒng)對各類操作異常和運行異常進行捕獲與控制。操作異常是利用ASP

13、.NET提供的幾個驗證控件和設置下拉框來實現(xiàn)的,如錄入試題時必須先選擇章節(jié)、知識點、題型,采用下拉框的形式確保試題屬于某一知識點;運行異常捕獲是使用try() -catch()勺結構實現(xiàn)的。如對數(shù)據(jù)庫進行操作時,對用戶輸入的題 目進行判斷,假設該題目存在,那么提示數(shù)據(jù)已存在。具體實現(xiàn)如下:try mycommand.ExecuteNonQuery();lblout.Text=插入成功;插入成功catch(SqlException exc) if (exc.Number=2627)lblout.Text=數(shù)據(jù)已存在;/數(shù)據(jù)已存在elselblout.Text = error number is:

14、 + exc. Number + exc.Message; /其它錯誤其中l(wèi)blout為一個label控件。3 3 自動排課的算法分析用戶在自動排課時,可對排課提出多方面的要求,如從教師,教室,時間,課時數(shù)目等方面 ,同時滿足多方面的要求并非易事;另外在數(shù)據(jù)量不是很大的時候要實現(xiàn)自動排課的成功率難 度較大,因此排課的算法的優(yōu)劣直接影響到所排課程的好壞,本系統(tǒng)采用隨機排課方式,但 是解決了排課算法中的沖突問題。(排課的具體實現(xiàn)代碼在界面與代碼分析中)4 4 排課算法沖突解決方法分析排課算法中的主要的沖突是教室沖突和教室沖突。我將再通過存儲過程的來解決這樣的沖突,下面介紹一學期16周,某一門課程3

15、2課時為例。存儲過程名為 DetectArrangeCollisionDetectArrangeCollisionCREATE PROCEDURE DetectArrangeCollisionSureCourseID int,RoomID int,TimeID int,TermID intasdeclare Arrange_id intdeclare UserID char(10)select UserID=ChooseCourse.UserID from Timetabel inner joinChooseCourse on Timetabel.SureCourseID=ChooseCour

16、se.SureCourseIDwhere ChooseCourse.SureCourseID=SureCourseIDselect Arrange_id=Arrange_id from Timetabel where ( (RoomID=RoomID and TimeID=TimeID ) or ( Timetabel.SureCourseID in ( selectSureCourselD from ChooseCourse where UserID=UserID) and TimeID=TimeID ) /*檢查教室和教師沖突*/if Arrange_id null begin selec

17、t * from Timetabel where Arrange_id=Arrange_id/*查2021 2021 學年度課程設計11090205338 周秋艷詢出數(shù)據(jù)*/end else begin declare currentID int select currentID=count(*) from Timetabel whereSureCourseID= SureCourseID and TermID= TermID if ( currentID =0)/*查看數(shù)據(jù)庫中是否有重復*/insert into Timetabel values (TermID,SureCourseID,R

18、oomID ,TimeID) select * fromTimetabel where Arrange_id=0 end GO1 1 .登錄界面login.aspx用戶馬二訥罰h%好1 諾輸孔在時| fftEM茅.11女口忘七己塑石馬請與宣理 員用L莘摹統(tǒng)智嚇甲員E -mai 1:宓/ F 占3 COEpublic string UserLogin( string UserName, string password)String CheckLogin; int Permit=0; string UserID=;SqlParameter parameters= newSqlParameter(U

19、serName,SqlDbType.VarChar ,50),new SqlParameter(UserPassword,SqlDbType.VarChar ,50),new SqlParameter(UserID,SqlDbType.Char ,10),new SqlParameter(result,SqlDbType.Char ,10),new SqlParameter(Permit,SqlDbType.Int ,4);parameters0.Value =UserName;parameters1.Value =password;parameters2.Direction=Paramete

20、rDirection.Output;parameters3.Direction=ParameterDirection.Output;parameters4.Direction=ParameterDirection.Output;int rowsAffected;RunProcedure(sp_UserLogin,parameters, out rowsAffected);/ result: NoUser/ success,or nouser,or pswerror,/ Permit,如果角色還沒分酉己怎么辦if (parameters4.Value!=DBNull.Value)Permit=

21、Convert.ToInt32(parameters4.Value);/設沒有這個老師,2021.9.26if (parameters2.Value!=DBNull.Value)UserID=Convert.ToString(parameters2.Value);)CheckLogin= new string UserID, (String)(parameters3.Value),Convert.ToString(Permit); return (CheckLogin);2.自動排課界面GenerateTimeTable.aspxI f.-.二m朝班透二二二顯示諫f rsrw2021 2021

22、 學年度課程設計12090205338 周秋艷private void PK_Click(object sender, System.EventArgs e)int j;int k;string r;con.Open();SqlCommand del = new SqlCommand(delete Timetabel whereTermID=+Convert.ToInt32(ddl1.SelectedValue.ToString().Trim()+, con);del.ExecuteNonQuery();清空 Timetabel 表里面所有教師任課的信息DataSet ds = new Dat

23、aSet();SqlDataAdapter da = new SqlDataAdapter(SELECT CourseID FROM CourseGeneral,con);da.Fill(ds, CourseID);for (int i = 0; i ds.Tables0.Rows.Count; i+)SqlCommand coure = new SqlCommand(select CourseName,Period from CourseGeneral where CourseID= +ds.Tables0.Rowsi0 + , con);SqlDataReader reader1 = co

24、ure.ExecuteReader();if(reader1.Read()string cr = reader1.GetValue(0).ToString();pr = reader1.GetValue(1).ToString();reader1.Close();if(int.Parse(pr)/16=2)SqlCommand cmd = new SqlCommand(select RoomID from RoomInfo, con);/調用存儲過程,篩選出某門課程某個班級上2021 2021 學年度課程設周秋艷SqlDataReader dr = cmd.Execu

25、teReader();j = 0;k = 0;while (dr.Read()field1j = dr0.ToString();j+; /獲得該課程給定時間的每個可用場地,附值給數(shù)組 field1jdr.Close();SqlCommand cmd1 = new SqlCommand(SELECT SureCourseID FROM ChooseCourse where CourseID in(select CourseID from CourseGeneral where CourseGeneral.Period=32) , con);SqlDataReader dr1 = cmd1.Exe

26、cuteReader();while (dr1.Read()class1k = dr10.ToString();k+;/獲得確定,附值給 class1kdr1.Close();Random rnd = new Random();r = field1x;field10 = r;SqlCommand cm=new SqlCommand(DetectArrangeCollision,con);cm.CommandType=CommandType.StoredProcedure;cm.Parameters.Add(new SqlParameter(SureCourseID,SqlDbType.Int,

27、4);cm.Parameters.Add(new SqlParameter(RoomID,SqlDbType.Int,4);cm.Parameters.Add(new SqlParameter(TimeID,SqlDbType.Int,4);cm.Parameters.Add(new SqlParameter(TermID,SqlDbType.Int,4);cm.ParametersSureCourseID.Value=Convert.ToInt32(class1n).ToString().Trim();if(Convert.ToInt32(field1n)!=0) cm.Parameters

28、RoomID.Value=Convert.ToInt32(field1n); else intn1=rnd.Next(j); cm.ParametersRoomID.Value=Convert.ToInt32(field1n1);cm.ParametersTimeID.Value=rnd.Next(24)+1;cm.ParametersTermID.Value=Convert.ToInt32(ddl1.SelectedValue.ToString().Trim();cm.ExecuteNonQuery();for (int m =0; m10; m+)/隨即調換 class1 數(shù)組里面的成員i

29、nt x = rnd.Next(j);/得 0k 的隨機數(shù)field1x = field10;/第一個跟第 x個調換for (int n = 0;nk;n+)/下面為更新插入數(shù)據(jù)庫的操作2021 2021 學年度課程設周秋艷else if(int.Parse(pr)=64)SqlCommand cmd = new SqlCommand(select RoomID from RoomInfo, con);/ 調用存儲過程,篩選出某門課程某個班級上SqlDataReader dr = cmd.ExecuteReader();j = 0;k = 0;while (dr.Re

30、ad() field1j = dr0.ToString();j+; /獲得該課程給定時間的每個可用場地,附值給數(shù)組field1jdr.Close();SqlCommand cmd1 = new SqlCommand(SELECT SureCourseID FROM ChooseCourse where CourseID in (selectCourseID from CourseGeneral where CourseGeneral.Period=64) , con);SqlDataReader dr1 = cmd1.ExecuteReader();while (dr1.Read()class1k = dr10.ToString();k+;/獲得確定,附值給class1kdr1.Close();Random rnd

溫馨提示

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

評論

0/150

提交評論