VFP实验报告中国海洋大学学生档案管理.docx
《VFP实验报告中国海洋大学学生档案管理.docx》由会员分享,可在线阅读,更多相关《VFP实验报告中国海洋大学学生档案管理.docx(18页珍藏版)》请在冰豆网上搜索。
![VFP实验报告中国海洋大学学生档案管理.docx](https://file1.bdocx.com/fileroot1/2023-2/1/efc4b901-ccd0-4614-aea3-9fef98c85c58/efc4b901-ccd0-4614-aea3-9fef98c85c581.gif)
VFP实验报告中国海洋大学学生档案管理
设计中国海洋大学人事行政管理系统
学号:
110112009003专业年级:
09政治学与行政学姓名:
常征上机时间:
周五78节
实验目的:
通过设计中国海洋大学人事行政管理系统,将本学期所学的VFP知识进行综合,设计出一个结合自己专业的数据库管理系统,以熟练掌握VFP基本操作。
实验目录:
一、组成模块1
二、各模块介绍2
(一)部门查询2
(二)院系归属4
1、建立如下所示的三个数据表,结构索引如下图4
2、建立数据库,添加表,熟悉数据库的应用5
3、表之间临时关系的建立:
6
4、表之间的永久关系的建立:
7
5、查询在该系统中的应用:
8
(1)单表8
(2)多表9
(3)子查询9
(三)职称评定10
1、添加新字段10
2、字段有效性10
3、添加自己记录11
4、更新字段11
5、删除记录11
(四)人事管理12
1、顺序结构的应用(换课)12
2、分支结构的应用(讲课费计算)13
3、循环结构的应用(抽调教师)14
(五)退出15
三、结束语16
一、组成模块
(各模块相应菜单见下面过程中的截图)
二、各模块介绍
(一)部门查询
以教务处为例,进入系统,调用密码验证表单
a=thisform.text1.value
ifa="jiaowuchu"
thisform.label2.caption="欢迎使用本系统!
"
mand1.visible=.T.
thisform.label1.visible=.F.
thisform.text1.visible=.F.
else
b=b+1
ifb>=3
messagebox("对不起,你不是合法用户,请退出")
thisform.release
else
messagebox("你是第"+str(b,3)+"次输入,请重试")
this.selstart=0
this.sellength=len(rtrim(this.value))
return0
endif
endif
(二)院系归属
1、建立如下所示的三个数据表,结构索引如下图
三个表浏览如下图
2、建立数据库,添加表,熟悉数据库的应用
(参照完整性)
3、表之间临时关系的建立:
usekc
locatefor课程名="公共关系学"
no=课程号
SELECT2
usedt
indexon课程号tag课程号
usejs
setrelationto课程号intob
replaceall姓名withb.学科带头人for课程号=no
4、表之间的永久关系的建立:
(主索引)
(建立关联)
5、查询在该系统中的应用:
(1)单表
Select教工号,姓名,count(课程号)as授课数量fromjsgroupby姓名intotablesksj
(2)多表
select教工号,姓名,性别,学科带头人fromjsjoindtonjs.课程号=da.课程号;
where学科带头人=”崔凤”
(3)子查询
select教工号,姓名,(year(date())-year(出生日期))as年龄,js.课程号,课程名;
fromkcjoinjs;
onkc.课程号=js.课程号wherekc.课程号in;
(selectdt.课程号fromdtwhere学科带头人="王刚"or学科带头人="郑敬高")
(三)职称评定
SQL在该系统中的应用
前面应用了SQL的数据查询功能,以下为其数据定义和数据操纵功能的简单应用
1、添加新字段
altertablejsadd职称C(12)
2、字段有效性
altertablejsalter职称C(10);
check职称="副教授"error"您无权参加教授职称评定"
3、添加自己记录
insertintojsvalues("2011090378","常征",.T.,{^1990-12-02},87839,"讲师")
4、更新字段
updatejsset职称=iif(year(date())-year(出生日期)>36,"副教授","讲师")
5、删除记录
deletefromjswhere姓名="常征"
(四)人事管理
本模块主要解决三大程序结构的应用
1、顺序结构的应用(换课)
Command1的代码:
t=thisform.label2.caption
thisform.label2.caption=thisform.label4.caption
thisform.label4.caption=t
2、分支结构的应用(讲课费计算)
a=thisform.text1.value
docase
casea<17
b=15*a
casea>=17anda<34
b=15*17+(a-17)*20
casea>=34anda<51
b=15*17+20*17+(a-34)*25
casea>=51anda<68
b=15*17+20*17+25*17+(a-51)*30
casea>=68
b=15*17+20*17+25*17+30*17+(a-68)*35
endcase
thisform.text2.value=b
3、循环结构的应用(抽调教师)
Command1的代码:
thisform.timer1.enabled=.not.(thisform.timer1.enabled)
a="按“停止”按钮,可得抽调教师姓名"
b="被抽调的教师是:
"+bo1.text
ifthisform.timer1.enabled=.T.
this.caption="停止(\
thisform.label1.caption=a
else
this.caption="开始(\
thisform.label1.caption=b
endif
Timer1的代码:
n=thisform.text1.value
a=int(rand()*n)+1
bo1.listindex=a
Combo1的KeyPress事件代码:
LPARAMETERSnKeyCode,nShiftAltCtrl
docase
casenKeyCode=13
if!
empty(this.displayvalue)
this.additem(this.displayvalue)
thisform.text1.value=this.listcount
endif
this.selstart=0
this.sellength=len(allt(this.text))
this.tag="N"
casenKeyCode=27
ifthis.listcount>0
this.removeitem(this.listindex)
this.value=1
thisform.text1.value=this.listcount
endif
endcase
Combo1的Valid事件代码:
ifthis.tag="Y"
return.T.
else
this.tag="Y"
return0
endif
(五)退出
过程代码:
ifmessagebox("您确定要退出吗?
",1,"温馨提示")=1
clearall
setsysmenutodefault
endif
三、结束语
通过设计中国海洋大学人事行政管理系统,对本学期所学的VFP应用知识进行一个较为全面的总结。
因时间所限,仍有部分内容未罗列出来,如数组、自定义方法、报表等,还望老师见谅。