版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、综合项目2(学籍管理系统项目10:vf 学籍管理系统的开发实例一、需求分析随着学校规模不断扩大,学生的数量急剧增加,有关学生的各种信息量也成倍增加。面对庞大的信息量,需要有学生管理系统来提高学校管理人员的工作效率。通过这样的系统,可以做到信息的规范管理,科学统计和快速的查询,从而减少管理方面的工作量,由于大学生类别和专业的设置的多样化,大学生的学籍管理历来是非常繁琐和复杂的工作,不仅需要多配置管理人员,而且在数据处理的准确性、时效性、安全性等方面均存在许多问题,使得人工管理几乎无法实现。这种情况下,用计算机进行管理变得尤为的必要,这可以发挥计算机的优势,利用计算机来进行学籍管理,无疑大大减轻了
2、工作人员的工作量和减少人为的错误。因此我们选用了微软公司的Visual FoxPro 6.0 作为软件平台,并用它来实现学籍管理系统中的各项功能。二、数据来源我们以某学校为例。学生情况登记表:学号、姓名、性别、出生日期、是否团员、电话、总成绩老师情况登记表编号、姓名、性别、学历、职称、联系方式、20040001、张华、男、大学、5833033020040002、程城、女、大学、5826623820040003、马东、男、大学、58288368课程情况登记表课程号、课程名、学期、学分、教师所在系2004、0010、计算机基础知识一52004、0012、高数二、62004、0052、英语三、520
3、04、1200、数据库应用四、3三、系统的具体功能(1设计要求系统开发的总体任务是实现学生信息关系的系统化、规范化和自动化。设计要求分析显示在系统开发的总体任务的基础上完成的。本例中的学生学籍管理系统的设计要求主要有:有关学籍等信息的输入,包括输入学生基本信息、所在班级、所学课程和成绩等。学生信息的查询,包括查询学生的基本信息、所在班级、已学课程和成绩等。学生信息的修改。学校基本课程信息的输入基本课程信息的修改。学生课程的设置和修改。学生成绩信息的输入、修改、查询。学生成绩信息的统计。本例根据学生信息表和课程基本信息表、教师信息表等输入单据中归纳出包括2个表的数据库,现将这些列出如下:(1学生
4、表:xs (学号,姓名,性别,出生日期,是否团员,电话,通信地址,邮编,总成绩,备注(2课程表:kc (课程号,课程名,学期,学分,教师,所在系(3教师表:js (编号,姓名,性别,学历,职称,所授课程,联系方式,备注六、应用程序的设计该系统的最终用户应该是学校的学籍管理工作人员,这是一群具有相当计算机应用知识的用户,他们应该可以很熟练的使用本系统,而且该系统的使用率也会提高,它将完成学生信息的录入、存储、修改的相关查询、汇总工作、从而将大大提高学生工作信息管理的效率。学生学籍管理系统的具体设计如下:1、学生学籍管理系统主程序(A:main.prg功能:提供程序的主界面和进入系统各功能模块的接
5、口,包括一个自右向左滚动的飞字程序。源程序:set talk off &&关闭人机对话set escape off &&设置ESC脱离键不起作用,即误按该键不会终止程序的执行clear all &&清屏set colo to 0/7,7/0 &&设置VFP系统的默认颜色clear &&清屏4,42 clear to 30,92set colo to 7+/0+ &&从第4行第42列到第30行第92列产生白字黑底的色块4,42 clear to 30,92 &&显示色块3,40 cle
6、ar to 29,90set colo to 7+/4 &&从第3行第40列到第29行第90列产生白字黑底的色块3,40 clear to 29,90 &&显示色块4,42,28,88 box space(9 &&从左上角第4行第42列到右下角第28行88列产生线框7,52 say'=学生学籍管理系统=' &&在第7行第52列显示学生学籍管理系统的字样8,50 say'-' &&在第8行第50列显示分隔线条9,57 say'=1.录入数据=' &&在第
7、9行第57列显示1.录入数据字样11,57 say'=2.修改数据=' &&在第11行第57列显示2.修改数据字样13,57 say'=3.查询数据=' &&在第13行第57列显示3.查询数据字样15,57 say'=4.统计数据=' &&在第15行第57列显示4.统计数据字样17,57 say'=5.显示数据=' &&在第17行第57列显示5.打印数据字样19,57 say'=6.删除数据=' & &在第19行第57列显示6.退出数据
8、字样21,57 say'=7.退出=' &&在第21行第57列显示7.退出字样x=1 &&设初值x=1b1="欢迎您使用学生学籍管理系统&&将字符串赋给变量b1do while.t. &&当条件成立时计算机做下面的语句hz1=substr(b1,x,29 &&取字符串b1从第1个字符到第29个字符赋给变量hz125,51 say hz1 &&在第25行第51列显示字符串hz1bb=inkey(0.6 &&将等待0.6秒击键的inkey 函数赋给bbif bb
9、<>0 &&变量bb不等于0,即有击键动作发生exit &&那么,不显示字符串endi &&与if条件判断语句相配对x=x+2 &&将变量x的值加2赋给xif x>83 &&如果变量x大于83个字符x=1 &&那么,将1赋给变量x,即从头开始显示字符串endi &&与if条件判断语句相配对endd &&与do while循环语句相配对27,51 say'请选择1-7:' &&在第27行51列显示请选择1-7:的字样wa
10、it ' ' to k &&计算机等待用户从键盘输入一个字符给变量k do case &&做选择语句case k='1' &&当变量k的值等于1时do a:input &&计算机跳转到a:input子程序case k='2' &&当变量k的值等于2时do a:modify &&计算机跳转到a:modify子程序case k='3' &&当变量k的值等于3时do a:search &&计算机跳转到a:sea
11、rch子程序case k='4' &&当变量k的值等于4时do a:total &&计算机跳转到a:total子程序case k='5' &&当变量k的值等于5时do a:dp &&计算机跳转到a:dp子程序case k='6' &&当变量k的值等于6时do a:del &&计算机跳转到a:del子程序case k='7' &&当变量k的值等于7时set colo to 0/7,7/0 &&设置VFP系统
12、的默认颜色clear &&清屏retu &&返回VFP主程序endcase &&与do case选择语句相配对set decimals to 2set fdow to1set fweek to 1set mark to .Set separat or to .”Set point to .2、录入模块子程序(A:input.prg功能:提供卡片式的录入数据界面。源程序:set talk offuse a:xj &&打开a:xj.dbf数据库文件go bott &&将记录指针移到数据库的末尾skip &&am
13、p;跳到下一条记录hk=recn( &&将当前记录号赋给变量hkhk1=str(hk,3 &&将变量hk值的前三位,由数值转换为字符串赋给c1=.t. &&将逻辑型变量“真”赋给变量c1do while c1 &&当条件成立时计算机做下面的语句a1=spac(2 &&将2个空格赋给变量a1a2=spac(6 &&将6个空格赋给变量a2a3=spac(2 &&将2个空格赋给变量a3a4=spac(8 &&将8个空格赋给变量a4a5=spac(2 &&将2
14、个空格赋给a5a6=spac(8 &&将8个空格赋给a6a7=spac(30 &&将30个空格赋给a7a8=spac(6 &&将6个空格赋给a8a9=spac(6 &&将6个空格赋给a9a10=spac(50 &&将50个空格赋给a10kk=.t. &&将逻辑型变量“真”赋给变量kkdo while kk &&当条件成立时计算机做下面的语句clea &&清屏1,5 say"输入第"+hk1+"张卡片" &&在第1
15、行第5列显示输入第"+hk1+"张卡片的字样,其中,hk1为宏替换hk=hk+1 &&变量hk的值增1hk1=str(hk,3 &&将变量hk的值取3位赋给hk1row(+1,5 say"学号:"get a1 &&在当前行的下一行第5列显示学号字样row(,40 say"姓名:"get a2 &&在当前行第40列显示姓名字样row(+1,5 say"性别:"get a3 &&在当前行的下一行第5列显示性别字样row(+1,5 say&q
16、uot;出生年月(MM/DD/YY:"get a4 &&在当前行的下一行第5列显示出生年月字样row(+1,40 say"是否团员:"get a5 &&在当前行的下一行第5列显示是否团员字样row(+1,5 say"电话:"get a6 &&在当前行的下一行第5列显示电话字样row(+1,40 say"通信地址:"get a7 &&在当前行的下一行第5列显示通信地址字样row(+1,5 say"邮编:"get a8 &&在当前
17、行的下一行第5列显示邮编字样row(+1,5 say"总成绩:"get a9 &&在当前行第40列显示是否总成绩字样row(+1,5 say"备注:"get a10 &&在当前行的下一行第5列显示备注字样read &&将键盘所输内容读入内存y="y" &&将字符y赋给变量y12,5 say"输入正确吗?(Y/N"get y &&在第12行第5列显示输入正确吗字样read &&并将输入的y或n读入内存if y="
18、Y".or.y="y" &&如果变量y值为大写的Y或小写的y kk=.f. &&那么,将逻辑否赋给变量kkendif &&与if 相配对enddo &&与do while相配对appe blan &&添加新记录到空白记录replace 学号with a1,姓名with a2,性别with a3,出生年月with ctod(a4,是否团员with a5replace 电话with val(a6,通信地址with val(a7,邮编with val(a8,总成绩with a9,备注with
19、 a10 &&替换键盘输入的内容到相应的字段中y=" " &&将一空格赋给变量yclea14,5 say"继续输入吗?(y/n"get y &&在第14行第5列显示继续输入吗字样read &&并将输入的y或n读入内存if y="N".or.y="n" &&如果变量y值为大写的N或小写的nkk=.f. &&那么,将逻辑否赋给变量kkexit &&退出输入界面endif &&与if相配对end
20、do &&与do while相配对clear &&清屏do a:main &&运行A:main.prg主程序(2、修改模块子程序(A:modify.prg功能:提供卡片式的修改数据的功能。源程序:set talk offset delimiter offuse a:xj &&打开数据库文件A:xj.dbfkk=.t.do while kkcleargo topyy=space(24,20 say"请输入学号" get yyreadloca all for 学号=yyif eof(5,5 say" &q
21、uot;wait"该记录不存在!请按任意键返回!"y="y"clea6,5 say"继续修改吗?(Y/N" get yreadif y="Y".or.y="y"loopendicleado a:mainretuendicleakk=.t.do while kkclearrow(+1,1 say"学号:" get 学号row(,40 say"姓名:" get 姓名row(+1,1 say"性别:" get 性别row(+1,1 say &
22、quot;出生年月:" get 出生年月row(,60 say"是否团员:" get 是否团员row(+1,1 say"电话:" get 电话row(+1,25 say"通信地址:" get 通信地址row(,25 say""邮编:" get 邮编row(+1,1 say"总成绩:" get 总成绩row(,60 say"备注(双击文本框输入内容:" get 备注y=" "9,15 say"修改正确吗?(Y/N" g
23、et yreadif y="y".or.y="Y"kk=.f.elseloopendienddocleary=""5,15 say"继续修改吗?(Y/N" get yreadif y="n".or.y="N"kk=.f.endifenddocleado a:main(3、查询模块子程序(A:search.prg功能:提供按学号检索、按姓名检索、按学号和姓名检索和按学号、姓名、性别检索三个子模块的查询数据功能。表单上的按钮功能包括:输入查询条件、查询、显示查询条件、清除查询条件
24、、打印预览、打印和放弃。起初,除输入查询条件、显示查询条件和放弃外按钮均是不能选择的。当单击“输入查询条件”按钮时,表单元上的字段均为空,用户可以输入任意知道的条件做为查询条件,这些条件均是“与”的关系。这时,按钮也可以被选择了,若单击查询,查询结果就显示在表单的逐条浏览页上,同时,在该页上还显示了共查询到几条记录及可用移动记录按钮逐条查看记录。显示查询条件按钮可以查看本次查询输入的条件;清除查询条件按钮可以清除本次查询的条件以备下一次查询;打印按钮将本次查询结果输出到打印机;放弃按钮则放弃本次查询并释放本表单元。为了方便查看,还可以在表单的浏览佤页中一次查看到全部查询到的记录;并能在浏览字段
25、设定页中设定佤浏览时该字段的显示与否。源程序:set talk offset delimiter offset safety off &&重建索引时不提示覆盖use a:xjinde on 学号to a:xh &&按学号建立索引文件xh.idxinde on 学号+姓名to a:xhxm &&按学号和姓名建立索引文件xhxm.idx inde on 姓名to a:xm &&按姓名建立索引文件xm.idxdo while ctext检索功能表0-退出检索系统1-按学号检索2-按姓名检索3-按学号和姓名检索4-按学号、姓名、性别检索e
26、ndtdd=1row(+1,17 say"请输入功能号" get dd pict "9" rang 0,4readdo casecase dd=0cleardo a:mainretucase dd=1clearn1=spac(24,20 say"请输入学号" get n1readfind &n1 &&查找字符串n1,&为宏替换case dd=2Clearn2=spac(64,10 say"请输入姓名" get n2readuse a:xj inde a:xmfind &n2c
27、ase dd=3clearn1=spac(2n2=spac(64,10 say"请输入学号" get n15,10 say"请输入姓名" get n2readuse a:xj inde a:xhxmn4=n1+n2find &n4case dd=4clearn1=spac(2n2=spac(6n3=spac(23,10 say"请输入学号:" get n14,10 say"姓名:" get n25,10 say"性别:" get n3readotherretuEndcif eof( &a
28、mp;&如果已到文件尾clearwait'对不起!没找到。请按任意键返回!'loopendifcc=.t.y=" "do while ccset devi to scre &&设置屏幕显示字符clearow(,5 say"学号:"+学号row(,40 say"姓名:"+姓名row(+1,5 say"性别:"+性别row(+1,5 say"出生年月:"+dtoc(出生年月row(+1,40 say"是否团员:"+是否团员row(+1,5
29、say"电话:"+电话row(,40 say"通信地址:"+通信地址row(+1,5 say"邮编:"+邮编row(+1,5 say"总成绩:"+总成绩row(+1,5 say"备注:"+备注20,20 say"不继续查找打N,否则打任一键" get yreadif y="N".or.y="n"clearloopelseEndifloopEndifEnddoEnddousedo a:main(4、统计模块子程序(A:total.prg功
30、能:提供统计人数、平均成绩和党员人数的功能。源程序:set talk offuse a:dd=0do while ccleartext统计功能表0-退出统计系统1-统计人数2-统计平均成绩3-统计党员人数endtdd=1row(+1,17 say"请输入功能号" get dd pict "9" rang 0,3readdo casecase dd=0cleardo a:case dd=1clearcoun to aa &&计算记录数并把值赋给aa4,20 say"总人数:"?aa &&显示变量aa的值a
31、=' '7,20 say"按任意键返回!"readif a=''loopendicase dd=2clearaver 总成绩to aa &&对总成绩求平均并把平均值分别赋给变量aa 4,20 say"求总成绩平均成绩为:"?aaa=' ' 9,20 say"按任意键返回!" read if a='' loop endi case dd=3 clear coun for 是否团员="是" to aa &&统计党员数,并把值
32、赋给 aa 4,20 say"团员人数为:" ?aa a=' ' 9,20 say"按任意键返回!" read if a='' loop endi endc return endd 5,显示模块子程序(A:dp.prg 功能:提供卡片式的显示记录的功能. 源程序:set talk off set devi to scre use a:xj kk=.t. do while kk clea hk=recn( hk1=str(hk,3 row(,5 say"您现在浏览的是第"+hk1+"张卡片" row(+1,5 say"学号:"+学号 row(+1,5 say"姓名:"+姓名 row
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论