资源描述
编号 毕 业 论 文(设 计) 论文题目 教学管理系统 系 (部) 计算机与信息工程系 专 业 计算机应用技术 2009年 5 月目录摘 要1Abstract2第一章概 述3第二章需求分析42.1系统需求分析42.2可行性分析4第三章 系统设计6第四章 数据库设计74.1数据库需求分析74.2数据库设计74.2.1创建数据库74.2.2创建表8第五章详细设计115.1用户登录窗体的创建115.1.1用户登录界面设计115.1.2代码分析与实现115.2 管理员模块155.2.1管理员主要功能155.2.2管理员代码155.2.3管理员界面185.3 教师管理模块195.3.1教师管理模块的主要功能195.3.2.教师代码195.3.3.教师界面215.4学生模块215.4.1学生模块的功能215.4.2.个人信息查询代码215.4.3学生界面235.4.4修改密码代码235.4.5学生修改密码界面245.5课程管理模块245.5.1课程管理模块的主要功能245.5.2课程查询代码245.6成绩管理模块255.6.1成绩查询代码255.6.2成绩查询界面26第六章 总结26致谢27参考文献28摘 要随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,随着学校规模的不断扩大,学生数量的不断增加,学生的信息量也成倍增长。学生管理工作是学校各项工作的一个重要部分,其管理水平的高低将直接影响到人才的培养质量。面对庞大的信息量,如何有效地提高学生管理工作的效率是一个学校急需解决的问题。因此开发适合学校需要的学生管理信息系统,通过这样的系统,可以做到信息的规范管理、科学统计和快速查询,并减少管理方面的工作量。 本文介绍了在MicrosoftVisualStudioNET2005环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发一个管理信息系统的过程。通过分析访客管理的不足,创建了一套行之有效的计算机管理学生的方案。文章介绍了访客管理信息系统的系统分析部分,包括可行性分析、业务流程分析等;系统设计部分主要介绍了系统功能设计和数据库设计及代码设计;系统实现部分说明了几个主要模块的算法, 本系统面友好,操作简单,比较实用。关键词:管理信息系统、学生管理、VisualStudio.AbstractAs information technology in the management of more in-depth and wide range of applications, management information system has been gradually implemented in the technical maturity. Management Information System is a continuous development of new disciplines, with the growing size of schools, the increasing number of students, students also have increased the amount of information. Students of the school management is an important part of the work, the level of its management level will directly affect the quality of talent. Faced with a huge amount of information, how to effectively improve the efficiency of the management of students a school is an urgent need to resolve. Therefore the development of schools for students in need of management information systems, through such a system, can achieve the standard of information management, science and statistics and to quickly find, manage and reduce the workload. This text introduced in the VisualStudio2005 under the environments the strategy of adoptionfrom top to bottom total programming, from bottom but last pplication development develop a process which manage information system.Pass the shortage of analytical visitor management, established a valid a set of line a calculator a management the students project.The article introduced visitor a management information system of system analysis part, System realization part explained a few calculate ways of main mold piece, this system interface amity, operation simple, more practical.Keywords :MIS、student management、VisualStudio application第一章概 述教学管理系统作为学校管理中的一个子系统,与其他子系统,如学生管理系统、人事管理系统、后勤管理系统,图书馆管理系统等一起构成校园管理信息系统,为校园管理信息化提供一个子功能。所以,几乎所有的大、中、小学校都需要一套这样的管理系统来提高日常的工作效率。下图所示是典型的教学管理系统的界面。图 1 典型的教学管理系统的界面从界面可以看到,教学管理系统应该包括学生信息管理、课程管理、成绩管理、系统管理等基本内容。(1)学生信息管理的数据有:学生学号、姓名、性别、出生日期、所属班级、所学专业、籍贯等,当有新生到校时,就启动相应的信息管理功能,对所有的学生信息进行入库,随时掌握学生的基本信息。(2)成绩管理是数据量比较大的管理工作,每次考试结束后负责对学生各个科目的成绩入库工作和对数据库成绩出错的校对工作。(3)系统管理主要是修改用名密码、增加用户等工作。学生管理信息系统作为典型的数据库项目应用的一种,其开发流程包括需求分析、系统建模、确定系统集成方案、数据库分析和设计以及各功以模块的开发等。第二章需求分析2.1系统需求分析伴随社会的高速发展,全国各高校的学生数量一直在增加,在这样的形式下,必须要求学校有一种高效有序的方法来管理学生的信息。通过调查,要求系统需要有以下功能: 由于操作人员的计算机知识普遍较差,要求有良好的人机界面; 由于该系统的使用对象多,要求有较好的权限管理; 原始数据修改简单方便,支持多条件修改; 方便的数据查询,支持多条件查询; 在相应的权限下,删除数据方便简单,数据稳定性好; 数据计算自动完成,尽量减少人工干预。2.2可行性分析由于本系统管理的对象单一,都是学生,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。因此,比较适合于采用数据库管理。在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因此完全可以实现。本系统的设计是在Windows XP操作系统环境下,使用VisualStudio2005中文版开发成功的。数据库是MIS中的重要支持技术,在MIS开发过程中,如何选择数据库管理是一个重要的问题,本系统选用的数据库语言介绍如下:VisualStudio2005具有以下特点:(1)可视化编程:用传统程序设计语言设计程序时,都是通过编写程序代码来设计用户界面,在设计过程中看不到界面的实际显示效果,必须编译后运行程序才能观察。如果对界面的效果不满意,还要回到程序中修改有时候,这种编程-编译-修改的操作可能要反复多次,大大影响了软件开发效率。VisualStudio2005提供了可视化设计工具,把Windows界面设计的复杂性“封装”起来,开发人员不必为界面设计而编写大量程序代码。只需要按设计要求的屏幕布局,用系统提供的工具,在屏幕上画出各种“部件”,即图形对象,并设置这些图形对象的属性。VisualStudio2005自动产生界面设计代码,程序设计人员只需要编写实现程序功能的那部分代码,从而可以大大提高程序设计的效率。(2)面向对象的程序设计VisualStudio2005支持面向对象的程序设计,是应用面向对象的程序设计方法(OOP),把程序和数据封装起来作为一个对象,并为每个对象赋予应有的属性,使对象成为实在的东西。在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,VisualStudio2005自动生成对象的程序代码并封装起来。每个对象以图形方式显示在界面上,都是可视的。第三章 系统设计系统开发的总体任务是实现学生信息关系的系统化,规范化和自动化。教学管理系统需要完成的功能主要有:学生信息的输入,包括输入学生基本信息、所在班级、所学课和成绩等。学生信息的查询,包括输入学生基本信息、所在班级、已学课程和成绩等。学生信息的修改。管理员对个人信息的查询。教师对个人信息的查询。学生界面个人信息查询个人密码修改个人信息查询学生信息查询个人密码修改教师主界面管理员界面个人信息查询学生信息的增删查改教师信息的增删查改第四章 数据库设计4.1数据库需求分析管理员信息:包括的数据项有:管理员的登录名、密码。教师信息:包括的数据项有:教师的登录名、密码、教师的个人信息。学生基本信息:包括的数据项有:学生的登录名、密码学生学号、学生姓名、性别、出生日期、班号、联系电话、入校日期、家庭地址、备注等。班级信息:包括的数据项有:班号、所在年级。课程基本信息:包括的数据项有:课程号、课程名称、课程类别、课程描述等。学生成绩信息:包括的数据项有:学生姓名、所学课程、考试分数等。4.2数据库设计数据库设计与应用等程序设计是分离的,数据库的设计非常重要。有了数据库模型,数据库的设计就简单多了。在学生管理信息系统中,首先要创建学生管理信息系统数据库,然后在数据库中创建需要的表和字段。下面分别讲述本系统中数据库的设计。本例采用sql2000数据库系统来进行数据库的设计。4.2.1创建数据库下面给出在sql中创建数据库的过程。运行sql应用程序,右键单击数据库新建MySchool数据库,单击“确定”按钮。图2 新建MySchool数据库4.2.2创建表下面给出在sql中创建表的过程。(1)在创建数据库后,点击该数据库,在数据库中建立表。数据库中的表管理员表Admin教师表Teacher学生表Student班级表Class年级表Grade课程表Subject成绩表Scour(2)在表的设计窗口“表1:表”中,按表6建立数据字段,并指定字段的数据类型与相关属性。系统管理员表(AdminId)建立数据库字段并指定字段的数据类型与相关属性,如下所示。列名数据类型长度AdminIdInt4LoginIdvarchar16LoginPwdvarchar16(3)字段设计完毕后,将这个表保存,打开表,输入数据。图3 表中填充的数据(4)保存表。 (5)重复步骤()(4),建立教师表、学生表,班级表,课程表,成绩表,并指定表中各字段的数据类型与相关属性。教师表列名数据类型长度TeacherIdint4LoginIdvarchar16LoginPwdvarchar16UserStateIdint4TeacherNamevarchar16Sexvarchar16Birthdaysmalldatetime4学生表列名数据类型长度StudentIdInt4LoginIdvachar16LoginPwdvachar16UserStateIdInt4ClassIdInt4StudentNOvachar16StudentNamevachar16Sexvachar16StudentIDNOvachar16Majorvachar16SchoolBeforevachar16Phonevachar8Addressvachar16PostalCodefloat16CityWantedvachar16JobWantedvachar16Commentvachar16Emailvachar20班级表列名数据类型长度GradeIdInt4GradeNamevachar16课程表列名数据类型长度SubjectIdInt4SubjectNameVachar16HoursInt4GradeIdint4成绩表列名数据类型长度StudentIdint4StudentNamevachar16Scourvachar16第五章详细设计以上内容完成了数据库的后台工作,建立起了能够保障系统顺利、正确运行的后台。界面设计工作在进行系统开发的时候是必不可少,也是十分重要的。下面就对学生管理信息系统的界面设计。5.1用户登录窗体的创建5.1.1用户登录界面设计利用用户登录成功能实现对用户操作权限的限制。管理员、教师和学生的权限不一样,管理员拥有系统的所有权限,学生只有查询个人信息和的修改密码的权限。用户必须选择身份,输入正确的密码才能进入下一界面,如果用户的密码输入错误,应用程序会提示错误信息。下图所示是用户登录界面窗体。图4 登陆界面5.1.2代码分析与实现上面对程序界面设计进行了详细的设计,基本完成了程序界面的设计工作。程序代码是程序的核心所在,是系统开发的灵魂。下面只列举出部分代码。(1) 用户登录的代码实现学生信息管理系统启动时,首先出现的是欢迎界面而后出现登录界面。程序从配置文件中获取管理员,教师和学生的密码,和用户输入的密码比较,如果密码正确,则根据身份配权限;如果不正确,系统给出提示信息。代码如下: SqlConnection sqlconn=newSqlConnection(server=.;database=MySchool;trusted_connection=true); public static string id = ; /声明一个变量id,存放用户名 public LoginForm() InitializeComponent(); private void btdenglu_Click(object sender, EventArgs e) id = txtuserid.Text; try if (txtuserid.Text = ) lbldenglu.Text=请输入用户名!; if (txtuserpwd.Text=) lbldenglu.Text = 请输入密码!; if (txtuserid.Text = & txtuserpwd.Text = ) lbldenglu.Text = 用户名和密码不允许为空!; catch (Exception ex) MessageBox.Show(ex.Message); finally sqlconn.Close(); try if (cbousertype.Text = 学生) SqlCommand sqlcomd = new SqlCommand(select count(*) from Student where LoginId= + txtuserid.Text.Trim() + and LoginPwd= + txtuserpwd.Text.Trim() + , sqlconn); sqlconn.Open(); int count = (int)sqlcomd.ExecuteScalar(); Student student = new Student(); if (count 0) student.Show(); this.Hide(); else lbldenglu.Text = 您输入的用户名或密码错误,请重新输入!; txtuserid.Text = ; txtuserpwd.Text = ; cbousertype.Text = ; txtuserid.Focus(); if (cbousertype.Text = 教师) SqlCommand sqlcomd = new SqlCommand(select count(*) from Teacher where LoginId= + txtuserid.Text.Trim() + and LoginPwd= + txtuserpwd.Text.Trim() + , sqlconn); sqlconn.Open(); int count = (int)sqlcomd.ExecuteScalar(); Teacher teacher = new Teacher(); if (count 0) teacher.Show(); this.Hide(); else lbldenglu.Text = 您输入的用户名或密码错误,请重新输入!; txtuserid.Text = ; txtuserpwd.Text = ; cbousertype.Text = ; txtuserid.Focus(); if (cbousertype.Text = 管理员) SqlCommand sqlcomd = new SqlCommand(select count(*) from Admin where LoginId= + txtuserid.Text.Trim() + and LoginPwd= + txtuserpwd.Text.Trim() + , sqlconn); sqlconn.Open(); int count = (int)sqlcomd.ExecuteScalar(); Manager manager = new Manager(); if (count 0) manager.Show(); this.Hide(); else lbldenglu.Text = 您输入的用户名或密码错误,请重新输入!; txtuserid.Text = ; txtuserpwd.Text = ; cbousertype.Text = ; txtuserid.Focus(); catch (Exception ex) MessageBox.Show(ex.Message); finally sqlconn.Close(); private void bttuichu_Click(object sender, EventArgs e) DialogResult choice;/ 用户的选择 choice = MessageBox.Show(确定要退出吗?, 退出系统, MessageBoxButtons.OKCancel, MessageBoxIcon.Information); if (choice = DialogResult.OK) Application.Exit(); / 退出应用程序 5.2 管理员模块5.2.1管理员主要功能对自己信息、学生信息和教师信息的添加,删除,修改,浏览等退出系统5.2.2管理员代码private void 查询ToolStripMenuItem1_Click(object sender, EventArgs e)/学生基本信息查询 try sqlconn.Open(); myada = new SqlDataAdapter(select * from Student, sqlconn); myada.Fill(myds, Student); this.dgvmanager.DataSource = myds.TablesStudent.DefaultView; dgvmanager.Rows.Clear(); catch (Exception ex) MessageBox.Show(ex.Message); finally sqlconn.Close(); private void 查询ToolStripMenuItem2_Click(object sender, EventArgs e)/学生成绩查询 try sqlconn.Open(); myada = new SqlDataAdapter(select * from Score, sqlconn); myada.Fill(myds, Score); this.dgvmanager.DataSource = myds.TablesScore.DefaultView; dgvmanager.Rows.Clear(); catch (Exception ex) MessageBox.Show(ex.Message); finally sqlconn.Close(); private void 修改ToolStripMenuItem_Click(object sender, EventArgs e)/修改教师信息 SqlCommandBuilder builder = new SqlCommandBuilder(myada); myada.Update(myds, Teacher); private void 删除教师ToolStripMenuItem_Click(object sender, EventArgs e)/删除教师的整条记录 myds.TablesTeacher.Rowsdgvmanager.CurrentRow.Index.Delete(); SqlCommandBuilder builder = new SqlCommandBuilder(myada); myada.Update(myds,Teacher); private void 删除学生ToolStripMenuItem_Click(object sender, EventArgs e)/删除学生的整条记录 myds.TablesStudent.Rowsdgvmanager.CurrentRow.Index.Delete(); SqlCommandBuilder builder = new SqlCommandBuilder(myada); myada.Update(myds, Student); private void 修改ToolStripMenuItem2_Click(object sender, EventArgs e)/修改学生信息 SqlCommandBuilder builder = new SqlCommandBuilder(myada); myada.Update(myds, Student); private void 修改ToolStripMenuItem3_Click(object sender, EventArgs e) SqlCommandBuilder builder = new SqlCommandBuilder(myada); myada.Update(myds, Score); private void 查询ToolStripMenuItem3_Click(object sender, EventArgs e)/管理员个人信息查询 try sqlconn.Open(); myada = new SqlDataAdapter(select * from Admin, sqlconn); myada.Fill(myds, Admin); this.dgvmanager.DataSource = myds.TablesAdmin.DefaultView; dgvmanager.Rows.Clear(); catch (Exception ex) MessageBox.Show(ex.Message); finally sqlconn.Close(); private void 修改ToolStripMenuItem1_Click_1(object sender, EventArgs e)/修改个人信息 SqlCommandBuilder builder = new SqlCommandBuilder(myada); myada.Update(myds, Admin); private void 修改密码ToolStripMenuItem_Click(object sender, EventArgs e) NewPwdmanager newpwdmanager = new NewPwdmanager(); newpwdmanager.Show(); this.Hide(); private void 查询ToolStripMenuItem4_Click(object sender, EventArgs e)/课程信息查询 try sqlconn.Open(); myada = new SqlDataAdapter(select * from Subject, sqlconn); myada.Fill(myds, Subject); this.dgvmanager.DataSource = myds.TablesSubject.DefaultView; dgvmanager.Rows.Clear(); catch (Exception ex) MessageBox.Show(ex.Message); finally sqlconn.Close(); 5.2.3管理员界面图5 管理员界面5.3 教师管理模块5.3.1教师管理模块的主要功能对自己信息的查询对学生信息的添加、修改、删除班级查询5.3.2.教师代码private void 教师信息查询ToolStripMenuItem_Click(object sender, EventArgs e) Teachergeren teachergeren = new Teachergeren(); teachergeren.Show(); this.Hide(); private void Teacher_Load(object sender, EventArgs e) private void 返回ToolStripMenuItem_Click(object sender, EventArgs e) LoginForm loginform = new LoginForm(); loginform.Show(); this.Hide(); private void 查询ToolStripMenuItem_Click(object sender, EventArgs e)/全体学生基本信息查询 try sqlconn.Open(); myada = new SqlDataAdapter(select * from Student, sqlconn); myada.Fill(myds, Student); this.dgvteacher.DataSource = myds.TablesStudent.DefaultView; dgvteacher.Rows.Clear(); catch (Exception ex) MessageBox.Show(ex.Message); finally sqlconn.Close(); private void 修改ToolStripMenuItem_Click(object sender, EventArgs e)/学生信息修改 SqlCommandBuilder builder = new SqlCommandBuilder(myada); myada.Update(myds, Student); private void 修改ToolStripMenuItem1_Click(object sender, EventArgs e)/学生成绩修改 SqlCommandBuilder builder = new SqlCommandBuilder(myada); myada.Update(myds, Score); private void 学生成绩ToolStripMenuItem_Click(object sender, EventArgs e) private void 查询ToolStripMenuItem1_Click(object sender, EventArgs e)/全体学生基本信息查询 try sqlconn.Open(); myada = new SqlDataAdapter(select * from Score, sqlconn); myada.Fill(myds, Score); this.dgvteacher.DataSource = myds.TablesScore.DefaultView; dgvteacher.Rows.Clear(); catch (Exception ex) MessageBox.Show(ex.Message); finally sqlconn.Close(); 5.3.3.教师界面图6 教师界面5.4学生模块5.4.1学生模块的功能个人信息查询个人密码修改5.4.2.个人信息查询代码private void button2_Click(object sender, EventArgs e)/学生查询个人信息 try sqlconn.Open(); SqlCommand sqlcomd = new SqlCommand(select * from Student where LoginId= + LoginForm.id.ToString().Trim() + , sqlconn); SqlDataReader mydr = sqlcomd.ExecuteReader(); if (mydr.HasRows) lvloginid.Items.Clear(); while (mydr.Read() string ID, loginid, sno, sname, sex, classid, major, phone, address, email; ID = mydr0.ToString(); /对字段进行绑定 loginid = LoginForm.id.ToString(); sno = mydr5.ToString(); sname = mydr6.ToString(); sex = mydr7.ToString(); classid = mydr4.ToString(); major = mydr9.ToString(); phone = mydr11.ToString(); address = mydr12.ToString(); email = mydr17.ToString(); ListViewItem lv = new ListViewItem(ID); lv.Tag = ID; lvloginid.Items.Add(lv); lv.SubItems.AddRange(new string loginid, sno, sname, sex, classid, major, phone, address, email ); catch (Exception ex) MessageBox.Show(ex.Message); finally sqlconn.Close(); private void button1_Click(object sender, EventArgs e)/清空列表,返回到查询前的状态 lvloginid.Items.Clear
展开阅读全文