Java+Jsp+MySQL高校选课系统设计与实现(附源码下载地址)

01 完整源码下载

温馨提示:高校选课系统(courseSelection)完整源码下载地址附在文章末尾

Java精选项目大全:《Java项目精选|Java毕业设计项目源码》

02 系统概述

学生选课系统是一个学校不可缺少的部分,它能为用户提供充足的信息和快捷的查询手段。管理员可以通过超级用户身份登录,对系统进行全面的管理。学生可以登录系统进行个人信息查询、网上选课等等。

本文设计的高校选课系统是在J2EE平台下开发完成的,采用了B/S模式、MySQL数据库和Tomcat服务器。其具有用户界面简洁友好,操作简单易用,运行稳定可靠,易维护,可扩展等特点,基本达到了设计要求,对同类系统的设计与实现具有一定的参考价值。

03 开发工具及技术选型

  • 数据表现层:Jsp+JavaScript+CSS
  • 业务逻辑层:Java+Struts
  • 数据持久层:MySQL+Hibernate
  • 开发工具:IDEA / Eclipse

04 运行环境

JDK1.8 + Tomcat9.0+ MySQL5.7

05 用户分析

本系统主要使用人群为系统管理员、普通读者。

  • 系统管理员:管理整个系统的各项功能,如:专业管理、课程管理、信息统计。
  • 普通读者:查询基本信息、选择新课程、查询已选课程、修改登录密码。

06 功能分析

系统管理员:

  1. 专业管理。 列表显示专业编号、专业名称、开设年份、专业学制、是否结业等专业信息。点击添加新专业按钮,填写入学年份、专业名称、学制录入新专业。
  2. 课程管理。 列表显示专业名称、课程名称 、上课时间、上课地点、课程学分、授课教师、学生是否可选等课程信息。点击增加新课程按钮,填写专业、课程名称、上课时间、上课地点、课程学分、课程介绍、授课教师、教师介绍录入新课程。输入专业、教师名称、课程名称进行条件搜索。
  3. 统计信息。 统计每个专业下学生选课情况,并且可以导出PDF、Excel文档。
  4. 修改登录密码。 对个人的登录密码进行修改操作。
  5. 退出系统。 退出当前登录用户,跳转待登录界面。

普通读者:

  1. 查询基本信息。 对专业、入学年份、学制、学号、出生日期、联系电话、现住址、家庭地址等基本信息进行查询。
  2. 选择新课程。 对自己专业下的课程进行选课。
  3. 查询已选课程。 对已经选择的课程进行查询,按列表显示课程名称、授课教师、学分、上课时间、上课地点等信息。
  4. 修改登录密码。 对个人的登录密码进行修改操作。
  5. 退出系统。 退出当前登录用户,跳转待登录界面。

07 数据库设计

tb_course: 用于存储课程信息

字段名称类型是否为NULL是否主键说明
idint课程编号
namevarchar课程名称
schooltimevarchar上课时间
addrvarchar上课地点
creditdecimal课程学分
courseInfovarchar课程介绍
teacherNamevarchar老师姓名
teacherInfovarchar老师介绍
isFinishbit是否可选
specialtyIdint所属专业编号

tb_specialty: 用于存储专业信息

字段名称类型是否为NULL是否主键说明
idint专业编号
enterYearvarchar开设年份
namevarchar专业名称
langthYearvarchar专业学制
isFinishbit是否结业 0:未结业 1:结业

tb_stucourse: 用于映射学生与课程之间的关系

字段名称类型是否为NULL是否主键说明
idint主键编号
stuIDint学生编号
courseIDint课程编号

tb_stuuser: 用于存储学生信息

字段名称类型是否为NULL是否主键说明
idint学生编号
stuNamevarchar学生姓名
stuNovarchar学生学号
specialtyIdint学生所学专业编号
stuSexvarchar学生性别
birthdayvarchar学生出生年月日
homeAddrvarchar学生家庭地址
telvarchar学生电话
addrvarchar学生当前居住地址

tb_userlogin: 用于存储用户信息

字段名称类型是否为NULL是否主键说明
idint用户编号
loginNamevarchar用户名
pwdvarchar密码
typevarchar用户类型 1:管理员 2:学生
mailvarchar邮箱

08 项目工程结构及说明

目录说明
com.cya.action存放action类,接收前端发来的请求,并将响应结果返回给前端
com.cya.dao存放dao层接口
com.cya.dto存放实体类
com.cya.tools存放工具类
WebContent/images存放项目所需要的图片文件
WebContent/manager存放管理员端Jsp文件
WebContent/stu存放普通用户端(学生)Jsp文件

09 部分功能展示及源码

9.1 管理员端–首页

9.2 管理员端–专业管理

专业列表:

添加新专业:

部分源码:

package com.cya.action;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.DynaActionForm;
import org.apache.struts.actions.DispatchAction;

import com.cya.dao.ISpecialtyDao;
import com.cya.dto.Specialty;

/**
 * @author 公众号【IT学长】 
 */
public class SpecialtyAction extends DispatchAction {

	private ISpecialtyDao specialtyDao;
	public void setSpecialtyDao(ISpecialtyDao specialtyDao) {
		this.specialtyDao = specialtyDao;
	}

	public ActionForward insert(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		DynaActionForm specialtyForm = (DynaActionForm) form;
		Specialty specialty = new Specialty();
		specialty.setIsFinish(false); // 设置是否结业,默认为否
		specialty.setName(specialtyForm.getString("name"));
		specialty.setEnterYear(specialtyForm.getString("enterYear"));
		specialty.setLangthYear(specialtyForm.getString("langthYear"));
		specialtyDao.insert(specialty);
		findAll(mapping, specialtyForm, request, response);
		return mapping.findForward("showSpecialty");
	}

	/**
	 * 将专业设置为已结业
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 */
	public ActionForward updateIsFinish(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		Integer id = Integer.valueOf(request.getParameter("id"));
		specialtyDao.updateIsFinish(id);
		return findAll(mapping, form, request, response);
	}

	public ActionForward findAll(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		List list = specialtyDao.findByAll();
		request.setAttribute("list", list);
		return mapping.findForward("showSpecialty");
	}

}

9.3 管理员–课程管理

课程列表:

添加新课程:

部分源码:

package com.cya.action;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.DynaActionForm;
import org.apache.struts.actions.DispatchAction;

import com.cya.dao.ICourseDao;
import com.cya.dao.ISpecialtyDao;
import com.cya.dto.Course;
import com.cya.dto.Specialty;

/**
 * @author 公众号【IT学长】 
 */

public class CourseAction extends DispatchAction {
	
	private ISpecialtyDao specialtyDao;
	private ICourseDao courseDao;
	
	/**
	 * @param specialtyDao the specialtyDao to set
	 */
	public void setSpecialtyDao(ISpecialtyDao specialtyDao) {
		this.specialtyDao = specialtyDao;
	}
	/**
	 * @param courseDao the courseDao to set
	 */
	public void setCourseDao(ICourseDao courseDao) {
		this.courseDao = courseDao;
	}
	public ActionForward insert(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		DynaActionForm courseForm = (DynaActionForm) form;
		Course course = new Course();
		course.setName(courseForm.getString("name"));
		course.setSchooltime(courseForm.getString("schooltime"));
		course.setAddr(courseForm.getString("addr"));
		course.setCredit((Short)courseForm.get("credit"));
		course.setCourseInfo(courseForm.getString("courseInfo"));
		course.setTeacherName(courseForm.getString("teacherName"));
		course.setTeacherInfo(courseForm.getString("teacherInfo"));
		course.setIsFinish(true);	//是否可以选课,默认为可以
		course.setSpecialtyId((Integer)courseForm.get("specialtyId"));
		courseDao.insert(course);
		return findBySearch(mapping, courseForm, request, response);
	}
	public ActionForward updateIsFinish(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		Integer id = Integer.valueOf(request.getParameter("id"));
		courseDao.updateIsFinish(id);
		return courseInfo(mapping, form, request, response);
	}
	public ActionForward findBySearch(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		List<Specialty> sList = specialtyDao.findByAll();
		
		Map<String,String> map = new HashMap<String,String>();
		if(request.getParameter("specialtyId")!=null&&!request.getParameter("specialtyId").equals("-1")){
			map.put("specialtyId", request.getParameter("specialtyId"));
		}
		if(request.getParameter("name")!=null&&!request.getParameter("name").equals("")){
			map.put("name", request.getParameter("name"));
		}
		if(request.getParameter("teacherName")!=null&&!request.getParameter("teacherName").equals("")){
			map.put("teacherName", request.getParameter("teacherName"));
		}
		
		List<Object> clist = courseDao.findBySearch(map);
		
		request.setAttribute("sList", sList);
		request.setAttribute("cList", clist);
		return mapping.findForward("showCourse");
	}
	
	/**
	 * 进入添加新课程页面 
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 */
	public ActionForward showInsert(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		List<Specialty> list = specialtyDao.findByAll();
		request.setAttribute("list", list);
		return mapping.findForward("addCourse");
	}
	public ActionForward courseInfo(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		Integer id = Integer.valueOf(request.getParameter("id"));
		Course course = courseDao.findByID(id);
		Specialty specialty = specialtyDao.findById(course.getSpecialtyId());
		request.setAttribute("course", course);
		request.setAttribute("specialty", specialty);
		return mapping.findForward("courseInfo");
	}
}

9.4 管理员端–统计信息

信息列表:

选课人员列表:

导出PDF文档:

在这里插入图片描述

导出Excel文档:

9.5 普通用户端–基本信息

部分源码:

<%@ page language="java" pageEncoding="utf-8"%>

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html lang="true">
  <head>
    <title>welcome.jsp</title>
	<link rel="stylesheet" type="text/css" href="images/style.css">
</head>
  <body>
    <table width="845" border="0" cellspacing="0" align="center">
  <tr>
    <td height="124" colspan="2" background="images/topU.gif">&nbsp;</td>
  </tr>
  <tr>
    <td width="145" height="500" align="left" valign="top" bgcolor="#E4F0D8">
		<jsp:include page="left.jsp"/>
	</td>
    <td width="700" align="left" valign="top">
		<table cellspacing="0" width="600px" align="center">
			<tr>
				<td height="20" colspan="2"></td>
			</tr>
			<tr>
				<td width="14" background="images/jiantou.jpg">&nbsp;</td>
				<td width="585"><span class="STYLE2">当前位置:</span>用户基本信息</td>
			</tr>
			<tr>
				<td height="8" colspan="2"></td>
			</tr>

			<tr>
				<td height="3" colspan="2" bgcolor="#b1de69"></td>
			</tr>
			<tr>
				<td height="20" colspan="2"></td>
			</tr>
		</table>
		<table width="500" align="center" cellspacing="0">
			<tr>
				<td height="30" align="right" bgcolor="#e4f0d8" class="td0" width="114">专业名称:</td>
				<td align="right" bgcolor="#e4f0d8" class="td0" width="10">&nbsp;</td>
				<td width="9" height="30" align="left" bgcolor="#e4f0d8" class="td0">&nbsp;</td>
			    <td width="357" align="left" bgcolor="#e4f0d8" class="td0">${specialty.name}</td>
			</tr>
			<tr>
				<td height="30" align="right" class="td1">入学年份:</td>
				<td height="30" align="right" class="td1">&nbsp;</td>
				<td height="30" class="td2">&nbsp;</td>				
			    <td height="30" class="td1">${specialty.enterYear}年</td>
			</tr>
			<tr>
			  <td height="30" align="right" class="td1">学制:</td>
			  <td height="30" align="right" class="td1">&nbsp;</td>
			  <td height="30" class="td2">&nbsp;</td>
		      <td height="30" class="td1">${specialty.langthYear}年</td>
		  </tr>
			<tr>
				<td height="30" align="right" class="td1">姓名:</td>
				<td height="30" align="right" class="td1">&nbsp;</td>
				<td height="30" class="td2">&nbsp;</td>
			    <td height="30" class="td1">${stuUser.stuName}</td>
			</tr>
			<tr>
			  <td height="30" align="right" class="td1">学号:</td>
			  <td height="30" align="right" class="td1">&nbsp;</td>
			  <td height="30" class="td2">&nbsp;</td>
		      <td height="30" class="td1">${stuUser.stuNo}</td>
		  </tr>
			<tr>
				<td height="30" align="right" class="td1">性别:</td>
				<td height="30" align="right" class="td1">&nbsp;</td>
				<td height="30" class="td2">&nbsp;</td>
			    <td height="30" class="td1">${stuUser.stuSex}</td>
			</tr>
			<tr>
			  <td height="30" align="right" class="td1">出生日期:</td>
			  <td height="30" align="right" class="td1">&nbsp;</td>
			  <td height="30" class="td2">&nbsp;</td>
		      <td height="30" class="td1">${stuUser.birthday}</td>
		  </tr>
			<tr>
				<td height="30" align="right" class="td1">联系电话:</td>
				<td height="30" align="right" class="td1">&nbsp;</td>
				<td height="30" class="td2">&nbsp;</td>				
			    <td height="30" class="td1">${stuUser.tel}</td>
			</tr>
			<tr>
				<td height="30" align="right" class="td1">现住址:</td>
				<td height="30" align="right" class="td1">&nbsp;</td>
				<td height="30" class="td2">&nbsp;</td>		
			    <td height="30" class="td1">${stuUser.addr}</td>
			</tr>
			<tr>
				<td height="30" align="right" class="td1">家庭地址:</td>
				<td height="30" align="right" class="td1">&nbsp;</td>
				<td height="30" class="td2">&nbsp;</td>		
			    <td height="30" class="td1">${stuUser.homeAddr}</td>
			</tr>
		</table>
		<p>
	</td>
  </tr>
  <tr>
  	<td style="font-weight: bold;color: green;font-size: 18px;" height="85" colspan="2" align="center" background="images/bottomU.gif">&nbsp;【IT学长】,几十套毕业设计项目源码、百G Java面试题</td>
  </tr>
</table>
  </body>
</html:html>

9.6 普通用户端–已选课程

部分源码:

<%@ page language="java" pageEncoding="utf-8"%>

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html lang="true">
  <head>
    <title>selected.jsp</title>
	<link rel="stylesheet" type="text/css" href="images/style.css">
  </head>
  <body>
    <table width="845" cellspacing="0" align="center">
  <tr>
    <td height="124" colspan="2" background="images/topU.gif">&nbsp;</td>
  </tr>
  <tr>
    <td width="150" height="500" align="left" valign="top" bgcolor="#E4F0D8">
		<jsp:include page="left.jsp"/>
	</td>
    <td align="left" valign="top">
		<table cellspacing="0" width="600px" align="center">
			<tr>
				<td height="20" colspan="2"></td>
			</tr>
			<tr>
				<td width="14" background="images/jiantou.jpg">&nbsp;</td>
				<td width="585"><span class="STYLE2">当前位置:</span>查询已选课程</td>
			</tr>
			<tr>
				<td height="8" colspan="2"></td>
			</tr>

			<tr>
				<td height="3" colspan="2" bgcolor="#b1de69"></td>
			</tr>
			<tr>
				<td height="20" colspan="2"></td>
			</tr>
		</table>
		<table width="500" align="center" cellspacing="0">
			<tr>
				<td height="30" align="center" class="td0"><strong>课程名称</strong></td>
				<td align="center" class="td0"><strong>授课教师</strong></td>
				<td align="center" class="td0"><strong>学分</strong></td>
				<td align="center" class="td0"><strong>上课时间</strong></td>
				<td align="center" class="td0"><strong>上课地点</strong></td>
			</tr>
			<logic:iterate id="list" name="list">
				<tr>
				  <td height="30" align="center" class="td1">
				  <html:link page="/stuUser.do?method=courseInfo&id=${list[1].id}&path=selected">
				  ${list[1].name}</html:link></td>
					<td align="center" class="td1">${list[1].teacherName}</td>
					<td align="center" class="td1">${list[1].credit }</td>
					<td align="center" class="td1">${list[1].schooltime}</td>
					<td align="center" class="td1">${list[1].addr}</td>
				</tr>
			</logic:iterate>
		</table>
	</td>
  </tr>
  <tr>
  	<td style="font-weight: bold;color: green;font-size: 18px;" height="85" colspan="2" align="center" background="images/bottomU.gif">&nbsp;【IT学长】,几十套毕业设计项目源码、百G Java面试题</td>
  </tr>
</table>
  </body>
</html:html>

9.7 用户登录

部分源码:

package com.cya.action;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.DynaActionForm;

import com.cya.dao.ISpecialtyDao;
import com.cya.dao.IStuUserDao;
import com.cya.dao.IUserLoginDao;
import com.cya.dto.Specialty;
import com.cya.dto.StuUser;
import com.cya.dto.UserLogin;

/**
 * @author 公众号【IT学长】 
 */
public class UserLoginAction extends Action {

	private IUserLoginDao userLoginDao;
	private IStuUserDao stuUserDao;
	private ISpecialtyDao specialtyDao;

	public void setSpecialtyDao(ISpecialtyDao specialtyDao) {
		this.specialtyDao = specialtyDao;
	}

	public void setStuUserDao(IStuUserDao stuUserDao) {
		this.stuUserDao = stuUserDao;
	}

	public void setUserLoginDao(IUserLoginDao userLoginDao) {
		this.userLoginDao = userLoginDao;
	}

	/**
	 * Method execute
	 * 
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return ActionForward
	 */
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		DynaActionForm userLoginForm = (DynaActionForm) form;
		UserLogin userLogin = userLoginDao.findbyNameAndPwd(userLoginForm
				.getString("loginName"), userLoginForm.getString("pwd"));
		if (userLogin == null) {
			request.setAttribute("error", "用户登录失败,用户名或密码不正确!");
			return mapping.findForward("index");
		} else {
			request.getSession().setAttribute("loginName",
					userLogin.getLoginName());
			request.getSession().setAttribute("id", userLogin.getId());
			if (userLogin.getType().equals("1")) {
				System.out.println("管理员登录");
				return mapping.findForward("manager");
			} else {
				// 判断学生有没有填写过基本信息
				StuUser stuUser = stuUserDao.findById(userLogin.getId());
				if (stuUser == null) {
					List<Specialty> list = specialtyDao.findStuByAll();
					request.setAttribute("list", list);
					return mapping.findForward("addStuInfo");
				} else {
					Specialty specialty = specialtyDao.findById(stuUser
							.getSpecialtyId());
					request.setAttribute("specialty", specialty);
					request.setAttribute("stuUser", stuUser);
					return mapping.findForward("welcome");
				}
			}
		}
	}
}

10 运行教程

  1. 下载安装Java(JDK1.8)、MySQL(MySQL5.7)、Tomcat(Tomcat9.0)
  2. 下载本系统源代包
  3. 将源码包中db_course_selection.sql导入MySQL
  4. 将下载好的源码导入Eclipse/IDEA开发工具中
  5. 修改courseSelection/WebContent/applicationContext.xml


6. 配置Tomcat
7. 启动服务,浏览器输入http://localhost:8080/courseSelection

本期内容就到这里,感谢你的阅读,免费下载本系统完整源码请微信搜索下方名片,回复“20221022”。关键词一定要输完整、输对哦!!

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
电脑彩票销售管理系统是一款基于JavaJSPMySQL的后台管理系统。该系统主要面向彩票销售行业,为销售店提供线上销售渠道,方便销售店进行彩票销售、订单管理、用户管理等操作。本文将详细介绍该系统的设计实现。 一、系统设计 1. 数据库设计 该系统主要使用MySQL数据库进行数据存储。数据库设计包括用户表、订单表、彩票类型表、销售店表等。其中,用户表用于存储用户的注册信息、订单表用于存储用户购买彩票的信息、彩票类型表用于存储彩票的种类信息、销售店表用于存储销售店的信息。数据库设计要充分考虑数据的整体性、正常性等。 2. 系统架构设计 该系统采用MVC模式架构设计,即模型-视图-控制器。模型层主要处理数据存储和操作,视图层主要呈现数据,控制器层主要对业务逻辑进行处理。系统架构设计要保证各层之间的交互和数据传递。 3. 功能模块设计 该系统主要包括用户管理模块、订单管理模块、彩票管理模块等。用户管理模块主要进行用户注册、登录、修改密码等操作;订单管理模块主要进行订单的查询、添加、修改、删除等操作;彩票管理模块主要进行彩票类型的添加、修改、删除等操作。功能模块设计要考虑到实际需求和用户体验,梳理清楚各个模块的功能。 二、系统实现 1. 技术选型 该系统采用Java EE平台进行开发,使用Eclipse作为开发工具,采用Tomcat 服务器进行部署。前端使用JSPJavaScript进行开发,后端使用Java进行开发,使用MySQL进行数据存储。 2. 代码实现 具体车可以根据需求和功能模块设计进行开发,如用户管理模块的代码实现如下: (1)用户注册代码实现 用户注册需要输入用户信息,系统需要进行信息验证并将信息存储于数据库中。 (2)用户登录代码实现 用户登录需要输入用户名和密码,系统需要进行登录验证并返回相应的结果。 (3)修改密码代码实现 用户在登录后可进行修改密码操作,系统需要进行密码验证并更新数据库中的密码信息。 3. 系统测试 系统测试是系统开发的最后一步。测试主要包括模块测试、集成测试和系统测试等。通过测试,可发现和解决程序存在的问题和漏洞,保证系统的高质量、高稳定性。 三、结论 本文从系统设计实现两个方面,详细介绍了基于JavaJSPMySQL的电脑彩票销售管理系统的实现过程。该系统考虑到了实际需求和用户体验问题,在功能模块设计和代码实现方面充分保证了代码的可靠性和稳定性。除此之外,还可以根据实际需求不断进行系统的优化和升级,提高系统的性能和用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值