1、教务系统摘 要随着社会的发展,知识的指数级增长,各行各业都在寻求一种能够降低成本,提高办事效率,提高业务水平的途径,本软件正是基于对这种的考虑才开发出来的。教务管理是学校管理学生的主要工具,对教务的管理有着非常重要的意义,教务的管理包含有很多的信息及数据的管理。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找,如果缺乏系统、规范的信息管理手段,将对教务的管理工作带来很多麻烦。基于目前计算机的普遍流行,如果使用计算机教务管理软件来管理各类信息,应相对轻松得多。现代教务管理系统的开发就是在于提高教务管理的工作效率,加强教务的管理,以全面实行计算机管理,这样以来,不但可以提高管理人
2、员的工作效率,而且能安全、长期地存储教师和学生信息等,便于信息的查找与管理。I目 录摘 要I第1章引言21.1目的21.2文档约定21.3预期读者和阅读建议31.4项目范围31.5参考文献3第2章 可行性分析42.1 人员安排42.2技术要求42.3 开发环境42.3.1.软件环境42.3.2.硬件环境42.4 运行环境42.4.1.软件环境42.4.2.硬件环境5第3章 需求分析63.1用户类别63.1.1学生63.1.2教师83.1.3管理员73.1.4教务人员93.2功能需求103.2.1学生端113.2.2教师端123.2.3管理员端133.2.4教务人员端14第4章 数据库设计154
3、.1数据表16第5章 界面分析175.1 管理员界面175.2 教务处界面18第6章 结束语18附录A: 主要源程序19第1章 引言本文档第一章为引言部分,介绍本项目的开发目的和本文档的格式约定以及阅读群和阅读建议。第二章到第五章分别介绍了本项目的功能需求以及系统设计。是对本项目详细综合的描述。后有附表A对本文档内的专业词汇进行解释。附表B对待解决问题进行陈列。1.1目的应各大学校所需 ,现在学生人数不断上升,教务人员对学生信息的管理量也越来越大,传统的手工录入工作量繁重 浪费时间质量也不很理想,已经越来越不现实。基于以上情况下,设计一个完善的教务管理系统以提高工作效率,并且提高正确率,也对出
4、错后的查询和纠错提供方便。而且可以排除一切人为因素。1.2文档约定正文应按目录中编排的章节依次撰写,要求表达正确,论述清楚,文字简练通顺,插图简明,书写整洁。页眉部分(姓名:项目名称)小五号宋体。标题的中文字体是黑体,英文字体是Times New Roman,标题1是三号,标题2是四号,标题3是小四。正文的中文字体是宋体,英文字体是Times New Roman,字号是小四。行间距是1.5倍行间距。文中图、表及公式不能徒手绘制和书写,图的标记在图的下方,表的标记在表的上方,要求为5号宋体字。编号由两部分组成,例如图2.1,表示第二章的第1张图。1.3预期读者和阅读建议本文档预期读者为软件学院管
5、理员,以及下一届软件学院对该产品进行维护的学生。建议先对本校机房管理流程进行了解,然后由功能需求开始阅读。当了解全部操作流程后再对软件该软件内部资料进行阅读,以便更快更深刻的理解该软件。这样可以快速掌握使用方法。也可以快速深刻的了解软件工作机制,以便于维护。1.4项目范围该项目目前仅适用于中原工学院软件学院免费机房。1.5参考文献01马煜 陈海军 朱朝阳 Visual C#.NET案例开发集锦M.北京:电子工业出版社 2008.402郭东恩 数据库原理及应用 M.郑州:河南科学技术出版社 2008.203Ryan Asleson,Nathaniel T.Schutta,金灵译 ajax基础教程
6、 M:人民邮电出版社 2006.204于慧 Dreamweaver CS3标准教程 M.北京:中国青年电子出版社2008.1第2章 可行性分析2.1 人员安排项目组员3人: 2.2技术要求要求掌握C#基本语法,Windows高级应用程序开发。 Access 2003语言的掌握。 2.3 开发环境2.3.1.软件环境所用操作系统为Widows XP。编程软件为Visual Studio 2005(Framwork2.0)及Access 2003。美化软件为Photoshop CS3和Dreamweaver CS3。2.3.2.硬件环境奔4处理器,128内存,10G硬盘2.4 运行环境2.4.1.
7、软件环境Framework2.0或以上版本,Access 2003或以上版本。IE5或以上版本2.4.2.硬件环境奔4处理器,512内存,15G硬盘。第3章 需求分析3.1用户类别 本系统分为4个角色:教师、管理员、学生、教务人员1、教务人员排课、调课、汇总各类考试成绩 2、学生选课、查看考试成绩及选课情况,3、管理员管理各类用户基本信息,以及各类查询统计等功能。4、一般教师查看课程表、打印学生名单、录入考试成绩,3.2功能需求 3.2.1学生1 根据自己的学号和密码在客户端登录。2 查看个人的学籍信息3 个人成绩的查看查看自己本学期的考试成绩及自己的选课情况4 进行选课操作5 修改自己的登录
8、信息(密码)6 查看公告7 课程表查看3.2.2教师1. 根据管理员提供的口令账号密码登陆系统2. 查看自己的个人档案信息3. 查看自己的课程表/设置自己的课程表4. 查看/添加学生的成绩并进行打印输出等操作,5. 查看公告6. 修改自己的登录信息(密码)7. 退出系统3.2.3管理员1 根据自己的口令及密码登陆系统2 对教师信息的管理(对教师信息的增、删、改、查、打印、导出等操作)3 对学生信息的管理(对教师信息的增、删、改、查、打印、导出等操作)4 对班级信息的管理(对教师信息的增、删、改、查、打印、导出等操作)5 对课程信息的管理(对教师信息的增、删、改、查、打印、导出等操作)6 对专业
9、信息的管理(对教师信息的增、删、改、查、打印、导出等操作)7 发布公告8 修改个人登录密码9 退出系统3.2.4教务人员1. 根据自己的口令及密码登陆系统2. 教师排课:安排教室上课地点,上课时间,上课班级。3. 教师调课:临时调课和长期调课4. 成绩统计打印并输出或者导出Excel表格的形式5. 发布公告、查看公告6. 修改 密码7. 退出系统第4章 数据库设计本系统的数据库主要使用的是Access 2003 数据完成,数据库各表如下所示:班级信息表如下表4-1所示:字段名称数据类型说明classid文本classname文本department文本classtea文本fudaoyuan文本
10、classmount文本 表4-1 class课程信息表如下表4-2所示 字段名称数据类型courseid文本coursename文本coursegold文本attribute文本examtype文本classaddress文本coursetime文本classdate文本teaname文本leibie文本classname文本 表4-2 course课程表信息表如下表4-3所示 字段名称数据类型uid文本unum文本unote文本 表4-3 coursetable公告信息表如下表4-4所示 字段名称数据类型newdate文本newperson文本newtitle文本newnote文本 表4-
11、4 news专业表如下表4-5所示 字段名称数据类型profeid文本profename文本department文本 表4-5 profession成绩表如下表4-6所示 字段名称数据类型stuid文本stuname文本classname文本courseid文本coursename文本gold文本 表4-6 score第5章 系统设计5.1管理员界面管理员界面主要功能有:根据自己的口令及密码登陆系统,对教师信息的管理(对教师信息的增、删、改、查、打印、导出等操作),对学生信息的管理(对教师信息的增、删、改、查、打印、导出等操作),对班级信息的管理(对教师信息的增、删、改、查、打印、导出等操作)
12、,对课程信息的管理(对教师信息的增、删、改、查、打印、导出等操作),对专业信息的管理(对教师信息的增、删、改、查、打印、导出等操作),发布公告,修改个人登录密码,退出系统,如下图: 5-1 管理员主界面管理员端教师信息管理界面如下: 5-2 教师信息管理界面管理员端班级信息管理界面如下: 5-3 班级信息管理界面管理员端课程信息管理界面如下: 5-4 课程信息管理界面 5-5 专业信息管理界面 5-6 学生信息管理界面 5-7 教务处发布公告界面 5-7 教务处查看公告界面5.2教务处界面教务处界面主要功能有:根据自己的口令及密码登陆系统,教师排课,教师调课,成绩统计打印并输出或者导出Exce
13、l表格的形式,发布公告、查看公告,修改密码,退出系统教务处发布公告界面如上: 5-8 教务处密码修改界面 第六章结束语 经过三个星期的三级课题实训,我们小组完成了申报的教务管理系统,这个系统主要包含了四种身份的功能。管理员端,教师端,学生端和教务处端。每一种身份都有不同的功能。在这个课题中我主要负责管理员端的整体设计。管理员的主要功能包括:1.教师信息管理。2.学生信息管理。3.班级信息管理。4.课程信息管理。5.专业信息管理。6.发布公告。7.修改个人密码。8.管理员小帮手(计算器、绘图板、记事本)功能。以上功能都已在系统中实现。 在这三个星期中我们小组在一起工作,从开始的设计分工到最后的调
14、试都合作得很愉快,因为我们这个系统的功能很多并且有部分功能以前没有接触过,所以大家在开始设计的时候都想过把这个系统做的尽量很完善,三级实训也是我们在校期间做的最后一次练习,大家都看得很重,一年半的学习让我们对编程这一学科产生了很大的兴趣,从开始的只能打印图形到现在的系统编程,让我们慢慢的对知识掌握的更丰富在课题编码的工程中也遇到了很棘手的问题,用了大量的时间去解决,不会的地方就翻书查找,在网上寻求帮助,最终把问题解决。时间过得很快,在让老师验收的前一天晚上我们的系统才通过最终的调试,没有异常。有几天晚上工作到最后熄灯,虽然 大家都比较累,可是看到系统最终完成我们真的很开心,每一次解决一个问 题
15、心中都非常激动,在这个系统编写的过程中我们还有很多不足,代码填写的时候没有考虑全面,造成最后的调试带来很多麻烦。这也让我们学会了很多帮助,更加熟练的运用调试功能。 经过这次的实训,我更加明确了自己以后努力的方向,这一学科的知识很广阔,需要不断的学习,另外就是要学会把别人的东西拿来自己用,还要会用,在这三个星期的过程中我也学会了很多,对以后的编码有很大的用处,以后我会多看一些关于软件开发的书籍,在网上也要涉猎一些功能的开发案例多做学习。让自己的专业知识得到扩充。 指导教师评语指导教师签名:年 月 日 附录A: 主要源程序管理员端主界面代码如下:namespace EduManagement pu
16、blic partial class Frm_Admin : Form public Frm_Admin() InitializeComponent(); TeaMessage tm; StuMessage sm; ClassMessage cm; CourseMessage coum; DepartMessage dm; public void formvisible() if (tm != null) tm.Close(); if (sm != null) sm.Close(); if (cm!= null) cm.Close(); if (coum != null) coum.Close
17、(); if (dm != null) dm.Close(); private void button1_Click(object sender, EventArgs e) formvisible(); tm = new TeaMessage(); tm.MdiParent =this; tm.Show(); private void button2_Click(object sender, EventArgs e) formvisible(); sm = new StuMessage(); sm.MdiParent =this; sm.Show(); private void button3
18、_Click(object sender, EventArgs e) formvisible(); cm = new ClassMessage(); cm.MdiParent = this; cm.Show(); private void button4_Click(object sender, EventArgs e) formvisible(); coum = new CourseMessage(); coum.MdiParent =this; coum.Show(); private void button5_Click(object sender, EventArgs e) formv
19、isible(); dm = new DepartMessage(); dm.MdiParent = this; dm.Show(); private void button6_Click(object sender, EventArgs e) Pwd_Change pc = new Pwd_Change(); pc.ShowDialog(); private void button7_Click(object sender, EventArgs e) this.Close(); private void Frm_Admin_FormClosing(object sender, FormClo
20、singEventArgs e) Application.Exit(); private void button8_Click(object sender, EventArgs e) formvisible(); MessageSort ms = new MessageSort(); ms.MdiParent=this; ms.textBox12.Text = 管理员; ms.Show(); private void 计算器ToolStripMenuItem_Click(object sender, EventArgs e) System.Diagnostics.Process.Start(c
21、alc.exe); private void 记事本ToolStripMenuItem_Click(object sender, EventArgs e) System.Diagnostics.Process.Start(notepad.exe); private void 绘图板ToolStripMenuItem_Click(object sender, EventArgs e) System.Diagnostics.Process.Start(mspaint.exe); private void 蓝色天空ToolStripMenuItem_Click(object sender, Even
22、tArgs e) skinEngine1.SkinFile = DiamondBlue.ssk; private void 绿色心情ToolStripMenuItem_Click(object sender, EventArgs e) skinEngine1.SkinFile = DiamondGreen.ssk; private void MSNToolStripMenuItem_Click(object sender, EventArgs e) skinEngine1.SkinFile = MSN.ssk; private void Frm_Admin_Load(object sender
23、, EventArgs e) 教师信息管理界面层代码如下:namespace EduManagement public partial class TeaMessage : Form public TeaMessage() InitializeComponent(); private void splitContainer1_SplitterMoved(object sender, SplitterEventArgs e) EBLL.User u; EModel.Teacher t; public void real() textBox24.ReadOnly = true; textBox23
24、.ReadOnly = true; textBox13.ReadOnly = true; textBox22.ReadOnly = true; textBox21.ReadOnly = true; textBox20.ReadOnly = true; textBox19.ReadOnly = true; textBox18.ReadOnly = true; textBox17.ReadOnly = true; textBox16.ReadOnly = true; textBox15.ReadOnly = true; textBox14.ReadOnly = true; public void
25、noreal() textBox24.ReadOnly = false; textBox23.ReadOnly = false; textBox13.ReadOnly = false; textBox22.ReadOnly = false; textBox21.ReadOnly = false; textBox20.ReadOnly = false; textBox19.ReadOnly = false; textBox18.ReadOnly = false; textBox17.ReadOnly = false; textBox16.ReadOnly = false; textBox15.R
26、eadOnly = false; textBox14.ReadOnly = false; private void TeaMessage_Load(object sender, EventArgs e) this.WindowState = FormWindowState.Maximized; u=new EBLL.User(); dataGridView1.DataSource = u.TeaMessage_Select(); real(); public void UIModel() /t = new EModel.Teacher(); /string Id = (DataRowView)
27、this.BindingContextdataGridView1.DataSource.Current)0.ToString(); /dt = u.TeaMessage_Select(teaid=+Id+); int id = this.dataGridView1.CurrentRow.Index; textBox24.Text = dataGridView10,id.Value.ToString(); textBox23.Text = dataGridView11, id.Value.ToString(); comboBox2.Text = dataGridView12, id.Value.
28、ToString(); if (dataGridView13, id.Value.ToString() != ) dateTimePicker4.Value = DateTime.Parse(dataGridView13, id.Value.ToString(); textBox13.Text = dataGridView14,id.Value.ToString(); textBox22.Text = dataGridView15,id.Value.ToString(); textBox21.Text = dataGridView16,id.Value.ToString(); textBox2
29、0.Text = dataGridView17,id.Value.ToString(); textBox19.Text = dataGridView18,id.Value.ToString(); textBox18.Text = dataGridView19,id.Value.ToString(); if (dataGridView110, id.Value.ToString() != ) dateTimePicker3.Value = DateTime.Parse(dataGridView110, id.Value.ToString(); textBox17.Text =dataGridVi
30、ew111,id.Value.ToString(); textBox16.Text = dataGridView112,id.Value.ToString(); textBox15.Text = dataGridView113,id.Value.ToString(); textBox14.Text = dataGridView114,id.Value.ToString(); private void button4_Click(object sender, EventArgs e) u = new EBLL.User(); button1.Text = 添加; button2.Text = 修
31、改; string strWhere = teaid like % + textBox1.Text + %; dataGridView1.DataSource = u.TeaMessage_Select(strWhere); private void button2_Click(object sender, EventArgs e) if (button2.Text = 修改) noreal(); button2.Text = 保存; button1.Text = 添加; else u = new EBLL.User(); t = new EModel.Teacher(); t.teaid =
32、 textBox24.Text; t.teaname = textBox23.Text; t.teasex = comboBox2.Text; t.birthday = dateTimePicker4.Value; t.minzu = textBox13.Text; t.teahome = textBox22.Text; t.mianmao = textBox21.Text; t.xueli = textBox20.Text; t.profession = textBox19.Text; t.graduateschool = textBox18.Text; t.graduatetime = d
33、ateTimePicker3.Value; t.telephone = textBox17.Text; t.address = textBox16.Text; t.personid = textBox15.Text; t.myid = textBox14.Text; u.TeaMessage_Updata(t, (DataRowView)this.BindingContextdataGridView1.DataSource.Current)0.ToString(); MessageBox.Show(恭喜你,修改成功!); button2.Text = 修改; TeaMessage_Load(new object(), new EventArgs(); private void button1_Click(object sender, EventArgs e) if (button1.Text = 添加) textBox24.Text = ; textBox23.Text = ; textBox13.Text = ; textBox22.Text = ; textBox21.Text = ; textBox20.Text = ; textBox19.Text = ; textBox18.Text = ; textBox17.Text = ;