学生学籍管理系统设计报告.docx

上传人:b****3 文档编号:4220517 上传时间:2022-11-28 格式:DOCX 页数:45 大小:1.63MB
下载 相关 举报
学生学籍管理系统设计报告.docx_第1页
第1页 / 共45页
学生学籍管理系统设计报告.docx_第2页
第2页 / 共45页
学生学籍管理系统设计报告.docx_第3页
第3页 / 共45页
学生学籍管理系统设计报告.docx_第4页
第4页 / 共45页
学生学籍管理系统设计报告.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

学生学籍管理系统设计报告.docx

《学生学籍管理系统设计报告.docx》由会员分享,可在线阅读,更多相关《学生学籍管理系统设计报告.docx(45页珍藏版)》请在冰豆网上搜索。

学生学籍管理系统设计报告.docx

学生学籍管理系统设计报告

学生成绩管理程序设计

作者:

于维国

[摘要]用时三个礼拜,我和我的组员编写了一个具查询、编辑、更新、统计、删除于一身的简单学生成绩管理程序。

此程序用户界面良好,操作简便,内存使用量小,数据处理高效,符合了现代软件的发展方向。

[关键词]学生;成绩管理;程序

1需求分析

随着学校学生人数规模的不断扩大,学生信息管理量也相应的增加,有关学生的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导人力与物力过多浪费,从而使学生信息管理的负担过重,影响整个学生信息的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的学生信息管理系统,对学生资料进行集中统一的管理。

另一方面,IT产业和Internet获得了飞速发展,计算机应用已渗透到了各个领域,引起信息管理的革命,实现了信息的自动化处理,提高了处理的及时性和正确性。

2概要设计

考虑到学生成绩管理程序要求界面友好、操作方便、效率高等特点,本程序主要设计了三大模块:

学生信息模块、课程安排模块和用户管理模块。

(如图1所示)

图1

3详细设计

3.1数据库的设计

数据库名:

学籍管理.dbc

表1名:

成绩表.dbf

字段如下

字段名

类型

宽度

小数位数

索引

学号

字符

10

升序

毛邓三

数值

5

2

大学英语

数值

5

2

管理运筹学

数值

5

2

数据库原理及应用

数值

5

2

形式与政策

数值

5

2

大学生素质教育

数值

5

2

大学体育

数值

5

2

管理学

数值

5

2

表2名:

课程安排表.dbf

字段如下

字段名

类型

宽度

小数位数

索引

星期一

字符

55

星期二

字符

55

星期三

字符

55

星期四

字符

55

星期五

字符

55

星期六

字符

55

星期天

字符

55

表3名:

课外活动哦信息表.dbf

字段如下

字段名

类型

宽度

小数位数

索引

学号

备注

4

升序

大运会

备注

4

寝室文化节

备注

4

科技文化月

备注

4

其他

备注

4

表4名:

陕西理工学院07级学生名单.dbf

字段如下

字段名

类型

宽度

小数位数

索引

学号

字符

10

升序

姓名

字符

8

性别

字符

2

身份证

字符

18

院(系)

字符

8

专业

字符

22

班级

字符

12

校区

字符

2

表5名:

用户表.dbf

字段如下

字段名

类型

宽度

小数位数

索引

用户名

字符

10

升序

密码

字符

16

flag

L逻辑

2

3.1.1数据库中的表间关系

如图3

图3

3.1.2数据表之间的参照完整性关系

更新规则、删除规则、插入规则如图4

图4

3.2表单的设计

3.2.1登陆表单的设计如图5

如图5

其中包含了三个标签,两个文本框,两个命令按钮。

在lable1的caption属性里输入“学生学籍管理系统”,fontname属性里选择“叶更友特色简体升级版”fontsize设置为22,fontcolor设置为“0,128,198”,其他标签的属性根据需要做相关设置,这里不再赘述。

在command1的caption属性里输入“确定”,在initevent属性里写入如下代码

publicn

n=1

在clickevent属性里写入

if(n>2)

messagebox("密码输入超过三次,不能使用本系统!

")

thisform.release

else

use用户表.dbfexclusive

temp1=alltrim(thisform.TEXT1.value)

temp2=alltrim(thisform.TEXT2.value)

locateforalltrim(用户名)==TEMP1.and.alltrim(密码)==TEMP2

iffound()

doform主表单

thisform.release

else

messagebox("密码或用户名输入错误,重新输入!

")

thisform.TEXT1.value=""

thisform.TEXT2.value=""

n=n+1

thisform.TEXT1.setfocus

endif

endif

然后保存。

3.2.2主界面的设计

如图6

如图6

可以看出该表单当中包含了四个命令按钮,一个容器控件。

为了界面的美观期间,我们事先用photoshop自制了相关的命令按钮,用的是image控件并改变其中的picture属性。

表单的有半部分实际上有四个容器,分别对应按钮的相关信息。

现在所看到的是container1当中的信息,该容器中包含了3个标签,和两个timer控件label1的caption属性里输入“学生学籍管理系统”backstyle设置为“0-透明”fontname设置为“黑体”fontsize设置为“24”。

Label2的caption中输入“欢迎使用”fontname设置为“叶更友特色简体升级版”fontsize设置为48,其他与label1的相同。

Label3的caption属性里输入了本程序的开发负责人姓名。

Timer1的Clickevent属性里下代码

thisform.container1.label2.visible=notthisform.container1.label2.visible

thisform.container1.label2.forecolor=rgb(rand()*255,rand()*255,rand()*255)

interval属性设置为500。

timer2的Clickevent的属性里写入如下代码

if(thisform.container1.label2.left

thisform.container1.label2.left=thisform.container1.label2.left+5

else

thisform.container1.label2.left=0-thisform.container1.label2.width

endif

interval属性设置为100。

运行可看到“欢迎使用”这四个字,不但左右移动,而且颜色不断的变化。

四个container的visible均设置为“.f.”。

“学生信息”按钮的Clickevent属性里写入

thisform.container2.visible=.t.

thisform.container3.visible=.f.

thisform.container4.visible=.f.

“课程安排”按钮的Clickevent属性里写入

thisform.container3.visible=.t.

thisform.container2.visible=.f.

thisform.container4.visible=.f.

“用户管理”按钮的Clickevent属性里写入

thisform.container4.visible=.t.

thisform.container2.visible=.f.

thisform.container3.visible=.f.

“退出系统”按钮的Clickevent属性里写入

thisform.release

3.2.3学生信息模块的设计

接下来就是对按钮所对应的container做详细的设计。

其中,container2的界面设置为如下图7所示

图7

不难发现,当中包含了一个页框,其中page1中有五个按钮两个标签两个表格,一个文本框,一个组合框。

为了简便期间,本人只对主要控件当中的主要事件做一些说明,其他的内容不再赘述。

“精确查找”的Clickevent写入如下代码

thisform.container2.pageframe1.page1.text1.enabled=.t.

mand3.enabled=.t.

thisform.container2.pageframe1.page1.grid2.visible=.t.

thisform.container2.pageframe1.page1.text1.setfocus

“浏览全部”的Clickevent里写入

thisform.container2.pageframe1.page1.grid1.visible=.t.

thisform.container2.pageframe1.page1.label2.visible=.t.

bo1.visible=.t.

mand5.visible=.t.

鼠标移动到组合框上面,单击右键选择组合框生成器,在“列表项”选项卡中的“用此填充列表”里选择“手工输入数据”,然后在属性中的数据选项卡中的rowsource里输入各个院系的名称,如图8

图8

两个表格的recordsource里均填入“陕西理工学院07级学生名单.dbf”readonly属性设置为“.t.”

文本框后面的“确定”按钮的Clickevent里写入

use陕西理工学院07级学生名单.dbf

t=alltrim(thisform.container2.pageframe1.page1.text1.value)

locateforalltrim(学号)=t

iffound()

gotop

setfilterto陕西理工学院07级学生名单.院(系)="t"

else

messagebox("查无此人,请输入正确的学号")

thisform.container2.pageframe1.page1.text1.value=""

thisform.container2.pageframe1.page1.text1.setfocus

endif

组合框后面的“确定”按钮的Clickevent里写入

docase

casebo1.value="经法学院"

gotop

setfilterto陕西理工学院07级学生名单.院(系)="经法学院"

casebo1.value="经贸系"

gotop

setfilterto陕西理工学院07级学生名单.院(系)="经贸系"

casebo1.value="教科系"

gotop

setfilterto陕西理工学院07级学生名单.院(系)="教科系"

casebo1.value="体育学院"

gotop

setfilterto陕西理工学院07级学生名单.院(系)="体育学院"

casebo1.value="文学院"

gotop

setfilterto陕西理工学院07级学生名单.院(系)="文学院"

casebo1.value="外语系"

gotop

setfilterto陕西理工学院07级学生名单.院(系)="外语系"

casebo1.value="历史系"

gotop

setfilterto陕西理工学院07级学生名单.院(系)="历史系"

casebo1.value="艺术学院"

gotop

setfilterto陕西理工学院07级学生名单.院(系)="艺术学院"

casebo1.value="数学系"

gotop

setfilterto陕西理工学院07级学生名单.院(系)="数学系"

casebo1.value="物理系"

gotop

setfilterto陕西理工学院07级学生名单.院(系)="物理系"

casebo1.value="化学学院"

gotop

setfilterto陕西理工学院07级学生名单.院(系)="化学学院"

casebo1.value="生物学院"

gotop

setfilterto陕西理工学院07级学生名单.院(系)="生物学院"

casebo1.value="土建系"

gotop

setfilterto陕西理工学院07级学生名单.院(系)="土建系"

casebo1.value="电信系"

gotop

setfilterto陕西理工学院07级学生名单.院(系)="电信系"

casebo1.value="材料学院"

gotop

setfilterto陕西理工学院07级学生名单.院(系)="材料学院"

casebo1.value="机械学院"

gotop

setfilterto陕西理工学院07级学生名单.院(系)="机械学院"

casebo1.value="电气系"

gotop

setfilterto陕西理工学院07级学生名单.院(系)="电气系"

casebo1.value="计算机系"

gotop

setfilterto陕西理工学院07级学生名单.院(系)="计算机系"

casebo1.value="管理系"

gotop

setfilterto陕西理工学院07级学生名单.院(系)="管理系"

endcase

右下角的“返回”按钮的Clickevent里写入

ifk=0

thisform.container2.pageframe1.page1.grid1.visible=.f.

thisform.container2.pageframe1.page1.label2.visible=.f.

bo1.visible=.f.

mand5.visible=.f.

k=k+1

elsek=1

thisform.container2.visible=.f.

k=0

endif

page2的界面如图9

图9

实际上在这个页面上还有两个容器,visible均为“.f.”。

现在所看到的是container1里的信息,container2里的信息如图10

图10

“总体查询”按钮的Clickevent里写入:

thisform.container2.pageframe1.page2.container1.visible=.t.

thisform.container2.pageframe1.page2.container2.visible=.f.

“个体查询”按钮的Clickevent里写入:

thisform.container2.pageframe1.page2.container1.visible=.f.

thisform.container2.pageframe1.page2.container2.visible=.t.

“输入数据”按钮的Clickevent里写入:

DOFORMseletect_class

“整理成绩”按钮的Clickevent里写入:

&&计算所有的总成绩

USEDMD_G.DBF

REPLACECHJ1WITH0,CHJ2WITH0

USE

I=1

FORi=1TO6

BJ_DAIMA=""

DOCASE

CASEI=1

BJ_DAIMA="电商071"

CASEI=2

BJ_DAIMA="电商072"

CASEI=3

BJ_DAIMA="会计071"

CASEI=4

BJ_DAIMA="会计072"

CASEI=5

BJ_DAIMA="财管071"

CASEI=6

BJ_DAIMA="财管072"

ENDCASE

USEBJ_DAIMA

REPLACEYWWITHYW1+YW2,SXWITHSX1+SX2,YYWITHYY1+YY2ALL

GOTO1

REPLACEWLWITHWL1+WL2,HXWITHHX1+HX2,SWWITHSW1+SW2ALL

GOTO1

REPLACEZFWITHYW+SX+YY+WL+HX+SWALL

ENDFOR

MESSAGEBOX("数据整理完毕!

")

“大平均分”按钮的Clickevent里写入:

CLOSEALL

CLEARMEMORY

SETTALKOFF

USEDPJ.DBF

DELETEALL

PACK

USE

USEDPJBB.DBF

DELETEALL

PACK

USE

FORI=1TO6

DOCASE

CASEI=1

BJ_NAME="电商071"

BJ_MCH=BJ_NAME

CASEI=2

BJ_NAME="电商072"

BJ_MCH=BJ_NAME

CASEI=3

BJ_NAME="会计071"

BJ_MCH=BJ_NAME

CASEI=4

BJ_NAME="会计072"

BJ_MCH=BJ_NAME

CASEI=5

BJ_NAME="财管071"

BJ_MCH=BJ_NAME

CASEI=6

BJ_NAME="财管072"

BJ_MCH=BJ_NAME

ENDCASE

FORJ=1TO6&&计算一个班中的六科成绩的平均分

DOCASE

CASEJ=1

KM_NAME="语文"

KM_DAIMA="YW"

CASEJ=2

KM_NAME="数学"

KM_DAIMA="SX"

CASEJ=3

KM_NAME="英语"

KM_DAIMA="YY"

CASEJ=4

KM_NAME="物理"

KM_DAIMA="WL"

CASEJ=5

KM_NAME="化学"

KM_DAIMA="HX"

CASEJ=6

KM_NAME="生物"

KM_DAIMA="SW"

ENDCASE

USE&BJ_NAME&&打开相应的班级库文件

AVERAGE&KM_DAIMATODKPJF&&计算单科平均分

USE

USETEACHER.DBF

LOCATEFORNAME="&BJ_MCH".AND.KM="&KM_NAME"

RKJSH=T_NAME

USE

USEDPJ.DBF

APPENDBLANK

REPLACEBJWITHBJ_MCH,KMWITHKM_NAME,RKWITHRKJSH,PJFWITHDKPJF

USE

ENDFOR

ENDFOR

MESSAGEBOX("数据处理完毕!

")

DOFORMSHOW_DPJ

“离均差”按钮的Clickevent里写入:

&&------------------------------**

&&项目名称:

成绩处理程序**

&&开发日期:

2008-11-12**

&&开发环境:

Vfp6.0**

&&基本功能:

1计算p值**

&&2计算离均差**

&&3可比离均差**

&&4起始离均差**

&&5离均差涨幅**

&&开发人:

愚人码头于维国**

&&------------------------------**

SETTALKOFF

CLOSEALL

USELJC.DBF&&清空离均差表

REPLACEALLPZHWITH0

REPLACELJCWITH0

USE

&&--------------------------------------------------------**

&&p值计算方法:

1按单科成绩降序排序**

&&2计算三个段平均分,分别为:

**

&&

(1)A1=1至1名单科成绩的平均分**

&&

(2)A2=2至2名单科成绩的平均分**

&&(3)A3=3至3名单科成绩的平均分**

&&3p=A1*0.5+A2*0.35+A3*0.15**

&&-----------------------------------------

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1