内容正文:
3.3 数据与系统
【学习目标】
1.了解文件和数据库文件的概念。
2.了解GUI的基本概念,学会设计简单的GUI。
3.学会根据任务需求,选用恰当的软件处理数据。
4.体验用不同工具管理数据的过程,简单了解数据库管理系统和数据库系统的基本概念。
【知识框架】
知识点1:图形用户界面
图形用户界面(简称 )又称图形接口,是指采用 显示的计算机操作用户界面。
是实现图形用户界面的模块,可以创建矩形容器(Frame)、文本框(Entry)、命令按钮(Button)、文本标签(Label)等交互对象。
现代程序设计中,用 建立计算机世界的实体与客观世界的实体相一致的映射关系,用对象 的方式进行问题解决。
案例1:“旅行线路”小程序,实现记录计划出行的旅行线路。现在,他希望在这一系统中添加新的旅行线路,并可以查询到已经输入系统的线路。
请修改程序,使得程序运行后可以在“添加线路按钮”下方添加“查询线路”按钮。
from tkinter import *
root = () # 创建一个tkinter窗口
root.title("添加线路") # 设置窗口标题
root.geometry('600x100') # 设置窗口大小
root.resizable(0,0) # 禁止调整窗口大小
var=StringVar() # 定义StringVar()类型
def intomap(): # Button按钮激发函数
c= ("旅行线路.txt",'a+') # 以追加模式打开文件
c.write(var.get()+"
") # 在文件末尾添加text里的内容
c.close # 关闭文件
# 在窗口上建一个文本标签
Label(root, text='请输入线路', font=('Arial', 10)).pack()
# 在窗口上建一个文本框
Entry(root,textvariable=var,width=550).pack()
# 在窗口上建一个Button按钮
Button(root, text="添加线路", command = ,relief="solid",width=10).pack()
root.mainloop() # 进入事件(消息)循环
案例实践:更新旅游线路
游客对一条旅行线路很感兴趣,希望将它添加到系统中。
日照三日游:日照万平口——海洋公园——竹洞天——五莲山——莒国古城,人均消费488元。
请同学们打开自己机器上的“配套资源”文件夹,里面的“添加线路.py”程序是用来实现将数据添加到“旅行线路.txt”文件中的功能。根据提示运行该程序并把新的旅行线路情况添加到文件中,完成后再次打开“旅行线路.txt”,查看文件内容。
知识点2:文件
文件是存储在外存储器设备中的 的集合。
计算机中的存储器分为 和 ,其中内存储器中还有ROM( )和RAM( )。我们一般手上的U盘或者移动硬盘都属于 。
知识点3:Pythone读写文本文件
在Python中,用 函数将外存储器中的文本文件打开,用write方法将内存储器中的数据存到外存储器文件中。文件操作结束时要用 方法关闭文件。
Python还有可以读取电子文档和电子表格等类型文件的模块,可以方便的建立起不同工具之间的联系。
1.PyPDF2:用于读取和操作PDF文件
2.pdfplumber:适用于从PDF中提取文本和表格,尤其是处理扫描的PDF文档。
3.PyMuPDF (fitz):一个功能强大的PDF处理库,可以处理文本和图像。
4.python-docx:用于读取和写入Microsoft Word (.docx)文件。
5,.pandas:与openpyxl或xlrd结合使用,用于读取Excel文件(.xlsx和.xls)。
6.openpyxl:专门用于读取和写入Excel 2010 xlsx/xlsm/xltx/xltm文件。
7.xlrd:用于读取旧版的Excel文件(.xls)。注意:xlrd 从版本2.0.0开始不再支持.xlsx文件。
知识点4:数据库
数据库是以一定的 存储在计算机中的 的数据集合。
在数据库中,数据是以 的形式组织存储的,称为表。
字段:表中的 称为一个字段对应实体的一个 ,每个字段都有一个名字,称为 。
记录:表中的 称为一条记录对应一个 ,保存有关实体属性的数据。
可以通过两表中的两个字段建立表间的关系。通常该字段具有 。
知识点5:数据库管理系统
定义、创建、维护数据库的工具叫 ,允许用户 和 数据库中的数据。
常见的数据库管理系统有Sybase、ORACLE、MySQL、Access等。
在Access软件中,可以通过查询面板查询数据,在查询过程中还可以多表联动查询。此时,意味着表和表之间产生了关系。
能 数据库的称之为 ,普通用户需要借助 来操作数据。
知识点6:数据库系统
数据库系统是由数据库、数据库管理系统、数据库应用系统、数据库管理员和用户组成的存储、管理、处理和维护数据的系统。
数据库主要用于 ,需要足够大的内存储器和外存储器等硬件平台的支持。软件部分除了操作系统和数据库管理系统外,还包括支持特定应用环境开发的软件工具以及开发完成的数据库应用系统。
如:12306网站是一个大型数据库应用系统。
知识点7:访问Access数据库的一般步骤
建立与数据库的连接
根据需要
产生数据集据
访问数据集,处理数据
断开与数据库连接
数据更新到数据库
知识点8:数据库应用系统的设计
一般包括:系统总体结构设计、代码设计、数据库设计、输入输出设计、模块功能与处理过程设计等步骤,采用 的思路进行设计和实施。
【课后练习】
1.使用Access软件创建的“捐款信息”数据表,其设计视图的部分界面如图所示,下列说法正确的是( )
A.“姓名”字段可能存在重复的字段值
B.“200.00元”可是“捐款金额”字段的有效输入值
C.修改字段的数据类型,字段值不会改变
D.在该视图下删除“年龄”字段,可以通过“撤销”命令恢复
2.利用Python访问数据库一般可分为以下5个步骤,正确的顺序是( )
① 访问记录集,处理数据 ② 建立与数据库的连接
③ 断开与数据库的连接 ④ 根据需要产生记录集
⑤ 根据需要把处理好的数据更新到数据库中
A.②④①⑤③ B.④②①⑤③
C.②④①③⑤ D.④①②⑤③
3.分析以下代码,横线处的代码应是( )
import pygame
import sys
pygame.init( )
s_size = width, height = 450, 280
#定义屏幕的大小为450*280
screen=pygame.display.set_mode( )
A.s_size B.width C.height D.screen
4.在 Python程序中,下列语句的作用是( )
screen.fill(255,255,255))
A.在窗体上显示3个数字
B.表示窗体出现在屏幕上的坐标和大小
C.设置窗体的颜色
D.表示为窗体的三维坐标属性
5.小明开发“在线学习系统”,为学生提供在线选课和学习服务。使用Access软件设计该系统的数据库,部分界面如图所示。
下列说法正确的是( )
A.“在线学习系统”是数据库管理系统
B.在当前数据库中不能创建新的数据表
C.“学号”字段的数据类型不可能为“自动编号”
D.“考核”字段名称改为“是否通过”,该字段数据会丢失
6.根据疫情防控需要,某小区快递接收驿站要对快递包裹进行防疫抽检。使用Access软件设计“快递防疫抽检情况登记”数据表,如图所示。
下列关于“快递防疫抽检情况登记”数据表的描述,正确的是( )
A.在该视图下可以修改记录的“运送方式”字段值
B.只能将“序号”字段设置为主键字段
C.将数据表导出生成Excel表格,“是否消杀”字段值为“TRUE/FALSE”
D.“快递防疫抽检情况登记”数据表保存后,无法添加新纪录
7.用Access打开某数据库文件,部分界面如图所示:
下列说法正确的是( )
A.“info”是所打开数据库的名称
B.“Birthday”字段中不能输入“1982年2月16日”
C.若删除数据表中第1条记录,则后面所有记录的ID值自动发生调整
D.“eMail”字段的数据类型既可以设置为“文本”,也可以设置为“备注”
8.某Access数据表如图所示。
以下说法正确的是( )
A.“全球同步上映”字段的数据类型为“备注”
B.删除当前记录后,下条记录的“编号”字段值自动改为“8”
C.“编号”字段对应的值可以由系统自动产生,也可以由用户输入
D.“上映时间”字段对应的值可以输入“2016-08-05”,也可以输入“二O一六年八月五日”
9.小明使用Access软件设计“水果进货”数据表,存储如下图所示的“水果进货单”。
下列关于“水果进货”数据表的描述,正确的是( )
A.“水果进货”数据表中的字段数量一定为7个
B.“审核”列对应数据表中的字段类型只能设置为“文本”型
C.“水果编号”列对应数据表中的字段可以设置为主键
D.修改“水果进货”数据表中字段的名称,不会影响字段的值
10.某同学开发了一个“学生信息管理系统”,用Access软件创建了后台数据库“student.accdb”,数据库中的“info”表用来存储如图所示的学生基本信息数据。
下列关于该系统的描述中,正确的是( )
A.“student.accdb”是数据库系统
B.“info”表中学号字段的数据类型可以设置为“自动编号”
C.若在Access中删除了“info”表中张硕的出生日期值,可以通过撤销命令恢复
D.存放出生日期信息字段的数据类型可设置为“日期/时间”型,并可输入“2022-02-29”
11.有一Access数据表,表的结构如图1所示,在数据录入时截图如图2所示,下列说法正确的是( )
A.“ID”字段值一定是连续的
B.“生日”字段可以输入“1998-8-25”
C.“入学成绩”字段中可以输入“Pass”
D.删除第2条记录后,可以在该位置插入一条记录
12.由Access软件创建的一数据表,其表结构如图所示。
在录入数据时,下列操作符合要求的是( )
A.在“序号”字段中输入“1”
B.在“发行日期”字段中输入“20170218”
C.在“价格”字段中输入120
D.在“网上发行”字段中输入“不是”
13.某智能终端接上声音传感器,能接收拍手时发出的声音,并在主板上显示“幸福”图形,没有声音时则显示“难过”图形。部分代码如下:
while True:
voice=pin0.read_analog()
if voice>350:
display.show(Image.HAPPY)
# 显示“幸福”图形
sleep(2000)
else:
display.show(Image.SAD)
# 显示“难过”图形
若声音传感器和主板的连接正常,下载并运行该代码,发现拍手发出声音后,主板上的“难过”图形并没有变为“幸福”图形,则下列选项中,可能是问题原因的是( )
A.第三行代码中“350”值太大
B.第五行代码中“2000”值太小
C.第五行代码中“sleep(2000)”多余
D.第七行代码后少了一行代码“sleep(2000)”
【学案答案】
1.GUI
2.图形方式
3.tkinter
4.对象
5.交互
6.Tk
7.open
8.intomap
9.相关数据
10.内存储器
11.外存储器
12.只读存储器
13.随机存储器
14.外存储器
15.open()
16.close()
17.组织方式
18.相互关联
19.二维表
20.一列
21.属性
22.一行
23.实体
24.唯一性
25.数据库管理系统
26.管理
27.控制
28.直接操作和维护
29.数据库管理员
30.数据库系统
31.存储数据
32.自顶向下
【课后答案】
1.答案:D
解析:本题考查ACCESS相关知识。“姓名”是主键字段不存在重复的字段值。“捐款金额”字段的有效输入值必须是数字。修改字段的数据类型,字段值有可能丢失。在该视图下删除“年龄”字段,可以通过“撤销”命令恢复。故本题说法正确的是选项D的说法。
2.答案:A
解析:最后是关闭数据库连接,故排除C,开始是建立数据库连接,故2在开头,排除BD,故本题选A
3.答案:A
解析:本题考查的是 pygame模块的调用和设置相关参数,此处虽然未见过s_size这样的变量赋值,但依据题意可判断s_size里包含 width和 height两个变量的数值。因为在实现简单人机交互时,预设定义好交互界面如窗口、键鼠等是必不可少的属于必须了解的知识点。故选A
4.答案:C
解析:fill就是填充,故填充的是一个颜色,选C。
5.答案:C
解析:A是数据库应用系统,B可以创建新的数据表,D不会丢失,C可以是文本类型,不可能是自动编号,因为学号不是连续的。故选C。
6.答案:C
解析:字段值还可以再表格处直接修改,A错误;序号、快递单号都可以设为主键,B错误;可以添加新的记录,D错误,故选C。
7.答案:D
解析:info是数据表的名称,A错误;可以输入该日期形式,B错误;ID不会自动修改,C错误;email字段可以是文本或备注,D正确,故选D。
8.答案:D
解析:A应该是是/否类型,A错误;编号避讳自动变更B错;自动编号不可手动输入,C错误;D正确。
9.答案:D
解析:字段根据需要可以增删,A错误;审核可以是备注类型,B错误;水果编号有重复,不能是主键。故选D。
10.答案:C
解析:A是数据库名称,错误;学号不用自动编号,B错误;2022-02-29是不存在的,故不能输入,D错误。故选C。
11.答案:B
解析:ID字段的值可以中断,比如被删除了,A错误;B正确;入学成绩是数值,故不能输入字母,C错误;插入的记录在最后面,D错误。故选B。
12.答案:C
解析:序号字段是自动编号,不能手动输入,A错误;日期2017/02/18,错误;价格是货币,可以直接输入数字,正确;直接选不用输入,D错误。
13.答案:A
解析:本题考查程序分析。
第三行代码中“350”值太大:如果拍手产生的声音在传感器上的读数确实小于350,那么这个阈值就可能设置得太高,导致无法触发“幸福”图形的显示。这是一个可能的原因。
第五行代码中“2000”值太小:这个值控制的是显示“幸福”图形后的暂停时间,与是否显示“幸福”图形无直接关系。
第五行代码中“sleep(2000)”多余:虽然sleep(2000)可能不是必需的,但它不会导致“难过”图形不变为“幸福”图形。
第七行代码后少了一行代码“sleep(2000)”:这同样不会影响是否显示“幸福”图形,只是可能影响用户体验或调试观察。故正确答案为:选项A.
学科网(北京)股份有限公司
$$