1、数学与信息科学学院网络应用与开发课程设计题目 : 简单的选课系统设计说明书班 级: 姓 名: 学 号: 完成日期: 2011 年 6 月 28 日学生选课系统设计报告项目研究的目的和意义:大学期间总会有很多公共选修课,以往的选课方法是随堂报名。这种方法虽然直接,但是造成选课的盲目性,有些课堂选课时人满为患,有些课堂无人选课。原因是传统的选课方法没有预见性,大家没有事先协调好。使用了网上选课系统以后,可以在开课前就在网上选课,每个学生的课程在开课前就确定好,不用浪费体力去选课,还可以使教学资源合理平均地分配。随着无纸化办公的普遍实现,信息的自动处理以及网络式的信息交互方式已经被人们广泛应用。让计
2、算机来管理学生的信息是现在各个高校都在积极进行的工作之一,也是高校教学管理工作的重要内容之一。网上选课与传统的选课方式相比更加节约资源,增加了学生选课自主权。网上选课系统针对在校学生和教师使用。从学生的角度来说,由于学校教学制度的改革,现在大部分高等院校开始实行的是学生的自主选课模式。传统的教学模式已经不能适应新型的教学模式,如果仍然通过纸上的方式选课,一方面浪费了大量的人力、物力资源,另一方面浪费时间以及会在人为的统计汇总过程中出现可避免的差错等情况。随着高校人数的增多,上述弊端会越来越多的暴露出来。如果利用网络进行选课,学生只要在计算机前输入自己的个人选课信息即可完成教务部门原来几倍的作业
3、量。从教师的角度来说,教师提出代课申请完成课程发布的工作更加容易,得到教学的信息更加快捷,因此通过网上选课系统可以大幅度的减少教师的工作量,方便了教学工作。 随着软件产品应用的普及,各行各业都在使用软件产品,为了适应各部门的需要,一些小型的管理系统正在以很快的速度进入到各行各业,学校的系统也越来越多,例如:图书馆管理系统,食堂的饭卡管理系统,校园超市的超市管理系统等等。为此一些高校正在不断的开发适合自己的管理系统,来满足广大师生的要求,提高校园的综合水平。功能需求:使用计算机对学生选课信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、
4、成本低等。这些优点能够极大地提高学生档案管理的效率。所以学生选课管理系统除了应该能有效的处理在校学生的课程选择信息,教师的开课或者更改课程安排等信息外,还应该具有成绩管理,具有成绩输入、成绩查询和成绩统计等功能。但是由于时间的限制同时又是个人完成,所以系统的功能只包括了对在校学生的课程选择信息和教师的开课或课程安排更改的信息的管理。技术要求: 系统主要采用 B/S 模式进行的系统开发,运用了本学期刚刚3开始的 ASP.NET 课程的 C#语言技术进行编程,其中板式设计部分运用了简单的CSS 模板进行设计。设计方案的选择:在项目的开始之前,一共有两个方案可以选择,一个是“惠农网”网站,另一个就是
5、学生选课系统。其中“惠农网”网站是以中国农业网上发布的信息为内容,为用户提供了一个查询和发布信息的平台。而学生选课系统就是为学生提供一个快速选课的平台,同时也让老师能够发布更新选课的信息,及时了解到学生的选课信息等。考虑到惠农网和我们学生的生活联系不如选课系统密切,同时也没有案例进行参考,所以我选择了做简单的学生选课系统。系统可行性分析:(1)技术可行性-本系统需要一台装有 visual studio2010 以及 SQL2008 软件的计算机即可,采用 B/S 架构,从而对机器本身没有太高的要求,一般当前学校或个人电脑完全可满足要求。对于软件技术要求,开学初我们学习了 ASP.NET C#编
6、写 B/S 模式的系统和网站的方法,基本地掌握了编写系统的基础。同时我们还能够通过自学来完善自己掌握的技术。所以能够基本上实现简单的选课系统所需的功能。 (2)经济可行性-由于本系统是为学生选课提供简单功能的系统,装上该应用软件,即可使用系统,系统成本主要集中在系统软件的开发上,当系统投入运行后可以为学校节约大量的人力,物力。所带来的效益远远大于系统软件的开发成本。在经济上完全可行。(3) 操作可行性-界面设计时充分考虑管理人员的习惯,使得操作简单;数据录入迅速、规范、可靠;统计准确;制表灵活;适应力强;容易扩充。所以无论是操作或是维护起来都很简单。系统设计报告:在此我们将系统分为 5 个实体
7、(1)用户(2)校选修课(3)院选修课(4)体育课关系模式:用户:(用户编号,用户名,密码,用户组)校选修课:(课程编号,课程名称,任课老师,上课地点,上课时间, 课程学分,课程属性)院选修课:(课程编号,课程名称,任课老师,上课学时,课程学分,课程属性)体育课:(课程编号,课程名称,任课老师,课程学分,上课地点,上课时间) 选课信息(课程名称,用户名)用户选择校选修课院选修课选择选择 体育课m nnmm1课程编号 课程名称任课老师上课地点课程学分上课时间课程编号课程名称任课老师上课地点上课地点上课时间课程学分课程属性课程编号课程名称任课老师上课学时课程学分课程属性用户名 密码5本项目是一个简
8、单的学生选课系统,主要功能有注册用户、登录、选择课程,查询课程信息,教师可以更新课程信息也可以发布新的课程信息。用 Microsoft Visual Studio 2010 软件来开发(数据库使用的是 Microsoft SQL Server 2008) 。Default.aspx 是整个网站的入口,完成了登陆窗口的设置和布局,并有登陆和注册两个功能。登陆和注册功能的实现连接了数据库 classdb.mdf,用到表 user 中的数据。可完成新用户注册功能,用户名和密码正确,可进入第二层页面。特点主要在与对学生和教师用户组进行页面的区分显示。学生选课页面.aspx 是学生用户组的显示界面,在这
9、个界面里学生可以选择校选修课、院选修课、体育课选修等,也可以进行选课信息的查询。使用到的数据库是校选修课(XX) 、院选修课(YX) 、体育课(TY) 、选课信息(select)还有用户表(user) 。教师页面.aspx 是教师用户组的显示界面,在这个界面里教师可以更新,删除某个课程的信息,也可以发布新的课程信息,同时还能够查询某一门课程的学生选课情况。使用的数据库是用户表(user) 、院选修课(YX)还有选课信息表(select) 。发布此系统,此系统的网址为 192.168.3.132(虚拟机的 IP 地址) ,域名为。此系统的默认网页为 Default.asxp,即在同一个局域网输入
10、以上网址自动进入 Default.asxp。系统的网络环境及安装配置发布网站(1)配置 DNS 服务器1)开始管理工具DNS2)在正向查找区域中添加新区域 jxm.3)设定区域名称 jxm.(2)配置 IIS 服务器创建虚拟目录4)点击默认网站,右击:新建-虚拟目录5)路径选择为 D:webasp虚拟目录访问权限,选择“读取”和“运行脚本” ,完成虚拟目录设置。6)对默认网站下的别名“jxm”虚拟目录右击,选择属性,选择 “文档” ,把Defaault.aspx 添加进去,并把它上移到第一位置,点击确定。7)把整个网站拷贝到 D:webasp 文件夹中。然后就可以在别的电脑上对网站进行访问 系
11、统的实现:首先是系统首页的登录界面7账户注册是一个超链接,可以链接到账户注册界面,第一次使用系统的学生或者是老师都可以使用学号或教职工号来进行注册。运用了 css 模板进行页面设计排版,其主要代码是.style1width: 100%;height: 159px;.main_class将宽度设为 100%,高度设为 159px,表格内容居中显示,引用 style1,背景颜色设为白色。其他的页面排版用以及来完成.首页的登录框的实现,使用了数据库读取功能,实现的主要代码如下:string a, b,c;a = TextBox1.Text.ToString();b = TextBox2.Text.T
12、oString();c = RadioButtonList1.SelectedValue.ToString();/ string sqlconnstr = ConfigurationManager.ConnectionStrings“classdbConnectionString“.ConnectionString;SqlConnection conn = new SqlConnection(sqlconnstr);conn.Open();String st = “select * from user where 用户名=“ + a + “ and 密码=“ + b + “and 用户组=“+
13、 c +“;SqlCommand com = new SqlCommand(st, conn);SqlDataReader re = com.ExecuteReader();if (re.Read()if (c = “学生“)Session“name“ = TextBox1.Text;conn.Close();Response.Redirect(“/学生选课页面.aspx?name=“ + a);else if (c = “教师“)Session“name“ = TextBox1.Text;conn.Close();Response.Redirect(“/教师界面.aspx?name=“ +
14、a);elseLabel1.Text = “登陆失败,用户名或密码错误“;将数据库中的数据读出,与 textbox1,textbox2 中的文字转换为字符后的数9据进行对比,如果数据库中存在,这可以登录,数据库中不存在则登录错误。账户注册页面的实现也是用数据库链接和读取技术。用户可以选择学生,教师两个用户组,点击提交后如果 user 数据库中存在重复的数据则注册失败,显示错误信息“注册失败,该用户已存在” ,如果用户不存在则显示注册成功并将注册信息存入数据库中。学生选课界面的实现也是用数据库链接和读取技术,但是同时也加入了用户名绑定的 session 技术,用以实现区分选课的作用。同时还使用了
15、MutiView 空间进行静态页面的区分,将校选修课、院选修课、体育课、查看选课信息四个功能页面区分开来主要代码如下:MutiView的代码:if (RadioButton1.Checked)MultiView1.ActiveViewIndex = (int)searchtype.XX;else if (RadioButton2.Checked)MultiView1.ActiveViewIndex = (int)searchtype.YX;else if (RadioButton3.Checked)MultiView1.ActiveViewIndex = (int)searchtype.TY;
16、else if (RadioButton4.Checked)MultiView1.ActiveViewIndex = (int)searchtype.CX;校选修课页面:点击选择后你选择的课程是: 后面会显示选择的课程名称 点击提交则选课完毕院选修课页面:11在前边的框中选中课程然后点击提交,如果选课信息中存在该用户已选择了该门课程,则出现不能重复选课,反之则选课成功。体育课页面:点击选择后你选择的课程是: 后面会显示选择的课程名称 点击提交则选课完毕选课技术和用户名绑定的代码:foreach(ListItem 课程名称 in CheckBoxList1.Items) if(课程名称.Sele
17、cted)if (Convert.ToString(Session“name“) = “)Response.Write(“alert(请先登陆!);window.location=default.aspx“);Label6.Text = Convert.ToString(Session“name“);string a, b;a = Session“name“.ToString();b = CheckBoxList1.SelectedValue;SqlConnection conn = new SqlConnection(sqlconnstr);conn.Open();String st = “
18、select * from select where 用户名=“ + a + “ and 课程名称=“ + b + “;13SqlCommand com = new SqlCommand(st, conn);SqlDataReader re = com.ExecuteReader();if (re.Read()Label2.Text = “不能重复选课“;conn.Close();elseconn.Close();/ SqlConnection conn2 = new SqlConnection(sqlconnstr);string st2 = “insert into select valu
19、es (“ + a + “,“ + b + “)“;SqlCommand comd = new SqlCommand(st2, conn);conn.Open();comd.ExecuteNonQuery();conn.Close();Label2.Text = “选课成功“;查询选课信息页面:使用了数据源控件的绑定功能,将 textbox1 的内容绑定到查询的关键字中,再用 GridView 来显示出来。关键代码如下: string a;a = TextBox1.Text.ToString();/ string sqlconnstr = ConfigurationManager.Connec
20、tionStrings“classdbConnectionString“.ConnectionString;SqlConnection conn = new SqlConnection(sqlconnstr);conn.Open();String zt = “select * from select where 课程名称=“ + a + “;SqlCommand com = new SqlCommand(zt, conn);SqlDataReader re = com.ExecuteReader();if (!re.Read()Label4.Text = “很抱歉,该门课程的信息没找到“;el
21、seLabel4.Text = “;教师页面15修改课程信息页面点击编辑则出现编辑页面:编辑完毕点击更新则信息更新完毕。点击删除,则会将选择的那一行字段全部删除。其中教师对课程信息的更新或删除功能使用了 GridView 控件的编辑功能,让GridView 控件的 edit 和 delete 控件显示出来,同时允许数据动态更新功能的实现。其主要代码如下:教师课程信息发布页面17在课程表的左边的插入表中输入插入的课程信息,然后点击插入则将课程信息插入数据库中。但是系统的缺点就是插入的信息不能够立刻显示在右边的表中,还得重新运行系统才能完成数据更新。教师发布信息的功能则使用 DetailsView
22、 控件来实现,因为 GridView 不支持信息的新建和插入,所以可以利用 Detailsview 控件的插入功能来进行插入功能。系统设计总结在项目开始之前,一共有两个设计方案可供选择,一个是根据中国农业信息网上的农产品价格和供需信息设计的惠农网网站,其主要的目的就是为广大的农产品批发商和农户提供一个查询农产品信息,发布供需信息的平台。而另一个方案是编写一个简单的学生选课系统。其主要目的就是为学生提供一个快速选课平台的同时也能够让老师快速地更新选课信息并了解学生的选课情况。两个设计方案里,惠农网网站是已经做好的 ASP.NET 课程的课程设计作业,而简单的选课系统则必须从头进行设计。选择惠农网
23、网站则势必能够节省不少时间与工作量。但是在之前课程设计评析是老师就已经说过,惠农网网站的信息与我们的生活并不太贴近,做需求分析时得出的功能性需求不够周详或是有所遗漏,所以设计方案选择上不是很好。除此之外,在做惠农网网站设计的时候,有许多技术我都不是很熟悉(比如数据库读取与存入技术) ,必须要靠请教同学才能够将问题解决。所以做出来的网站的整体功能更像一个静态网站。而且在设计惠农网网站的时候我并不会使用 CSS 模板技术,网站的整体结构只能用 和空格键来进行排版。总的来说网站的总体设计效果并不好。所以我打算选择一个新的主题来进行设计。以来可以熟悉技术,而来可以通过作业来让自己自学些新的技术,进一步
24、掌握 ASP.NET C#语言编程技术。于是我选择了重新编写一个简单的学生选课系统。系统完成了,虽然依然存在许多问题。比如系统的主界面太过简洁,用户组设置太少,系统的功能性需求太简单等,但是在这次系统设计过程中,我经过自学了解并且使用了CSS模板的基本应用。同时经过对学生选课信息的存入与读出更加熟练的使用了数据库存取技术。通过教师对课程信息的更新功能,我学会了使用GridView的数据绑定和更新功能。通过发布课程功能,学会了使用Detailsview来进行数据库信息插入的功能,通过将用户名绑定到整个系统中,我了解了session语句的应用,通过区别学生和老师用户的显示界面,我使用了RadioB
25、utton来进行控制,并通过 if语句和Response.Redirect语句实现页面的跳转。所以虽然系统设计的功能并没有增加多少,但是我从其中学会使用的东西更多了,这就是付出的回报吧。通过这次系统的设计,我明白了需求分析的周详与完善的重要性,在系统设计初期画出的E-R图中只有学生实体。但在后来的设计过程中感觉只有学生实体太过简单,于是又加入了教师实体。在设计完成后,我想要对E-R图进行修改感觉很难办,只能勉为其难的把教师和学生都编为用户实体。也因为这样,系统的功能很简单。系统的主要缺点在于网站的功能模块太简单(只有学生和教师两个用户组的功能模块) 。在学生选课功能模块没有学生课程考试成绩的查
26、询,没有删除选课信息等功能,同时获取的课程信息太少(只有课程名和用户名)所以不能够导出学19生的课程表信息。而在教师功能模块没有学生课程考试成绩登记,没有对学生的评价功能,也没有导出选课学生信息表的功能。所以这是个有待改进的学生选课系统,不能满足学校的选课信息化需求。参考文献1 崔淼、关六三、彭炜 , ASP.NET 程序设计教程(C#版)上机指导与习题解答 ,机械工业出版社,2010 年 8 月2 张昌龙、 辛永平 , ASP.NET 4.0 从入门到精通 ,机械工业出版社,2011 年 1 月3 王超、潘杨、张维维通用范例开发金典 ,电子工业出版社,2008 年 6 月第一次印刷。4 田增国 , 计算机网络技术与应用简明教程 ,清华大学出版社,2007 年 12 月5 俞海英、伍红兵、胡勇强、魏涛、龙瑞 , 计算机网络技术与应用(第二版) ,清华大学出版社,2010 年 7 月。6 朱玉超、鞠艳、王代勇, ASP.NET 项目开发教程 ,电子工业出版社,2008 年7 冯胜安, 网络操作系统-Windows Server 2003 系统与应用 ,电子工业出版社,2008 年 6 月8 陈伟 , SQL Server 2005数据库应用与开发教程 ,清华大学出版社,2007年5月。9 蒋培、王笑梅 , ASP.NET Web程序设计 ,清华大学出版社,2007年6月。