一元二次方程出题管理系统.docx
- 文档编号:11412765
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:26
- 大小:4.21MB
一元二次方程出题管理系统.docx
《一元二次方程出题管理系统.docx》由会员分享,可在线阅读,更多相关《一元二次方程出题管理系统.docx(26页珍藏版)》请在冰点文库上搜索。
一元二次方程出题管理系统
沈阳理工大学
课程设计说明书
题目一元二次方程出题管理系统
课程名称VB程序设计及数据库应用课程设计
专业工业工程
学号1001030217
姓名林景雷
指导教师舒启林,魏永合
目录
一.选题的意义…………………………………………………………3
1选择该题目的原因………………………………………………………3
2完成此题目用到的数据结构和知识点…………………………………3
二.系统功能简介……………………………………………………………3
1系统概述…………………………………………………………………3
2系统的组成及各模块的功能……………………………………………3
3系统的运行环境…………………………………………………………3
三.系统设计…………………………………………………………………4
1总体结构设计…………………………………………………………4
2数据库设计……………………………………………………………5
四.系统具体功能…………………………………………………………………7
五.系统实现………………………………………………………………………7
1主界面的设计和实现…………………………………………………7
2登录界面的设计和实现……………………………………………9
3学学生密码修改界面的设计和实现………………………………………12
4注册新用户界面的设计和实现…………………………………………14
5答题界面的设计与实现………………………………………………16
6保存界面的设计与实现………………………………………19
7查询界面的设计与实现……………………………………20
六.小结……………………………………………………………………………22
1遇到及解决的问题………………………………………………22
2心得体会……………………………………………………………23
七.参考文献………………………………………………………………………23
一选题的意义
1.选该题的原因
从大的方面来讲,现在我国的部分高中及其以下级别的大部分中学,学生平时测验都是以卷纸的形式,这样的方法已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。
我选择这个题目,希望可以代替卷纸出题形式,减少纸的使用,达到环保,方便的目的。
改革的总设计师邓小平同志说过“科学技术是第一生产力”,我希望能用我一年的所学编制出一个实用的程序给大家提供一个更加方便的测验出题形式。
从小的方面来说,我感觉这个题目和我的学校生活密切相关,我也比较熟悉该系统,更容易学到对于我vb语言学习有用的知识。
2.完成此题目用到的数据结构和知识点。
2.1数据结构:
通过可视化数据管理器可以进行数据库操作。
建立数据库:
启动可视化数据管理器,创建数据库,创建数据库表,然后编辑数据库。
2.2知识点:
Access技术:
可以开发关系数据库,数据库能汇集各种信息以供查询、存储和检索。
数据库(Database)是由一些有意义和有关系的数据(data)所组合而成。
一个数据库中,包含了许多条记录(Record),而每条记录是由多个字段(Field)所组成,不同的字段存放这不同的数据。
所以数据库的严格定义是一组相关记录的集合,而字段则是最基本的数据项,也是数据库中最小的单位。
在计算机中用来帮我们管理数据库的系统,我们称之为数据库管理管理系统(DatabaseManagementSystemDBMS)。
数据库管理系统是架构在一个或多个数据库之上,并针对数据库中的数据进行管理运用。
3、系统的运行环境
3.1系统使用环境
操作系统:
windowsxp/2000/me/98/7
系统支持:
visualbasic6.0及以上版本
数据库:
access
3.2系统开发环境
操作系统:
windowsxp/2000/me/98/7
系统支持:
visualbasic6.0
Access的优点在于它能使用数据表示图或自定义窗体收集信息,数据表示图提供了一种类似于Excel的电子表格,可以使数据库一目了然。
另外,Access允许创建自定义报表用于打印或输出数据库中的信息。
Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。
如上所述,Access作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。
三系统设计
1.总体结构设计
对上述各项功能进行集中、分块,按照结构化层序设计的要求,得到如下所示的系统功能功能模块图。
2.数据库设计
数据库在本成绩管理系统中占有非常重要的地位,数据库结构的好坏将直接对应用系统的效率以及实现的效率产生影响。
合理的数据库及结构设计可以提高数据存储的效率,保证数据的完整和一致。
同时合理的数据库结构也将有利于程序的实现。
设计本系统的数据库应该充分满足用户的需求。
按照实体进行设计:
(1)打开可视化数据管理器程序
(2)建立数据库(3)创建数据库表(4)添加字段(5)生成表⑹添加内容
密码表
字段名称
数据类型
字段大小
Account
文本
10
Password
文本
10
成绩表
字段名称
数据类型
字段大小
Account
文本
10
Password
文本
10
Grade
文本
10
All
文本
10
Right
文本
10
四系统功能
1.注册用户功能
2.登录功能
3.修改个人密码功能
4.随机出题功能
5.批改功能
6.每次出题数量控制管理
7.统计成绩功能
8.成绩查询功能
9.统计功能
五系统实现
1主界面的实现
主界面,通过菜单可以连接到登录界面,注册界面和查询界面,具体图形及相关代码如下所示:
具体代码如下:
PrivateSubCommand1_Click()
Form1.Hide
登录界面.Show
EndSub
PrivateSube_open2_Click()
Form1.Hide
注册界面.Show
EndSub
PrivateSubexitmenu_Click()
UnloadMe
EndSub
PrivateSubk_open1_Click()
Form1.Hide
登录界面.Show
EndSub
PrivateSubselectmenu_Click()
Form1.Hide
查询界面.Show
EndSub
2.登录界面的实现
连接到数据库密码表,可以转到注册界面和修改密码以及答题界面
具体代码如下:
PrivateSubCommand1_Click()
IfTrim(Text1.Text)=""Then
MsgBox"用户名不能为空,请重新输入!
",vbOKOnly+vbExclamation,"警告"'判断输入是否为空,若是,则弹出窗体警告!
Text1.SetFocus
Else
Adodc1.RecordSource="select*from密码表whereaccount="+"'"+Trim(Text1.Text)+"'"+"andpassword="+"'"+Trim(Text2.Text)+"'"
Adodc1.Refresh
IfAdodc1.Recordset.EOF=TrueOrAdodc1.Recordset.BOF=TrueThen
MsgBox"用户名或密码错误"'连接到数据库密码表并查询验证
Text1.Text=""
Text2.Text=""
Else
登录界面.Hide
答题界面.Show
EndIf
EndIf
EndSub
PrivateSubCommand2_Click()
Text1.Text=""
Text2.Text=""
EndSub'取消"按钮,使两个文本框内容为空。
PrivateSubCommand4_Click()
登录界面.Hide
注册界面.Show
EndSub
PrivateSubCommand3_Click()
IfTrim(Text1.Text)=""Then
MsgBox"用户名不能为空,请重新输入!
",vbOKOnly+vbExclamation,"警告"'判断输入是否为空,若是,则弹出窗体警告!
Text1.SetFocus
Else
Adodc1.RecordSource="select*from密码表whereaccount="+"'"+Trim(Text1.Text)+"'"+"andpassword="+"'"+Trim(Text2.Text)+"'"
Adodc1.Refresh
IfAdodc1.Recordset.EOF=TrueOrAdodc1.Recordset.BOF=TrueThen
MsgBox"用户名或密码错误"
Else'连接到数据库密码表并查询验证
登录界面.Hide
修改密码界面.Show
Text2.Text=""
EndIf
EndIf
EndSub
PrivateSubCommand5_Click()
登录界面.Hide
答题界面.Show
EndSub
PrivateSube_open1_Click()
注册界面.Show
EndSub
PrivateSube_open2_Click()
修改密码界面.Show
EndSub
PrivateSube_open3_Click()
答题界面.Show
EndSub
PrivateSubquitmenu_Click()
登录界面.Hide
Form1.Show
EndSub
3学生密码修改界面:
具体代码如下:
PrivateSubCommand1_Click()
IfTrim(Text1.Text)=""Then
MsgBox"请输入用户名!
",vbOKOnly+vbExclamation,"信息提示"
Text1.SetFocus'判断用户名是否为空,若为空,则弹出警告,输入用户名!
ExitSub
Else
IfTrim(Text2.Text)=""OrTrim(Text3.Text)=""Then
MsgBox"请输入密码和确认密码!
",vbOKOnly+vbExclamation,"信息提示"
Else
IfTrim(Text2.Text)<>Trim(Text3.Text)Then
MsgBox"两次密码不一致!
请从新输入"
Text3.Text=""
Text2.Text=""
Else
Adodc1.RecordSource="select*from密码表whereaccount="+"'"+Trim(Text1.Text)+"'"
Adodc1.Refresh
IfAdodc1.Recordset.EOF=FalseAndAdodc1.Recordset.BOF=FalseThen
Adodc1.Recordset.Fields("password")=Trim(Text2.Text)
Adodc1.Recordset.Update
Adodc1.Refresh
MsgBox"密码修改成功!
"'更新密码表的数据
Else
MsgBox"用户名不存在"
EndIf
EndIf
EndIf
EndIf
EndSub
PrivateSubCommand2_Click()
Text1.Text=""
Text2.Text=""
EndSub'单击"取消"按钮,将文本框清空。
PrivateSubCommand3_Click()
Me.Hide
登录界面.Show'单击"返回"按钮,当前窗体隐藏,登陆界面界面出现。
EndSub
PrivateSubForm_Load()
EndSub
4注册新用户界面:
具体代码如下:
PrivateSubCommand1_Click()
IfTrim(Text1.Text)=""Then
MsgBox"请输入用户名!
",vbOKOnly+vbExclamation,"信息提示"
Text1.SetFocus'判断用户名是否为空,若为空,则弹出警告,输入用户名!
ExitSub
Else
IfTrim(Text2.Text)=""OrTrim(Text3.Text)=""Then
MsgBox"请输入密码和确认密码!
",vbOKOnly+vbExclamation,"信息提示"
Else
IfTrim(Text2.Text)<>Trim(Text3.Text)Then
MsgBox"两次密码不一致!
请从新输入"
Text3.Text=""
Text2.Text=""
Else
Adodc1.RecordSource="select*from密码表whereaccount="+"'"+Trim(Text1.Text)+"'"
Adodc1.Refresh
IfAdodc1.Recordset.EOF=TrueOrAdodc1.Recordset.BOF=TrueThen
Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields("account")=Trim(Text1.Text)
Adodc1.Recordset.Fields("password")=Trim(Text2.Text)
Adodc1.Recordset.Update
Adodc1.Refresh
MsgBox"添加用户成功!
",vbOKOnly+vbExclamation,"添加用户"'若上述情况均没有,则连接数据库,将输入的用户信息添加到"密码表"中去。
Else
MsgBox"用户名已存在"
Text1.Text=""
Text2.Text=""
Text3.Text=""
EndIf
EndIf
EndIf
EndIf
EndSub
PrivateSubCommand2_Click()
Text1.Text=""
Text2.Text=""
Text3.Text=""'单击"取消"按钮,将文本框清空。
EndSub
PrivateSubCommand3_Click()
Me.Hide
登录界面.Show'单击"返回"按钮,返回到主界面。
EndSub
5答题界面的实现
具体代码如下:
PrivateSubb_open1_Click()
p=5'选题五道
e=0'做题错误数
f=0'做题正确数
z=0
EndSub
PrivateSubb_open2_Click()
p=10'选题十道
e=0'做题错误数
f=0'做题正确数
z=0
EndSub
PrivateSubb_open3_Click()
p=15'选题十五道
e=0'做题错误数
f=0'做题正确数
z=0
EndSub
PrivateSubb_open4_Click()
p=20'选题二十道
e=0'做题错误数
f=0'做题正确数
z=0
EndSub
PrivateSubb_open5_Click()
p=50'选题五十道
e=0'做题错误数
f=0'做题正确数
z=0
EndSub
PrivateSubCommand1_Click()
Text4.Text=""
Text5.Text=""
Text6.Text=""
Text7.Text=""
Ifp<2Then
MsgBox"请先选择做题数目!
"
Else
StaticzAsInteger'z为选题数目
z=z+1
Command1.Caption="下一题"
Ifz>pThen
MsgBox"已完成答题!
"
Else
Text1.Text=Int(Rnd*(1-5+1)+5)
Text2.Text=Int(Rnd*(-10-15+1)+15)
Text3.Text=Int(Rnd*(-10-10+1)+10)'随机产生系数
EndIf
EndIf
EndSub
PrivateSubCommand2_Click()
DimaAsInteger,bAsInteger,cAsInteger,mAsSingle,nAsSingle
a=Val(Text1.Text)
b=Val(Text2.Text)
c=Val(Text3.Text)
d=b*b-4*a*c
Ifd>=0Then'判断是否有解
m=Int((-b+Sqr(d))/(2*a))
n=Int((-b-Sqr(d))/(2*a))'得到解,取整,方便程序验证
h=Val(Text4.Text)
i=Val(Text5.Text)
If(h=mAndi=n)Or(i=mAndh=n)Then
MsgBox"正确,再接再厉!
",vbExclamation,"good!
"
Command1.Caption="下一题"
f=f+1
Else
MsgBox"错啦,继续努力!
",vbExclamation,""
Label7.Caption="正确答案为:
"
Text6.Text=m
Text7.Text=n
e=e+1'判断对错,并统计
EndIf
Text8.Text=f
Text9.Text=e
Else
MsgBox"无解,此题作废,请做下一题!
"'无解的题不算入做题总数
EndIf
EndSub
PrivateSubcxmenu_Click()
Me.Hide
查询界面.Show
EndSub
PrivateSubquitmenu_Click()
UnloadMe
Form1.Show
EndSub
PrivateSubsavemenu_Click()
Me.Hide
baocun.Show'转到保存界面
EndSub
6保存界面的实现
具体代码如下:
PrivateSubCommand1_Click()
DimvAsInteger,wAsInteger
IfText1.Text=""Then
MsgBox"请先输入用户名!
"
Else
v=答题界面.Text8.Text
w=答题界面.Text9.Text
Text2.Text=v+w
Text3.Text=v
Text4.Text=v/(v+w)*100'计算得分
EndIf
EndSub
PrivateSubCommand2_Click()
Adodc1.RecordSource="select*from成绩表whereaccount='"&Text1.Text&"'"
Adodc1.Refresh
Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields("account")=Trim(Text1.Text)
Adodc1.Recordset.Fields("grade")=Trim(Text4.Text)
Adodc1.Recordset.Fields("all")=Trim(Text2.Text)
Adodc1.Recordset.Fields("right")=Trim(Text3.Text)'保存到数据库
Adodc1.Recordset.Update
MsgBox"保存成功!
"
EndSub
PrivateSubcxmenu_Click()
UnloadMe
查询界面.Show
EndSub
PrivateSubexitmenu_Click()
UnloadMe
Form1.Show
EndSub
7查询界面的实现
具体代码如下:
PrivateSubCommand1_Click()
IfTrim(text1.Text)=""Then
MsgBox"用户名不能为空,请重新输入!
",vbOKOnly+vbExclamation,"警告"
text1.SetFocus
Else
Adodc1.RecordSource="select*from成绩表whereaccount='"&text1.Text&"'"
Adodc1.Refresh
IfAdodc1.Recordset.EOFThen
MsgBox"用户名不存在,请重新输入!
",vbOKOnly+vbExclamation,"警告"
text1.SetFocus
Else
Label3.Caption=Adodc1.Recordset.Fields("all")
Label8.Caption=Adodc1.Recordset.Fields("right")
Label9.Caption=Adodc1.Recordset.Fields("grade")'从数据库查找用户,并输出信息
EndIf
EndIf
EndSub
PrivateSubexitmenu_Click()
UnloadMe
Form1.Show
EndSub
PrivateSubfanhuimenu_Click()
UnloadMe
登录界面.Show
EndSub
六小结
1遇到及解决的问题
主要问题1:
Adodc1.Refresh无法实现,运行到这里出错,说是with块未变量
解决方法:
询问老师,重连数据库,得到解决
主要问题2:
算题语法总是无法跟自己计划一致
解决方法:
经过多次修改,和同学讨论,写出了有自己特色的算法
主要问题3:
编程时字符型和数字
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一元 二次方程 出题 管理 系统