VF课程设计点名系统-VF课程设计-VisualFoxPro课程设计-VFP课程设计.docVIP

VF课程设计点名系统-VF课程设计-VisualFoxPro课程设计-VFP课程设计.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VF课程设计-点名系统 NO. PAGE 5 沈 阳 大 学 点名系统方案设计 1、课程设计的目的 数据库基础及应用是一门实用性很强的学科,是进行软件开发的主要基础。只有进行实际操作,才能将理论知识和实际应用有机地结合起来,锻炼学生分析解决问题得能力,提高学生实际运用的技能,为日后工作中的软件开发打下良好的基础。 VFP是微软公司推出的关系型数据库管理系统,它是一种地形的第四代计算机语言,VFP全面支持可视化编程和面向对象的编程,是最为使用的数据库管理系统和中小型数据库应用系统的软件开发之一,它为数据库结构和应用软件开发而设计,是功能强大的面向对象的软件。本课程设计结合数据库内容,运用VFP设计,使学生掌握数据库基础内容。 2、需求分析 2.1需求 在大学课堂中,课堂提问是上课环节中不可缺少的部分,也是教师与学生课堂互动,交流,最直接的方式。但在大学的课堂中缺存在一些问题。 对于学生来说,现在在大学生心理普遍的思想是:“千万别点我!”,一旦被老师点到则:“哎呀妈呀!今天点子真背!那么多人,怎么就点到我了呢?!。还有一种情况就是,有些同学每节课都被提问,有些同学整个学期都得不到一次提问机会。 对于教师来说,同样存在一些提问上的问题。老师每次提问之前都会拿着点名表看了又看:“点谁好呢?”面对几百人的课堂想在其中“公平的”选出回答问题的同学,这是令我们教师非常头疼的事情。 针对上述问题,提出程序设计需求如下: (1)此程序可以公平的选出提问的同学 (2)此程序可以排除掉已经被提问过的同学 (3)此程序可以从提问次数少的同学中选一同学 (4)此程序可以为多个班级的同学提供点名服务 (5)此程序最后可以打印出一个学期整体提问次数和分数 (6)此程序可以提供最多的点名次数不少于15次 2.2分析 首先,内部程序需要班级名次表作为点名表;对于公平的提问这一需求,可以使用VF自带的随机数函数,随机数函数可以返回一个随机值,将这个随机值作为学号来进行提问。每个班级每节课都配置一张提问表,这样就可以为多个班级多个课程提供点名服务。 其次,对于“排除提问过的同学”这一需求可以这样满足:将点名表增加一个特殊的字段,把提问过的同学对应的字段做标记,用判断语句判断如果特殊字段已经做了标记则下次不在提问。对于“从提问次数少的同学中选一个”需求可以这样满足:在点名表中增加一个次数字段,每次点名到时,将次数字段增加1次,点名时先中表中找到次数字段最少的同学提问,在使用随机函数随机选出一名同学。 最后,在程序中增加报表功能,报表中包括次次数、总分等满足需求,对于“次数不少于15次”的需求,可以将表增加序列次数字段,每次提问都将获得的分数存放到相应的次数中。 3、设计方案论证 3.1系统结构 3.2核心算法 3.2.1随机数算法 在本程序中多次用到了随机函数,在VF中的rand()函数只能返回(0,1)之间的随机数,并不能返回我们需要的“学号”,因此我们必须对rand()函数做适当的操作,使其返回我们需要的“学号”。分析,假如一个班级有40名同学,那么随机数算法给我们返回的数的范围一定是在0~40之间。假如一个班级有100名同学,那么随机数算法给我们返回的数的范围一定是在0~100之间。因此根据数学算法,将rand()进行变形。 X=int(10000*rand()%(max-mix)+mix) 其中,max为序列的最大值,mix为序列的最小值,X为返回的随机数。 如,一个班级有40人,则max的值就为40,mix的值就为1。则X返回的随机数一定在0~40之间。 3.2.2随机查找算法 在随机输出“学号”时,有一种情况是我们没有考虑到的:当2个或者很多个同学回答的都没被提问过。换句话说,有n个同学的次数字段相同!那么我们就需要从这些回答次数相同的同学中随机的选择一个!具体算法程序如下,其中X为查找的次数字段。 located for cishu==X if found() skip int(10000*rand()%(mixx-1)+1) cont endif if found() 显示此名同学的信息,定位指针 else go top located for cishu==0 if found() 显示此名同学的信息,定位指针 endif endif 下面的流程图会帮助理解随机查找算法 图1:随机查找算法流程图 3.2.3 在需求中教师不只是教一个班级,还有很多个班级,很多课要教,对点名模块的设计绝对不能只对一个表操作,一定要有很多张表,且可以随意切换,用户选择哪张表,就点哪张表内

文档评论(0)

138****7331 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档