学生管理系统

Updated on in 人生苦短,我用Python with 80 views and 2 comments

python,以目前的能力编写一套实现学生信息增删改查的数据库系统。或许后续会不断提升不断完整的搞出这一套简单的系统(增删改查功能),还差得很多。加油……

学生管理系统

学生管理系统 v1.1

''' 
基于数据库进行学生信息增删改查 
学生管理系统V1 
2019年8月2日14:32:03 
编写者:QQ:598941324-读书 
''' 
import pymysql 

def add(): 
    try: 
        s_name = input('请输入你的名字:') 
        s_sex = input('请输入你的性别:') 
        s_num = input('请输入你的学生id(必须为int类型):') 
        db = pymysql.connect(host='107.75.22.17', user='root', password='xxxxxxxxx', database='student',charset='utf8') 
        cursor = db.cursor() 
        sql = "insert into students(name,sex,num)value('%s','%s','%s')" % (s_name, s_sex, int(s_num)) 
        cursor.execute(sql) 
        db.commit() 
        cursor.close() 
        db.close() 
        print(("""添加学生信息成功,如下: 
            学生姓名:{} 
            学生性别:{} 
            学生id:{}""").format(s_name, s_sex, s_num)) 
    except ValueError: 
        print('学生id输入有误(重新输入),请输入数字id。') 

def cha(): 
    s_name = input('请输入你的名字:') 
    try: 
        db = pymysql.connect(host='107.75.22.17', user='root', password='xxxxxxx', database='student',charset='utf8') 
        cursor = db.cursor() 
        sql = "select * from students where name like'%s'" %(s_name) 
        cursor.execute(sql) 
        data = cursor.fetchone() 
        print(data) 
        str_name = data[1] 
        db.commit() 
        cursor.close() 
        db.close() 
        if s_name == str_name: 
            print(('''已经查询到你的信息,如下: 
            学生姓名:{} 
            学生性别:{} 
            学生学号:{} 
            ''').format(data[1], data[2], data[3])) 
    except TypeError: 
        print('输入有误,账号不存在') 
        welcome() 

def gai(): 
    s_name = input('请输入你的名字:') 
    try: 
        db = pymysql.connect(host='107.75.22.17', user='root', password='xxxxxxx', database='student', charset='utf8') 
        cursor = db.cursor() 
        sql = "select * from students where name like'%s'" % (s_name) 
        cursor.execute(sql) 
        data = cursor.fetchone() 
        print(data) 
        str_name = data[1] 
        str_id = data[0] 
        db.commit() 
        cursor.close() 
        db.close() 
        try: 
            if s_name == str_name: 
                print(('''已经查询到你的当前信息: 
                        学生姓名:{} 
                        学生性别:{} 
                        学生学号:{} 
                        ''').format(data[1], data[2], data[3])) 
                print('请输入你要更改的信息') 
                last_name = input('请输入你更改的姓名:') 
                last_sex = input('请输入你要修改的性别:') 
                last_num = input('请输入你要修改的学号(必须是int):') 
                db = pymysql.connect(host='107.75.22.17', user='root', password='xxxxxxxx', database='student',charset='utf8') 
                cursor = db.cursor() 
                sql = "update students set name='%s',sex='%s',num='%s' where id='%s'" % (last_name, last_sex, int(last_num), int(str_id)) 
                cursor.execute(sql) 
                db.commit() 
                cursor.close() 
                db.close() 
            else: 
                print('对不起,没有查询到相关学生信息。') 
        except ValueError: 
            print('学生id输入有误(重新输入),请输入数字id。') 
            welcome() 
    except TypeError: 
        print('输入有误,账号不存在') 
        welcome() 

def shan(): 
    s_name = input('请输入你的名字:') 
    try: 
        db = pymysql.connect(host='107.75.22.17', user='root', password='xxxxxxxx', database='student',charset='utf8') 
        cursor = db.cursor() 
        sql = "select * from students where name like'%s'" %(s_name) 
        cursor.execute(sql) 
        data = cursor.fetchone() 
        print(data) 
        str_name = data[1] 
        str_id = data[0] 
        db.commit() 
        cursor.close() 
        db.close() 
        if s_name == str_name: 
            print(('''已经查询到你的当前信息: 
                        学生姓名:{} 
                        学生性别:{} 
                        学生学号:{} 
                        ''').format(data[1], data[2], data[3])) 
            s = input('''你是否需要删除当前账号: 
                确认请按t,退出请按q''') 
            if s == 't': 
                db = pymysql.connect(host='107.75.22.17', user='root', password='xxxxxx', database='student', 
                                     charset='utf8') 
                cursor = db.cursor() 
                sql = "delete from students where id='%s'" % (str_id) 
                cursor.execute(sql) 
                db.commit() 
                cursor.close() 
                db.close() 
                print('删除账号{}成功'.format(str_name)) 
                welcome() 
            if s == 'q': 
                welcome() 
        else: 
            print('对不起,没有查询到相关学生信息。') 
    except TypeError: 
        print('输入有误,账号不存在') 

def all(): 
    db = pymysql.connect(host='107.75.22.17', user='root', password='xxxxxx', database='student', charset='utf8') 
    cursor = db.cursor() 
    sql = "select * from students" 
    cursor.execute(sql) 
    data = cursor.fetchall() 
    data_str = '\n'.join(str(a) for a in data) 
    end_data = data_str.replace('(','').replace(')','').replace(',','').replace('\'','').center(50) 
    print('学生信息如下:\n{}'.format(end_data)) 
    db.commit() 
    cursor.close() 
    db.close() 

def welcome(): 
    while True: 
        print(""" 
        到达主页,请选择对应序号: 
        1.添加学生信息 
        2.删除学生信息 
        3.修改学生信息 
        4.查询个人信息 
        5.显示所有学生信息 
        6.退出系统""") 
        choose = str(input('请输入相关选项:')) 
        if choose == '1': 
            add() 
        if choose == '2': 
            shan() 
        if choose == '3': 
            gai() 
        if choose == '4': 
            cha() 
        if choose == '5': 
            all() 
        if choose == '6': 
            break 
welcome() 

学生管理系统 v1.2

'''
基于数据库进行学生信息增删改查
学生管理系统V1.2
2019年8月3日15:13:57
编写者:QQ:598941324-读书
'''
import pymysql
import time
class Student_Manager():
    @staticmethod
    # 内部方法,调用数据库
    def mysql_db(sql):
        #连接数据库参数
        db = pymysql.connect(
            host='107.75.22.17',
            user='root',
            password='xxxxxxx',
            database='student',
            charset='utf8')
        #创建sql语句操作对象
        cursor = db.cursor()
        #执行
        cursor.execute(sql)
        #获取返回信息
        data = cursor.fetchall()
        #提交事务
        db.commit()
        #关闭连接
        cursor.close()
        db.close()
        return data

    @staticmethod
    def _mysql_db(sql):
        #连接数据库参数
        db = pymysql.connect(
            host='107.75.22.17',
            user='root',
            password='xxxxxxxxx',
            database='student',
            charset='utf8')
        #创建sql语句操作对象
        cursor = db.cursor()
        #执行
        cursor.execute(sql)
        #获取返回信息
        data1 = cursor.fetchone()
        #提交事务
        db.commit()
        #关闭连接
        cursor.close()
        db.close()
        return data1

    def add(self):
        try:
            s_name = input('请输入你的名字:')
            s_sex = input('请输入你的性别:')
            s_num = input('请输入你的学生id(必须为int类型):')
            sql = "insert into students(name,sex,num)value('%s','%s','%s')" %(s_name, s_sex, int(s_num))
            Student_Manager.mysql_db(sql)
            print(('''添加信息成功
            学生姓名:{}
            学生性别:{}
            学生学号: {}''').format(s_name,s_sex,s_num))
        except ValueError:
            print('学生id输入有误(重新输入),请输入数字id。')

    def cha(self):
        try:
            s_name = input('请输入你的名字:')
            sql = "select * from students where name like'%s'"%(s_name)
            data = Student_Manager._mysql_db(sql)
            print(''' 
            你的相关信息如下: 
            id 姓名 性别 学号''')
            xinxi = (''.join(str(i) for i in data)).replace('(','').replace(')','').replace(',','').replace('\'','').center(40)
            print(xinxi)
        except:
            print('输入有误或者账号不存在')


    def gai(self):
        while True:
            try:
                s_name = input('请输入你的名字:')
                sql = "select * from students where name like'%s'" % (s_name)
                data = Student_Manager._mysql_db(sql)
                dat = ((''' 
                       你的当前信息为: 
                       id:%s 
                       姓名:%s 
                       性别:%s 
                       学号:%s ''') % (data[0], data[1], data[2], data[3]))
                print(dat)
            except:
                print('输入有误或账号不存在')
                break
            choose = input('你是否要更改信息,是(Y|y)/否(N|n)')
            if choose == 'Y' or choose == 'y':
                try:
                    last_name = input('请输入你的名字:')
                    last_sex = input('输入性别:')
                    last_num = input('输入学号:')
                    str_id = data[0]
                    sql = "update students set name='%s',sex='%s',num='%s' where id='%s'" % (
                        last_name, last_sex, last_num, str_id)
                    Student_Manager._mysql_db(sql)
                    dat2 = ('''修改信息成功,如下: 
                    更新后学生姓名:%s 
                    更新后学生性别:%s 
                    更新后学生学号:%s''')%(last_name, last_sex, last_num)

                    print(dat2)
                    break
                except:
                    print('输入有误或账号不存在')
            if choose == 'N' or choose == 'n':
                break
            else:
                print('输入有误,将退出……')
                time.sleep(2)
                break

    def shan(self):
        while True:
            try:
                s_name = input('请输入你的名字:')
                sql = "select * from students where name like'%s'" % (s_name)
                data = Student_Manager._mysql_db(sql)
                dat = ((''' 
                你的当前信息为: 
                id:%s 
                姓名:%s 
                性别:%s 
                学号:%s ''') % (data[0], data[1], data[2], data[3]))
                print(dat)
            except:
                print('输入有误或账号不存在,退出系统')
                break
            choose = input('你是否要删除信息,是(Y|y)/否(N|n)')
            if choose == 'Y' or choose == 'y':
                str_id = data[0]
                sql = "delete from students where id='%s'" % (str_id)
                Student_Manager._mysql_db(sql)
                print('信息删除成功,即将推出……')
                time.sleep(1)
                break
            if choose == 'N' or choose == 'n':
                break
            else:
                print('输入有误,将退出……')
                time.sleep(2)
                break

    def all(self):
        try:
            sql = "select * from students"
            data = Student_Manager.mysql_db(sql)
            xinxi = ('\n'.join(str(i) for i in data)).replace('(','').replace(')','').replace(',','').replace('\'','')
            print(('''id 姓名 性别 学号\n{}''').format(xinxi))

        except:
            print('输入有误,账号不存在')

if __name__ == "__main__":
    manager = Student_Manager()
    while True:
        print(""" 
               到达主页,请选择对应序号: 
               1.添加学生信息 
               2.删除学生信息 
               3.修改学生信息 
               4.查询个人信息 
               5.显示所有学生信息 
               6.退出系统""")
        num = str(input('你输入的是:'))
        if num == '1':
            manager.add()
        if num == '2':
            manager.shan()
        if num == '3':
            manager.gai()
        if num == '4':
            manager.cha()
        if num == '5':
            manager.all()
        if num == '6':
            break

到头来 我们记住的 不是敌人的攻击 而是朋友的沉默 ---马丁·路德·金

Responses