2024年4月17日发(作者:)
学生选课信息管理系统
一、学生选课信息管理系统简介
传统的手工选课不仅复杂,也牵涉了很多的人力,对管理也造成了诸多不
变,而借助网上选课系统,学生在规定选课时间段内,可以不受地点和时间的
限制完成选修课的申请,而学校也可以方便地对系统进行管理和控制,提高工
作效率。
学生选课管理系统的用户包括系统管理员、教师和学生。系统管理员负责
日常的管理工作,如各种基本信息的录入、修改、删除等操作;教师使用该系
统可完成教学班信息查询和成绩管理;学生使用该系统主要完成选课和成绩查
询等操作。
经过调研与分析,高等院校学生选课管理系统主要应具有以下功能:
(1) 课程信息管理。课程信息管理包括课程信息数据的录入、修改与删除等功
能;
(2) 学生信息管理。学生信息管理包括学生信息的录入、修改与删除等功能;
(3) 教师信息管理。教师信息管理包括教师信息的录入、修改与删除等功能;
(4) 班级信息管理。学班级信息管理包括各班级信息的录入、修改与删除等功
能。
二、系统开发目标
本系统的目标就是实现学生在网上就可完成选课的全过程。其功能如下:
◆学生登陆验证密码功能
为了避免在选课时出现乱选、错选情况,该系统在设计时考虑对学生身份的合
法性进行验证,保证合法用户才能选课。
◆查看可供选择的课程,及上该课程教师的情况
学生能在网上查看课程的情况,如课程的介绍、课程有那些教师上。
◆选择某门课程
学生可查看当前自己已选课程、如果对某门课程不满意,可注销该课程,也
以查看当前某门课,某教师有那些学生选。
三、系统功能模块图
1
根据功能分析总结系统的体系结构,系统的功能模块如图3-1所示:
学生选课管理系统
学
生
信
息
管
理
老
师
信
息
管
理
学
生
选
课
管
理
学
生
基
本
信
息
管
理
学
生
班
级
管
理
老
师
基
本
信
息
管
理
老
师
任
课
管
理
课
程
设
计
管
理
选
课
情
况
管
理
针对各个模块不同的表实现添加记录、修改记录、删除记录、以及
查询显示记录等功能
图3-1 系统的功能模块图
在本系统中,可以把功能模块分为以下2个功能集合来描述:
(1)基本信息管理功能集合
包括班级信息管理和学生信息管理等功能模块,此集合中功能模块的关系
如图3-2所示
班级信息管理
学生基本信息管理 学生选课管理
教师任课管理
老师基本信息管理
图3-2 基本信息管理功能图
学生选课管理
2
(2)用户管理及权限控制功能集合
包括用户信息管理、权限控制等模块。在本系统中,用户管理模块的功能
比较简单。在系统初始化时,有两个默认的用户,系统管理员用户名为admin,
普通用户名为user,手动添加到数据库中,其默认密码为123。admin用户的
权限为创建用户、修改用户信息和删除用户,而普通用户只能修改自己的密码
或查询信息。
用户管理功能模块的关系如图3-3所示:
图3-3 用户管理功能模块的关系图
四、系统开发、运行环境要求
Windows XP + SQL Server2000 :
SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的最
新版本,该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进
的功能,具有使用方便、可伸缩性好以及与相关软件集成程度高等优点,可跨越从
运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型
多处理器的服务器等多种平台使用。
运行SQL Server 2000 的最低硬件和软件需求:
(1) 计算机
Intel 兼容计算机,Pentium 166 MHz 以上。
(2) 内存RAM
Enterprise:版本64 MB;
Standard:版本32 MB。
(3) 硬盘空间
系
统
用
户
信
息
管
理
修改自身的用户名和密码
创建、修改和删除普通用户信息
修改Admin用户的密码
3
SQL Server 2000:
• 完全安装(Full) 180 MB;
• 典型安装(Typical) 170 MB;
• 最小安装(minimum 65) MB;
• 只安装管理工具(Client tools only) 90 MB;
• Analysis Services:50 MB;
• English Query:12 MB。
五、数据库概念设计(E-R图)
1) 学生实体E-R图
学 生
学号
班 级 号
姓名
性别
出生日期
图5-1学生实体E-R图
2)班级实体E-R图
班级
系别
班级号
班级名称
所属专业
图5-2 班级实体E-R图
4
(
(
(3)课程实体E-R图
图5-3 课程实体E-R图
(4)教师实体E-R图
教师号
出生日期
职称
教师
课程名称
学分
课程号
课 程
教师姓名
性别
图5-4 教师实体E-R图
(5)各实体之间的E-R图
成绩
n
图5-5 实体E-R图
六、数据库逻辑设计(分几个关系模式)
(1)学生基本表Student,如下表所示:
授课
课程
1
n
教师
m
选修
n
学生
5
表6-1学生基本表
字段名称
s_no
类 型
char
宽 度
6
允许空值
NOT
NULL
class_no char 6 NOT
NULL
s_name varchar 10 NOT
NULL
s_sex char 2
男或女
性别
出生日期
学生姓名
班级号
主 键 说 明
是 学号
s_birthday datetime
(2)班级数据表class,如下表:
表6-2 班级数据表
字段名称 类 型 宽 度 允许空值 主 键 说
明
class_no char 6 NOT
NULL
class_name char 20 NOT
NULL
class_special varchar 20
班级姓
名
所属专
业
class_dept
(3)课程数据表,如下表:
表6-3课程数据表
6
是 班级号
datetime 20 系别
字段名称 类 型 宽 度 允许空值 主 键 说
明
Course_no char 5 NOT
NULL
是 课程号
Cours_name char 20 NOT
NULL
课程名
Cours_score nemeric
6,2 学分
(4)选修课程情况数据表Choice,如下表:
表6-4 选修课程情况数据表
字段名称
s_no
类 型
char
宽 度
6
允许空值
NOT
NULL
Cours_no char 5 NOT
NULL
score
(5)教师数据表Teacher,如下表:
表6-5 教师数据表
字段名称
t_no
类 型
char
宽 度
6
允许空值
NOT
NULL
t_name varchar 10 NOT
NULL
t_sexl char 2
男或女
性别
出生日期
职称
是 教师姓名
主 键 说 明
是 教师号
nemeric 6,2 成绩
课程名
主 键 说 明
是 学号
t_birthday datetime
t_title
char 10
7
(6)教师任课情况表Teaching,如下表:
表6-6教师任课情况表
字段名称 类 型 宽 度
6
6
允许空值 主 键 说 明
是
课程号
教师号
course_no char
t_no
七、数据库物理设计
char
物理结构依赖于所选用的数据库管理系统。
八、系统主界面及主要代码
(1)主界面窗口:
主要代码:
using System;
using c;
using entModel;
using ;
using g;
using ;
using ;
8
namespace StudentIMS
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void 学生管理ToolStripMenuItem_Click(object sender,
EventArgs e)
{
StudentForm StudentFrm = new StudentForm();
();
}
private void 班级管理ToolStripMenuItem1_Click(object sender,
EventArgs e)
{
ClassForm ClassFrm = new ClassForm();
();
}
private void 学生查询ToolStripMenuItem_Click(object sender,
EventArgs e)
{
StudentQueryForm StudentQueryFrm = new
StudentQueryForm();
();
9
}
private void 教师管理ToolStripMenuItem1_Click(object sender,
EventArgs e)
{
TeacherForm TeacherFrm = new TeacherForm();
();
}
private void 教师查询ToolStripMenuItem_Click_1(object
sender, EventArgs e)
{
TeacherQueryForm TeacherQueryFrm = new
TeacherQueryForm();
();
}
private void 班级查询ToolStripMenuItem_Click(object sender,
EventArgs e)
{
ClassQueryForm ClassQueryFrm = new ClassQueryForm();
();
}
private void 课程管理ToolStripMenuItem1_Click(object sender,
EventArgs e)
{
CourseForm CourseFrm= new CourseForm();
();
10
}
private void 课程查询ToolStripMenuItem_Click(object sender,
EventArgs e)
{
CourseQueryForm CourseQueryFrm = new CourseQueryForm();
();
}
EventArgs e)
{
ChoiceForm ChoiceFrm =
();
}
EventArgs e)
{
ChoiceQueryForm
();
}
EventArgs e)
{
TeachingForm TeachingFrm =
();
}
EventArgs e)
{
private void 选课管理ToolStripMenuItem1_Click(object sender,
new ChoiceForm();
private void 选课查询ToolStripMenuItem_Click(object sender,
ChoiceQueryFrm = new ChoiceQueryForm();
private void 任课管理ToolStripMenuItem1_Click(object sender,
new TeachingForm();
private void 任课查询ToolStripMenuItem_Click(object sender,
11
TeachingQueryForm TeachingQueryFrm = new
TeachingQueryForm();
();
}
}
}
(2)子窗口:
其功能是对学生的基本信息进行插入、删除、查询等管理。
主要代码:
using System;
using c;
using entModel;
using ;
using g;
using ;
12
using ;
using ent; //新加引用
namespace StudentIMS
{
public partial class StudentForm : Form
{
//下面这条语句根据实际配置修改
SqlConnection sqlcon = new
SqlConnection("server=localhost;uid=sa;pwd=;database=DB06061001and0
6061033");
public StudentForm()
{
InitializeComponent();
//初始化性别下拉列表框代码
S_("男");
S_("女");
//查找已定义好的班级号
string strSQL = "select class_no from class";
DataSet ds = new DataSet();
SqlDataAdapter myda = new SqlDataAdapter(strSQL, sqlcon);
();
(ds,"class");
();
DataTable dt = ["class"];
13
foreach (DataRow dr in )
{
Class_(dr["class_no"]);
}
}
private void BrowseBtn_Click(object sender, EventArgs e)
{
// string strSQL = "select * from student";
string strSQL = "select s_no 学号,class_no 班级号,s_name
姓名,s_sex 性别,s_birthday 出生年月from student";
DataSet ds = new DataSet();
SqlDataAdapter myda = new SqlDataAdapter(strSQL, sqlcon);
();
(ds, "student");
();
DataTable dt = ["student"];
urce = ["student"];
}
private void InsBtn_Click(object sender, EventArgs e)
{
if (S_().Length != 0)
{
string strSQL = "INSERT INTO
student(s_no,class_no,s_name,s_sex,s_birthday) VALUES
14
(";
strSQL = strSQL + "'" + S_() + "',";
strSQL = strSQL + "'" + Class_() + "',";
strSQL = strSQL + "'" + S_() + "',";
strSQL = strSQL + "'" + S_() + "',";
strSQL = strSQL + "'" + S_() +
"')";
();
SqlCommand cmd = new SqlCommand(strSQL, sqlcon);
eNonQuery();
();
}
}
private void DelBtn_Click(object sender, EventArgs e)
{
if (S_().Length != 0)
{
string strSQL = "DELETE FROM student";
strSQL = strSQL + " WHERE s_no='" + S_()
+ "'";
();
SqlCommand cmd = new SqlCommand(strSQL, sqlcon);
eNonQuery();
();
}
}
15
private void UpdateBtn_Click(object sender, EventArgs e)
{
if (S_().Length != 0)
{
string strSQL = "UPDATE student SET ";
strSQL = strSQL + "class_no=" + "'" +
Class_() + "',";
strSQL = strSQL + "s_name=" + "'" +
S_() + "',";
strSQL = strSQL + "s_sex=" + "'" + S_()
+ "',";
strSQL = strSQL + "s_birthday=" + "'" +
S_() + "'";
strSQL = strSQL + " WHERE s_no='" + S_()
+ "'";
();
SqlCommand cmd = new SqlCommand(strSQL, sqlcon);
eNonQuery();
();
}
}
private void FindBtn_Click(object sender, EventArgs e)
{
if (S_().Length != 0)
{
string strSQL = "select * from student" + " where s_no
16
='" + S_() + "'";
DataSet ds = new DataSet();
SqlDataAdapter myda = new SqlDataAdapter(strSQL,
sqlcon);
();
(ds, "student");
();
DataTable dt = ["student"];
strSQL = strSQL + "class_no" + "'" +
Class_() + "',";
strSQL = strSQL + "s_name=" + "'" +
S_() + "',";
strSQL = strSQL + "s_sex=" + "'" + S_()
+ "',";
strSQL = strSQL + "s_birthday=" + "'" +
S_() + "'";
strSQL = strSQL + " WHERE s_no='" + S_()
+ "'";
foreach (DataRow dr in )
{
S_ = ng(dr["s_no"]);
Class_ =
ng(dr["class_no"]);
S_ = ng(dr["s_name"]);
S_ = ng(dr["s_sex"]);
S_
17
=ng(Time(dr["s_birthday"]).ToShortDateS
tring());
}
}
}
private void ClearBtn_Click(object sender,
{
S_ = "";
Class_ = "";
S_ = "";
S_ = "";
S_ = "";
}
}
}
其他子窗口:
EventArgs e)
18
19
20
九、上机实验的收获、体会
通过这次实验设计的制作,使我对软件开发有了更深一步的了解。在软件
开发中应注意的问题和考虑的问题都能较好的做到。在这短短时间的自学中要
很好的应用这个工具还是有困难的,但也得到了不少自学经验,使我的自学能
力有了很大的提高。在开发过程中也遇到了不少难题,为了解决这些难题我查
阅各类相关书籍,同时请教老师和同学,不停地对编译程序进行测试,调试。
最终,得到了一个比较具有实用性和完整性的系统。但系统还存在问题,虽然
系统的基本功能已实现,但该系统还有许多不尽如人意的地方,与实际的管理
还有一定的差距。
参考文献
[1]王珊 萨师煊.数据库系统概论.北京:高等教育出版社,2006
[2]郑阿奇.SQL Server 实用教程.北京:电子工业出版社,2009
[3]Joseph Sack 著.SQL Server 2008实战.金迎春译.北京:人民邮电出版社, 2010
[4]赵松涛.深入浅出SQL Server 2005系统管理与应用开发.北京:电子工业出版社, 2009
[5]谭浩强.C程序设计.北京:清华大学出版社,2008
[6]严蔚敏,吴伟民.数据结构(C语言版).北京:清华大学出版社,2008
[7]陈松乔,任胜兵,王国军.现代软件工程.北京:清华大学出版社,2004
21
发布者:admin,转转请注明出处:http://www.yc00.com/web/1713315306a2224560.html
评论列表(0条)