VB课程设计《学生成绩管理》_第1页
VB课程设计《学生成绩管理》_第2页
VB课程设计《学生成绩管理》_第3页
VB课程设计《学生成绩管理》_第4页
VB课程设计《学生成绩管理》_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 课程题目 学生成绩管理 五星 0 摘要 在数据化的今天 一个好的系统可以解决很多不必要的麻烦 而学生的成绩管理的任务繁杂有 易错 在本系统中有十分人性化的设计 可以解决一些比较繁重的文字输入 用户的一般操作 错误 同时对信息的保存有比较独特的处理 1 功能 1 1 基本功能 运行程序后 首先会显示登录界面 要求在输入数据库文件的正确密码后才能登录 登录密码 输入错误时 就会显示如图消息框提示重新输入 清除原输错的密码 若没有正确地密码 无 论怎样都无法打开数据库 2 通过密检后 进入到主窗口 窗口中以表格的形式显示数据库中所有学生的姓名 院 系 专业 年级 和四门课的课程成绩 数据多时会添加滚动条 但是对个人信息等不可以修改 修改成绩时 同时修改时只能输入0 100的分数 输入其他符号或者分数超界是分别会出现相 应 的提示 并还原成绩 2 在工具栏上点击 添加 时 会弹出添加窗体 下左 可其中相应位置输入学生的基本信息 但在若信息未输入完全时 又会弹出提示框 在基本完全输入后 点击确定 数据被添加到主 表格中 然后可以在表格中输入各科成绩 4 点击 查询 按钮 弹出查询窗体 如上右 这时选择想要查询的信息 点击 确定 回 到主窗体 此时表格上显示的即为符合条件的学生信息 在查询中 三个信息可以指定也不指 定 若均不指定即为查取所有学生信息 若三个信息条目未全选择的话 可以 深入查询 即 在已经显示的信息中进一步查询 若不想继续查询 可以点击 返回主页 返回到信息总表以进 行下一步操作 亮点部分将介绍到 5 单击 删除 可以删除光标所处的单元格横向信息 下右 或者通过鼠标拖动选定一连 串的几行信息 再点击删除键进行多项删除 3 6 单击工具栏上的 图表 弹出图表窗体 默认为二维条形图 可以通过选择右下角的 选项框来选择用二维圆饼图或者三维条形图来显示表格中的学生各科成绩分布情况 7 单击 更改密码 按钮 弹出改密码窗体 要求在输入正确的密码后才能输入新密码 否 则弹出消息框 并清除旧密码框的输入 在成功输入旧密码后 可以设置新密码 系统会检测 密码强度 要求输入两次 若两次输入不同 会有相应提示 两次形同后 系统会根据密码强 度来提示用户是否需要设置更高强度密码 若需重设 返回继续操作 密码设置成功后 系统 也会相应提示 8 单击 退出 退出程序 4 1 2亮点 学生成绩管理系统结合数据库 和以前很多的知识 在其基本功能上要求有所创新也是很 容易的事 我在做这个程序时力求多运用所学知识 在以下方面自认为有些许过人之处 1 首先是主页上运用toolbar与picturelist控件结合 经原本运用多个按钮而图片不一样大小 的问题解决的很好 而且可以用小浮动框提示信息 第一个表格 2 其次是表格部分 在数据处理部分运用一个文本框来控制所有的栏目内数据 禁止在分 数栏目内输入非数字的字符 且分数不得超过100分 否则弹出相应窗口提示 并恢复原值 3 查询为一大亮点 可以深入查询 而且可以多次进行 每深入一层 其院系 专业 年 级的符合条件项目被作为模块级变量存储 在已进行到深入查询中时 此时的添加上记录目前 的查询条件项目 进行定向添加 按钮部分添加了 返回主页 可以返回以待下一步操作 并且查询部分使用了progress bar控件 根据显示条目的数量来确定起作用的时间 标签 请 稍候 和progress bar是运行时状态 4 删除部分实现多项删除 5 5 修改密码部分为另一大亮点 添加了密码强度的测定 类似于比较高级系统注册时的 并且可以检测两次密码是否相同并相应提示 另外 在第二个文本框 第三个文本框 以及 其后两个标签的同步上也十分精彩 2 课程设计的详细设计 2 1 设计思路 登录 主窗体 修改成绩 添加 查询 多次 深入查询 返回主页 添加 多项 删除 多类 图表 修改密码 含等级测定 退出 2 2 详细设计 2 2 1标准模块 6 定义了数据库中的记录集以及查询中要用到的几个变量 并且写出几个函数过程 以 便使用数据库中表格之间的使用 以下是其中一个 功能是由院系代号得到院系名称 Public Function getSchool a As Integer As String recschool MoveFirst Do While Not recschool EOF If recschool 代号 a Then getSchool recschool 名称 Exit Function Else recschool MoveNext End If Loop End Function 2 2 2 登录窗体 frmlogin 在这里运用了on error以解决在打开数据库但密码不对时产生的运行时错误 同时记录密码为 全局量paa 以便后来改密码 Private Sub Cmd1 Click On Error GoTo l1 Set db OpenDatabase App Path pwd txtpass paa txtpass Text Unload Me Load frmmain frmmain Show Exit Sub l1 MsgBox 无效的密码 请重试 0 48 登录 txtpass SetFocus txtpass End sub 2 2 3 主窗体 frmmain 再此窗体中 首先form load 了数据表中的各个记录 并且给其前面排上序号 然后是设计用 一个文本框来改变表格中的成绩部分 基本信息部分时让文本框不能使用 并且实时地记录 到数据库中 在输入数据的处理中 使用了text1的change事件来判断所输入的字符是否符合 要求以及分数是否超界 7 接下来就是 toolbar 的 buttonclick 事件 我运用了文本框位置判断避免了当条目不够而文本 框还在下面的尴尬 If Text1 Top 270 i 630 Then Text1 Visible False 然后就进行按钮事件的编辑 如添加 查询 图表 改密 都是进行窗体的链接 而删除是对 条目进行直接处理 同时 我添加了 返回主页 和 深入查询 的 按钮 使得查询部分 可以进行链接 返回主页 其实是调用查询窗体中的全局事件 sub11 当然 要让三个条件都为空 删除部分 首先会判断是否有记录来删除 If Grid1 Row 0 Then MsgBox 当前无记录 删除无效 vbCritical vbOKOnly 删除信息 接着就是删除主题了 在这里 为了代码明晰 运用了子事件过程 这个要实现不仅在表格中 删除 而且要同步到数据库中 于是就有两部分 最后 为防止因非正常原因导致系统突然关闭数据库中数据有损坏 加上了数据库关闭事件 2 2 4 添加 frmtj 由 frmmain 中的链接到达 由于设计了在查询后定向添加 其在 combo 中添加相应条目过程 就留到查询中介绍 就此介绍单纯的添加 首先是在院系中添加数据库院系表格中的院系信息 在选定院系后 根据院系的名称来运用标准模块中 getSchool 事件来获取专业表格中对应的专 业名称 并添加年级 单击 确定 若信息不完全则弹出提示框 否则就加载到表格和数据 库中 做法与删除相似 2 2 5 查询 frmcx 在这一窗体中实现的过程十分复杂 要兼顾主窗体 添加 下一步的查询 首先就先来说单纯 的查询 开始的 form load 事件和添加相当 即添加院系和年级信息 再根据选定的院系来确 定加载的专业 然后运用 progressbar 控件的 value 和 max mim 属性进行对填满时间控制 8 接着就是查询的主体部分 运用书上介绍的 grid 的查询方式 在表格的每一行添加查到符合 条件的记录 初始时利用 s select from 成绩 where true 语句以解决当查询条件为 空时的查询的困难 现在分析二次查询方法 把每一次的查询窗体中记录下查询中对应的院系 专业 年级为全局 变量 cx1 cx2 cx3 在首次进入查询后改变 frmmain 中的 toolbar 上的 button 在其后的查 询或者添加中直接填入 直到点击 返回主页 或者 退出 才释放所记录值 而在点击 返回主页 后又把 button 改回原来状态 在查询窗体中 在主窗体中 要实现这一过程 就要用到 cxre1 这一全局变量来判断是否点击 深入查询 从而决定是否 要用所记录的 cx1 cx2 cx3 来代替 即先删除 后添加 按原计划添加的条目 2 2 6图表 frmtb 本节比较简单 首先是用 combo1 的三个选项值来决定图表的 chartType 从而分别决定不同 格式的图表 然后就是对图表的 RowLabel ColumnLabel 等进行赋值 再从表中获取数据制 图 2 2 7更改密码 frmchange 正如亮点中看到的那样 首先是判断输入旧密码框中的密码是否为正确的原密码 这个比较简 单 然后就进入最主要的判断与同步环节 在这里 首先要控制输入的字符合理性以及数目 2 8 个 并且记录同类字符数目 数字 大写字母 小写字母 下划线四类 以及处理非 9 指定字符方式 然后结合输入字符的种类 e a1 b1 c1 d1 和数目 n 来确定密码强度 以 下为部分情况 接着就是确认密码框的编辑 由于用户可能在此编辑完成后 又去修改前一文本框的内容 所 以两文本框的 change 事件要协调好 减少漏洞 之后有的是确认 由于前面当密码框与确认密码框中有问题时确认都为不可点击 所以此时所 要提示的是密码强度较低时用户是否需要重置 若是 则使两密码框清空 其后的 label 恢复 到最初状态 3 程序调试过程 在经历了无所次反复与斗争之后 我的感触是 每一个程序调试的过程都是一部的苦痛史 同时也是一部奋斗史 更是一部成功史 就这个编程 耗费了我大量的心血 而其中的大部分 都花在调试上 在此限于篇幅原因 我就其中几个比较深刻的问题谈谈 3 1常见错误 逻辑关系的理顺 1 在本程序中 大量使用了逻辑关系 可以说 我所学过的都用上了 而且大部分时候都是 嵌套 也正是因为这个 一旦指示不明白就会出现错误 而这些错误也是我编程序过程中最常 见的 逻辑错误会导致运行过程与预计的不同 比如在删除 toolbar 上的 button 时 如果不考虑 已经删去的按钮而当其存在的话 就会发生错误删除的现象 又如 grid 表格中 rows cols 等 10 的取值 rowsel 和 row 的区别与联系 预定的按钮 标签在何时可见 何时有效等 拼写细节 2 拼写错误也是一个常见的错误 而这种错误导致的常是定量为定义 引用不存在等 这对 过程内部衔接 过程间衔接 模块中衔接都会产生十分严重的影响 好在此类错误一般都能由 系统发现并比较快的解决 3 2 过程简化 在编程过程中 我力求代码清晰明了 比如大量运用了 with end with 等 刚开始以为代 码不会很多 所以拼写什么的都没有很好的格式 后来发现把代码打得错落很重要 不仅有利 于后来读懂代码 而且有利于在出错时修改方便 并且方便后来要求更高时加深事件的复杂性 3 3 具体错误 数据库的导入 1 这个问题困扰了我两周 其实真的不是个太大的问题 多半原因是知识浅薄 连接数据库的 控件除了 dao 还有 ADO 但开始不知道 一直未标明 最后是在一个教 c 的老师和百度联手 的帮助下才知道的 当时 十分激动 用一个文本框修改多处数值 2 刚开始就是直接按照书上所有的代码执行 结果发现文本框点到那个框就会记录下该框信 息 并且在点下一个框时赋给它 后来才发现两者情况的不同 本程序里要求前几栏的基本信 息不得改动 结果在 Grid1 EnterCell 时运用 If Grid1 Col 5 Then Text1 Enabled False Text1 Visible False Exit Sub 让文本不能显示 不能作用 自然也就解决了这个问题 多项删除 3 在了解了 row 和 rowsel 的定以后 我想通过鼠标的拖动时选定的部分来实现多项删除 但 无论是用 do loop until 还是用 for next 等带循环的语句都不能实现 因为一直都提示会 发生在一项删除后由于没有当前项目而发生错误 后来上网查了很久 有说用 refersh 或 update 属性的 但都没用 后来 我想既然当前条目不存在 就让等于 row 与 rowsel 比较小 的 然后从后向前删除 Row rowsel 项就可以了 实验了下 确实可以 combo 的多次值记录与调用 4 由于多次跨模块的使用 使得我不得不对这一课上并非重点的控件好好研究 当然 在这 里遇到的问题真不少 比如 运行时属性 text 必须在已经有添加该条目时才能赋值 开始 本来只以为在标准模块里定义 2 个公共事件就行了 结果由于深入查询的理念不得不利用数据 库中表里代号 院系 专业 院系名称 专业名称间互化关系来在获取要查询的条件里筛选 以取代原设计按选定序号来查询的方式 改密时文本框与标签的协调 5 由于操作具有反复性 可能在已经填好新密码后 又返回填旧密码 或者在输入密码时输 入非有效字符等诸多问题 以下为部分情况 11 使得我不得不进行大量的实验 力求发现未曾考虑的情况并相应改进 4 课程设计总结 从最初的选题到一步步的实践过程中 我深深感所到

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论