| 
 
   
 | 
计算机网络数据库设计 
 
 
 
题目:       学生信息管理系统 
 
 
学号          xx 
  
姓名          xx 
 
专业          xxxx 
 
 
 
 
 
日期        2006年12月8日 
         
 
 
 
 
随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。面对庞大的信息量需要有学生管理系统来提高学生管理工作的效率。通过这样的系统可以做到信息的规范管理、科学统计和快速查询、修改、增加、删除等,从而减少管理方面的工作量。 
本系统主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改 、增加、删除,另外还考虑到学生选课,针对这些要求设计了学生信息管理系统本系统主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改 、增加、删除,另外还考虑到学生选课,针对这些要求设计了学生信息管理系统。 
本系统主要包括学生信息查询、教务信息维护和学生选课三部分。其功能主要有: 
⒈有关学籍等信息的输入,包括输入学生基本信息、所在班级、所学课程和成绩等。 
⒉学生信息的查询,包括查询学生基本信息、所在班级、已学课程和成绩等。 
⒊学生信息的修改。 
⒋班级管理信息的输入,包括输入班级设置、年级信息等。 
⒌班级管理信息的查询。 
⒍班级管理信息的修改。 
⒎学生课程的设置和修改。 
学生信息管理系统是为本校开发的,本系统所采用的语言是visual basic,用microsoft access 2000数据库完成。该系统总体有四部分组成,包括学生信息查询、教务信息维护、学生选课及用户管理。通过本系统,把本校内部查询学生信息、教务信息、学生选课各个环节进行有效地计划、组织和控制。通过本校内部的信息,依据统一数据信息进行管理,把任何一块信息所产生的数据变动及时地反映给其它相关信息,做到数据共享。 
本系统主要信息流程为:教务信息维护接受学生的信息,学生信息查询根据教务信息维护的学生信息做出对所接收的信息合理性进行判断,并交于信息维护进行相应的修改,再把信息存入数据库中。学生选课是对学生进行相应选择自己相关的课程。最后进行打印。 
采用本系统,能够使整个系统内部所有信息的工作简化,提高工作效益。由于采用统一的数据信息,使相关资料能够快速地查询所需的数据、资料及其它信息的,使信息快速高效运行。 
 
本系统中使用到的数据表主要有班级表、成绩表、缴费表、课程表、学生档案、用户资料,由这六个表,组成了名为信息的数据库(如图一)。其中学生档案是本系统主要的 
 (图一) 
一张表,所有信息都是根据这张学生档案进行有关的操作,主要的字段有:学号、姓名、年级、专业、性别、出生年月、民族、籍贯、政治面貌、家庭地址、邮政编码、联系电话、入学时间、备注。其中日期的数据类型为日期/时间天型,其它的数据类型为文本型;成绩表中字段为:学号、姓名、年级、专业、学期、考试时间、考试科目、考试地点、课程性质、科目分数、违纪类型、备注;课程表中字段为:专业、年级、学期、课程名称、教材、任课老师、课时、上课地点、课程性质、考试性质;用户资料中的字段包括:用户名、密码、身份。 
数据库与vb的连接:本系统的数据链接采用的是ado方法,打开控制面板,打开odbc数据源图标,选择“系统dsn”标签,点击“添加”按钮,在弹出的“创建新数据源”对话框中选择名称为“microsoft access drive(*.mdb)”,点击“完成”按钮,在odbc microsoft access 安装对话框中在数据源名中输入信息,在数据库这个框中, 单击“选择”按钮,在弹出的选择数据库这一对话框架中,在驱动器下拉列表框中选择本系统数据库所在驱动器,在目录中选择库所在的文件夹,在文件类型中选择选“access数据库(*.mdb)”,在数据库名中选择本系统的数据库,点击“确定”按钮即完成数据链接。 
 在vb中,用adodc链接数据库,用datagrid或data将库中的数据在界面中显示出来,本系统采用datagrid。在界面上右击adodc控制,在弹出的快捷菜单中选择属性,在属性对话框中,在“属性”这一标签中, 选中单选框“use odbc data source name”,并在下拉文本框中选择已经配置好的数据源名信息,再在“recordsoure”标签中,在commard text(sql)文本框中输入查询语句,如:select * from 学生档案。同时,将桌面的datagrid控件选中,在属性框中,将它的datasoure设为adodc。 
我们可以设置datagrid控件的外观:选中该控件,右击,在弹出的快捷菜单中选择“检索字段”,在弹出的对话框中单击“确定”,这时,表格中出现了表的字段。然后再右击,同样,在弹出的快捷菜单中选择“编辑”,我们就可以所在的表格的宽度进行调整。 
 
系统功能(查询模块) 
1.        查询信息的情况; 
2.        判断信息是否符合要求; 
3.        将符合条件的信息进行打印; 
流程图 
 
 
 
 
 
 
 
 
 
 
 
 
2.3 数据库设计 
 2.3.1 库设计 
本系统涉及到的信息主要有5类:学生信息、成绩信息、教师信息、图书信息、后备信息。由于成绩信息和教师信息与学生信息关系密切,因此将这三类信息存放在同一数据库中,以提高多种信息同时读取的速度。按以上分析,将系统的数据库设计为三个: 
 一、学生数据库: 
 该数据库为中包含有以下各表: 
1、学生表:记录学生的基本信息,是进行学生及其它各类信息处理的基础。 
2、成绩表:记录学生的期中、期末及总评的各科成绩。 
3、总分表:记录学生的期中、期末及总评的总分及名次。 
4、课程表:记录各专业各年级开课情况,在添加学生记录时,可根据该表的情况决定在成绩表添加学生记录的个数。 
三、后备数据库: 
 该数据库主要保存两类信息:学生信息、成绩信息。其数据表是按用户的要求在运行过程中动态建立的。 
    2.3.2 表设计:                
1、学生表结构: 
表2.1 
编号        字段名称        字段类型        字段宽度 
1        学号        char        15 
2        姓名        char        10 
3        性别        char        2 
4        出生日期        date        8 
5        电话        char        10 
6        家庭住址        char        50 
7        班级        char        20 
8        原毕业学校        char        50 
9        是否住宿        char        4 
10        政治面貌        char        6 
11        入学总分        long        4 
12        专业        char        20 
 
2、课程表结构: 
     表2.2 
编号        字段名称        字段类型        字段宽度 
1        课程名称        char        15 
2        年级        char        10 
3        专业        char        20 
 
3、成绩表结构: 
表2.3 
编号        字段名称        字段类型        字段宽度 
1        学号        char        15 
2        课程名称        char        15 
3        期中成绩        long        4 
4        期末成绩        long        4 
5        总评成绩        long        4 
6        班级        char        20 
4、总分表结构: 
表2.4 
编号        字段名称        字段类型        字段宽度 
1        学号        char        15 
2        期中总分        long        4 
3        期末总分        long        4 
4        期中名次        long        4 
5        期末名次        long        4 
6        班级        char        20 
 
 
第五章  详细设计 
根据系统的主要功能及上一章的总体设计,系统开发进入第二个阶段:详细设计。在这一阶段的工作中,主要任务有以下几项: 
1、根据原型化的开发原则,为系统的每个模块功能进行界面设计,作为进一步优化的基础。 
2、进行系统的流程分析,为模块的细化做好准备。 
3、对每个模块进行详细的算法设计。   
3.1 系统界面设计 
一、登录及系统主窗口界面设计 
该部分界面主要包括登录窗口、系统主窗口、修改密码窗口。 
1、登录窗口界面:     
 
  
本系统中使用到的数据表主要有班级表、成绩表、缴费表、课程表、学生档案、用户资料,由这六个表,组成了名为信息的数据库(如图一)。其中学生档案是本系统主要的 
  
(图一) 
一张表,所有信息都是根据这张学生档案进行有关的操作,主要的字段有:学号、姓名、年级、专业、性别、出生年月、民族、籍贯、政治面貌、家庭地址、邮政编码、联系电话、入学时间、备注。其中日期的数据类型为日期/时间天型,其它的数据类型为文本型;成绩表中字段为:学号、姓名、年级、专业、学期、考试时间、考试科目、考试地点、课程性质、科目分数、违纪类型、备注;课程表中字段为:专业、年级、学期、课程名称、教材、任课老师、课时、上课地点、课程性质、考试性质;用户资料中的字段包括:用户名、密码、身份。 
数据库与vb的连接:本系统的数据链接采用的是ado方法,打开控制面板,打开odbc数据源图标,选择“系统dsn”标签,点击“添加”按钮,在弹出的“创建新数据源”对话框中选择名称为“microsoft access drive(*.mdb)”,点击“完成”按钮,在odbc microsoft access 安装对话框中在数据源名中输入信息,在数据库这个框中, 单击“选择”按钮,在弹出的选择数据库这一对话框架中,在驱动器下拉列表框中选择本系统数据库所在驱动器,在目录中选择库所在的文件夹,在文件类型中选择选“access数据库(*.mdb)”,在数据库名中选择本系统的数据库,点击“确定”按钮即完成数据链接。 
 在vb中,用adodc链接数据库,用datagrid或data将库中的数据在界面中显示出来,本系统采用datagrid。在界面上右击adodc控制,在弹出的快捷菜单中选择属性,在属性对话框中,在“属性”这一标签中, 选中单选框“use odbc data source name”,并在下拉文本框中选择已经配置好的数据源名信息,再在“recordsoure”标签中,在commard text(sql)文本框中输入查询语句,如:select * from 学生档案。同时,将桌面的datagrid控件选中,在属性框中,将它的datasoure设为adodc。 
我们可以设置datagrid控件的外观:选中该控件,右击,在弹出的快捷菜单中选择“检索字段”,在弹出的对话框中单击“确定”,这时,表格中出现了表的字段。然后再右击,同样,在弹出的快捷菜单中选择“编辑”,我们就可以所在的表格的宽度进行调整。 
 
各功能的实现 
 
课程管理:课程设置(如:界面如图二) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 (图二) 
运行程序后,进入课程管理模块,课程管理模块的第一块是课程设置,在这模块中可以把专业、年级、学期、课程名称、教材、任课老师、课时、上课地点、课程性质和考试性质等信息输入,以便使用。 
下面为其代码: 
private sub command1_click() 
dim mycon as new adodb.connection 
dim myrs as new adodb.recordset 
dim zhuanye, nianji, xueqi, kecheng, jiaocai, renkls, keshi, shangkedd, kechengxz, kaoshixz as string 
zhuanye = text1.text 
nianji = text2.text 
xueqi = dtpicker1.value 
kecheng = text4.text 
jiaocai = text5.text 
renkls = text6.text 
keshi = text7.text 
shangkedd = text8.text 
kechengxz = combo1.text 
kaoshixz = combo2.text 
if trim(zhuanye) = "" or trim(nianji) = "" or trim(xueqi) = "" or trim(kecheng) = "" or trim(jiaocai) = "" or trim(renkls) = "" or trim(keshi) = "" or trim(shangkedd) = "" or trim(kechengxz) = "" or trim(kaoshixz) = "" then 
    msgbox "请填写要修改课程资料的内容!" 
    combo1.text = "" 
    combo2.text = "" 
    exit sub 
end if 
 
mycon.open "dsn=信息" 
myrs.open "select * from 课程表 where 专业='" & text1.text & "'", mycon, 3, 2 
    myrs!年级 = text2.text 
    myrs!学期 = dtpicker1.value 
    myrs!课程名称 = text4.text 
    myrs!教材 = text5.text 
    myrs!任课老师 = text6.text 
    myrs!课时 = text7.text 
    myrs!上课地点 = text8.text 
    myrs!课程性质 = combo1.text 
    myrs!考试性质 = combo2.text 
myrs.update 
myrs.close 
mycon.close 
msgbox "您确定要修改吗?", vbyesno, "提示" 
frm_updategrean.adodc1.refresh 
frm_updategrean.datagrid1.refresh 
 
text1.text = "" 
text2.text = "" 
'text3.text = "" 
text4.text = "" 
text5.text = "" 
text6.text = "" 
text7.text = "" 
text8.text = "" 
combo1.text = "" 
combo2.text = "" 
end sub 
 
private sub command2_click() 
    unload me 
end sub 
 
private sub command3_click() 
    unload me 
    frm_findgrean.show 1 
end sub 
 
private sub datagrid1_click() 
'frm_updategrean.adodc1.recordsource = "select * from 课程表 where 专业 = '" & trim(datagrid1.row) & "'" 
'text1.text = frm_updategrean.adodc1.recordset.fields("专业") 
'text2.text = frm_updategrean.adodc1.recordset.fields("年级") 
'text3.text = frm_updategrean.adodc1.recordset.fields("学期") 
'text4.text = frm_updategrean.adodc1.recordset.fields("课程名称") 
'text5.text = frm_updategrean.adodc1.recordset.fields("教材") 
'text6.text = frm_updategrean.adodc1.recordset.fields("任课老师") 
'text7.text = frm_updategrean.adodc1.recordset.fields("课时") 
'text8.text = frm_updategrean.adodc1.recordset.fields("上课地点") 
'combo1.text = frm_updategrean.adodc1.recordset.fields("课程性质") 
'combo2.text = frm_updategrean.adodc1.recordset.fields("考试性质") 
end sub 
 
private sub dtpicker1_callbackkeydown(byval keycode as integer, byval shift as integer, byval callbackfield as string, callbackdate as date) 
 
end sub 
 
private sub form_activate() 
frm_findgrean.adodc1.recordsource = strtiaojian 
frm_findgrean.adodc1.refresh 
set datagrid1.datasource = frm_findgrean.adodc1 
end sub 
 
private sub form_load() 
combo1.additem ("必修") 
combo1.additem ("选修") 
combo1.additem ("自开") 
combo2.additem ("考试") 
combo2.additem ("查考") 
text1.text = "" 
text2.text = "" 
'text3.text = "" 
text4.text = "" 
text5.text = "" 
text6.text = "" 
text7.text = "" 
text8.text = "" 
combo1.text = "" 
combo2.text = "" 
end sub 
 
private sub text1_change() 
 
end sub 
 
private sub text2_change() 
 
end sub 
 
private sub text8_change() 
 
end sub 
课程管理:课程查询(如:界面如图三) 
 (图三) 
当输入查询类别、运算符和条件后可以查找到所需要的课程设置,或按查询时间来查询,输入所要查找的时间段,就可查到所要的课程设置。 
代码如下: 
dim sqlstr as string 
 
private sub combo1_change() 
 
end sub 
 
private sub combo2_change() 
 
end sub 
 
private sub combo4_change() 
 
end sub 
 
private sub combo5_change() 
 
end sub 
 
private sub combo7_change() 
 
end sub 
 
private sub command1_click() 
dim a as string 
dim kccx1 as string 
dim kccx2 as string 
dim str1 as string 
dim str2 as string 
 
if option3.value = true then 
a = trim(combo2) 
select case a 
    case "=" 
        kccx1 = "" & combo1.text & " " & combo2.text & " '" & trim(text1) & "'" 
    case "like" 
        kccx1 = "instr(1," & combo1.text & ",'" & trim(text1.text) & "')<>0 " 
end select 
     
a = trim(combo4) 
select case a 
    case "=" 
        kccx2 = "" & combo3.text & " " & combo4.text & " '" & trim(text2) & "'" 
    case "like" 
        kccx2 = "instr(1," & combo3.text & ",'" & trim(text2.text) & "')<>0 " 
end select 
     
if option1.value = true then 
    if kccx1 = "" then 
            strtiaojian = "select * from 课程表 where " & kccx2 
    elseif kccx2 = "" then 
            strtiaojian = "select * from 课程表 where " & kccx1 
        else 
            strtiaojian = "select * from 课程表 where " & kccx1 & "and " & kccx2 
    end if 
elseif option2.value = true then 
    if kccx1 = "" then 
            strtiaojian = "select * from 课程表 where " & kccx2 
    elseif kccx2 = "" then 
            strtiaojian = "select * from 课程表 where " & kccx1 
        else 
            strtiaojian = "select * from 课程表 where " & kccx1 & "or " & kccx2 
    end if 
else 
    if kccx1 = "" then 
        strtiaojian = "select * from 课程表 where " & kccx2 
    elseif kccx2 = "" then 
        strtiaojian = "select * from 课程表 where " & kccx1 
    else 
        msgbox "请选择连接方式!", vbokonly, "警告" 
    exit sub 
    end if 
end if 
     
if (kccx1 & kccx2) = "" then 
    msgbox "请输入查询类别!", vbokonly, "警告" 
exit sub 
else 
    unload me 
    frm_updategrean.show 1 
end if 
end if 
 
if option4.value = true then 
    if val(combo6) > val(combo9) then 
        msgbox "请正确选择年份!", vbokonly + vbexclamation, "信息提示" 
        combo6.setfocus 
        exit sub 
    else 
    if val(combo6) = val(combo9) then 
        if val(combo7) > val(combo10) then 
            msgbox "请正确选择月份!", vbokonly + vbexclamation, "信息提示" 
            combo7.setfocus 
            exit sub 
        else 
            if val(combo7) = val(combo10) then 
                if val(combo8) > val(combo11) then 
                    msgbox "请正确选择日期!", vbokonly + vbexclamation, "信息提示" 
                    combo8.setfocus 
                    exit sub 
                end if 
            end if 
        end if 
    end if 
    end if 
 
    if combo6.text = "" or combo7.text = "" or combo8.text = "" or combo9.text = "" or combo10.text = "" or combo11.text = "" then 
        msgbox "请输入完整的日期", vbokonly, "警告" 
        exit sub 
    end if 
         
    str1 = trim(combo6) & "-" & trim(combo7) & "-" & trim(combo8) 
    str2 = trim(combo9) & "-" & trim(combo10) & "-" & trim(combo11) 
    str1 = format(str1, "yyyy-mm-dd") 
    str2 = format(str2, "yyyy-mm-dd") 
         
    if sqlstr = "" then 
        sqlstr = "" & trim(combo5.text) & ">=#" & format(str1, "yyyy-mm-dd") & "# and " & trim(combo5.text) & "<= #" & format(str2, "yyyy-mm-dd") & "#" 
    else 
        sqlstr = sqlstr & " and " & trim(combo5.text) & ">=#" & format(str1, "yyyy-mm-dd") & "# and  " & trim(combo5.text) & "<= #" & format(str2, "yyyy-mm-dd") & "#" 
    end if 
         
    if sqlstr = "" then 
        msgbox "请先输入查找时间!" 
        exit sub 
    end if 
         
    strtiaojian = "select 专业,年级,学期,课程名称,教材,任课老师,课时,上课地点,课程性质,考试性质 from 课程表 where " & sqlstr 
    unload me 
    frm_updategrean.show 1 
end if 
 
if option3.value <> true and option4.value <> true then 
    msgbox "请选择查询方式!", vbokonly, "警告" 
    exit sub 
end if 
end sub 
 
 
 
private sub command3_click() 
    unload me 
end sub 
 
private sub form_load() 
dim i, j as integer 
for i = 1999 to 2010 
    combo6.additem i 
    combo9.additem i 
next i 
    combo6.listindex = 0 
    combo9.listindex = 0 
     
for i = 1 to 12 
    combo7.additem i 
    combo10.additem i 
next i 
    combo7.listindex = 0 
    combo10.listindex = 0 
for i = 1 to 31 
    combo8.additem i 
    combo11.additem i 
next i 
    combo8.listindex = 0 
    combo11.listindex = 0 
combo1.additem ("专业") 
combo1.additem ("年级") 
combo1.additem ("课程名称") 
combo1.additem ("教材") 
combo1.additem ("任课老师") 
'combo1.additem ("课时") 
combo1.additem ("课程性质") 
combo1.additem ("考试性质") 
combo2.additem ("=") 
combo3.additem ("专业") 
combo3.additem ("年级") 
combo3.additem ("课程名称") 
combo3.additem ("教材") 
combo3.additem ("任课老师") 
'combo3.additem ("课时") 
combo3.additem ("课程性质") 
combo3.additem ("考试性质") 
combo4.additem ("=") 
combo5.additem ("学期") 
combo1.text = "" 
combo2.text = "" 
text1.text = "" 
combo3.text = "" 
combo4.text = "" 
text2.text = "" 
combo5.text = "" 
combo6.text = "" 
combo7.text = "" 
combo8.text = "" 
combo9.text = "" 
combo10.text = "" 
combo11.text = "" 
end sub 
 
7.1.2 打印统计 
运行打印统计后可以按条件把符合条件的各种信息以报表形式罗列出来,各种信息还可以以打印出来或以报表形式保存。打印统计包括班级统计分析、档案统计分析、课程统计分析、成绩统计分析和交费统计分析五类。 
班级统计分析(如:界面如图四) 
 (图四) 
代码如下: 
private sub command1_click() 
dim sqloriginal as string 
dim sqladd as string 
dim sqlorder as string 
dim strsql as string 
   
sqloriginal = "select 年级,专业,人数,辅导员,备注 from 班级表 " 
sqladd = "where 年级=年级 and 专业=专业 " 
sqlorder = "" 
 
if check1.value = 1 and isnumeric(text1) then 
    sqladd = sqladd + "and 年级='" + text1 + "'" 
end if 
   
if check2.value = 1 and not isnull(text2) then 
    sqladd = sqladd + "and 专业='" + text2 + "'" 
end if 
 
if check3.value = 1 and isnumeric(text3) then 
    sqladd = sqladd + "and 人数='" + text3 + "'" 
end if 
 
if check4.value = 1 and not isnull(text4) then 
    sqladd = sqladd + "and 辅导员='" + text4 + "'" 
end if 
 
strsql = sqloriginal + sqladd + sqlorde 
if dat_main.rsdat_class.state = 1 then 
    dat_main.rsdat_class.close 
end if 
    dat_main.rsdat_class.open strsql 
    dat_class.show vbmodal 
text1.text = "" 
text2.text = "" 
text3.text = "" 
text4.text = "" 
 
end sub 
 
private sub command2_click() 
    unload me 
end sub 
 
private sub form_load() 
text1.text = "" 
text2.text = "" 
text3.text = "" 
text4.text = "" 
end sub 
 
private sub text1_change() 
 
end sub 
 
private sub text3_change() 
 
end sub 
档案分析统计(如:界面如图五) 
 (图五) 
代码如下: 
private sub command1_click() 
dim sqloriginal as string 
dim sqladd as string 
dim sqlorder as string 
dim strsql as string 
   
on error resume next 
sqloriginal = "select * from 学生档案 " 
sqladd = "where 学号=学号 and 姓名=姓名 " 
sqlorder = "" 
 
if check1.value = 1 and isnumeric(text1) then 
    sqladd = sqladd + "and 学号='" + text1 + "'" 
end if 
   
if check2.value = 1 and not isnull(text2) then 
    sqladd = sqladd + "and 姓名='" + text2 + "'" 
end if 
 
if check3.value = 1 and not isnull(text3) then 
    sqladd = sqladd + "and 专业='" + text3 + "'" 
end if 
 
if check4.value = 1 and isdate(dtpicker1) then 
    sqladd = sqladd + " and 出生年月= # " & dtpicker1.value & "#" 
end if 
 
strsql = sqloriginal + sqladd + sqlorde 
if dat_main.rsdat_strudent.state = 1 then 
    dat_main.rsdat_strudent.close 
end if 
dat_main.rsdat_strudent.open strsql 
dat_strudent.show vbmodal 
text1.text = "" 
text2.text = "" 
text3.text = "" 
 
end sub 
 
private sub command2_click() 
    unload me 
end sub 
 
private sub form_load() 
'combo1.additem ("男") 
'combo1.additem ("女") 
text1.text = "" 
text2.text = "" 
text3.text = "" 
end sub 
 
private sub text1_change() 
 
end sub 
课程统计分析(如:界面如图六) 
 (图六) 
 
代码如下: 
private sub command1_click() 
dim sqloriginal as string 
dim sqladd as string 
dim sqlorder as string 
dim strsql as string 
   
sqloriginal = "select * from 课程表 " 
sqladd = "where 专业=专业 and 课程名称=课程名称 " 
sqlorder = "" 
 
if check1.value = 1 and not isnull(text1) then 
    sqladd = sqladd + "and 专业='" + text1 + "'" 
end if 
   
if check2.value = 1 and not isnull(combo1) then 
    sqladd = sqladd + "and 课程性质='" + combo1 + "'" 
end if 
 
'if check3.value = 1 and not isnumeric(text2) then 
    'sqladd = sqladd + "and 课时='" + text2 + "'" 
'end if 
 
if check4.value = 1 and not isnull(text3) then 
    sqladd = sqladd + "and 课程名称='" + text3 + "'" 
end if 
 
strsql = sqloriginal + sqladd + sqlorde 
if dat_main.rsdat_grean.state = 1 then 
    dat_main.rsdat_grean.close 
end if 
dat_main.rsdat_grean.open strsql 
dat_grean.show vbmodal 
text1.text = "" 
combo1.text = "" 
'text2.text = "" 
text3.text = "" 
end sub 
 
private sub command2_click() 
    unload me 
end sub 
 
private sub form_load() 
text1.text = "" 
'text2.text = "" 
text3.text = "" 
combo1.text = "" 
combo1.additem ("必修") 
combo1.additem ("选修") 
combo1.additem ("自开") 
end sub 
 
private sub text3_change() 
 
end sub 
成绩统计分析(如:界面如图七) 
 (图七) 
代码如下: 
private sub command1_click() 
dim sqloriginal as string 
dim sqladd as string 
dim sqlorder as string 
dim strsql as string 
   
on error resume next 
sqloriginal = "select * from 成绩表 " 
sqladd = "where 学号=学号 and 姓名=姓名 " 
sqlorder = "" 
 
if check1.value = 1 and isnumeric(text1) then 
    sqladd = sqladd + "and 学号='" + text1 + "'" 
end if 
   
if check2.value = 1 and not isnull(text2) then 
    sqladd = sqladd + "and 姓名='" + text2 + "'" 
end if 
 
if check3.value = 1 and not isnull(text3) then 
    sqladd = sqladd + "and 考试科目='" + text3 + "'" 
end if 
 
if check4.value = 1 then 
    sqladd = sqladd + "and 科目分数<60" 
end if 
 
strsql = sqloriginal + sqladd + sqlorde 
if dat_main.rsdat_chengj.state = 1 then 
    dat_main.rsdat_chengj.close 
end if 
    dat_main.rsdat_chengj.open strsql 
    dat_chengj.show vbmodal 
text1.text = "" 
text2.text = "" 
text3.text = "" 
end sub 
 
private sub command2_click() 
    unload me 
end sub 
 
private sub form_load() 
text1.text = "" 
text2.text = "" 
text3.text = "" 
'text4.text = "" 
end sub 
 
private sub text1_change() 
 
end sub 
交费统计分析(如:界面如图八) 
 (图八) 
代码如下: 
private sub command1_click() 
dim sqloriginal as string 
dim sqladd as string 
dim sqlorder as string 
dim strsql as string 
   
sqloriginal = "select 学号,姓名,学期,本学期应交费用,实际交费,本次欠费 from 交费表 " 
sqladd = "where 学号=学号 and 姓名=姓名 " 
sqlorder = "" 
 
if check1.value = 1 and isnumeric(text1) then 
    sqladd = sqladd + "and 学号='" + text1 + "'" 
end if 
   
if check2.value = 1 and not isnull(text2) then 
    sqladd = sqladd + "and 姓名='" + text2 + "'" 
end if 
 
if check3.value = 1 and isnumeric(text3) then 
    sqladd = sqladd + "and 实际交费='" + text3 + "'" 
end if 
 
if check4.value = 1 and isnumeric(text4) then 
    sqladd = sqladd + "and 本次欠费='" + text4 + "'" 
end if 
 
strsql = sqloriginal + sqladd + sqlorde 
if dat_main.rsdat_jiaof.state = 1 then 
    dat_main.rsdat_jiaof.close 
end if 
    dat_main.rsdat_jiaof.open strsql 
    dat_jiaof.show vbmodal 
text1.text = "" 
text2.text = "" 
text3.text = "" 
text4.text = "" 
end sub 
 
private sub command2_click() 
    unload me 
end sub 
 
private sub form_load() 
text1.text = "" 
text2.text = "" 
text3.text = "" 
text4.text = "" 
end sub 
 
private sub text1_change() 
 
end sub 
 
结束语 
学生信息管理系统(课程设置和打印统计)的完成,它在审核这一功能中能够对不同情况的资料进行设置和打印,针对需要的信息进行设置和打印。 
 
心得体会 
   这几天的实践与学习,使我收获不少,我觉得我真的学会这门课了。 
遇到的问题及解决方法 
    编写的程序系统无法运行,我找到相关书籍进行分析错误原因,解决了错误问题。 
主要参考文献 
本系统的过程中,主要的参考文献有: 
《visual basic6.0》                     林陈雷             人民邮电出版社 
《面向对象程序设计系列教材》          龚沛曾            高等教育出版社 
《学用visual basic 编程》               潭  浩            西安电子科技大学出版社 
《visual basic6.0 数据库开发与专业应用》 敬  铮            国防工业出版社 
《visual basic6.0 数据库程序设计高手》   温贤发            科学出版社 |   
 
 
 
 |