学籍管理系统.doc_第1页
学籍管理系统.doc_第2页
学籍管理系统.doc_第3页
学籍管理系统.doc_第4页
学籍管理系统.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

一 系统分析1、需求分析随着学校的普及和人们文化水平的提高,高效的教学管理系统越来越广泛应用于各类信息化学校。学生学籍管理系统要求实用性强、使用方便、效率高和安全可靠等特点。经分析我们认为学生学籍管理系统的具体要求为:1能全面管理学校教学相关的各类主体,如院系信息、教师信息、学生信息、课程信息、学院信息等2通过使用计算机能方便的维护(包括插入、删除、修改)各信息表3能方便的实现基于多个表的连接查询4系统具有操作方便、简捷等特点因而,我们所开发的管理系统正是围绕以上几个方面进行的,在开发过程中充分考虑到本系统的应用特点,并进行了大量的检验,证明其的确达到了设计的要求。2、可行性分析学生管理系统的主要目的是为了方便学校对学生的信息进行录入、修改、查询,提高学校的工作效率。这一系统的开发成功,解决了手写速度慢、容易出错的现状。无论是在学籍管理、成绩管理等方面都可以帮助学校最迅速最准确的完成所需的工作。无论是在适用性、灵活性和易操作性方面都显示出了它的强大功能二 系统设计本学生管理系统需要完成的功能有用户管理、班级管理、学院管理、教师管理、课程管理、选课管理、学籍管理和成绩管理八个部分。(1)用户管理 该功能用于管理使用该系统的用户,以及模块按权限进行分配,从而为系统提供一定的安全性。使用这个系统的用户主要包括5种:一是系统管理员,只有对用户的管理权限,它可以增、删、改用户;一是教务人员,可以对课程、选课和成绩进行管理,主要是增、删、改和查询信息;一是教工人员,可以对班级、学院、学籍进行管理,主要是增、删、改和查询信息;一是学生,主要是查询个人信息、修改个人密码、查询个人成绩;最后一个是校长,可以对所有的信息进行操作。所有的用户都可以修改自己的用户密码,系统管理员也可以修改其余用户的密码。(2)班级管理 添加、修改、删除和查询班级信息。(3)学院管理 添加、修改、删除和查询学院信息。(4)教师管理 添加、修改、删除和查询教师信息。(5)课程管理 添加、修改、删除和查询课程信息。(6)选课管理 添加、修改、删除和查询选课信息。(7)学籍管理 添加、修改、删除和查询学生信息,并可以制作学籍报表(8)成绩管理 添加、修改、删除和查询成绩信息,并可以制作成绩报表。 三 数据库与数据表设计1 数据设计根据对需求分析得到的数据结构进行分析,按数据输入输出的要求,确定表和表间的关系,并进行验证、调整、修改、完善,使其能够实现用户对数据和功能的要求。本系统根据分析确定系统要设置如下表(为了在应用程序中方便使用表名、字段名,在设计表时均采用英文简称或全称,在此为了便于理解均使用它们的中文别名): (1)学生基本表,包括字段:学号、姓名、性别、出生日期、所在系、照片。学号为主键。 (2)教师基本表,包括字段:教师编号、教师姓名、性别、所属元。教师编号为主键、主索引。 (3)课程基本表,包括字段:课程编号、课程名称、学分。课程编号为主键、主索引。 (4)学生选课表,字段包括:学号、课程编号、成绩。学生、课程编号做主索引,分别为学号、课程编号、成绩建立索引,通过学号和学生基本表建立关联,通过课程编号和课程基本表建立关联,成绩索引用于做统计计算,学号和课程号一起构成主键,这两个字段均是外码。(5)学院基本表,字段包括:学院编号、学院名称。学院编号为主键。 以下是在数据库中各表的创建信息:表3-11 课程表表3-12 学生信息表表3-13 学生选课表表3-14 教师表表3-15 学院表2 数据逻辑设计(1)学生实体E-R图图3-1-1(2)教师实体E-R图图3-1-2(3)课程实体E-R图图3-1-3(4)选课实体E-R图图3-1-4(5)学院实体E-R图图3-1-5(6)数据库关系图学生表学号为主键,学生所在系为学院号的外键。学生选课表的学号、课程号为主键,并且学号为学生表学号的外键,课程号为课程表的外键。课程表的课程号为主键,授课教师为教师表的外键。教师表的教师号为主键,教师所属系为学院表的外键。关系图如图3-1-7 数据关系图3系统概念设计系统功能设计:该学生信息管理系统用Visual Studio2008来设计界面,以SQL Server2008为后台数据库,采用面向对象的语言编程,实现对学生信息的基本管理。本系统的主要任务是实现对学校各院系和所有学生的系统管理,功能主要如下:(1) 学生功能:学生查看自己的信息及课程列表,选课信息,学生选课。(2) 教师功能:教师查看自己的信息,教师对所授课成绩录入,教师对学生进行信息查询,打印出学生列表Excel。(3) 管理员功能:管理员可对学生信息,教师信息进行增删修改操作,对课程和选课管理,对登录用户管理。系统概念图四 系统界面设计1 登录界面登录界面是用于用户登录的,是整个程序的关口,只有正确的用户登录了,才能进行接下来的用户功能操作,在界面中有两个textbox用于输入用户账号和密码,两个按钮用于登录和退出操作。2 学生界面(1) 当学生输入正确的账号密码进入是,进入自己的个人信息界面,此界面可以展示出该学生的个人信息,学号、姓名、性别、出生日期、所在系、相片、所选课程,其中所选课程是用DataGridView来显示列表。(2) 学生选课页面,是用于学生选课添加的,该列表也是用DataGridView来显示,此列表用SELECT语句关联显示学生所能选课的列表,并且有一个勾选列,用于选择选课,当学生勾选并确认选课后课程列表可以刷新,不显示已选的课程。界面效果如下图:(3) 修改密码,学生可以对自己的登录密码进行修改。界面效果图如下:3 教师界面(1)当教师登录时,进入的是教师界面,教师功能主要是用DataSet绑定数据库来做的,所以其中的很多显示栏只需拖动数据源相应的表就能实现要求,首先是教师个人信息页,展示了该教师的个人信息,和他所受的课程,还有所授学生的列表。(2)成绩录入页,教师能录入所有选了他所授课程的学生成绩,此列表用DataGridView来显示,所关联的数据是根据教师关联课程表再关联选课表来实现。当选择列表中的一行时,下面的信息栏会显示出该行信息类容,并且只有成绩这一栏可以修改,当点击确认录入后,信息修改被添加到选课表中,并且刷新成绩录入列表。(3)学生信息查询,该页显示了所有学生的列表。并且下面有查询条件栏,教师可根据想要得查询条件来进行学生信息查询,此查询语句是用SELECT语句进行拼接填写的并且可以模糊查找,当点击查询按钮时,上面的列表可显示根据条件所查询出来的结果,并且可以打印列表中的信息名单。4 管理员界面(1)管理员登录时,进入管理员界面,管理可以查看学生详细信息,并且对信息进行添删修改操作,在此界面中,可用导航栏操作,并且可以用鼠标滚动键来对导航进行上下滚动显示。照片的载入功能可以用按钮载入选择本地的图片,也可直接拖动图片放如照片框完成载入。(2)利用用DataGridView的添删修改功能来直接对数据进行管理操作,根据需要,分别设计学生列表、教师列表、课程管理、选课管理、学院管理和用户管理页面。当对列表进行操作后,只需点击确认修改按钮,就能保存数据。附录 部分程序代码(学生窗体设计部分):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 System.IO;namespace SCHOOLAPP public partial class STDFrom : Form byte imgBytes; public STDFrom() InitializeComponent(); private void STDFrom_Load(object sender, EventArgs e) /个人信息 SqlConnection con = new SqlConnection(); con.ConnectionString = Program.Getconstr; con.Open(); SqlCommand cmd = con.CreateCommand(); cmd.CommandText = select * from STUDENT where Sno =Sno; cmd.Parameters.Add(new SqlParameter(Sno, Program.UID); SqlDataReader srd = cmd.ExecuteReader(CommandBehavior.CloseConnection); srd.Read(); snoTextBox.Text = srd.GetValue(0).ToString(); snameTextBox.Text = srd.GetValue(1).ToString(); sgendertextBox.Text = srd.GetValue(2).ToString(); sbirthDateTimePicker.Value = Convert.ToDateTime(srd.GetValue(3); sdepttextBox.Text = srd.GetValue(4).ToString(); if (srd.GetValue(5) != DBNull.Value) imgBytes = (Byte)srd.GetValue(5); using (MemoryStream ms = new MemoryStream(imgBytes) spicPictureBox.Image = Bitmap.FromStream(ms); else spicPictureBox.Image = null; /个人信息所选课程 SqlConnection cne = new SqlConnection(); SqlCommand cmd2 = new SqlCommand(); SqlDataAdapter da = new SqlDataAdapter(); DataSet ds = new DataSet(); cne.ConnectionString = Program.Getconstr; cmd2.Connection = cne; cmd2.CommandText = select SC.Cno,SC.Cname,TEACHER.Tname,Grade from SC INNER JOIN COURSE ON SC.Cno=COURSE.Cno INNER JOIN TEACHER ON COURSE.Cteacher=TEACHER.Tno where Sno= + Program.UID + ; da.SelectCommand = cmd2; da.Fill(ds, SC); dataGridView1.DataSource = ds.Tables0.DefaultView; /可选课列表 SqlConnection cnet = new SqlConnection(); SqlCommand cmd3 = new SqlCommand(); SqlDataAdapter da2 = new SqlDataAdapter(); DataSet ds2 = new DataSet(); cnet.ConnectionString = Program.Getconstr; cmd3.Connection = cnet; cmd3.CommandText = select Cno,Cname,Ccredit,TEACHER.Tname from COURSE INNER join TEACHER on COURSE.Cteacher = TEACHER.TNO WHERE Cno NOT IN(SELECT Cno from SC where Sno= + Program.UID + ); da.SelectCommand = cmd3; da.Fill(ds2); dataGridView2.DataSource = ds2.Tables0.DefaultView; /修改密码 private void updatapw_Click(object sender, EventArgs e) SqlConnection con = new SqlConnection(); con.ConnectionString = Program.Getconstr; try con.Open(); SqlCommand cmd = con.CreateCommand(); string Uid = Program.UID; if (newpwtext.Text = newpwtext2.Text) cmd.CommandText = update USERS set Uid=uid,Upassword=upassword where Uid=uid; cmd.Parameters.AddRange(new SqlParameter new SqlParameter(uid, Program.UID), new SqlParameter(upassword, newpwtext2.Text.ToString() ); cmd.ExecuteNonQuery(); MessageBox.Show(修改学生信息成功!, 提示信息, MessageBoxButtons.OK, MessageBoxIcon.Information); else MessageBox.Show(密码不一致!); catch (Exception ex) MessageBox.Show(ex.Message, 错误信息, MessageBoxButtons.OK, MessageBoxIcon.Error); finally if (con != null & con.State = ConnectionState.Open) con.Close(); /确认选课 private void Selectbtn_Click(object sender, EventArgs e) SqlConnection connet = new SqlConnection(); connet.ConnectionString = Program.Getconstr; try bool ischeck; string cno; string cna; connet.Open(); SqlCommand cmd = connet.CreateCommand(); DataGridViewCheckBoxCell davcheck; for (int i = 0; i this.dataGridView2.Rows.Count; i+) this.dataGridView2.EndEdit(); davcheck = (DataGridViewCheckBoxCell)this.dataGridView2.Rowsi.Cells0; ischeck = Convert.ToBoolean(davcheck.Value); if (ischeck = true) cno = this.dataGridView2.Rowsi.Cells1.Value.ToString(); cna = this.dataGridView2.Rowsi.Cells2.Value.ToString(); cmd.CommandText = Insert into SC(Sno,Cno,Cname) Values( + Program.UID + , + int.Parse(cno) + , + cna + ); cmd.ExecuteNonQuery(); catch (Exception ex) MessageBox.Show(ex.Message, 错误信息, MessageBoxButtons.OK, MessageBoxIcon.Error); finally if (connet != null & connet.State = ConnectionState.Open) connet.Close(); /个人信息所选课程 SqlConnection cne = new SqlConnection(); SqlCommand cmd2 = new SqlCommand(); SqlDataAdapter da = new SqlDataAdapter(); DataSet ds = new DataSet(); cne.ConnectionString = Program.Getconstr; cmd2.Connection = cne; cmd2.CommandText = select SC.Cno,SC.Cname,TEACHER.Tname,Grade from SC INNER JOIN COURSE ON SC.Cno=COURSE.Cno INNER JOIN TEACHER ON COURSE.Cteacher=TEACHER.Tno where Sno= + Program.UID + ; da.SelectCommand = cmd2; da.Fill(ds, SC); dataGridView1.DataSource = ds.Tables0.DefaultView; /可选课列表 SqlConnection cnet = new SqlConnection(); SqlCommand cmd3 = new SqlCommand(); SqlDataAdapter da2 = new SqlDataAdapter(); DataSet ds2 = new DataSet(); cnet.ConnectionString = Program.Getconstr; cmd3.Connection = cnet; cmd3.CommandText = select Cno,Cname,Ccredit,TEACHER.Tname from COURSE INNER join TEACHER on COURSE.Cteacher = TEACHER.TNO WHERE Cno NOT IN(SELECT Cno from SC where Sno= + Program.UID + ); da.SelectCommand = cmd3; da.Fill(ds2); dataGridView2.DataSource = ds2.Tables0.DefaultView; 登录窗口代码: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 System.IO;namespace SCHOOLAPP public partial class Form1 : Form public Form1() InitializeComponent(); private void button1_Click(object sender, EventArgs e) try sqlConnection1.Open(); SqlCommand cmd = sqlConnection1.CreateCommand(); string username = textBox1.Text; string password = textBox2.Text; cmd.CommandText = select * from USERS where Uid=ID and Upassword=key; cmd.Parameters.AddRange(new SqlParameter new SqlParameter(ID, username), new SqlParameter(key, password) ); SqlDataReader srd = cmd.ExecuteReader(CommandBehavior.CloseConnection); srd.Read(); Program.UID = srd.GetValue(0).ToString();/获取全局变量ID String getkind = srd.GetValue(2).ToString();/获取权限等级 if (srd.HasRows) this.DialogResult = DialogResult.OK; if (getkind = 1) MessageBox.Show(欢迎学生进入学籍管理系统); STDFrom stdform =new STDFrom(); stdform.Show(); else if (getkind=2) MessageBox.Show(欢迎老师进入学籍管理系统); TCHForm tchform = new TCHForm(); tchform.Show(); else if (getkind = 3) MessageBox.Show(管理员登录成功); AMForm amform = new AMForm(); amform.Show(); else MessageBox.Show(密码错误); catch (Exception ex) MessageBox.Show(ex.Message, 错误信息, MessageBoxButtons.OK, MessageBoxIcon.Error); finally if (sqlConnection1 != null & sqlConnection1.State = ConnectionState.Open) sqlConnection1.Close(); private void button2_Click_1(object sender, EventArgs e) Application.Exit(); 教师窗口: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 System.IO;namespace SCHOOLAPP public partial class TCHForm : Form byte imgBytes; DataView mydv = new DataView();/dataview类,查询时用到 public TCHForm() InitializeComponent(); dataGridView1.ReadOnly = true; private void tEACHERBindingNavigatorSaveItem_Click(object sender, EventArgs e) this.Validate(); this.tEACHERBindingSource.EndEdit(); this.tEACHERTableAdapter.Update(this.sCHOOLDataSet.TEACHER); private void TCHForm_Load(object sender, EventArgs e) / TODO: 这行代码将数据加载到表“sCHOOLDataSet.STUDENT”中。您可以根据需要移动或移除它。 this.sTUDENTTableAdapter.Fill(this.sCHOOLDataSet.STUDENT); / TODO: 这行代码将数据加载到表“sCHOOLDataSet.SC”中。您可以根据需要移动或移除它。 this.sCTableAdapter.Fill(this.sCHOOLDataSet.SC); / TODO: 这行代码将数据加载到表“sCHOOLDataSet.COURSE”中。您可以根据需要移动或移除它。 this.cOURSETableAdapter.Fill(this.sCHOOLDataSet.COURSE); / TODO: 这行代码将数据加载到表“sCHOOLDataSet.TEACHER”中。您可以根据需要移动或移除它。 this.tEACHERTableAdapter.Fill(this.sCHOOLDataSet.TEACHER); tEACHERBindingSource.Filter = Tno= + Program.UID + ;/将输入的全局ID绑定到BindingSource中,使教师信息实现数据绑定 /学生信息查询dataGridView1的显示绑定 SqlConnection myconn = new SqlConnection(); DataSet myds = new DataSet(); myconn.ConnectionString = Server=(local);database=SCHOOL;Integrated Security=true; myconn.Open(); SqlDataAdapter myda = new SqlDataAdapter(SELECT * FROM STUDENT , myconn); myda.Fill(myds, STUDENT); mydv = myds.TablesSTUDENT.DefaultView; dataGridView1.DataSource = mydv; /保存按钮 private void tEACHERBindingNavigatorSaveItem_Click_1(object sender, EventArgs e) this.Validate(); this.tEACHERBindingSource.EndEdit(); this.tEACHERTableAdapter.Update(this.sCHOOLDataSet.TEACHER); MessageBox.Show(保存成功!); /学生查询 private void button1_Click(object sender, EventArgs e) Sdeptcombo.Text = ; string condstr = ; if (Snotext.Text != ) condstr = Sno = + Snotext.Text + ; if (Snametext.Text != ) if (condstr != ) condstr = condstr + AND Sname Like + Snametext.Text + %; else condstr = Sname Like + Snametext.Text + %; if (Sgendercombo.Text != ) if (condstr != ) condstr = condstr + AND Sgender = + Sgendercombo.Text + ; else condstr = Sgender = + Sgendercombo.Text + ; if (Sdeptcombo.Text != ) if (condstr != ) condstr = condstr + AND Sdept = + Sdeptcombo.Text + ; else condstr = Sdept = + Sdeptcombo.Text + ; mydv.RowFilter = condstr; label7.Text = dataGridView1.Rows.Count.ToString(); ; /查询条件制空 private void button2_Click(object sender, EventArgs e) Snotext.Text = ; Snametext.Text = ; Sgendercombo.Text = ; Sdeptcombo.Text = ; /单击dataGridView单元格显示学生图片 private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) string SelectCell; SelectCell = this.dataGridView1.Rowse.RowIndex.Cells0.Value.ToString(); SqlConnection con = new SqlConnection(); con.ConnectionString = Program.Getconstr; con.Open(); SqlCommand cmd = con.CreateCommand(); cmd.CommandText = select Spic from STUDENT where Sno =Sno; cmd.Parameters.Add(new SqlParame

温馨提示

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

评论

0/150

提交评论