1、教学教务管理系统window窗体1. 总体设计1.1. 编写目某学院教务处教学事务现由手工管理,效率低、易出错、耗费人力。教务处但愿设计一种实用教学事务管理系统,完毕学生学籍管理、报到注册、课程选取、成绩登入、各种告知单打印和报表输出等1.2. 可行性分析可运用既有学校资源,结合惯用vs、sql 等软件即可。软件提成c/s模式。开发人员具备一定经验,可开发某些小软件。1.3. 性能分析管理,维护上万条学生记录信息。能满足近百位学生同步对个人信息查询。具备较高可靠性。安全和保密性高。1.4. 系统分析教务管理系统是一种面向学校教务人员,为其提供服务综合信息管理系统。教务人员通过本系统完毕有关寻常
2、工作,这些工作也是寻常较为繁重工作。学生个人信息、所有课程考试成绩以及每学期开课状况都记录在教务系统里进行管理。1.5. 需求分析旨在开发一种统一网上教务信息管理平台,运用信息化手段辅助教学管理,达到提高我校教学管理信息化水平目。学生学籍管理:建立学生学籍档案,对新入学学生进行登记,将她们信息记入学籍档案,对毕业、休学、退学学生进行除名、注销,对调节专业学生必要做调节记载。对变动状况建立备忘录,对上述状况变动因素、时间、去向等进行记载。学生学期开学课程选取,对必修课、限选课直接录入,计算总成绩、平均成绩,并按班级排出名次。记录功能,记录各门课程及格率,先进率,各分数档人选。系统可查选学生学籍状
3、况和选课、学习状况,打印学籍表、个人成绩报告表、班级名词表、各门课程登记表等规定表格。2. 总体设计2.1. 软件模块构造设计依照系统分析成果,按照构造化系统设计办法,教学事务管理系统从功能由模块名功能简介信息管理录入学生基本信息,如姓名,学号,籍贯,性别,家庭住址,出生年月等基本信息状态管理对其毕业,休学,调节专业等进行备忘解决。成绩管理对选修课必修课成绩录入,计算成绩,排名等功能顾客登录2.2. 板块设计验证登录主界面课程管理成绩管理信息管理状态管理2.2.1. 登录界面流程解决图主界面判断对的输入账号顾客选取开始界面2.2.2. 学生信息管理构造图信息管理查询学生信息添加学生信息学号查询
4、名字查询修改学生信息登录账号权限2.2.3. 状态信息管理构造图状态管理转专业管理退学管理休学解决2.2.4. 课程管理状态图课程管理添加课程查询课程删除课程修改课程2.2.5. 成绩管理状态图单科成绩成绩管理添加学生成绩查询学生信息班级科目先进率各分段成绩排名班级排名总成绩及格率记录学生信息平均成绩3. .接口设计3.1. 顾客接口在顾客界面某些,依照需求分析成果,顾客需要一种顾客友善界面。在界面设计上,应做到简朴明了,易于操作,并且要注意到界面布局,应突出显示重要以及出错信息。其中针对教务管理人员界面要做到操作简朴,易于管理。在设计上采用逐级下拉式菜单方式。同步,运营出错时应以原则形式给出
5、出错提示。3.2. 外部接口服务器端程序可DAO(数据访问对象)应用程序编程接口(API),对SQL SERVER数据库进行所有访问。 服务器程序上可使用SQL SERVER 对数据库备分命令,以做到对数据保存。3.3. 内部接口信息管理模块:对其她模块提供对学生信息查询接口,涉及按学号、姓名和班级三种查询方式。4. 数据库需求分析通过对学校管理工作过程内容和数据流图分析,设计如下面数据项和数据构造。l 学生档案,涉及数据项有:学生学号、姓名、性别、出生年月、籍贯、政治面貌、家庭住址、入学时间、学院、专业、年级、班级。l 课程选取,涉及数据项有:课程编号、课程名称.l 课程成绩,涉及数据项有:
6、学生编号、学生姓名、课程编号、课程名称、课程成绩。l 备忘录,涉及数据项有:学生编号、学生姓名、去向、因素、时间,系院、专业、年级、班级。l 学生成绩状况,涉及数据项有:学生编号、学生姓名、总成绩、平均成绩、班级。l 数据库概念构造设计依照上面设计规划出实体,咱们对各个实体详细描述E-R图如下:课程课程编号课程名称课程选取e-r班级状态学生编号年级专业姓名学生性别学院出生年月家庭住址籍贯政治面貌学生信息er学生编号学生姓名课程成绩课程成绩课程编号课程名称课程成绩e-r学生编号班级学生姓名年级备忘录专业去向系院因素时间备忘录e-r学生编号学生姓名学生成绩状况班级平均成绩总成绩学生成绩状况e-r4
7、.1. 数据库逻辑构造设计STUDENT_INFO(学生信息表)字段名数据类型长度阐明描述IDnchar10不空,主键学生编号NAMEnvarchar20不空学生姓名SEXnchar10不空男、女性别BIRTHDAYdatetime不空出生年月JGnvarchar50不空籍贯ZZMMnvarchar50不空政治面貌JTZZnvarchar50不空家庭住址RXDATEdatetime不空入学日期XYnvarchar20不空系院ZYnvarchar20不空专业NJnvarchar20不空年龄CLASSnvarchar20不空班级ZTnvarchar20不空状态CS_INFO(课程成绩信息)字段名数
8、据类型长度阐明描述CS_STUD_IDnchar10不空,主键学生编号CS_STUD_NAMEnvarchar20不空学生姓名CS_COU_IDnchar10不空,主键课程编号CS_COU_NAMEnvarchar30不空课程名称CS_GRADEint不空成绩SC(课程信息表)字段名数据类型长度阐明描述C_IDnchar10不空,主键课程编号C_NAMEnvarchar30不空课程名称BWL_INFO(备忘录)字段名数据类型长度阐明描述STU_IDnchar10不空,主键学生编号STU_NAMEnvarchar20不空学生姓名BWLnvarchar50不空去向REASONnvarchar50不
9、空因素TIMEdatetime不空时间XYnvarchar20不空去系院ZYnvarchar20不空去专业NJnvarchar20不空年级CLASSnvarchar20不空班级RECORD(学生成绩状况信息)字段名数据类型长度阐明描述RE_STUD_IDnchar10不空,外键学生编号RE_STUD_NAMEnvarchar20不空学生姓名RE_ALLint不空总成绩RE_AVGint不空平均成绩RE_BANJInvarchar20不空班级5. 程序设计5.1登录界面 该界面为登录窗口,需要对的账号及密码才干对的登录,如图一图一 登录界面重要代码设计如下:private void button
10、1_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 * From UserInfo where UserName=+txtUserName.Text.T
11、rim()+and UserPwd=+txtUserPwd.Text.Trim()+ ; SqlCommand cmd=new SqlCommand(sql,conn); SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read() Username = drUserName.ToString(); frmMain frm = new frmMain(); frm.Show(); this.Hide(); else MessageBox.Show(账号或密码错误!请重新输入!,出错了,MessageBoxButtons.OK, MessageBox
12、Icon.Error); dr.Close(); conn.Close(); 5.2程序主界面 该界面为各种功能提供了集合面板,所有程序功能均能在该界面找到相应入口,涉及修改顾客登录密码、管理学生信息、管理课程信息和管理学生成绩,如图二:图二5.3学生信息管理5.3.1 添加学生信息该界面提供录入学生信息到数据库当中,如图三图三重要代码设计: private void button1_Click(object sender,EventArgs e) if (txtID.Text.Trim().Length != 0&txtName.Text!=&comboBox1.SelectedValue!
13、=) string studentSex = ; if (optMale.Checked) studentSex = 男; if (optFemale.Checked) studentSex = 女; string sql = insert into studentinfo(StudentId,StudentName,StudentSex,StudentNativePlace,StudentBirthday,studentclass) Values( + txtID.Text + ,N + txtName.Text + ,N + studentSex + ,N + cbNativePlace.
14、SelectedItem + , + dateTimePicker1.Value + ,N+comboBox1.SelectedValue+); try if (OperateDB.ExecuteNonQuery(sql) = 1) MessageBox.Show(添加成功); else MessageBox.Show(添加失败); catch(Exception err) MessageBox.Show(数据库读取出错); else MessageBox.Show(填写完整信息); 5.3.2查询界面 该界面提供查询某学生学籍信息和个人成绩功能,如图四和图五图四图五查询学生信息窗体重要代码如
15、下: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.Text.Trim()+%; DataSet ds = OperateDB.ExecuteDataSet(sql); dataGridView1.Data
16、Source = 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 成绩 ,course_info.count as 学分 from course_info join grade_info on course_info.c
17、ou_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 button1_Click(object sender,EventArgs e) if (textBox1.Text != & textBox2.Text !=
18、& 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 = insert into class values(N + comboBox1.SelectedValue + , + textBox1.Text + ,N + textBox2.
19、Text + ); OperateDB.ExecuteNonQuery(sql2); try if (OperateDB.ExecuteNonQuery(sql) = 1) MessageBox.Show(添加成功); else MessageBox.Show(添加失败); catch (Exception err) MessageBox.Show(数据库读取失败); else MessageBox.Show(填写完整信息); 5.4.2查询及修改课程信息该窗体为查询课程详细信息及修改某些课程属性,如图七图七重要代码如下: private void button1_Click(object s
20、ender,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.Text+%; else sql = select * from course_info where cou_id like %+textBox1.Text+%; DataSet ds = Oper
21、ateDB.ExecuteDataSet(sql); dataGridView1.DataSource = ds.Tables0.DefaultView; 5.5成绩管理5.5.1添加学生成绩该界面可以录入学生本学期所有成绩,如图八图八重要代码设计如下: private void textBox1_Leave(object sender,EventArgs e) string sql = select Studentid from studentinfo where studentname=N+textBox1.Text+ ; DataSet ds = OperateDB.ExecuteDat
22、aSet(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 + ; DataSet ds = OperateDB.ExecuteDataSet(sql); textBox4.Text = ds.Tables0.Rows00.ToString(); private v
23、oid button1_Click(object sender,EventArgs e) if (textBox1.Text != & comboBox1.SelectedValue != ) if (textBox3.Text != ) string sql = insert into grade_info values( + textBox2.Text + , + textBox4.Text + ,N + textBox1.Text + , + textBox3.Text + ,N + comboBox1.SelectedValue + ); try if (OperateDB.Execu
24、teNonQuery(sql) = 1) MessageBox.Show(添加成功); else MessageBox.Show(添加失败); catch (Exception err) MessageBox.Show(err.ToString(); else MessageBox.Show(请输入成绩); else MessageBox.Show(请输入姓名或科目); private void button2_Click(object sender,EventArgs e) textBox1.Text = ; textBox2.Text = ; textBox3.Text = ; textB
25、ox4.Text = ; private void gradeAdd_Load_1(object sender,EventArgs e) this.course_infoTableAdapter.Fill(this.studentDataSet6.course_info); 5.5.2记录班级信息该界面可以记录某班级某分数段某学科成绩,并显示该分数段人数,同步显示该班级该科及格率和先进率,如图九图九重要代码如下: private void frmtongj_Load(object sender,EventArgs e) this.studentinfoTableAdapter.Fill(thi
26、s.studentDataSet1.studentinfo); private void button1_Click(object sender,EventArgs e) int a=0,b=0;/设立查询数据区间 if(comboBox2.SelectedItem=及格) a = 60; b = 100; else if(comboBox2.SelectedItem=不及格) a = 0; b = 59; else if (comboBox2.SelectedItem = 6069) a = 60; b = 69; else if (comboBox2.SelectedItem = 7079
27、) 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 sql = select stud_id as 学号,stud_name as 姓名,grade as 成绩 from grade_info where stud_id IN (select studentid from studentinfo where studentclas
28、s=N + comboBox1.Text + ) and cou_name =N + comboBox3.Text + and grade= + a + and grade=60 ; DataSet ds2 = OperateDB.ExecuteDataSet(sql2);/记录该科几种结识 m =(float) ds2.Tables0.Rows.Count / (float)ds4.Tables0.Rows.Count;/计算出及格率 textBox2.Text = Convert.ToString(m); string sql3 = select stud_id from grade_in
29、fo where stud_id IN (select studentid from studentinfo where studentclass=N + comboBox1.Text + ) and cou_name =N + comboBox3.Text + and grade=90 ; DataSet ds3 = OperateDB.ExecuteDataSet(sql3);/记录分数不不大于90人数 n = (float)ds3.Tables0.Rows.Count / (float)ds4.Tables0.Rows.Count;/计算出先进率 textBox3.Text = Conv
30、ert.ToString(n); private void comboBox1_Leave(object sender,EventArgs e) this.classTableAdapter.Fill(this.studentDataSet3._class); 5. 系统出错解决设计5.1. 系统出错信息以及解决办法系统出错信息以及解决办法一览表:出错名称系统输出信息解决办法顾客名输入错误“顾客名错!请重新输入!”进入登录页面前三次密码错误“您密码输入有误,请重新输入!”进入登录页面密码错多次数超过三次“密码错误!请半个小时后再进行登录操作!”进入默认登录页,并半小时内禁止该顾客进行登录。输入
31、数据格式错误“输入格式不对的,请检查后再输入!”返回原输入页面不容许为空输入框输入空字符“请输入!”弹回原输入页面输入处选取打印成绩,但未找到可用打印机设备“未检测到可用打印设备,无法进行打印!”停止打印操作系统故障“服务器维护中!暂停服务!”及时启用备用机,恢复故障5.2. 补救办法由于数据在数据库中已有备份,故在系统出错后可以依托数据库恢复功能,并且依托日记文献使系统再启动,就算系统崩溃顾客数据也不会丢失或遭到破坏。但有也许占用更多数据存储空间,权衡办法由顾客来决定。6. 项目设计总结本次项目设计通过设计一种详细程序设计过程,理解到了真实程序是如何实现功能,与错误解决。通过对数据库调用可以
32、更好学习到数据如何工作与分派,也加深了对数据库使用和维护。也理解到了自己诸多局限性,例如流程图设计,需要一种比较完善设计,考虑到需求分析,尽量做到所有功能均能实现,同步完善细微但是却很有必要功能。对于整个程序设计要有一种大体方向,跟着流程图来编写程序运营顺序。并且在有错误地方要有人性化提示语句,提示顾客哪里错误了,这样程序运营起来才会很流畅,给人更好使用体验。在窗口程序设计阶段,最困难是combobox DataSource设立,最后使用绑定数据办法解决,同步可以在数据源里面设立select语句来修改查询内容7. 参照文献1唐政,房大伟.c#项目开发全程实录.清华大学出版社,.6.1项目设计评 语项目设计成 绩指引教师(签字)年 月 日
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100