跨平台语言程序设计导入项目学生信息管理系统面向对象类的建立与抽象Word文档下载推荐.docx
《跨平台语言程序设计导入项目学生信息管理系统面向对象类的建立与抽象Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《跨平台语言程序设计导入项目学生信息管理系统面向对象类的建立与抽象Word文档下载推荐.docx(28页珍藏版)》请在冰点文库上搜索。
通过研究调查,本系统需以下功能:
综合学生信息、学生成绩以及信息查询等信息。
方便用户了解和管理学生的全面动态信息。
良好的界面设计,更人性化的设计理念,使用户拥有更轻松的使用心情。
3.2可行性分析
目的:
可行性研究的目的是用最小的代价在尽可能的时间内确定问题是否能解决。
经济性:
由于学校等中小型管理系统并不复杂,且VisualBasic6.0本身要求的运行环境不高,所以一般Windows2000以上的系统环境都可以使用。
实用性:
本学生信息管理系统管理系统无太多复杂的操作要求,也没有过分花哨的装饰品,人性化的设计界面可以使操作者轻易运用自如
4系统设计
4.1设计目标
本系统可以能减少很多不必要的资源,不用象以前那样用冗余的纸张式的管理。
大节省了学校能源。
并且计算机的存储与快速查询功能大大提高了学籍管理的效率,并且还提高了学籍信息管理的精确度。
方便快速的操作,可减少学籍信息管理的漏洞,又减少因工作的冗余出现的错误,并且操作非常简单,可减少许多不很必要的人员,这无论从物质上还是工作人员的工资上都为学校节约了开支。
为学校增加了财富。
数据库分析
用户需求具体有学籍管理系统提供保存、更新、查询、维护,这就需求数据库结构能充分满足各种信息的输入与输出,实现有组织地、动态地存储大量关联数据,方便用户访问系统中的数据,它与文件系统的重要区别是数据的充分共享,交叉访问,与应用程序的高度独立性。
4.3系统流程图
学生成绩信息管理
学生课程信息管理
系统管理
学生信息管理理
学生成绩录入
学生选课
课程查询
学生信息录入
学生信息修改
学生成绩查询
修改密码
用户管理
5系统详细设计
5.1数据库需求分析
5.2数据库逻辑结构设计
(1)kc(课程)见表1
表5-1
字段名
数据类型
是否允许为空
说明
课程号
Char(3)
Notnull
主键
课程名
Char(16)
开课学期
tinyint
只能为1-8
学时
学分
null
(2)xs_kc(学生选课)见表2
表5-2
学号
Char(6)
成绩
(3)xs(学生)见表3
表5-3
姓名
Char(8)
专业名
Char(10)
性别
Bit
Null
男1,女0
出生日期
SmallDatetime
Null
总学分
照片
image
备注
text
(4)user1(管理员登录)见表4
表5-4
角色
用户名
主键
密码
(5)user2(学生登录)见表5
表5-5
6.系统实现
6.1系统初始界面
图6-1
“系统初始界面代码”
DimstarttimeAsString
DimendtimeAsString
DimiAsInteger
PrivateSubForm_Load()
starttime=Format(Now,"
hh:
mm:
ss"
)
EndSub
PrivateSubTimer1_Timer()
DimretAsInteger
endtime=Format(Now,"
IfDateDiff("
s"
starttime,endtime)=10Then
DimcnAsADODB.Connection
Setcn=NewADODB.Connection
DimsqlresAsADODB.Recordset
cn.Open"
Provider=SQLOLEDB.1;
IntegratedSecurity=SSPI;
PersistSecurityInfo=False;
userid=sa;
InitialCatalog=master"
Setsqlres=NewADODB.Recordset
sqlres.Open"
SELECT*FROMmaster..sysdatabasesWHEREname='
xscj'
"
cn,adOpenDynamic,adLockPessimistic
Ifsqlres.EOF=FalseThen
'
Label1.Caption="
登陆成功"
cn.Close
UnloadMe
Form1.Show
Else
ret=MsgBox("
是否加载数据库"
vbYesNo,"
XSCJ"
Ifret=vbYesThen
Form12.Show
End
EndIf
EndIf
PrivateSubTimer2_Timer()
DimstrAsString
str="
系统加载中,请等待..."
i=i+1
Ifi=20Then
i=0
Label1.Caption="
Else
Label1.Caption=Label1.Caption&
Mid(str,i,1)
6.2附加数据库
图6-2
“附加Server数据库”按钮的click事件添加如下的代码
PrivateSubCommand2_Click()
IfText1.Text="
Then
MsgBox"
请选择数据库文件!
,"
ExitSub
OnErrorGoTodataerr
cn.Open"
cn.Execute("
sp_attach_db@dbname='
&
strdata&
"
'
@filename1='
m&
MsgBox"
附加成功!
cn.Close
UnloadMe
Form1.Show
ExitSub
dataerr:
MsgBoxErr.Description,,"
6.3登陆界面设计
图6-3
“登录”按钮的click事件添加如下的代码:
PrivateSubCommand1_Click()
OrText2.Text="
请输入完整的登录信息!
Text1.SetFocus
IfText3.Text="
请输入验证码"
Text3.SetFocus
i=Len(Text1.Text)
Ifi<
6Then
用户名应为六位数字"
提示"
Text1.Text="
i=Len(Text2.Text)
密码应为六位"
Text2.SetFocus
Text2.Text="
IfUCase(Trim(Text3.Text))<
>
Trim(Label4.Caption)Then
验证码输入错误"
Text3.Text="
DimsqlconAsNewADODB.Connection
DimsqlresAsNewADODB.Recordset
Setsqlcon=NewADODB.Connection
sqlcon.Openconnectstring
Ifoption1.ValueThen
select*fromdlglwhere用户名='
+Trim(Text1.Text)+"
and密码='
+Trim(Text2.Text)+"
connectstring,adOpenDynamic,adLockPessimistic
IfNotsqlres.EOFThen
juese=option1.Caption
yonghuming=Trim(Text1.Text)
mima=Trim(Text2.Text)
登录成功"
sqlres.Close
MDIForm1.Show
用户名或密码错误!
Randomize
i=Int(Rnd*25+65)
j=Int(Rnd*25+65)
k=Int(Rnd*25+65)
l=Int(Rnd*25+65)
Label4.Caption=Chr(i)&
Chr(j)&
Chr(k)&
Chr(l)
IfOption2.ValueThen
select*fromdlwhere用户名='
juese=Option2.Caption
6.6学生信息查询
图6-6
“查询”按钮的click事件添加如下的代码
select*fromxs,cxbwherexs.性别=cxb.性别0"
AndText2.Text="
AndCombo1.Text<
所有专业"
str="
select*fromxs,cxbwhere专业名='
+Trim(Combo1.Text)+"
andxs.性别=cxb.性别0"
AndCombo1.Text="
select*fromxs,cxbwherexs.性别=cxb.性别0"
IfText1.Text<
select*fromxs,cxbwhere学号='
Trim(Text1.Text)&
andxs.性别=cxb.性别0"
AndText2.Text<
select*fromxswhere学号='
and姓名='
Trim(Text2.Text)&
select*fromxswhere姓名='
or姓名='
or专业名='
Trim(Combo1.Text)&
Adodc1.RecordSource=str
Adodc1.CommandType=adCmdText
Adodc1.Refresh
IfAdodc1.Recordset.EOFThen
Combo1.Text="
Adodc1.RecordSource="
Adodc1.Refresh
Adodc1.Recordset.MoveFirst
OrText2.Text<
Combo1.Text=Adodc1.Recordset("
专业名"
6.7学生成绩录入
图6-7
“更新”按钮的click事件添加如下的代码
Dim学号,课程名,成绩,学分
IfTrim(Text2.Text)="
成绩不能为空,请输入完整的信息!
sqlcmd.CommandText="
addscore"
sqlcmd.CommandType=adCmdStoredProc
Set学号=sqlcmd.CreateParameter("
@学号"
adVarChar,adParamInput,6)
sqlcmd.Parameters.Append(学号)
Set课程名=sqlcmd.CreateParameter("
@课程名"
adVarChar,adParamInput,16)
sqlcmd.Parameters.Append(课程名)
Set成绩=sqlcmd.CreateParameter("
@成绩"
adInteger,adParamInput)
sqlcmd.Parameters.Append(成绩)
Set学分=sqlcmd.CreateParameter("
@学分"
sqlcmd.Parameters.Append(学分)
sqlcmd("
)=Combo3.Text
)=Combo2.Text
)=CInt(Text2.Text)
)=0
Setsqlres=sqlcmd.Execute
更新选课成绩成功"
sqlcmd.Parameters.Delete("
Adodc1.RecordSource="
selectxs_kc.学号,姓名,专业名,课程名,成绩,xs_kc.学分fromxs,kc,xs_kcwhere课程名='
+Trim(Combo2.Text)+"
and专业名='
andxs.学号=xs_kc.学号andkc.课程号=xs_kc.课程号"
Adodc1.Recordset.MoveLast
6.8修改学生成绩
图6-8
6.9学生成绩查询
图6-9
6.10用户管理
图6-10
窗体的代码如下
PrivatesqlconAsNewADODB.Connection
PrivatesqlresAsNewADODB.Recordset
sqlres.MoveFirst
Text1.Text=sqlres.Fields(0)
Text2.Text=sqlres.Fields
(1)
Text3.Text=sqlres.Fields
(2)
sqlres.MovePrevious
Ifsqlres.BOFThen
sqlres.MoveFirst
PrivateSubCommand3_Click()
sqlres.MoveNext
Ifsqlres.EOFThen
sqlres.MoveLast
PrivateSubCommand4_Click()
sqlres.MoveLast
Text2.Te