关于Python——写使用函数和数据库完成学生信息管理系统

import sqlite3
#定义一个创建表的函数
def create_table():
    #UNIQUE:表示该字段的值是唯一的
    #NOT NULL:表示字段值不允许为空
    #IF NOT EXISTS:当表不存在时,再执行创建表的sql语句,如果表已经存在,则sql语句不再执行,可以避免异常
    create_sql="create table if not exists student(id INTEGER PRIMARY KEY UNIQUE ,name TEXT,age INTEGER ,score FLOAT )"
    cursor.execute(create_sql)
#定义一个添加学员的函数
def add_student():
    name = input('请输入姓名:')
    age=int(input('请输入年龄:'))
    score=float(input('请输入分数:'))
    insert_sql="insert into student(name,age,score)VALUES ('%s',%d,%.1f)"%(name,age,score)
    cursor.execute(insert_sql)

def get_total_count():
    select_sql = 'select count(*) from student '
    res = cursor.execute(select_sql)
    count = res.fetchone()[0]
    return count

#定义一个查询学员信息的函数
def select_student_info():
    count=get_total_count()
    if count!=0:
    #如果is_total_number==True就查询表中的数据总量
    # 如果is_total_number==False就查询表中的数据的详细信息
        select_sql='select * from student'
        result_list=cursor.execute(select_sql)
        for id ,name,age,score in result_list:
            print(id,'.',name,age,score)
    else:
        print('学员信息为空,无法查询')


#定义一个修改学员信息的函数
def update_student_info():
    count = get_total_count()
    if count!=0:
        #修改之前先把所有的学员信息先查询出来
        select_student_info()
        select_number=int(input('请输入要修改的学员的编号:'))
        while test(select_number)==False:
            select_number=int(input('输入的学员编号错误,请重新输入:'))
        #知道了要修改的学员的编号,然后进行修改。
        new_name=input('请输入修改后的姓名:')
        new_age=int(input('请输入修改后的年龄:'))
        new_score = float(input('请输入新的分数:'))
        update_sql="update student set name='%s',age=%d,score=%.1f where id=%d"%(new_name,new_age,new_score,select_number)
        cursor.execute(update_sql)
    else:
        print('学员信息为空,无法修改')

#定义一个删除学员信息的函数

def test(number):
    select_sql = "select * from student WHERE id=%d" % number
    res = cursor.execute(select_sql)
    result=res.fetchall()
    return len(result)

def delete_student_info():
    count = get_total_count()
    if count!=0:
        print('1-删除指定学员的信息')
        print('2-删除所有学员信息')
        select_number=int(input('请输入要操作的序号:'))
        while select_number!=1 and select_number!=2:
            select_number=int(input('请重新输入你要操作的序号:'))
        #如果用户选择的是1,说明用户想要删除指定的学员信息
        if select_number==1:
            select_student_info()
            number = int(input('请输入要删除的学员编号:'))
            while test(number)==False:
                number=int(input('学员编号输入错误,请重新输入要删除的学员编号:'))
            delete_sql="delete from student where id =%d"%number
        else:
            delete_sql='delete from student'
        cursor.execute(delete_sql)
    else:
        print('学员信息为空')
if __name__ == '__main__':
    while True:
        print('''
        1-添加学员信息
        2-修改学员信息
        3-查询学员信息
        4-删除学员信息
        0-退出程序
        ''')
        connect=sqlite3.connect('student_def.db')
        cursor=connect.cursor()
        create_table()
        select_number=int(input('请输入要操作的序号:'))
        while select_number<0 or select_number>4:
            select_number = int(input('序号输入错误,请重新输入要操作的序号:'))
        if select_number==1:
            add_student()
        elif select_number==2:
            update_student_info()
        elif select_number==3:
            select_student_info()
        elif select_number==4:
            delete_student_info()
        else:
            break
        connect.commit()
        cursor.close()
        connect.close()

运行结果如下: 


        1-添加学员信息
        2-修改学员信息
        3-查询学员信息
        4-删除学员信息
        0-退出程序
        
请输入要操作的序号:1
请输入姓名:熊大
请输入年龄:3
请输入分数:100

        1-添加学员信息
        2-修改学员信息
        3-查询学员信息
        4-删除学员信息
        0-退出程序
        
请输入要操作的序号:1
请输入姓名:熊二
请输入年龄:2
请输入分数:99

        1-添加学员信息
        2-修改学员信息
        3-查询学员信息
        4-删除学员信息
        0-退出程序
        
请输入要操作的序号:1
请输入姓名:熊三
请输入年龄:1
请输入分数:98

        1-添加学员信息
        2-修改学员信息
        3-查询学员信息
        4-删除学员信息
        0-退出程序
        
请输入要操作的序号:2
1 . 熊大 3 100.0
2 . 熊二 2 99.0
3 . 熊三 1 98.0
请输入要修改的学员的编号:3
请输入修改后的姓名:熊三儿
请输入修改后的年龄:1
请输入新的分数:99.5

        1-添加学员信息
        2-修改学员信息
        3-查询学员信息
        4-删除学员信息
        0-退出程序
        
请输入要操作的序号:3
1 . 熊大 3 100.0
2 . 熊二 2 99.0
3 . 熊三儿 1 99.5

        1-添加学员信息
        2-修改学员信息
        3-查询学员信息
        4-删除学员信息
        0-退出程序
        
请输入要操作的序号:4
1-删除指定学员的信息
2-删除所有学员信息
请输入要操作的序号:1
1 . 熊大 3 100.0
2 . 熊二 2 99.0
3 . 熊三儿 1 99.5
请输入要删除的学员编号:3

        1-添加学员信息
        2-修改学员信息
        3-查询学员信息
        4-删除学员信息
        0-退出程序
        
请输入要操作的序号:4
1-删除指定学员的信息
2-删除所有学员信息
请输入要操作的序号:2

        1-添加学员信息
        2-修改学员信息
        3-查询学员信息
        4-删除学员信息
        0-退出程序
        
请输入要操作的序号:2
学员信息为空,无法修改

        1-添加学员信息
        2-修改学员信息
        3-查询学员信息
        4-删除学员信息
        0-退出程序
        
请输入要操作的序号:3
学员信息为空,无法查询

        1-添加学员信息
        2-修改学员信息
        3-查询学员信息
        4-删除学员信息
        0-退出程序
        
请输入要操作的序号:4
学员信息为空

        1-添加学员信息
        2-修改学员信息
        3-查询学员信息
        4-删除学员信息
        0-退出程序
        
请输入要操作的序号:0

Process finished with exit code 0

猜你喜欢

转载自blog.csdn.net/qq_42543261/article/details/81459784