第6单元6.6实战案例-制作通讯录(课件)-《程序设计基础-Python》(高教版)同步精品课堂

2025-12-15
| 29页
| 98人阅读
| 0人下载
精品

内容正文:

6.6实战案例-制作通讯录 程序设计基础Python 同步精品课堂 高教版 掌握国家标准《机械制图》中有关图幅、比例、字体图线等基本规定。 教学目标 一 1. 掌握通讯录项目的“总体设计→数据定义→程序设计→调试”完整流程; 2. 理解SQLite3数据库在项目中的“连接-游标-执行-提交-关闭”逻辑; 3. 熟悉文件读写与数据库操作的结合方式。 教学重难点 二 重点:各功能模块的代码实现、项目的代码整合; 难点:数据库操作的调试、模块间的逻辑调用、文件与数据库的联动。 “如果要把这些数据存在电脑里,怎么实现‘结构化存储’?” 导入新课 三 “大家平时用什么存通讯录?如果让你用Python做一个自己的通讯录,需要哪些功能?”下面大家看下这个通讯录的展示。 新知讲授 四 一、案例描述 通讯录是一种常用的保存通讯信息数据的文件。通讯录中数据一般以二维表的形式呈现的。 姓名 单位 职务 手机号码 QQ 张小* 第一中学 主任 153*****161 4499*****6 李明* 第六中学 教师 177*****245 7132*****8 ...... ...... ...... ...... ...... 通讯录示例 新知讲授 四 一、案例描述 ①总体设计 ②数据定义 ③程序设计 ④程序调试 应用Python之SQLite3制作通讯录主要有以下操作步骤: 新知讲授 四 二、总体设计 通讯录数据库表设计 功能模块设计 应用Python之SQLite3制作通讯录主要实现以下功能: ①设计数据库:通讯录数据库文件为“tongxinlu.db”。 ②设计联系人数据表:联系人数据表标识名为“lianxiren”。 联系人数据表结构 列名 数据类型 列名 数据类型 姓名 TEXT 手机号码 TEXT 单位 TEXT QQ TEXT 职务 TEXT 新知讲授 四 二、总体设计 录入模块:新建联系人。 编辑模块:删除联系人、更新联系人信息。 查询模块:查询联系人信息。 输出模块:导出联系人信息,将联系人信息保存到文本文件。 主控模块:功能模块菜单设计程序,根据需要调用功能模块完成操作功能。 基于Python-SQLite3制作通讯录程序应具有录入、编辑、查询和输出联系人四个功能模块和一个主控程序模块。功能模块以Python自定义函数形式呈现,主控模块以Python程序文件保存。 新知讲授 四 三、数据定义 数据定义功能为构建基于SQLite3的通讯录数据库文件和数据表。 01 import os 02 import sqlite3 03 txl=sqlite3.connect('tongxinlu.db') 04 tx=txl.cursor() 05 s='create table lianxiren\ (姓名 TEXT,单位 TEXT,职务 TEXT,手机号码 TEXT,QQ TEXT)' 06 tx.execute(s) 07 tx.close() 08 txl.close() 新知讲授 四 四、程序设计 录入模块实现数据表lianxiren新建联系人的功能。 01 #录入模块 02 def ins(cur): 03 name=input('请输入姓名:') 04 danwei=input('请输入单位:') 05 zhiwu=input('请输入职务:') 06 phone=input('请输入手机号码:') 07 qq=input('请输入QQ号:') 08 s='insert into lianxiren values("{n}","{d}","{z}","{p}",\ "{q}")'.format(n=name,d=danwei,z=zhiwu,p=phone,q=qq) 09 cur.execute(s) 新知讲授 四 四、程序设计 编辑模块实现数据表lianxiren删除、更新联系人的功能。 01 #删除模块 02 def dele(cur): 03 name=input('请输入要删除联系人的姓名:') 04 s='delete from lianxiren where 姓名="{n}"'.format(n=name) 05 cur.execute(s) 新知讲授 四 四、程序设计 编辑模块实现数据表lianxiren删除、更新联系人的功能。 01 #更新模块 02 def upd(cur): 03 name=input('请输入要更新联系人的姓名:') 04 x=input('请输入要更新的项目:') 05 y=input('请输入要更新的数据:') 06 s='update lianxiren set '+x+'="{xm}"'.format(xm=y)\ +'where 姓名="{n}"'.format(n=name) 07 cur.execute(s) 新知讲授 四 四、程序设计 编辑模块实现对数据表lianxiren的联系人信息进行查询的功能。 01 #查询模块 02 def query(cur): 03 name=input('请输入要查询联系人的姓名:') 04 s='select * from lianxiren where 姓名\ ="{xm}"'.format(xm=name) 05 cur.execute(s) 06 a=cur.fetchone() 07 print(a) 新知讲授 四 四、程序设计 输出模块实现对数据表lianxiren的联系人信息输出到文本文件“lianxiren.txt”的功能。 01 #输出模块 02 def out(cur): 03 s='select * from lianxiren' 04 cur.execute(s) 05 a=cur.fetchall() 06 f=open('lianxiren.txt','w+',encoding='utf-8') 07 for row in a: 08 line = "\t".join(row) + " " 09 f.write(line) 10 f.close() 新知讲授 四 四、程序设计 主控模块通过菜单选择实现对各功能模块的调用。 01 #主控模块 02 import os 03 import sqlite3 04 txl=sqlite3.connect('tongxinlu.db') 05 tx=txl.cursor() 06 while True: 07 print("===通讯录管理系统===") 08 print("======功能菜单======") 09 print("1--新增联系人 ") 10 print("2--删除联系人 ") 新知讲授 四 四、程序设计 主控模块通过菜单选择实现对各功能模块的调用。 11 print("3--更新联系人信息 ") 12 print("4--查询联系人信息 ") 13 print("5--导出联系人信息 ") 14 print("6--退出系统 ") 15 ch=input("请输入你的选择:") 16 c=int(ch) 17 if c==1: 18 ins(tx) 19 if c==2: 20 dele(tx) 新知讲授 四 四、程序设计 主控模块通过菜单选择实现对各功能模块的调用。 21 if c==3: 22 upd(tx) 23 if c==4: 24 query(tx) 25 if c==5: 26 out(tx) 27 if c==6: 28 break 29 txl.commit() 30 tx.close() 31 txl.close() 新知讲授 四 四、程序设计 主控模块通过菜单选择实现对各功能模块的调用(代码展示)。 师生互动 五 一:现在我们分组讨论2分钟——一个实用的通讯录,除了‘新增联系人’,还需要哪些功能?每组选一个代表分享,我们一起把功能列出来。” 二:本节课本上代码190页执行有错误,谁能找出,为什么出错? file.writelines() 要求传入的必须是字符串或字符串组成的可迭代对象,直接传入元组会触发 TypeError: write() argument must be str, not tuple 错误。 随堂练习 1. 下列选项中,属于SQLite3连接数据库的语句是( ) A.  sqlite3.open("test.db")  B.  sqlite3.connect("test.db")  C.  sqlite3.create("test.db")  D.  sqlite3.link("test.db")  【答案】B 【解析】SQLite3中连接数据库的函数是 connect() ,参数为数据库文件名。 六 随堂练习 2. Python中打开文件并写入内容,正确的模式是( ) A.  r  B.  w  C.  a  D.  r+  【答案】B 【解析】 w 是“写入模式”,会覆盖文件原有内容; a 是“追加模式”, r 是“只读模式”。 六 随堂练习 3. 下列属于SQLite3“插入数据”的语句是( ) A.  UPDATE table SET ...  B.  DELETE FROM table WHERE ...  C.  INSERT INTO table VALUES (...)  D.  SELECT * FROM table  答案】C 【解析】 INSERT INTO 用于插入数据, UPDATE 用于更新, DELETE 用于删除, SELECT 用于查询。 六 随堂练习 4.Python中关闭SQLite3游标对象的方法是( ) A.  cursor.end()  B.  cursor.close()  C.  cursor.stop()  D.  cursor.quit()  【答案】B 【解析】游标对象的关闭方法是 close() ,数据库连接对象的关闭方法也是 close() 。 六 随堂练习 5.下列代码中,能获取SQLite3查询结果的一行数据的是( ) A.  cursor.fetchall()  B.  cursor.fetchone()  C.  cursor.getone()  D.  cursor.getall()  【答案】B 【解析】 fetchone() 获取一行结果, fetchall() 获取所有结果。 六 随堂练习 6. Python中打开文件时指定编码为UTF-8,正确的语句是( ) A.  open("test.txt", "r", code="UTF-8")  B.  open("test.txt", "r", encoding="UTF-8")  C.  open("test.txt", "r", format="UTF-8")  D.  open("test.txt", "r", charset="UTF-8")  【答案】B 【解析】 open() 函数中指定编码的参数是 encoding 。 六 随堂练习 7.下列属于SQLite3“更新数据”的语句是( ) A.  INSERT INTO table VALUES (...)  B.  UPDATE table SET 列名=值 WHERE 条件  C.  SELECT * FROM table WHERE 条件  D.  DELETE FROM table WHERE 条件  【答案】B 【解析】 UPDATE 语句用于更新表中已有的数据,需要指定“列名=值”和筛选条件。 六 随堂练习 8. Python中,要将数据库的修改保存,需要调用的方法是( ) A.  connect.commit()  B.  cursor.commit()  C.  connect.save()  D.  cursor.save()  【答案】A 【解析】数据库连接对象的 commit() 方法用于提交修改,确保数据写入数据库。 六 课堂小结 八 谢谢 EV录屏5.4.1软件录制 Lavf58.33.100 本视频由湖南一唯信息科技开发的EV录屏软件录制, www.ieway.cn EV录屏5.4.1软件录制 Lavf58.33.100 本视频由湖南一唯信息科技开发的EV录屏软件录制, www.ieway.cn $

资源预览图

第6单元6.6实战案例-制作通讯录(课件)-《程序设计基础-Python》(高教版)同步精品课堂
1
第6单元6.6实战案例-制作通讯录(课件)-《程序设计基础-Python》(高教版)同步精品课堂
2
第6单元6.6实战案例-制作通讯录(课件)-《程序设计基础-Python》(高教版)同步精品课堂
3
第6单元6.6实战案例-制作通讯录(课件)-《程序设计基础-Python》(高教版)同步精品课堂
4
第6单元6.6实战案例-制作通讯录(课件)-《程序设计基础-Python》(高教版)同步精品课堂
5
第6单元6.6实战案例-制作通讯录(课件)-《程序设计基础-Python》(高教版)同步精品课堂
6
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。