精华内容
下载资源
问答
  • 691SSM学生成绩管理系统教务管理系统mysql

    691SSM学生成绩管理系统教务管理系统mysql
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • JavaWeb和Mysql数据库开发的学生教务管理系统。三种用户:管理员、教师、学生。管理员可以添加课程、老师、学生、班级、课表等;老师可以给成绩、考勤。学生可以选课、退课等等。开发环境:Myeclipse10+mysql5.5。...
  • 基于SSM的教务管理系统(选课课程评分)-java教务管理系统mysql数据源 1.包含源程序,数据库脚本。代码和数据库脚本都有详细注释。 2.课题设计仅供参考学习使用,可以在此基础上进行扩展完善 代码已经上传github,...

    基于SSM的教务管理系统(选课课程评分)-java教务管理系统mysql数据源

    实现功能

    • 基于实现的用户权限管理系统, 是业内最为优秀的权限管理框架, 支持方法级别的权限控制
    • 管理员模块能够实现用户管理(管理员, 教师,学生的管理), 能够实现课表的录入删除修改, 并能对用户信息, 用户课表, 学生成绩进行查询
    • 教师模块可以录入学生成绩, 查询学生成绩, 查询教学质量评价表, 并能查询课表
    • 学生模块能够查询个人课表, 查询个人成绩, 并进行教学质量评估

    技术原理

    项目基于Spring, SpringMVC, Mybatis编写, 前端页面优雅, 整个权限系统采用业内知名的shiro框架进行实现, shiro通过realm机制, 能够实现方法级别的权限控制, 其中本项目的权限设计十分优雅, 非常有学习意义, 基于此项目可以二次开发其他的带有权限控制的管理系统

    1.包含源程序,数据库脚本。代码和数据库脚本都有详细注释。
    2.课题设计仅供参考学习使用,可以在此基础上进行扩展完善

    代码已经上传github,下载地址 https://github.com/21503882/teaching-material
    开发环境:
    Eclipse ,MYSQL,JDK1.8,Tomcat 7
    涉及技术点:
    MVC模式、SpringMvc、Mybatis、Spring、HTML、JavaScript、CSS、JQUERY、log4j、Ajax、maven等
    系统采用Mybatis框架实现ORM对象关系映射,前台JSP实现,后台springMvc映射,使用Spring框架进行整合。适合学习J2EE的一段时间的熟手,代码思路清晰,注解详细,数据库用的是mysql5.1,服务器用的tomcat7,JDK版本1.8. 编程软件Eclispe J2EE版本。是典型MVC架构,并且前后台分离

     

     

     

    主要功能

    管理员登录(课程管理,学生管理,教师管理,账号密码管理,修改密码,退出系统),学生登录(所有课程,已选课程,已修课程,修改密码,个人信息,退出系统),教师登录(我的课程,修改密码,个人信息,退出系统)。

    ————————————————————————————————————
    教务系统管理平台充分利用互联网络B/S管理系统模式,以网络为平台,为各个学校教务系统的管理提供一个平台,帮助学校管理教务系统,用一个帐号解决学校教务教学管理,并且学校可以自由选择学校需要的教务管理系统,灵活地定制符合学校自己实际情况的教务系统。
    ————————————————————————————————————

    具体功能这里不再赘述,请下方看系统详细演示图,如果大家有什么疑问或者什么不懂得可以在下方给我留言,或者你有更好的建议等等都可以的,也可以找我和我一起交流沟通,互相学习进步!伸手党别来找我!添加时请注明来意。
    好了下面让我来给大家展示一下这个项目的页面效果:
    ————————————————

    package cn.makangning.controller;
     
    import java.awt.image.BufferedImage;
    import java.io.IOException;
    import java.util.List;
     
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
     
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
     
    import com.alibaba.fastjson.JSON;
     
    import cn.makangning.entity.User;
    import cn.makangning.service.UserService;
    import cn.makangning.util.Md5Util;
    import cn.makangning.util.VerifyCode;
     
    @Controller
    @RequestMapping("login")
    public class LoginController {
        
        @Autowired
        private UserService userService;
     
        /**
         * 登录
         * @param user
         * @param request
         * @return
         */
        @RequestMapping("dologin")
        @ResponseBody
        public String login(User user,HttpServletRequest request) {
            user.setPhone(13470016983l);
            user.setName("admin");
            System.out.println(user.getPassword());
            //md5加密
            user.setPassword(new Md5Util().getMd5(user.getPassword()));
            user.setState(1);
            //字符串转json
            String jsonstr = JSON.toJSONString(user);
    //        System.out.println(jsonstr);
            try {
                HttpSession session = request.getSession();
                List<User> user2 = userService.login(user);
                String userjson = JSON.toJSONString(user2.get(0));
                System.out.println(userjson);
                if(user2.size() > 0) {
                    session.setAttribute("userinfo", user2.get(0));
                    session.setAttribute("usertype", user2.get(0).getType());
                    return "home/index";
                }
            } catch (Exception e) {
                // TODO: handle exception
                System.out.println("登录时发生错误(检查账号密码)");
            }
            return "errer";
        }
        
        /**
         * 验证码创建
         * @param request
         * @param response
         * @throws IOException
         */
        @RequestMapping("code")
        public void code(HttpServletRequest request,HttpServletResponse response) throws IOException {
            HttpSession session = request.getSession();
            session.removeAttribute("verCode");
            VerifyCode vc = new VerifyCode();//创建VerifyCode类的对象
            BufferedImage bi = vc.getImage();//调用getImge()方法获得一个BufferedImage对象
            VerifyCode.output(bi,response.getOutputStream());//调用静态方法output()方法将图片保存在文件输出流中
            String code = vc.getText();
            session.setAttribute("verCode", code);
            System.out.println(vc.getText());//在控制台上打印验证码的文本值
        }
        
        /**
         * 验证码验证
         * @param code
         * @param request
         * @return
         */
        @RequestMapping("Checkcode/{code}")
        @ResponseBody
        public int Checkcode(@PathVariable String code,HttpServletRequest request){
            System.out.println(code);
            HttpSession session = request.getSession();
            String verCode = (String) session.getAttribute("verCode");
            if(code.equals(verCode)) {
                return 1;
            }else {
                return 0;
            }
        }
    }
     

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <!-- 
    content属性值 :
         width:可视区域的宽度,值可为数字或关键词device-width
         height:同width
         intial-scale:页面首次被显示是可视区域的缩放级别,取值1.0则页面按实际尺寸显示,无任何缩放
         maximum-scale=1.0, minimum-scale=1.0;可视区域的缩放级别,
         maximum-scale用户可将页面放大的程序,1.0将禁止用户放大到实际尺寸之上。
         user-scalable:是否可对页面进行缩放,no 禁止缩放
     -->
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta
        content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0, shrink-to-fit=no'
        name='viewport' />
    <link rel="stylesheet"
        href="${ pageContext.request.contextPath }/assets/css/bootstrap.min.css">
    <link rel="stylesheet"
        href="${ pageContext.request.contextPath }/assets/css/ready.css">
    <link rel="stylesheet"
        href="${ pageContext.request.contextPath }/assets/css/demo.css">
    </head>
    <body>
        <div class="main-header">
            <div class="logo-header">
                <a href="${ pageContext.request.contextPath }/home/index"
                    class="logo"> <!-- 期望教育教务系统 --> <img
                    src="${ pageContext.request.contextPath }/assets/img/logo.jpg"
                    with="100" height="50">
                </a>
                <button class="navbar-toggler sidenav-toggler ml-auto" type="button"
                    data-toggle="collapse" data-target="collapse"
                    aria-controls="sidebar" aria-expanded="false"
                    aria-label="Toggle navigation">
                    <span class="navbar-toggler-icon"></span>
                </button>
                <button class="topbar-toggler more">
                    <i class="la la-smile-o"></i>
                </button>
            </div>
            <nav class="navbar navbar-header navbar-expand-lg">
            <div class="container-fluid">
                <!-- <form class="navbar-left navbar-form nav-search mr-md-3" action="">
                    <div class="input-group">
                        <input type="text" placeholder="姓名、课程名..." class="form-control">
                        <div class="input-group-append">
                            <span class="input-group-text"> <i
                                class="la la-search search-icon"></i>
                            </span>
                        </div>
                    </div>
                </form> -->
                <ul class="navbar-nav topbar-nav ml-md-auto align-items-center">
                    <%-- <li class="nav-item dropdown hidden-caret"><a
                        class="nav-link dropdown-toggle" href="#" id="navbarDropdown"
                        role="button" data-toggle="dropdown" aria-haspopup="true"
                        aria-expanded="false"> <i class="la la-envelope"></i>
                    </a>
                        <div class="dropdown-menu" aria-labelledby="navbarDropdown">
                            <a class="dropdown-item" href="#">Action</a> <a
                                class="dropdown-item" href="#">Another action</a>
                            <div class="dropdown-divider"></div>
                            <a class="dropdown-item" href="#">Something else here</a>
                        </div></li>
                    <li class="nav-item dropdown hidden-caret"><a
                        class="nav-link dropdown-toggle" href="#" id="navbarDropdown"
                        role="button" data-toggle="dropdown" aria-haspopup="true"
                        aria-expanded="false"> <i class="la la-bell"></i> <span
                            class="notification">3</span>
                    </a>
                        <ul class="dropdown-menu notif-box"
                            aria-labelledby="navbarDropdown">
                            <li>
                                <div class="dropdown-title">You have 4 new notification</div>
                            </li>
                            <li>
                                <div class="notif-center">
                                    <a href="#">
                                        <div class="notif-icon notif-primary">
                                            <i class="la la-user-plus"></i>
                                        </div>
                                        <div class="notif-content">
                                            <span class="block"> New user registered </span> <span
                                                class="time">5 minutes ago</span>
                                        </div>
                                    </a> <a href="#">
                                        <div class="notif-icon notif-success">
                                            <i class="la la-comment"></i>
                                        </div>
                                        <div class="notif-content">
                                            <span class="block"> Rahmad commented on Admin </span> <span
                                                class="time">12 minutes ago</span>
                                        </div>
                                    </a> <a href="#">
                                        <div class="notif-img">
                                            <img
                                                src="${ pageContext.request.contextPath }/assets/img/profile2.jpg"
                                                alt="Img Profile">
                                        </div>
                                        <div class="notif-content">
                                            <span class="block"> Reza send messages to you </span> <span
                                                class="time">12 minutes ago</span>
                                        </div>
                                    </a> <a href="#">
                                        <div class="notif-icon notif-danger">
                                            <i class="la la-heart"></i>
                                        </div>
                                        <div class="notif-content">
                                            <span class="block"> Farrah liked Admin </span> <span
                                                class="time">17 minutes ago</span>
                                        </div>
                                    </a>
                                </div>
                            </li>
                            <li><a class="see-all" href="javascript:void(0);"> <strong>See
                                        all notifications</strong> <i class="la la-angle-right"></i>
                            </a></li>
                        </ul></li> --%>
                    <li class="nav-item dropdown"><a
                        class="dropdown-toggle profile-pic" data-toggle="dropdown" href="#"
                        aria-expanded="false"> <img
                            src="${ pageContext.request.contextPath }/${ userinfo.img }"
                            alt="user-img" width="36" class="img-circle"><span>${ userinfo.name }</span></span>
                    </a>
                        <ul class="dropdown-menu dropdown-user">
                            <li>
                                <div class="user-box">
                                    <div class="u-img">
                                        <img
                                            src="${ pageContext.request.contextPath }/${ userinfo.img }"
                                            alt="user">
                                    </div>
                                    <div class="u-text">
                                        <h4>${ userinfo.name }</h4>
                                        <p class="text-muted">${ userinfo.email }</p>
                                        <a class="btn btn-rounded btn-danger dropdown-item" data-toggle="modal" data-target="#userupdate">查看资料</a>
                                    </div>
                                </div>
                            </li>
                            <div class="dropdown-divider"></div>
                            <!-- <a class="dropdown-item" href="#"><i class="ti-settings"></i>
                                </a> -->
                                <a class="dropdown-item" data-toggle="modal" data-target="#passwordUpdate">
                                    修改密码
                                </a>
                            <div class="dropdown-divider"></div>
                            <a class="dropdown-item"
                                href="${ pageContext.request.contextPath }/home/exit"><i
                                class="fa fa-power-off"></i> 退出</a>
                        </ul> <!-- /.dropdown-user --></li>
                </ul>
            </div>
            </nav>
        </div>
        <div class="sidebar">
            <div class="scrollbar-inner sidebar-wrapper">
                <%-- <div class="user">
                    <div class="photo">
                        <img src="${ pageContext.request.contextPath }/assets/image/profile.jpg">
                    </div>
                    <div class="info">
                        <a class="" data-toggle="collapse" href="#collapseExample"
                            aria-expanded="true"> <span> 马康宁 <span
                                class="user-level">超级管理员</span> <span class="caret"></span>
                        </span>
                        </a>
                        <div class="clearfix"></div>
     
                        <div class="collapse in" id="collapseExample" aria-expanded="true"
                            style="">
                            <ul class="nav">
                                <li><a href="#profile">
                                    <span class="link-collapse">我的资料修改</span>
                                </a></li>
                                <li><a href="${ pageContext.request.contextPath }/home/personal"> 
                                    <span class="link-collapse">授权管理</span>
                                </a></li>
                                
                                <li><a href="#settings"> <span class="link-collapse">退出</span>
                                </a></li>
                            </ul>
                        </div>
                    </div>
                </div> --%>
                <ul class="nav">
                <c:if test="${ userinfo.type == 1 || userinfo.type == 2 || userinfo.type == 3 }">
                    <li class="nav-item active"><a
                        href="${ pageContext.request.contextPath }/home/index"> <i
                            class="la la-dashboard"></i>
                            <p>首页</p> <!-- <span class="badge badge-count">5</span> -->
                    </a></li>
                    <li class="nav-item"><a
                        href="${ pageContext.request.contextPath }/students/student"> <i
                            class="la la-child"></i>
                            <p>学生管理</p> <span id="students" class="badge badge-success"></span>
                    </a></li>
                    </c:if>
                    <c:if test="${ userinfo.type == 2 || userinfo.type == 3 }">
                    <li class="nav-item"><a
                        href="${ pageContext.request.contextPath }/teacher/teacher"> <i
                            class="la la-smile-o"></i>
                            <p>教师管理</p> <span id="teachers" class="badge badge-success"></span>
                    </a></li>
                    </c:if>
                    <c:if test="${ userinfo.type == 1 || userinfo.type == 2 || userinfo.type == 3 }">
                    <li class="nav-item"><a
                        href="${ pageContext.request.contextPath }/course/course"> <i
                            class="la la-th-list"></i>
                            <p>课程管理</p> <span id="courses" class="badge badge-success"></span>
                    </a></li>
                    </c:if>
                    <c:if test="${ userinfo.type == 1 || userinfo.type == 2 || userinfo.type == 3 }">
                    <li class="nav-item"><a
                        href="${ pageContext.request.contextPath }/classroom/classroom"> <i
                            class="la la-bank"></i>
                            <p>教室管理</p> <span id="classrooms" class="badge badge-success"></span>
                    </a></li>
                    </c:if>
                    <c:if test="${ userinfo.type == 2 || userinfo.type == 3 }">
                    <li class="nav-item"><a
                        href="${ pageContext.request.contextPath }/schedule/schedule"> <i
                            class="la la-th"></i>
                            <p>排课管理</p> <!-- <span class="badge badge-danger">25</span> -->
                    </a></li>
                    </c:if>
                    <c:if test="${ userinfo.type == 1 }">
                    <li class="nav-item"><a
                        href="${ pageContext.request.contextPath }/schedule/schedule"> <i
                            class="la la-th"></i>
                            <p>课表查询</p> <!-- <span class="badge badge-danger">25</span> -->
                    </a></li>
                    </c:if>
                    <%-- <li class="nav-item"><a
                        href="${ pageContext.request.contextPath }/achievements/achievements">
                            <i class="la la-list-alt"></i>
                            <p>成绩管理</p> <!-- <span class="badge badge-danger">25</span> -->
                    </a></li> --%>
                    <c:if test="${ userinfo.type == 3 }">
                    <li class="nav-item"><a
                        href="${ pageContext.request.contextPath }/cost/cost"> <i
                            class="la la-calculator"></i>
                            <p>收费管理</p>
                    </a></li>
                    </c:if>
                </ul>
            </div>
     
        </div>
    <%@ include file="user/updatepassword.jsp" %>
    <%@ include file="user/authorization.jsp" %>
    </body>
    <script
        src="${ pageContext.request.contextPath }/assets/js/core/jquery.3.2.1.min.js"></script>
    <script
        src="${ pageContext.request.contextPath }/assets/js/plugin/jquery-ui-1.12.1.custom/jquery-ui.min.js"></script>
    <script
        src="${ pageContext.request.contextPath }/assets/js/core/popper.min.js"></script>
    <script
        src="${ pageContext.request.contextPath }/assets/js/core/bootstrap.min.js"></script>
    <!-- <script src="assets/js/plugin/chartist/chartist.min.js"></script>
    <script src="assets/js/plugin/chartist/plugin/chartist-plugin-tooltip.min.js"></script>
     -->
    <script
        src="${ pageContext.request.contextPath }/assets/js/plugin/bootstrap-notify/bootstrap-notify.min.js"></script>
    <script
        src="${ pageContext.request.contextPath }/assets/js/plugin/bootstrap-toggle/bootstrap-toggle.min.js"></script>
    <!-- <script src="assets/js/plugin/jquery-mapael/jquery.mapael.min.js"></script>
    <script src="assets/js/plugin/jquery-mapael/maps/world_countries.min.js"></script>
    <script src="assets/js/plugin/chart-circle/circles.min.js"></script>
     -->
    <script
        src="${ pageContext.request.contextPath }/assets/js/plugin/jquery-scrollbar/jquery.scrollbar.min.js"></script>
    <script
        src="${ pageContext.request.contextPath }/assets/js/ready.min.js"></script>
    <script src="${ pageContext.request.contextPath }/assets/js/demo.js"></script>
    <script src="${ pageContext.request.contextPath }/assets/js/head.js"></script>
    <script language="javascript">
        //绝对路径,不可少
        var baseUrl = '${pageContext.request.contextPath}';
        //防止页面后退
        history.pushState(null, null, document.URL);
        window.addEventListener('popstate', function() {
            history.pushState(null, null, document.URL);
        });
        
        $(function(){
            $.get({
                url:baseUrl+"/students/studentcount",
                success:function(data){
                    $("#students").html(data);
                }
            });
        });
        $(function(){
            $.get({
                url:baseUrl+"/teacher/teachercount",
                success:function(data){
                    $("#teachers").html(data);
                }
            });
        });
        $(function(){
            $.get({
                url:baseUrl+"/course/coursecount",
                success:function(data){
                    $("#courses").html(data);
                }
            });
        });
        $(function(){
            $.get({
                url:baseUrl+"/classroom/classroomcount",
                success:function(data){
                    $("#classrooms").html(data);
                }
            });
        });
    </script>
    </html>

    展开全文
  • javaee学生管理系统,教务管理系统,用了mysql,easyui,jquery,
  • python+mysql实现教务管理系统来源:中文源码网 浏览: 次 日期:2019年11月5日【下载文档: python+mysql实现教务管理系统.txt 】(友情提示:右键点上行txt文档名->目标另存为)python+mysql实现教务管理系统本文实例...

    python+mysql实现教务管理系统

    来源:中文源码网 浏览: 次 日期:2019年11月5日

    【下载文档: python+mysql实现教务管理系统.txt 】

    (友情提示:右键点上行txt文档名->目标另存为)

    python+mysql实现教务管理系统本文实例为大家分享了python实现教务管理系统,供大家参考,具体内容如下

    mysql+python构成教务管理系统,提供系统管理员,教职工,学生三级。有注册,添加,修改,发布信息等功能。

    Login.py

    #-*- coding:utf-8 -*-

    #####系统登录import os

    import MySQLdb

    import timeclass Login:

    def __init__(self,conn):

    self.account = ''

    self.password = ''

    self.level = 2

    self.conn = conn

    def LoginSurface(self,info):

    os.system('cls')

    width = 50

    title = 'LOGIN'

    body1 = '[A]Admin'

    body2 = '[T]Teacher'

    body3 = '[S]Student'

    body4 = '[Q]Quit'

    print '=' * width

    print ' ' * ((width-len(title))/2), title

    print ' ' * ((width-len(body1))/2),body1

    print ' ' * ((width-len(body1))/2),body2

    print ' ' * ((width-len(body1))/2),body3

    print ' ' * ((width-len(body1))/2),body4

    print ' ' * ((width-len(info))/2), info

    print '-' * width

    def MainFunc(self):

    err = ''

    while True:

    self.LoginSurface(err)

    level = raw_input('Access:')

    level = level.upper()

    if level == 'A':self.level = 0

    elif level == 'T': self.level = 1

    elif level == 'S': self.level = 2

    elif level =='Q': return False

    else :

    err = 'Error Action!'

    continue

    self.account = raw_input('Account:')

    self.password = raw_input('Password:')

    if self.CheckAccount():

    err = 'Login Success!'

    self.LoginSurface(err)

    print 'Please wait...'

    time.sleep(3)

    return True;

    else :

    err = 'Login Failed!'

    def GetLoginAccount(self):

    return [self.account,self.password,self.level]

    def CheckAccount(self):

    cur = self.conn.cursor()

    sqlcmd = "select Account,Password,AccountLevel from LoginAccount where Account = '%s'" % self.account

    if cur.execute(sqlcmd) == 0: return False

    temp = cur.fetchone()

    cur.close()

    if temp[1] == self.password and temp[2] == self.level:

    return True

    else: return False

    def Quit(self):

    pass

    if __name__ == '__main__':

    conn = MySQLdb.connect(user='root',passwd = '123456',db = 'test');

    a = Login(conn)

    a.MainFunc()

    a.Quit()

    conn.close()main.py

    #-*- coding:utf-8 -*-

    ####系统入口import os

    import MySQLdb

    import Student

    import Teacher

    import Login

    import SystemManagerif __name__ == '__main__':

    conn = MySQLdb.connect(user='root',passwd = '123456',db = 'test')

    log = Login.Login(conn)

    if log.MainFunc():

    account = log.GetLoginAccount()

    if account[2] == 0:

    usr = SystemManager.SystemManager(conn,account[0],account[1])

    usr.MainFunc()

    elif account[2] == 1:

    usr = Teacher.Teacher(conn,account[0],account[1])

    usr.MainFunc()

    elif account[2] == 2:

    usr = Student.Student(conn,account[0],account[1])

    usr.MainFunc()

    else :

    conn.close()

    raise exception()

    conn.close()

    Student.py

    #-*- coding:utf-8 -*-

    ####学生账号import MySQLdb

    import osclass Student:

    def __init__(self,conn,account,passwd):

    ###构造,conn连接数据库

    cur = conn.cursor()

    sqlcmd = "select Name,Gender,Birth,Academy,Major,Grade,TeacherNo from StudentInfo where StudentNo = '%s'" % account

    cur.execute(sqlcmd)

    res = cur.fetchone()

    sqlcmd = "select Name from TeacherInfo where TeacherNo = '%s'" % res[6]

    cur.execute(sqlcmd)

    TeacherName = cur.fetchone()

    cur.close()

    self.width = 150

    self.conn = conn

    self.account = account

    self.Password= passwd

    self.Name = res[0]

    self.Gender = res[1]

    self.Birth = res[2]

    self.Accademy= res[3]

    self.Major = res[4]

    self.Grade = res[5]

    self.Teacher = TeacherName[0]

    def MainFunc(self):

    ###主要执行函数

    info = ''

    while True:

    self.MainSurface(info)

    choice = raw_input('What to do?')

    choice = choice.upper()

    if choice != 'P' and choice != 'M' and choice != 'Q':

    info = 'Error Action!'

    continue

    if choice == 'P':

    info = self.PersonalInfo()

    elif choice == 'M':

    info = self.OperatMessage()

    else : break

    def PersonalInfo(self):

    ###个人信息

    info = ''

    while True:

    self.PersonalInfoSurface(info)

    choice = raw_input('What to do?')

    choice = choice.upper()

    if choice != 'C' and choice != 'Q':

    info = 'Error Action!'

    continue

    if choice == 'C':

    info = self.ChangePersonalInfo()

    else : break

    return info

    def ChangePersonalInfo(self):

    ###修改个人信息

    NewGender = self.Gender

    NewBirth = self.Birth

    NewPw = self.Password

    while True:

    choice = raw_input('Change Gender?(y/n)')

    choice = choice.lower()

    if choice == 'y':

    NewGender = raw_input('New Gender:')

    break

    elif choice == 'n': break

    else : pass

    while True:

    choice = raw_input('change Born Date?(y/n)')

    choice = choice.lower()

    if choice == 'y':

    NewBirth = raw_input('New Born Date:')

    break

    elif choice == 'n': break

    else : pass

    while True:

    choice = raw_input('change Password?(y/n)')

    choice = choice.lower()

    if choice == 'y':

    NewPw = raw_input('New Password:')

    break

    elif choice == 'n': break

    else : pass

    info = 'Change Success!'

    cur = self.conn.cursor()

    if NewGender != self.Gender or NewBirth != self.Birth:

    sqlcmd = "update StudentInfo set Gender = '%s',Birth = '%s' where StudentNo = '%s'" % (NewGender,NewBirth,self.account)

    if cur.execute(sqlcmd) == 0:

    self.conn.rollback()

    cur.close()

    return 'Change Fail!'

    if NewPw != self.Password:

    sqlcmd = "update LoginAccount set Password = '%s' where Account='%s'" % (NewPw,self.account)

    if cur.execute(sqlcmd) == 0:

    self.conn.rollback()

    cur.close()

    return 'Change Fail!'

    else :

    self.conn.commit()

    self.Gender = NewGender

    self.Birth = NewBirth

    self.Password = NewPw

    cur.close()

    return 'Change Success!'

    def OperatMessage(self):

    info = ''

    while True:

    self.MessageSurface(info)

    self.MessageList()

    choice = raw_input('What to do?')

    choice = choice.upper()

    if choice == 'M':

    msg = input('Message Id:')

    info = self.MessageInfo(msg)

    elif choice == 'Q': break;

    else : info = 'Error Action!'

    return info

    def MessageList(self):

    ###查看消息列表

    cur = self.conn.cursor()

    print ''

    sqlcmd = "select Id,SenderName,SendTime,Title from AllMessage where statu = 'pass' and MsgLevel = 1"

    if cur.execute(sqlcmd) == 0: return

    print '-' * self.width

    while True:

    temp = cur.fetchone()

    if not temp: break;

    print '%3d%-20s%-50s%s' % (temp[0],temp[1],temp[3],temp[2])

    print '-' * self.width

    cur.close()

    def MessageInfo(self,MsgNo):

    ###查看详细消息, No消息编号

    cur = self.conn.cursor()

    sqlcmd = "select SenderName,SendTime,Title,Content from AllMessage where Id = %d" % MsgNo

    if cur.execute(sqlcmd) == 0:

    cur.close()

    return 'Read Fail!'

    article = cur.fetchone()

    cur.close()

    os.system('cls')

    print '=' * self.width

    print ' ' * ((self.width - len(article[2]))/2) , article[2]

    head = article[0] + ' ' + str(article[1])

    print ' ' * ((self.width - len(head))/2) , head

    print '-' * self.width

    print article[3]

    print '=' * self.width

    raw_input('Press any key to return!')

    return ''

    def Quit(self):

    ###退出

    pass

    def MainSurface(self,info):

    ###主界面

    os.system('cls')

    print '=' * self.width

    title = 'Welcome %s!' % self.Name

    body1 = '[P]Personal Information'

    body2 = '[M]Message'

    body3 = '[Q]Quit'

    print ' ' * ((self.width - len(title))/2),title

    print ' ' * ((self.width - len(body1))/2),body1

    print ' ' * ((self.width - len(body1))/2),body2

    print ' ' * ((self.width - len(body1))/2),body3

    print ' ' * ((self.width - len(info))/2),info

    print '=' * self.width

    def MessageSurface(self,info):

    ###消息界面

    os.system('cls')

    print '=' * self.width

    title = 'MESSAGES'

    body1 = '[M]Message Detail'

    body2 = '[Q]Quit'

    print ' ' * ((self.width - len(title))/2),title

    print ' ' * ((self.width - len(body1))/2),body1

    print ' ' * ((self.width - len(body1))/2),body2

    print ' ' * ((self.width - len(info))/2),info

    print '=' * self.width

    def PersonalInfoSurface(self,info):

    ###个人信息界面

    os.system('cls')

    print '=' * self.width

    title = 'PERSONAL INFORMATION'

    body1 = '[C]Change Information'

    body2 = '[Q]Quit'

    print ' ' * ((self.width - len(title))/2),title

    print ' ' * ((self.width - len(body1))/2),body1

    print ' ' * ((self.width - len(body1))/2),body2

    print ' ' * ((self.width - len(info))/2),info

    print '-' * self.width

    body3 = ' Name: %s' % self.Name

    body4 = 'Student Number: %s' % self.account

    body5 = ' Gender: %s' % self.Gender

    body6 = ' Birth: %s' % self.Birth

    body7 = ' Accademy: %s' % self.Accademy

    body8 = ' Major: %s' % self.Major

    body9 = ' Grade: %s' % self.Grade

    body10= ' Teacher: %s' % self.Teacher

    print ' ' * ((self.width - len(body6))/2),body3

    print ' ' * ((self.width - len(body6))/2),body4

    print ' ' * ((self.width - len(body6))/2),body5

    print ' ' * ((self.width - len(body6))/2),body6

    print ' ' * ((self.width - len(body6))/2),body7

    print ' ' * ((self.width - len(body6))/2),body8

    print ' ' * ((self.width - len(body6))/2),body9

    print ' ' * ((self.width - len(body6))/2),body10

    print '=' * self.width

    if __name__ == '__main__':

    conn = MySQLdb.connect(user='root',passwd = '123456',db = 'test')

    stu = Student(conn,'0000001','123456')

    stu.MainFunc()

    conn.close()

    完整代码请点击下载:python实现教务管理系统

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持中文源码网。

    亲,试试微信扫码分享本页! *^_^*

    展开全文
  • 使用Django框架及MySQL数据库实现BS架构的教务管理系统/学生选课系统 包含学生端、教师端以及管理员端,功能丰富
  • mysql+python构成教务管理系统,提供系统管理员,教职工,学生三级。有注册,添加,修改,发布信息等功能。 Login.py #-*- coding:utf-8 -*- #####系统登录 import os import MySQLdb import time class Login: ...
  • 一个比较功能比较完美的学生教务管理系统,分别有学生、教师和辅导员三个身份角色,后台实现基本功能模块。用到了easyui、h-ui等。 环境要求: 1.Tomcat 8.59 2.Java 1.8 3.Mysql 8.0 数据库文件在...

    一个比较功能比较完美的学生教务管理系统,分别有学生、教师和辅导员三个身份角色,后台实现基本功能模块。用到了easyui、h-ui等。

    环境要求:

       1.Tomcat 8.59
    
       2.Java 1.8
    
       3.Mysql 8.0
    

    数据库文件在StudentManagerWeb->src……->db下。

    文件:590m.com/f/25127180-500545594-ee17ab(访问密码:551685)

    以下内容无关:

    -------------------------------------------分割线---------------------------------------------

    你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ 。每个拨轮可以自由旋转:例如把 ‘9’ 变为 ‘0’,‘0’ 变为 ‘9’ 。每次旋转都只能旋转一个拨轮的一位数字。

    锁的初始数字为 ‘0000’ ,一个代表四个拨轮的数字的字符串。

    列表 deadends 包含了一组死亡数字,一旦拨轮的数字和列表里的任何一个元素相同,这个锁将会被永久锁定,无法再被旋转。

    字符串 target 代表可以解锁的数字,你需要给出解锁需要的最小旋转次数,如果无论如何不能解锁,返回 -1 。

    输入:deadends = [“0201”,“0101”,“0102”,“1212”,“2002”], target = “0202”
    输出:6
    解释:
    可能的移动序列为 “0000” -> “1000” -> “1100” -> “1200” -> “1201” -> “1202” -> “0202”。
    注意 “0000” -> “0001” -> “0002” -> “0102” -> “0202” 这样的序列是不能解锁的,
    因为当拨动到 “0102” 时这个锁就会被锁定。

    输入: deadends = [“8888”], target = “0009”
    输出:1
    解释:
    把最后一位反向旋转一次即可 “0000” -> “0009”。

    输入: deadends = [“8887”,“8889”,“8878”,“8898”,“8788”,“8988”,“7888”,“9888”], target = “8888”
    输出:-1
    解释:
    无法旋转到目标数字且不被锁定。

    输入: deadends = [“0000”], target = “8888”
    输出:-1
    提示:

    1 <= deadends.length <= 500
    deadends[i].length == 4
    target.length == 4
    target 不在 deadends 之中
    target 和 deadends[i] 仅由若干位数字组成
    分析

    最短路问题,通常使用BFS求解。BFS就不用多说了,树的层序遍历就是使用BFS,这里可以把初始状态0000作为树的根节点,而0000的下一可能状态就是它的子节点,这就相当于一棵树的层序遍历了。每遍历一层,则旋转次数加1,找到题目给定的target时,所在的那层即需要旋转的最小次数。

    如果在数据量大的情况下,可能一层就会有几万几十万个节点,一般BFS解法,可能会空间爆炸。这种情况可以使用双向BFS解决,同时从两个方向开始搜索,一旦搜索到相同的值,意味着找到了一条联通起点和终点的最短路径。

    「双向 BFS」的基本实现思路如下:

    创建「两个队列」分别用于两个方向的搜索;
    创建「两个哈希表」用于「解决相同节点重复搜索」和「记录转换次数」;
    为了尽可能让两个搜索方向“平均”,每次从队列中取值进行扩展时,先判断哪个队列容量较少;
    如果在搜索过程中「搜索到对方搜索过的节点」,说明找到了最短路径。
    「双向 BFS」基本思路对应的伪代码大致如下:

    d1、d2 为两个方向的队列
    m1、m2 为两个方向的哈希表,记录每个节点距离起点的

    // 只有两个队列都不空,才有必要继续往下搜索
    // 如果其中一个队列空了,说明从某个方向搜到底都搜不到该方向的目标节点
    while(!d1.isEmpty() && !d2.isEmpty()) {
    if (d1.size() < d2.size()) {
    update(d1, m1, m2);
    } else {
    update(d2, m2, m1);
    }
    }

    // update 为从队列 d 中取出一个元素进行「一次完整扩展」的逻辑
    void update(Deque d, Map cur, Map other) {}
    参考:https://leetcode-cn.com/problems/open-the-lock/solution/gong-shui-san-xie-yi-ti-shuang-jie-shuan-wyr9/

    编码

    一般BFS:

    class Solution {
    // 转盘向上拨动一次
    private String upOne(String str, int index) {
    char[] chs = str.toCharArray();
    if (chs[index] == ‘9’) {
    chs[index] = ‘0’;
    } else {
    chs[index] += 1;
    }

        return new String(chs);
    }
    
    // 转盘向下拨动一次
    private String downOne(String str, int index) {
        char[] chs = str.toCharArray();
        if (chs[index] == '0') {
            chs[index] = '9';
        } else {
            chs[index] -= 1;
        }
        
        return new String(chs);
    }
    
    public int openLock(String[] deadends, String target) {
        // 死亡数字
        Set<String> deadLock = new HashSet<>();
        // 已经转过的数字
        Set<String> visited = new HashSet<>();
        for (String str : deadends) {
            deadLock.add(str);
        }
    
        Queue<String> res = new LinkedList<>();
        res.offer("0000");
        visited.add("0000");
        int step = 0;
    
        while (!res.isEmpty()) {
            int len = res.size();
    
            // 当前队列中的所有节点向周围扩散
            for (int i = 0; i < len; i++) {
                String cur = res.poll();
                // 如果是死亡数字,则退出这次循环
                if (deadLock.contains(cur)) {
                    continue;
                }
    
                // 转到target,直接返回step即为最小旋转次数
                if (cur.equals(target)) {
                    return step;
                }
    
                // 对于当前节点,每个拨轮进行向上和向下转动
                for (int j = 0; j < 4; j++) {
                    String next = upOne(cur, j);
                    if (!visited.contains(next)) {
                        res.offer(next);
                        visited.add(next);
                    }
    
                    next = downOne(cur, j);
                    if (!visited.contains(next)) {
                        res.offer(next);
                        visited.add(next);
                    }
                }
            }
    
            // 增加步数
            step++;
        }
    
        // 如果穷举完还没有找到目标,则说明无法解锁
        return -1;
    }
    

    }

    展开全文
  • Springboot+Mysql+jpa+freemark实现学生信息管理系统教务信息管理系统源码【猿来入此】出品
  • jsp19116学院校历教务管理系统-SSH-Mysql该设计有演示视频 100%能运行买重包换 保密发送 一校一份编号:jsp19116语言+数据库:jsp+mysql论文字数:13774字 目 录摘 要 IAbstract II第1章 前 言 31.1课题背景 31.2...
  • 登录界面,管理员界面(学生管理,教师管理,课程管理),学生界面(选课),教师界面(选课)。包括数据库设计,xml解析文件,数据库jdbc驱动
  • mysql+python 构成教务管理系统,提供系统管理员,教职工,学生三级。有注册,添加,修改,发布信息等功能
  • 类似于我校教务管理系统,有四类用户: 教务员可以输入学生、教师、班级、课程信息,一个班级只属于一个专业,一个学生只属于一个班级。教务员负责输入每个专业、每个班级需要学习哪些课程,指定课程的任课教师。 ...
  • 教师管理(教师列表、增加教师、删除教师、教师编辑)、学生管理学生列表、增加学生、删除学生学生编辑)、课程管理(课程列表、课程添加、课程删除、课程编辑、包括选课)、学费管理、查看课表(含调课管理)、...
  • java swing+mysql开发教务管理系统

    千次阅读 多人点赞 2018-06-06 20:52:12
    管理员完成课程管理管理通知、设置选课时间、管理学生管理教师、管理教室预约情况等功能 教师端完成借教室、学生成绩管理(保存成绩与提交成绩,提交后学生才能看到,可分多次保存)、查看培养计划、查看课表...
  • 完成管理员、学生、教师权限控制,完成通知公告、学生选课、成绩提交、教室预约等功能,详情请看博客:https://blog.csdn.net/qq_36282404/article/details/80600705
  • 题目要求是自己任选,由于本人对其他领域不太熟悉,选择了自己较为熟悉的教务管理系统作为题目,用C++作为开发语言,用mysql作为后台数据库开发了这个较为简单的教务管理系统。 一、题目要求 (本人自拟题目) ...
  • 数据库课程设计:教务管理系统Swing+MySql

    千次阅读 多人点赞 2020-01-13 15:05:03
    文章目录实验报告主要内容3.2需求分析3.2.1简要叙述系统需求调查的方法1.需求分析的调查方法和流程2,需求调查结果的整理各种图1.业务流程图2.数据流图3....①调查学校教务系统的组织结构,列出各...
  • Django教务管理系统|学生选课系统(关注下载源码)

    千次阅读 热门讨论 2020-09-20 16:53:56
    采用Django框架以及MySQL数据库实现BS架构的教务管理系统,网页界面模仿了正方软件股份有线公司开发的教务管理系统 题目 建立一个学生选课系统, 编写应用程序完成系统开发。 建立基本表: 学生(学号,姓名,性别,...
  • 摘要 网络 教务管理系统是典型的管理信息系统(MIS,用 PHP-MYSQL 技术开发了 中学网络教务管理系统,该系统有两大模块:用户模块和管理员模块对于用户模块用户只 能浏览属于本用户(学生)的相关信息管理员模块可以添加...
  • 教务管理系统

    2018-01-01 11:11:34
    用Java写的教务管理系统, 只完成了选课退课, 查询成绩, 查询课表, 查询和修改学生个人信息等内容, 后端为spring + springmvc + mybatis 数据库mysql 前端jquery bootstrap
  • 教务管理系统JavaWeb项目

    万次阅读 多人点赞 2018-03-25 16:35:06
    刚学完javaweb,做个项目练手与巩固所学的知识,...所以非常适合javaweb初学者教务管理系统javaweb项目运行环境:window系统,Apache Tomcat v7.0.84、JDK1.8开发环境:J2EE eclipse、navicat for mysql运用的技术...
  • 教务管理系统javaweb项目 运行环境:window系统,Apache Tomcat v7.0.84、JDK1.8 开发环境:J2EE eclipse、navicat for mysql 运用的技术:MVC设计模式、DAO模式、Servlet、JSP、Filter、MySQL数据库 该项目主要分为...
  • 最近完成了学校让做的Java大作业,我写的是教务管理系统。现在写了两种用户类型,一个是教师端,一个是学生端。 教师功能:教学安排查询、录入成绩、导出成绩 学生功能:课表信息查询、选课、成绩查询 源码链接:...
  • 本文实例为大家分享了python实现教务管理系统,供大家参考,具体内容如下mysql+python构成教务管理系统,提供系统管理员,教职工,学生三级。有注册,添加,修改,发布信息等功能。Login.py#-*- coding:utf-8 -*-###...
  • 基于ssm的教务管理系统,绝对可用! 想学习ssm的同学不要错过 1、面向对象设计不再是单纯的从代码的第一行一直编到最后一行,而是考虑如何创建类和对象,利用类和对象来简化程序设计,并提供代码的封装和可重用性...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,138
精华内容 455
关键字:

学生教务管理系统mysql

mysql 订阅