基于python+mysql的学生选课系统(文末附源代码)

这篇具有很好参考价值的文章主要介绍了基于python+mysql的学生选课系统(文末附源代码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

此系统基于控制台运行,代码比较多,功能齐全,耐心看完!

先看运行效果图:

python选课系统,期末课程设计大作业+源代码+实验文档,mysql,数据库,python,选课系统

功能介绍:

学生端:实现注册、修改信息、查看选课、实现选课功能;

教师端功能如下:

1.添加课程
2.删除课程
3.修改课程
4.学生课程评分
5.查看所有课程
6.查看选课情况
7.退课
8.查看班级人员情况
9.删除学生

 该系统分为学生端和管理员教师端,学生可以注册,然后将信息存储在mysql的student表中,并登录:

python选课系统,期末课程设计大作业+源代码+实验文档,mysql,数据库,python,选课系统

 

python选课系统,期末课程设计大作业+源代码+实验文档,mysql,数据库,python,选课系统

 

mysql数据库设计4张表:

python选课系统,期末课程设计大作业+源代码+实验文档,mysql,数据库,python,选课系统

表结构如下:

python选课系统,期末课程设计大作业+源代码+实验文档,mysql,数据库,python,选课系统 python选课系统,期末课程设计大作业+源代码+实验文档,mysql,数据库,python,选课系统

 python选课系统,期末课程设计大作业+源代码+实验文档,mysql,数据库,python,选课系统

python选课系统,期末课程设计大作业+源代码+实验文档,mysql,数据库,python,选课系统 

 操作流程演示:

使用上面的测试学生登录系统python选课系统,期末课程设计大作业+源代码+实验文档,mysql,数据库,python,选课系统

否则登录失败:

python选课系统,期末课程设计大作业+源代码+实验文档,mysql,数据库,python,选课系统

 

 学生实现信息修改:

python选课系统,期末课程设计大作业+源代码+实验文档,mysql,数据库,python,选课系统

查看选课:

python选课系统,期末课程设计大作业+源代码+实验文档,mysql,数据库,python,选课系统 

 输入选课:

python选课系统,期末课程设计大作业+源代码+实验文档,mysql,数据库,python,选课系统

学生端查询已选课程:

python选课系统,期末课程设计大作业+源代码+实验文档,mysql,数据库,python,选课系统 

 教师端登录系统:

python选课系统,期末课程设计大作业+源代码+实验文档,mysql,数据库,python,选课系统

 教师端添加选课信息:python选课系统,期末课程设计大作业+源代码+实验文档,mysql,数据库,python,选课系统

 修改的课课程必须得在数据库中有这门课:python选课系统,期末课程设计大作业+源代码+实验文档,mysql,数据库,python,选课系统

 刷新数据库,即可看到这门课已成功更改:

python选课系统,期末课程设计大作业+源代码+实验文档,mysql,数据库,python,选课系统

选课结束后,为学生评分: 

python选课系统,期末课程设计大作业+源代码+实验文档,mysql,数据库,python,选课系统

学生端即可登录,查看分数:

python选课系统,期末课程设计大作业+源代码+实验文档,mysql,数据库,python,选课系统

 教师查看所有课程信息:

python选课系统,期末课程设计大作业+源代码+实验文档,mysql,数据库,python,选课系统

管理员查看选课及该课程平均分:

python选课系统,期末课程设计大作业+源代码+实验文档,mysql,数据库,python,选课系统 

 管理员为学生实现退选的操作:

python选课系统,期末课程设计大作业+源代码+实验文档,mysql,数据库,python,选课系统

 查询不同专业人数:

python选课系统,期末课程设计大作业+源代码+实验文档,mysql,数据库,python,选课系统

删除学生功能:

python选课系统,期末课程设计大作业+源代码+实验文档,mysql,数据库,python,选课系统 

python选课系统,期末课程设计大作业+源代码+实验文档,mysql,数据库,python,选课系统 

再次查看、即没有学号为2023的同学:

python选课系统,期末课程设计大作业+源代码+实验文档,mysql,数据库,python,选课系统 

 退出系统:

python选课系统,期末课程设计大作业+源代码+实验文档,mysql,数据库,python,选课系统

 各部分代码实现:

需要源代码:

1、看主页联系加

2、访问以下链接:

腾讯文档腾讯文档-在线文档https://docs.qq.com/doc/p/71239d69a76f56cf1521717ae6b22c27cf876f10链接数据库代码:

import pymysql


def runSql(sql) -> str:
    # 连接数据库
    conn = pymysql.connect(
        # 连接名称,默认127.0.0.1
        host="127.0.0.1"
        # 用户名
        , user='root'
        # 密码
        , passwd='你的数据库密码'
        # 端口,默认为3306
        , port=3306
        # 数据库名称
        , db='python'
        # 字符编码
        , charset='utf8'
    )
    cur = conn.cursor()  # 生成游标对象

    if sql[0] == 's' or sql[0] == 'S':
        cur.execute(sql)
        data = cur.fetchall()  # 通过fetchall方法获得数据
        return data
    else:
        try:
            cur.execute(sql)  # 执行插入的sql语句
            conn.commit()  # 提交到数据库执行
            print('执行成功!')
        except RuntimeError as e:
            print("执行失败!", e)
            conn.rollback()  # 如果发生错误则回滚
    cur.close()  # 关闭游标
    conn.close()  # 关闭数据库连接


if __name__ == '__main__':
    

main.py代码:

import os
import dao.studentDao as S_d
from Logs.Tags import *
from function.RootFunction import root_login
from function.StudentFunction import student_login
import function.StudentFunction as Fun_S

if __name__ == '__main__':
    while True:
        loginTogs()
        a = input('请输入想要进行的操作!\n')
        if int(a) == 1:  # 学生登录
            os.system('cls')
            student_login()
            os.system('cls')
        elif int(a) == 2:    # 管理员登录
            os.system('cls')
            root_login()
            os.system('cls')
        elif int(a) == 0:    # 退出
            print('成功退出系统!欢迎您下次使用!')
            #os.system('pause')
            break
        elif int(a) == 3:
            os.system('cls')
            Fun_S.student_register()  # 学生注册
            input('按任意键继续!')
            os.system('cls')
        else:
            print('输入有误!请重新输入!')
            input('按任意键继续!')
            os.system('cls')

功能函数代码:

def loginTogs():
    print('---------选课管理系统-----------')
    print('1.学生登录')
    print('2.管理员登录')
    print('3.学生注册')
    print('0.退出')
    print('------------------------------')


def studentTags():
    print('--------------可选操作(学生)----------------')
    print('1.修改信息')
    print('2.选课')
    print('3.已选课程')
    print('0.退出')
    print('-------------------------------------')


def rootTags():
    print('--------------可选操作----------------')
    print('1.添加课程')
    print('2.删除课程')
    print('3.修改课程')
    print('4.学生课程评分')
    print('5.查看所有课程')
    print('6.查看选课情况')
    print('7.退课')
    print('8.查看班级人员情况')
    print('9.删除学生')
    print('0.退出')
    print('-------------------------------------')

管理员功能代码实现:

from Logs.Tags import rootTags
from dao.studentDao import major_student, student_print
from pojo.curriculum import curriculum
import dao.curriculumDao as C_d
import dao.courseSelectionDao as CS_d
import os
import dao.studentDao as S_d


def root_login():
    print('请输入账号和密码:')
    number = input('账号:')
    password = input('密码:')
    if number == 'root':
        if password == '123123':
            print('密码正确!')
            while True:
                rootTags()
                a = int(input('请输入要进行的操作:'))
                if a == 0:      # 退出
                    break
                elif a == 9:    # 删除学生
                    student_print(S_d.selectAll())
                    sno = input('输入要删除学生学号:')
                    S_d.delete(sno)
                    input('按任意键回车继续!')
                    os.system('cls')
                elif a == 1:    # 添加课程
                    add_course()
                    input('按任意键回车继续!')
                    os.system('cls')
                elif a == 2:    # 删除课程
                    C_d.course_print(C_d.selectAll())
                    tno = input('要删除的课程号:')
                    C_d.delete(tno)
                    input('按任意键回车继续!')
                    os.system('cls')
                elif a == 3:    # 修改课程
                    tno = input('要修改的课程号:')
                    update_course(C_d.selectOne(tno))
                    os.system('cls')
                elif a == 4:    # 学生课程评分
                    CS_d.allCourseSelectionPrint()
                    sno = input('学 号:')
                    tno = input('课程号:')
                    grade = float(input('成绩:'))
                    CS_d.student_grade(sno, tno, grade)
                    input('按任意键回车继续!')
                    os.system('cls')
                elif a == 5:    # 查看所有课程信息
                    C_d.course_print(C_d.selectAll())
                    input('按任意键回车继续!')
                    os.system('cls')
                elif a == 6:    # 查看选课情况
                    tno = input('请输入课程号查看选课信息:')
                    data = CS_d.course_students(tno)
                    CS_d.course_students_print(data)
                    print('选修该课程的人数为:%s' % len(data))
                    input('按任意键回车继续!')
                    os.system('cls')
                elif a == 7:    # 退课
                    # 打印所有选课信息
                    CS_d.allCourseSelectionPrint()
                    sno = input('要退课学号:')
                    tno = input('要退课课程号:')
                    CS_d.unApply(sno, tno)
                    os.system('cls')
                elif a == 8:    # 查看班级人员情况
                    major = input('输入专业名称:')
                    student_print(major_student(major))
                    input('按任意键回车继续!')
                    os.system('cls')
                else:
                    print('错误输入无法执行!')
        else:
            print('密码错误!')
    else:
        print('账号不存在!')


def add_course():
    c = curriculum()
    c.tno = C_d.getMaxTno() + 1
    course_input(c)
    C_d.add(c)


def update_course(c):
    course_input(c)
    C_d.update(c)


def course_input(c):
    c.name = input('课程名:')
    c.credit = input('学分:')


if __name__ == '__main__':
    root_login()

选课实现的代码:

class courseSelection:
    def __init__(self):
        self.sno = None
        self.tno = None
        self.grade = None

    def toString(self):
        print("学号:", self.sno,
              "课程号:", self.tno)

学生功能代码:文章来源地址https://www.toymoban.com/news/detail-767024.html

import os
import dao.studentDao as S_d
import dao.curriculumDao as C_d
from Logs.Tags import studentTags
import dao.courseSelectionDao as CS_d
from dao.sql import runSql
from pojo.student import student


def student_login():
    print('请输入学生账号和密码:')
    sno = input('学号:\n')
    password = input('password:\n')
    student_get = S_d.selectOne(sno)
    if type(student_get) is student and student_get.sno == sno:
        if student_get.password == password:
            # 进入选课
            os.system('cls')
            while True:
                studentTags()
                a = int(input('请输入想要进行的操作!\n'))
                if a == 0:
                    break
                elif a == 1:    # 修改信息
                    S_d.student_information_print(S_d.selectOne(sno))
                    student_update_information(sno)
                    os.system('cls')
                elif a == 2:    # 选课
                    if S_d.select_course_limit(sno) is True:
                        print('所有课程:')
                        C_d.course_print(C_d.selectAll())    # 打印课程信息
                        tno = input('想要选的课程号:')
                        CS_d.apply(sno, tno)
                        os.system('cls')
                elif a == 3:    # 已选课程
                    S_d.selected_Courses(sno)
                    input('按任意键回车继续!')
                    os.system('cls')
        else:
            print('密码错误!')
            input('按任意键回车继续!')
    else:
        print('用户不存在!')
        input('按任意键回车继续!')


# 学生注册
def student_register():
    s = student()
    s.sno = input("学号:")
    student_input(s)
    S_d.add(s)


# 学生修改信息
def student_update_information(sno):
    s = S_d.selectOne(sno)
    student_input(s)
    S_d.update(s)


# 学生信息输入封装
def student_input(s):
    s.name = input("姓名:")
    s.sex = input("性别:")
    s.age = input("出生年份:")
    s.native_place = input("籍贯:")
    s.password = input("密码:")
    s.major = input('专业:')

到了这里,关于基于python+mysql的学生选课系统(文末附源代码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于SpringBoot学生选课系统

    随着信息技术的发展,学生选课系统也逐渐从传统的手工操作向计算机化、网络化、智能化方向发展。本文介绍了如何使用SpringBoot框架开发一款学生选课系统。 选课系统是一个多功能的系统,主要用于管理学生的选课流程、课程信息、成绩管理等方面。在实现这些功能时,

    2024年02月04日
    浏览(45)
  • 基于java学生选课系统

    开发工具eclipse,jdk1.8  技术:java swing 数据库:mysql5.7 学生选课系统功能:管理员、教师、学生三个角色 一、管理员功能: 1.登录、修改密码、退出系统 2.学生管理:添加、修改、删除、查询 3.班级管理:添加、修改、删除、查询 4.教师管理:添加、修改、删除、查询 5.课程

    2024年02月02日
    浏览(44)
  • 34基于Java的学生选课系统或学生课程管理系统

    本系统是基于Java的学生选课信息管理系统,可以有效的对学生选课信息、学生个人信息、教师个人信息等等进行管理。 摘要:基于java的学生课程管理系统,基于java的学生选课系统,javaWeb的学生选课系统,学生成绩管理系统,课表管理系统,学院管理系统,大学生选课系统

    2024年02月03日
    浏览(51)
  • 大学生选修选课系统|基于Springboot的大学生选修选课系统设计与实现(源码+数据库+文档)

    大学生选修选课系统目录 目录 基于Springboot的大学生选修选课系统设计与实现 一、前言 二、系统功能设计  三、系统实现  1、用户信息管理 2、 课程信息管理 3、排课信息管理 4、公告信息管理  四、数据库设计 1、实体ER图   五、核心代码   六、论文参考 七、最新计算机

    2024年03月11日
    浏览(77)
  • Java+Swing+MySQL实现学生选课管理系统

    目录 一、系统介绍 1.运行环境 2.技术说明 3.系统功能 4.数据库实体E-R图设计 5.数据库表的设计 二、系统实现  1.用户登录 2.主界面   3.数据库连接 4.数据查询 5.查询课程信息 6.添加学生信息 7.修改学生信息 三、部分代码  1.ChangePwd.java 2.Login.java 3.Main.java 5.备注 开发工具:

    2024年02月08日
    浏览(70)
  • 基于JavaWeb实现的学生选课系统(源码+数据库)

    本项目是一套基于JavaWeb实现的学生选课系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse 确保可以运行! 该系统功能完善、界面美观、

    2024年02月08日
    浏览(76)
  • 基于微信小程序的在线选课系统+springboot+vue.js附带文章和源代码设计说明文档ppt

    🌞 博主介绍 :✌CSDN特邀作者、985计算机专业毕业、某互联网大厂高级全栈开发程序员、码云/掘金/华为云/阿里云/InfoQ/StackOverflow/github等平台优质作者、专注于Java、小程序、前端、python等技术领域和毕业项目实战,以及程序定制化开发、全栈讲解、就业辅导、面试辅导、简

    2024年03月12日
    浏览(67)
  • 一零五六、Jsp+mysql 实现学生选课系统(附源码及数据库)

    目录 实现效果 项目代码 数据库 结语 实现效果 login.jsp index.jsp  course_query.jsp  course_selection.jsp   course_withdraw.jsp selection_query.jsp    项目代码 checkSelectionStatus.jsp course_query.jsp course_selection.jsp course_selection_check.jsp course_withdraw.jsp course_withdraw_check.jsp index.jsp login.jsp login_check.jsp se

    2024年02月09日
    浏览(53)
  • springboot+mysql学生选课系统小程序-计算机毕业设计源码59098

    摘  要 基于微信的学生选课系统是利用微信中的小程序功能来实现,自2011年微信诞生以来,微信的使用越来越普遍,尤其最近几年微信旗下的微信小程序因其不占内存,用完即走的特点吸引越来越多用户,使用微信小程序设计的系统也越来越多。本课题利用了发展至今逐渐

    2024年01月23日
    浏览(125)
  • 【Jsp课设】3款基于JavaWeb的学生选课管理系统

     项目介绍:后端采用Jsp+Servlet。前端使用的是Layui的一个网站模板。开发一个在线的学生选课管理系统,用于课程设计的使用。 项目类型:JavaWeb源码  用户类型:2个角色(管理员+学生) 主要技术:Jsp+Servlet+MySQL+Jquery(前端Bootstrap或者Layui) 开发工具:Eclipse/Idea均可使用,有两

    2024年02月04日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包