版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上軟件工程實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)題目:軟件工程制圖實(shí)驗(yàn)七 一個(gè)學(xué)生選課系統(tǒng)的實(shí)現(xiàn)1、 教學(xué)目的: 培養(yǎng)學(xué)生運(yùn)用軟件工程方法開發(fā)和測(cè)試系統(tǒng)的能力。2、 教學(xué)成果: 能夠熟練運(yùn)用一種開發(fā)工具和數(shù)據(jù)庫(kù)開發(fā)與測(cè)試一個(gè)學(xué)生選課系統(tǒng)。3、 實(shí)驗(yàn)要求: 1.系統(tǒng)管理員可以對(duì)學(xué)生、教師、選課和課程成績(jī)進(jìn)行增、刪、改和查。 2.系統(tǒng)管理員可對(duì)學(xué)生選擇課程進(jìn)行查詢統(tǒng)計(jì),并生成柱狀圖并導(dǎo)出(每門課選擇人數(shù)統(tǒng)計(jì))。 3.學(xué)院管理員可對(duì)本學(xué)院教師、學(xué)生、本學(xué)院學(xué)生選課、本學(xué)院開設(shè)課程和成績(jī)進(jìn)行增刪改查。 4.學(xué)院對(duì)選擇課程的學(xué)生進(jìn)行抽簽,并按課程生成中簽學(xué)生名單。 5. 教師可以登錄本系統(tǒng),在網(wǎng)站上輸入課
2、程介紹、上傳課程的課件、發(fā)布、先修課程、更新和修改課程信息。 6.教師可查詢選修自己課程的所有中簽學(xué)生名單,并錄入課程成績(jī)生成成績(jī)統(tǒng)計(jì)表(每個(gè)分?jǐn)?shù)段的人數(shù),及格率等)。 7.教師可對(duì)選修自己課程學(xué)生發(fā)送消息留言 。 8. 學(xué)生通過客戶機(jī)瀏覽器根據(jù)學(xué)號(hào)和密碼進(jìn)入選課界面,在這里學(xué)生可以進(jìn)行查詢已選課程、指定自己的選修課程以及對(duì)自己基本信息的查詢; 9.學(xué)生可以查詢自己選課結(jié)果。 10.學(xué)生選課時(shí),如果該門課程的先修課程沒有學(xué)習(xí),則不能進(jìn)行選課,并給出提示“您沒有學(xué)習(xí)該課程的先修課程,不能進(jìn)行選課!”。 11.學(xué)生可瀏覽課程信息和查詢成績(jī),下載課件。 12.學(xué)生可給任課教師發(fā)送信息和回復(fù)任課教師的
3、留言。4、 系統(tǒng)概述: 本系統(tǒng)是一個(gè)簡(jiǎn)化版的學(xué)生管理系統(tǒng),系統(tǒng)登錄有三種身份:學(xué)生、教師、管理員。 數(shù)據(jù)流程圖:E-R圖:數(shù)據(jù)字典:課程信息表:名稱簡(jiǎn)稱鍵值類型長(zhǎng)度課程號(hào)cnopvarchar30課程名cnamevarchar30教師表號(hào)tnovarchar30所屬系departmentvarchar30學(xué)分gradeint上課時(shí)間ctimevarchar30上課地點(diǎn)clocalvarchar30先修課provarchar30學(xué)生信息表:名稱簡(jiǎn)稱鍵值類型長(zhǎng)度學(xué)號(hào)snopvarchar30姓名snamevarchar30性別ssexvarchar30年齡oldint電話phonevarchar3
4、0系別departmentvarchar30密碼secretvarchar30教師信息表:名稱簡(jiǎn)稱鍵值類型長(zhǎng)度教師編號(hào)tnopvarchar30姓名tnamevarchar30性別tsexvarchar30職稱professvarchar30電話tphonevarchar30密碼secretvarchar30選課表:名稱職稱鍵值類型長(zhǎng)度學(xué)號(hào)snopvarchar30課程號(hào)cnopvarchar30教師編號(hào)tnovarchar30成績(jī)scoreint系統(tǒng)功能模塊圖:用例圖:數(shù)據(jù)庫(kù)設(shè)計(jì)(包括表名、字段名、字段類型、字段大小、字段說明)。Student:Teacher:Course:SCourse:
5、Adnim:5、 測(cè)試用例和關(guān)鍵代碼:登錄界面:public partial class login : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) /判斷是否是回送,比如點(diǎn)擊同一個(gè)頁(yè)面的按鈕 HttpCookie myCookie1 = Request.Cookies"userName"/獲取Cookie信息 if (myCookie1 != null) /如果cookie存在,則將cookie信息即用戶名顯示出來 string usern
6、ame = myCookie1.Value; / TextBox1.Text = username; protected void imgbtnLogin_Click(object sender, ImageClickEventArgs e) string userName = txtUserName.Text.ToString().Trim(); string userPwd = txtPwd.Text.ToString().Trim(); string userRole = rblClass.SelectedValue.Trim(); string conn = "Data So
7、urce= . ;Initial Catalog=StudentSelectCourse; User ID=sa; pwd=" SqlConnection connection = new SqlConnection(conn); switch (userRole) case "0": try connection.Open(); SqlCommand comm = new SqlCommand(); comm.Connection = connection; string str_sql = "select count(*) from Teacher
8、where tno='" + userName + "' and secret='" + userPwd + "'" comm.CommandText = str_sql; int count = Convert.ToInt32(comm.ExecuteScalar(); if (count > 0) /記錄條數(shù)大于0,代表數(shù)據(jù)庫(kù)有相應(yīng)的用戶名和密碼存在 Session"userName" =userName;/設(shè)置Session,用戶實(shí)現(xiàn)登陸 / this.Server.Transfe
9、r("Teachermain.aspx"); / bool rem = CheckBox1.Checked;/判斷有沒有選中記住用戶名 HttpCookie SingleValueCookie = new HttpCookie("userName", userName); / Response.Write("<script>alert('登陸成功');location='javascript:history.go(-1)'</script>"); Response.Cookies
10、.Add(SingleValueCookie);/回送到客戶端 Response.Redirect("/Teacher/Teachermain.aspx", true);/跳轉(zhuǎn)到登陸后主頁(yè)面 else Response.Write("<script>alert('該用戶不存在或用戶名輸入錯(cuò)誤,請(qǐng)檢查后重新輸入!');location='javascript:history.go(-1)'</script>"); / lblMessage.Text = "該用戶不存在或用戶名輸入錯(cuò)誤,請(qǐng)檢查
11、后重新輸入!" catch (SqlException ex) Response.Write(ex.Message); break; case "1": try connection.Open(); SqlCommand comm = new SqlCommand(); comm.Connection = connection; string str_sql = "select count(*) from Student where sno='" + userName + "' and secret='&quo
12、t; + userPwd + "'" comm.CommandText = str_sql; int count = Convert.ToInt32(comm.ExecuteScalar(); if (count > 0) /記錄條數(shù)大于0,代表數(shù)據(jù)庫(kù)有相應(yīng)的用戶名和密碼存在 Session"username" =userName;/設(shè)置Session,用戶實(shí)現(xiàn)登陸 / bool rem = CheckBox1.Checked;/判斷有沒有選中記住用戶名 HttpCookie SingleValueCookie = new HttpCook
13、ie("username"); Response.Cookies.Add(SingleValueCookie);/回送到客戶端 Response.Redirect("/Student/Studentmain.aspx", true);/跳轉(zhuǎn)到登陸后主頁(yè)面 else Response.Write("<script>alert('該用戶不存在或用戶名輸入錯(cuò)誤,請(qǐng)檢查后重新輸入!');location='javascript:history.go(-1)'</script>"); ca
14、tch (SqlException ex) Response.Write(ex.Message); break; case "2": try connection.Open(); SqlCommand comm = new SqlCommand(); comm.Connection = connection; string str_sql = "select count(*) from Adnim where adnim='" + userName + "' and secret='" + userPwd +
15、"'" comm.CommandText = str_sql; int count = Convert.ToInt32(comm.ExecuteScalar(); if (count > 0) /記錄條數(shù)大于0,代表數(shù)據(jù)庫(kù)有相應(yīng)的用戶名和密碼存在 Session"username" =userName;/設(shè)置Session,用戶實(shí)現(xiàn)登陸 / bool rem = CheckBox1.Checked;/判斷有沒有選中記住用戶名 HttpCookie SingleValueCookie = new HttpCookie("userna
16、me") Response.Cookies.Add(SingleValueCookie);/回送到客戶端 Response.Redirect("/Admin/Adminmain.aspx", true);/跳轉(zhuǎn)到登陸后主頁(yè)面 else Response.Write("<script>alert('該用戶不存在或用戶名輸入錯(cuò)誤,請(qǐng)檢查后重新輸入!');location='javascript:history.go(-1)'</script>"); catch (SqlException ex
17、) Response.Write(ex.Message); break; 學(xué)生選課:public partial class Student_StudentApply : System.Web.UI.Page string clocal = null; string ctime = null; string cno = null; /string ctime = null; string tno = null; string myName1Value; protected void Page_Load(object sender, EventArgs e) /string myName1Val
18、ue; if (Session"userName" != null) myName1Value = Session"userName".ToString(); protected void Button1_Click(object sender, EventArgs e) for (int i = 0; i < this.GridView1.Rows.Count; i+) CheckBox ckb = (CheckBox)this.GridView1.Rowsi.Cells0.FindControl("CheckBox1");
19、if (ckb.Checked) cno = Convert.ToString(this.GridView1.Rowsi.Cells1.Text); tno = Convert.ToString(this.GridView1.Rowsi.Cells3.Text); Response.Write("<script>alert('選課成功!');location='javascript:history.go(-1)'</script>"); string conn = "Data Source= . ;Initi
20、al Catalog=StudentSelectCourse; User ID=sa; pwd=" SqlConnection connection = new SqlConnection(conn); try connection.Open();/打開數(shù)據(jù)庫(kù) string str_sql = "insert into SCourse(sno,cno,tno) values('" + myName1Value + "','" + cno + "','" + tno + "
21、39;)" SqlCommand comm = new SqlCommand(str_sql, connection);/建立COMMAND對(duì)象(即命令執(zhí)行對(duì)象) comm.ExecuteNonQuery(); catch (SqlException ex) protected void Button2_Click(object sender, EventArgs e) for (int i = 0; i < this.GridView1.Rows.Count; i+) CheckBox ckb = (CheckBox)this.GridView1.Rowsi.Cells0.F
22、indControl("CheckBox1"); if (ckb.Checked) cno = Convert.ToString(this.GridView1.Rowsi.Cells1.Text); ctime = Convert.ToString(this.GridView1.Rowsi.Cells6.Text); clocal = Convert.ToString(this.GridView1.Rowsi.Cells7.Text); /Label1.Text = clocal; string conn = "Data Source= . ;Initial Ca
23、talog=StudentSelectCourse; User ID=sa; pwd=" SqlConnection connection = new SqlConnection(conn); try connection.Open(); string str = " select COUNT(*) from SCourse where sno='"+myName1Value+"' and cno in(select Co from Course where Course.ctime='" + ctime + "
24、;' and Course.clocal='" + clocal + "')" SqlCommand comm = new SqlCommand(); comm.Connection = connection; comm.CommandText = str; int count = Convert.ToInt32(comm.ExecuteScalar(); if (count > 0) Response.Write("<script>alert('與已選課程沖突');location='j
25、avascript:history.go(-1)'</script>"); else Response.Write("<script>alert('與已選課程無任何沖突');location='javascript:history.go(-1)'</script>"); catch (SqlException ex) 課件查看與下載:public partial class Student_StudentUploading : System.Web.UI.Page protected vo
26、id Page_Load(object sender, EventArgs e) string AllFile = Directory.GetFiles(Server.MapPath("/file/"); foreach (string Name in AllFile) / 返回指定路徑的文件的名稱 ListBox1.Items.Add(Path.GetFileName(Name); public void DownLoadFile(string FullFileName) / 保存文件的虛擬路徑 string Url = "/file/" + Full
27、FileName; / 保存文件的物理路徑 string FullPath = HttpContext.Current.Server.MapPath(Url); / 初始化FileInfo類的實(shí)例,作為文件路徑的包裝 FileInfo FI = new FileInfo(FullPath); / 判斷文件是否存在 if (FI.Exists) / 將文件保存到本機(jī) Response.Clear(); Response.AddHeader("Content-Disposition", "attachment;filename=" + Server.UrlE
28、ncode(FI.Name); Response.AddHeader("Content-Length", FI.Length.ToString(); Response.ContentType = "application/octet-stream" Response.Filter.Close(); Response.WriteFile(FI.FullName); Response.End(); protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e) Session&
29、quot;SelectedFile" = ListBox1.SelectedValue.ToString(); protected void Button2_Click(object sender, EventArgs e) if (ListBox1.SelectedValue != "") if (Session"SelectedFile" != "") string FullFileName = Session"SelectedFile".ToString(); DownLoadFile(FullFi
30、leName); else Response.Write("<script>alert('請(qǐng)先選擇要下載的文件');</script>"); 接收消息:public partial class Student_StudentAcceptMessage : System.Web.UI.Page string sno=null; protected void Page_Load(object sender, EventArgs e) if (Session"userName" != null) sno = Sessio
31、n"userName".ToString(); string conn = "Data Source= . ;Initial Catalog=StudentSelectCourse; User ID=sa; pwd=" SqlConnection connection = new SqlConnection(conn); try connection.Open(); string str_sql = "select tname,tmessage from teachermessage,teacher,scourse where scourse.
32、sno='"+sno+"' and scourse.tno=teachermessage.tno and teachermessage.tno=teacher.tno" SqlCommand comm = new SqlCommand(str_sql, connection); SqlDataReader reader = comm.ExecuteReader(); while (reader.Read() TextBox1.Text = TextBox1.Text +"發(fā)件人:"+ reader0.ToString() + &
33、#39;n' TextBox1.Text = TextBox1.Text +"信件:"+ reader1.ToString() + 'n' catch (SqlException ex) Response.Write(ex.Message); 查看個(gè)人信息:public partial class Student_StudentInfo : System.Web.UI.Page string myName1Value; protected void Page_Load(object sender, EventArgs e) if (Session&q
34、uot;userName" != null) myName1Value = Session"userName".ToString(); try string conn = "Data Source= . ;Initial Catalog=StudentSelectCourse; User ID=sa; pwd=" SqlConnection connection = new SqlConnection(conn); connection.Open(); string sql = "select * from Student where
35、 sno='"+ myName1Value+"'" SqlCommand cmd = new SqlCommand(sql, connection); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read() /將結(jié)果集信息添加到返回向量中 Label2.Text=reader0.ToString(); Label4.Text=reader1.ToString(); Label5.Text=reader2.ToString(); Label8.Text = reader3.To
36、String(); Label6.Text = reader4.ToString(); Label7.Text = reader5.ToString(); reader.Close(); cmd.Dispose(); catch (SqlException ex) 老師頁(yè)面上傳課件;public partial class Teacher_TeacherUploading : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) / if (!IsPostBack) / 頁(yè)面首次加載 / / 返回指定目錄
37、的所有文件的名稱 string AllFile = Directory.GetFiles(Server.MapPath("/file/"); foreach (string Name in AllFile) / 返回指定路徑的文件的名稱 ListBox1.Items.Add(Path.GetFileName(Name); / protected void Button1_ServerClick(object sender, EventArgs e) string OldFileName = Path.GetFileNameWithoutExtension(FileUploa
38、d1.FileName); UpLoadFile(FileUpload1, OldFileName); public static void UpLoadFile(FileUpload FU, string NewFileName) if (FU.HasFile) / 判斷是否有文件上傳 string OldExtensionName = Path.GetExtension(FU.FileName).ToLower(); string Url = "/file/" + NewFileName + OldExtensionName; string FullPath = Htt
39、pContext.Current.Server.MapPath(Url); try if (File.Exists(FullPath) / Response.Write("<script>alert('選課成功!');location='javascript:history.go(-1)'</script>"); HttpContext.Current.Response.Write("<script>alert('文件已存在,請(qǐng)重新上傳。');</script>&quo
40、t;); else FU.SaveAs(FullPath); HttpContext.Current.Response.Write("<script>alert('文件已成功上傳。');</script>"); / Response.Write("<script>alert('選課成功!');location='javascript:history.go(-1)'</script>"); catch else HttpContext.Current.Respo
41、nse.Write("<script>alert('請(qǐng)選擇上傳的文件');</script>"); public void DownLoadFile(string FullFileName) / 保存文件的虛擬路徑 string Url = "/file/" + FullFileName; / 保存文件的物理路徑 string FullPath = HttpContext.Current.Server.MapPath(Url); / 初始化FileInfo類的實(shí)例,作為文件路徑的包裝 FileInfo FI = n
42、ew FileInfo(FullPath); / 判斷文件是否存在 if (FI.Exists) / 將文件保存到本機(jī) Response.Clear(); Response.AddHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(FI.Name); Response.AddHeader("Content-Length", FI.Length.ToString(); Response.ContentType = "applicatio
43、n/octet-stream" Response.Filter.Close(); Response.WriteFile(FI.FullName); Response.End(); public void DeleteFile(string FullFileName) / 保存文件的虛擬路徑 string Url = "/file/" + FullFileName; / 保存文件的物理路徑 string FullPath = HttpContext.Current.Server.MapPath(Url); / 去除文件的只讀屬性 File.SetAttributes(FullPath, FileAttr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年新能源發(fā)電設(shè)備自動(dòng)化裝置項(xiàng)目成效分析報(bào)告
- 2024年超鈾元素及其提取設(shè)備項(xiàng)目綜合評(píng)估報(bào)告
- 2024年裝在進(jìn)口飛機(jī)上的國(guó)產(chǎn)零備件和材料項(xiàng)目評(píng)價(jià)分析報(bào)告
- 質(zhì)量培訓(xùn)35環(huán)宇抽樣檢驗(yàn)培訓(xùn)教材
- 2024屆河北省唐山市唐縣第一中學(xué)高三5月學(xué)生學(xué)業(yè)能力調(diào)研考試數(shù)學(xué)試題
- 構(gòu)建幼兒園大閱讀體系的實(shí)踐研究 研究計(jì)劃+實(shí)施階段+結(jié)題報(bào)告
- 采購(gòu)合同中的處罰條款
- 編撰物流合同執(zhí)行統(tǒng)計(jì)表
- 山東省棗莊市臺(tái)兒莊區(qū)2024-2025學(xué)年七年級(jí)上學(xué)期期中考試語文試題
- 遼寧省丹東市七校協(xié)作體2024-2025學(xué)年高一上學(xué)期11月期中生物試題
- 新青年的責(zé)任與擔(dān)當(dāng)PPT中國(guó)青年始終是實(shí)現(xiàn)中華民族偉大復(fù)興的先鋒力量PPT課件(帶內(nèi)容)
- 應(yīng)急救援說明(電梯)中文版
- 青少年毒品預(yù)防教育教學(xué)課件
- 科室高風(fēng)險(xiǎn)患者管理記錄登記表
- 重慶建筑施工安全教育小程序
- 《大學(xué)生勞動(dòng)教育》第七章 合作性勞動(dòng)與集體勞動(dòng)
- 高邊坡專項(xiàng)施工方案 (需專家論證)
- 餐飲服務(wù)和管理說課名師優(yōu)質(zhì)課賽課一等獎(jiǎng)市公開課獲獎(jiǎng)?wù)n件
- DB21T 3314-2020 生物炭直接還田技術(shù)規(guī)程
- 教案特殊角三角函數(shù)值
- 涂漆檢驗(yàn)報(bào)告(面漆)
評(píng)論
0/150
提交評(píng)論