学生选课信息管理系统

学生选课信息管理系统


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条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信