学生选课信息管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学生选课信息管理系统
一、学生选课信息管理系统简介
传统的手工选课不仅复杂,也牵涉了很多的人力,对管理也造成了诸多不变,而借助网上选课系统,学生在规定选课时间段内,可以不受地点和时间的限制完成选修课的申请,而学校也可以方便地对系统进行管理和控制,提高工作效率。
学生选课管理系统的用户包括系统管理员、教师和学生。
系统管理员负责
日常的管理工作,如各种基本信息的录入、修改、删除等操作;教师使用该系
统可完成教学班信息查询和成绩管理;学生使用该系统主要完成选课和成绩查
询等操作。
经过调研与分析,高等院校学生选课管理系统主要应具有以下功能:
(1)课程信息管理。
课程信息管理包括课程信息数据的录入、修改与删除等功
能;
(2)学生信息管理。
学生信息管理包括学生信息的录入、修改与删除等功能;(3)教师信息管理。
教师信息管理包括教师信息的录入、修改与删除等功能;(4)班级信息管理。
学班级信息管理包括各班级信息的录入、修改与删除等功能。
二、系统开发目标
本系统的目标就是实现学生在网上就可完成选课的全过程。
其功能如下:
◆学生登陆验证密码功能
为了避免在选课时出现乱选、错选情况,该系统在设计时考虑对学生身份的合
法性进行验证,保证合法用户才能选课。
◆查看可供选择的课程,及上该课程教师的情况
学生能在网上查看课程的情况,如课程的介绍、课程有那些教师上。
◆选择某门课程
学生可查看当前自己已选课程、如果对某门课程不满意,可注销该课程,也
以查看当前某门课,某教师有那些学生选。
三、系统功能模块图
根据功能分析总结系统的体系结构,系统的功能模块如图3-1所示:
图3-1 系统的功能模块图
在本系统中,可以把功能模块分为以下2个功能集合来描述:
(1)基本信息管理功能集合
包括班级信息管理和学生信息管理等功能模块,此集合中功能模块的关系如图3-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)硬盘空间
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图
(3)课程实体E-R图
图5-3 课程实体E-R图(4)教师实体E-R图
图5-4 教师实体E-R图
(5)各实体之间的E-R图
图5-5 实体E-R图六、数据库逻辑设计(分几个关系模式)
(1)学生基本表Student,如下表所示:
表6-1学生基本表
(2)班级数据表class,如下表:
表6-2 班级数据表
(3)课程数据表,如下表:
表6-3课程数据表
(4)选修课程情况数据表Choice,如下表:
表6-4 选修课程情况数据表
(5)教师数据表Teacher,如下表:
表6-5 教师数据表
(6)教师任课情况表Teaching,如下表:
表6-6教师任课情况表
七、数据库物理设计
物理结构依赖于所选用的数据库管理系统。
八、系统主界面及主要代码
(1)主界面窗口:
主要代码:
using System;
using System.Collections.Generic;
using ponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace StudentIMS
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void学生管理ToolStripMenuItem_Click(object sender, EventArgs e)
{
StudentForm StudentFrm = new StudentForm();
StudentFrm.Show();
}
private void班级管理ToolStripMenuItem1_Click(object sender, EventArgs e)
{
ClassForm ClassFrm = new ClassForm();
ClassFrm.Show();
}
private void学生查询ToolStripMenuItem_Click(object sender, EventArgs e)
{
StudentQueryForm StudentQueryFrm = new StudentQueryForm();
StudentQueryFrm.Show();
}
private void教师管理ToolStripMenuItem1_Click(object sender, EventArgs e)
{
TeacherForm TeacherFrm = new TeacherForm();
TeacherFrm.Show();
}
private void教师查询ToolStripMenuItem_Click_1(object sender, EventArgs e)
{
TeacherQueryForm TeacherQueryFrm = new TeacherQueryForm();
TeacherQueryFrm.Show();
}
private void班级查询ToolStripMenuItem_Click(object sender, EventArgs e)
{
ClassQueryForm ClassQueryFrm = new ClassQueryForm();
ClassQueryFrm.Show();
}
private void课程管理ToolStripMenuItem1_Click(object sender, EventArgs e)
{
CourseForm CourseFrm= new CourseForm();
CourseFrm.Show();
}
private void课程查询ToolStripMenuItem_Click(object sender, EventArgs e)
{
CourseQueryForm CourseQueryFrm = new CourseQueryForm();
CourseQueryFrm.Show();
}
private void选课管理ToolStripMenuItem1_Click(object sender, EventArgs e)
{
ChoiceForm ChoiceFrm = new ChoiceForm();
ChoiceFrm.Show();
}
private void选课查询ToolStripMenuItem_Click(object sender, EventArgs e)
{
ChoiceQueryForm ChoiceQueryFrm = new ChoiceQueryForm();
ChoiceQueryFrm.Show();
}
private void任课管理ToolStripMenuItem1_Click(object sender, EventArgs e)
{
TeachingForm TeachingFrm = new TeachingForm();
TeachingFrm.Show();
}
private void任课查询ToolStripMenuItem_Click(object sender, EventArgs e)
{
TeachingQueryForm TeachingQueryFrm = new TeachingQueryForm();
TeachingQueryFrm.Show();
}
}
}
(2)子窗口:
其功能是对学生的基本信息进行插入、删除、查询等管理。
主要代码:
using System;
using System.Collections.Generic;
using ponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient; //新加引用
namespace StudentIMS
{
public partial class StudentForm : Form
{
//下面这条语句根据实际配置修改
SqlConnection sqlcon = new
SqlConnection("server=localhost;uid=sa;pwd=;database=DB06061001and0 6061033");
public StudentForm()
{
InitializeComponent();
//初始化性别下拉列表框代码
S_SexCMB.Items.Add("男");
S_SexCMB.Items.Add("女");
//查找已定义好的班级号
string strSQL = "select class_no from class";
DataSet ds = new DataSet();
SqlDataAdapter myda = new SqlDataAdapter(strSQL, sqlcon);
sqlcon.Open();
myda.Fill(ds,"class");
sqlcon.Close();
DataTable dt = ds.Tables["class"];
foreach (DataRow dr in dt.Rows)
{
Class_NoCMB.Items.Add(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);
sqlcon.Open();
myda.Fill(ds, "student");
sqlcon.Close();
DataTable dt = ds.Tables["student"];
dataGridView1.DataSource = ds.Tables["student"];
}
private void InsBtn_Click(object sender, EventArgs e)
{
if (S_NoTxt.Text.Trim().Length != 0)
{
string strSQL = "INSERT INTO
student(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();
SqlCommand cmd = new SqlCommand(strSQL, sqlcon);
cmd.ExecuteNonQuery();
sqlcon.Close();
}
}
private void DelBtn_Click(object sender, EventArgs e) {
if (S_NoTxt.Text.Trim().Length != 0)
{
string strSQL = "DELETE FROM student";
strSQL = strSQL + " WHERE s_no='"+ S_NoTxt.Text.Trim() + "'";
sqlcon.Open();
SqlCommand cmd = new SqlCommand(strSQL, sqlcon);
cmd.ExecuteNonQuery();
sqlcon.Close();
}
}
private void UpdateBtn_Click(object sender, EventArgs e) {
if (S_NoTxt.Text.Trim().Length != 0)
{
string strSQL = "UPDATE student SET ";
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 + " WHERE s_no='"+ S_NoTxt.Text.Trim() + "'";
sqlcon.Open();
SqlCommand cmd = new SqlCommand(strSQL, sqlcon);
cmd.ExecuteNonQuery();
sqlcon.Close();
}
}
private void FindBtn_Click(object sender, EventArgs e) {
if (S_NoTxt.Text.Trim().Length != 0)
{
string strSQL = "select * from student"+ " where s_no
='" + S_NoTxt.Text.Trim() + "'";
DataSet ds = new DataSet();
SqlDataAdapter myda = new SqlDataAdapter(strSQL, sqlcon);
sqlcon.Open();
myda.Fill(ds, "student");
sqlcon.Close();
DataTable dt = 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 + " WHERE s_no='"+ S_NoTxt.Text.Trim() + "'";
foreach (DataRow dr in dt.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"]).ToShortDateS tring());
}
}
}
private void ClearBtn_Click(object sender, EventArgs e)
{
S_NoTxt.Text = "";
Class_NoCMB.Text = "";
S_NameTxt.Text = "";
S_SexCMB.Text = "";
S_BirthdayTxt.Text = "";
}
}
}
其他子窗口:
九、上机实验的收获、体会
通过这次实验设计的制作,使我对软件开发有了更深一步的了解。
在软件开发中应注意的问题和考虑的问题都能较好的做到。
在这短短时间的自学中要很好的应用这个工具还是有困难的,但也得到了不少自学经验,使我的自学能力有了很大的提高。
在开发过程中也遇到了不少难题,为了解决这些难题我查阅各类相关书籍,同时请教老师和同学,不停地对编译程序进行测试,调试。
最终,得到了一个比较具有实用性和完整性的系统。
但系统还存在问题,虽然系统的基本功能已实现,但该系统还有许多不尽如人意的地方,与实际的管理还有一定的差距。
参考文献
[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。