第8章 数据库应用系统设计实例习题解答
更新时间:2023-12-16 00:29:01 阅读量: 教育文库 文档下载
- 绝世小仙医 第8章推荐度:
- 相关推荐
第8章 数据库应用系统设计实例
习题解答
一. 简答题
1、 试述瀑布模型和原型模型的优缺点? 瀑布模型(Waterfall Model)
1970年WinSTon Royce提出了著名的\瀑布模型\,直到80年代早期,它一直是唯一被广泛采用的软件开发模型。
瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
在瀑布模型中,软件开发的各项活动严格按照线性方式进行,当前活动接受上一项活动的工作结果,实施完成所需的工作内容。当前活动的工作结果需要进行验证,如果验证通过,则该结果作为下一项活动的输入,继续进行下一项活动,否则返回修改。
瀑布模型强调文档的作用,并要求每个阶段都要仔细验证。但是,这种模型的线性过程太理想化,已不再适合现代的软件开发模式,几乎被业界抛弃,其主要问题在于:
(1) 各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量;
(2) 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险;
(3) 早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。
快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。
显然,快速原型方法可以克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险,具有显著的效果。
快速原型的关键在于尽可能快速地建造出软件原型,一旦确定了客户的真正需求,所建造的原型将被丢弃。因此,原型系统的内部结构并不重要,重要的是必须迅速建立原型,随之迅速修改原型,以反映客户的需求。
瀑布模型采用文档驱动,系统可能不满足客户的需求。
快速原型模型关注满足客户需求,可能导致系统设计差、效率低,难于维护。
2、 简述客户/服务器应用系统的开发过程?
1) 对应用系统进行分析,完成客户和服务器的功能划分 2) 架设服务器
3) 选择客户端开发工具和客户服务器连接中间件 4) 开发应用系统
164
3、 简述浏览器/服务器应用系统的开发过程? 1) 规划Web站点 2) 安装Web服务器 3) 构建或虚拟网络环境 4) 开发Web站点 5) 发布Web站点 二.选择题
1、软件工程的出现主要是由于 C 。
(A)程序方法学的影响 (B)其他工程科学影响 (C)软件危机的出现 (D)计算机的发展
2、需求分析系统分析员和用户共同确定软件的功能和限制,提出 A 、 B 、 C 。 (A)可行性研究报告 (B)数据字典 (C)系统功能说明书 (D)实施方案
3、瀑布模型是一种 B 。
(A)软件维护模型 (B)软件生命期模型 (C)软件生命周期 (D)程序设计方法学
4、软件测试的目的是 B 。
(A)改正错误 (B)发现错误 (C)推断错误原因 (D)修改程序
5、数据流图是用于 C 阶段的工具? (A)可行性分析 (B)详细设计 (C)需求分析 (D)程序编码
6、软件生命周期中,用户参与主要在 A 。 (A)软件定义期 (B)软件开发期
(C)软件维护期 (D)整个软件生命周期过程中
7、在软件工程方法中,常使用的两种软件开发模型是瀑布模型和原型模型,这两者的差别和联系有: A 。
(1)前提和假设不同 (2)方法相互补充 (3)方法相互排斥 (4)前提和假设相同
试给出最正确的组合结论选择
165
(A) (1)、(2) (B) (4)、(3) (C) (4)、(2) (D) (1)、(3)
三.应用题
1、 参考本章宾馆信息管理系统的分析和设计过程,分析并设计一个高校人事管理系统,具备人员入校
(毕业分配、调入等)、出校(调出、退体等)、基本情况查询和报表打印等功能。
毕业生 信息录入 审核 调入人员 查询 人事处 打印 退休处理 人事档案 退休人员 调离 调离人员
职工号 姓名 性别 民族 出生日期 身份证号 籍贯 政治面貌 毕业院校 所学专业 毕业时间 最高学历 最高学位 调入时间 调离时间 退休时间
char(10) varchar(20) char(2) varchar(20) datetime char(18) varchar(20) varchar(20) varchar(50) varchar(50) datetime varchar(20) varchar(20) datetime datetime datetime 166
not null primary key not null not null 2、 参考本章图书网上销售系统的分析和设计过程,分析并设计一个全校选修课报名管理系统。
教师号 任课老师 password 1 n 教 师 指 导 学生 所属系 M n 讲 授 联系方式 选 修 N m 课程号 选修课 课程名 教师号 已招人数 课程介绍 课时 任课老师 学分 所属系 限招人数
1) 管理员(admin):在admin表中存放管理员信息。
2)课程信息表(class):在class表中存放与课程内容相关的信息。 3)选课记录表(grade):在grade表中存储每一名学生选课记录。 4)学生信息表(student):在student表中存放学生个人信息。 5)教师表(teacher):在teacher表中存放教师个人信息。
学号 学生名 password 班级 系别 结束时间 开课时间 公共函数
创建数据库连接(Connection):
本系统先建立一个连接数据库的函数文件,然后再调用此文件,以方便在各个页面中的实现对数据库的访问。
链接用以保持一些关于正在访问的数据的一些状态信息,以及链接者信息。ASP文件中如果要访问数据,必须首先创建与数据库的链接的函数,其语法如下:
167
Function GetSQLServerConnection( Computer, UserID, Password, Db ) Dim Params, conn
Set GetSQLServerConnection = Nothing Params = \
Params = Params & \ Params = Params & \ Params = Params & \ Params = Params & \
Set conn = Server.CreateObject(\ conn.Open Params
Set GetSQLServerConnection = conn End Function
此函数创建了链接对象Conn,打开链接,为“Params”。
创建数据对象(RecordSet)
ADO中的数据对象通常保存的是查询结果。RecordSet是ADO中最复杂的对象,有许多属性和方法。RecordSet保存的是一行行的记录,并标有一个当前记录。以下是创建函数: Function GetSQLServerRecordset( conn, source ) Dim rs
Set rs = Server.CreateObject(\ rs.Open source, conn, 2, 2
Set GetSQLServerRecordset = rs End Function
Function GetSQLServerStaticRecordset( conn, source ) Dim rs
Set rs = Server.CreateObject(\ rs.Open source, conn, 3, 2
Set GetSQLServerStaticRecordset = rs End Function 其中 set rs=server.CreateObject(\这条语句创建了对象RecordSet, rs是一个字串,代表一条标准的SQL语句。例如:set rs=conn.Execute(\其中Conn是先前创建的链接对象,这条语句执行后,对象RecordSet中就保存了表 grade中的所有记录。
操作数据库
通过调用链接对象的Execute方法来将查询结果返回给一个数据对象或进行添加、删除等操作。例如:
sql=\(“学号”) values('\\学号\
168
conn.execute(sql) ********/执行添加操作
sql=\“学号”=\学号\conn.execute(sql) ********/执行删除操作
关闭数据对象和链接对象
在使用了ADO对象之后要关闭它,因为它使用了一定的服务器资源。通过调用函数文件实现关闭,然后再释放它。
Function GetSQLServerRs( Computer, UserID, Password, Db, source, Cursor ) Dim conn, rs
On Error Resume Next Set GetSQLServerRs = Nothing
Set conn = GetSQLServerConnection( Computer, UserID, Password, Db ) If conn Is Nothing Then Exit Function
Set rs = Server.CreateObject(\ If Err.Number <> 0 Then Exit Function rs.Open source, conn, Cursor, 2 If Err.Number <> 0 Then Exit Function Set GetSQLServerRs = rs
End Function **********/关闭创建的数据对象及链接对象/*********
模块详解
登录分析:
<% if (Request(\ (request(\ response.write\请输入密码或用户名\else If Request(\
Set conn = GetSQLServerConnection( \
Set rs = GetSQLServerStaticRecordset(conn, \ ***/如果当学生用户输入相关登录身份时,连接数据库,并打开student表 /*** <% i=0
while not (rs.eof or i=1) ***/如果该身份在记录中存在,将获得的“id”传递给打开的记录集rs(2),
if rs(2)=request(\ 并且与该记录集中的“password”字段对应的内容做比较/*** if request(\ end if
rs.movenext
169
wend
if i=1 then
rs.moveprevious ***/如果用户名与密码相匹配,那么显示“id欢迎你的到来”/*** response.Write request(\
response.write \欢迎你的到来
\session(\ ***/并且把rs(2)中对应的内容传递给对象(session(“id”)),
在下面页面跳转中该变量不会改变。/***
Else response.write\用户名错误或密码错误\ ***/否则登录失败/***
end if %>
开课情况与选课内容分析:
<% if rs2.eof<>true then
sql=\学号='\ set rs5 =server.CreateObject(\
rs5.open sql,conn,1,1 ***/根据学生登录身份,打开该学生的选课记录表/*** i=rs5.recordcount
if i>=5 then %> ***/判断记录集是否超过5条/***
<% else if rs3.eof=true then ***/否则,有权行选课操作。但需要有以下几个约束条件。
当前所选的课程号不能与记录集中的相同。/***
if date>=rs(2) then ***/当前选课时间要符合开课时间和结束选课时间的要求。
/***
if rs(0) rs3.addnew ***/若满足以上几个约束条件,那么从rs(选课表)中获取相关课程 rs3(2)=rs2(0) 内容添加到rs3记录集中(学生选课记录表)。/*** rs3(1)=request(\课程号\ ……………. ……………. rs3(4)=rs2(4) rs3.update rs(0)=rs(0)+1 ***/在学生选课成功后,对于选课表中的“实招人数”一栏要做相 rs.update 应的修改。/*** response.write \选课成功 170 response.write \你已选了\ 课记录。/*** response.Write\ response.write \门课 Else %> <% end if Else response.write \你已经选了这门课返\ end if end if end if %> 选课记录: <% For i=0 to rs3.Fields.Count-1 Response.Write \ Next while not rs3.eof ***/根据session(\的传递,在学生选课记录表中找出对应的 response.Write \ 记录集,并通过循环的方式在页面中显示数据库的内容: response.Write rs3(0) 学生名,课程名,课程号,班级,系别等/*** …………………. …………………. …………………. 171 response.Write \ response.Write rs3(4) response.Write \ %> rs3.movenext wend %> 学生报名管理: <% dim stu stu=\student.学生名, class.课程名, student.班级,student.系别 FROM student INNER JOIN grade ON student.学号 = grade.学号 INNER JOIN class ON grade.课程号 = class.课程号 WHERE class.任课老师='\ Set conn = GetSQLServerConnection( \ Set rs = GetSQLServerStaticRecordset(conn, stu) if rs.eof then response.write \华文行楷>\ response.Write \对不起暂时还没有学生选你的课程如有意见请跟管理员联系\ response.write \ else session(\%> ***/通过student表中的学号与grade表中的学号连接使得student表与grade表相连,同时grade表中的课程号与class表中的课程号连接使得grade表与class表相连。然后,又通过session的变量“teacher”传递登录教师名。打开符合上述几个条件的记录集,如果找不到与上述几条相符的记录集,那么显示“对不起暂时还没有学生选你的课程如有意见请跟管理员联系”/*** <% For i=0 to rs.Fields.Count-1 Response.Write \ Next Response.Write \【删除此学生】【打印】\ while not rs.eof response.Write \ ***/ 用循环的方式将对应的记集在页面中显示出来,并且在 response.Write rs(0) 每一条记录后增加【删除此学生】与【打印】的链接/*** ……………… ……………… 172 response.Write rs(3) response.Write \ %> rs.movenext wend %> 【打印】 此功能本系统中巧妙的运用了ASP中调用word打印语句实现打印功能。这一设计简单又有效。 <% dim stu stu=\学生名, class.课程名, student.班级,student.系别 FROM student INNER JOIN grade ON student.学号 = grade.学号 INNER JOIN class ON grade.课程号 = class.课程号 WHERE class.任课老师='\ Set conn = GetSQLServerConnection( \Set rs = GetSQLServerStaticRecordset(conn, stu) %> <% Response.ContentType =\ response.AddHeader \%> ***/通过用SQL内联语句找出符合打印的的记录集,然后调用ASP中通过连接word打印的语句准备打印。/*** <% For i=0 to rs.Fields.Count-1 Response.Write \ Next while not rs.eof response.Write \ response.Write rs(0) ………………….. ***/在WORD页面中,通过用循环打印的方式,将符合条件的记录 ………………….. 集打印出来/*** ………………….. response.Write \ %> <% rs.movenext wend 173 %> 【删除】 主要用到request对象的session数据集合来获取searchuser与class的值。这里涉及到三张表:student,class,grade。通过rs.delete,rs.update达到实现效果。 主要代码与解释: <% dim stu stu=\grade.* FROM grade INNER JOIN student ON student.学号 = grade.学号 INNER JOIN class ON grade.课程号= class.课程号 WHERE student.学生名= '\课程名 = '\ Set conn = GetSQLServerConnection( \ Set rs = GetSQLServerStaticRecordset(conn, stu) if not rs.eof then rs.delete rs.update %> ***/通过对象session中的变量searchuser与class传递,找到合乎该条件的记录,如果存在,那么就用rs.delete删除,接着用rs.update刷新数据库中的记录集。完成该项删除工作。/*** 课程管理: 本系统合理安排选修课课程是学生能选好选课的前期。这一操作由管理员来担任。管理员能动态开设选修课,根据学生选课意向可以增设受学生青睐的课程,对一些学生感兴趣的课程,由于报名人数众多,可以适当的调整上课地点,以满足广大学生的需要。而对于那些在学生中没多大“市场”的课程,为节省教学设备资源,可以换用小教室开设,如此一来既放弃小数有热情学习该课程的学生,又能将大场地给予对其它课程有热情的更多的学生。 课程管理首页中部分主要代码: <% dim stu stu=\ Set conn = GetSQLServerConnection( \Set rs = GetSQLServerStaticRecordset(conn, stu) %> ***/打开class表,下面所有操作需要在这表中进行/***
\ ***/然后,显示“选课成功”,并提示你已有几条选
\ response.write \返回\ else %> <% end if else %> ***/否则一一提示没能成功选课的理由,让用户容易明白失败的原因,这在 script language=\ 代码中能直接反应,这里不做解释/*** MsgBox \对不起,该课程已报满!\ history.back() <% end if
174
***/该页面上提供了直接【增加课程】功能,只要在上面点击,就连接到【增加课程】的操作页面上,操作十分直观。/*** <%
For i=0 to rs.Fields.Count-1
Response.Write \ Next
Response.Write \【删除】【删除】\while not rs.eof
response.Write \ For i=0 to rs.Fields.Count-1 response.Write \response.Write rs(i) response.Write \next %>
***/如果打开的class表中有记录,那么先循环打印该表中所有的字段作为表头,按行从左到右打印。表中的字段打印完必后,再在添加上【删除】与【修改】完善表头。/***
<%
rs.movenext wend %>
***/然后,在按数据库表中的对应内容同样通过循环的方式打印,并且在每一行中添加【删除】【修改】,对此【删除】【修改】使用链接,使用户操作极其容易。/*** 【增加】
本页面在设计时对于添加的像“任课老师”、“教师号”均是动态的。可以通过下拉菜单来选择可选的任课老师和对应的教师号,这样既提高操作速度,又不会造成数据错误。 <% dim stu,stu2 Set conn = GetSQLServerConnection( \ stu=\任课老师 FROM teacher\ Set rs = GetSQLServerStaticRecordset(conn, stu) stu2=\教师号 FROM teacher\ Set rs2 = GetSQLServerStaticRecordset(conn, stu2) %>
***/打开含有存储任课老师和教师号的表:teacher, 以便在下拉菜单中做选择。/***
正在阅读:
第8章 数据库应用系统设计实例习题解答12-16
北师大版七年级上第三次月考数学试卷06-15
前任攻略插曲02-13
20周年校庆活动策划方案09-20
质量管理体系八大原则与日常工作关系07-24
2010gct真题答案附数学答案解析10-09
主动作为 争做“四讲四有”的合格党员02-23
施工现场安全生产监督管理检查要点05-13
红豇豆作文450字07-14
思想再解放要坚守哪些底线09-02
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 应用系统
- 习题
- 实例
- 解答
- 数据库
- 设计
- 2016年商场元旦促销活动方案
- 事业单位职工食堂费用核算及管理
- 呼市2011年中等职业教育技能大赛比赛方案
- 高中英语作文范文:为什么中国大量使用自行车
- 代沟是指两代人之间在价值观念
- 《机械基础》汇总
- 2014-2020年中国建筑陶瓷市场调研与发展战略研究报告 - 图文
- 2014年高考江苏省英语真题(详细答案及解析)
- 简单语文不简单
- B4U5Reading课文解析
- 苏教版四年级上册科学教学计划
- 哈佛幸福课中文字幕笔记 - 第六讲
- MT4平台大字详细设置方法
- 潜心钻研业务,精心打造石陵一中高效课堂 - 图文
- 全国每分钟有6人被诊断为恶性肿瘤 肺癌居首位
- 医院会计与财务管理期中考试试题2017
- 学年苏教版高中生物选修1综合测评一-生物知识点总结
- 剪纸手工制作大赛活动实施方案
- 带式输送机传动装置中的一级圆柱齿轮减速器的设计
- 基于Android的俄罗斯方块的设计与实现