Web程序设计课程设计报告.docx
COLLEGE OF MOBILE TELECOMMLF4ICA710NS.GHIONGQING UM阳帮IUOF POSTS AND TELECOM.Web程序设计课程设计报告学学班专生:号:级:业:重庆邮电大学移通学院2017年3月选课系统的设计与实现3一、实验目的及要求3二、实验环境及相关情况(包含使用软件、实验设备、主要仪器等)3三、实验内容及步骤3(一)、网站总体设计31.1系统概述3(二)、数据库设计31、数据库E-R图分析32、数据表概要说明5Account 表:5Admin 表: 5Course 表:5Selection 表: 6Student 表: 6Teacher 表:63、主要数据表的结构6(三)、文件架构设计8(四)、前台页面设计(普通用户模块)81、前台各个主要页面概述82、前台主页面的布局103、前台主页面的实现10(1)选课系统登录首页10(2)信息录入页面11(3)浏览课程信息页面13(4)选择检索条件16(5)选择选课方式18(五)、后台模块的设计与实现(管理员模块)201、后台各个主要页面概述202、后台主页面的布局203、后台主页面的实现21修改课程信息页面21课程设计总结23参考文献23选课系统的设计与实现一、实验目的及要求1、掌握 Web网页常用的开发工具Frontpage2003或Deamweaver的使用;2、学会IIS的配置;3、学会Html、CSS、Javascript的简单开发和应用;4、B/S模式下,asp或与数据库的连接。二、实验环境及相关情况(包含使用软件、实验设备、主要仪器等)操作系统为 Windows XP,应用软件为 Macromedia Dreamweaver 8、IIS服务器和 VS.Net2005软件编辑器。三、实验内容及步骤(一)、网站总体设计1.1系统概述选课系统的核心是选课功能,学生在选课之前,必须通过系统的身份验证,然后就可以 选定自己感兴趣的选修课程。在此学生可以通过系统查询自己喜欢和对自己有帮助的课程, 还有可以通过学分查询自己需要的课程,学生还可以通过选课系统查看自己的选修课程。学生的课程成绩由教师来添加,教师的身份需通过系统验证。选课系统的课程信息和学生信息由管理员通过身份验证后来进行添加、删除和修改。这 些功能是后台管理功能。(二)、数据库设计1、数据库E-R图分析这一设计阶段是在系统功能结构图的基础上进行的,设计出能够满足用户需求的各种实 体以及它们之间的关系,为后面的逻辑结构设计打下基础。根据以上的分析设计结果,得到用户实体、管理实体、课程实体、选择实体、学生实体、 教师实体。下面来介绍几个主要信息实体的E-R图。(1)用户实体:用户实体的E-R图,如图用户实体包括:用户姓名、密码、用户等级和用户编号。(2) 管理实体管理实体包括:管理员编号和姓名。管理实体的E-R图,如图管理实体姓名管理员编号(3) 课程实体课程实体包括:课程编号、课程名称、课程描述、学分、最高分数和教师编号。课程实 体的ER图,如图(4) 选择实体选择实体包括:课程编号和学生编号。课程实体的ER图,如图(5) 学生实体学生实体包括:课程编号、学生姓名、系别和专业。学生实体的ER图,如图(6)教师实体教师实体包括:教师编号、教师姓名和职称。教师实体的E-R图,如图2、数据表概要说明Account 表:! jHSfc盂整 睡鼻.JbEsuiTmlw x"LtsrnaneLtewLffvelLhernnbbbTerdwTtH133StufertDU 如口LE胡小平123lerdwTDJDDDStudertD312DKI7旅华月123AdhinJJLBBBTa-dwTD3王垣北6TcntwTQE珀目而明letdwrTD5*TOWM1IWAdmin 表:t608 选谡系薮-dbo. AdainfldmirnoNameJOI漆毕月*MMJLLCourse 表:GziseftorutKNi>.ruYurilerd'eirwjuuIW.ZLIX>r«xirtl+B:4忡浪卡RS!用-注伺#保技卡书四外蜂存.4囱raiJ0DE. *jrtat5FTffBT4Fh.42BraiKxa.置曲讶!(机*牡W主我主.42Oira-iKM,二厦耳街十.*-¥主W.3LCDraiKC5gig, 3gLSDrasKC&土一孕!t*感in MgfdML啊MH?工"7空惨in +TO?由学浏TQ2¥1况谶我1瓦.羊"一年取怒替.:2i«raaima咿g.g*摩.1'»wmat近机史口宇律祕苗史成乳既需.2LHiTffinm古 frtsr.出"矗不旧七g.3wrai网!心MiWjIi!gj:JIUMSelection 表:15U8 一法谖厩妹一-.SeJlecti>aiL|_5tudertnnCcjrsenatataioD? Z003wzwfliaCUOL(MSWOiaJHHwz«woiaJM5oizwoiaJ奶wziooiaIVOOLoiEWfltaIZC02LH210013TOOL*NULLStudent 表:,60EL 选森本藐 bo. 5411却二:11± X5tudertnoMameDtparbnuentMajcr101L924禁局.百n兵.t料京.厂生101L96E信息工Wti心IJ心nwiTeacher 表:tSOOL系琴-jbip. TeTcbcrlTerdiefnar-lsmtTithT01阳一£TLE王北海T037亍mFhtanl: l=T05翻后南IKKTU7T1页酬恤EAtiir.''.'3、主要数据表的结构(1)Account 表表1 Account表结构字段名称数据类型是否主键长度默认值允许空字段描述Username文本是10用户姓名Password数字4登录密码UserLevel文本10用户级别Userno文本用户编号(2 ) Admin 表表2 Admin表结构字段名称数据类型是否主键长度默认值允许空字段描述Adminno文本是10管理员编号Name文本10姓名(3 ) Course 表表3 Course表结构字段名称数据类型是否主键长度默认值允许空字段描述Courseno文本是10课程编号Name文本50课程名称Description文本50课程描述Credit数字10学分Maximumnun数字10最大分数Teacher文本10教师编号(4) Selection表表4 Selection表结构字段名称数据类型是否主键长度默认值允许空字段描述Studentno数字是10学生编号Courseno数字10课程编号(5 ) Student 表表5 Student表结构字段名称数据类型是否主键长度默认值允许空字段描述Studentno数字是10学生编号Name文本10学生姓名Department文本10系别Major文本10专业(6)Teacher表表6 Teacher表结构字段名称数据类型是否主键长度默认值允许空字段描述Teacherno文本是10教师编号Name文本10教师姓名Title文本10职称(三)、文件架构设计(四)、前台页面设计(普通用户模块)1、前台各个主要页面概述校园网选课余貌B flf选课系统登录页面f选课系统搜索课程信息页面f选课系统选课信息一览表页面2、前台主页面的布局f前台主页面布局3、前台主页面的实现(1) 选课系统登录首页源文件代码<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>选课系统首页一登录页面</title></head><body><table width="98%" height="215" border="0"><tr><td height="48"><div align="center"><p> </p><p><font color="#9900FF" size="7" face="华文新魏"> 校园网选 <font color="#9900CC"> 课系统</font></font></p><hr size="10" color="#FF0000"><p><font color="#0000FF" size="7" fhce="华文新魏"></font></p></div></td></tr><tr><td><div align="center"><fOrm action="login.asp" method="post" name="frmLogin" id="frmLogin"><p> </p><p>用户名:<input name="Username" type="text" id="Username"></p><p> 密 码:<input name="Password" type="password" id="Password"></p><p> </p><p><input type="submit" name="Submit" value="登 录" <input type="reset" name="Submit2" value="重 填"</p><p> </p></form></div></td></tr></table></body></html>(2) 信息录入页面源文件代码<%LANGUAGE="VBSCRIPT"%><!#include file="adovbs.inc”><!-#include file=connection.asp -><%'判断是否具有教务员权限If Session("UserLevel")<>"Admin" ThenResponse.Redirect "illegal.asp”End IfSet rsTest=Server.CreateObject("ADODB.RecordSet")rsTest.Open "Teacher”,Conn,adOpenStatic,adLockReadOnly%><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>输入课程信息</title></head><body><table ><tr><td width="804" height="55" valign="top"><div align="center"><font color="#990033" size="7" face="华文新魏”输入课程信息 </font</div</td </tr> <tr><td height="504" valign="top"><form action="insertCourse.asp" method="POST" name="frmInsertCourse" id="frmInsertCourse"><div align="center"><pre><font color="#0000FF" size="4">课 程 号:</font><input name="txtCourseno" type="text" id="txtCourseno"> <font color="#0000FF" size="4">学分:</font><selectname="selCredit" id="selCredit"><option value="1"> 一分</option><option value="2">二分</option><option value="3">三分</option><option value="4" selected> 四分</option><option value="5">五分</option></select></pre></div> <div align="center"><pre align="center"><font color="#0000FF" size="4"> 课程名称:<input name="txtName" type="text" id="txtName" size="60"></font></pre><pre align="center"><font color="#0000FF" size="4”>课程描述:<textarea name="txtDescription" cols="80" id="txtDescription"></textarea> </font></pre><div align="left"><pre align="center"><font color="#0000FF" size="4">最大选课人数:input name="txtMaximumNum" type="text" id="txtMaximumNum">教师:<select name="selTeacherno" id="selTeacherno"><% While (NOT rsTest.EOF) %><option value="<%=(rsTest.Fields.Item("Teacherno").Value)%>" <%If(NotisNull(rsTest_first)ThenIf(CStr(rsTest.Fields.Item("Teacherno").Value) = CStr(rsTest_first) Then Response.Write("SELECTED") : Response.Write("")%> > <%=(rsTest.Fields.Item("Name").Value)%> </option> <% rsTest.MoveNext() WendIf (rsTest.CursorType > 0) ThenrsTest.MoveFirstElsersTest.RequeryEnd If%></select></font></pre></div><pre><font color="#0000FF" size="4”><input name="btnInsert" type="submit" id="btnInsert" value="保存输入”><input name="btnClear"type="reset" id="btnClear" value="清 除重填"></font></pre></div><p align="center"><a href="main.asp"><font size="5" face="华文新魏”>返 回 </font></a></p><font color="#0000FF" size="4"></font><pre><font color="#0000FF" size="4"></font></pre></form><p> </p></td></tr><tr><td height="42"> </td></tr></table><%rsTest.CloseConn.CloseSet rsTest = NothingSet Conn=Nothing%></body> </html>(3) 浏览课程信息页面源文件代码<%LANGUAGE="VBSCRIPT" CODEPAGE="936"%><%Option ExplicitResponse.Expires=0%><!-#include file=adovbs.inc -><!-#include file=connection.asp -><%Dim RecordPerPage,absPageNUm,TotalPages,absRecordNUm,rsTest,StrSQL'absPageNum-当前页数,TotalPages总页数,absRecordNum-当前页中某一条记录的序号RecordPerPage=4 '每页显示的记录数absPageNum=CInt(Request.Form("PressPageNum")'若返回的是”上一页”,则页数减一,若是”下一页”,则页数加一If Request.Form("Submit")="上一页"ThenabsPageNum=absPageNum-1ElseIf Request.Form("Submit")="下一页"ThenabsPageNum=absPageNum+1End IfStrSQL="Select *From Course"Set rsTest=Server.CreateObject("ADODB.RecordSet")rsTest.CacheSize=RecordPerPage设置这个属性选项会提高性能rsTest.Open StrSQL,Conn,adOpenStatic,adLockReadOnly,adCmdText'设置RecordSet对象的每一页数据记录条数rsTest.PageSize=RecordPerPageIf rsTest.RecordCount=0 ThenResponse.Redirect "selectedlisterror.asp"End IfIf absPageNum=0 ThenabsPageNum=1End IfIf Not rsTest.EOF ThenrsTest.AbsolutePage=absPageNumEnd IfTotalPages=rsTest.PageCount%><Html><Head><Meta http-equiv="Content-Type" content="text/html; charset=gb2312"><Title>浏览课程信息</Title></Head><Body><P> </P><Table width="99%" align="center" border="0"><Tr><Td height="49"><Div align="center"><Font color="#009900" size="7" face="华文新魏"课程信息 一览表</Font></Div></Td></Tr><Tr><Td height="100"><Table width="100%" height="90" border="1" bordercolor="#0000FF"><Tr><Td width="8%" height="38"><Div align="center"><Font color="#CC6600" size="4" face="华文隶书"> 课程号 < /Font></Div></Td><Td width="27%"><Div align="center"><Font color="#CC6600" size="4" fece="华文隶书”课程名称v/Font></Div></Td><Td width="7%"><Div align="center"><Font color="#CC6600" size="4" face="华文隶书”学分v/Font></Div></Td><Td width="9%"><Div align="center"><Font color="#CC6600" size="4" face="华文隶书”最大选课人数v/Font></Div></Td><Td width="9%"><Div align="center"><Font color="#CC6600" size="4" face="华文隶书”目前选课人数v/Font></Div></Td><Td width="8%"><Div align="center"><Font color="#CC6600" size="4" fece="华文隶书”教师号v/Font></Div></Td><Td width="41%"><Div align="center"><Font color="#CC6600" size="4" face="华文隶书”课程描述v/Font></Div></Td></Tr><%For absRecordNum= 1 to rsTest.PageSizeResponse.Write "<Tr valign=middle>"'将每条记录的各个字段输出Response.Write "<Td>"&rsTest("Courseno").Value&"</Td>"Response.Write "<Td>"&rsTest("Name").Value&"</Td>"Response.Write "<Td>"&rsTest("Credit").Value&"</Td>"Response.Write "<Td>"&rsTest("Maximumnum").Value&"</Td>"Response.Write "<Td>"&rsTest("Currentnum").Value&"</Td>"Response.Write "<Td>"&rsTest("Teacherno").Value&"</Td>"Response.Write "<Td>"&rsTest("Description").Value&"</Td>"Response.Write "</Tr>"rsTest.MoveNextIf rsTest.EOF ThenExit For '若到记录尾,退出一如当最后一页数据不满页时。End IfNextResponse.Write "</Table><Br>"'关闭数据库和数据表rsTest.CloseConn.CloseSet rsTest=NothingSet Conn=Nothing%><Form Action="<% =Request.ServerVariables("SCRIPT_NAME") %>" Method="Post"><Input Type="Hidden" Name="PressPageNum" Value="<% =absPageNum %>"><Center><%If absPageNum>1 Then '若当前页不是第一页,则显示上一页链接Response.Write "<Input Type=Submit Name=Submit Value土一 页"End IfIf absPageNum<>TotalPages Then若当前页不是最后一页,则显示下一页链接Response.Write "<Input Type=Submit Name=Submit Value=下一页"End If%></Center></Form><P><Center>第 <Font Color="#CC0033"><% =absPageNum %></Font> 页,共 <FontColor="#CC0033"><% =TotalPages %></Font>页</Center></P></Body></Html>(4) 选择检索条件源文件代码<%LANGUAGE="VBSCRIPT" CODEPAGE="936"%><!-#include file="adovbs.inc"-><!-#include file=connection.asp -><%Set rstTeacher=Server.CreateObject("ADODB.RecordSet")rstTeacher.Open "Teacher",Conn,adOpenStatic,adLockReadOnlyDim Name,Description,Credit,TeachernoIf Request.ServerVariables("CONTENT_LENGTH")<>0 ThenSession("Name")=Ltrim(Rtrim(CStr(Request.Form("TxtName")Session("Description")=Ltrim(Rtrim(Request.Form("TxtDescription")Session("Credit")=Request.Form("selCredit")Session("Teacherno")=Request.Form("selTeacherno")Session("Checkbox")=Request.Form("Checkbox")Response.Redirect "searchshow.asp"End If%><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title >检索课程信息</title></head><body><table width="786" border="0" cellpadding="0" cellspacing="0"><tr><td width="891" height="103" valign="top"><p> </p><p align="center"><font color="#0000FF" size="7" face="华文新魏">搜索 课程信 息 </font></p></td></tr><tr><td height="257" valign="top"><div align="center"><p><font color="#FF0000" size="6" face="华文行楷">输入检索条件</font></p><form action="<% =Request.ServerVariables("SCRIPT_NAME") %>" method="post" name="frmSearchCourse" id="frmSearchCourse"><p><font color="#0000FF" face="黑体">课程名称包含:</font><input name="txtName" type="text" id="txtName"></p><p><font color="#0000FF" face="黑体">课程描述包含:</font><input name="txtDescription" type="text" id="txtDescription"></p><p><font color="#0000FF" face="黑体">学分:</font><select name="selCredit" id="selCredit"><option value="0" selected>所 有学分 </option><option value="1">一分 </option><option value="2">二 分 </option><option value="3">H 分 </option><option value="4" > 四分</option><option value="5">S 分</option></select><font color="#0000FF" face="黑体"> 授课教师:</font><select name="selTeacherno" id="selTeacherno"><option value="所有教师"所有教师</option><% While (NOT rstTeacher.EOF) %><option value="<%=(rstTeacher.Fields.Item("Teacherno").Value)%>" ><%=(rstTeacher.Fields.Item("Name").Value+rstTeacher.Fields.Item("Title").Value)%></option><%rstTeacher.MoveNext()WendIf (rstTeacher.CursorType > 0) ThenrstTeacher.MoveFirstElserstTeacher.RequeryEnd If%></select> <input type="checkbox" name="checkbox" value="on" checked><font color="#0000FF" face="黑体"> 只列出尚未选满的课 程</font> </p> <p><input type="submit" name="Submit" value="开始查找" <input type="reset" name="Submit2" value="清 除重填"</p><p> </p></form><p> </p></div></td></tr><tr><td height="37"> </td></tr></table></body></html>(5) 选择选课方式源文件代码<%LANGUAGE="VBSCRIPT" CODEPAGE="936"%><%If Session("UserLevel")<>"Student" ThenResponse.Redirect "illegal.asp"End IfIf Request.ServerVariables("CONTENT_LENGTH")<>0 ThenRadioValue=Request.Form("RadioButton")Select Case RadioValueCase "radio1"Response.Redirect "Selectcourse1.asp"Case "radio2"Response.Redirect "Selectcourse2.asp"Case "radio3"Response.Redirect "Selectcourse3.asp"Case "radio4"Response.Redirect "Selectcourse4.asp"End SelectEnd If%><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>无标题文档< /title></head><body><div align="left"><p> </p><p> </p><formname="form1"method="