程序设计实训 - 题目 19 实现数据库的操作

2019301248-侯星宇 2022夏-程序设计实训 2022-07-29 23:41:17

程序设计实训 - Python

题目 19

img

img

思路分析

SQLite 是一种用 C 语言写的轻量级嵌入式数据库,它的数据库就是一个文件。SQLite 不需要一个单独的服务器进程或操作的系统,不需要配置,这意味着不需要安装或管理,所有的维护都来自于 SQLite 软件本身

1. 导入 sqlite3 模块

sqlite3 是内置模块,不需要安装,直接 import 导入即可:

import sqlite3

2. 创建与 SQLite 数据库的连接

使用 sqlite3.connect() 函数连接数据库,返回一个 Connection 对象,我们就是通过这个对象与数据库进行交互。如果该数据库文件不存在,那么它会被自动创建。

# 创建与数据库的连接
conn = sqlite3.connect(path)

建立与数据库的连接后,需要创建一个游标 cursor 对象,该对象的 .execute() 方法可以执行 sql 命令,让我们能够进行数据操作。

#创建一个游标 cursor
cur = conn.cursor()

3. 在 SQLite 数据库中创建表

使用 cur.execute(sql) 完成创建,主要的创建内容在 sql 语句中

4. 常用方法

  • sqlite3.connect(database [,timeout ,other optional arguments]) --- 该 API 打开一个到 SQLite 数据库文件 database 的链接。如果给定的数据库名称 filename 不存在,则该调用将创建一个数据库。
  • cursor.execute(sql [, optional parameters]) --- 该例程执行一个 SQL 语句
  • connection.cursor() --- 创建一个 cursor,在 Python 数据库编程中用到
  • connection.commit() --- 该方法提交当前的事务
  • connection.close() --- 该方法关闭数据库连接。请注意,这不会自动调用 commit()。如果之前未调用 commit() 方法,就直接关闭数据库连接,所做的所有更改将全部丢失

代码实现

# NPU 程序设计实训 HW19 实现数据库的操作
# 函数 ()
import sqlite3
path = 'D:/python project test/19_test.db'

# 1,初始化数据库
def create_db(path):

    # 创建与数据库的连接
    conn = sqlite3.connect(path)
    # 创建一个游标 cursor
    cur = conn.cursor()

    # 创建 person 表
    person_table = """ CREATE TABLE Persons(
                        NAME VARCHAR(32) NOT NULL,
                        GENDER VARCHAR(2) NOT NULL,
                        BIRTH VARCHAR NOT NULL,
                        ID VARCHAR(18) PRIMARY KEY NOT NULL,
                        FOREIGN KEY (POSITIONID) REFERENCES Position(POSITIONID)
                        );"""
    # 创建 position 表
    position_table = """ CREATE TABLE Position(
                        POSITIONID VARCHAR  PRIMARY KEY,
                        SALARY     INTEGER    NOT NULL
                        );"""
    # position 表插入数据
    position_table_insert = 'insert into Position values(?,?);'

    # 建立两个表
    try:
        cur.execute(position_table)
        cur.execute(person_table)
        cur.executemany(position_table_insert, [('A', 10000), ('B', 6000), ('C', 3000), ('D', 1000)])
        conn.commit()
    except Exception as e:
        print(e)
        return -1
    else:
        return 0
    finally:
        cur.close()
        conn.close()

# 2,新进人员
def new_employee(person, level):
    # 创建链接和游标
    conn = sqlite3.connect(path)
    cur = conn.cursor()

    new_person = """INSERT INTO PERSON VALUES (?,?,?,?,?);"""
    try:
        cur.execute(new_person, person+(level,))
        conn.commit()
    except Exception as e:
        print(e)
        return -1
    else:
        return 0
    finally:
        cur.close()
        conn.close()

# 3,删除人员
def delete_employee(person):
    conn = sqlite3.connect(path)
    cur = conn.cursor()

    delete_person = f'DELETE FROM Person WHERE ID={person};'
    try:
        cur.execute(delete_person)
        conn.commit()
    except Exception as e:
        print(e)
        return -1
    else:
        return 0
    finally:
        cur.close()
        conn.close()


# 4. 设置岗位薪水
def set_level_salary(level, salary):
    if level not in ['A', 'B', 'C', 'D'] or not isinstance(salary, int):
        return -1
    conn = sqlite3.connect(path)
    cur = conn.cursor()

    sql = f'UPDATE Position SET SALARY={salary} WHERE POSITIONID="{level}";'
    try:
        cur.execute(sql)
        conn.commit()
    except Exception as e:
        print(e)
        return -1
    else:
        return 0
    finally:
        cur.close()
        conn.close()


# 5. 统计薪水开支
def get_total_salary():
    conn = sqlite3.connect(path)
    cur = conn.cursor()

    select = """SELECT SALARY FROM Person,Position WHERE Person.POSITIONID = Position.POSITIONID;"""
    try:
        cur.execute(select)
        ret = cur.fetchall()
    except Exception as e:
        print(e)
        return -1
    else:
        return sum([i[0] for i in ret])
    finally:
        cur.close()
        conn.close()

...全文
182 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
2016年 1 月 5 日 摘要: 本文首先介绍了Android开发环境的安装和部署过程;之后介绍了Android项目的架构及 应用程序组成,着重讲解了手机用户界面的布局方法和常见开发控件的使用;然后介绍 了Android中的文件存储管理、SQLite数据库存取与共享、2D绘图设计、多媒体应用以及 电话和短信开发等知识;最后介绍了Android中的单元测试以及国际化的方法,通过发布 案例程序完成Android知识的讲解,同时运用了photoshop,实现了对界面的优化设计。 关键词:Android;开发;SQL;多媒体运用;PHOTOSHOP 目录 一、实训背景及目的要求 4 1.1背景简介 4 1.2实训目的及要求 4 二、设计思路 5 2.1设计题目 5 2.2功能分析 5 2.3模块划分 5 三、设计实现及代码分析 5 3.1第一个Activity 5 3.1.1布局文件:main.xml: 5 3.1.2源代码文件:MainActivity.java 9 3.2第二个Activity 12 3.2.1布局文件:result.xml 12 3.2.2源代码文件:ResultActivity.java 13 3.3字符串资源文件:strings.xml 17 3.4程序清单文件:AndroidManifest.xml 18 四、程序功能测试及截图 19 4.1工程项目目录 19 4.2程序运行界面: 19 4.3未填身高提示: 20 4.4计算示例: 21 五、课程设计(实训)总结 21 一、实训背景及目的要求 1.1背景简介 Android(读音:['ændrɔid])是一种以Linux为基础的开放源码操作系统,主要使用 于便携设备,目前尚未有统一中文名称,中国大陆地区较多人使用安卓或安致。Androi d操作系统最初由Andy Rubin创办[5],最初只支持手机。2005年由Google收购注资,并拉拢多家制造商组成开 放手机联盟(Open Handset Alliance)开发改良,逐渐扩展到到平板电脑及其他领域上[6]。 2010年末数据显示,仅正式推出两年的操作系统的Android已经超越称霸十年的诺基亚S ymbian系统,跃居全球最受欢迎的智慧手机平台。采用Android系统手机厂商包括HTC、 Samsung、Motorola、Lenovo、LG、Sony Ericsson等。 1.2实训目的及要求 Android以Linux为核心的Android行动平台,使用Java作为编程语言。本实训是在学 习java语言程序设计的基础上进行的一次综合实践。通过综合训练,要求学生掌握java 语言程序设计的基本技能和Android编程的应用,并较系统地掌握JAVA语言程序设计开发 方法以及帮助文件的使用等,使学生通过本次实训,能够进行独立的Android应用程序开 发,能够在实际操作中得到进一步的提高,为以后的学习和工作打下良好的基础。 目的: 1、培养学生运用所学课程Java语言程序设计的理论知识和技能,分析解决计算机实 际应用中的问题的能力。 2、培养学生在Java语言程序设计的基础上,开发Android应用程序的思想和方法。 3、培养学生调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。 通过课程设计,要求学生在指导教师的指导下,独立完成课程设计的全部内容,包括 : 1、确定开发的程序,收集和调查有关技术资料。 2、按软件工程步骤进行程序设计。 3、对完成的程序进行测试和完善。 4、完成课程设计报告。 二、设计思路 2.1设计题目 以Android系统的UI界面开发为基础,设计一个可以简单计算标准体重的应用程序, 要求以2个Acitivity实现,第一个Activity作为输入界面,第二个Activity作为结果输 出界面,具体实现细节自行设计。 2.2功能分析 该设计题目要求实现可计算输出标准体重功能的应用程序。通过查阅资料可知,按照 世界卫生组织推荐的计算标准体重的方法,需要获知的输入信息有性别、身高。故可在 第一屏设置有单选框以确定性别,输入框以获取身高。另,为了增加程序的实用性,可 再设一可选输入框,用来得到实际体重,与标准体重对比,给出用户一些健康提议。第 二屏设置有结果输出显示区域与健康提示显示区域。 2.3模块划分 通过程序功能分析,可将程序划分为2个模块,即2个Activity: 第一个Activity:两个单选框(RadioButton)获取性别,一个输入框(EditText) 获取身高,一个可选输入框(EditText)获取实际体重,一个按钮(Button)及一些提 示文本。 第二个Activity:一个文本显示区(TextViw)显示计算结果,一个可选文本显示区 (TextView
2016年 1 月 5 日 摘要: 本文首先介绍了Android开发环境的安装和部署过程;之后介绍了Android项目的架构及 应用程序组成,着重讲解了手机用户界面的布局方法和常见开发控件的使用;然后介绍 了Android中的文件存储管理、SQLite数据库存取与共享、2D绘图设计、多媒体应用以及 和短信开发等知识;最后介绍了Android中的单元测试以及国际化的方法,通过发布案例 程序完成Android知识的讲解,同时运用了photoshop,实现了对界面的优化设计。 关键词:Android;开发;SQL;多媒体运用;PHOTOSHOP 目录 一、实训背景及目的要求 4 1.1背景简介 4 1.2实训目的及要求 4 二、设计思路 5 2.1设计题目 5 2.2功能分析 5 2.3模块划分 5 三、设计实现及代码分析 5 3.1第一个Activity 5 3.1.1布局文件:main.xml: 5 3.1.2源代码文件:MainActivity.java 9 3.2第二个Activity 12 3.2.1布局文件:result.xml 12 3.2.2源代码文件:ResultActivity.java 13 3.3字符串资源文件:strings.xml 17 3.4程序清单文件:AndroidManifest.xml 18 四、程序功能测试及截图 19 4.1工程项目目录 19 4.2程序运行界面: 19 4.3未填身高提示: 20 4.4计算示例: 21 五、课程设计(实训)总结 21 一、实训背景及目的要求 1.1背景简介 Android(读音:['ændrɔid])是一种以Linux为基础的开放源码操作系统,主要使用 于便携设备,目前尚未有统一中文名称,中国大陆地区较多人使用安卓或安致。Androi d操作系统最初由Andy Rubin创办[5],最初只支持手机。2005年由Google收购注资,并拉拢多家制造商组成开 放手机联盟(Open Handset Alliance)开发改良,逐渐扩展到到平板电脑及其他领域上[6]。 2010年末数据显示,仅正式推出两年的操作系统的Android已经超越称霸十年的诺基亚S ymbian系统,跃居全球最受欢迎的智慧手机平台。采用Android系统手机厂商包括HTC、 Samsung、Motorola、Lenovo、LG、Sony Ericsson等。 1.2实训目的及要求 Android以Linux为核心的Android行动平台,使用Java作为编程语言。本实训是在学 习java语言程序设计的基础上进行的一次综合实践。通过综合训练,要求学生掌握java 语言程序设计的基本技能和Android编程的应用,并较系统地掌握JAVA语言程序设计开发 方法以及帮助文件的使用等,使学生通过本次实训,能够进行独立的Android应用程序开 发,能够在实际操作中得到进一步的提高,为以后的学习和工作打下良好的基础。 目的: 1、培养学生运用所学课程Java语言程序设计的理论知识和技能,分析解决计算机实 际应用中的问题的能力。 2、培养学生在Java语言程序设计的基础上,开发Android应用程序的思想和方法。 3、培养学生调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。 通过课程设计,要求学生在指导教师的指导下,独立完成课程设计的全部容,包括: 1、确定开发的程序,收集和调查有关技术资料。 2、按软件工程步骤进行程序设计。 3、对完成的程序进行测试和完善。 4、完成课程设计报告。 二、设计思路 2.1设计题目 以Android系统的UI界面开发为基础,设计一个可以简单计算标准体重的应用程序, 要求以2个Acitivity实现,第一个Activity作为输入界面,第二个Activity作为结果输 出界面,具体实现细节自行设计。 2.2功能分析 该设计题目要现可计算输出标准体重功能的应用程序。通过查阅资料可知,按照世界 卫生组织推荐的计算标准体重的方法,需要获知的输入信息有性别、身高。故可在第一 屏设置有单选框以确定性别,输入框以获取身高。另,为了增加程序的实用性,可再设 一可选输入框,用来得到实际体重,与标准体重对比,给出用户一些健康提议。第二屏 设置有结果输出显示区域与健康提示显示区域。 2.3模块划分 通过程序功能分析,可将程序划分为2个模块,即2个Activity: 第一个Activity:两个单选框(RadioButton)获取性别,一个输入框(EditText) 获取身高,一个可选输入框(EditText)获取实际体重,一个按钮(Button)及一些提 示文本。 第二个Activity:一个文本显示区(TextViw)显示计算结果,一个可选文本显示区 (TextView)显示提示信
1 1 停车场管理系统课程设计 3 3 软件实训报告书 题 目: 停车场管理系统 小组成员: 系 别: 软件工程121 指导教师: 停车场管理系统课程设计全文共23页,当前为第1页。 2016年1月13日 停车场管理系统课程设计全文共23页,当前为第1页。 目录 第1章 项目概述 1 1.1 开发背景: 1 1.2 开发目的: 1 1.3 开发运行环境: 1 1.4 系统功能: 2 第2章 需求分析 2 2.1 系统需求 2 2.2 功能需求 2 2.3 业务流程图 3 第3章 概要设计 4 3.1 基本设计概念和处理流程 4 3.2 系统层次模块图 4 第4章 详细设计 5 4.1数据库的逻辑设计: 5 4.2数据库设置模块: 8 第5章 测试及提交 12 5.1主菜单模块的设计与实现: 12 5.3车辆进入模块的设计与实现: 13 5.4车辆离开并收费模块的设计与实现: 13 第6章 模块源代码 14 6.1 菜单函数 14 6.3车辆进入函数 15 6.4车辆离开函数 16 总结 19 停车场管理系统课程设计全文共23页,当前为第2页。 停车场管理系统课程设计全文共23页,当前为第2页。 第1章 项目概述 1.1 开发背景: 随着计算机技术的发展,在各行各业的应用越来越广泛,停车场管理由原来的人工管理进入计算机系统管理那是个必然趋势,计算机系统管理可以大大提高管理的效率和正确性。 1.2 开发目的: 设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车站。停车站内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车站为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。编制一程序模拟该停车场的管理。 1.3 开发运行环境: 开发工具:java语言 停车场管理系统课程设计全文共23页,当前为第3页。开发环境:JDK 停车场管理系统课程设计全文共23页,当前为第3页。 1.4 系统功能: (1) 登录、注册功能. (2) 车辆离开查询功能 (3) 车辆进入查询功能 第2章 需求分析 2.1 系统需求 根据题目要求,因为停车场是一个单条的序列,可以用结构体实现;在程序中,需要知道每辆来车的具体停放位置,应提供提示、查找、标记工作。车辆离开要计时计费。另外,每天开始时,停车场要初始化。 2.2 功能需求 停车场管理系统课程设计全文共23页,当前为第4页。实现停车场的现代化管理,记录车辆信息,动态分配车位,停车费用结算,查看停车场车位的使用状况,退出系统等功能,解决车辆停放难,乱收费等问题。 停车场管理系统课程设计全文共23页,当前为第4页。 2.3 业务流程图 车进入车场车辆到达以堆栈来模拟停车场和以堆栈里的数据元素我设计成汽车的车牌号初始化车站, 初始化让路的临时栈, 初始化通道车场未满,车进车场车场已满,车进便道判断车场是否已满车输入车子到达时间,车牌号未满 车进入车场 车辆到达 以堆栈来模拟停车场和以堆栈里的数据元素我设计成汽车的车牌号 初始化车站, 初始化让路的临时栈, 初始化通道 车场未满,车进车场 车场已满,车进便道 判断车场是否已满 车 输入车子到达时间,车牌号 未满 判断车场内是否有车 判断车场内是否有车 不做任何计算 不做任何计算 无点x 无点x 有 有 输入离开车辆的离开时间,进行停车费用的计算 输入离开车辆的离开时间,进行停车费用的计算 此车后面的车辆退出并进入临时栈 此车后面的车辆退出并进入临时栈 车子离开 车子离开 图 3-1 停车场管理系统课程设计全文共23页,当前为第5页。 停车场管理系统课程设计全文共23页,当前为第5页。 第3章 概要设计 3.1 基本设计概念和处理流程 互联网技术的飞速发展,Java等设计工具的方便实用,以及数据库技术的发展给本系统的设计和实现提供了技术上的支持。 系统基本的流程是:用户登录->主界面->选择各项子系统。 3.2 系统层次模块图 停车场管理系统 停车场管理系统 退出系统查看车位使用状况计算停车费用车辆离开信息车辆到达信息 退出系统 查看车位使用状况 计算停车费用 车辆离开信息 车辆到达信息 车牌号到达时间离开时间该车腾出的车位号无空余车位有空余车位每小时所需停车 用到达时间车牌号离开时间车牌号该车使用的车位号 车牌号 到达时间 离开时间 该车腾出的车位号 无空
电子商务专业人才需求调研报告 随着全球经济一体化和经济信息全球化的发展趋势,电子商务方面的人才需求量日 益增大,其中主要是企业和社会各单位第一线需要的知识面宽、实践能力强、具有创新 精神和创业意识的高素质全面发展的电子商务技术应用型及管理型专门人才急需。这就 为技工院校电子商务专业的创建和发展提供了良好的契机。为了深入了解市场,获取社 会对电子商务方面人才需求的情况,明确电子商务专业的学生培养目标,我们对电子商 务专业人才需求进行了专向调研。现将调研结果总结如下。 (一)技术类人才岗位方向细分: 1、电子商务平台设计(代表性岗位:网站策划/编辑人员):主要从事电子商务平 台规划、网络编程、电子商务平台安全设计等工作。 2、电子商务网站设计(代表性岗位:网站设计/开发人员):主要从事电子商务网 页设计、数据库建设、程序设计、站点管理与技术维护等工作; 3、电子商务平台美术设计(代表性岗位:网站美工人员):主要从事平台颜色处理 、文字处理、图像处理、视频处理等工作。 (二)商务类人才岗位方向细分: 1、企业网络营销业务(代表性岗位:网络营销人员):主要是利用网站为企业开拓 网上业务、网络品牌管理、客户服务等工作。 2、网上国际贸易(代表性岗位:外贸电子商务人员):利用网络平台开发国际市场 ,进行国际贸易。 3、新型网络服务商的内容服务(代表性岗位:网站运营人员/主管):频道规划、信 息管理、频道推广、客户管理等。 4、电子商务支持系统的推广(代表性岗位:网站推广人员):负责销售电子商务系统 和提供电子商务支持服务、客户管理等。 5、电子商务创业:借助电子商务这个平台,利用虚拟市场提供产品和服务,又可以 直接为虚拟市场提供服务。 (三)综合管理人才岗位方向细分: 1、电子商务平台综合管理(代表性岗位:电子商务项目经理):这类人才要求既对 计算机、网络和社会经济都有深刻的认识,而且又具备项目管理能力。 2、企业电子商务综合管理(代表性岗位:电子商务部门经理):主要从事企业电子 商务整体规划、建设、运营和管理等工作。 调查对象 从被调查者的基本信息可以看到样本点主要集中在IT企业和商贸企业(分别占53. 4%和19.0%),由于这些部门单位的日常工作与电子商务联系较为紧密,同时也兼顾了 其他与电子商务密切相关的企业,因此能够基本反映社会对电子商务的主要需求特征。 3.问卷调查题目结果分析 (1)电子商务活动在单位中开展情况 通过调查,目前社会对电子商务在单位工作的开展十分重视。在有效问卷中,有53 家单位选择"重视",3家单位选择"不重视",2家选择"不清楚",重视程度达到91.4%。结 果如图2。但在这些单位中,目前电子商务岗位上的工作人员质量参差不齐。其中只有2 9家电子商务在岗人员为专业人才,至少有19家单位电子商务在岗人员为非专业人才。以 上数据说明:电子商务虽在社会中受重视程度较高,但社会上电子商务该岗位用人不专 ,就这点来看,学校培养电子商务专业人才是必要的,而且前景看好。 (2)社会对电子商务专业人才的质量要求 在这次调查中,问卷就社会需要什么样的电子商务专业人才进行着重研究。问卷中,设 计者专门设计了学历、知识结构、能力素质三方面的问题,期望从中获取社会对电子商 务专业人才具体要求的相关信息。调查结果如表2所示: 从表2中,我们可以看出,社会对电子商务专业人员在学历方面要求不高,要求学历 在本科和本科以上的占55.1%,在大专包括高职的占27.6%,中专的占17.2%。所以,就学 历对就业前景的影响这方面来说,高职院校培养电子商务专业人才与本科院校相比不存 在优劣之分,这也说明在高职院校内开设电子商务专业是可行的。其次,社会对电子商 务专业人员的知识结构要求上注重于技术与商务并重(72.4%)在能力素质方面用人单位 普遍喜欢综合素质良好的工作人员(60.3%),但在专业素质与工作态度上,更侧重于工 作人员的专业素质(29.3%比19.0%)。本次调查还就单位怎样使用刚毕业的电子商务专 业学生做了研究,调查结果表明:单位对这类毕业生安排方面侧重于系统维修(32.8%) 、网络营销(27.6%)、信息管理(19.0%)、经营管理(19.0%)这四方面,如应用开发 类,几乎没有单位考虑采用高职院校毕业的电子商务专业学生,以上数据为学校开设电 子商务专业后培养何种类型的人才指明了方向。 3)单位毕业生实习欢迎程度及单位引进电子商务专业人才力度调查结果如表3所示 : 从表3中我们可以看出,就引进人才方面,持肯定态度与谨慎态度的不分上下,各占 51.7%与46.6%,这充分说明社会开始或已经认识到电子商务对单位发展的重要作用,这 也为我校电子商务专业学生在实训、实习及就业各个方面都产生了积极作用。 -----------------

34

社区成员

发帖
与我相关
我的任务
社区描述
依托实践实训环节,为同学们更好掌握所需的基本技能,提供一个交流学习的社区。
python安全linux 高校
社区管理员
  • shawn904
  • weixin_44003872
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧