#缺少循环执行和错误处理
#add()函数 添加了循环执行
#错误处理:regist()函数 登录和退出选择的时候添加了错误处理
import sys
import importlib
importlib.reload(sys)
Book=[['高数','高斯',30],['龙王传说','唐家三少',30],['霸道总裁爱上我','熏紫樱桃',30]]#列表1:书籍数据系统
User=[['admin',1],['manager',1]] #列表2:用户数据系统
def regist():#监测注册用户名,然后注册
UserName1=input('请输入你的注册用户名:')
for i in User:
if i[0]==UserName1:
print('该用户名已被注册,请重新输入!')
else:
Pwd1=int(input('恭喜你,用户名可以使用,请输入你的密码:'))
User.append([UserName1,Pwd1])
print("恭喜你注册成功,您的用户名为:",UserName1,"密码为",Pwd1)
try:#这里加错误处理了哦 j=int(input("请选择 1.登录 2.退出"))
if j==1:
login()
if j==2:
SystemExit()
except ValueError as e:
print('输入的不正确哦,只能输入整数!')
finally:
begin()
def login():#先输入用户名然后输入密码,循环列表,找到登录成功没有登录失败
UserName2=input('请输入你的登录用户名:')
for i in User:
if i[0]==UserName2:
pwds=i[1]
pwd2=int(input('请输入你的登录密码:'))
if pwd2==pwds:
print('亲爱的%s ,很高兴见到你,今天又是元气满满充满希望的一天!'%UserName2)
opt() def opt():#登录后选择操作项
s=input('请选择你要执行的操作,1=增 2=删 3=改 4=查 5=退出')
if s==1:
add()
elif s==2:
delete()
elif s==3:
edit()
elif s==4:
query()
else:
SystemExit() def add():#输入书名、作者、价格,用append()方法将参数添加到列表结尾,添加成功,失败错误处理
j=1
while (j!=2):#循环执行添加书本 Bookname=input('请输入要添加的书本名:')
author=input('请输入要添加书本的作者:')
price=int(input('请输入要添加书本的价格:'))
AddBook=[Bookname,author,price]
Book.append(AddBook)
print('添加书本成功了哦!')
j=int(input('小宝贝,还要继续添加添加书本吗? 1.继续 2.退出'))
if j==2:
opt() def delete():#输入书名,选择是否删除
Bookname=input('请输入要删除的书本名:')
j=-1
for i in Book:
j+=1
if i[0]==Bookname:
print("已找到书本:%s"%Bookname)
break
i=int(input('真的要删除这本书吗? 1:确定 2:取消'))
if i==1:
del Book[j]
print('ok') def edit():#只能修改书本的价格,先输入书名然后查询,查到了输入要修改的价格,没有查到循环继续输入或退出
Bookname=input('请输入要编辑书本名称:')
j=-1
for i in Book:
j+=1
if i[0]==Bookname:
print("已找到书本:%s"%Bookname)
break
i=int(input('真的要修改这本书吗? 1:确定 2:取消'))
if i==1:
price=int(input('请输入修改后的价格:'))
Book[j][2]=price
print('ok') def query():#查询,输入所有的书本信息
for i in Book:
print("序号:%s 书本信息:%s"%(Book.index(i)+1,i)) def begin():
n=int(input('欢迎来到图书管理系统,1=注册 2=登录 3=关闭'))#3关闭 开始
print('\n')
if n==1:
regist()
if n==2:
login()
if n==3:
SystemExit()
#begin()
add()

python大作业-图书管理系统的更多相关文章

  1. #006 C语言大作业学生管理系统第三天

    还差最后两部分 读取文件 恢复删除的学生信息 先学会处理文件的 知识点,再继续跟着视频做这个作业. 应该明天周六能把视频里手把手教的学生管理系统敲完 第二周尽量自己能完成C语言课本最后面那道学生管理系 ...

  2. #004 C语言大作业学生管理系统试着做

    链表不会用 文件不会使 在这种情况下就边写边做 希望这个月能做完这个作业 #include<stdio.h> #include<stdlib.h> #include<st ...

  3. 在Web大作业——红十字会管理系统里出现的一个Error

    工程描述:根据用户在前端网页的操作对后台数据库进行查询或更新. 错误描述:当对网页进行多次操作后,网页会报错:“数据库超过最大连接数”. 错误分析:每次打开某一网页,都会运行一段JAVA代码连接数据库 ...

  4. 大一上C语言期末大作业-成绩管理系统

    都过了半年的作业了,觉得做过去得留下点什么,所以整理了代码发一下博客. 声明:程序在DevC++下用c文件模式可以正常编译使用.(控制台程序) 程序结构:

  5. c++大作业--学籍管理系统--

    1.题目描写叙述 学籍管理系统: 依据信息管理系统的业务流程.要求以及所要实现的目标,完毕下面功能: (1)建立学生档案的管理和维护.实现计算机自己主动化管理体制. (2)建立学生成绩管理机制,在计算 ...

  6. #007 C语言大作业学生管理系统第四天

    第四天还差恢复已删除学生功能 对于我来说,已经开始很复杂了. 小细节太重要了,边写边出错 1 #include<stdio.h> #include<stdlib.h> #inc ...

  7. python大作业二

    一.存入csv 上次爬取到了所需要的内容,但是没有存入到csv中,这次存入了csv文件中,代码如下: import requests from bs4 import BeautifulSoup imp ...

  8. C++大作业——教职工管理系统

    教职工信息管理系统 1.问题描述: 设计一个学校职工管理系统,要求实现如下功能:建立职工信息数据, 包括职工编号.姓名. 性别.工资.出生时间.岗位.参加工作时间和年 龄(必须计算得到),初始模拟数据 ...

  9. python大作业

    爬取西刺代理 生成请求头 #encoding = utf-8; __all__ = ("Header"); import random; class Header(object): ...

随机推荐

  1. java基础之JDBC五:批处理简单示例

    /** * 批处理 * 批处理跟事务不同 只是把一批sql放到一起执行 2条sql是可以一条执行成功 一条执行失败 是不可逆的 */ public class Test { public static ...

  2. IFC标准是为了满足建筑行业的信息交互与共享而产生的统一数据标准,是建 筑行业事实上的数据交换与共享标准。本文概要介绍了IFC标准的产生及发展 历程,IFC的整体框架结构,简要说明了IFC标准的实现方法和过程,描述了 当前的应用以及我们应该更加积极地利用IFC标准为建筑软件行业服务。

  3. c# 如何制作RealPlayer 视频播放器

      c# 如何制作RealPlayer 视频播放器 主要介绍了如何使用 RealPlayer G2 Control 控件 那么我们怎么获得到这个控件呢,很简单,操作方法如下 右单击工具箱对话框的[所有 ...

  4. 利用arcgis实现经纬度和平面坐标互转

    一平面直角坐标(投影坐标)转经纬度 基本程序是这样的 经纬度计算操作 1. 定义坐标系:在AreToolbox下→数据管理工具→投影和变换→定义投影→输入数据或要素点击▼选择定义同层(同时在坐标系中点 ...

  5. hdu 1556 Color the ball(非线段树做法)

    #include<stdio.h> #include<string.h> ]; int main() { int n,i; int a,b; while(scanf(" ...

  6. Mac10.9下的libtiff编译

    libtiff介绍 libtiff下载 libtiff编译 libtiff介绍? 参考:http://en.wikipedia.org/wiki/Tiff libtiff下载 直接到官网下载:http ...

  7. 【Head First Java 读书笔记】(二)类与对象

    前篇当中,代码都放在main()里面,那根本不是面向对象的做法. 椅子大战(对象如何改变你的一生) 程序规格: 在图形接口画出四方形,圆形和三角形,当用户点选图形时,图形需要顺时针转360度并依据形状 ...

  8. oracle 中用法dual

    dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录.我们可以用它来做很多事情. dual是一个虚拟表,用来构成select的语法规则,oracle保证d ...

  9. java代码实现顺序队列

    java实现顺序队列 package xianxinTable; import java.util.ArrayList; import java.util.Iterator; import com.s ...

  10. Android中如何下载文件并显示下载进度

    原文地址:http://jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1125/2057.html 这里主要讨论三种方式:AsyncTask.Serv ...