计算机考试系统设计与实现_第1页
计算机考试系统设计与实现_第2页
计算机考试系统设计与实现_第3页
计算机考试系统设计与实现_第4页
计算机考试系统设计与实现_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录内容摘要:1关 键 词:1abstract:1key words:1第一章 引 言11.1 项目开发背景1第二章 php mysql简介2.1 php介绍22.2 mysql介绍3第三章 系统分析 3.1可行性分析5 3.2需求分析53.2.1.数据流图(dfd)73.2.2数据字典11第四章 总体设计 4.1模块设计13 4.2 系统维护与改进21第五章 数据库详细设计5.1确定数据库的存储结构225.2数据库的实施与维护235.3数据库的维护28参考文献29致谢303第二章php mysql简介2.1 php介绍php,是英文超级文本预处理语言hypertext preprocesso

2、r的缩写。php 是一种 html 内嵌式的语言,是一种在服务器端执行的嵌入html文档的脚本语言,语言的风格有类似于c语言,被广泛的运用。php 独特的语法混合了 c、java、perl 以及 php 自创新的语法。   它可以比 cgi或者perl更快速的执行动态网页。用php做出的动态页面与其他的编程语言相比,php是将程序嵌入到html文档中去执行,执行效率比完全生成html标记的cgi要高许多;php还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。php具有非常强大的功能,所有的cgi的功能php都能实现,而且支持几乎所有流行的数据库以及操作

3、系统。最重要的是php可以用c、c+进行程序的扩展! 94年由rasmus lerdorf创建,刚刚开始只是一个简单的用perl语言编写的程序,用来统计他自己网站的访问者。后来又用c语言重新编写,包括可以访问数据库。在1995年以personal home page tools (php tools) 开始对外发表第一个版本,lerdorf写了一些介绍此程序的文档,并且发布了php1.0。在这早期的版本中,提供了访客留言本、访客计数器等简单的功能。以后越来越多的网站使用了php,并且强烈要求增加一些特性,比如循环语句和数组变量等等,在新的成员加入开发行列之后,在1995年中,php2.0发布了

4、。第二版定名为php/fi(form interpreter)。php/fi加入了对mysql的支持,从此建立了php在动态网页开发上的地位。到了1996年底,有15000个网站使用 php/fi;1997年中,使用php/fi的网站数字超过五万个。而在1997年中,开始了第三版的开发计划,开发小组加入了 zeev suraski 及 andi gutmans,而第三版就定名为php3。2000年,php4.0又问世了,其中增加了许多新的特性。 php 的简称原本为 personal home page,是rasmus lerdorf 为了要维护个人网页,而用c语言开发的一些cgi工具程序集,

5、来取代原先使用的 perl 程序。最初这些工具程序用来显示 rasmus lerdorf 的个人履历,以及统计网页流量。他将这些程序和一些表单直译器整合起来,称为 php/fi。php/fi 可以和数据库连接,产生简单的动态网页程序。rasmus lerdorf 在1995年6月8日将 php/fi 公开发布,希望可以透过社群来加速程序开发与寻找错误。这个发布的版本命名为 php 2,已经有今日 php 的一些雏型,像是类似 perl 的变量命名方式、表单处理功能、以及嵌入到 html 中执行的能力。程序语法上也类似 perl,有较多的限制,不过更简单、更有弹性。 在1997年,任职于 tec

6、hnion iit 公司的两个以色列程序设计师:zeev suraski 和 andi gutmans,重写了 php 的剖析器,成为 php 3 的基础,而 php 也在这个时候改称为php: hypertext preprocessor.5。经过几个月测试,开发团队在1997年11月发布了 php/fi 2,随后就开始 php 3 的开放测试,最后在1998年6月正式发布 php 3。zeev suraski 和 andi gutmans 在 php 3 发布后开始改写   php 的核心,这个在1999年发布的剖析器称为 zend engine7,他们也在以色列的 r

7、amat gan 成立了 zend technologies 来管理 php 的开发。 在2000年5月22日,以zend engine 1.0为基础的php 4正式发布,2004年7月13日则发布了php 5,php 5则使用了第二代的zend engine5。php包含了许多新特色,像是强化的面向对象功能、引入pdo(php data objects,一个存取数据库的延伸函数库)、以及许多效能上的增强。目前php 4已经不会继续更新,以鼓励用户转移到php 5。 2008年php 5成为了php唯一的有在开发的php版本。将来的php 5.3将会加入late static binding和

8、一些其他的功能强化。php 6 的开发也正在进行中,主要的改进有移除register_globals、magic quotes 和 safe mode的功能。2.2 mysql介绍 mysql是一个小型关系型数据库管理系统,开发者为瑞典mysql ab公司。在2008年1月16号被sun公司收购。而2009年,sun又被oracle收购。mysql是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。mysql的sql“结构化查询语言”。sql是用于访问数据库的最常用标准化语言。mysql软件采用了gpl(gnu通用公共许

9、可证)。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了mysql作为网站数据库。 mysql最初的开发者的意图是用msql和他们自己的快速低级例程(isam)去连接表格。经过一些测试后,开发者得出结论:msql并没有他们需要的那么快和灵活。这导致了一个使用几乎和msql一样的api接口的用于他们的数据库的新的sql接口的产生,这样,这个api被设计成允许为用于msql而写的第三方代码更容易移植到mysql。 mysql这个名字是怎么来的已经不清楚了。基本指南和大量的库和工具带有前缀“my”已经有10年以上,而且不管怎样,mysql

10、ab创始人之一的   3mysql ab创始人之一monty widenius的女儿也叫my。这两个到底是哪一个给出了mysql这个名字至今依然是个迷,包括开发者在内也不知道。 mysql的海豚标志的名字叫“sakila”,它是由mysql ab的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者ambrose twebaze提供。根据ambrose所说,sakila来自一种叫siswati的斯威士兰方言,也是在ambrose的家乡乌干达附近的坦桑尼亚的arusha的一个小镇的名字。系统特性1使用c和c+编写,并使用

11、了多种编译器进行测试,保证源代码的可移植性 2支持aix、freebsd、hp-ux、linux、mac os、novellnetware、openbsd、os/2 wrap、solaris、windows等多种操作系统 3为多种编程语言提供了api。这些编程语言包括c、c+、python、java、perl、php、eiffel、ruby和tcl等。 4支持多线程,充分利用cpu资源 5优化的sql查询算法,有效地提高查询速度 6既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的gb 2312、big5,日文的sh

12、ift_jis等都可以用作数据表名和数据列名 7提供tcp/ip、odbc和jdbc等多种数据库连接途径 8提供用于管理、检查、优化数据库操作的管理工具 9可以处理拥有上千万条记录的大型数据库 10支持多种存储引擎 第三章 系统分析3.1可行性分析本系统的开发利用my sql 作为本系统的数据库,它是一个支持多用户的新型数据库,适用于大中规模的数据量需求。学校校园网的建设也为新系统服务器/客户端的结构提供了硬件的支持。使用visual s作为系统开发的开发环境,它提供完善的指令控制语句、类与对象的支持及丰富的数据类型,给开发高性能系统提供的保障为开发满足客户要求的系统,保证了代码的模块化要求,

13、而代码模块化的提高,非常有利于以后对新系统的扩展与修改。综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,因此,它在技术上是可行的。1.4.3运行上可行性:本系统为一个小型的学生信息管理系统,所耗费的资源非常的小,学校的电脑无论是硬件还是软件都能够满足条件,因此,本系统在运行上是可行的。3.2 需求分析 21世纪以来,人类经济高速发展,人们发生了日新月异的变化,特别是计算机的应用及普及到经济和社会生活的各个领域。使原本的旧的管理方法越来越不适应现在社会的发展。许多人还停留在以前的手工操作。这大大地阻碍了人类经济的发展。为了适应现代社会人们高度强烈的时间观念,学校信息管理系统软件

14、为学校办公室带来了极大的方便。 5教育系统学生管理现状分析 学校工作流程分析学校工作总体规划由教务人员在学生信息管理系统中完成对运行教务处所需的基本数据的维护,包括这些信息的增加、修改及对各项信息的变动都将在这进行操作。新的学年,教务人员首先加入年级信息,然后编排班级,再对来校学生进行基本的信息录入,新生入学后由教务人员在学籍系统中完成新学生信息的维护。在每个学期开始,教务处根据班级的情况,以班为单位,为每个班级安排一个班主任及对此年级安排一个年级组长。并对各科老师进行安排。每举行一次考试后由任课老师对成绩进行录入。班主任对本班的成绩汇总。并进行排名,然后年级组长再进行汇总,并对本年

15、级各科成绩及总成绩进行排名。教务处、年级组长、班主任及任课老师跟据实际情况对录入的成绩进行维护,各位同学对以上录入的信息可以跟据自己的需要进行适当的查询。  学校具体需求分析学生:对各科成绩的查询及查看本班成绩排名等情况。任课老师:输入并维护所教科目的学生成绩,计算本科的成绩排名、本科成绩在班上的排名。输出本班科目的成绩及排名情况。班主任:输入并维护本班的基本信息,对本班的各科成绩汇总,计算各科成绩的总分,排名,本班平均分等需求。输出学生的基本信息,各科的成绩及各科成绩的部分,各科成绩的排名,总分的排名情况。教务处: 学校全体成员的信息管理,对考试科目,时间及对所考科目的编号等进行具

16、体的管理,并对任课老师,班主任等输入的信息进行存库,对学生的信息进行必要的维护,可打印学生的所有信息。3.2.1.数据流图(dfd) 创建实体关系图(1) 在需求收集的过程中,要求客户列出应用软件或业务过程涉及到的"事物",将其演化成数据对象;(2) 一次考虑一个对象,分析员和客户定义这个对象和其他对象之间是否存在连接;(3) 如果存在连接,应创建一个或多个关系;(4) 对每一个关系,确定其关联类型;(5) 重复步骤(2)到步骤(4),直到定义了所有关系。(6) 定义每个实体的属性;(7) 形式化并复审实体关系图;(8) 重复步骤(1)到(7),直到数据建模完成。举例分析:

17、* 实体:学生、课程、成绩。* 实体属性定义:学生:学号、姓名、性别、出生日期、入学年月课程:课程编号、课程名称、课程学分、课程描述成绩:学号、课程编号、分数、考核日期* 实体关系图: 首先分析"学生成绩管理系统"的用户要求,找出该系统应该包括的实体。显然,学生、课程和成绩都是系统的实体,并且可以初步定义它们的属性(见上)。教务人员虽然是系统的用户,但其信息与系统处理无关,因此不用作为实体。那么,学生的选课信息是否需要成为实体呢?由于成绩信息包含了选课信息,因此选课信息不用单独记录。最终,确定系统的实体是学生、课程和成绩。接着,我们分析这些实体之间的关联关系。从实际情况得知

18、,一个学生可以选多门课程,一门课程也可以有多个学生选修,但每个学生选一门课程必须有一个成绩。根据上述分析,我们得到如图所示的实体关系图。 创建数据流模型通常,数据流图是分层绘制的,整个过程反映了自顶向下进行功能分解和细化的分析过程。顶层(也称第0层)dfd用于表示系统的开发范围,以及该系统与周围环境的数据交换关系;最底层dfd代表了那些不可进一步分解的"原子加工";中间层dfd是对上一层父图的细化,其中的每一个加工可以继续细化,中间层次的多少由系统的复杂程度决定。(1) 第0层dfd将整个系统表示成一个加工; (2) 确定并标记主要的输入和输出;(3) 分离出下一层中的加工

19、、数据对象和存储,并对其进行细化,一次细化一个加工;(4) 标记所有加工和箭头;(5) 重复步骤(3)和(4),直到所有的加工只执行一个简单的操作,可以很容易地用程序实现。第2层dfd图对第1层dfd图中的一个加工"查询学生成绩"进行展开。绘制第0层dfd的时候,将整个系统看成一个加工,然后找出作用于该加工的外部实体,以及相应的数据输入和输出。对于"学生成绩管理系统"而言,整个系统就是一个加工"学生成绩管理"。从用户的需求描述可知,"教务人员"是数据的源点,"学生"是数据的终点。另外,教务人员需

20、要录入学生信息、课程信息和成绩,说明"学生信息"、"课程信息"和"成绩"是数据流;同样,"查询请求"和"查询结果"也是数据流。根据上述分析,得到如图所示的第0层dfd。绘制下一层数据流图时,细化第0层的加工"学生成绩管理",从而描述系统的主要功能。从第0层dfd得知,"学生信息"是教务人员需要录入的一个信息,因此加入一个加?quot;录入学生信息",同样得到"录入课程信息"、"登记成绩"两个加工。另外,数据

21、流"查询请求"和"查询结果"应该由加工"查询成绩"来完成。这样,我们用"录入学生信息"、"录入课程信息"、"登记学生成绩"和"查询学生成绩"四个加工代替第0层的"学生成绩管理",同时增加这些数据流对应的数据存储,即"学生"、"课程"和"成绩",最后得到如图所示的第1层dfd。为了继续进行分解,我们分析第1层dfd中的加工"查询学生成绩"。学生查询成绩时需要提

22、供合法性检查,因此,"查询学生成绩"可以分解为"合法性检查"和"查询成绩"两个处理步骤,从而形成如图所示的第2层dfd。根据以上实例和经验,绘制数据流图应当遵循以下原则:(1) 分层时,子图的输入、输出数据流必须和父图中相应加工的输入、输出数据流一致;(2) 加工的编号应该唯一且具有层次性;(3) 加工不应该只有输入或只有输出,通常既有输入又有输出;(4) 数据流图不应反映处理的顺序;(5) 加工之间应通过数据存储进行通信,避免从一个加工直接流到另一个加工;(6) 数据应通过加工进行流动,避免从一个数据存储直接流到另一个数据存储;(7

23、) 数据流图中所有元素的命名应当对客户有意义,且与业务相关;(8) 不要在一个图中绘制7个以上的加工,否则难于绘制和理解。3.2.2 数据字典以下列出"学生成绩管理系统"的部分数据字典条目:数据项名:学生 描述:包括学生的主要信息别名:无定义:学号 + 姓名 + 性别 + 出生日期 + 入学年月数据量:10000左右峰值:随时,但经常在新生入学时期其他说明:在系统功能扩充时可能增加定义项举例分析:* 第0层dfd图教务人员维护学生信息和课程信息,并登录学生的选课成绩;学生查询自己的成绩单。l 第1层dfd图对第0层dfd图中的一个加工"学生成绩管理"进行

24、展开。l数据流名:学号 描述:唯一标识学生的编号别名:无类型: 字符串长度:6位字符其他说明:学号不能重复数据流名:学生成绩查询 描述:系统处理的一个命令别名:无频率: 10000次左右峰值:随时,但经常在学期开学其他说明:在系统功能扩充时可能增加种类 第四章 总体设计4.1 模块设计本系统包括登陆模块,系统查询模块,系统管理模块,系统设置模块。其中,登陆模块实现用户管理,注册管理功能;系统查询模块实现学生成绩和信息查询及浏览功能;系统管理模块实现录入、修改、删除成绩管理,统计管理功能;系统设置模块实现注销用户,修改密码功能。 4.1.1 登陆模块的设计(1) 登陆窗体 (在登陆窗体之前为一个

25、欢迎窗体)功能:设置了权限管理,登陆成功后,对各个模块进行操作。操作:欢迎窗体消失后自动生成该窗体,输入用户名和密码,选择登陆模式。登陆窗体如图3.1所示。4.1.2 系统查询模块的设计与实现学生成绩和学生信息查询窗体,如图4.4所示。功能:查询、浏览学生信息。可以查询单一记录,也可以浏览所有信息。操作:单击显示即可浏览所有学生信息或成绩信息,输入学号点击查询可查询单独记录。154.1.3 系统管理模块的设计与实现(1)学生成绩录入删除窗体,如图4.5所示。功能:设置权限管理,管理人员可以录入删除学生成绩和信息。操作:在文本框处填写信息后点击添加实现录入成绩功能,输入学号点击删除实现成绩删除功

26、能。 录入主要实现代码:xmlelement newscore = doc.createelement("score");newscore.innertext = ""root.appendchild(newscore);xmlnode root1 = doc.documentelement.lastchild;xmlelement new姓名 = doc.createelement("姓名");new姓名.innertext = txtname.text;root1.appendchild(new姓名);删除主要实现代码:strin

27、g a = txtsn2.text;if (a = "") messagebox.show("请输入学号!", "对不起");   return; xmlnode delscore = doc.selectsinglenode("/score学号='" + txtsn2.text + "'"); delscore.parentnode.removechild(delscore);(2)学生成绩修改窗体,如图4.6所示。功能:修改学生成绩信息

28、。操作:填写信息后,输入新的成绩,点击修改。 16成绩修改主要实现代码:        string a = txtname.text;        if (a = "")        messagebox.show("请输入姓名!", "对不起");     &#

29、160;  return;         xmldocument doc = new xmldocument();        doc.load("scores.xml");        dataset ds = new dataset();        xmlnode upsco

30、re = doc.selectsinglenode("/score姓名='" + txtname.text + "'");        xmlelement root = doc.documentelement;        xmlnode 成绩 = doc.selectsinglenode("/score姓名='" + txtname.t

31、ext + "'/成绩");        xmlelement score = doc.createelement("成绩");        score.innertext = txtscore.text;upscore.replacechild(score, 成绩);(3)统计窗体,如图4.7所示。     功能:统计学生人数,考试人数,不及格人数,优秀

32、人数,计算平均成绩。     操作:分别输入根元素统计学生人数和成绩人数,点击不及格人数、平均成绩、优秀人数会连接相应的计算窗体,点击确定进行计算。统计不及格人数实现代码:            xmlnodelist list = doc.getelementsbytagname("g");            f

33、or (int i = 0; i < list.count; i+) int s=0;            if (int.parse(listi.innertext) < 60) s+;            textbox1.text = s.tostring(); 计算平均成绩实现代码:      

34、      xmldocument doc = new xmldocument();doc.load("scores.xml");            xmlnodelist list = doc.getelementsbytagname("g");            for (in

35、t i = 0; i < list.count; i+) int p=0;            p += int.parse(listi.innertext);             textbox1.text = (p / list.count).tostring();4.1.4 系统设置模块的设计与实现修改密码窗体(如图4.8所示)功能:修改登陆用户的密码。 操作

36、:输入旧密码,再输入一个新的密码,点击确定。修改密码主要实现代码:            xmlnode uppwd = doc.selectsinglenode("/user密码=&apos;" + txtjpwd.text + "&apos;");            xmlelement root = doc.do

37、cumentelement;            xmlnode jpwd = doc.selectsinglenode("/user密码=&apos;" + txtjpwd.text + "&apos;/密码");            xmlelement npwd= doc.createelement("

38、密码");            npwd.innertext = txtnpwd.text;            uppwd.replacechild(npwd, jpwd);4.1.5 系统维护模块的设计帮助窗体(如图4.9所示)功能:联系系统开发者办公室咨询详细情况。操作:在主窗体中选择系统帮助,点击其中任意选项。4.2 系统维护和改进4.2.1 运行维护经过

39、测试,该系统运行稳定,在使用和维护中应注意以下问题:定期清理无效数据,以提高运行效率。对系统和运行环境进行日常护理4.2.2系统改进和提高本系统在信息表达上还有不完备的地方,对于学校的教师管理、课程管理还没有做到细致,报表打印还没有考虑。下一步的工作将完善本系统,在各个界面上进一步添加所需要的字段,扩充系统的功能。 第五章 数据库详细设计5.1确定数据库的存储结构确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。因为该成绩管理系统的数据量小,所以我们只用把数据存储在使用的电脑硬盘上,不用作更多的安

40、排。(1)创建学生基本信息表:create table student ( 学号 varchar(11) not null, 系别 varchar(5) not null姓名 varchar(6) not null, 性别 varchar(2) not null, 年龄 char(2) not null, 地址 varchar(20) not null, constraint pk_student primary key (学号)goexecute sp_addextendedproperty 'ms_description', '学生基本信息描述', '

41、;user', '', 'table', 'studentsinfo'go(2)创建课程表:create table course ( cno varchar(5) not null, cname varchar(10) null, xueshi smallint null, xuefen int null, constraint pk_course primary key (课程号)goexecute sp_addextendedproperty 'ms_description', (3)创建学生与课程的成绩表creat

42、e table sc ( sno varchar(11) not null,cno varchar(5) not null,chengji varchar(4) not null constraint pk_sc primary key (学号, 课程号)go在sc表上创建索引sc_fk与sc2_fkcreate index sc_fk on sc (学号 asc)gocreate index sc2_fk on sc (课程号 asc)go 建立课程号索引create index tc_fk on tc (课程号 asc)go下图显示了学生,课程和成绩三个关系的物理设计其中课程号与学号号分别

43、为关系的主码。5.2数据库的实施与维护此阶段主要任务包括创建数据库,加载初始数据,数据库试运行,数据库的安全性和完整性控制数据库的备份与恢复,数据库性能的监督分析和改仅,数据库的重组和重构等。首先在数据库中建立一个学生成绩管理系统数据库,然后新建一个数据源。主要代码如下:#include "stdafx.h"#include "studentscore.h"#include "course.h"#ifdef _debug#define new debug_new#undef this_filestatic char this_file

44、 = _file_;/ ccourseimplement_dynamic(ccourse, crecordset)ccourse:ccourse(cdatabase* pdb): crecordset(pdb)/afx_field_init(ccourse)/afx_field_initm_ndefaulttype = snapshot;cstring ccourse:getdefaultconnect()return _t("odbc;dsn=");cstring ccourse:getdefaultsql()return _t("");void cc

45、ourse:dofieldexchange(cfieldexchange* pfx)/afx_field_map(ccourse)pfx->setfieldtype(cfieldexchange:outputcolumn);/afx_field_map/ ccourse diagnosticsvoid ccourse:assertvalid() constcrecordset:assertvalid();void ccourse:dump(cdumpcontext& dc) constcrecordset:dump(dc);/ mainfrm.h : interface of t

46、he cmainframe classclass cmainframe : public cframewndprotected: / create from serialization onlycmainframe();declare_dyncreate(cmainframe)/ attributespublic:/ operationspublic:/ overrides/ classwizard generated virtual function overrides/afx_virtual(cmainframe)virtual bool precreatewindow(createstr

47、uct& cs);/afx_virtual/ implementationpublic:virtual cmainframe();protected: / control bar embedded members/cstatusbar m_wndstatusbar;/ctoolbar m_wndtoolbar;/ generated message map functionsprotected:/afx_msg(cmainframe)afx_msg int oncreate(lpcreatestruct lpcreatestruct);24afx_msg void onpassword

48、();afx_msg void onuser();afx_msg void onstudent();afx_msg void onteach();afx_msg void onteacher();afx_msg void onscore();afx_msg void onqueryteach();afx_msg void onqueryscore();afx_msg void oncourse();/afx_msgdeclare_message_map();/afx_insert_location/ microsoft visual c+ will insert additional decl

49、arations immediately before the previous line./ cscoreadddlg dialogcscoreadddlg:cscoreadddlg(cwnd* pparent /*=null*/): cdialog(cscoreadddlg:idd, pparent)/afx_data_init(cscoreadddlg)/afx_data_initvoid cscoreadddlg:dodataexchange(cdataexchange* pdx)cdialog:dodataexchange(pdx);/afx_data_map(cscoreadddl

50、g)ddx_control(pdx, idc_score_student, m_cstudent);ddx_control(pdx, idc_score_score, m_cscore);ddx_control(pdx, idc_score_course, m_ccourse);/afx_data_mapbegin_message_map(cscoreadddlg, cdialog)/afx_msg_map(cscoreadddlg)/afx_msg_mapend_message_map()void cscoreadddlg:onok()cstring student,course,score

51、,student_no,course_no;m_cstudent.getwindowtext(student);m_ccourse.getwindowtext(course); m_cscore.getwindowtext(score);else/成绩不为空cstring strsql;/查出该学生的学号strsql.format("select * from student where active_status='y' and 25afx_msg void onpassword();afx_msg void onuser();afx_msg void onstud

52、ent();afx_msg void onteach();afx_msg void onteacher();afx_msg void onscore();afx_msg void onqueryteach();afx_msg void onqueryscore();afx_msg void oncourse();/afx_msgdeclare_message_map();/afx_insert_location/ microsoft visual c+ will insert additional declarations immediately before the previous lin

53、e./ cscoreadddlg dialogcscoreadddlg:cscoreadddlg(cwnd* pparent /*=null*/): cdialog(cscoreadddlg:idd, pparent)/afx_data_init(cscoreadddlg)/afx_data_initvoid cscoreadddlg:dodataexchange(cdataexchange* pdx)cdialog:dodataexchange(pdx);/afx_data_map(cscoreadddlg)ddx_control(pdx, idc_score_student, m_cstu

54、dent);ddx_control(pdx, idc_score_score, m_cscore);ddx_control(pdx, idc_score_course, m_ccourse);/afx_data_mapbegin_message_map(cscoreadddlg, cdialog)/afx_msg_map(cscoreadddlg)/afx_msg_mapend_message_map()void cscoreadddlg:onok()cstring student,course,score,student_no,course_no;m_cstudent.getwindowte

55、xt(student);m_ccourse.getwindowtext(course); m_cscore.getwindowtext(score);else/成绩不为空cstring strsql;/查出该学生的学号strsql.format("select * from student where active_status='y' and student_name='%s'",student);crecordset m_recordset=&m_database;m_recordset.open(crecordset:forwa

56、rdonly,strsql); m_recordset.getfieldvalue("student_no",student_no);m_recordset.close();/查出该课程的课程号 strsql.format("select * from course where active_status='y' and course_name='%s'",course);m_recordset.open(crecordset:forwardonly,strsql); m_recordset.getfieldvalue(&

57、quot;course_no",course_no);m_recordset.close();bool cscoreadddlg:oninitdialog()cdialog:oninitdialog();crecordset m_recordset;if(!m_database.isopen()m_database.open(_t("student"); m_recordset.m_pdatabase=&m_database;cstring strsql;strsql.format("select course_name from course where active_status='y

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论