python大作业-图书管理系统
#缺少循环执行和错误处理
#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大作业-图书管理系统的更多相关文章
- #006 C语言大作业学生管理系统第三天
还差最后两部分 读取文件 恢复删除的学生信息 先学会处理文件的 知识点,再继续跟着视频做这个作业. 应该明天周六能把视频里手把手教的学生管理系统敲完 第二周尽量自己能完成C语言课本最后面那道学生管理系 ...
- #004 C语言大作业学生管理系统试着做
链表不会用 文件不会使 在这种情况下就边写边做 希望这个月能做完这个作业 #include<stdio.h> #include<stdlib.h> #include<st ...
- 在Web大作业——红十字会管理系统里出现的一个Error
工程描述:根据用户在前端网页的操作对后台数据库进行查询或更新. 错误描述:当对网页进行多次操作后,网页会报错:“数据库超过最大连接数”. 错误分析:每次打开某一网页,都会运行一段JAVA代码连接数据库 ...
- 大一上C语言期末大作业-成绩管理系统
都过了半年的作业了,觉得做过去得留下点什么,所以整理了代码发一下博客. 声明:程序在DevC++下用c文件模式可以正常编译使用.(控制台程序) 程序结构:
- c++大作业--学籍管理系统--
1.题目描写叙述 学籍管理系统: 依据信息管理系统的业务流程.要求以及所要实现的目标,完毕下面功能: (1)建立学生档案的管理和维护.实现计算机自己主动化管理体制. (2)建立学生成绩管理机制,在计算 ...
- #007 C语言大作业学生管理系统第四天
第四天还差恢复已删除学生功能 对于我来说,已经开始很复杂了. 小细节太重要了,边写边出错 1 #include<stdio.h> #include<stdlib.h> #inc ...
- python大作业二
一.存入csv 上次爬取到了所需要的内容,但是没有存入到csv中,这次存入了csv文件中,代码如下: import requests from bs4 import BeautifulSoup imp ...
- C++大作业——教职工管理系统
教职工信息管理系统 1.问题描述: 设计一个学校职工管理系统,要求实现如下功能:建立职工信息数据, 包括职工编号.姓名. 性别.工资.出生时间.岗位.参加工作时间和年 龄(必须计算得到),初始模拟数据 ...
- python大作业
爬取西刺代理 生成请求头 #encoding = utf-8; __all__ = ("Header"); import random; class Header(object): ...
随机推荐
- ora-28547:连接服务器失败,可能是 Oracle Net 管理失败
检查如下: 监听程序的配置文件 发现多了 (PROGRAM = extproc) 去掉后如下: # listener.ora Network Configuration \dbhome_1\netwo ...
- node.js中模块报错【window is not defined】的解决方法
(function(window) { /* Keep source code the same */ // })(typeof window == "undefined" ? g ...
- Professional C# 6 and .NET Core 1.0 - Chapter 38 Entity Framework Core
本文内容为转载,重新排版以供学习研究.如有侵权,请联系作者删除. 转载请注明本文出处:Professional C# 6 and .NET Core 1.0 - Chapter 38 Entity F ...
- C语言代码里不能用goto?
当我学C语言时,老师整天告诉我:"不要使用goto, 这是一个坏习惯, 这种写法很烂,而且很危险!"等等. 但是为什么那么多内核程序员那么喜欢用goto呢? 在这段linux内核 ...
- C/C++代码覆盖率工具gcov、lcov
gcov是一个可用于C/C++的代码覆盖工具,是gcc的内建工具.下面介绍一下如何利用gcov来收集代码覆盖信息. 想要用gcov收集代码覆盖信息,需要在gcc编译代码的时候加上这2个选项 “-fpr ...
- shell chmod中数字与字母的含义
数字与字母的组合是chmod命令赋予文件,目录访问权限的方式 访问权限:可读,可写,可执行 字母表示:r , w , x 数字表示:4 , 2 , 1 , ...
- 简单Factory模式
#pragma once #include "student.h" #include "Teacher.h" typedef enum _EPersonType ...
- SQLServer跨库查询--分布式查询
出处:http://www.cnblogs.com/doosmile/archive/2012/03/16/2400646.html --用openrowset连接远程SQL或插入数据 --如果只是临 ...
- 手机APP兼容性测试
兼容性测试方案 兼容性问题 屏幕分辨率兼容性问题 软件(iOS和Android系统版本及不同厂家的定制ROM)兼容性问题 硬件(不同的CPU.内存大小等等)兼容性问题 网络(2G/3G/4G/WIFI ...
- [转]history.back(-1)和history.go(-1)的区别
目录: 1.这个方法的用途 2.两个方法的区别 3.总结 概述: H5页面做多了,自然就会做到页面上的返回功能,返回功能大致有两种:history.back(-1)和history.go(-1),今天 ...