师:同学们,今天我们来学习高一年级教科版信息技术第三单元第四章信息系统的数据处理。每章学习都以项目探究方式开展,本章项目是图书管理信息系统,用html做界面,Python语言制作信息处理程序,还加入access数据库管理系统进行数据管理。这是html界面、Python界面和access界面。日常生活中,人们常把复杂工作分解为若干小步骤完成,信息系统的构建也是如此。通过本节学习,希望大家能描述信息系统的数据处理流程,理解系统通过程序实施自动化数据处理的方式。信息系统的数据处理包括输入、查询、统计等过程。本节围绕借阅读书功能设计项目展开,了解信息系统收集用户信息、依据输入信息处理信息的过程。根据数据处理过程,将借阅读书功能设计项目分为三个任务:用户登录功能设计、图书查询功能设计和图书预约功能设计。

  首先看用户登录界面。大家思考一下,用户登录界面需收集哪些用户信息?这些信息如何被信息系统验证?我们把这个任务分解为两个小任务:任务一,设计和完善登录程序;任务二,编写用户登录判断程序。打开教材第95页,完成流程图。

  3.4.1用户登录流程图:信息系统要根据用户输入信息判断用户是否合法。若为合法用户,进入下一流程;若无此用户,则提示无此用户;若用户名正确但密码错误,则提示密码错误。所以完善流程图需填入两项内容:一、用户名匹配;二、密码匹配。具体代码详见教材第95 - 96页。代码核心是判断用户合法性,在数据库中查找,将查询结果放到list中。若查询结果有内容,说明用户名存在,接着判断查询结果中的密码和输入密码是否一致。若密码匹配,保存用户编号,跳转到新页面;若密码不一致,则提示用户密码输入错误。若数据库中未找到用户输入的用户名,则提示用户不存在。

  下面介绍一个新知识点,session可译为会话,用于保存用户状态值。用户打开浏览器产生session后,服务器为用户保存该session,直到session失效或用户关闭浏览器。在Web开发中,常利用session进行跨页面参数传递。以用户名信息传递为例,用户打开浏览器输入用户名并提交登录时,服务器产生并保存session变量。此后需用用户信息的网页,调用保存的session即可。

  举个例子,第一个用户登录成功时,用以下代码定义session变量,保存用户编号student number;第二个例子,在需使用用户编号的页面,用以下代码调用session变量,该变量值常作为数据库查询关键字。

  第二个知识点,查询命令。select命令用于在数据表中查询记录,基本格式为select字段1, 字段2 from表名where条件。大家试试从学生表中查询年龄大于16岁的学生的学号、姓名、性别等信息,相应语句代码为:select学号, 姓名, 性别from学生表where年龄 > 16。注意,查询语句中用逗号代替中文顿号,where子句为可选项。select语句不含where子句时,表示选择所有记录。若where子句中有多个条件,需用and或or连接。and表示同时满足两端条件,or表示满足任意一端条件。

  大家试试查询学生表中年龄小于16岁或性别为男的学生信息,相应语句代码为:select * from学生表where年龄 < 16 or性别 = '男'。下面看信息系统登录过程,系统对比数据库中的哪些信息。

  我们的系统以网页显示,该界面是图书管理系统显示界面,背后通过程序连接access数据库进行更新。现在看到数据库后台的三张表,其中student表记录学生个人信息,学号是登录名,还能看到学生密码。比如李晓峰可用学号001和密码001登录,否则会显示流程图中的不同提示。我先输入学号1,故意输错密码,点击登录显示用户不存在;输入001,故意输错密码为1,显示密码错误;输入001且密码为001时,成功登录图书管理系统,显示“欢迎您,李晓峰”。简单的登录功能背后就有很多数据库交互和判断过程。图书管理系统每个链接点击时,系统都会与数据库交互,返回结果并以适当方式呈现,每个链接都类似刚才定义的流程,只是返回结果和呈现方式不同,这就是数据处理过程。

  另外,大家留意到没,刚才展示的数据表中,学号和密码以明文存储,尤其是密码,打开数据表就能看到每位同学密码,这种方式不合规。至于如何保证密码不外泄及用密文存储,大家可复习必修一关于密码的章节找答案。

  学习完用户登录功能设计,大家能描述用户登录功能中数据输入和处理的流程吗?接下来学习图书查询功能设计。信息系统处理用户登录事务时,不仅要验证用户合法性,还要将关键信息传递到新页面,为用户提供个性化信息服务。思考一下,如何利用这些关键信息实现系统自动化查询?可根据用户登录信息自动查询借阅信息,也可根据输入数据查询图书。

  根据用户登录信息自动查询借阅信息,分为四个步骤:第一,获取从登录页面传递的session值;第二,建立数据库连接;第三,根据学号查询学生的图书借阅记录;第四,返回显示结果。第一步又用到session。

  再研究根据输入数据查询图书。学生借阅图书前要查阅图书信息,查询时常输入多个条件准确查找图书。这个过程总结为如下流程图:单击按钮查找图书,获取书名、出版时间等查询条件。根据输入的书名、出版时间查找图书,具体代码参考书上第98页。

  解释一下第三个步骤,根据输入的书名、出版时间查找图书,前提是图书数量不为0。若书名为空,出版时间不为空,则根据出版时间查找;若书名不为空,出版时间为空,则根据书名查找;若书名和出版时间都不为空,就结合书名和出版时间查找。

  刚才代码中有很多百分号,下面介绍新知识点,模糊查询。模糊查询指在SQL查询语句中用特殊符号代替0个、1个或多个任意字符,查找部分信息准确、部分不准确的数据。百分号和下划线是SQL语言特殊符号,百分号表示0个或任意多个字符,下划线表示一个任意字符。

  比如在查询语句中用通配符表示姓名字段的值,“李%”表示所有姓李的学生,“%李%”表示姓名中含有“李”的所有同学。大家想想,用通配符表示姓名字段的值时,“李_”表示什么?李明、李晓峰、陈李强这三个姓名能否通过上述通配符找出来?如刚才所说,“李_”只能代表姓李且名字只有两个字的学生,所以只能找到李明同学。为验证查询语句是否按预期工作,可做个有趣实验,人为改变查询条件,看查询结果。

  如屏幕所示,我以李晓峰同学身份登录,点击借阅信息查询,返回的应是李同学目前借阅的所有书本列表。怎么知道返回信息与数据库存储信息一致呢?回到后台,李晓峰同学学号是001,通过“select * from borrow where学号 = 001”语句,从boro表中找到学号为001的所有数据,能看到有三条,说明返回数据应显示这三本书。为验证select语句是否有效,还可做个实验。找到原select语句语法“select * from borrow where学号 = 001”,看到Borrow表中003号同学借书最多,尝试将查询对象改为003号同学。先屏蔽后面程序部分,在前面加上“003”字样保存,回到借书信息查询按钮点击,就能看到显示的是003号同学的6本书。

  学习完图书查询功能设计,大家能描述图书查询功能中数据输入和数据处理的流程吗?接下来学习借阅读书功能设计。通常,对某本图书,每个用户一次只能借一本,用户成功预约图书时,图书表中图书数量减少一本,图书数量为0时无法继续预约。思考一下,为高效预约图书,如何让系统实时更新数据?可从两方面着手:一、预约图书并更新可借阅图书数量;二、撤销预约功能。

  设计预约图书并更新可借阅图书数量,分为五个步骤:第一,连接数据库创建游标;第二,获取预约图书的ISBN号;第三,更新图书数量;第四,将预约信息插入借阅表;第五,关闭游标和链接。具体代码参考教材第99页。下面看更新图书数量的格式:update表名set列名where条件,where条件为可选项。当where条件存在时,update将修改指定表中符合条件的记录;当where条件不存在时,将修改指定表中所有数据。

  由于各种原因,用户发现已成功预约的图书不是自己需要的,此时需取消预约,这是预约操作的逆操作,即图书表中图书数量要增加一,且借阅表中的记录需要删除。大家可参考预约程序编写取消预约的相关代码。

  看撤销命令的格式:delete from表名where条件。当where条件存在时,DELETE将修改指定表中符合条件的记录;当where条件不存在时,将修改指定表中所有数据。

  学习完图书预约功能设计,大家能描述图书借阅和取消功能中的数据输入和数据处理流程吗?最后总结一下。本节课内容,解决问题时可参照流程图对照运行结果,久而久之可印证自身判断,增强学习信心。程序通过SQL语句向数据库发送指令,有志于复杂系统开发的同学,掌握好SQL语句很重要。课堂到此结束,谢谢大家,再见。

《信息技术 必修2 3.4信息系统的数据处理 逐字稿-3,693字 第5版》.docx
将本文下载保存,方便收藏和打印
导出文档