学生选课信息管理系统.docx

上传人:b****5 文档编号:7253419 上传时间:2023-01-22 格式:DOCX 页数:22 大小:286.53KB
下载 相关 举报
学生选课信息管理系统.docx_第1页
第1页 / 共22页
学生选课信息管理系统.docx_第2页
第2页 / 共22页
学生选课信息管理系统.docx_第3页
第3页 / 共22页
学生选课信息管理系统.docx_第4页
第4页 / 共22页
学生选课信息管理系统.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

学生选课信息管理系统.docx

《学生选课信息管理系统.docx》由会员分享,可在线阅读,更多相关《学生选课信息管理系统.docx(22页珍藏版)》请在冰豆网上搜索。

学生选课信息管理系统.docx

学生选课信息管理系统

学生选课信息管理系统

一、学生选课信息管理系统简介

传统的手工选课不仅复杂,也牵涉了很多的人力,对管理也造成了诸多不变,而借助网上选课系统,学生在规定选课时间段内,可以不受地点和时间的限制完成选修课的申请,而学校也可以方便地对系统进行管理和控制,提高工作效率。

学生选课管理系统的用户包括系统管理员、教师和学生。

系统管理员负责日常的管理工作,如各种基本信息的录入、修改、删除等操作;教师使用该系统可完成教学班信息查询和成绩管理;学生使用该系统主要完成选课和成绩查询等操作。

经过调研与分析,高等院校学生选课管理系统主要应具有以下功能:

(1)课程信息管理。

课程信息管理包括课程信息数据的录入、修改与删除等功能;

(2)学生信息管理。

学生信息管理包括学生信息的录入、修改与删除等功能;

(3)教师信息管理。

教师信息管理包括教师信息的录入、修改与删除等功能;

(4)班级信息管理。

学班级信息管理包括各班级信息的录入、修改与删除等功能。

二、系统开发目标

本系统的目标就是实现学生在网上就可完成选课的全过程。

其功能如下:

◆学生登陆验证密码功能

为了避免在选课时出现乱选、错选情况,该系统在设计时考虑对学生身份的合法性进行验证,保证合法用户才能选课。

◆查看可供选择的课程,及上该课程教师的情况

学生能在网上查看课程的情况,如课程的介绍、课程有那些教师上。

◆选择某门课程

学生可查看当前自己已选课程、如果对某门课程不满意,可注销该课程,也以查看当前某门课,某教师有那些学生选。

三、系统功能模块图

根据功能分析总结系统的体系结构,系统的功能模块如图3-1所示:

图3-1系统的功能模块图

在本系统中,可以把功能模块分为以下2个功能集合来描述:

(1)基本信息管理功能集合

包括班级信息管理和学生信息管理等功能模块,此集合中功能模块的关系如图3-2所示

图3-2基本信息管理功能图

(2)用户管理及权限控制功能集合

包括用户信息管理、权限控制等模块。

在本系统中,用户管理模块的功能比较简单。

在系统初始化时,有两个默认的用户,系统管理员用户名为admin,普通用户名为user,手动添加到数据库中,其默认密码为123。

admin用户的权限为创建用户、修改用户信息和删除用户,而普通用户只能修改自己的密码或查询信息。

用户管理功能模块的关系如图3-3所示:

 

图3-3用户管理功能模块的关系图

四、系统开发、运行环境要求

WindowsXP + SQLServer2000 :

SQLServer2000是Microsoft公司推出的SQLServer数据库管理系统的最新版本,该版本继承了SQLServer7.0版本的优点同时又比它增加了许多更先进的功能,具有使用方便、可伸缩性好以及与相关软件集成程度高等优点,可跨越从运行MicrosoftWindows98的膝上型电脑到运行MicrosoftWindows2000的大型多处理器的服务器等多种平台使用。

运行SQLServer2000的最低硬件和软件需求:

(1)计算机

Intel兼容计算机,Pentium166MHz以上。

(2)内存RAM

Enterprise:

版本64MB;

Standard:

版本32MB。

(3)硬盘空间

SQLServer2000:

•完全安装(Full)180MB;

•典型安装(Typical)170MB;

•最小安装(minimum65)MB;

•只安装管理工具(Clienttoolsonly)90MB;

•AnalysisServices:

50MB;

•EnglishQuery:

12MB。

五、数据库概念设计(E-R图)

(1)学生实体E-R图

 

图5-1学生实体E-R图

(2)班级实体E-R图

图5-2班级实体E-R图

(3)课程实体E-R图

 

图5-3课程实体E-R图

(4)教师实体E-R图

图5-4教师实体E-R图

(5)各实体之间的E-R图

n

m

n

1

n

 

图5-5实体E-R图

六、数据库逻辑设计(分几个关系模式)

(1)学生基本表Student,如下表所示:

表6-1学生基本表

字段名称

类型

宽度

允许空值

主键

说明

s_no

char

6

NOTNULL

学号

class_no

char

6

NOTNULL

 

班级号

s_name

varchar

10

NOTNULL

 

学生姓名

s_sex

char

2

男或女

 

性别

s_birthday

datetime

 

出生日期

(2)班级数据表class,如下表:

表6-2班级数据表

字段名称

类型

宽度

允许空值

主键

说明

class_no

char

6

NOTNULL

 是

班级号

class_name

char

20

NOTNULL

 

班级姓名

class_special

varchar

20

 

所属专业

class_dept

datetime

20 

系别

(3)课程数据表,如下表:

 

表6-3课程数据表

字段名称

类型

宽度

允许空值

主键

说明

Course_no

char

5

NOTNULL

 是

课程号

Cours_name

char

20

NOTNULL

 

课程名

Cours_score

nemeric

6,2

 

学分

(4)选修课程情况数据表Choice,如下表:

表6-4选修课程情况数据表

字段名称

类型

宽度

允许空值

主键

说明

s_no

char

6

NOTNULL

 是

学号

Cours_no

char

5

NOTNULL

 

课程名

score

nemeric

6,2

 

成绩

(5)教师数据表Teacher,如下表:

表6-5教师数据表

字段名称

类型

宽度

允许空值

主键

说明

t_no

char

6

NOTNULL

 是

教师号

t_name

varchar

10

NOTNULL

 是

教师姓名

t_sexl

char

2

男或女

 

性别

t_birthday

datetime

 

出生日期

t_title

char

10 

职称

(6)教师任课情况表Teaching,如下表:

表6-6教师任课情况表

字段名称

类型

宽度

允许空值

主键

说明

course_no

char

6

 是

课程号

t_no

char

6

 

教师号

七、数据库物理设计

物理结构依赖于所选用的数据库管理系统。

八、系统主界面及主要代码

(1)主界面窗口:

主要代码:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Text;

usingSystem.Windows.Forms;

namespaceStudentIMS

{

publicpartialclassMainForm:

Form

{

publicMainForm()

{

InitializeComponent();

}

privatevoid学生管理ToolStripMenuItem_Click(objectsender,EventArgse)

{

StudentFormStudentFrm=newStudentForm();

StudentFrm.Show();

}

privatevoid班级管理ToolStripMenuItem1_Click(objectsender,EventArgse)

{

ClassFormClassFrm=newClassForm();

ClassFrm.Show();

}

privatevoid学生查询ToolStripMenuItem_Click(objectsender,EventArgse)

{

StudentQueryFormStudentQueryFrm=newStudentQueryForm();

StudentQueryFrm.Show();

}

privatevoid教师管理ToolStripMenuItem1_Click(objectsender,EventArgse)

{

TeacherFormTeacherFrm=newTeacherForm();

TeacherFrm.Show();

}

privatevoid教师查询ToolStripMenuItem_Click_1(objectsender,EventArgse)

{

TeacherQueryFormTeacherQueryFrm=newTeacherQueryForm();

TeacherQueryFrm.Show();

}

privatevoid班级查询ToolStripMenuItem_Click(objectsender,EventArgse)

{

ClassQueryFormClassQueryFrm=newClassQueryForm();

ClassQueryFrm.Show();

}

privatevoid课程管理ToolStripMenuItem1_Click(objectsender,EventArgse)

{

CourseFormCourseFrm=newCourseForm();

CourseFrm.Show();

}

privatevoid课程查询ToolStripMenuItem_Click(objectsender,EventArgse)

{

CourseQueryFormCourseQueryFrm=newCourseQueryForm();

CourseQueryFrm.Show();

}

privatevoid选课管理ToolStripMenuItem1_Click(objectsender,EventArgse)

{

ChoiceFormChoiceFrm=newChoiceForm();

ChoiceFrm.Show();

}

privatevoid选课查询ToolStripMenuItem_Click(objectsender,EventArgse)

{

ChoiceQueryFormChoiceQueryFrm=newChoiceQueryForm();

ChoiceQueryFrm.Show();

}

privatevoid任课管理ToolStripMenuItem1_Click(objectsender,EventArgse)

{

TeachingFormTeachingFrm=newTeachingForm();

TeachingFrm.Show();

}

privatevoid任课查询ToolStripMenuItem_Click(objectsender,EventArgse)

{

TeachingQueryFormTeachingQueryFrm=newTeachingQueryForm();

TeachingQueryFrm.Show();

}

}

}

 

(2)子窗口:

其功能是对学生的基本信息进行插入、删除、查询等管理。

主要代码:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Text;

usingSystem.Windows.Forms;

usingSystem.Data.SqlClient;//新加引用

namespaceStudentIMS

{

publicpartialclassStudentForm:

Form

{

//下面这条语句根据实际配置修改

SqlConnectionsqlcon=newSqlConnection("server=localhost;uid=sa;pwd=;database=DB06061001and06061033");

publicStudentForm()

{

InitializeComponent();

//初始化性别下拉列表框代码

S_SexCMB.Items.Add("男");

S_SexCMB.Items.Add("女");

//查找已定义好的班级号

stringstrSQL="selectclass_nofromclass";

DataSetds=newDataSet();

SqlDataAdaptermyda=newSqlDataAdapter(strSQL,sqlcon);

sqlcon.Open();

myda.Fill(ds,"class");

sqlcon.Close();

DataTabledt=ds.Tables["class"];

foreach(DataRowdrindt.Rows)

{

Class_NoCMB.Items.Add(dr["class_no"]);

}

}

privatevoidBrowseBtn_Click(objectsender,EventArgse)

{

//stringstrSQL="select*fromstudent";

stringstrSQL="selects_no学号,class_no班级号,s_name姓名,s_sex性别,s_birthday出生年月fromstudent";

DataSetds=newDataSet();

SqlDataAdaptermyda=newSqlDataAdapter(strSQL,sqlcon);

sqlcon.Open();

myda.Fill(ds,"student");

sqlcon.Close();

DataTabledt=ds.Tables["student"];

dataGridView1.DataSource=ds.Tables["student"];

}

privatevoidInsBtn_Click(objectsender,EventArgse)

{

if(S_NoTxt.Text.Trim().Length!

=0)

{

stringstrSQL="INSERTINTOstudent(s_no,class_no,s_name,s_sex,s_birthday)VALUES(";

strSQL=strSQL+"'"+S_NoTxt.Text.Trim()+"',";

strSQL=strSQL+"'"+Class_NoCMB.Text.Trim()+"',";

strSQL=strSQL+"'"+S_NameTxt.Text.Trim()+"',";

strSQL=strSQL+"'"+S_SexCMB.Text.Trim()+"',";

strSQL=strSQL+"'"+S_BirthdayTxt.Text.Trim()+"')";

sqlcon.Open();

SqlCommandcmd=newSqlCommand(strSQL,sqlcon);

cmd.ExecuteNonQuery();

sqlcon.Close();

}

}

privatevoidDelBtn_Click(objectsender,EventArgse)

{

if(S_NoTxt.Text.Trim().Length!

=0)

{

stringstrSQL="DELETEFROMstudent";

strSQL=strSQL+"WHEREs_no='"+S_NoTxt.Text.Trim()+"'";

sqlcon.Open();

SqlCommandcmd=newSqlCommand(strSQL,sqlcon);

cmd.ExecuteNonQuery();

sqlcon.Close();

}

}

privatevoidUpdateBtn_Click(objectsender,EventArgse)

{

if(S_NoTxt.Text.Trim().Length!

=0)

{

stringstrSQL="UPDATEstudentSET";

strSQL=strSQL+"class_no="+"'"+Class_NoCMB.Text.Trim()+"',";

strSQL=strSQL+"s_name="+"'"+S_NameTxt.Text.Trim()+"',";

strSQL=strSQL+"s_sex="+"'"+S_SexCMB.Text.Trim()+"',";

strSQL=strSQL+"s_birthday="+"'"+S_BirthdayTxt.Text.Trim()+"'";

strSQL=strSQL+"WHEREs_no='"+S_NoTxt.Text.Trim()+"'";

sqlcon.Open();

SqlCommandcmd=newSqlCommand(strSQL,sqlcon);

cmd.ExecuteNonQuery();

sqlcon.Close();

}

}

privatevoidFindBtn_Click(objectsender,EventArgse)

{

if(S_NoTxt.Text.Trim().Length!

=0)

{

stringstrSQL="select*fromstudent"+"wheres_no='"+S_NoTxt.Text.Trim()+"'";

DataSetds=newDataSet();

SqlDataAdaptermyda=newSqlDataAdapter(strSQL,sqlcon);

sqlcon.Open();

myda.Fill(ds,"student");

sqlcon.Close();

DataTabledt=ds.Tables["student"];

strSQL=strSQL+"class_no"+"'"+Class_NoCMB.Text.Trim()+"',";

strSQL=strSQL+"s_name="+"'"+S_NameTxt.Text.Trim()+"',";

strSQL=strSQL+"s_sex="+"'"+S_SexCMB.Text.Trim()+"',";

strSQL=strSQL+"s_birthday="+"'"+S_BirthdayTxt.Text.Trim()+"'";

strSQL=strSQL+"WHEREs_no='"+S_NoTxt.Text.Trim()+"'";

foreach(DataRowdrindt.Rows)

{

S_NoTxt.Text=Convert.ToString(dr["s_no"]);

Class_NoCMB.Text=Convert.ToString(dr["class_no"]);

S_NameTxt.Text=Convert.ToString(dr["s_name"]);

S_SexCMB.Text=Convert.ToString(dr["s_sex"]);

S_BirthdayTxt.Text=Convert.ToString(Convert.ToDateTime(dr["s_birthday"]).ToShortDateString());

}

}

}

privatevoidClearBtn_Click(objectsender,EventArgse)

{

S_NoTxt.Text="";

Class_NoCMB.Text="";

S_NameTxt.Text="";

S_SexCMB.Text="";

S_BirthdayTxt.Text="";

}

}

}

 

其他子窗口:

 

九、上机实验的收获、体会

通过这次实验设计的制作,使我对软件开发有了更深一步的了解。

在软件开发中应注意的问题和考虑的问题都能较好的做到。

在这短短时间的自学中要很好的应用这个工具还是有困难的,但也得到了不少自学经验,使我的自学能力有了很大的提高。

在开发过程中也遇到了不少难题,为了解决这些难题我查阅各类相关书籍,同时请教老师和同学,不停地对编译程序进行测试,调试。

最终,得到了一个比较具有实用性和完整性的系统。

但系统还存在问题,虽然系统的基本功能已实现,但该系统还有许多不尽如人意的地方,与实际的管理还有一定的差距。

参考文献

[1]王珊萨师煊.数据库系统概论.北京:

高等教育出版社,2006

[2]郑阿奇.SQLServer实用教程.北京:

电子工业出版社,2009

[3]JosephSack著.SQLServer2008实战.金迎春译.北京:

人民邮电出版社,2010

[4]赵松涛.深入浅出SQLServer

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1