學(xué)生成績管理系統(tǒng)Web程序設(shè)計(jì)課程設(shè)計(jì)報告.doc
洛 陽 理 工 學(xué) 院課 程 設(shè) 計(jì) 報 告 課程名稱 Web程序設(shè)計(jì)課程設(shè)計(jì) 設(shè)計(jì)題目 學(xué)生成績管理 專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) 班 級 學(xué) 號 姓 名 完成日期 課 程 設(shè) 計(jì) 任 務(wù) 書設(shè)計(jì)題目:_學(xué)生成績管理 設(shè)計(jì)內(nèi)容與要求:1.1問題描述建立B/S模式的學(xué)生成績管理系統(tǒng)。1.2 基本要求(1)數(shù)據(jù)庫設(shè)計(jì)要符合范式要求。(2)能對學(xué)生信息、課程信息及成績等進(jìn)行添加、刪除、修改等操作;(3)提供學(xué)生成績的查詢功能,輸入學(xué)生的學(xué)號或姓名,能查找出該生各學(xué)期的成績;(4)提供必要的統(tǒng)計(jì)功能,如計(jì)算不及格人數(shù)、生成給予警告名單等。 指導(dǎo)教師: 年 月 日課 程 設(shè) 計(jì) 評 語 成績: 指導(dǎo)教師: 年 月 日目錄第1章 需求分析11.1 引言11.1.1 開發(fā)背景11.1.2 目的11.1.3 術(shù)語定義11.2 任務(wù)概述11.2.1 目標(biāo)11.2.2 用戶特點(diǎn)21.3 需求規(guī)定2第2章 數(shù)據(jù)庫設(shè)計(jì)32.1 系統(tǒng)E-R圖32.1.1 實(shí)體圖32.1.2 實(shí)體聯(lián)系圖42.2 數(shù)據(jù)結(jié)構(gòu)邏輯設(shè)計(jì)4第3章 概要設(shè)計(jì)63.1 總體設(shè)計(jì)63.1.1 功能分析63.1.2 功能模塊圖63.2 功能模塊清單6第4章 詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)84.1 網(wǎng)頁設(shè)計(jì)84.1.1 網(wǎng)頁界面設(shè)計(jì)84.2 編碼與實(shí)現(xiàn)10第5章 總結(jié)20 第1章 需求分析1.1 引言1.1.1 開發(fā)背景隨著計(jì)算機(jī)及網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,Internet/Intranet 應(yīng)用在全球范圍內(nèi)日益 普及,在眾多的網(wǎng)絡(luò)服務(wù)中,Web 給人耳目一新的感覺。而如今隨著大學(xué)的擴(kuò)招,學(xué)校的學(xué)生成績管理的數(shù)據(jù)越來越多,處理越來越復(fù)雜,為了能夠更加快速,有效地管理這些信息,一個能夠代替人工管理的系統(tǒng)急待開發(fā)。 通過這個系統(tǒng),能夠有效而解決信息量大,人工處理困難的問題。1.1.2 目的軟件需求分析是把軟件計(jì)劃期間確定的軟件工作過程要求精細(xì)化、規(guī)范化,這是軟件生命期中重要的一步,也是軟件實(shí)質(zhì)性開發(fā)的第一步。保證軟件開發(fā)的質(zhì)量、需求的完整與可追溯性,編寫此文檔。通過此文檔,以保證業(yè)務(wù)需求提出者與需求分析人員、開發(fā)人員、測試人員及其相關(guān)利益人對需求達(dá)成共識。1.1.3 術(shù)語定義數(shù)據(jù)字典:是指對數(shù)據(jù)的數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲、處理邏輯、外部實(shí)體等進(jìn)行定義和描述,其目的是對數(shù)據(jù)流程圖中的各個元素做出詳細(xì)的說明。數(shù)據(jù)流條目:給出數(shù)據(jù)流的定義,通常列出組成該數(shù)據(jù)流的數(shù)據(jù)項(xiàng)。數(shù)據(jù)存儲條目:對數(shù)據(jù)存儲的定義。數(shù)據(jù)加工條目:說明加工的處理邏輯。軟件工程:IEEE的定義是開發(fā)、運(yùn)行、維護(hù)、和修復(fù)軟件的系統(tǒng)方法。結(jié)構(gòu)化分析(structured analysis,SA)方法是一種面向數(shù)據(jù)流的需求分析方法。它的基本思想是自頂向下逐層分解,把一個大問題分解成若干個小問題,每個小問題再分解成若干個更小的問題。結(jié)構(gòu)化設(shè)計(jì)(structured design,SD)方法是一種面向數(shù)據(jù)流的設(shè)計(jì)方法,它是以結(jié)構(gòu)化分析階段所產(chǎn)生的文檔(包括數(shù)據(jù)流圖、數(shù)據(jù)字典和軟件需求說明書)為基礎(chǔ),自頂向下,逐步求精和模塊化的過程。1.2 任務(wù)概述1.2.1 目標(biāo)當(dāng)今時代,互聯(lián)網(wǎng)已經(jīng)十分的普及,Web開發(fā)的應(yīng)用程序也給人耳目一新的感覺,合理的利用當(dāng)今有效地資源解放人力資源,提高工作效率是十分重要的,在本系統(tǒng)中,主要實(shí)現(xiàn)以下幾個目標(biāo):1. 為學(xué)生成績管理者提供方便。傳統(tǒng)的管理成績的方法,速度慢,效率低,且浪費(fèi)極大地人力、物力資源,通過本系統(tǒng),可以讓管理者輕松操作,就可以對學(xué)生的個人信息,課程信息,以及成績信息進(jìn)行增、刪、改,方便快捷。2. 讓學(xué)生能夠?qū)ψ约旱男畔⒑芰私?。傳統(tǒng)的成績管理方法中,參與者只有老師,學(xué)生的信息被管理,學(xué)生本人卻不能清除的了解自己的信息是否正確,有時候會造成很大的不方便,在此系統(tǒng)中,學(xué)生可以登錄系統(tǒng),查看自己的各種信息,發(fā)現(xiàn)錯誤,可以及時反饋給管理員,這對管理員的管理也很方便,同時又可以讓學(xué)生了解自己的信息。1.2.2 用戶特點(diǎn)在本系統(tǒng)中的用戶分別有管理員和學(xué)生,管理員和學(xué)生都不需要具備專業(yè)的知識,只要掌握基本的操作方法即可,本系統(tǒng)界面美觀且人性化,能使初學(xué)者很快的掌握系統(tǒng)的使用方法。管理員對學(xué)生的信息進(jìn)行增、刪、改操作,學(xué)生對自己的信息進(jìn)行查詢。1.3 需求規(guī)定學(xué)生成績管理系統(tǒng)主要提供成績查詢,方便管理的網(wǎng)上的信息查閱平臺,學(xué)生可以通過該系統(tǒng)查閱與自己相關(guān)信息。管理員可以通過成績管理系統(tǒng)查閱學(xué)生成績信息,課程信息,學(xué)生個人信息并對相關(guān)信息進(jìn)行增、刪、改等相關(guān)操作。根據(jù)開發(fā)要求,學(xué)生成績管理系統(tǒng)主要應(yīng)用于教育系統(tǒng),完成對日常的成績信息,課程信息,以及學(xué)生的個人信息的管理。開發(fā)學(xué)生成績管理系統(tǒng)可使學(xué)院教職員工減輕工作壓力,比較系統(tǒng)地對學(xué)生有關(guān)成績方面的信息進(jìn)行管理,同時,可以減少勞動力的使用,加快查詢速度、加強(qiáng)管理,以及國家各部門關(guān)于信息化的步伐,使各項(xiàng)管理更加規(guī)范化。目前,學(xué)校工作繁雜、資料眾多,管理信息系統(tǒng)已進(jìn)入高校,但還未普及,而對于學(xué)生成績管理來說,目前還沒有一套完整的、統(tǒng)一的系統(tǒng)。因此,開發(fā)一套適和大眾的、兼容性好的系統(tǒng)是很有必要的。第2章 數(shù)據(jù)庫設(shè)計(jì)2.1 系統(tǒng)E-R圖2.1.1 實(shí)體圖學(xué)生實(shí)體包括學(xué)號、姓名、性別、年齡、班級、電話、密碼幾個屬性,其中學(xué)號為主鍵,實(shí)體圖如下:圖2-1 學(xué)生實(shí)體圖管理員實(shí)體包括密碼和賬號兩個屬性,其中管理員賬號為主鍵,具體如下圖所示: 圖2-2 管理員實(shí)體圖成績實(shí)體包括原始分?jǐn)?shù),有效分?jǐn)?shù),學(xué)期三個屬性,三者聯(lián)合起來構(gòu)成成績的主鍵,具體如下所示: 圖2-3 成績實(shí)體圖課程實(shí)體包括課程號,課程名,學(xué)時,學(xué)分四個屬性,其中課程號為主鍵,具體如下圖所示:圖2-3 成績實(shí)體圖 2.1.2 實(shí)體聯(lián)系圖在本系統(tǒng)中,學(xué)生選擇的有多門課程,每門課程對應(yīng)兩個分?jǐn)?shù),分別為原始成績分和有效成績分,管理員可以修改多個學(xué)生的成績,同時可以修改多門課程信息,具體的實(shí)體聯(lián)系圖如下圖所示: 圖2-4 實(shí)體-聯(lián)系圖2.2 數(shù)據(jù)結(jié)構(gòu)邏輯設(shè)計(jì)管理員表(Admin)字段名數(shù)據(jù)類型長度(字節(jié))備注idint4編號anamenvarchar50用戶名apwdnvarchar50密碼教師表(Teacher)字段名數(shù)據(jù)類型長度(字節(jié))備注idint4編號tnamenvarchar50教師名tpwdnvarchar50密碼學(xué)生表(Student)字段名數(shù)據(jù)類型長度(字節(jié))備注idint4編號sn nvarchar50學(xué)號snamenvarchar50學(xué)生名pwdnvarchar50密碼majornvarchar 50專業(yè)deptnvarchar50系別管理員左目錄表(AdminMenu)字段名數(shù)據(jù)類型長度(字節(jié))備注menu_idint50編號menu_namenvarchar50parent_idint50父編號menu_descriptionnvarcha50url_addnvarchar50menu_targetnvarchar50指向目標(biāo)menu_tbnvarchar50menu_openimgnvarchar50打開按鈕menu_closeimgnvarchar50關(guān)閉按鈕menu_stylenvarchar50systemrolekeyint50is_validbit50教師左目錄表(TeacherMenu)字段名數(shù)據(jù)類型長度(字節(jié))備注menu_idint50編號menu_namenvarchar50parent_idint50父編號menu_descriptionnvarcha50url_addnvarchar50menu_targetnvarchar50指向目標(biāo)menu_tbnvarchar50menu_openimgnvarchar50打開按鈕menu_closeimgnvarchar50關(guān)閉按鈕menu_stylenvarchar50systemrolekeyint50is_validbit50學(xué)生左目錄表(StudentMenu)字段名數(shù)據(jù)類型長度(字節(jié))備注menu_idint50編號menu_namenvarchar50parent_idint50父編號menu_descriptionnvarcha50url_addnvarchar50menu_targetnvarchar50指向目標(biāo)menu_tbnvarchar50menu_openimgnvarchar50打開按鈕menu_closeimgnvarchar50關(guān)閉按鈕menu_stylenvarchar50systemrolekeyint50is_validbit50課程表(Course)字段名數(shù)據(jù)類型長度(字節(jié))備注idint50編號coursenamenvarchar50課程名字tnamenvarchar50教師名字courseidnvarchar50課程號專業(yè)(Major)字段名數(shù)據(jù)類型長度(字節(jié))備注idint50編號Majornvarchar50專業(yè)Deptnvarchar50系別成績表(Grade)字段名數(shù)據(jù)類型長度(字節(jié))備注idint50編號courseidnvarchar50課程號gradenvarchar50成績tnamenvarchar50教師名字snnvarchar50學(xué)號snamenvarchar50學(xué)生姓名coursenamenvarchar50課程名字第3章 概要設(shè)計(jì)3.1 總體設(shè)計(jì)3.1.1 功能分析包括以下幾個模塊:用戶登錄,管理員修改學(xué)生信息(包括增、刪、改),管理員修改課程信息(包括增、刪、改),管理員修改學(xué)生成績(包括增、刪、改),管理員統(tǒng)計(jì)班級不及格人數(shù),按學(xué)號對學(xué)生的信息進(jìn)行查詢等。這幾個模塊既相互聯(lián)系又相互獨(dú)立。本系統(tǒng)根據(jù)學(xué)生成績管理的需要,而建立一個“學(xué)生成績管理系統(tǒng)”,以方便對成績的各項(xiàng)管理操作。本系統(tǒng)能對成績進(jìn)行輸入和輸出;能按學(xué)號對學(xué)生進(jìn)行查詢,并顯示學(xué)生資料、成績等,不過得以系統(tǒng)輸入學(xué)生信息、成績?yōu)榍疤?;能添加學(xué)生成績信息;能根據(jù)學(xué)生的姓名來查詢該學(xué)生的成績信息,并修改或是刪除該學(xué)生信息;能把對系統(tǒng)所進(jìn)行的操作進(jìn)行保存,以及時更新系統(tǒng)中的數(shù)據(jù)。3.1.2 功能模塊圖圖3-1 系統(tǒng)功能模塊圖第4章 詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)4.1 網(wǎng)頁設(shè)計(jì)4.1.1 網(wǎng)頁界面設(shè)計(jì)在本系統(tǒng)中,設(shè)計(jì)了多個頁面,以下列其中幾個,在瀏覽器中查看如下: 用戶登錄界面圖4-3 管理員操作主頁面1 管理員操作主頁面4.2 編碼與實(shí)現(xiàn)主要代碼如下:<% Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Login" %><!DOCTYPE html PUBLIC "-/W3C/DTD XHTML 1.0 Transitional/EN" "http:/www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http:/www.w3.org/1999/xhtml" ><head runat="server"> <title>無標(biāo)題頁</title></head><body style="background-image: url(images/1010538_070511screen09.jpg); background-repeat: repeat"> <form id="form1" runat="server"> <div style="text-align: center"> <span style="font-size: 32pt"> <br /> <br /> <br /> <span><span style="font-family: 華文彩云"><span style="font-size: 48pt"><span>歡5迎1光aspx臨<br /> 成績管理系統(tǒng)</span><br /> </span></span> </span></span> <br /> <table style="width: 206px; text-align: center; border-left-color: lightskyblue; border-bottom-color: lightskyblue; border-top-style: outset; border-top-color: lightskyblue; border-right-style: outset; border-left-style: outset; height: 120px; border-right-color: lightskyblue; border-bottom-style: outset;"> <tr> <td style="text-align: right"> <strong>學(xué)生:</strong></td> <td style="text-align: left"> <asp:ImageButton ID="imgbtn_Stu" runat="server" ImageUrl="/images/Login.gif" OnClick="imgbtn_Stu_Click" /></td> </tr> <tr> <td style="text-align: right"> <strong>老師:</strong></td> <td style="width: 100px; text-align: left"> <asp:ImageButton ID="imgbtn_Tch" runat="server" ImageUrl="/images/Login.gif" OnClick="imgbtn_Tch_Click" /></td> </tr> <tr> <td style="width: 100px; text-align: right; height: 18px;"> <strong>管理員:</strong></td> <td style="width: 100px; text-align: left; height: 18px;"> <asp:ImageButton ID="imgbtn_Sa" runat="server" ImageUrl="/images/Login.gif" OnClick="imgbtn_Sa_Click" /></td> </tr> </table> <br /> <br /> </div> </form></body></html>public partial class Student_StudentReg : System.Web.UI.Page private static string strUser = "" SQLHelper sqlhelper = new SQLHelper(); Common common = new Common(); protected void Page_Load(object sender, EventArgs e) if (!Page.IsPostBack) common.BindDropDownList(ref ddl_major, "select id,major from Major"); common.BindDropDownList(ref ddl_dept, "select id,dept from Major"); protected void Button1_Click(object sender, EventArgs e) if (this.tbx_sn.Text != "" & this.tbx_name.Text != "") strUser = sqlhelper.RunSqlReturn("select sn from Student where sn=" + this.tbx_sn.Text + " and sname=" + this.tbx_name.Text + "and pwd=" + this.tbx_pwd1.Text + "");/ 執(zhí)行SQL語句,并返回第一行第一列結(jié)果,即學(xué)號 if (strUser.Equals(this.tbx_sn.Text) Page.ClientScript.RegisterStartupScript(GetType(), "MyScript", "<script>alert(該學(xué)生的信息已經(jīng)有了!) ;</script>"); else SqlParameter prams = sqlhelper.CreateInParam("sn",SqlDbType.NVarChar,50,this.tbx_sn.Text), sqlhelper.CreateInParam("sname",SqlDbType.NVarChar,50,this.tbx_name.Text), sqlhelper.CreateInParam("pwd",SqlDbType.NVarChar,50,this.tbx_pwd1.Text), sqlhelper.CreateInParam("major",SqlDbType.NVarChar,50,this.ddl_major.SelectedItem.Text), sqlhelper.CreateInParam("dept",SqlDbType.NVarChar,50,this.ddl_dept.SelectedItem.Text), ; sqlhelper.RunProc("StudentInsert", prams); Page.ClientScript.RegisterStartupScript(GetType(), "MyScript", "<script>alert(保存成功);window.close();</script>"); protected void btn_file_Click(object sender, EventArgs e) Response.Clear(); Response.Buffer = false; Response.Charset = "GB2312" Response.AppendHeader("Content-Disposition", "attachment;filename=pkmv_de.xls"); Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); Response.ContentType = "application/ms-excel" Response.Write("<meta http-equiv=Content-Type content="text/html; charset=GB2312">"); this.EnableViewState = false; System.IO.StringWriter oStringWriter = new System.IO.StringWriter(); HtmlTextWriter oHtmlTextWriter = new HtmlTextWriter(oStringWriter); GridView1.RenderControl(oHtmlTextWriter); Response.Write(oStringWriter.ToString(); Response.End(); public partial class Teacher_TeacherLogin : System.Web.UI.Page SQLHelper sqlhelper = new SQLHelper(); protected void Page_Load(object sender, EventArgs e) protected void ImageButton1_Click(object sender, ImageClickEventArgs e) if (this.tbx_name.Text.IndexOf("") > 0 | this.tbx_name.Text.IndexOf("-") > 0) this.Label_Msg.Text = "用戶名中有非法字符" return; Login lgn = new Login(); if (lgn.TeacherLogin(tbx_name.Text, tbx_pwd1.Text) != null) Session"tname" = tbx_name.Text; Session"tpwd" = tbx_pwd1.Text; Response.Redirect("TeacherIndex.aspx"); else Page.ClientScript.RegisterStartupScript(GetType(), "MyScript", "<script>alert(用戶名或密碼錯誤!) ;</script>"); protected void ImageButton2_Click(object sender, ImageClickEventArgs e) this.tbx_name.Text = "" this.tbx_pwd1.Text = "" this.tbx_pwd2.Text = "" 第5章 總結(jié)這次web綜合課程設(shè)計(jì)是我們這學(xué)期對此課程的一次綜合性檢測。通過這次做綜合設(shè)計(jì),我明白了讓理論聯(lián)系上實(shí)際并不是一件簡單的事。我們平時很少動手操作,這也使我們知道了很多以前沒有涉及到的方面,讓我們知道了更多的知識,增強(qiáng)了我們動手操作能力,實(shí)踐能力,去發(fā)現(xiàn)問題,解決問題能力,為以后的學(xué)習(xí)、生活、工作積累了經(jīng)驗(yàn),打了一定基礎(chǔ)。在這段時間的上機(jī)學(xué)習(xí),我了解了關(guān)于web編程的簡單基礎(chǔ)知識和web程序開發(fā)環(huán)境,還有一些web數(shù)據(jù)庫應(yīng)用程序的一些知識,在學(xué)習(xí)過程中,我們遇到了不少問題,在建立數(shù)據(jù)庫的過程中時有小問題發(fā)生,我們同學(xué)之間都會互相幫助,體現(xiàn)了大家的團(tuán)結(jié)精神。老師首先給我們一個實(shí)例,分模塊給我講解,然后再讓我們分模塊一點(diǎn)一點(diǎn)理解,怎么運(yùn)用,這樣使我們更容易接受老師所講的知識。當(dāng)然,在學(xué)習(xí)過程中遇到的不少困難,大多是景老師為我們耐心的講解,我們還需要多到圖書館去借閱相關(guān)書籍,讀一些課外資料,使我們在有充分理論知識的前提下去增強(qiáng)動手能力,我想效果會更好。我們所具備的知識是遠(yuǎn)遠(yuǎn)不夠的,需要在課下多和老師交流交流??傊覀冊谶@方面還有待提高,需要自身去努力。這次的學(xué)生成績管理系統(tǒng)還存在著一定問題,希望在以后的時間里能提高自己,做得越來越好。