版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE17目录1.系统任务的提出和功能说明 11.1 任务的提出 11.2 系统软件运行的硬件和软件要求 11.3 系统主要功能说明 11.4 系统结构图 22.软件系统的设计方法及属性、事件代码 22.1 数据结构 22.2 功能模块 32.2.1 登录界面的设计 32.2.2 主窗体的设计 62.2.3 “系统”各子菜单程序的设计 82.2.4 “学籍管理”程序的设计 103.程序调试及故障分析 171.系统任务的提出和功能说明任务的提出随着科学技术的发展,计算机已被广泛的用于社会的各个领域,成为推动社会发展的技术动力。而在计算机应用中,软件的作用十分突出,软件已经发展成为信息技术的核心,主导着信息产品的开发和信息技术市场的进一步的开拓。软件产业已成为社会信息化进程中的一个战略性产业。在软件技术的应用中,软件的开发技术尤其是应用型软件产品的开发技术成了重中之重。不断开发适应用户需求、市场需要的新型软件产品迫在眉睫。随着社会的发展,软件也在不断的更新换代。计算机领域不断取得的新研究成果使计算机在代替和延伸脑力劳动方面发挥越来越重要的作用,不仅在工业方面而且在日常生活中也越来越离不开计算机。尤其是在学校里,要处理大量的学生数据。在数字化的今天,使用教务管理信息系统能使学校对学生数据的管理更加简单、到位,可大大的减轻管理人员的负担,实现高效办公。系统软件运行的硬件和软件要求一台个人电脑,安装了MicrosoftSQLServer数据库管理软件系统主要功能说明本教务管理信息系统可实现学生基本信息、成绩信息、课程信息、学院信息、选课信息、学籍信息等的录入、修改、查询、更新和删除。程序分为以下四个模块:用户注册信息管理、学籍管理、班级管理、成绩管理功能模块。系统结构图登录模块登录模块系统模块学籍管理班级管理成绩管理帮助修改密码添加用户退出系统添加学籍信息修改学籍信息查询学籍信息……2.软件系统的设计方法及属性、事件代码数据结构用sqlserver2000建立数据库教务管理信息系统,包含有Userid、Class、Student、Score四个表,表的结构如下所示:Userid表的结构:Class表的结构:Student表的结构:Score表的结构:功能模块登录界面的设计1、登录界面的窗体如下:注意:将两个textbox控件的name属性修改为txtusername、txtuserpassword。2、使用“解决方案资源管理器”在当前项目中增加一个模块,名为module1.vb,模块中的程序代码如下:ImportsSystem.Data.SqlClientModulemodule1PublicadocmdAsSqlDataAdapterPublicdsAsDataSet=NewDataSet()'建立dataset对象PublicmytableAsDataTable'建立表对象PublicmyrowAsDataRow'建立数据行对象PublicrownumberAsInteger'定义一个整型变量来存放当前行数PublicsearchsqlAsStringPubliccmdAsSqlCommandBuilder'定义一个判断字符串是否为空的函数PublicFunctiontesttxt(ByValtxtAsString)AsBooleanIfTrim(txt)=""Thentesttxt=FalseElsetesttxt=TrueEndIfEndFunction'定义一个执行sql语句的函数PublicSubexecutesql(ByValsqlAsString,ByValtableAsString)TryDimconstrAsStringconstr="server=localhost;database=教务管理信息系统;integratedsecurity=true"adocmd=NewSqlDataAdapter(sql,constr)ds.Clear()ds.Tables.Clear()adocmd.Fill(ds,table)mytable=ds.Tables.Item(0)'取得名为table的表rownumber=0'设置为第一行myrow=mytable.Rows.Item(rownumber)'取得第一行数据CatchexAsExceptionMsgBox(Err.Description)EndTryEndSubEndModule3、在txtusername的validating事件中写入代码:Iftxtusername.Text=""ThenErrorProvider1.SetError(txtusername,"用户名不能为空")ElseErrorProvider1.SetError(txtusername,"")EndIf4、在txtuserpassword的passwordchar属性改为*,在其validating事件过程中写入代码:Iftxtuserpassword.Text=""ThenErrorProvider1.SetError(txtuserpassword,"密码不能为空")ElseErrorProvider1.SetError(txtuserpassword,"")EndIf5、在“确定”命令按钮的click事件过程中验证用户名和密码,其代码如下:DimtablenameAsStringtablename="userid"searchsql="select用户名,密码fromuseridwhere(用户名='"&txtusername.Text&"')"Trymodule1.executesql(searchsql,tablename)'比较输入的密码和数据库的密码Ifmodule1.myrow.Item(1)=txtuserpassword.TextThenDimnewfrmmainAsNewfrmmain()newfrmmain.show()Me.Hide()ElseExitSubEndIfCatchexAsExceptionMsgBox("没有该用户",vbOKOnly+vbExclamation,"警告")EndTry6、在“取消“按钮的click事件中写入代码:Me.Dispose()主窗体的设计1、在当前项目中增加一个窗体frmmain,作为主窗体,界面如下:注意:将frmmain的ismdicontainer属性改为true。2、在“系统”菜单中包含的子菜单如图所示:3、在“学籍管理”菜单中包含的子菜单如图所示:4、在“班级管理”菜单中包含的子菜单如图所示:5、在“成绩管理”菜单中包含的子菜单如图所示:“系统”各子菜单程序的设计1、设计“修改密码”窗体eq\o\ac(○,1)新增加一个名为frmmodifyuserpassword的窗体,如图所示:eq\o\ac(○,2)在“确定”按钮的click事件过程中写入代码:DimtablenameAsStringtablename="userid"searchsql="select用户名,密码fromuseridwhere(用户名='"&txtusername.Text&"')"Trymodule1.executesql(searchsql,tablename)Ifmodule1.myrow.Item(1)=txtuserpassword.TextThenmodule1.myrow.Item(1)=txtnewpassword.Textmodule1.mytable.GetChanges()module1.cmd=NewSqlCommandBuilder(module1.adocmd)module1.adocmd.Update(module1.ds,tablename)MsgBox("密码修改成功!",vbOKOnly+vbExclamation,"警告")Me.Hide()ElseExitSubEndIfCatchexAsExceptionMsgBox("没有该用户",vbOKOnly+vbExclamation,"警告")EndTryeq\o\ac(○,3)在“取消“按钮的click事件中写入代码:Me.Dispose()eq\o\ac(○,4)在“修改密码”子菜单的click事件过程中写入代码:DimnewfrmmodifyuserpasswordAsNewfrmmodifyuserpasswordnewfrmmodifyuserpassword.Show()2、设计“添加用户”窗体eq\o\ac(○,1)新增加一个名为frmadduser的窗体,如图所示:eq\o\ac(○,2)在“确定”按钮的click事件过程中写入代码:DimtablenameAsString="userid"Iftxtuserpassword.Text<>txtcomfirmpassword.TextThenMsgBox("前后两次输入的密码不一致"+Chr(10)+"请重试",vbOKOnly+-vbExclamation,"警告")ExitSubEndIfsearchsql="select*fromuserid"module1.executesql(searchsql,tablename)DimnewrowAsDataRownewrow=module1.mytable.NewRownewrow.Item(0)=Trim(txtusername.Text)'给第一个字段赋值newrow.Item(1)=Trim(txtuserpassword.Text)'给第二个字段赋值mytable.Rows.Add(newrow)'添加新用户module1.cmd=NewSqlCommandBuilder(module1.adocmd)'使用自动生成的sql语句module1.adocmd.Update(module1.ds,tablename)'对数据库进行更新MsgBox("添加用户成功!",vbOKOnly+vbExclamation,"信息框")eq\o\ac(○,3)在“添加用户”子菜单的click事件过程中写入代码:DimnewfrmadduserAsNewfrmadduser()'窗体类对象化newfrmadduser.Show()'显示窗体eq\o\ac(○,4)在“退出”子菜单的click事件过程中写入代码:Endeq\o\ac(○,5)在“取消“按钮的click事件中写入代码:Me.Dispose()“学籍管理”程序的设计1、设计“添加学籍信息”窗体eq\o\ac(○,1)新增加一个名为frmaddstinfo的窗体,如图所示:eq\o\ac(○,2)设置“性别”选择框的item属性为“男”、“女”,“班级”选择框的item属性为“初一”、“初二”、“初三”、“高一”、“高二”、“高三”。eq\o\ac(○,3)在“确认添加”命令按钮的click事件过程中写入代码:IfNotIsNumeric(Trim(txtsid.Text))ThenMsgBox("请输入数字!",vbOKOnly+vbExclamation,"警告")txtsid.Focus()'学号必须为数字ExitSubEndIfIfNotIsNumeric(txttel.Text)ThenMsgBox("请输入联系电话",vbOKOnly+vbExclamation,"警告")txttel.Focus()'电话不能为空ExitSubEndIfIfNotIsDate(txtrudate.Text)ThenMsgBox("入校时间应输入日期格式(yyyy-mm-dd)!",vbOKOnly+vbExclamation,"警告")txtrudate.Focus()'入校日期不能为空ExitSubEndIfDimtablenameAsString="student"searchsql="select*fromstudent"module1.executesql(searchsql,tablename)DimnewrowAsDataRownewrow=module1.mytable.NewRownewrow.Item(0)=Trim(txtsid.Text)newrow.Item(1)=Trim(txtname.Text)newrow.Item(2)=Trim(combosex.Text)newrow.Item(3)=Trim(txtborndate.Text)newrow.Item(4)=Trim(comboclassno.Text)newrow.Item(5)=Trim(txttel.Text)newrow.Item(6)=Trim(txtrudate.Text)newrow.Item(7)=Trim(txtaddress.Text)newrow.Item(8)=Trim(txtcomment.Text)mytable.Rows.Add(newrow)module1.cmd=NewSqlCommandBuilder(module1.adocmd)Trymodule1.adocmd.Update(module1.ds,"student")MsgBox("添加学籍信息成功!",vbOKOnly+vbExclamation,"警告")CatchexAsExceptionMsgBox(Err.Description)EndTryeq\o\ac(○,4)在“取消添加”命令按钮的click事件过程中写入代码:Me.Dispose()eq\o\ac(○,5)在“添加学籍信息”子菜单的click事件过程中写入代码:DimnewaddstinfoAsNewfrmaddstinfo()newaddstinfo.MdiParent=Me'设置为主窗体的子窗体newaddstinfo.Show()2、设计“修改学籍信息”窗体eq\o\ac(○,1)新增加一个名为frmmodifystinfo的窗体,如图所示:eq\o\ac(○,2)在frmmodifystinfo的load事件过程中写入代码:txtsid.Enabled=Falsetxtname.Enabled=Falsecombosex.Enabled=Falsetxtborndate.Enabled=Falsetxtclassno.Enabled=Falsetxtrudate.Enabled=Falsetxttel.Enabled=Falsetxtaddress.Enabled=Falsetxtcomment.Enabled=False'设置信息为只读DimtablenameAsString="student"searchsql="select*fromstudent"module1.executesql(searchsql,tablename)showdata()eq\o\ac(○,3)在窗口代码区中定义显示数据的函数showdata():PrivateSubshowdata()module1.myrow=module1.mytable.Rows.Item(rownumber)txtsid.Text=module1.myrow.Item(0).ToStringtxtname.Text=module1.myrow.Item(1).ToStringcombosex.Text=module1.myrow.Item(2).ToStringtxtborndate.Text=module1.myrow.Item(3).ToStringtxtclassno.Text=module1.myrow.Item(4).ToStringtxttel.Text=module1.myrow.Item(5).ToStringtxtrudate.Text=module1.myrow.Item(6).ToStringtxtaddress.Text=module1.myrow.Item(7).ToStringtxtcomment.Text=module1.myrow.Item(8).ToStringEndSubeq\o\ac(○,4)在“第一条记录”按钮的click事件过程中写入代码:rownumber=0showdata()eq\o\ac(○,5)在“上一条记录”按钮的click事件过程中写入代码:btnext.Enabled=Truerownumber=rownumber-1Ifrownumber<0Thenrownumber=0btprev.Enabled=FalseEndIfshowdata()eq\o\ac(○,6)在“下一条记录”按钮的click事件过程中写入代码:btprev.Enabled=Truerownumber=rownumber+1Ifrownumber>module1.mytable.Rows.Count-1Thenrownumber=module1.mytable.Rows.Count-1btnext.Enabled=FalseEndIfshowdata()eq\o\ac(○,7)在“最后一条记录”按钮的click事件过程中写入代码:rownumber=module1.mytable.Rows.Count-1showdata()eq\o\ac(○,8)在“修改记录”按钮的click事件过程中写入代码:txtsid.Enabled=False'关键字段只读txtname.Enabled=Truecombosex.Enabled=Truetxtborndate.Enabled=Truetxtclassno.Enabled=Truetxtrudate.Enabled=Truetxttel.Enabled=Truetxtaddress.Enabled=Truetxtcomment.Enabled=Trueeq\o\ac(○,9)在“更新记录”按钮的click事件过程中写入代码:IfNottesttxt(txtname.Text)ThenMsgBox("请输入姓名!",vbOKOnly+vbExclamation,"警告")txtname.Focus()ExitSubEndIfIfNottesttxt(combosex.Text)ThenMsgBox("请输入性别!",vbOKOnly+vbExclamation,"警告")combosex.Focus()ExitSubEndIfIfNottesttxt(txtclassno.Text)ThenMsgBox("请输入班号!",vbOKOnly+vbExclamation,"警告")txtclassno.Focus()ExitSubEndIfIfNottesttxt(txttel.Text)ThenMsgBox("请输入联系电话!",vbOKOnly+vbExclamation,"警告")txttel.Focus()ExitSubEndIfIfNottesttxt(txtaddress.Text)ThenMsgBox("请输入家庭住址!",vbOKOnly+vbExclamation,"警告")txtaddress.Focus()ExitSubEndIfIfNotIsNumeric(Trim(txtsid.Text))ThenMsgBox("请输入数字学号!",vbOKOnly+vbExclamation,"警告")txtsid.Focus()ExitSubEndIfIfNotIsDate(txtborndate.Text)ThenMsgBox("出生时间应输入日期格式(yyyy-mm-dd)!",vbOKOnly+vbExclamation,"警告")txtborndate.Focus()ExitSubEndIfIfNotIsDate(txtrudate.Text)ThenMsgBox("入校时间应输入日期格式(yyyy-mm-dd)!",vbOKOnly+vbExclamation,"警告")txtrudate.Focus()'入校日期不能为空ExitSubEndIfmodule1.myrow.Item(0)=Trim(txtsid.Text)module1.myrow.Item(1)=Trim(txtname.Text)module1.myrow.Item(2)=Trim(combosex.Text)module1.myrow.Item(3)=Trim(txtborndate.Text)module1.myrow.Item(4)=Trim(txtclassno.Text)module1.myrow.Item(5)=Trim(txttel.Text)module1.myrow.Item(6)=Trim(txtrudate.Text)module1.myrow.Item(7)=Trim(txtaddress.Text)module1.myrow.Item(8)=Trim(txtcomment.Text)module1.mytable.GetChanges()module1.cmd=NewSqlCommandBuilder(module1.adocmd)module1.adocmd.Update(module1.ds,"student")MsgBox("修改学籍信息成功!",vbOKOnly+vbExclamation,"警告")txtname.Enabled=Falsecombosex.Enabled=Falsetxtborndate.Enabled=Falsetxtclassno.Enabled=Falsetxtrudate.Enabled=Falsetxttel.Enabled=Falsetxtaddress.Enabled=Falsetxtcomment.Enabled=False'重新设置信息为只读eq\o\ac(○,10)在“取消记录”按钮的click事件过程中写入代码:txtsid.Enabled=Falsetxtname.Enabled=Falsecombosex.Enabled=Falsetxtborndate.Enabled=Falsetxtclassno.Enabled=Falsetxtrudate.Enabled=Falsetxttel.Enabled=Falsetxtaddress.Enabled=Falsetxtcomment.Enabled=False'设置信息为只读eq\o\ac(○,11)在“删除记录”按钮的click事件过程中写入代码:module1.mytable.Rows.Item(rownumber).Delete()IfMsgBox
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 青岛理工大学公差与技术测量期末复习题及参考答案
- 21个领导力法则
- 业务新员工年终总结
- 组成意义心电图波的和
- 做六有青年活动
- 社区护理基础-1729734559038
- 言语治疗技术失语症的分类
- 剖腹产后护理查房
- 北京市顺义区2021届高三下学期第二次统练化学试题
- 医疗垃圾整顿
- 戏剧艺术概论-中央戏剧学院中国大学mooc课后章节答案期末考试题库2023年
- 巯基乙醇化学品安全技术说明书
- 小学道德与法治课评分表
- 汽修厂搞个优惠活动
- 幼儿园教研五大领域主题30篇
- 2023年民俗博物馆防火、防盗、防恐应急预案
- 七年级劳动技能课全册教案
- 法学英语论文
- 如何培养一支高素质的班干部演示文稿
- 2023年西安国际港务区招聘笔试参考题库附带答案详解
- 发动机冷却系统说课稿课件
评论
0/150
提交评论