精华内容
下载资源
问答
  • WEB课设学生成绩管理系统

    千次阅读 热门讨论 2019-07-18 17:40:44
    WEB课设学生成绩管理系统 一、设计内容 学校每年都会有学生基本信息变动,也会举行期中期末考试。如何有效地管理这些学生的基本信息和成绩,帮助学校和老师掌握学生的基本情况,这就是学生成绩管理系统需要完成...

    WEB课设之学生成绩管理系统

    一、设计内容

    学校每年都会有学生基本信息变动,也会举行期中期末考试。如何有效地管理这些学生的基本信息和成绩,帮助学校和老师掌握学生的基本情况,这就是学生成绩管理系统需要完成的功能。学生成绩管理系统主要是用来管理学生基本信息数据与学生成绩的系统。需要提供如录入、删除、修改、查找学生基本信息以及成绩,甚至个别学生或者全体学生成绩报表的导出和学生成绩柱状图的生成。

    1、 系统需求分析
    1.1 系统功能分析
    本系统主要的功能是向学校提供学生的基本信息和考试成绩。
    本系统主要有以下几项功能:
    a、用户登录相应账号并且输入对应密码才能进入系统进行相应操作
    b、添加学生功能:姓名、学号、性别、出生年月日。(学号系统会自动生成且唯一)
    c、根据学生学号或者姓名查找学生信息功能:在界面上显示姓名、学号和成绩
    d、学生信息的修改与删除功能:不能修改学号。
    e、根据学生学号查找学生成绩功能:在界面上显示姓名、学号和成绩。
    f、根据学生姓名(支持模糊匹配)查找学生成绩功能:并在界面上显示姓名、学号和成绩,如果有多个相同姓名学生存在,一起显示出来。
    g、修改添加学生成绩功能:每个人都有数学、Java、英语、体育四门课,可分课程输入成绩。
    h、生成学生学习情况报表功能:报表包含学号、姓名、各科目成绩及对应的该科目班级平均值,总成绩以及班级总成绩平均值,用户可选择分成个人或者全班学习情况导出至excel文件。
    i、支持对单个学生各科成绩生出柱状分布图。

    1.2 系统功能模块设计(划分)
    根据系统功能要求,可以将系统分解成几个模块来分别设计应用程序界面,如图 1-1所示。
    在这里插入图片描述
    图1-1 学生成绩管理系统功能模块图

    1.3 与其它系统的关系
    学生成绩管理系统是校园信息管理系统的一个组成部分。它为其它系统如班级信息管理系统、教学管理系统、宿舍分配系统等提供学生的基本情况。同时需要其他系统提供的班级设置和院系设置等情况。这些系统可以使用同一个数据库,直接相互调用所需的数据。

    1.4 数据流程图
    学生成绩管理系统的数据流程如图1-2所示。
    在这里插入图片描述
    图1-2 学生成绩管理系统数据流程图

    2、数据库设计
    2.1 数据库需求分析
    根据上一节图1-2学生成绩管理系统数据流程图,可以列出以下数据项、数据结构以及外部数据支持。
    记录学生信息所需的数据项和数据结构:
    A、学生信息表:学号、姓名、性别、生日。
    B、学生成绩表:学号、姓名、数学成绩、Java成绩、英语成绩、体育成绩。
    C、学生成绩导出表:学号、姓名、数学成绩、Java成绩、英语成绩、体育和四门科目成绩总分数。
    外部数据支持:
    A、 用户登录表:用户名、密码、用户身份证号码。

    2.2 数据库概念结构设计
    下图2-1是本系统所需数据的 E-R 模型图。
    在这里插入图片描述
    图2-1 学生成绩管理系统所需数据的 E-R 模型图

    2.3 数据库逻辑结构设计
    根据系统E-R图,需要设计3个数据表来存放学生的基本信息和成绩信息。为了系统的完整,系统中包括了应用程序设计中所需的1个外部数据表。这4个数据表如表1到表4所示。
    在这里插入图片描述
    表1 student学生信息表
    在这里插入图片描述
    表2 score学生成绩表
    在这里插入图片描述
    表3 report学生成绩导出表
    在这里插入图片描述
    表4 dlb用户登录表

    二、实现方法

    1、功能说明
    1.1 学生成绩管理系统用户注册登录和登录密码的修改
    1.2 学生个人基本信息输入
    1.3 学生个人基本信息查询、修改和删除
    1.4 学生成绩查询和修改
    1.5 学生个人或者全班成绩导出文件
    1.6 学生个人成绩生成柱状图

    2、系统界面设计
    完成数据库创建和功能说明以后,我们可以进行下一步工作,即设计用户界面。我们的系统主要有以下几个界面:
    2.1 用户账号密码信息注册界面
    2.2 用户账号密码登录界面
    2.3 用户登录失败界面
    2.4 用户密码修改界面
    2.5 学生个人基本信息录入界面
    2.6 学生个人基本信息查找界面
    2.7 查找学号失败界面
    2.8 查找姓名失败界面
    2.9 学生个人基本信息修改界面
    2.10 学生个人基本信息删除界面
    2.11 学生个人成绩查询界面
    2.12 学生个人成绩修改界面
    2.13 学生个人或者全部学生成绩导出文件界面
    2.14 学生个人成绩柱状图生成界面
    2.15 学生个人成绩柱状图显示界面
    2.16 用户操作失败界面
    2.17 用户登录主界面

    3、各功能模块的实现
    在这里插入图片描述
    图3-1用户账号密码信息注册界面

    在这里插入图片描述
    图3-2用户账号密码登录界面

    在这里插入图片描述
    图3-3学生个人基本信息录入界面

    在这里插入图片描述
    图3-4学生个人基本信息查找界面

    在这里插入图片描述
    图3-5学生个人基本信息修改界面

    在这里插入图片描述
    图3-6学生个人或者全部学生成绩导出文件界面

    以上只是WEB课设之学生成绩管理系统部分设计内容,如果想要WEB课设之学生成绩管理系统资源请点击下面资源链接进行下载,希望能帮助到你!

    独家资源:点击资源下载链接
    在这里插入图片描述

    各位大佬如有更好的建议或者不清楚的地方让各位产生了疑问,各位可以在评论中提出!

    展开全文
  • SpringMVC+Mybatis+Mysql学生成绩管理系统 SpringMVC初学者,页面做的不太好看,不过初学嘛,只要功能正常就好啦! 效果展示 数据库 ’

    SpringMVC+Mybatis+Maven+Mysql学生成绩管理系统

    初学SpringMVC,页面做的不太好看,不过重要的是理解页面传参过程。
    本文不是一个教程,没有知识点。就是单纯的分享整个项目源码(包括配置文件)。
    你需要先了解什么是springmvc和maven有什么用。


    我这人学习一门新技术就想先看到结果再去慢慢学,故分享出一个简单的项目来帮助正在学习springmvc的小伙伴。

    环境

    IDE:IntelliJ IDEA 2020.1.2(Ultimate Edition)
    数据库:MySQL 8.0


    效果展示

    登录界面

    登录界面

    主界面(很简陋)

    主界面


    新建工程(如果已经知道如何创建maven就请忽略以下步骤,直接到数据库创建)

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述这一步目的是配置maven的下载源为国内,提高下载速度。(如果不配置,创建项目可能会很慢)首先你要去官网下载maven到本地,具体教程其他博客有(并配置setting.xml,教程解决maven创建项目慢的问题

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    部署到Tomcat(同样,如果会了就请忽略)

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    创建数据库(如果不会创建数据库网上也有教程,下面给的是数据库脚本)

    CREATE DATABASE ssm
    CREATE TABLE student(	
    	id INT PRIMARY KEY AUTO_INCREMENT,
    	s_name VARCHAR(20),
    	s_class VARCHAR(20),
    	s_java DOUBLE,
    	s_c DOUBLE
    )
    CREATE TABLE account(	
    	s_uname VARCHAR(20) PRIMARY KEY,
    	s_pwd VARCHAR(20)
    )
    INSERT INTO account VALUE('admin','admin');//初始账号密码是admin

    项目源码

    项目结构

    项目结构


    Conroller层

    AccountController

    package cn.itcast.controller;
    
    import cn.itcast.domain.Account;
    import cn.itcast.service.AccountService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.swing.text.AbstractDocument;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.List;
    
    /**
     * 帐户web
     */
    @Controller
    @RequestMapping("/account")
    public class AccountController {
    
        @Autowired
        private AccountService accountService;
    
        //查询所有账户信息
        @RequestMapping("/findallaccount")
        public String findAll(Model model){
            System.out.println("表现层:查询所有账户...");
            // 调用service的方法
            List<Account> list = accountService.findAll();
            model.addAttribute("listaccount",list);
            return "listaccount";
        }
    
       //保存账户信息
        @RequestMapping("/saveaccount")
        public String  save(Account account,Model model) {
            System.out.println("表现层:保存账户...");
            // 调用service的方法
            Account account1=accountService.searchAccount(account);
            System.out.println("提交的账户信息"+account1);
            model.addAttribute("saveaccount",account1);
            if(account1==null){
                accountService.saveAccount(account);
                System.out.println("保存账户成功!");
                return "redirect:/Login.jsp";
            }else{
                System.out.println("用户名已存在!");
                return "redirect:/Register.jsp";
            }
        }
    
        //验证账号密码
        @RequestMapping("/check")
        public String check(Account account,Model model,HttpServletResponse response) throws IOException {
            System.out.println("表现层:验证账户...");
            // 调用service的方法
            Account account1=accountService.searchAccount(account);
            model.addAttribute("accountmes",account1);
            System.out.println("提交的账户"+account);
            System.out.println("查询到的账户"+account1);
            if(account1!=null){
                if(account1.getS_pwd().equals(account.getS_pwd())){
                    System.out.println("密码正确!");
                    return "MainPage";
                }else{
                    System.out.println("密码错误!");
                    response.setContentType("text/html;charset=utf-8");
                    String[] ids = null;
                    try {
                        PrintWriter writer = response.getWriter();
                        String msg = null;
                        msg = "alert('密码错误!');history.go(-1)";
                        writer.print("<script type='text/javascript'>" + msg + "</script>");
                        writer.flush();
                        writer.close();
                    } catch (IOException e1) {
                        e1.printStackTrace();
                    }
    
                }
            }else{
                System.out.println("不存在该用户!");
                response.setContentType("text/html;charset=utf-8");
                String[] ids = null;
                try {
                    PrintWriter writer = response.getWriter();
                    String msg = null;
                    msg = "alert('不存在该用户!');history.go(-1)";
                    writer.print("<script type='text/javascript'>" + msg + "</script>");
                    writer.flush();
                    writer.close();
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
            }
            return "redirect:/Login.jsp";
        }
    
    }

    StudentController

    package cn.itcast.controller;
    
    import cn.itcast.domain.Student;
    import cn.itcast.service.StudentService;
    import jdk.nashorn.internal.ir.RuntimeNode;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.util.List;
    
    @Controller
    @RequestMapping("/student")
    public class StudentController {
        @Autowired
        private StudentService studentService;
        //查询学生信息,排名信息
        @RequestMapping("/findallstudent")
        public String findall(Model model){
    
            // 调用service的方法
            System.out.println("表现层:查询所有学生...");
            List<Student> list = studentService.FindAllStudent();
            model.addAttribute("liststudent",list);
    
            // 调用service的方法
            System.out.println("表现层:对所有学生排名...");
            List<Student> rank = studentService.RankAllStudent();
            model.addAttribute("rankstudent",rank);
    
            // 调用service的方法
            System.out.println("表现层:学生成绩预警...");
            List<Student> alert = studentService.AlertStudent();
            model.addAttribute("alertstudent",alert);
    
            return "liststudent";
    //        return "redirect:/MainPage.jsp";
        }
    
        //查询指定学生信息
        @RequestMapping("/searchstudent")
        public String  search(Student student,Model model){
            // 调用service的方法
            System.out.println("表现层:查询指定学生...");
            List<Student> search = studentService.SearchStudent(student);
            model.addAttribute("searchstudent",search);
    
            // 调用service的方法
            System.out.println("表现层:查询所有学生...");
            List<Student> list = studentService.FindAllStudent();
            model.addAttribute("liststudent",list);
    
            // 调用service的方法
            System.out.println("表现层:对所有学生排名...");
            List<Student> rank = studentService.RankAllStudent();
            model.addAttribute("rankstudent",rank);
    
            // 调用service的方法
            System.out.println("表现层:学生成绩预警...");
            List<Student> alert = studentService.AlertStudent();
            model.addAttribute("alertstudent",alert);
    
            return "liststudent";
        }
        
        //增加学生信息
        @RequestMapping("/insertstudent")
        public String save(Student student) {
            // 调用service的方法
            System.out.println("表现层:增加指定学生...");
            studentService.InsertStudent(student);
            return "redirect:/student/findallstudent";
        }
        
        //删除学生信息
        @RequestMapping("/deletestudent")
        public String delete(Student student){
            // 调用service的方法
            System.out.println("表现层:删除指定学生...");
            studentService.DeleteStudent(student);
            return "redirect:/student/findallstudent";
        }
    
        //修改学生信息
        @RequestMapping("/updatestudent")
        public String update(Student student){
            // 调用service的方法
            System.out.println("表现层:修改指定学生...");
            studentService.UpdateStudent(student);
            return "redirect:/student/findallstudent";
        }
    
    }
    

    Dao层

    AccountDao

    package cn.itcast.dao;
    
    import cn.itcast.domain.Account;
    import org.apache.ibatis.annotations.Insert;
    import org.apache.ibatis.annotations.Select;
    import org.springframework.stereotype.Repository;
    import java.util.List;
    
    /**
     * 帐户dao接口
     */
    @Repository
    public interface AccountDao {
    
        // 查询所有账户
        @Select("select * from account")
        public List<Account> findAll();
    
        // 保存帐户信息
        @Insert("insert into account (s_uname,s_pwd) values (#{s_uname},#{s_pwd})")
        public void saveAccount(Account account);
    
        //查询指定账号的密码
        @Select("select * from account where s_uname=#{s_uname}")
        public Account searchAccount(Account account);
    
    }
    

    StudentDao

    package cn.itcast.dao;
    
    import cn.itcast.domain.Student;
    import org.apache.ibatis.annotations.Delete;
    import org.apache.ibatis.annotations.Insert;
    import org.apache.ibatis.annotations.Select;
    import org.apache.ibatis.annotations.Update;
    import org.springframework.stereotype.Repository;
    
    import java.util.List;
    
    @Repository
    public interface StudentDao {
    
        @Select("select id,s_name,s_class,s_java,s_c from student order by id")
        public List<Student> FindAllStudent();
    
        @Insert("insert into student (s_name,s_class,s_java,s_c) values (#{s_name},#{s_class},#{s_java},#{s_c})")
        public void InsertStudent(Student student);
    
        @Delete("delete from student where id=#{id}")
        public void DeleteStudent(Student student);
    
        @Update("update student set s_name=#{s_name},s_class=#{s_class},s_java=#{s_java},s_c=#{s_c} where id=#{id}")
        public void UpdateStudent(Student student);
    
        @Select("select id,s_name,s_class,s_java,s_c from student order by s_java+s_c desc")
        public List<Student> RankAllStudent();
    
        @Select("select id,s_name,s_class,s_java,s_c from student where s_name=#{s_name} and s_class=#{s_class}")
        public List<Student> SearchStudent(Student student);
    
        @Select("select * from student where s_java<60 or s_c<60")
        public List<Student> AlertStudent();
    }
    

    service层

    AccountService

    package cn.itcast.service;
    
    import cn.itcast.domain.Account;
    
    import java.util.List;
    
    public interface AccountService {
    
        // 查询所有账户
        public List<Account> findAll();
    
        // 保存帐户信息
        public void saveAccount(Account account);
    
        //查询指定账号信息
        public Account searchAccount(Account account);
    
    }
    

    StudentService

    package cn.itcast.service;
    
    import cn.itcast.domain.Account;
    import cn.itcast.domain.Student;
    
    import java.util.List;
    
    public interface StudentService {
    
        // 查询所有学生信息
        public List<Student> FindAllStudent();
    
        // 插入学生信息
        public void InsertStudent(Student student);
    
        //删除学生信息
        public void DeleteStudent(Student student);
    
        //修改学生信息
        public void UpdateStudent(Student student);
    
        //学生排名
        public List<Student> RankAllStudent();
    
        //查询指定学生
        public List<Student> SearchStudent(Student student);
    
        //成绩预警
        public List<Student> AlertStudent();
    }
    

    AccountServiceImpl

    package cn.itcast.service.impl;
    
    import cn.itcast.dao.AccountDao;
    import cn.itcast.domain.Account;
    import cn.itcast.service.AccountService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import java.util.List;
    
    @Service("accountService")
    public class AccountServiceImpl implements AccountService{
    
        @Autowired
        private AccountDao accountDao;
    
    
        public List<Account> findAll() {
            System.out.println("业务层:查询所有账户...");
            return accountDao.findAll();
        }
    
        public void saveAccount(Account account) {
            System.out.println("业务层:保存帐户...");
            accountDao.saveAccount(account);
        }
    
        @Override
        public Account searchAccount(Account account) {
            System.out.println("业务层:查询指定账户...");
            return accountDao.searchAccount(account);
        }
    }

    StudentServiceImpl

    package cn.itcast.service.impl;
    
    import cn.itcast.dao.StudentDao;
    import cn.itcast.domain.Student;
    import cn.itcast.service.StudentService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import java.util.List;
    
    
    @Service("studentService")
    public class StudentServiceImpl implements StudentService {
        @Autowired
        private StudentDao studentDao;
    
    
        @Override
        public List<Student> FindAllStudent() {
            System.out.println("业务层:查询所有学生信息...");
            return studentDao.FindAllStudent();
        }
    
        @Override
        public void InsertStudent(Student student) {
            System.out.println("业务层:保存学生信息...");
            studentDao.InsertStudent(student);
        }
    
        @Override
        public void DeleteStudent(Student student) {
            System.out.println("业务层:删除学生信息...");
            studentDao.DeleteStudent(student);
        }
    
        @Override
        public void UpdateStudent(Student student) {
            System.out.println("业务层:修改学生信息...");
            studentDao.UpdateStudent(student);
        }
    
        @Override
        public List<Student> RankAllStudent() {
            System.out.println("业务层:对学生成绩排名...");
            return studentDao.RankAllStudent();
        }
    
        @Override
        public List<Student> SearchStudent(Student student) {
            System.out.println("业务层:查询指定学生信息...");
            return studentDao.SearchStudent(student);
        }
    
        @Override
        public List<Student> AlertStudent() {
            System.out.println("业务层:学生成绩预警...");
            return studentDao.AlertStudent();
        }
    
    
    }
    

    domain(实体层)

    Account

    package cn.itcast.domain;
    
    import java.io.Serializable;
    
    /**
     * 帐户
     */
    public class Account implements Serializable{
    
        private String s_uname;
        private Double s_pwd;
    
        public String getS_uname() {
            return s_uname;
        }
    
        public void setS_uname(String s_uname) {
            this.s_uname = s_uname;
        }
    
        public Double getS_pwd() {
            return s_pwd;
        }
    
        public void setS_pwd(Double s_pwd) {
            this.s_pwd = s_pwd;
        }
    
        @Override
        public String toString() {
            return "Account{" +
                    "s_uname='" + s_uname + '\'' +
                    ", s_pwd=" + s_pwd +
                    '}';
        }
    }
    

    Student

    package cn.itcast.domain;
    
    import java.io.Serializable;
    
    public class Student implements Serializable {
        private Integer id;
        private String s_name;
        private String s_class;
        private Double s_java;
        private Double s_c;
        private Double s_total;
    
        public Integer getId() {
            return id;
        }
    
        public void setId(Integer id) {
            this.id = id;
        }
    
        public String getS_name() {
            return s_name;
        }
    
        public void setS_name(String s_name) {
            this.s_name = s_name;
        }
    
        public String getS_class() {
            return s_class;
        }
    
        public void setS_class(String s_class) {
            this.s_class = s_class;
        }
    
        public Double getS_java() {
            return s_java;
        }
    
        public void setS_java(Double s_java) {
            this.s_java = s_java;
        }
    
        public Double getS_c() {
            return s_c;
        }
    
        public void setS_c(Double s_c) {
            this.s_c = s_c;
        }
    
        public Double getS_total() {
            return this.s_c+this.s_java;
        }
    
        public void setS_total(Double s_total) {
            this.s_total = s_total;
        }
    }
    

    MainPage.jsp

    <%--
      Created by IntelliJ IDEA.
      User: mzx
      Date: 2020/6/11
      Time: 20:31
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>$Title$</title>
        <style>
            body {
                margin: 0;
                padding: 0;
                border: 0;
                overflow: hidden;
                height: 100%;
                max-height: 100%;
            }
            #frameTop {
                position: absolute;
                top: 0;
                left: 0;
                height: 100%;
                width: 100%;
                overflow: hidden;
                vertical-align: middle;
            }
            #frameContentRight {
                position: absolute;
                left: 0px;
                top: 100px;
                height: 85%;
                width: 100%;
                overflow: hidden;
                vertical-align: top;
                background: #fff;
            }
        </style>
    </head>
    <body>
    <div>
        <iframe id="frameTop" src="../../Title.html" scrolling="no"></iframe>
    </div>
    <div>
        <iframe id="frameContentRight" name="display" src="/student/findallstudent" scrolling="auto"></iframe>
    </div>
    </body>
    </html>

    liststudent.jsp

    <%--
      Created by IntelliJ IDEA.
      User: mzx
      Date: 2018/5/6
      Time: 0:24
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <html>
    <head>
        <title>Title</title>
        <style>
            body{
                position: relative;
            }
            #edit_comm{
                position: absolute;
                display: none;
                width:450px;
                height: 80%;
            }
            #add_comm{
                position: absolute;
                display: inline-block;
                width:450px;
                height: 200px;
            }
    
            .t1{
                margin-left: 470px;
                position: absolute;
                display: inline-block;
                width:450px;
                height: 80%;
            }
            .t2{
                margin-left: 940px;
                position: absolute;
                display: inline-block;
                width:490px;
                height: 80%;
            }
            .t3{
                margin-left: 940px;
                position: absolute;
                display: none;
                width:490px;
                height: 80%;
            }
            .a2:hover{
                color: lightskyblue;
            }
            table, td, th
            {
                border:1px solid lightskyblue;
                text-align: center;
                padding: 5px 0px;
                border-radius: 4px;
            }
            td:hover{
                border: 1px solid red;
            }
            .btn:hover{
                color: lightskyblue;
            }
            .t2_d{
                text-align: center;
            }
            .h3{
                display: inline-block;
            }
            .a3{
                display: inline-block;
            }
            .a3:hover{
                color: red;
            }
        </style>
    
    </head>
    <body>
    <script>
        function refush() {
            window.location.href="/student/findallstudent" ;
        }
        
        function delete_stu(id){
            var s_class =document.getElementById("s_class"+id).innerHTML;
            var s_name =document.getElementById("s_name"+id).innerHTML;
            var result = confirm("是否删除"+s_class+"ID为"+id+"的"+s_name+"同学的信息");
            if(result)
                window.location.href="/student/deletestudent?id="+id;
        }
        
        function update_stu(id) {
            var s_name =document.getElementById("s_name"+id).innerHTML;
            var s_class =document.getElementById("s_class"+id).innerHTML;
            var s_java = document.getElementById("s_java"+id).innerHTML;
            var s_c =document.getElementById("s_c"+id).innerHTML;
    
            var result = confirm("是否修改"+s_class+"ID为"+id+"的"+s_name+"同学的信息");
            if(result){
    
                document.getElementById("edit_id").value=(id);
                document.getElementById("edit_s_name").value=(s_name);
                document.getElementById("edit_s_class").value=(s_class);
                document.getElementById("edit_s_java").value=(s_java);
                document.getElementById("edit_s_c").value=(s_c);
    
                // alert(s_name+s_class+s_java+s_c);
                document.getElementById("add_comm").style.display='none'
                document.getElementById("edit_comm").style.display='inline-block'
            }
        }
        function  alertstudent() {
            document.getElementById("rankstudent").style.display="none"
            document.getElementById("alertstudent").style.display="inline-block"
        }
    
    </script>
    <div id="add_comm">
        <h3 align="center">添加学生信息</h3>
        <form action="/student/insertstudent" method="post">
            <table align="center" border="1px" >
                <tr><td align="center">学生姓名:<input type="text" placeholder="请输入学生姓名" name="s_name" /></td></tr>
                <tr>
                    <td align="center">
                        班级:<select name="s_class">
                        <option value="计本17-1班">计本17-1</option>
                        <option value="计本17-2班">计本17-2</option>
                        <option value="网络17-1班">网络17-1</option>
                        <option value="网络17-2班">网络17-2</option>
                    </select>
                    </td>
                </tr>
                <tr>
                    <td align="center">java成绩:<input type="text" placeholder="请输入java成绩" name="s_java" /></td>
                </tr>
                <tr>
                    <td align="center">c语言成绩:<input type="text" placeholder="请输入c成绩" name="s_c" /></td>
                </tr>
                <tr>
                    <td align="center"><input type="submit" class="btn" value="保存"/></td>
                </tr>
            </table>
        </form>
        <h3 align="center">查询学生信息</h3>
        <form action="/student/searchstudent" method="post">
            <table align="center">
                <tr>
                    <td><input type="text" name="s_name" placeholder="请输入要查询的学生姓名"></td>
                </tr>
                <tr>
                    <td align="center">
                        班级:<select name="s_class" >
                        <option value="计本17-1班">计本17-1</option>
                        <option value="计本17-2班">计本17-2</option>
                        <option value="网络17-1班">网络17-1</option>
                        <option value="网络17-2班">网络17-2</option>
                    </select>
                    </td>
                </tr>
                <tr>
                    <td>
                        <input type="submit" class="btn" value="查询">
                    </td>
                </tr>
            </table>
        </form>
        <h3 align="center">查询结果显示</h3>
        <table align="center" border="1">
            <tr>
                <td>ID</td>
                <td>姓名</td>
                <td>班级</td>
                <td>java成绩</td>
                <td>c语言成绩</td>
                <td>总成绩</td>
                <td>操作</td>
            </tr>
                <c:forEach items="${searchstudent}" var="student">
                    <tr>
                        <td  id="id${student.id}" align="center">${student.id}</td>
                        <td  id="s_name${student.id}" align="center">${student.s_name}</td>
                        <td  id="s_class${student.id}" align="center">${student.s_class}</td>
                        <td  id="s_java${student.id}" align="center">${student.s_java}</td>
                        <td  id="s_c${student.id}" align="center">${student.s_c}</td>
                        <td  id="s_total${student.id}" align="center">${student.s_total}</td>
                        <td align="center"><a class="a2" onclick="delete_stu(${student.id})">删除</a>/<a class="a2" onclick="update_stu(${student.id})">修改</a> </td>
                    </tr>
                </c:forEach>
        </table>
    </div>
    
    
    <div class="t" id="edit_comm">
        <h2 id="edit_title" align="center">编辑学生</h2>
        <form action="/student/updatestudent" method="post">
            <table align="center" border="1">
                <tr>
                    <td align="center" >
                        ID<input type="text" id="edit_id" name="id" value="">
                    </td>
                </tr>
                <tr>
                    <td align="center">
                        学生姓名<input type="text" placeholder="请输入学生姓名" value="" id="edit_s_name" name="s_name" />
                    </td>
                </tr>
                <tr>
                    <td align="center">
                        班级:<select name="s_class" id="edit_s_class">
                                <option value="计本17-1班">计本17-1</option>
                                <option value="计本17-2班">计本17-2</option>
                                <option value="网络17-1班">网络17-1</option>
                                <option value="网络17-2班">网络17-2</option>
                            </select>
                    </td>
                </tr>
                <tr>
                    <td align="center">
                        java成绩<input type="text" placeholder="请输入java成绩" value="" id="edit_s_java" name="s_java" >
                    </td>
                </tr>
                <tr>
                    <td align="center">
                        c语言成绩<input type="text" placeholder="请输入c成绩" value="" id="edit_s_c" name="s_c" />
                    </td>
                </tr>
                <tr>
                    <td align="center">
                        <input type="submit" value="确定修改" class="btn"/>
                        <input type="button" value="取消修改" onclick="refush()" class="btn"/>
                    </td>
                </tr>
            </table>
        </form>
    </div>
    
    <div class="t1">
        <h3 align="center">所有学生成绩信息</h3>
        <table align="center" border="1">
            <tr>
                <td>ID</td>
                <td>姓名</td>
                <td>班级</td>
                <td>java成绩</td>
                <td>c语言成绩</td>
                <td>总成绩</td>
                <td>操作</td>
            </tr>
    
            <c:forEach items="${liststudent}" var="student">
                <tr>
                    <td  id="id${student.id}" align="center">${student.id}</td>
                    <td  id="s_name${student.id}" align="center">${student.s_name}</td>
                    <td  id="s_class${student.id}" align="center">${student.s_class}</td>
                    <td  id="s_java${student.id}" align="center">${student.s_java}</td>
                    <td  id="s_c${student.id}" align="center">${student.s_c}</td>
                    <td  id="s_total${student.id}" align="center">${student.s_total}</td>
                    <td align="center"><a class="a2" onclick="delete_stu(${student.id})">删除</a>/<a class="a2" onclick="update_stu(${student.id})">修改</a> </td>
                </tr>
            </c:forEach>
    
        </table>
    
    </div>
    
    <div class="t2" id="rankstudent">
        <div class="t2_d">
            <h3 align="center" class="h3">成绩排名</h3>
            <a onclick="alertstudent()" class="a3">!成绩预警!</a>
        </div>
    
        <table align="center" border="1">
            <tr>
                <td align="center">名次</td>
                <td align="center">ID</td>
                <td align="center">姓名</td>
                <td align="center">班级</td>
                <td align="center">java成绩</td>
                <td align="center">c语言成绩</td>
                <td align="center">总分数</td>
            </tr>
                <c:forEach items="${rankstudent}" var="student" varStatus="rank">
                    <tr>
                        <td  align="center">第${rank.count}</td>
                        <td  align="center">${student.id}</td>
                        <td  align="center">${student.s_name}</td>
                        <td  align="center">${student.s_class}</td>
                        <td  align="center">${student.s_java}</td>
                        <td  align="center">${student.s_c}</td>
                        <td  align="center">${student.s_total}</td>
                    </tr>
            </c:forEach>
        </table>
    </div>
    
    <div class="t3" id="alertstudent">
        <h3 align="center" style="color: red">单科成绩有不及格的同学!</h3>
        <table align="center" border="1">
            <tr>
                <td align="center">ID</td>
                <td align="center">姓名</td>
                <td align="center">班级</td>
                <td align="center">java成绩</td>
                <td align="center">c语言成绩</td>
                <td align="center">总分数</td>
            </tr>
            <c:forEach items="${alertstudent}" var="student" >
                <tr>
                    <td  align="center">${student.id}</td>
                    <td  align="center">${student.s_name}</td>
                    <td  align="center">${student.s_class}</td>
                    <td  align="center">${student.s_java}</td>
                    <td  align="center">${student.s_c}</td>
                    <td  align="center">${student.s_total}</td>
                </tr>
            </c:forEach>
        </table>
    </div>
    
    </body>
    </html>

    title.html

    <!DOCTYPE html>
    <html>
      <head>
        <title>Titlel.html</title>
       
        <meta name="keywords" content="keyword1,keyword2,keyword3">
        <meta name="description" content="title">
        <meta name="content-type" content="text/html; charset=UTF-8">
       <style>
          body{
             background:lightskyblue;
             text-align:center;
          }
       </style>
      </head>
    
      <body>
        <h1 align=center >欢迎进入学生成绩管理系统!</h1>
      </body>
    </html>
    

    Login.jsp

    <%@ page language="java" contentType="text/html; charset=utf-8"
             pageEncoding="utf-8"%>
    <html>
    <head>
        <title>登录界面</title>
        <style>
            body {
                margin: 0;
                padding: 0;
                font-family: sans-serif;
                background: lightskyblue;
            }
            .box {
                width: 300px;
                padding: 40px;
                position: absolute;
                top: 50%;
                left: 50%;
                transform: translate(-50%, -50%);
                background: #191919;
                text-align: center;
                border-radius: 8px;
            }
            .box h1 {
                color: white;
                text-transform: uppercase;
                font-weight: 500;
            }
            .box input[type='text'],
            .box input[type='password'] {
                border: 0;
                background: none;
                display: block;
                margin: 20px auto;
                text-align: center;
                border: 2px solid #3498db;
                padding: 14px 10px;
                width: 200px;
                outline: none;
                color: white;
                border-radius: 24px;
                transition: 0.25s;
            }
            .box input[type='text']:focus,
            .box input[type='password']:focus {
                width: 280px;
                border-color: #2ecc71;
            }
            .submit {
                border: 0;
                background: none;
                margin: 20px auto;
                margin-top: 0;
                display: inline-block;
                text-align: center;
                border: 2px solid #3498db;
                padding: 10px 40px;
                outline: none;
                color: white;
                border-radius: 24px;
                transition: 0.25s;
                cursor: pointer;
                text-decoration: none;
                font-size: 12px;
            }
            .submit:hover {
                background: #2ecc71;
                border-color: #2ecc71;
            }
        </style>
    </head>
    <body>
    <form action="/account/check" method="post">
        <div class="box">
            <h1>Welcome</h1>
            <input type="text"  name="s_uname" placeholder="Username" />
            <input type="password" name="s_pwd" placeholder="Password" />
            <input type="submit" class="submit" name="bt" value="登录"/>
            <a  class="submit" href="Register.jsp">没有账号?注册一个</a>
        </div>
    </form>
    </body>
    </html>

    Register.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@ page contentType="text/html;charset=UTF-8"%>
    <%
        String path = request.getContextPath();
        String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <html>
    <head>
        <base href="<%=basePath%>">
        <title>My JSP 'Register.jsp' starting page</title>
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <meta content="text/html;charset=UTF-8" />
           <style>
            body {
                margin: 0;
                padding: 0;
                font-family: sans-serif;
                background: lightskyblue;
            }
            .box {
                width: 300px;
                padding: 40px;
                position: absolute;
                top: 50%;
                left: 50%;
                transform: translate(-50%, -50%);
                background: #191919;
                text-align: center;
            }
            .box h1 {
                color: white;
                text-transform: uppercase;
                font-weight: 500;
            }
            .box input[type='text'],
            .box input[type='password'] {
                border: 0;
                background: none;
                display: block;
                margin: 20px auto;
                text-align: center;
                border: 2px solid #3498db;
                padding: 14px 10px;
                width: 200px;
                outline: none;
                color: white;
                border-radius: 24px;
                transition: 0.25s;
            }
            .box input[type='text']:focus,
            .box input[type='password']:focus {
                width: 280px;
                border-color: #2ecc71;
            }
            .submit {
                border: 0;
                background: none;
                margin: 20px auto;
                margin-top: 0;
                display: inline-block;
                text-align: center;
                border: 2px solid #3498db;
                padding: 10px 40px;
                outline: none;
                color: white;
                border-radius: 24px;
                transition: 0.25s;
                cursor: pointer;
                text-decoration: none;
                font-size: 12px;
            }
            .submit:hover {
                background: #2ecc71;
                border-color: #2ecc71;
            }
        </style>
    
    </head>
    <body>
    <form action="/account/saveaccount" method="post">
        <div class="box">
            <h1>Register</h1>
            <input type="text"  name="s_uname" placeholder="Username" />
            <input type="password" name="s_pwd" placeholder="Password" />
            <input type="submit" class="submit" name="submit" value="完成,提交"/>
            <input type="reset" class="submit" name="reset" value="重置"/>
        </div>
    </form>
    </body>
    </html>

    配置文件

    web.xml

    <!DOCTYPE web-app PUBLIC
     "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
     "http://java.sun.com/dtd/web-app_2_3.dtd" >
    
    <web-app>
      <display-name>Archetype Created Web Application</display-name>
    
      <!--配置Spring的监听器,默认只加载WEB-INF目录下的applicationContext.xml配置文件-->
      <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>
      <!--设置配置文件的路径-->
      <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
      </context-param>
      <context-param>
        <param-name/>
        <param-value/>
      </context-param>
    
      <welcome-file-list>
        <welcome-file>Login.jsp</welcome-file>
      </welcome-file-list>
      
      <!--配置前端控制器-->
      <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--加载springmvc.xml配置文件-->
        <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:springmvc.xml</param-value>
        </init-param>
        <!--启动服务器,创建该servlet-->
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>
    
      <!--解决中文乱码的过滤器-->
      <filter>
        <filter-name>characterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
          <param-name>encoding</param-name>
          <param-value>UTF-8</param-value>
        </init-param>
      </filter>
      <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
      
    </web-app>
    

    applicationContext.xml(注意修改数据库名字和你的数据库账号密码)

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:aop="http://www.springframework.org/schema/aop"
           xmlns:tx="http://www.springframework.org/schema/tx"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop.xsd
       http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx.xsd">
    
        <!--开启注解的扫描,希望处理service和dao,controller不需要Spring框架去处理-->
        <context:component-scan base-package="cn.itcast" >
            <!--配置哪些注解不扫描-->
            <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
        </context:component-scan>
    
        <!--Spring整合MyBatis框架-->
        <!--配置连接池-->
        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <property name="driverClass" value="com.mysql.cj.jdbc.Driver"/>
            <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/ssm?useUnicode=true&amp;characterEncoding=UTF-8&amp;useSSL=false&amp;serverTimezone=Asia/Shanghai&amp;zeroDateTimeBehavior=CONVERT_TO_NULL"/>
            <property name="user" value="root"/>
            <property name="password" value="123456"/>
        </bean>
    
        <!--配置SqlSessionFactory工厂-->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource" />
        </bean>
    
        <!--配置AccountDao接口所在包-->
        <bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="cn.itcast.dao"/>
        </bean>
    
        <!--配置Spring框架声明式事务管理-->
        <!--配置事务管理器-->
        <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource" />
        </bean>
    
        <!--配置事务通知-->
        <tx:advice id="txAdvice" transaction-manager="transactionManager">
            <tx:attributes>
                <tx:method name="find*" read-only="true"/>
                <tx:method name="*" isolation="DEFAULT"/>
            </tx:attributes>
        </tx:advice>
    
        <!--配置AOP增强-->
        <aop:config>
            <aop:advisor advice-ref="txAdvice" pointcut="execution(* cn.itcast.service.impl.*ServiceImpl.*(..))"/>
        </aop:config>
    
    </beans>

    log4j.properties

    # Set root category priority to INFO and its only appender to CONSOLE.
    #log4j.rootCategory=INFO, CONSOLE            debug   info   warn error fatal
    log4j.rootCategory=info, CONSOLE, LOGFILE
    
    # Set the enterprise logger category to FATAL and its only appender to CONSOLE.
    log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE
    
    # CONSOLE is set to be a ConsoleAppender using a PatternLayout.
    log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
    log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
    log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n
    
    # LOGFILE is set to be a File appender using a PatternLayout.
    log4j.appender.LOGFILE=org.apache.log4j.FileAppender
    log4j.appender.LOGFILE.File=d:\axis.log
    log4j.appender.LOGFILE.Append=true
    log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
    log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n
    
    

    springmvc.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="
            http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/mvc
            http://www.springframework.org/schema/mvc/spring-mvc.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd">
    
        <!--开启注解扫描,只扫描Controller注解-->
        <context:component-scan base-package="cn.itcast.controller">
            <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
        </context:component-scan>
    
        <!--开启SpringMVC注解的支持-->
        <mvc:annotation-driven/>
        <mvc:default-servlet-handler />
    
        <!--配置的视图解析器对象-->
        <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/pages/"/>
            <property name="suffix" value=".jsp"/>
        </bean>
    
        <!--过滤静态资源-->
        <mvc:resources location="/css/" mapping="/css/**" />
        <mvc:resources location="/images/" mapping="/images/**" />
        <mvc:resources location="/js/" mapping="/js/**" />
    </beans>

    pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
    
      <groupId>cn.itcast</groupId>
      <artifactId>ssm</artifactId>
      <version>1.0-SNAPSHOT</version>
      <packaging>war</packaging>
    
      <name>ssm Maven Webapp</name>
      <!-- FIXME change it to the project's website -->
      <url>http://www.example.com</url>
    
      <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <spring.version>5.0.2.RELEASE</spring.version>
        <slf4j.version>1.6.6</slf4j.version>
        <log4j.version>1.2.12</log4j.version>
        <mybatis.version>3.4.5</mybatis.version>
      </properties>
    
      <dependencies>
        <!-- spring -->
        <dependency>
          <groupId>org.aspectj</groupId>
          <artifactId>aspectjweaver</artifactId>
          <version>1.6.8</version>
        </dependency>
    
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-aop</artifactId>
          <version>${spring.version}</version>
        </dependency>
    
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context</artifactId>
          <version>${spring.version}</version>
        </dependency>
    
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-web</artifactId>
          <version>${spring.version}</version>
        </dependency>
    
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-webmvc</artifactId>
          <version>${spring.version}</version>
        </dependency>
    
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-test</artifactId>
          <version>${spring.version}</version>
        </dependency>
    
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-tx</artifactId>
          <version>${spring.version}</version>
        </dependency>
    
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-jdbc</artifactId>
          <version>${spring.version}</version>
        </dependency>
    
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.12</version>
          <scope>compile</scope>
        </dependency>
    
        <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>8.0.13</version>
        </dependency>
    
        <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>servlet-api</artifactId>
          <version>2.5</version>
          <scope>provided</scope>
        </dependency>
    
        <dependency>
          <groupId>javax.servlet.jsp</groupId>
          <artifactId>jsp-api</artifactId>
          <version>2.0</version>
          <scope>provided</scope>
        </dependency>
    
        <dependency>
          <groupId>jstl</groupId>
          <artifactId>jstl</artifactId>
          <version>1.2</version>
        </dependency>
    
        <!-- log start -->
        <dependency>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
          <version>${log4j.version}</version>
        </dependency>
    
        <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-api</artifactId>
          <version>${slf4j.version}</version>
        </dependency>
    
        <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-log4j12</artifactId>
          <version>${slf4j.version}</version>
        </dependency>
    
        <!-- log end -->
        <dependency>
          <groupId>org.mybatis</groupId>
          <artifactId>mybatis</artifactId>
          <version>${mybatis.version}</version>
        </dependency>
    
        <dependency>
          <groupId>org.mybatis</groupId>
          <artifactId>mybatis-spring</artifactId>
          <version>1.3.0</version>
        </dependency>
    
        <dependency>
          <groupId>c3p0</groupId>
          <artifactId>c3p0</artifactId>
          <version>0.9.1.2</version>
          <type>jar</type>
          <scope>compile</scope>
        </dependency>
      </dependencies>
    
      <build>
        <finalName>ssm</finalName>
        <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
          <plugins>
            <plugin>
              <artifactId>maven-clean-plugin</artifactId>
              <version>3.0.0</version>
            </plugin>
            <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
            <plugin>
              <artifactId>maven-resources-plugin</artifactId>
              <version>3.0.2</version>
            </plugin>
            <plugin>
              <artifactId>maven-compiler-plugin</artifactId>
              <version>3.7.0</version>
            </plugin>
            <plugin>
              <artifactId>maven-surefire-plugin</artifactId>
              <version>2.20.1</version>
            </plugin>
            <plugin>
              <artifactId>maven-war-plugin</artifactId>
              <version>3.2.0</version>
            </plugin>
            <plugin>
              <artifactId>maven-install-plugin</artifactId>
              <version>2.5.2</version>
            </plugin>
            <plugin>
              <artifactId>maven-deploy-plugin</artifactId>
              <version>2.8.2</version>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </project>
    

    这个项目是跟着视频边学边做的,有缺陷的地方请指多指教。
    希望能给大家学习的路上带来一些微小的帮助!

    百度网盘
    提取码:rzpz

    展开全文
  • 运用Java web的MVC的三层开发模式,结合数据库,设计的学生成绩管理系统源码
  • 写在前面 本节主要介绍JavaFX的环境配置和一些jar包的导入 ...IDEA可以算得上是Java开发的神器了,之前也用过eclipse,后面在Web开发的时候十分的不友好(个人感觉哈哈哈!!!),大一下学期开始接触IDEA,从

    写在前面

    本节主要介绍JavaFX的环境配置和一些jar包的导入

    一、Java环境的配置

    jdk的下载和配置环境变量网上的教程已经很多了,我使用的是mac只需要下载安装就可以了。之前网上的一些配置比较老套。现在已经不需要classpath了,只需要配置JAVA_HOME和path中的JAVA_HOME中的lib路径即可。

    二、IDEA的下载和安装配置

    IDEA可以算得上是Java开发的神器了,之前也用过eclipse,后面在Web开发的时候十分的不友好(个人感觉哈哈哈!!!),大一下学期开始接触IDEA,从此沉迷其中。除此之外,他的界面和字体都非常的好看!
    直接搜索IDEA打开官网下载自己电脑的对应版本即可
    IDEA下载地址 有2个版本,社区版和专业版。下载都可以,该项目是够用的。专业版可以使用大学生账号登陆免费使用,确实很好!下载之后直接安装就可以了,没有啥需要说的了,需要注意的一点是安装过程中有一个添加到环境变量记得勾选,它会自动帮你把环境变量给配置了,就不需要自己配置了。第一打开项目的时候需要配置jdk,把路径加进去就可以了。
    idea

    三、JavaFX的配置

    JavaFX已经集成在jdk1.8里面了,所以我们只需要下载他的sdk导入IDEA中,配置一下路径就可以了!
    下载对应的版本 JavaFX的SDK下载地址 下载完成后是一个文件夹
    在这里插入图片描述
    把文件夹放到你喜欢的地方,然后用IDEA导入lib的包。可以先创建一个JavaFX项目如下创建:
    创建项目
    创建完成后打开项目结构
    在这里插入图片描述
    找到Libaraies里面是导入jar包的地方,点击上面的小加号,选择Java,把刚刚下载的sdk下面的lib路径选择导入,然后确定既可。
    在这里插入图片描述
    这一步之后你的项目中的代码就不会报错了,因为你已经有你这些包了,但是项目依然运行不起来,因为还缺少组件,相当于没有特定环境运行该项目,所以还得陪一下运行设置。找到你的Main文件,然后选择我截图蓝色的编辑选项
    在这里插入图片描述
    在VM options里面配置一下刚才的路径,引号里面的是自己sdk下lib路径。也可以在IDEA的设置里面的路径变量配置该路径的地址,然后就可以使用该路径变量代替引号里面的路径了!这里我就不说了,大家有兴趣可以上网自己查一下。

    --module-path "自己sdk下面的lib路径" --add-modules=javafx.controls,javafx.fxml 
    

    在这里插入图片描述
    然后点击ok,整个项目就可以启动起来了啦!!!

    四、fastjson的引入

    因为在编写代码的时候需要将对象存储到文件中,所以我就使用json对象存储,这样更jade直观和方便。但是使用需要引入一个jar包,这个fastjson还是非常的好用!同样的打开刚才的Libraries,然后继续点击加号引入Java的jar包,选择你下载的fastjson.jar就可以了。
    fastjson的下载地址 点击Files里面的jar他就可以自动下载了。
    在这里插入图片描述

    五、总结

    这样配置完成后整个项目的环境就已经配置完成了,后面我们就可以进行课设的设计和编码!!!上述如果有问题,欢迎指正!

    关于本篇的其他的章节

    Java课设–学生成绩管理系统一
    Java课设–学生成绩管理系统三
    Java课设–学生成绩管理系统四
    Java课设–学生成绩管理系统五
    Java课设–学生成绩管理系统六
    Java课设–学生成绩管理系统七
    Java课设–学生成绩管理系统八

    展开全文
  • 教学管理系统需求结果展示登录界面学生界面教师界面管理员界面数据库设计E-R图实现一、文件创建二、前端界面三、数据库设置四、控制器五、前端返回信息处理ajax简单入门 需求 有登录界面,不同的用户登录后进入不同...

    需求

    1. 有登录界面,不同的用户登录后进入不同的页面。
    2. 能完成基本数据(包括学生、教师、课程、选课)的增删改。
    3. 根据指定要求完成查询。
    4. 可以查询指定姓名的学生或教师。
    5. 可以查找某位教师的授课门数。
    6. 可以查找指定学生选修的课程列表,包括课程名、任课教师、成绩等。
    7. 可以查找指定所有课程的平均成绩。

    结果展示

    登录界面

    登录界面

    学生界面

    学生界面

    教师界面

    教师界面

    管理员界面

    管理员界面

    数据库设计

    E-R图

    ER图

    实现

    一、文件创建

    在thinkPHP5下的application内创建以下三个文件夹。
    在这里插入图片描述

    在controller文件夹内部新建一个php文件,作为控制器,命名为Signin.php。
    controller
    在model文件夹内创建各个表所对应的模型
    model
    在view内创建与控制器对应的文件夹,命名为signin,在signin文件夹内部,创建各个界面的html文件。以及需要的图片

    界面

    二、前端界面

    以登录界面为例。
    在调用控制器函数时,可以用 {:url(项目名/控制器/函数)},如此调用。

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <style>
    
        * {
            margin: 0;
            overflow: hidden;
            padding: 0;
        }
    
        li ul {
            list-style: none;
        }
    
        input {
            margin: 3px;
            outline: none;
        }
    
        input[type=text] {
            width: 300px;
            padding: 8px 20px;
            margin: 4px 0px 4px 0px;
            display: flex;
            border: 1px solid #ccc;
            border-radius: 4px;
            box-sizing: border-box;
            background: #F0F0F0;
        }
    
        input[type=text]:focus {
            width: 300px;
            padding: 8px 20px;
            margin: 4px 0px 4px 0px;
            display: flex;
            border: 1px solid #ccc;
            border-radius: 4px;
            box-sizing: border-box;
            background: white;
        }
    
        input[type=submit] {
            width: 300px;
            background-color:#A6100E;
            color: white;
            padding: 10px 20px;
            margin: 18px 0;
            border: none;
            border-radius: 4px;
            cursor: pointer;
        }
    
        input[type=submit]:active {
            width: 300px;
            background-color: #8D0E0C;
            color: #BEBEBE;
            padding: 10px 20px;
            margin: 18px 0;
            border: none;
            border-radius: 4px;
            outline: none;
            cursor: pointer;
        }
        input [type=submit]:after{
            outline: none;
        }
    
        select{
            width: 300px;
            padding: 8px 20px;
            margin: 4px 0px 4px 0px;
            border: 1px solid #ccc;
            border-radius: 4px;
            box-sizing: border-box;
            outline: none;
        }
        select:active{
            outline: none;
        }
        option {
            outline: none;
        }
    
        #header {
            display: flex;
            background: black;
            color: whitesmoke;
            flex-direction: row;
        }
    
        #header ul {
            display: flex;
            margin-left: 10%;
        }
    
        #header li{
            align-items: center;
            display: flex;
            font-weight: bold;
            font-size: 16px;
        }
    
        #header ul li:hover{
            background-color: #444444;
            cursor: pointer;
        }
        #header ul li:active{
            background-color: #656565;
        }
        #header a{
            display: inline-block;
            padding: 0 25px 0 25px;
            height: 60px;
            line-height: 60px;
            font-size: 16px;
        }
    
        #signIn {
            margin-top: 10%;
            margin-right: 10%;
            float: right;
            color: white;
            display: flex;
            flex-direction: column;
        }
        #hh{
            display: flex;
        }
        a {
            direction: none;
        }
        a:focus{
            cursor: pointer;
        }
    </style>
    
    
    <body background="../../../../../TP/public/curricula/signin/img/02.jfif">
        <div id="header">
            <ul>
                <li><a herf="signin">首页</a></li>
            </ul>
        </div>
    
        <div>
            <form id="signIn" method="post" action="{:url('curricula/Signin/checkIdentity')}">
                <p>用户名</p>
                <input type="text" name="username" id="username" placeholder="username" />
                <p>密码</p>
                <input type="text" name="password" id="password" placeholder="password" />
                <p>身份</p>
                <select name="identity" id="identity" > 
                    <option value="s">学生</option>
                    <option value="t">教师</option>
                    <option value="a">尊敬的管理员</option>
                </select>
                <input type="submit" name="btn1" value="登录   login" />
            </form>
        </div>
    </body>
    
    

    三、数据库设置

    数据库建表过程略。数据库名称为student。

    在application文件夹内有一个database.php文件,修改其中的信息,以连接mysql。
    在这里插入图片描述
    修改以下信息即可。

        // 数据库类型
        'type'            => 'mysql',
        // 服务器地址
        'hostname'        => '127.0.0.1',
        // 数据库名
        'database'        => 'student',
        // 用户名
        'username'        => 'root',
        // 密码
        'password'        => '168168',
    

    在完成以上设置后,可以直接在表对应的model内,使用方法对完成增删改查(以student为例)
    遇到比较复杂的情况可以像这样直接进行SQL查询:

    use think\Model;	//必须填上这句,才可使用
    $M = $this;
    $sql = "要执行的SQL语句";
    $r = $M->execute($sql);
    

    $r 即为查询的结果。

    student.php

    <?php
    
    namespace app\curricula\model;  //curricula可改成你的项目名称。
    use think\Model;
    
    class Student extends Model
    {
    	//根据学号选择学生信息
        public function selStudentById($id) 
            $student = Student::get($id);
            if ($student) {
                return true;
            } else
                return false;
        }
    	
    	//增加一名学生
        public function addStudent($id, $name, $birth, $sex) //$id,$name,$sex,$brith)
        {
            if (!$this->selStudentById($id)) {
                $M = $this;
                $r = $M->execute("insert into student values('" . (string) $id . "','" . (string) $name . "','" . (string) $birth . "','" . (string) $sex . "')");
                if ($r)
                    return $this->selAll();
                else
                    return false;
            } else
                return false;
        }
    
    	//删除一名学生
        public function delStudent($id) //$id,$name,$sex,$brith)
        {
            if ($this->selStudentById($id)) {
                $M = $this;
                $sql = "delete from student where s_id='" . (string) $id . "'";
                $r = $M->execute($sql);
                if ($r) {
                    return $this->selAll();
                } else
                    return false;
            }
            else
                return false;
        }
    
    	//更新学生信息
        public function uptStudent($id, $name, $birth, $sex) //$id,$name,$sex,$brith)
        {
            $flag = false;
            $M = $this;
            if ($this->selStudentById($id)) {
                if ($name && $name != '') {
                    $sql = "update student set s_name='" . (string) $name . "'where s_id='" . (string) $id . "'";
                    $r = $M->execute($sql);
                    $flag = true;
                }
    
                if ($sex && $sex != '') {
                    $sql = "update student set s_sex='" . (string) $sex . "'where s_id='" . (string) $id . "'";
                    $r = $M->execute($sql);
                    $flag = true;
                }
    
                if ($birth && $birth != '') {
                    $sql = "update student set s_birth='" . (string) $birth . "'where s_id='" . (string) $id . "'";
                    $r = $M->execute($sql);
                    $flag = true;
                }
                if ($flag)
                    return $this->selAll();
                else
                    return 2;
            } else
                return 1;
        }
    
    	//根据学生姓名查询学生信息
        public function selStudentByName($name) //$id,$name,$sex,$brith)
        {
            $M = $this;
            $r = $M->query("select * from student where s_name='" . $name."'");
            if ($r)
                return $r;
            else
                return false;
        }
    	
    	//查询全部信息
        public function selAll()
        {
            $M = $this;
            $r = $M->query("select * from student");
            if ($r) {
                return $r;
            } else
                return false;
        }
    }
    
    

    四、控制器

    注意点:

    • 命名空间 namespace app\项目名\控制器文件夹名
    • 必须引入几个模型的位置,
    • 返回时使用json()包装数据
    • 调用界面时使用view()函数
    <?php
    
    namespace app\curricula\Controller;
    
    use think\Controller;
    use think\Model;
    use app\curricula\model\Student;
    use app\curricula\model\Teacher;
    use app\curricula\model\Users;
    use app\curricula\model\Course;
    use app\curricula\model\Score;
    use think\migration\command\migrate\Status;
    
    define('APP_DEBUG', true);
    
    class Signin extends Controller
    {
        public function signin()
        {
            return view("signin");
        }
    
        public function student()
        {
            return view("student");
        }
    
        public function teacher()
        {
            return view("teacher");
        }
    
        public function admin()
        {
            return view("admin");
        }
    
        public function addScore($id, $id2, $s)
        {
            return (new \app\curricula\model\Score())->addScore($id, $id2, $s);
        }
    
        public function checkIdentity()
        {
            $username = $_POST['username'];
            $password = $_POST['password'];
            $identity = $_POST['identity'];
            $r = (new \app\curricula\model\Users())->check($username, $password,$identity);
            $data = array(
                "status" => false,
                "info" => array()
            );
    
            if (!$r) {
                $this->redirect('signin');
            }
    
            if ($identity == 's')
                $this->redirect('student');
            else if ($identity == 't')
                $this->redirect('teacher');
            else if ($identity == 'a')
                $this->redirect('admin');
            else
                $this->redirect('signin');
        }
    
        public function selScoreCT() //$id,$name,$sex,$brith)
        {
            $id = $_GET['id'];
            $r = (new \app\curricula\model\Score())->selScoreCT($id);
            $data = array(
                "status" => false,
                "info" => array()
            );
    
            if ($data == false) {
                return (json($data));
            } else {
                $data["status"] = true;
                $data["info"] = $r;
                return (json($data));
            }
        }
        public function deladdScore()
        {
            $ch = $_GET["ch"];
            $sid = $_GET["sid"];
            $cid = $_GET["cid"];
            if ($ch == 'del') {
                $r = (new \app\curricula\model\Score())->stuDelScore($sid, $cid);
                $data = array(
                    "status" => false,
                    "info" => array("ERROR")
                );
                if ($r == -1) {
                    $data["status"] = -1;
                    $data["info"] = "成绩已登陆,别想改啦";
                    return (json($data));
                }
                if ($r == false) {
                    return (json($data));
                } else {
                    $data["status"] = true;
                    $data["info"] = $r;
                    return (json($data));
                }
            } 
    		
    		else if ($ch == 'add') {
                $r = (new \app\curricula\model\Score())->stuAddScore($sid, $cid);
                $data = array(
                    "status" => false,
                    "info" => -1
                );
                if ($r == -2) {
                    $data["status"] = -2;
                    $data["info"] = "你已选择这门课程";
                    return (json($data));
                }
                if ($r == -1) {
                    $data["status"] = -1;
                    $data["info"] = "没有这门课程";
                    return (json($data));
                }
    
                if ($r == -3) {
                    $data["status"] = -3;
                    $data["info"] = "插入失败";
                    return (json($data));
                }
                else {
                    $data["status"] = true;
                    $data["info"] = $r;
                    return (json($data));
                }
            }
        }
    
    	//选择课程信息
        public function selCourseMS()
        {
            $tid = $_GET['tid'];
            $r = (new \app\curricula\model\Course())->countCourse($tid);
            $data = array(
                "status" => false,
                "info" => array(),
                "cnum" => '0'
            );
            if (!$r || $r[0]['c_num'] == 0)
                return json($data);
            else {
                $data["cnum"] = (string) $r[0]['c_num'];
                $r = (new \app\curricula\model\Course())->selCourse($tid);
                $data["info"] = $r;
                $data["status"] = true;
                return json($data);
            }
        }
    
        public function selTeacherId()
        {
            $tname = $_GET['name'];
            $r = (new \app\curricula\model\Teacher())->selTeacherId($tname);
            $data = array(
                "status" => false,
                "info" => "查无此人"
            );
            if (!$r) {
                return json($data);
            } else {
                $data["info"] = $r;
                $data["status"] = true;
                return json($data);
            }
        }
    
        public function selCourseAVG()
        {
            $c = $_GET['cid'];
            $cid = '';
            for ($i = 0; $i < count($c); $i++) {
                $cid .= "'" . $c[$i] . "'";
                if ($i != count($c) - 1) {
                    $cid .= ',';
                }
            }
    
            $r = (new \app\curricula\model\Course())->selCourseAVG($cid);
            $data = array(
                "status" => false,
                "info" => "无课程信息"
            );
            if (!$r) {
                return json($data);
            } else {
                $data["info"] = $r;
                $data["status"] = true;
                return json($data);
            }
        }
    
        public function uptScore()
        {
            $sid = $_GET['sid'];
            $cid = $_GET['cid'];
            $sc = $_GET['sc'];
            $r = (new \app\curricula\model\Score())->uptScore($sid, $cid, $sc);
            $data = array(
                "status" => false,
                "info" => "无课程信息"
            );
            if (!$r) {
                return json($data);
            } else {
                $data["info"] = $r;
                $data["status"] = true;
                return json($data);
            }
        }
    
        public function addStudent($sid, $sname, $sbth, $sex)
        {
            $r = (new \app\curricula\model\Student())->addStudent($sid, $sname, $sbth, $sex);
            $data = array(
                "status" => false,
                "info" => "失败"
            );
            if ($r == false) {
                return json($data);
            } else {
                $data["info"] = $r;
                $data["status"] = true;
                return json($data);
            }
        }
    
        // student
        public function delStudent($sid)
        {
            $r = (new \app\curricula\model\Student())->delStudent($sid);
            $data = array(
                "status" => false,
                "info" => "失败"
            );
            if ($r == false) {
                return json($data);
            } else {
                $data["info"] = $r;
                $data["status"] = true;
                return json($data);
            }
        }
    
        public function uptStudent($id, $name, $sbth, $sex)
        {
            $r = (new \app\curricula\model\Student())->uptStudent($id, $name, $sbth, $sex);
            $data = array(
                "status" => false,
                "info" => "失败"
            );
            if ($r == 1 || $r == 2) {
                $data["status"] = $r;
                return json($data);
            } else {
                $data["info"] = $r;
                $data["status"] = true;
                return json($data);
            }
        }
    
        //teacher
        public function addTeacher($id, $name)
        {
            $r = (new \app\curricula\model\Teacher())->addTeacher($id, $name);
            $data = array(
                "status" => false,
                "info" => "失败"
            );
            if ($r == false) {
                return json($data);
            } else {
                $data["info"] = $r;
                $data["status"] = true;
                return json($data);
            }
        }
    
        public function delTeacher($id)
        {
            $r = (new \app\curricula\model\Teacher())->delTeacher($id);
            $data = array(
                "status" => false,
                "info" => "失败"
            );
            if ($r == false) {
                return json($data);
            } else {
                $data["info"] = $r;
                $data["status"] = true;
                return json($data);
            }
        }
    
        public function uptTeacher($id, $name)
        {
            $r = (new \app\curricula\model\Teacher())->uptTeacher($id, $name);
            $data = array(
                "status" => false,
                "info" => "失败"
            );
            if ($r == 1 || $r == 2) {
                $data["status"] = $r;
                return json($data);
            } else {
                $data["info"] = $r;
                $data["status"] = true;
                return json($data);
            }
        }
    
        //Course
        public function addCourse($cid, $name, $tid)
        {
            $r = (new \app\curricula\model\Course())->addCourse($cid, $name, $tid);
            $data = array(
                "status" => false,
                "info" => "失败"
            );
            if ($r == false) {
                return json($data);
            } else {
                $data["info"] = $r;
                $data["status"] = true;
                return json($data);
            }
        }
    
        public function delCourse($id)
        {
            $r = (new \app\curricula\model\Course())->delCourse($id);
            $data = array(
                "status" => false,
                "info" => "失败"
            );
            if ($r == false) {
                return json($data);
            } else {
                $data["info"] = $r;
                $data["status"] = true;
                return json($data);
            }
        }
    
        public function uptCourse($cid, $name, $tid)
        {
            $r = (new \app\curricula\model\Course())->uptCourse($cid, $name, $tid);
            $data = array(
                "status" => false,
                "info" => "失败"
            );
            if ($r == 1 || $r == 2) {
                $data["status"] = $r;
                return json($data);
            } else {
                $data["info"] = $r;
                $data["status"] = true;
                return json($data);
            }
        }
    
        public function studentADU()
        {
            $ch = $_GET['ch'];
            $sid = $_GET['sid'];
            $sname = $_GET['sname'];
            $sbth = $_GET['sbth'];
            $sex = $_GET['sex'];
            if ($ch == 'add') {
                return $this->addStudent($sid, $sname, $sbth, $sex);
            } else if ($ch == 'del') {
                return $this->delStudent($sid);
            } else if ($ch == 'upt') {
                return $this->uptStudent($sid, $sname, $sbth, $sex);
            } else
                return  $data = array(
                    "status" => false,
                    "info" => "失败"
                );
        }
    
        public function teacherADU()
        {
            $ch = $_GET['ch'];
            $id = $_GET['tid'];
            $name = $_GET['tname'];
            if ($ch == 'add') {
                return $this->addTeacher($id, $name);
            } else if ($ch == 'del') {
                return $this->delTeacher($id);
            } else if ($ch == 'upt') {
                return $this->uptTeacher($id, $name);
            } else
                return  $data = array(
                    "status" => false,
                    "info" => "失败"
                );
        }
    
        public function courseADU()
        {
            $ch = $_GET['ch'];
            $cid = $_GET['cid'];
            $name = $_GET['cname'];
            $tid = $_GET['tid'];
            if ($ch == 'add') {
                return $this->addCourse($cid, $name, $tid);
            } else if ($ch == 'del') {
                return $this->delCourse($cid);
            } else if ($ch == 'upt') {
                return $this->uptCourse($cid, $name, $tid);
            } else
                return  $data = array(
                    "status" => false,
                    "info" => "失败"
                );
        }
    
        public function selAllCourseAVG()
        {
            $r = (new \app\curricula\model\Course())->selAllCourseAVG();
            $data = array(
                "status" => false,
                "info" => "无课程信息"
            );
            if (!$r) {
                return json($data);
            } else {
                $data["info"] = $r;
                $data["status"] = true;
                return json($data);
            }
        }
    
        public function selStudentByName()
        {
            $sname = $_GET['sname'];
            $r = (new \app\curricula\model\Student())->selStudentByName($sname);
            $data = array(
                "status" => false,
                "info" => "无信息"
            );
            if (!$r) {
                return json($data);
            } else {
                $data["info"] = $r;
                $data["status"] = true;
                return json($data);
            }
        }
    
        public function selTeacherByName()
        {
            $tname = $_GET['tname'];
            $r = (new \app\curricula\model\Teacher())->selTeacherByName($tname);
            $data = array(
                "status" => false,
                "info" => "无信息"
            );
            if (!$r) {
                return json($data);
            } else {
                $data["info"] = $r;
                $data["status"] = true;
                return json($data);
            }
        }
    }
    
    

    五、前端返回信息处理

    前端使用ajax提交并显示数据

    ajax简单入门

    //需引入jquery
    <script src="http://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script>
    
    function func() {
            $.ajax({
                url: "delXXX", 				//后端函数名
                type: 'GET',				//方式GET or POST
                data: {						//要交由后端处理的数据,用逗号间隔
                    'sid': $("#sid").val(),
                    'cid': $("#cid").val()
                },
                success: function (data)	//成功返回数据,data是服务器端返回的字符串数据
                { 
    	             // .......your code
                }
            });								//分号结束
        }
    

    以学生按姓名查询信息为例:

    
        function inquiryStuByName() {
      
            if ($("#sname").val() == '') {
                alert("Empty Input!");
                return;
            }
            $.ajax({
                url: "selStudentByName",
                type: 'GET',
                data: {
                    "sname": $("#sname").val()
                },
                success: function (data) { 
                    if (!data.status)
                        alert("ERROR");
                    else {
                        var str = style;
                        str += "<Table class='pure-table pure-table-bordered'>";
                        str += "<tr> <td>学号</td> <td>姓名</td><td>出生日期</td><td>性别</td></tr>";
                        for (var i = 0; i < data.info.length; i++) {
                            str += '<tr>';
                            str += ("<td>" + data.info[i].s_id + "</td>");
                            str += ("<td>" + data.info[i].s_name + "</td>");
                            str += ("<td>" + data.info[i].s_birth + "</td>");
                            str += ("<td>" + data.info[i].s_sex + "</td>");
                            str += '</tr>';
                        }
                        str += "</Table>"
                        $("#show").html(str);
                    }
                }
            });
        }
    

    需要完整代码可戳我。

    展开全文
  • 1. 学生成绩管理系统中不同使用单位(用户)的学生人数事先无法确定. 2. 该学生成绩管理系统要求有学生成绩录入,查询,修改,删除,数据导入――将教务处的Excel格式的成绩单导入数据库中。 3. 系统使用web网页...
  • 推荐一下这个课设的姊妹篇-------------基于SSH(struts-spring-hibernate)开发的学生成绩管理系统,https://download.csdn.net/download/qq_33654685/10850113 本系统为仓库管理系统,系统功能较为基础,同时操作又...
  • 推荐一下这个课设的姊妹篇-------------基于SSH(struts-spring-hibernate)开发的学生成绩管理系统,https://download.csdn.net/download/qq_33654685/10850113 本系统为仓库管理系统,系统功能较为基础,同时操作...

空空如也

空空如也

1 2
收藏数 28
精华内容 11
关键字:

web课设学生成绩管理系统