1、学生选课信息管理系统学生选课信息管理系统一、学生选课信息管理系统简介传统的手工选课不仅复杂,也牵涉了很多的人力,对管理也造成了诸多不变,而借助网上选课系统,学生在规定选课时间段内,可以不受地点和时间的限制完成选修课的申请,而学校也可以方便地对系统进行管理和控制,提高工作效率。学生选课管理系统的用户包括系统管理员、教师和学生。系统管理员负责日常的管理工作,如各种基本信息的录入、修改、删除等操作;教师使用该系统可完成教学班信息查询和成绩管理;学生使用该系统主要完成选课和成绩查询等操作。经过调研与分析,高等院校学生选课管理系统主要应具有以下功能:(1) 课程信息管理。课程信息管理包括课程信息数据的录
2、入、修改与删除等功能;(2) 学生信息管理。学生信息管理包括学生信息的录入、修改与删除等功能;(3) 教师信息管理。教师信息管理包括教师信息的录入、修改与删除等功能;(4) 班级信息管理。学班级信息管理包括各班级信息的录入、修改与删除等功能。二、系统开发目标本系统的目标就是实现学生在网上就可完成选课的全过程。其功能如下:学生登陆验证密码功能 为了避免在选课时出现乱选、错选情况,该系统在设计时考虑对学生身份的合法性进行验证,保证合法用户才能选课。 查看可供选择的课程,及上该课程教师的情况 学生能在网上查看课程的情况,如课程的介绍、课程有那些教师上。选择某门课程 学生可查看当前自己已选课程、如果对
3、某门课程不满意,可注销该课程,也以查看当前某门课,某教师有那些学生选。 三、系统功能模块图根据功能分析总结系统的体系结构,系统的功能模块如图3-1所示:图3-1 系统的功能模块图在本系统中,可以把功能模块分为以下2个功能集合来描述:(1)基本信息管理功能集合包括班级信息管理和学生信息管理等功能模块,此集合中功能模块的关系如图3-2所示图3-2 基本信息管理功能图(2)用户管理及权限控制功能集合包括用户信息管理、权限控制等模块。在本系统中,用户管理模块的功能比较简单。在系统初始化时,有两个默认的用户,系统管理员用户名为admin,普通用户名为user,手动添加到数据库中,其默认密码为123。ad
4、min用户的权限为创建用户、修改用户信息和删除用户,而普通用户只能修改自己的密码或查询信息。用户管理功能模块的关系如图3-3所示:图3-3 用户管理功能模块的关系图四、系统开发、运行环境要求Windows XP + SQL Server2000:SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的最新版本,该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能,具有使用方便、可伸缩性好以及与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Wind
5、ows 2000 的大型 多处理器的服务器等多种平台使用。运行SQL Server 2000 的最低硬件和软件需求:(1) 计算机Intel 兼容计算机,Pentium 166 MHz 以上。(2) 内存RAMEnterprise:版本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
6、: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图nm n 1n图5-5 实体E-R图六、数据库逻辑设计(分几个关系模式)(1)学生基本表Student,如下表所示:表6-1学生基本表字段名称类 型宽 度允许空值主 键说 明s_nochar6NOT NULL是学号class_nochar6NOT NULL班级号s_namevarchar10NOT NULL学生姓名s_sexchar2
7、男或女性别s_birthdaydatetime出生日期(2)班级数据表class,如下表:表6-2 班级数据表字段名称类 型宽 度允许空值主 键说 明class_nochar6NOT NULL是班级号class_namechar20NOT NULL班级姓名class_specialvarchar20所属专业class_deptdatetime20系别(3)课程数据表,如下表:表6-3课程数据表字段名称类 型宽 度允许空值主 键说 明Course_nochar5NOT NULL是课程号Cours_namechar20NOT NULL课程名Cours_scorenemeric6,2学分(4)选修课
8、程情况数据表Choice,如下表:表6-4 选修课程情况数据表字段名称类 型宽 度允许空值主 键说 明s_nochar6NOT NULL是学号Cours_nochar5NOT NULL课程名scorenemeric6,2成绩(5)教师数据表Teacher,如下表:表6-5 教师数据表字段名称类 型宽 度允许空值主 键说 明t_nochar6NOT NULL是教师号t_namevarchar 10NOT NULL是教师姓名t_sexlchar2男或女性别t_birthdaydatetime出生日期t_titlechar10职称(6)教师任课情况表Teaching,如下表:表6-6教师任课情况表字
9、段名称类 型宽 度允许空值主 键说 明course_nochar6是课程号t_nochar6教师号七、数据库物理设计物理结构依赖于所选用的数据库管理系统。八、系统主界面及主要代码(1)主界面窗口:主要代码:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace StudentIMS public partial cla
10、ss 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();
11、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()
12、; 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();
13、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 选课管理ToolStr
14、ipMenuItem1_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(objec
15、t 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; us
16、ing System.Collections.Generic;using System.ComponentModel;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(serve
17、r=localhost;uid=sa;pwd=;database=DB06061001and06061033); 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
18、); sqlcon.Open(); myda.Fill(ds,class); sqlcon.Close(); DataTable dt = ds.Tablesclass; foreach (DataRow dr in dt.Rows) Class_NoCMB.Items.Add(drclass_no); private void BrowseBtn_Click(object sender, EventArgs e) / string strSQL = select * from student; string strSQL = select s_no 学号,class_no 班级号,s_nam
19、e 姓名,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.Tablesstudent; dataGridView1.DataSource = ds.Tablesstudent; private void InsBtn_Click(object sende
20、r, 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
21、_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 st
22、udent; 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 ; str
23、SQL = 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.Ope
24、n(); 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(); SqlDataA
25、dapter myda = new SqlDataAdapter(strSQL, sqlcon); sqlcon.Open(); myda.Fill(ds, student); sqlcon.Close(); DataTable dt = ds.Tablesstudent; strSQL = strSQL + class_no + + Class_NoCMB.Text.Trim() + ,; strSQL = strSQL + s_name= + + S_NameTxt.Text.Trim() + ,; strSQL = strSQL + s_sex= + + S_SexCMB.Text.Tr
26、im() + ,; 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(drs_no); Class_NoCMB.Text = Convert.ToString(drclass_no); S_NameTxt.Text = Convert.ToString(drs_name); S_S
27、exCMB.Text = Convert.ToString(drs_sex); S_BirthdayTxt.Text =Convert.ToString(Convert.ToDateTime(drs_birthday).ToShortDateString(); private void ClearBtn_Click(object sender, EventArgs e) S_NoTxt.Text = ; Class_NoCMB.Text = ; S_NameTxt.Text = ; S_SexCMB.Text = ; S_BirthdayTxt.Text = ; 其他子窗口:九、上机实验的收获
28、、体会通过这次实验设计的制作,使我对软件开发有了更深一步的了解。在软件开发中应注意的问题和考虑的问题都能较好的做到。在这短短时间的自学中要很好的应用这个工具还是有困难的,但也得到了不少自学经验,使我的自学能力有了很大的提高。在开发过程中也遇到了不少难题,为了解决这些难题我查阅各类相关书籍,同时请教老师和同学,不停地对编译程序进行测试,调试。最终,得到了一个比较具有实用性和完整性的系统。但系统还存在问题,虽然系统的基本功能已实现,但该系统还有许多不尽如人意的地方,与实际的管理还有一定的差距。参考文献1王珊 萨师煊.数据库系统概论.北京:高等教育出版社,20062郑阿奇.SQL Server 实用教程.北京:电子工业出版社,20093Joseph Sack 著.SQL Server 2008实战.金迎春译.北京:人民邮电出版社, 20104赵松涛.深入浅出SQL Server
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1