? 点击桌面上“开始”菜单,选择“Microsoft SQL Server”->“查询分析器”,打开查询分析器。刚打开的查询分析器中有一查询窗口。
? 在查询窗口中输入SQL语句,如:create table temdb.dbo.department(deptID char(2)primary key, deptName char(20))
点击查询分析器工具栏上的执行按钮,消息窗口显示命令执行结果。
? 根据以上步骤,分别执行以下SQL语句创建表class、 course、 student、 bk_stud:
以上SQL语句正确执行后,可以从企业管理器中看到已创建的五个表。这五个表的类型都是“用户”。
4) 向表中插入数据。
在查询窗口中执行SQL语句,如 :
Insert into temdb.dbo.department value(‘06’,’管理学院’)
向 department表中插入数据,消息窗口显示执行结果正确。 4) 查询表中数据。
? 单表查询:查询department表的全部信息,在查询窗口中执行以下SQL语句:select * from department
? 两表查询:以上查询信息均来自同一个表,但有的查询信息要来自多个
表,如查询所有课程名称及其开课院系,则需要同时查询表course和 department,SQL语句为:
Select course.courseName,department.deptName From course,department
Where course.deptID=department.deptID
? 三表查询:查询学生姓名、补考课程名称和补考成绩,需要同时查询表student、 bk_stud 、course,SQL语句为:
Select student.studentName,course.courseName,bk_stud.score From student,bk_stud,course
Where student.studentID=bk_stud.studentID and bk_stud.courseID=course.courseID
5) 修改表中数据
? 在查询窗口中执行以下SQL语句: Update student
Set studentID=’200106100’ Where studentName=’马小跳’
这个操作的结果是把“马小跳”的学号变为200106100。
6) 删除表中的行。
? 在查询窗口中执行以下SQL语句:
Delete from student
Where studentID=’200106100’
这条语句的执行结果是删除表student 中学号为200106100的行。
三、实验报告的要求
(1) 每个学生独立完成一份实验报告,将实验报告编辑成文本上交。
(2) 实验报告的内容包括:数据库的设计,数据库的操作步骤及运行结果。 (3) 在实验报告的最后写明实验体会和实验中存在的问题。 四、问题思考
(1) 什么是数据库?什么是数据库中的表?二者有什么区别与联系?
(2) 什么是主码?什么是外码?为什么要设定外码? (3) 你所设计的数据库符合第几范式?为什么? (4) 在SQL Server中如何设置外码的参照关系?
实验三 认识信息系统开发工具
一、实验目的
(1) 熟悉常用的系统开发工具,了解如何利用开发工具实现一个小型应用系统。
(2) 熟悉开发工具VFP的应用。 二、准备知识
(1) 熟悉Windows操作系统中的各种图形元素的应用,例如表单、页框、命令按钮、文本框列表框、复选框、单选按钮、标签、表格、菜单等。
(2) 熟悉各种控件常用属性和事件/方法。例如: 1) 常用属性:
? 标题(caption):指定对象的标题。
? 数据源(datasource):指定与对象建立的数据。 ? 左起始位(left):指定对象的左边的起始位置。 ? 上起始位(top):指定对象的顶端的起始位置。 ? 宽度(width):指定对象的宽度。 ? 高度(height):指定对象的高度。 ? 值(value):指定对象的当前取值。 ? 名称(name):指定对象的名字。 2) 常用的事件/方法:
? Click:单击鼠标左按钮事件。 ? Dblclick:双击鼠标左按钮事件。
? Setfocus:焦点移动到对象时发生的事件。 ? Lostfocus:焦点从对象上一开时发生的事件。
? Change:改变值事件。当用键盘或鼠标改变控件的值时发生。 ? Load:当加载窗体时发生的事件。 三、实验内容与步骤 (一)实验内容
1.高等院校学生补考管理系统业务需求描述 2.设计数据库
根据上述功能结构,结合实验二的数据库设计,选择VFP作为开发工具,完成系统菜单,录入补考学生名单模块和打印补考成绩或打印补考学生名单模块的制作,并编译成可执行文件。
(二)实验步骤
1.步骤一,按照上述要求进行数据库和表的设计与实现 参考实验二的操作步骤,建立如下表: 院系信息表:Department(deptID, deptName)
班级信息表:Class(className,studentNum,deptID) 课程信息表:Course(courseID,courseName,deptID)
学生信息表:Student(studentID,studentName,className) 补考记录表:Bk_stud(xn,xq,studentID,courseID,reason,score)
补考标志表:EXAM_FLAG(BKBH,BZMC)
2.步骤二,选择VFP作为开发工具,进行系统实现 (1) 用Microsoft Visual FoxPro实现系统。 1) 创建工作目录。
? 在磁盘上建立一个工作目录:本系统的工作目录名称为bkgl,在bkgl目录内建五个子目录,分别为:data,用来保存数据库、表及其相关文件;forms,用来保存表单文件;prgs,用来保存程序文件;menus,用来保存菜单文件;reports,用来保存报表文件。
? 设置默认目录:单击系统菜单“工具”->“选项”->“文件位置”->“默认目录”,选择“使用默认目录”,输入(或选择)工作目录bkgl作为默认目录。
2) 创建项目文件。单击菜单“文件”->“新建”,选择“项目”,单击“新建文件”大按钮,输入项目文件名称bkgl,单击“保存”,得到项目管理器bkgl。
3) 数据库操作
? 新建数据库:依次单击“数据”和“数据库”左侧的“+”,再单击“新建数据库”,指定数据库名称为bkxt和目标文件夹为data 。
? 使用数据库设计器新建表:在数据库设计器中点击右键,弹出快捷菜单,选择“新建表”,可以设置表的各种属性。
院系信息表:Department(deptID, deptName)
班级信息表:Class(className,studentNum,deptID) 课程信息表:Course(courseID,courseName,deptID)
学生信息表:Student(studentID,studentName,className) 补考记录表:Bk_stud(xn,xq,studentID,courseID,reason,score) 4) 创建表单。单击“文档”标签左侧的“+”,可以操作表单和报表文件。 ? 建立表单:使用表单设计器来创建表单,单击文档左侧的“+”,单击“表单”->“新建”->“新建表单”。
? 添加控件:在本表单中需要添加Label控件、Grid控件、Combo控件、Shape控件、Command控件、Spinner控件、Optiongroup控件。现在我们将我们所需要的控件加入到窗体里,单击表单控件工具栏上所需要的控件按钮,按住鼠标左键拖出一个矩形框,释放鼠标。添加完所有控件之后,调整控件的位置和尺寸。
? 设置数据源:右键单击表单空白处,调出其快捷菜单,选择“数据环境”,添加数据表。
? 设置表单的属性和事件:右键单击表单上没有控件的区域,选择“属性”。 ? 使用表格grid控件显示bk_stud及相关表的内容:单击表单控件工具栏中的表格控件,在表单设计区中合适位置上拖放鼠标,即可得到一个grid控件,名称为grid1;右键单击grid1,选择“属性”栏。
? 用标签控件显示提示信息
? 使用combo控件完成学号、课程名称、院系名称等数据输入,用文本框完成补考原因的录入
? 学年和学期是根据系统当前日期自动给出的,不允许用户修改。用shape控件作为两个控制的背景,将其从感官上独立出来
? “确认输入”按钮(向表bk_stud添加新记录) ? “删除”按钮的click()事件 ? “恢复”按钮的click()事件
? “推出”按钮的click()事件
? 点击系统菜单“表单->执行表单”
? 将设计完成的表单保存在forms\\input_md.scx中。 5) 设计报表
? 单击“文档”左侧的“+”,选择“报表”标签,点击“新建”按钮,选择“新建报表”,利用该报表设计器。
? 设置数据源:右键点击报表设计器,在快捷菜单中点击“数据环境”。添加表bk_stud和student,设置表间关系
? 设置标题:先点击“报表控件”工具栏上的“标签”按钮,在标题区内点击出现闪烁的光标,在光标处开始输入标题名“补考学生一览表”。我们可以为该标题设置字体属性,先选中“补考学生一览表”标签,再在系统菜单中选择“格式”->“字体”,在弹出的字体对话框中选择合适的字体样式和字体的大小。接着还可以进行版面设置,如选择“格式->对其->水平居中”。
? 设置报表的页表头:设置报表的页表头与上面设置报表标题的方法是一样的。在页标头中添加标签,分别输入“学号”、“姓名”、“班级”、“补考课程”、“补考原因”。
? 将显示在报表中的字段从“数据环境”中逐个拖到细节带区 ? 报表的预览:在界面里点右键,出现快捷菜单,选择“预览” ? 将设计完成的报表保存在report\\bk_stud.frx中。 6)创建菜单
? 打开“菜单设计器”窗口:在项目管理器中点击“其他”左侧的“+”,选择“菜单”,然后点击“新建”按钮,在“新建菜单对话框”中点击“菜单”按钮,打开“菜单设计器”。
? 创建主菜参:在菜单设计器窗口,定义主菜单中各菜单的选项名,即在菜单名称里输入指定菜单标题和菜单项的名称。在菜单名称里分别输入“系统维护”、“数据录入”、“考场安排”、“查询打印”、“推出系统”
? 设计子菜单:在“菜单设计器”窗口中,选择主菜单项中的“数据录入”,在“结果”下拉列表框中选中“子菜单”,再单击其右侧“创建”按钮,进入“菜单设计器”子菜单编辑窗口;在“菜单设计器”子菜单编辑窗口,定义“数据录入”菜单项的子菜单选项名“补考名单录入”和“补考成绩录入”,依次类推,创建所有子菜单。单击“菜单级”下拉列表框并选择“菜单栏”,返回上一级菜单,即主菜单。
? 为各个子菜单项指定任务:在“菜单设计器”编辑窗口中,在“结果”下拉列表框中选中“命令”,在对应的“选项”框中键入内容。例如,对应菜单项“补考名单录入”,键入“do form forms\\input_md.scx”,对应“打印补考学生名单”,键入“report form reports\\bk_stud.frx to print prom prev”;对应“退出”菜单项,在“结果”下拉列表框中选中“过程”,然后单击其右侧的“创建”按钮,输入以下代码:CLEATE EVENTS RETURN
? 保存菜单定义:把设计完成的菜单文件保存在menus\\bkgl.mnx中。 ? 生成菜单程序:菜单设计完成后,点击系统菜单上的“菜单->生成”,生成bkgl.mpr文件后,便可以在该项目管理器中运行该文件。从“菜单”中选择“bkgl.mpr”,单击“运行”。
7) 编辑主程序。
? 在项目管理器中,点击“代码”左侧的“+”,选择“程序”,再单击“新
建”按钮,进入程序编辑界面,输入以下代码
PUSH MENU_MSYSMENU &&将系统菜单压栈 DO menus\\bkxt.mpr &&启动用户菜单系统 READ EVENTS &&激活事件触发器
POP MENU_MSYSMENU TO MASTER &&从栈中弹出系统菜单 SET SYSMENU TO DEFAULT &&恢复系统菜单项 ? 保存该文件到prgs\\main.prg。
8)系统的运行。在项目管理器中,选择“其他”->“菜单”->“bkgl”,再单击“运行”进入补考系统运行界面,在补考管理系统的菜单中点击“数据录入”->“补考名单录入”,点击“打印补考成绩”菜单。
9)系统编译。
? 设置主文件:在项目管理器中,找到main.prg 文件,单击该文件名。然后在菜单中选择“项目”->“设置主文件”,该文件是项目执行的起点。
? 连编系统:单击项目管理器的“连编”按钮,选择“连编可执行文件”,单击“确定”按钮,即可生成bkgl.exe文件。
10)创建安装文件。
在“工具”菜单中,选择“向导”->“安装”,根据向导的提示操作,即可生成安装文件。安装文件将项目目录下的文件打包,并附带VFP运行时刻库。
四、实验报告的要求
(1)每个学生独立完成本次实验,提交可运行的系统。
(2)写一份实验总结,描述在编辑过程中遇到的主要问题及解决方法。 五、问题思考
(1)你还了解哪些开发工具?它们在应用中各有什么特点? (2)你能提出一个建立B/S结构的应用程序的开发环境吗?