高校选课系统的设计与实现.docx
- 文档编号:8197470
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:26
- 大小:725.95KB
高校选课系统的设计与实现.docx
《高校选课系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《高校选课系统的设计与实现.docx(26页珍藏版)》请在冰豆网上搜索。
高校选课系统的设计与实现
目录
第1章概述1
1.1选题背景1
1.2选课系统简介1
第2章相关技术简介3
2.1C#语言简介3
2.2数据库系统概述3
第3章系统分析与设计6
3.1系统的需求分析6
3.2系统功能模块7
3.3数据库设计8
第4章系统实现15
4.1登陆页面设计15
4.2学生功能模块17
4.3教师功能模块19
4.4管理员功能模块20
第5章系统测试与运行23
5.1测试的目的和方法23
5.2测试及测试结果23
5.3测试结果分析26
结束语27
参考文献28
第1章概述
1.1选题背景
随着科技的发展,校园网技术迅速发展。
对于高校而言,建立校园网的作用一般有以下两方面:
一是外部网络连接,实现与网络连接,提供本校的信息服务,融入世界信息潮流;了解外面世界,加强学术交流与合作。
另一个就是建立本校的管理信息系统,实现管理的科学化、现代化;利用现代化的手段提高教学质量和管理水平。
选课系统属于教学信息管理系统一部分。
随着高等教育的发展和社会需要,各高校尽多地开设各类课程,以拓宽学生的知识面,培养学生的个性和创造能力,提高学生的综合素质。
但由于传统的人工选课数据是经过多级手工处理后上报教务处的,效率较低,而选课时烦琐的工作也给教务管理部门带来了很大的工作量,因此容易出错。
另一方面,学生对课程的迟选、补选、改选操作非常麻烦,同时教学管理部门无法掌握选课人数的变化和学生分布的情况,难以进行动态调整。
传统的选课方式已经不适应现代教务教学的改革和发展,迫切需要一种新的选课方式。
为使教学管理工作的科学化、规范化,就必须采用计算机辅助管理。
计算机管理使选课更加高效准确,省去了大量的人力劳动,提高了教学管理的信息化水平。
为了切实解决了课程管理中存在的诸多问题,提高教务管理的水平和质量,使校选课的管理更加规范,经过几个月的努力,我设计开发了高校选课系统。
此系统基本上实现了一些选课相关的功能。
1.2选课系统简介
本系统面向全校师生和管理人员,是高校日常教学、教务管理的应用软件。
该系统的目的主要是实现学生选择选修课的公平性和方便性,让他们可以选择课程,删除选课,查询选修课程信息;对于任课教师,可以提交、修改及确认所任选课成绩;对于教学管理部门,能够实现学生数据的导入、选修课表的录入、选课系统的合理配置,如每学期每人选课最大数目、每门课程的最大容量、选课时间及避开上课地点与时间的冲突等。
第2章相关技术简介
2.1C#语言简介
C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。
它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏和模版,不允许多重继承)。
C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。
并且C#成为ECMA与ISO标准规范。
C#看似基于C++写成,但又融入其它语言如Pascal、Java、VB等。
微软c#语言定义主要是从C和C++继承而来的,而且语言中的许多元素也反映了这一点.C#在设计者从C++继承的可选选项方面比Java要广泛一些(比如说struts),它还增加了自己新的特点(比方说源代码版本定义).但它还太不成熟,不可能挤垮Java.C#还需要进化成一种开发者能够接受和采用的语言.而微软当前为它的这种新语言大造声势也是值得注意的.目前大家的反应是:
"这是对Java的反击."
C#更像Java一些,虽然微软在这个问题上保持沉默.这也是意料中的事情,我觉得,因为Java近来很成功而使用Java的公司都报告说它们在生产效率上比C++获得了提高.
2.2数据库系统概述
数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统、应用系统、数据库管理员和用户构成。
应当指出的是,数据库的建立、使用和维护等工作只靠一个DBMS远远不够,还要有专门的人员来完成,这些人被称为数据库管理员。
在一般不引起混淆的情况下常常把数据库系统简称为数据库。
数据库技术是应数据管理任务的需要而产生的。
随着计算机技术的发展,其应用远远地超出了这个范围。
在应用需求的推动下,在计算机硬件,软件发展的基础上,数据管理技术经历了人工管理、文件系统、数据库系统三个阶段。
与人工管理和文件系统相比,数据库系统的特点主要有以下几个主面:
1.数据的结构化;
2.数据的共享性高,冗余度低,易扩充;
3.数据独立性高;
4.数据由DBMS统一管理和控制。
目前,数据库己经成为现代信息系统的不可分离的重要组成部分[11]。
具有数百万甚至数十亿字节信息的数据库己经普遍存在于科学技术、工业、农业、商业、服务业和政府部门的信息系统。
20世纪80年代后不公在大型机上,在多数微机上也配置了DBMS,使数据库技术得到了更加广泛的应用和普及,是计算机领域中发展最快的技术之一。
SQLServer2000的特性包括:
1.Internet集成。
SQLServer2000数据库引擎提供完整的XML支持。
它还具有构成最大的Web站点的数据存储组件所需的可伸缩性、可用性和安全功能。
SQLServer2000程序设计模型与WindowsDNA构架集成,用以开发Web应用程序,并且SQLServer2000支持EnglishQuery和Microsoft搜索服务等功能,在Web应用程序中包含了用户友好的查询和强大的搜索功能。
2.可伸缩性和可用性。
同一个数据库引擎可以在不同的平台上使用,从运行MicrosoftWindows®98的便携式电脑,到运行MicrosoftWindows2000数据中心版的大型多处理器服务器。
SQLServer2000企业版支持联合服务器、索引视图和大型内存支持等功能,使其得以升级到最大Web站点所需的性能级别。
3.企业级数据库功能。
SQLServer2000关系数据库引擎支持当今苛刻的数据处理环境所需的功能。
数据库引擎充分保护数据完整性,同时将管理上千个并发修改数据库的用户的开销减到最小。
SQLServer2000分布式查询使您得以引用来自不同数据源的数据,就好象这些数据是SQLServer2000数据库的一部分,同时分布式事务支持充分保护任何分布式数据更新的完整性。
复制同样使您得以维护多个数据复本,同时确保单独的数据复本保持同步。
可将一组数据复制到多个移动的脱接用户,使这些用户自主地工作,然后将他们所做的修改合并回发布服务器。
4.易于安装、部署和使用。
SQLServer2000中包括一系列管理和开发工具,这些工具可改进在多个站点上安装、部署、管理和使用SQLServer的过程。
SQLServer2000还支持基于标准的、与WindowsDNA集成的程序设计模型,使SQLServer数据库和数据仓库的使用成为生成强大的可伸缩系统的无缝部分。
这些功能使您得以快速交付SQLServer应用程序,使客户只需最少的安装和管理开销即可实现这些应用程序。
第3章系统分析与设计
3.1系统的需求分析
本系统中数据库采用MicrosoftSQLServer2000作为数据库工具。
数据库是网站的核心,数据库设计的合理与否对网站的建设有着至关重要的影响。
一个良好的数据库开发过程一般是先系统分析,再逻辑设计,然后物理实现。
系统分析中分析数据库用户需求,并画出E-R图直观地表示出数据库系统的需求。
逻辑设计中根据系统分析设计的一个关系模型。
物理设计为逻辑设计中的数据模型选取一个最合理的应用环境的物理结构,通常选取一个常用数据库软件,用数据库软件创建与逻辑设计中数据模型对应的数据库。
针对学生选课系统的需求,总结如以下信息:
用户分学生用户、教师用户和管理员用户。
1.一个院系包括很多专业。
2.一个专业包括很多学生。
3.一个专业包括多门课程。
4.一个专业包括多个班级。
5.一个院系对应多个教师。
6.一门课程对应一位教师,一位教师可以教多门课程。
7.一个学生可选多门课程,每门课程可以由多名学生供选学。
经过对上述系统功能的分析和需求总结,设计如下数据项:
管理员信息,包括用户名和密码。
教师,包括教师名教师工号、所属院系等。
学生,包括学生编号、学生姓名、性别、所属院系、专业、班级等。
院系,包括院系名称、院系号。
专业,包括专业名称、专业号所属院系。
课程,包括课程名称、课程描述、所属专业及所属教师。
3.2系统功能模块
本系统分为三层,表现层通过统一的接口向数据访问层发送请求,业务逻辑层将请求按照一定按照一定逻辑规则处理后进入数据库操作,然后将从数据库返回的数据集合封装成对象的形式返回到表现层。
通过这样的数据处理流程,用户表现层表现层甚至可以不知道数据库是结构,只要维护与数据的访问层之间的接口即可。
这种方式在一定程度上增加了数据库的安全性,同时也降低了对用户表现层开发人员的要求,因为表现层不需要进行任何关于数据库的操作。
根据上述的分析,可以描述出系统的功能模块图。
分别从管理员界面、学生界面、教师界面对功能模块进行描述。
图3-1管理员界面的功能模块
图3-2教师界面的功能模块图图3-3学生界面的功能模块
3.3数据库设计
3.3.1数据库设计原则
数据库的设计是指对于一个给定的应用环境,构造最有效的数据库模式,建立数据及应用系统,实质能够有效地存储数据,满足用户的需求,数据库设计是在数据库管理系统支持下进行的。
3.3.2数据库概念结构设计
在用户需求分析的基础上,系统设计员可以建立起数据库的概念模型。
概念模型主要是用于反映用户的现实环境和需求,它独立于具体的数据库管理系统,并且于数据库怎样实现也无关。
建立概念模型常用的工具为实体-联系图(E-R图)。
在实体-联系图中,实体型通常以写明实体名的长方形来表示;实体间的联系则以表明联系名的菱形来表示。
通过使用连线将菱形与有关实体相连接,便可画出实体-联系图。
综合分析本系统要完成的主要功能,从系统中我们可以得到下面的关键数据实体对象:
学生信息实体,教师信息实体,专业信息实体,班级信息实体,专业选修课程,专业选修课上课信息,学生选课信息,将这些实体以及它们之间的联系以实体属性图和实体联系图表示出来。
学生用户信息实体E-R图如图3-4所示
教师用户实体E-R图如图3-5所示
管理员信息实体E-R图如图3-6所示
班级信息实体E-R图如图3-7所示
专业信息实体E-R图如图3-8所示
院系信息实体E-R图如图3-9所示
选修课程信息实体E-R图如图3-10所示
已选课程信息实体E-R图如图3-11所示
3.3.3数据库表格设计
表3-1学生信息表
注释
列名
字段类型
是否为空
是否主键
学号
ST_StudentID
Int
Notnull
是
姓名
ST_StudentName
Varchar(50)
null
否
性别
ST_StudentSex
Char
(2)
null
否
院系编号
ST_DeptID
Int
null
否
专业编号
ST_MajorId
Int
null
否
班级编号
ST_ClassID
Int
null
否
表3-2教师信息表
注释
列名
数据类型
是否为空
是否主键
教师号
ST_TeacherID
Int
Notnull
是
教师名
ST_TeacherName
Varchar(50)
Null
否
性别
ST_Tsex
Char
(2)
null
否
院系编号
ST_DeptID
Int
null
否
表3-3管理员信息表
注释
列名
数据类型
是否为空
是否主键
管理员编号
ST_Adnumber
Int
Notnull
是
姓名
ST_AdName
Varchar(50)
Null
否
性别
ST_AdSex
Char
(2)
null
否
表3-4班级信息表
注释
列名
数据类型
是否为空
是否主键
班级编号
ST_ClassID
Int
Notnull
是
班级名
ST_ClassName
Varchar(Max)
null
否
专业编号
ST_MajorID
Int
null
否
表3-5专业信息表
注释
列名
数据类型
是否为空
是否主键
专业编号
ST_MajorID
Int
Notnull
是
专业名
ST_MajorName
Varchar(Max)
null
否
院系编号
ST_DeptID
Int
null
否
表3-6院系信息表
注释
列名
数据类型
是否为空
是否主键
院系编号
ST_DeptID
Int
Notnull
是
院系名
ST_DeptName
Varchar(Max)
null
否
表3-7选修课程信息表
注释
列名
数据类型
是否为空
是否主键
课程编号
ST_CourseID
Int
Notnull
是
课程名称
ST_CourseName
Varchar(Max)
null
否
课程性质
ST_CourseDes
Varchar(Max)
null
否
教师编号
ST_TeacherID
Int
null
否
上课地点
ST_CourseTime
Varchar(Max)
null
否
上课时间
ST_Caddress
Varchar(50)
null
否
表3-8已选课程信息表
注释
列名
数据类型
是否为空
是否主键
学号
ST_StudentID
Int
Notnull
是
课程编号
ST_CourseID
Int
null
否
教师编号
ST_TeacherID
Int
null
否
第4章系统实现
4.1登陆页面设计
登陆界面允许学生,教师,管理员不同用户登陆。
用户需要输入用户号和密码,只有用户号和密码相匹配时才能进入下级界面。
如下图:
图4-2用户登陆界面
代码实现:
//链接数据库
stringconnectionString="DataSource=.;InitialCatalog=ST_WebCourse;UserID=sa;Password=sa";
SqlConnectionconnection=newSqlConnection(connectionString);
connection.Open();
stringqueryString="selectcount(*)fromST_UserswhereST_ID="+
Convert.ToInt32(textBox1.Text)+"andST_Pass='"+textBox2.Text+"'";
//获取表中数据
DataSetpDataSet=newDataSet();
SqlDataAdapterpDataAdapter=newSqlDataAdapter(queryString,connection);
pDataAdapter.Fill(pDataSet);
check=pDataSet.Tables[0].Rows[0].ItemArray[0].ToString();
//判断用户名和密码是否正确
if(Convert.ToInt32(check)==0)
{
MessageBox.Show("您输入的用户ID或密码不正确,请重新输入");textBox1.Focus();
}
else
{
stringtype="selectst_type,ST_IDfromST_UserswhereST_ID="+Convert.ToInt32(textBox1.Text)+"";
if(comboBox1.Text=="学生")
{
Students1=newStudent();
s1.Show();
this.Visible=false;
}
else
{
MessageBox.Show("您输入的用户ID或密码不正确,请重新输入");
textBox1.Focus();
}
}
4.2学生功能模块
4.2.1系进入选课
学生进入选课界面后,从下拉菜单中选择自己喜欢的选修课,界面下方会出现课程的详细信息。
学生却任选课后,已选课就会在面板中显示,也可以删除一选课程,但学生限制最多选三门。
图4-3学生选课功能界面
代码实现:
if(rcount==0)
{
stringcharu="insertintoST_xuanke(ST_SNumber,ST_CNumber,ST_Tnumber)values
('"+DataLook.getTable(cha,connectionString).Rows[0].ItemArray[0]+"',"+DataLook.getTable(queryString,connectionString).Rows[0].ItemArray[0]+","+DataLook.getTable(queryString,connectionString).Rows[0].ItemArray[1]+")";DataChange.setData(charu,connectionString);
MessageBox.Show("选课成功!
课程已填入课表");
this.listBox1.Items.Add(DataLook.getTable(listbianliang,connectionString).Rows[0].ItemArray[0].ToString());
}else{MessageBox.Show("此课程已选,请选择其它课程");}
4.2.2查看课表
界面中显示学生已经选修成功的所有课程,极其课程的详细信息。
图4-4查看课表功能界面
代码实现:
for(inti=0;i { stringxieru=DataLook.getTable(chakan,connectionString).Rows[i].ItemArray[0].ToString()+""+DataLook.getTable(chakan,connectionString).Rows[i].ItemArray[1].ToString()+""+DataLook.getTable(chakan,connectionString).Rows[i].ItemArray[2].ToString()+""+DataLook.getTable(chakan,connectionString).Rows[i].ItemArray[3].ToString() +""+DataLook.getTable(chakan,connectionString).Rows[i].ItemArray[4].ToString();this.listBox1.Items.Add(xieru); } 4.3教师功能模块 在教师登陆后界面中,教师可以查询自己的信息,修改密码,也可以查询自己带的课程信息以及选修自己课程的学生信息 图4-5教师功能模块界面 代码实现: intcount=Convert.ToInt32(DataLook.getTable(scount,connectionString).Rows[0].ItemArray[0]); for(inti=0;i {stringxieru=DataLook.getTable(chakan,connectionString).Rows[i].ItemArray[0].ToString() +""+DataLook.getTable(chakan,connectionString).Rows[i].ItemArray[1].ToString() +""+DataLook.getTable(chakan,connectionString).Rows[i].ItemArray[2].ToString() +""+DataLook.getTable(chakan,connectionString).Rows[i].ItemArray[3].ToString() +""+DataLook.getTable(chakan,connectionString).Rows[i].ItemArray[4].ToString(); this.listBox1.Items.Add(xieru);} 4.4管理员功能模块 4.4.1学生信息管理 管理员可以管理学生的信息,包括添加、删除、修改学生信息。 图4-6学生信息管理界面 代码实现: stringid=this.dataGridView1.CurrentRow.Cells[1].Value.ToString(); //删除数据 stringsql="deletefromST_StudentInfowhereST_StudentNumber="+id; DBAccess.Execute(sql); //显示数据 sql="select*fromST_StudentInfo"; this.dataGridView1.DataSource=DBAccess.GetTable(sql); 4.4.2教师信息管理 管理员可以管理教师的信息,包括添加、删除、修改教师信息。 图4-7教师信息管理界面 代码实现: stringid=this.dataGridView1.CurrentRow.Cells[1].Value.ToString(); //删除数据 stringsql="deletefromST_StudentInfowhereST_StudentNumber="+id; DBAccess.Execute(sql); //显示数据 sql="select*fromST_StudentInfo"; this.dataGridView1.DataSource=DBAccess.GetTable(sql); 4.4.3课程信息管理 管理员可以管理课程的信息,包括添加、删除、修改课程。 图4-8课程信息管理界面 代码实现: privatevoidbutton7_Click(obj
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高校 选课 系统 设计 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)