1、教学教务管理系统教学教务管理系统window窗体1.总体设计1.1.编写目的某学院教务处教学事务现由手工管理,效率低、易出错、耗费人力.教务处希望设计一个实用的教学事务管理系统,完成学生的学籍管理、报到注册、课程的选择、成绩登入、各种通知单的打印和报表的输出等1.2.可行性分析可利用现有学校资源,结合常用的vs2012、sql 2008等软件即可.软件分成c/s模式。开发人员具有一定经验,可开发一些小软件。1.3.性能分析管理,维护上万条学生记录信息。能满足近百位学生同时对个人信息的查询。具有较高的可靠性。安全和保密性高.1.4.系统分析教务管理系统是一个面向学校教务人员,为其提供服务的综合信
2、息管理系统。教务人员通过本系统完成相关的日常工作,这些工作也是平常较为繁重的工作.学生的个人信息、所有的课程考试成绩以及每学期的开课情况都记录在教务系统里进行管理。1.5.需求分析旨在开发一个统一的网上教务信息管理平台,利用信息化手段辅助教学管理,达到提升我校教学管理信息化水平的目的。学生的学籍管理:建立学生学籍档案,对新入学的学生进行登记,将他们的信息记入学籍档案,对毕业、休学、退学的学生进行除名、注销,对调整专业的学生必须做调整记载.对变动情况建立备忘录,对上述情况的变动原因、时间、去向等进行记载。学生学期开学的课程选择,对必修课、限选课直接录入,计算总成绩、平均成绩,并按班级排出名次。统
3、计功能,统计各门课程的及格率,优秀率,各分数档人选。系统可查选学生的学籍情况和选课、学习情况,打印学籍表、个人成绩报告表、班级名词表、各门课程统计表等要求的表格。2.总体设计2.1.软件模块结构设计根据系统分析的结果,按照结构化的系统设计方法,教学事务管理系统从功能由模块名功能简介信息管理录入学生基本信息,如姓名,学号,籍贯,性别,家庭住址,出生年月等基本信息状态管理对其毕业,休学,调整专业等进行备忘处理。成绩管理对选修课必修课成绩的录入,计算成绩,排名等功能2.2.板块设计2.2.1.登录界面流程处理图2.2.2.学生信息管理结构图2.2.3.状态信息管理结构图2.2.4.课程管理状态图2.
4、2.5.成绩管理状态图3.。接口设计3.1.用户接口在用户界面部分,根据需求分析的结果,用户需要一个用户友善界面。在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。其中针对教务管理人员的界面要做到操作简单,易于管理.在设计上采用逐级下拉式菜单方式。同时,运行出错时应以标准形式给出出错提示.3.2.外部接口服务器端程序可DAO(数据访问对象)应用程序编程接口(API),对SQL SERVER数据库进行所有的访问。 服务器程序上可使用SQL SERVER 的对数据库的备分命令,以做到对数据的保存.3.3.内部接口信息管理模块:对其他模块提供对学生信息查询
5、的接口,包括按学号、姓名和班级三种查询方式。4.数据库需求分析通过对学校管理工作过程的内容和数据流图分析,设计如下面的数据项和数据结构.学生档案,包括的数据项有:学生的学号、姓名、性别、出生年月、籍贯、政治面貌、家庭住址、入学时间、学院、专业、年级、班级。课程选择,包括的数据项有:课程编号、课程名称。课程成绩,包括的数据项有:学生编号、学生姓名、课程编号、课程名称、课程成绩.备忘录,包括的数据项有:学生编号、学生姓名、去向、原因、时间,系院、专业、年级、班级。学生的成绩情况,包括的数据项有:学生编号、学生姓名、总成绩、平均成绩、班级.数据库概念结构设计根据上面设计规划出的实体,我们对各个实体具
6、体的描述ER图如下:课程选择er学生信息er课程成绩e-r备忘录e-r学生成绩情况e-r4.1. 数据库逻辑结构设计STUDENT_INFO(学生信息表)字段名数据类型长度说明描述IDnchar10不空,主键学生编号NAMEnvarchar20不空学生姓名SEXnchar10不空男、女性别BIRTHDAYdatetime不空出生年月JGnvarchar50不空籍贯ZZMMnvarchar50不空政治面貌JTZZnvarchar50不空家庭住址RXDATEdatetime不空入学日期XYnvarchar20不空系院ZYnvarchar20不空专业NJnvarchar20不空年纪CLASSnvar
7、char20不空班级ZTnvarchar20不空状态CS_INFO(课程成绩信息)字段名数据类型长度说明描述CS_STUD_IDnchar10不空,主键学生编号CS_STUD_NAMEnvarchar20不空学生姓名CS_COU_IDnchar10不空,主键课程编号CS_COU_NAMEnvarchar30不空课程名称CS_GRADEint不空成绩SC(课程信息表)字段名数据类型长度说明描述C_IDnchar10不空,主键课程编号C_NAMEnvarchar30不空课程名称BWL_INFO(备忘录)字段名数据类型长度说明描述STU_IDnchar10不空,主键学生编号STU_NAMEnvarc
8、har20不空学生姓名BWLnvarchar50不空去向REASONnvarchar50不空原因TIMEdatetime不空时间XYnvarchar20不空去的系院ZYnvarchar20不空去的专业NJnvarchar20不空年级CLASSnvarchar20不空班级RECORD(学生成绩情况信息)字段名数据类型长度说明描述RE_STUD_IDnchar10不空,外键学生编号RE_STUD_NAMEnvarchar20不空学生姓名RE_ALLint不空总成绩RE_AVGint不空平均成绩RE_BANJInvarchar20不空班级5.程序设计5。1登录界面 该界面为登录窗口,需要正确的账号及
9、密码才能正确登录,如图一图一 登录界面主要代码设计如下:private void button1_Click(object sender, EventArgs e) string connString=”DataSource=(LocalDB)v11。0; AttachDbFilename=DataDirectory|Student。mdf;Integrated Security=True;Connect Timeout=30”; SqlConnection conn=new SqlConnection(connString); conn.Open(); string sql=select F
10、rom UserInfo where UserName=+txtUserName。Text。Trim()+and UserPwd=”+txtUserPwd。Text.Trim()+” ”; SqlCommand cmd=new SqlCommand(sql,conn); SqlDataReader dr = cmd.ExecuteReader(); if (dr。Read() Username = dr”UserName。ToString(); frmMain frm = new frmMain(); frm.Show(); this.Hide(); else MessageBox。Show(
11、”账号或密码错误!请重新输入!, 出错了,MessageBoxButtons.OK, MessageBoxIcon。Error); dr。Close(); conn。Close(); 5.2程序主界面 该界面为各种功能提供了集合的面板,所有程序功能均能在该界面找到相应入口,包括修改用户登录密码、管理学生信息、管理课程信息和管理学生成绩,如图二:图二5。3学生信息管理5.3。1 添加学生信息该界面提供录入学生信息到数据库当中,如图三图三主要代码设计: private void button1_Click(object sender, EventArgs e) if (txtID.Text。Tri
12、m().Length != 0txtName.Text!=&comboBox1。SelectedValue!=) string studentSex = ”; if (optMale.Checked) studentSex = ”男”; if (optFemale.Checked) studentSex = ”女; string sql = ”insert into studentinfo(StudentId,StudentName,StudentSex,StudentNativePlace,StudentBirthday,studentclass) Values( + txtID。Text
13、+ ,N + txtName.Text + ”,N” + studentSex + ”,N” + cbNativePlace.SelectedItem + ,” + dateTimePicker1.Value + ,N+comboBox1。SelectedValue+)”; try if (OperateDB。ExecuteNonQuery(sql) = 1) MessageBox。Show(”添加成功”); else MessageBox.Show(”添加失败”); catch(Exception err) MessageBox.Show(数据库读取出错”); else MessageBox
14、。Show(填写完整信息); 5。3.2查询界面 该界面提供查询某学生学籍信息和个人成绩功能,如图四和图五图四图五查询学生信息窗体主要代码如下:private void button1_Click(object sender, EventArgs e) string sql = ”select studentclass as 班级, StudentId as 学号,StudentName as 名字 ,StudentSex as 性别,StudentNativePlace as 籍贯 from StudentInfo where StudentName like N%”+txtName.Tex
15、t.Trim()+”; DataSet ds = OperateDB。ExecuteDataSet(sql); dataGridView1。DataSource = ds。Tables0。DefaultView; 查询个人成绩窗体主要代码如下: private void button1_Click(object sender, EventArgs e) if (textBox1.Text = ”) MessageBox.Show(请输入正确信息); else string sql = ”select grade_info。Cou_name as 科目 ,grade_info.Grade as
16、成绩 ,course_info.count as 学分 from course_info join grade_info on course_info。cou_name=grade_info。cou_name where stud_name=N + textBox1.Text + ” ; DataSet ds = OperateDB。ExecuteDataSet(sql); dataGridView1。DataSource = ds.Tables0。DefaultView; 5.4课程管理5.4.1添加课程 为每个班级添加本学期课程内容,如图六图六主要代码如下: private void bu
17、tton1_Click(object sender, EventArgs e) if (textBox1。Text != textBox2.Text != ” & textBox3。Text != ” & textBox4.Text != & comboBox1。SelectedValue != ”) string sql = ”insert into course_info values( + textBox1。Text + ,N” + textBox2.Text + ”,N” + textBox3.Text + ,” + textBox4.Text + ); string sql2 = ”
18、insert into class values(N” + comboBox1。SelectedValue + , + textBox1.Text + ”,N + textBox2.Text + )”; OperateDB.ExecuteNonQuery(sql2); try if (OperateDB。ExecuteNonQuery(sql) = 1) MessageBox。Show(”添加成功); else MessageBox。Show(”添加失败”); catch (Exception err) MessageBox.Show(”数据库读取失败); else MessageBox.Sh
19、ow(填写完整信息); 5。4。.2查询及修改课程信息该窗体为查询课程的详细信息及修改某些课程属性,如图七图七主要代码如下: private void button1_Click(object sender, EventArgs e) string sql; Regex rx = new Regex(”u4E00-u9FA5+); if (rx。IsMatch(textBox1。Text) sql = select * from course_info where cou_name like N%” + textBox1。Text + ”% or teacher like N+textBox1
20、.Text+”%; else sql = select * from course_info where cou_id like +textBox1。Text+; DataSet ds = OperateDB.ExecuteDataSet(sql); dataGridView1.DataSource = ds.Tables0.DefaultView; 5。5成绩管理5.5.1添加学生成绩该界面可以录入学生本学期所有成绩,如图八图八主要代码设计如下: private void textBox1_Leave(object sender, EventArgs e) string sql = ”sel
21、ect Studentid from studentinfo where studentname=N”+textBox1.Text+ ; DataSet ds = OperateDB.ExecuteDataSet(sql); textBox2.Text=ds.Tables0。Rows00.ToString(); private void comboBox1_Leave(object sender, EventArgs e) string sql = ”select cou_id from course_info where cou_name=N + comboBox1。SelectedText
22、 + ”; DataSet ds = OperateDB.ExecuteDataSet(sql); textBox4.Text = ds。Tables0.Rows00.ToString(); private void button1_Click(object sender, EventArgs e) if (textBox1。Text != ” comboBox1.SelectedValue != ” ) if (textBox3。Text != ”) string sql = ”insert into grade_info values(” + textBox2。Text + ,” + te
23、xtBox4.Text + ”,N” + textBox1。Text + ”, + textBox3。Text + ”,N + comboBox1。SelectedValue + )”; try if (OperateDB.ExecuteNonQuery(sql) = 1) MessageBox。Show(”添加成功”); else MessageBox.Show(添加失败); catch (Exception err) MessageBox。Show(err。ToString(); else MessageBox。Show(”请输入成绩”); else MessageBox.Show(”请输
24、入姓名或科目”); private void button2_Click(object sender, EventArgs e) textBox1。Text = ; textBox2。Text = ”; textBox3.Text = ”; textBox4.Text = ”; private void gradeAdd_Load_1(object sender, EventArgs e) this.course_infoTableAdapter。Fill(this.studentDataSet6。course_info); 5。5.2统计班级信息该界面可以统计某班级某分数段某学科成绩,并显示
25、该分数段人数,同时显示该班级该科的及格率和优秀率,如图九图九主要代码如下: private void frmtongj_Load(object sender, EventArgs e) this。studentinfoTableAdapter。Fill(this。studentDataSet1.studentinfo); private void button1_Click(object sender, EventArgs e) int a=0, b=0;/设置查询数据区间 if(comboBox2。SelectedItem=”及格) a = 60; b = 100; else if(comb
26、oBox2.SelectedItem=”不及格”) a = 0; b = 59; else if (comboBox2.SelectedItem = ”6069) a = 60; b = 69; else if (comboBox2。SelectedItem = 7079) a = 70; b = 79; else if (comboBox2.SelectedItem = ”80100) a = 80; b = 100; else if (comboBox2。SelectedItem = ”全部) a = 0; b = 100; float m, n;/定义及格人数和优秀人数 string s
27、ql = select stud_id as 学号,stud_name as 姓名,grade as 成绩 from grade_info where stud_id IN (select studentid from studentinfo where studentclass=N + comboBox1.Text + ” ) and cou_name =N + comboBox3.Text + ”and grade=” + a + ” and grade= + b + ; DataSet ds = OperateDB.ExecuteDataSet(sql); dataGridView1.D
28、ataSource = ds。Tables0.DefaultView; textBox1。Text = Convert。ToString( ds。Tables0。Rows。Count); string sql4 = ”select stud_id from grade_info where stud_id IN (select studentid from studentinfo where studentclass=N + comboBox1.Text + ” ) and cou_name =N” + comboBox3.Text + ”; DataSet ds4 = OperateDB.ExecuteDataSet(sql4);/统计该班级总人数 string sql2 = select stud_id from grade_info where stud_id IN (select studentid from studentinfo where studentclass=N + comboB
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1