python实现图书管理系统

import pymysql
conn=pymysql.connect(host='localhost',user='root',passwd='root',db='stu',charset='utf8')
#创建游标
cursor = conn.cursor()
cursor.execute("drop table IF EXISTS tsglxt")#如果表存在则删除
systemsql = '''create table tsglxt(
ISBN int primary key,
name varchar(50),
press char(20),
price int,
author varchar(50))DEFAULT CHARSET=utf8;
'''
cursor.execute(systemsql) #创建表
len=0
list=[]
# 增加
def add():
    global list
    global len
    while True:
        try:
            ISBN = int(input("请输入要新增的ISBN:"))
            a = False
            for i in list:
                if i == ISBN:
                    a = True
                    break
            if ISBN!=-1 and a==False:
                len=len+1
                name = input("请输入书名:")
                press = input("请输入出版社:")
                while True:
                    try:
                        price = int(input("请输入价格:"))
                        break
                    except Exception:
                        print("请输入正确的数字!")
                author = input("请输入作者:")
                query = "insert into tsglxt (ISBN,name,press,price,author) values (%s,%s,%s,%s,%s)"
                values=(ISBN,name,press,price,author)
                cursor.execute(query,values)
                list.append(ISBN)
                conn.commit()  # 提交
            elif a==True:
                print("数据已经存在!")
            else:
                pri()
                break
        except Exception:
            print("请输入正确的数字!")
# 删除
def dle():
    global len
    global list
    a=False
    if len != 0:
        try:
            ISBN = int(input("请输入要删除的ISBN:"))
            for i in list:
                if i == ISBN:
                    a = True
                    break
            if ISBN != -1 and a==True:
                dessql = "delete from tsglxt where ISBN='%s'" % (ISBN)
                cursor.execute(dessql)
                conn.commit()
                list.remove(ISBN)
                print(list)
                pri()
                len =len - 1
            elif a==False:
                print("没有查询到相关数据!")
            else:
                pri()
        except Exception:
            print("请输入正确的数字!")
    else:
        print('请先增加数据!')
# 查询
def pri():
    global len
    if len != 0:
        cursor.execute("select * from tsglxt")  # 输出表的查询结果
        for i in cursor.fetchall():
            print('图书管理系统:', i)
    else:
        print('请先增加数据!')
# 修改
def mod():
    global len
    global list
    a=False
    if len != 0:
        try:
            ISBN = int(input("请输入要修改的ISBN:"))
            for i in list:
                if i == ISBN:
                    a=True
                    break
            if ISBN != -1 and a==True:
                for i in cursor.fetchall():
                    print('图书管理系统:', i)
                print("---11:修改书名---12:修改出版社---13:修改价格---14:修改作者---15:退出---")
                while True:
                    choice = input("请输入相应修改操作>>")
                    if choice == "11":
                        name = input("请输入书名:")
                        upssql = "update tsglxt set name='%s' where  ISBN='%s'" % (name, ISBN)  # 将学号为01的性别改为女
                        print(upssql)
                        cursor.execute(upssql)
                        conn.commit()  # 提交
                        continue
                    elif choice == "12":
                        press = input("请输入出版社:")
                        upssql = "update tsglxt set press='%s' where  ISBN='%s'" % (press, ISBN)  # 将学号为01的性别改为女
                        print(upssql)
                        cursor.execute(upssql)
                        conn.commit()  # 提交
                        continue
                    elif choice == "13":
                        while True:
                            try:
                                price = int(input("请输入价格:"))
                                break
                            except Exception:
                                print("请输入正确的数字!")
                        upssql = "update tsglxt set price='%s' where  ISBN='%s'" % (price, ISBN)  # 将学号为01的性别改为女
                        cursor.execute(upssql)
                        conn.commit()  # 提交
                        continue
                    elif choice == "14":
                        author = input("请输入作者:")
                        upssql = "update tsglxt set author='%s' where  ISBN='%s'" % (author, ISBN)  # 将学号为01的性别改为女
                        cursor.execute(upssql)
                        conn.commit()  # 提交
                        continue
                    elif choice == "15":
                        print("---已经成功退出!---")
                        pri()
                        break
                    else:
                        print("--------输入有误,请重新输入!--------")
            elif a==False:
                print("没有查询到相关数据!")
                pri()
            else:
                pri()
        except Exception:
            print("请输入正确的数字!")
    else:
        print('请先增加数据!')
#定义主类
def main():
    print("***图书管理系统***")
    print("---1:增加---2:删除---3:查询---4:修改---5:退出---")
    while True:
        choice = input("请输入相应数字操作>>")
        if choice == "1":
            add()
            continue
        elif choice == "2":
            dle()
            continue
        elif choice == "3":
            pri()
            continue
        elif choice == "4":
            mod()
            continue
        elif choice == "5":
            print("---已经成功退出系统!---")
            break
        else:
            print("--------输入有误,请重新输入!--------")

#判断使用模块名是否正确,但是当前代码没使用引入模块,因此if语句不使用也能正常运行
if __name__=='__main__':
    # 调用main函数作为启动函数
    main()
    # ----------关闭游标和连接----------
    cursor.close()
    conn.close
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值