前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >学生管理系统

学生管理系统

作者头像
cuijianzhe
发布2022-06-14 17:51:54
2.9K0
发布2022-06-14 17:51:54
举报
文章被收录于专栏:cuijianzhe

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

  • 创建数据库和数据表;
代码语言:javascript
复制
mysql> create database student;
Query OK, 1 row affected (0.01 sec)
mysql> use student;
Database changed
mysql> create table students(id int primary key auto_increment,name varchar(30),sex varchar(30),num int) charset='utf8';
Query OK, 0 rows affected (0.00 sec)

学生管理系统

学生管理系统 v1.1

代码语言:javascript
复制
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @File  : mysqlinfo.py
# @Author: cuijianzhe
# @Date  :
# @Desc  :

'''
基于数据库进行学生信息增删改查
学生管理系统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='192.168.51.202',
            user='root',
            password='598941324',
            database='student',
            charset='utf8'
        )
        #创建sql语句操作对象
        cursor = db.cursor()
        #执行 使用execute方法执行sql语句,相当于操作都在mysql命令中输入sql语句并回车
        cursor.execute(sql)
        #获取返回信息
        data = cursor.fetchall()
        #提交事务
        db.commit()
        #关闭连接
        cursor.close()
        db.close()
        return data

    def add_database(self):
        sql = '''create table students(
        id int primary key auto_increment,
        name varchar(30),
        age int,
        classroom int)'''
        Student_Manager.mysql_db(sql)

    def add(self):
        try:
            s_name = input('请输入你的名字:')
            s_sex = input('请输入你的年龄:')
            s_num = input('请输入你的学生(必须为int类型):')
            sql = "insert into students(name,age,classroom)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)[0]
                dat = ((''' 
                       你的当前信息为: 
                       id:%s 
                       姓名:%s 
                       年龄:%s 
                       学号:%s ''') % (data[0], data[1], data[2], data[3]))
                print(dat)
                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',age='%s',classroom='%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
            except:
                print('账号不存在或输入有误')
                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)[0]
                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

标题:学生管理系统

作者:cuijianzhe

地址:https://cloud.tencent.com/developer/article/2022771

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 学生管理系统
    • 学生管理系统 v1.1
    相关产品与服务
    数据库
    云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档