Python技术实现一个完整的任务需求

本文详细介绍了使用Python实现一个多线程、网络编程和数据库操作的经理管理系统。系统允许经理进行菜品查询、添加和删除,涉及TCP连接、文件操作、SQLite数据库管理和日志记录。通过模拟client和server,实现数据交互,记录操作日志,并提供错误处理机制。
摘要由CSDN通过智能技术生成

简介

题目:经理管理上市菜品数据库

经理要进行登录验证,用户名和密码与数据库中匹配才可进入
登录成功后经理可进行三种操作:查询,增加,删除
查询:输入命令select,查询结果会写入文件,并且显示在客户端
增加:输入命令add,每条记录以逗号分隔,记录之间以空格分隔
删除:输入命令delete,输入要删除的菜品编号
文件有两个:
日志文件,记录何时进行何种操作,以及增加的内容和删除的菜品名称
查询结果文件,存放查询当前上市菜品的信息结果

线程写日志

详写

需求分析

背景

生活水平不断提高,大大小小的餐馆随处可见。每个餐馆都有自己的招牌菜,同时也有一些不太受欢迎的菜品,这就需要对店面的销售菜品种类及价格进行管理,比如将不受喜爱的菜品去除,调整一下价格,增加一些新品等等。对菜品进行实时动态的系统更新,可以方便餐馆运营。

需求

经理对菜品系统的操作包括select(查询),add(增加),delete(删除)。

实现该系统需要4项技术:多线程、文件操作、数据库操作、网络编程。

多线程:编写线程函数,进行写文件操作。

文件操作:包括两个文件,日志文件和查询结果文件。

            日志文件记录经理在何时进行了何种操作,如果进行增加操作,记录在何时增加了什么内容,若进行删除,记录在何时删除了哪个菜品。

数据库操作:包含两张表,manager和menu。

              manager(name,password)name表示用户名,password表示登录密码

              menu(mno,mname,price)mno菜品编号,mname菜品名称,price价格

网络编程:使用TCP传输,模拟client和server,经理在client端操作,菜品管理系统相当于server,反馈给client操作提示。

 

设计方案

功能

该系统实现的是经理对数据库中菜品表的查询、修改和删除。查询当前本餐馆销售哪些菜品,包括菜品的编号,名称和价格。如果餐馆增加了一些菜式,在数据库中对这些菜式进行添加。如果某些菜式不再上市,需要从系统中删除,给出要删除的菜品编号,在日志文件中记录被删除的菜品名称。

架构

采用TCP网络连接进行模拟,经理作为client,被管理的上市菜品数据库系统作为server。

client

首先进行登录者判断,用户名和密码和数据库中manager表中的信息一致,则和server建立连接,开始按照server的提示进行通信和操作,输入的指令为bye时,表示不再操作了,断开通信。如果不一致,直接断开连接,不进行进一步的操作。

server

client所有的操作规则全部在server中定义,包括日志文件和查询结果文件的写入。server接收client传过来的消息,首先将它转为str()型,再进行判断要执行的是哪一个操作。对于client发送的每一个操作请求,都会调用线程进行日志文件的写入,在执行完后,也会告诉client操作完毕。

操作1,查询。这个操作比较简单,直接执行sql语句,将查询得到的信息,通过调用线程,逐条写入到查询结果文件中,并在client中显示。

操作2,新增。得到这条指令后,发送给client一条提示信息,“请输入更新内容”,然后再对接收到更新信息进行写入数据库操作。

操作3,删除。基本流程类似操作2,反馈给client一条提示信息,“请输入删除的菜品编号”,接收到编号以后,先查询该编号的菜品名称,进行日志文件的写入,然后再执行删除操作。

若接收到的消息的小写格式为bye,则断开连接,表示操作已完成,同时关闭文件和数据库。

若接收到除以上内容外的信息,则默认为是错误信息,提示client重新输入。

逻辑流程

根据系统的功能,画出流程图如图2-1所示。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值