《数据结构课程设计报告---学生选课系统》由会员分享,可在线阅读,更多相关《数据结构课程设计报告---学生选课系统(30页珍藏版)》请在金锄头文库上搜索。
1、数据库系统原理课程设计报告数据库系统原理课程设计报告学生选课系统学生选课系统一一.引言引言1.1 问题描述问题描述系统功能的基本要求系统功能的基本要求学生在校期间除了要修一些必修课之外,还要选修一些课程学习。这就 需要进行课程选择,所以我们试设计一个学生选课系统,这可以既便于学 生进行老师和课程选择,也方便老师查看选择自己所教课程的情况,管理员 既可以对教师带课进行安排也可以对课程进行安排。1.2 开发环境和运行环境开发环境和运行环境学生选课系统这运用了当前最流行的 SQL SERVER2005 和 VS2010 运行和 开发的。 1.库、基本表的建立和修改:在 SQL-SERVER 环境下用
2、 CREATE TABLE 建立以及库中基本表。 2.数据加载:用手工录入实现基本表的数据加载。 3.单表查询以及多表查询:在建立的基本表中使用 select 基本格式和 聚集函数;设计合适的视图,实现多表查询。 4.单表删除以及多表删除:在建立的基本表中使用 delete 基本格式和关 联函数,实现多表删除。 5.单表插入:在建立的基本表上使用 insert 基本格式,实现表的插入。二需求分析二需求分析2.1 系统功能基本的要求系统功能基本的要求(1)该系统中设置三个角色,管理员,教师和学生。 (2) 每个用户需要根据自己的用户名、密码以及角色登录系统。 (3) 管理员角色权限为:创建教师、
3、学生用户,填写和修改用户信息。录入 课程信息供学生选课时使用。 (4) 教师角色权限为:登录后只能看到自己所带的选课情况,同时可以添加 或修改自己所带课程的学生成绩,教师无权限修改其他老师所带课程的 学生成绩。 (5)学生角色权限为:登录后可以看到自己的选课情况,可以对学校现有的课 程进行查询,同时进行选课或者是退课。2.2 安全与完整性要求:安全与完整性要求:(1)安全性要求a系统应设置访问用户的标识以鉴别是否是合法用户,并要求合法用户设置其密码,保证用户身份不被盗用; b. 系统应对不同的数据设置不同的访问级别,限制访问用户可查询和处理 数据的类别和内容; (2)完整性要求a. 各种信息记
4、录的完整性,信息记录内容不能为空;b. 各种数据间相互的联系的正确性; c. 相同的数据在不同记录中的一致性。2.3 系统功能的设计系统功能的设计要求能够根据用户登录的不同角色查看和实现不同操作,学生角色可以查 看可选课程和代课老师的信息,可以完成选择课程;教师角色可以查看自己所 带课程并可以查看所选择自己代课的学生信息并可以为其添加成绩;管理员角 色可以添加或学生、老师,院系和课程。 三三E-R 图设计图设计四创建表的代码4.1 学生表CREATE TABLE CoursTB (CoursNO varchar(20),CoursName varchar(50),CoursType varch
5、ar(50) ,SumPoint smallint DEFAULT NULL,PRIMARY KEY (CoursNO) ) ;4.2 课程表CREATE TABLE stutb (StuNO varchar(20) ,StuName varchar(20) ,StuClass varchar(40) NOT NULL,StuSdept varchar(40) ,StuMajor varchar(40) NOT NULL,PRIMARY KEY (StuNO),FOREIGN KEY (StuNO) REFERENCES UserTB (UserNO) ON DELETE CASCADE ON
6、 UPDATE CASCADE )4.3 教师表CREATE TABLE TechTB (TechNO varchar(20) NOT NULL,TechName varchar(20) NOT NULL,TechSdept varchar(40) NOT NULL,TechMajor varchar(40) NOT NULL,PRIMARY KEY (TechNO),FOREIGN KEY (TechNO) REFERENCES UserTB (UserNO) ON DELETE CASCADE ON UPDATE CASCADE ) ;44 教师课程表CREATE TABLE TechCo
7、urse (TechNO varchar(20) NOT NULL ,CoursNO varchar(20) NOT NULL,PRIMARY KEY (TechNO,CoursNO),FOREIGN KEY (TechNO) REFERENCES TechTB(TechNO) ON DELETE CASCADE ON UPDATE CASCADE,FOREIGN KEY (CoursNO) REFERENCES CoursTB(CoursNO) ON DELETE CASCADE ON UPDATE CASCADE ) ;4.5 用户表CREATE TABLE UserTB (UserNO
8、varchar(20) NOT NULL,PSN varchar(10) DEFAULT NULL,Pwd varchar(20) DEFAULT NULL,PRIMARY KEY (UserNO) )4.6 学生选课表CREATE TABLE StuTechCoursTB (StuNO varchar(20) NOT NULL DEFAULT ,TechNO varchar(20) NOT NULL DEFAULT ,CourNO varchar(20) DEFAULT ,getPoint smallint DEFAULT NULL,PRIMARY KEY (StuNO,TechNO,Cou
9、rNO),FOREIGN KEY (StuNO) REFERENCES UserTB(UserNO) ON DELETE CASCADE ON UPDATE CASCADE,-FOREIGN KEY (TechNO) REFERENCES UserTB(UserNO) ON DELETE CASCADE ON UPDATE CASCADE,FOREIGN KEY (CourNO) REFERENCES CoursTB(CoursNO) ON DELETE CASCADE ON UPDATE CASCADE );五源程序代码五源程序代码/*下面是关于数据库操作例子的部分代码,所有数据库相关的增删
10、该查全部下面是关于数据库操作例子的部分代码,所有数据库相关的增删该查全部 包含在代码中,由于代码太多这里只能列举一部分包含在代码中,由于代码太多这里只能列举一部分*/ / 下面是一个关于数据库管理先关的类下面是一个关于数据库管理先关的类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Data.Sql; using System.Data.SqlClient; using System.Configurati
11、on; namespace DBManage class DbHelpprivate SqlConnection SqlConn;private SqlCommand SqlCmd;private SqlDataReader Reader;private SqlDataAdapter SqlAdapter;public DbHelp()string ConnStr = ConfigurationSettings.AppSettings“ConnStr“;SqlConn = new SqlConnection(ConnStr);SqlCmd = new SqlCommand(); public
12、string ReturnOneData(string sql)string tempData = “;if(ReturnReader(sql) = null)return null;if (Reader.Read()tempData = Reader0.ToString();CloseReader();return tempData;public SqlDataReader ReturnReader(string sql)Reader = null;SqlCmd.Connection = SqlConn;SqlCmd.CommandText = sql;tryif (SqlConn.Stat
13、e = ConnectionState.Closed)SqlConn.Open();Reader = SqlCmd.ExecuteReader();catchSqlConn.Close();return Reader;public void CloseReader()if (!Reader.IsClosed)Reader.Close();if (SqlConn.State = ConnectionState.Open)SqlConn.Close();public bool NoReturnQuery(string sql)SqlCmd.CommandText = sql;SqlCmd.Conn
14、ection = SqlConn;tryif (SqlConn.State = ConnectionState.Closed)SqlConn.Open();SqlCmd.ExecuteNonQuery();SqlConn.Close();catchSqlConn.Close();return false;return true;public DataSet ReturnDataSet(string sql)DataSet TempDataSet=new DataSet() ;trySqlAdapter = new SqlDataAdapter(sql,SqlConn);SqlAdapter.F
15、ill(TempDataSet); catch TempDataSet = null;return TempDataSet; using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms;namespace MainFormSpace static class ProgramSTAThreadstatic void Main()Application.EnableVisualStyles();Application.SetCompatibleTextRenderingD
16、efault(false);LognForm logn = new LognForm();logn.ShowDialog();if (LognForm.ChargePass()Application.Run(new MainFormSpace.MainForm(LognForm.GetUserNO(),LognForm.GetUserType(); using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Data.SqlClient; using System.Windows.Forms;names