教务管理系统学生端设计.doc_第1页
教务管理系统学生端设计.doc_第2页
教务管理系统学生端设计.doc_第3页
教务管理系统学生端设计.doc_第4页
教务管理系统学生端设计.doc_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

华北科技学院课程设计教务管理系统学生端设计设计任务和设计要求学生登录学生选课系统后可进行如下操作: (1)查看备选课程及该课程的信息。(2)查看希望教授该课程的教师的信息。(3)选择希望选修的课程,并从候选的教师中选择两个自己认同的教师(如只有一个候选教师则只能选择一个),相当于给教师投票,该投票结果最终决定该课程的任课教师。(4)删除误选的课程。选课的规则如下:(1) 每个学生最多能选5门课,至少选2门课。(2) 每门课选修的人数有限,如果选修的人数超过了限制的人数,先报名的学生有上课的资格。(3) 学生选课时可以选择课程,同时选择2名候选的任课教师。(4) 每名教师最多可以教授3门课。内容摘要 教务管理系统是一个基于桌面的系统,供管理员、教师和学生选课使用。管理员可以管理教师和学生选课的相关信息;教师可以开设课程、管理学生的选课信息以及对学生评分;学生则可以选修课程、查看成绩等。通过查询选课信息以开设自己的课程;学生则可以在一定范围内自由选修课程,查看授课老师的相关教学信息等。其中,选课活动是推进学分制建设的重要环节,也是教务管理的难点之一。选课工作顺利与否直接关系到教学秩序的稳定。因此开发一个完整的选课管理模式是其中一个至关重要的环节本系统是一个在Microsoft Visual Studio C#环境下通过访问ADO.NET来实现数据库的连接的,由于编者知识有限,仅运行实现了该系统的学生端设计的部分功能。具体设计如下。目录第一章 设计概述 4第二章 总体设计 52.1 系统功能简介 52.2 需求分析 62.2.1 数据需求 62.2.2 事务需求 6第三章 详细设计 7 3.1 E-R模型设计7 3.2 数据库设计7 3.2.1 创建数据库8 3.2.2 创建数据表9 3.2.3 数据连接11 3.3 程序设计与实现12第四章 总结44参考文献 45第一章 设计概述 教务管理系统学生端的设计目标是方便学生用户使用。通过学生端应用程序,学生可以登录进入系统并进行一系列相关操作。本设计包括系统的各模块或单元程序的设计、具体的算法、相关的程序实现图以及相关的代码。第二章 总体设计2.1 系统功能简介 本系统主要功能模块如下: (1)系统管理 学生登录:学生用户通过登录窗口进入系统。 学生注销:学生用户完成操作后可以注销自己的登录行为。 退出系统:所有操作完成后直接退出系统。 (2)学籍管理 (3)课程管理 所有课程列表:显示所有教师开设的课程。 我的课程列表:显示当前用户所选的全部课程。 添加选课:选修教师开设的课程。 删除选课:删除已经选择的课程。2.2 需求分析2.2.1 数据需求 事务需求根据系统的需求,首先将要记录的信息分类,要记录的信息如下。(1)学生信息:包括学生学号、姓名、性别、年龄、专业等。(2)课程信息:包括课程编号、课程名、授课教师、开课地点、时间及学分等。(3)学生选课:包括学生学号、课程编号、学分及选修号等。2.2.2 事务需求该系统采用三层结构,其中位于表现层的是Student项目;位于数据访问层的则是DataAccess项目;位于数据存储层的则是数据库Student,如图(1)所示。表现层Student项目数据访问层DataAccess项目数据存储层Student数据库(1)学生端系统结构图第三章 详细设计3.1 E-R模型设计具体实体相关属性在前面已给出,该系统的E-R图如图(2)所示。学生教师课程选修教授授课学号性别年龄专业姓名密码课程名上课地点上课时间课程号教师姓名年龄性别(2)E-R图 3.2 数据库设计 3.2.1 创建数据库 使用SQL Server 作为数据库,其中数据库Student,该数据库中有如下数据表 student:保存学生信息。 course:保存教师开设课程信息。 stuCourse:保存学生选课信息。 建立数据库 Student及相关数据表: CREATE DATABASE Student GO USE Student GO CREATE TABLE dbo.student ( stuID varchar (50) NOT NULL stuPassword varchar(50) NOT NULL stuName varchar(50)NOT NULLstuMajor varchar(50) NOT NULL , stuSex varchar (2) NOT NULL , stuBirthday datetime NOT NULL ) ON PRIMARYGOCREATE TABLE dbo.course (courseID int NOT NULL , courseName varchar (50) NOT NULL , courseTime datetime NOT NULL , courseCredit int NOT NULL , courseTeacher varchar (16) NULL , courseAddress varchar (50) NOT NULL ) ON PRIMARYGOCREATE TABLE dbo.stuCourse (scID int NOT NULL , stuID varchar (50)NOT NULL, courseID int NOT NULL , scScore int NOT NULL ) ON PRIMARY3.2.2 创建数据表student 表:course表:stuCouse表:3.2.3 数据连接本系使用ADO.NET访问数据库,因为每个数据提供程序都包含自己特有的Connection对象。 SQL Server.NET数据提供程序的SqlConnection对象是在System.Data.SqlClient命名空间中定义的,它包含在System.Data DLL程序集中。一般使用SqlConnection类的方法如下:System.Data.Sqlclient.SqlConnection conn = new System.Data.Sqlclient.SqlConnection( );具体实例操作如下一节所述。3.3 程序设计与实现具体程序代码如下:using System;using System.Collections.Generic;using System.Windows.Forms;namespace SchoolMIS.UI.Student static class Program / / 应用程序的主入口点。 / STAThread static void Main() Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MainForms(); using System;using System.Collections.Generic;using System.Text;namespace SchoolMIS.UI.Student class GlobalInfo private static bool isLogin = false; private static string stuName; private static string stuID; public static bool IsLogin get return isLogin; set isLogin = value; public static string StuName get return stuName; set stuName = value; public static string StuID get return stuID; set stuID = value; 主界面:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace SchoolMIS.UI.Student public partial class MainForms : Form public MainForms() InitializeComponent(); private void mainMenu_ItemClicked(object sender, ToolStripItemClickedEventArgs e) private void stuLogin_Click(object sender, EventArgs e) LoginForm frmLogin = new LoginForm(); frmLogin.ShowDialog(); if (GlobalInfo.IsLogin) this.ChangeMenuState(); private void ChangeMenuState() /改变菜单的时使能状态 this.menuCourse.Enabled = !this.menuCourse.Enabled; this.stuLogin.Enabled = !this.stuLogin.Enabled; this.stuLogout.Enabled = !this.stuLogout.Enabled; private void stuLogout_Click(object sender, EventArgs e) GlobalInfo.StuID = String.Empty; GlobalInfo.StuName = String.Empty; GlobalInfo.IsLogin = false; MessageBox.Show(成功退出本系统, 系统提示, MessageBoxButtons.OK, MessageBoxIcon.Information); this.ChangeMenuState(); private void stuExit_Click(object sender, EventArgs e) Application.Exit(); private void courseAll_Click(object sender, EventArgs e) AllCourseForm allCourseForm = new AllCourseForm(); allCourseForm.MdiParent = this; allCourseForm.Show(); private void courseSelected_Click(object sender, EventArgs e) SelectedCourseForm selectedCourseForm = new SelectedCourseForm(); selectedCourseForm.MdiParent = this; selectedCourseForm.Show(); 程序实现如图:首先进入登录界面:登录系统:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using SchoolMIS.DataAccess.Student.SQLServer;namespace SchoolMIS.UI.Student public partial class LoginForm : Form public LoginForm() InitializeComponent(); private void btnOK_Click(object sender, EventArgs e) if (this.txtStuNum.Text.Trim() = ) MessageBox.Show(请输入您的学号, 错误提示:, MessageBoxButtons.OK, MessageBoxIcon.Warning); else if (this.txtStuPassword.Text.Trim() = ) MessageBox.Show(请输入您的密码, 错误提示:, MessageBoxButtons.OK, MessageBoxIcon.Warning); else StudentDB stuDbAccess = new StudentDB(); string stuName = stuDbAccess.Login(txtStuNum.Text.Trim(), txtStuPassword.Text.Trim(); if (stuName != String.Empty) GlobalInfo.StuName = stuName; GlobalInfo.StuID = this.txtStuNum.Text; GlobalInfo.IsLogin = true; this.Dispose(); else MessageBox.Show(用户名或者密码错误,请重新输入。, 错误提示:); private void btnCancel_Click(object sender, EventArgs e) this.txtStuNum.Text = ; this.txtStuPassword .Text =; private void LoginForm_Load(object sender, EventArgs e) 所有课程:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;using SchoolMIS.DataAccess.Student.SQLServer;namespace SchoolMIS.UI.Student public partial class AllCourseForm : Form BindingSource bsAllCourse; public AllCourseForm() InitializeComponent(); int n=0; public int N get return n; set n = value; public void InitialData() CourseDB courseDB = new CourseDB(); DataSet courseDataSet = courseDB.GetAllCourse(); bsAllCourse = new BindingSource(); bsAllCourse.DataSource = courseDataSet.Tablescourse; this.dgvAllCourse.DataSource = bsAllCourse; this.txtCourseAddress.DataBindings.Add(new Binding(Text, bsAllCourse, 上课地点); this.txtCourseCredit.DataBindings.Add(new Binding(Text, bsAllCourse, 学分); this.txtCourseID.DataBindings.Add(new Binding(Text, bsAllCourse, 编号); this.txtCourseName.DataBindings.Add(new Binding(Text, bsAllCourse, 名称); this.txtCourseTime.DataBindings.Add(new Binding(Text, bsAllCourse, 上课时间); this.txtTeacherName.DataBindings.Add(new Binding(Text, bsAllCourse, 教师); this.ChangeButtonState(); if (this.bsAllCourse.Position = -1) this.btnChoose.Enabled = false; private void ChangeButtonState() if (this.bsAllCourse.Position = this.bsAllCourse.Count - 1) this.btnNext.Enabled = false; else this.btnNext.Enabled = true; if (this.bsAllCourse.Position = 0) this.btnPre.Enabled = false; else this.btnPre.Enabled = true; private void AllCourseForm_Load(object sender, EventArgs e) InitialData(); private void btnPre_Click(object sender, EventArgs e) this.bsAllCourse.MovePrevious(); this.ChangeButtonState(); private void btnNext_Click(object sender, EventArgs e) this.bsAllCourse.MoveNext(); this.ChangeButtonState(); private int GetCourseID(int rowIndex) return (int)(DataTable)bsAllCourse.DataSource).RowsrowIndex0; private void btnChoose_Click(object sender, EventArgs e) CourseDB courseDB = new CourseDB(); bool addResult = courseDB.AddSelectedCourse(GlobalInfo.StuID, GetCourseID(bsAllCourse.Position); if (addResult) MessageBox.Show(您已经成功选择该课程,请注意学习!); else MessageBox.Show(操作失败,请稍后重试!); private void refreshDataSource() CourseDB courseDB = new CourseDB(); DataSet courseDataSet = courseDB.GetSelectedCourse(GlobalInfo.StuID); bsAllCourse.DataSource = courseDataSet.Tablescourse; 登录过程中,会出现以下几个界面:如图:选修课程:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;using SchoolMIS.DataAccess.Student.SQLServer;namespace SchoolMIS.UI.Student public partial class SelectedCourseForm : Form BindingSource bsAllCourse; public SelectedCourseForm() InitializeComponent(); private void SelectedCourseForm_Load(object sender, EventArgs e) InitialData(); private void InitialData() CourseDB courseDB = new CourseDB(); DataSet courseDataSet = courseDB.GetSelectedCourse(GlobalInfo.StuID); bsAllCourse = new BindingSource(); bsAllCourse.DataSource = courseDataSet.Tablescourse; this.dgvAllCourse.DataSource = bsAllCourse; private void ChangeButtonState() if (this.bsAllCourse.Position = -1) this.btnUnChoose.Enabled = false; this.btnNext.Enabled = false; this.btnPre.Enabled = false; if (this.bsAllCourse.Position = this.bsAllCourse.Count - 1) this.btnNext.Enabled = false; else this.btnNext.Enabled = true; if (this.bsAllCourse.Position = 0) this.btnPre.Enabled = false; else this.btnPre.Enabled = true; private void btnPre_Click(object sender, EventArgs e) this.bsAllCourse.MovePrevious(); this.ChangeButtonState(); private void btnNext_Click(object sender, EventArgs e) this.bsAllCourse.MoveNext(); this.ChangeButtonState(); private void btnUnChoose_Click(object sender, EventArgs e) CourseDB courseDB = new CourseDB(); bool deleteResult = courseDB.DeleteSelectedCourse(Convert.ToInt32(this.txtCourseID.Text); if (deleteResult) MessageBox.Show(您已经成功放弃了该课程!); else MessageBox.Show(操作失败,请稍后重试!); this.ChangeButtonState(); private void txtCourseID_TextChanged(object sender, EventArgs e) private void dgvAllCourse_CellContentClick(object sender, DataGridViewCellEventArgs e) private void txtCourseName_TextChanged(object sender, EventArgs e) private void txtCourseTime_TextChanged(object sender, EventArgs e) private void txtCourseAddress_TextChanged(object sender, EventArgs e) private void txtTeacherName_TextChanged(object sender, EventArgs e) private void txtCourseCredit_TextChanged(object sender, EventArgs e) 进入所有课程能够界面:具体操作情况如图:退出课程界面后:进入选课列表:数据库连接:using System;using System.Collections.Generic;using System.Text;namespace SchoolMIS.DataAccess.Student.SQLServer class Constants /数据库链接字符 public static readonly string ConnString = server=(local);user id=sa;password=1234;Initial Catalog=Student; /验证学生登录 public static readonly string StuLogin = select stuName from student where stuID=stuID and stuPassword=stuPassword; public static readonly string GetAllCourse = SELECT courseID AS 编号,courseName AS 名称,courseTime AS 上课时间 ,courseAddress AS 上课地点,courseCredit AS 学分,courseTeacher AS 教师 FROM course; public static readonly string AddSelectedCourse = INSERT INTO stuCourse(stuID,courseID) VALUES(stuNum,courseID); public static readonly string IsSelectedCourse = SELECT COUNT(scID) FROM stuCourse WHERE stuID=stuNum AND courseID=courseID; public static readonly string GetSelectedCourse = SELECT stuCourse.scID AS 选课编号,courseName AS 名称,courseTime AS 上课时间,courseAddress AS 上课地点,courseCredit AS 学分,courseTeacher AS 教师FROM course,stuCourseWHERE stuCourse.stuID=stuNum AND course.courseID=stuCourse.courseID; public static readonly string DeleteSelectedCourse = DELETE FROM stuCourse WHERE scID=scID; 课程信息:using System;using System.Collections.Generic;using System.Text;using System.Data;using System.Data.SqlClient;namespace SchoolMIS.DataAccess.Stude

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论