实训—学生信息管理系统

本文介绍了一个学生信息管理系统的设计与实现,包括学生信息的增删改查等功能,并提供了完整的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

*******************************  
*版权所有 (c)2016 zhangdong  
*文件名称:123.cpp  
*文件标识:无  
题目描述:学生信息管理系统开发  
*其他说明:无  
*当前版本:V1.0  
*作者:田艺 
*完成时间:2016.12.29  
*学院:计算机与控制工程学院  
******************************* 

架构:


头文件代码:

typedef struct LNode

{

//用于存放学生信息节点

	int stuNumber;

        char telenum[50];

	int age;

	char chass[50];

	char deptName[50];

	char name[20];

	struct LNode *next;

}
LNode,*Link;
Link createLink(Link L);                //创建一个新的链表输入学生信息

void keepStu(Link L);                   //保存学生信息

Link stuEntry();                        //读取学生信息

void printList(Link L);                 //打印学生信息

void inserStu(Link L,Link Elem);        //插入学生信息

Link prior(Link L,Link p);              //找到当前地址元素的前一元素的地址

int searchName(Link L,char n[]);        //按姓名查找

int searchNum(Link L,int n);            //按学号查找

void deleteElem(Link L,int i);          //删除学生信息

int deleName(Link L, char n[]);         //按姓名删除

int deleNum(Link L,int n);              //按学号删除

void searchWay1(Link L);                //按姓名查找(调用searchName)

void searchWay2(Link L);                //按学号查找(调用searchNum)

void searchMenu(Link L);                //查找菜单

void alterStu(Link L);                  //按学号更新学生信息

int count(Link L);                      //统计有效学生信息的数量

void AddStu(Link L);                    //添加学生信息

void deteStu(Link L);                   //主菜单

int  mainMenu();

void welcome();
部分函数实现:

#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#include <fstream>
#include "123.h"
#define LEN sizeof(LNode)
using namespace std;
//****************创建链表********************************
Link createLink(Link L)
{
    //初始化定义函数,声明变量
    void inserStu(Link L,Link Elem);//定义插入函数
    int count(Link L);
    int temp;
    temp=count(L);
    Link p;
    int num=1, stuNumber;
    char telenum[50];
    char name[20];
    int age;
    char chass[50];
    //开始输出学生信息
    while(1)
    {
        cout<<"请输入学生的信息:学号,姓名,年龄,班级,电话号码O(∩_∩)O~";
        cout<<"输入负数结束!";
        cout<<"请输入学号:";
        cin>>stuNumber;
        if(stuNumber<0)
        {
            break;
        }
        cout<<"请输入名字:";
        getchar();
        gets(name);
        cout<<"请输入年龄:";
        cin>>age;
        cout<<"请输入班级:";
        getchar();
        gets(chass);
        cout<<"请输入电话号码:";
        getchar();
        gets(telenum);
        if(stuNumber>=0)
        {
            p=(Link)malloc(LEN);
            p->stuNumber=stuNumber;
            strcpy(p->chass,chass);
            p->age=age;
            strcpy(p->telenum,telenum);
            strcpy(p->name,name);
            inserStu(L,p);
            num++;
        }
    }
    return (L);
}
//*********************保存学生信息*******************
void keepStu(Link L)
{
    Link p=L->next;
    char ch;
    ofstream outfile("f2.dat",ios::out);
    if(!outfile)
    {
        cerr<<"open f2.dat error"<<endl;
        exit(1);
    }
    while(p!=NULL)
    {
        outfile<<"学号:";
        outfile<<p->stuNumber;
        outfile<<" ";
        outfile<<"年龄:";
        outfile<<p->age;
        outfile<<" ";
        outfile<<"姓名:";
        outfile<<p->name;
        outfile<<" ";
        outfile<<"年级:";
        outfile<<p->chass;
        outfile<<" ";
        outfile<<"电话号码:";
        outfile<<p->telenum;
        outfile<<" ";
        p=p->next;
        outfile<<endl;
    }
    outfile.close();
    cout<<"保存成功!!!!"<<endl;
}
//*****************读取学生信息*********************
Link stuEntry()
{
    char ch;
    ifstream infile("f2.dat",ios::in);
    if(!infile)
    {
        cerr<<"open f2.dat error"<<endl;
        exit(1);
    }
    while(infile.get(ch))
    {
        cout<<ch;
    }
}
//*****************打印学生信息********************
void printList(Link L)
{
    cout<<"*********************学号,姓名,年龄,班级,电话号码**************************";
    int n=1;
    Link p=L;
    int count(Link L);
    int temp;
    temp=count(L);//学生个数:
    if(temp==0)
        cout<<"对不起,查无此人";//判断学生管理系统中有无信息
    else
        while(p->next!=NULL)
        {
            cout<<"学号:"<<p->next->stuNumber<<"姓名:"<<p->next->name<<"年龄:"<<p->next->age<<"班级:"<<p->next->chass<<"电话号码:"<<p->next->telenum<<endl;
            p=p->next;
            n++;
        }
    cout<<"***********************************************************************************";
    return;
}
//********************************插入学生信息**************************************
void inserStu(Link L,Link Elem)
{
    Link prior(Link L,Link p);
    Link p=L->next;//*******%%%%****
    while(p!=NULL&&Elem->stuNumber>=p->stuNumber)
    {
        if(p->stuNumber==Elem->stuNumber)
        {
            cout<<"重复输入学号,输入失败!";
            return ;
        }
        p=p->next;
    }//确定Elem的插入位置
    if(p==NULL)
    {
        p=prior(L,p);
        Elem->next=NULL;
        p->next=Elem;//若为空表,插入到头结点之后
    }
    else
    {
        p=prior(L,p);
        Elem->next=p->next;
        p->next=Elem;
    }

}
//***********找到当前地址元素的前一元素的地址***********************
Link prior(Link L,Link p)
{
    if(L->next==NULL)return(L);
    Link p_prior=L;
    while(p_prior->next!=p)
    {
        p_prior= p_prior->next ;
    }
    return (p_prior);
}
//*************************按姓名查询是否存在该学生******************
int searchName(Link L,char n[])
{
    int flag=0;//标志要查找的学生和学生记录中的姓名是否匹配
    Link p=L->next;
    int seat=1;
    if(L->next==NULL||L==NULL)printf("没有学生信息\n");
    else
    {
        while(p!=NULL)
        {
            if(!strcmp(p->name,n))//比较要查找的姓名是否和当前学生信息所指的姓名匹配
            {
                flag=1;//输入姓名匹配
                printf("要查找的是第%d位学生\n",seat);
			    printf("学号是:%d   名字:%s  年龄:%d 班级:%s  手机号:%s\n",p->stuNumber,p->name,p->age,p->chass,p->telenum);
            }
            p=p->next ;
            seat++;
        }
    }
    return flag;
}
//*********************按学号查找是否存在该学生*********************************

int searchNum(Link L,int n)
{
    int flag=0;//标志要查找的学生和管理信息系统中的学号是否匹配
    Link p=L->next;
    int seat=1;
    if(L->next==NULL)printf("没有学生信息\n");
    else
    {
        while(p!=NULL)
        {
            if(p->stuNumber<=n)

            {
                if(p->stuNumber==n)//比较要查找的学号是否和当前学生信息所指的学号匹配
                {
                    flag=1;//输入学号匹配
                    printf("要查找的是第%d位学生\n",seat);
			    printf("学号是:%d   名字:%s  年龄:%d 班级:%s  手机号:%s\n",p->stuNumber,p->name,p->age,p->chass,p->telenum);
                  //  cout<<"要查找的是第"<<seat<<"位学生";
                   // cout<<"学号:"<<p->next->stuNumber<<"姓名:"<<p->next->name<<"年龄:"<<p->next->age<<"班级:"<<p->next->chass<<"电话号码:"<<p->next->telenum<<endl;
                }
            }
            p=p->next ;
            seat++;
        }
    }
    return flag;
}
//**************************删除学生信息************************
void deleteElem(Link L,int i)
{
    Link p=L;
    int j=0;
    while(p->next&&j<i-1)
    {
        p= p->next;
        j++;
    }
    if(!(p->next))//判断i时候合法,i不能大于元素的个数,也不能小于等于0
    {
        cout<<"第"<<i<<"个同学删除失败";
        return;
    }
    Link q=p->next;
    p->next=q->next;
    free(q);
}
//*******************按姓名删除学生信息****************************************************
int deleName(Link L, char n[])
{
    void deteStu(Link);
    int flag=0;//判断要删除的学生与系统中的姓名是否匹配
    Link p=L->next;
    int seat =1;
    if(L->next==NULL)
    {
        cout<<"删除提示:系统中没有元素,删除失败!";
        deteStu( L);
    }
    else
    {
        while(p!=NULL)
        {
            if(!strcmp(p->name ,n))//比较名字是否匹配
            {
                flag=1;
                printf("%s",p->name );
                p=p->next;
                deleteElem(L,seat);//删除第i个学生的信息
            }
            else
            {
                p=p->next ;
                seat++;
            }
            if(flag)
                cout<<"已经被删除!!!"<<endl;
        }
    }
    return flag;
}
//*****************按学号删除学生信息****************************
int deleNum(Link L,int n)
{
    void deteStu(Link);
    int flag=0;
    Link p=L->next ;
    int seat=1;
    if(L->next==NULL)
    {
        cout<<"删除提示:系统中没有元素,删除失败!";
        deteStu( L);
    }
    else
    {
        while(p!=NULL)
        {

            if(p->stuNumber==n)
            {
                flag=1;
                printf("%d",p->stuNumber);
                p=p->next;
                deleteElem(L,seat);
                break;
            }
            p=p->next ;
            seat++;
        }
        if(flag)
        {
            cout<<"被删除了<<endl";
        }
        else
        {
            cout<<"没有找到学生信息!!!!"<<endl;
        }
    }
    return flag;
}
//*************************************************************************************
void searchWay1(Link L)
{
    void searchMenu(Link L);
    int searchWay=0;//控制跳出循环,再次选择查询方式
    if(searchWay==0)
    {
        cout<<"请输入要查询的学生的学号:";
        int n,s;
        scanf("%d",&n);
        s=searchNum(L, n);
        if(s==0)
            cout<<"查找失败......"<<endl;
        searchWay=1;
    }
    if(searchWay==1)
    {
        searchMenu( L);
    }
}
//********************************************************************************
void searchWay2(Link L)
{
    void searchMenu(Link L);
    int searchWay=0;//控制跳出循环,再次选择查询方式
    if(searchWay==0)
    {
        char n[20];
        int flag;
        cout<<"请输入要查询的学生姓名:";
        char temp2=getchar();
        gets(n);
        flag= searchName(L,n);
        if(flag==0)
            cout<<"查找失败!!!"<<endl;
        searchWay=1;
    }
    if(searchWay==1)
    {
        searchMenu( L);
    }
}
//*****************************************************************8
void searchMenu(Link L)
{
    int mainMenu();
    cout<<"------------------查询菜单------------------"<<endl;
    cout<<endl;
    cout<<" -------------1 输入学生学号查询------------"<<endl;
    cout<<endl;
    cout<<" -------------2 输入学生姓名查询------------"<<endl;
    cout<<endl;
    cout<<" -------------3 返回上级菜单----------------"<<endl;
    cout<<endl;
    cout<<("请选择1-3: ");
    int menu;
    cin>>menu;
    switch(menu)
    {
    case 1:
    {
        searchWay1(L);
        break;
    }
    case 2:
    {
        searchWay2(L);
        break;
    }
    case 3:
    {
        break;//跳回主菜单程序
    }
    }
}
//************************************修改学生信息模块*****************************************
void alterStu(Link L)//按学号更新学生信息
{
    int n;
    cout<<"请输入要修改的学生学号:";
    cin>>n;
    Link p=L->next;
    if(p==NULL)
    {
        cout<<"学生管理系统没有学生信息!";
    }
    while(p!=NULL)//循环查找学生信息,如果找到该学号则进入循环体更改学生信息
    {
        if(p->stuNumber==n)
        {
            int num=1, stuNumber,age;
            char telenum[50];
            char name[20];
            char chass[50];
            cout<<"请输入学号:   ";
            cin>>stuNumber;
            cout<<"请输入姓名:  ";
            getchar();
            gets(name);
            cout<<"请输入年龄:   ";
            cin>>age;
            cout<<"请输入班级:   ";
            getchar();
            gets(chass);
            cout<<"请输入电话号码:   ";
            getchar();
            gets(telenum);
            p->age=age;
            p->stuNumber=stuNumber;
            strcpy(p->telenum,telenum);
            strcpy(p->name,name);
            strcpy(p->chass,chass);
            //更新结点
//学生信息更改完成
        }
        p=p->next;
    }
}
//****************返回有多少个有效的学生信息***************
int count(Link L)//统计学生信息的数量
{
    int n=0;
    Link p=L->next;
    if(p==NULL)
    {
        cout<<"学生信息不存在"<<endl;
    }
    while(p!=NULL)
    {
        p=p->next;
        n++;
    }
    cout<<"共有"<<n<<"个学生的信息"<<endl;
    return n;
}
//********************添加学生信息**********************************
void AddStu(Link L)
{
    int temp;
    temp=count(L);
    printf("学生数为%d:\n",temp);
    if(temp==0)
    {
        createLink(L);   //如果没有学生信息则调用初始化函数
    }
    createLink(L);
}
//****************删除学生菜单****************************************************
void deteStu(Link L)
{
    int flag=0,way,n;
    cout<<"------------------查询菜单------------------"<<endl;
    cout<<endl;
    cout<<" ----------1 通过学号删除学生信息-----------"<<endl;
    cout<<endl;
    cout<<" ----------2 通过姓名删除学生信息-----------"<<endl;
    cout<<endl;
    cout<<" ----------3 返回上级菜单-------------------"<<endl;
    cout<<endl;
    cout<<("请选择1-3: ");
    cin>>way;
    if(way<1||way>3)
    {
        deteStu(L);
    }
    switch (way)
    {
    case 1:
    {
        cout<<"请输入要删除的学生学号:";
        cin>>n;
        flag= deleNum(L,n);
        break;
    }
    case 2:
    {
        char n[20];
        cout<<"请输入要删除的学生姓名:";
        char temp1=getchar();
        gets(n);
        flag=deleName(L,n);
        break;
    }
    case 3:
    {
        break;
    }
    }
    if(flag)
    {
        cout<<"删除成功!"<<endl;
        deteStu(L);
    }
}
void welcome()
{
    system("color C");
    cout<<"                                                          "<<endl;
    cout<<"     .▇▇▇▇.    .▇▇▇▇.    .▇▇▇▇.    .▇▇▇▇.   "<<endl;
    cout<<"   .◢▇▇▇▇◣ .◢▇▇▇▇◣ .◢▇▇▇▇◣ .◢▇▇▇▇◣ "<<endl;
    cout<<"   .▇   欢   ▇. ▇   迎   ▇. ▇   光   ▇. ▇   临   ▇. "<<endl;
    cout<<"   .◥▇▇▇▇◤ .◥▇▇▇▇◤. ◥▇▇▇▇◤. ◥▇▇▇▇◤."<<endl;
    cout<<"     .▇▇▇▇ .    ▇▇▇▇ .   .▇▇▇▇ .   .▇▇▇▇.   "<<endl;
    cout<<"        | | |         | | |         | | |         | | |     "<<endl;
}
int  mainMenu()
{
    cout<<"       *******欢迎使用学生管理信息系统***************"<<endl;
    cout<<"                 1 输入学生信息                      "<<endl;
    cout<<"                 2 显示学生信息                      "<<endl;
    cout<<"                 3 查询学生信息                      "<<endl;
    cout<<"                 4 修改学生信息                      "<<endl;
    cout<<"                 5 插入学生信息                      "<<endl;
    cout<<"                 6 删除学生信息                      "<<endl;
    cout<<"                 7 保存学生信息                      "<<endl;
    cout<<"                 8 从文件导入学生信息                "<<endl;
     cout<<"                 9 统计学生信息的数量                "<<endl;
    cout<<"                 0 退出管理信息系统                  "<<endl;
    int menu=0;
    cout<<"请选择0-9:";
    cin>>menu;
    if(menu<0&&menu>9)
    {
        cout<<"输入无效,请正确输入有效序号0-8:";
        cin>>menu;
    }
    return menu;
}

main函数:

#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#include <fstream>
#include "123.h"
#define LEN sizeof(LNode)
using namespace std;
int  main()
{
    string name,pass[3];
  welcome();
  cout<<"请输入管理员名字";
  cin>>name;
  cout<<endl;
  cout<<"请输入管理员密码";
  int i,m,n,status=1;
  for(i=0;i<3;i++)
    {
       cin>>pass[i];
       cout<<endl;
       if(pass[i]=="admin")
       {
          cout<<"正在登陆请稍后"<<endl;
          for(m=0;m<10;m++)
		  {
				for(n=0;n<100000000;n++)
				{n++;};
				cout<<"●";
		  }break;
       }
       if(i==0||i==1)
       {cout<<"密码错误请重新输入";
       }
       if(i==2)
       exit(0);
    }
    system("cls");

    Link L=(Link)malloc(LEN);//在主函数上首先让结构体指针初始化;
		L->next=NULL;
	int flag=0;//学生信息是否建立
	int menu=0;//菜单选项
	while(1)
	{
         menu=mainMenu();
         switch(menu)//用于调用子菜单
		 {
		   case 1:{L=createLink(L);break;}
		   case 2:{printList(L); break;}
		   case 3:{searchMenu(L); break;}
		   case 4:{alterStu(L) ;break;}
		   case 5:{createLink(L);break;}
		   case 6:{deteStu( L);  break;}
		   case 7:{keepStu( L); break;}
		   case 8:{L=stuEntry();break;}
		   case 9:{count(L);break;}
		   case 0:{return 0;}
		 }
	 }
 }

运行结果:




一、本课题的目的和意义 目前我国的信息数字化工作也进入一个全新发展时期,特别是高校的信息化建设已进入了全面的发展阶段,诸多高校充分地认识到,信息化建设己经成为了高校提高自身管理水平、提升综合竞争实力的重要手段。学校作为一个教育单位,学生实习信息管理是学校日常管理不可缺少的部分,这就需要有一个能够提供这类服务的工具,因此学生实习信息管理系统的开发就成为了必然。现在我国的大部分学校的实习信息管理水平还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。同时,因特网的出现和发展,使信息交流进入到一个崭新的历史时期,它打破了时空的障碍,使生活在不同国度的人们可共享网络信息资源,进而极大地促进全球经济的发展。 随着学生人数的增加,对于学生的实习信息管理也越来越复杂,要求也越来越高,因此需要一个全面、详细的学生实习信息管理系统,以便完成对学生实习信息的管理。 学生实习信息管理系统,可以用集中的数据库将与人力资源管理相关的信息全面、有机地联系起来,有效地减少了信息更新和查找中的重复劳动,保证了信息的相容性,从而大大地提高了工作效率,还能使原来不可能提供的分析报告成了可能。在采用和实施学生实习信息管理系统之后,就会将依赖于人的过程改为依赖于计算机系统的过程。学校管理人员和学生本人只要获取了相应的权限,就可以随时进入系统,直接查阅相应的信息。 采用和实施学生实习信息管理系统不仅仅是为了提高工作效率。同时在使用实习信息管理系统后,学校相关领导可以较为全面、准确的了解到同学们的综合信息,然后方便更具各种信息对学校的管理做出各种决策。 二、课题的国内外开发动态 人类已进入21世纪,科学技术突飞猛进,经济知识和信息产业初见端倪,特别是信息技术和网络技术的迅速发展和广泛应用,对社会的政治、经济、军事、文化等领域产生越来越深刻的影响,也正在改变人们的工作、生活学习、交流方式。信息的获取、处理、交流和应用能力,已经成为人们最重要的能力之一。在不久的将来知识经济将占世界经济发展的主导地位,国家综合国力和国际竞争能力越来越取决于教育发展,科学技术和知识创新的水平,教育在经济和社会的发展过程中将呈现出越来越突出的重要作用。学生实习信息管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生实习信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。 三、课题的基本内容 学生实习信息管理系统作为一款教学管理工作的系统,它将复杂的工作便捷化、高效化。本系统按功能分为以下几个模块: (1)管理员模块:管理员负责具体信息系统日常管理和维护,具有信息系统的最高管理权限。 (2)老师模块:老师可以查询本人以及学生的信息。 (3)毕业实习模块:毕业生是本科学校大四的学生,应学校要求选择相关实习单位。 四、拟解决的主要问题 本系统开发的技术难点主要有两个方面:一是业务逻辑的理解;二是数据库逻辑结构的设计。只要在准确理解一个系统的业务逻辑之后才可能开发出适应其应用的应用系统来,并且在系统之间模块的科学划分与结构组织都是在正确理解实际应用中的业务逻辑需求的前提下完成的。 此外、利用SQL 2005建立好关系数据库和建好客户端和服务器之间的连接又是另一个难点。建立良好的数据库要从科学性、安全性、规范性、结构性等各个方面进行考虑。客户端和服务器之间的连接要配置好数据库服务器等。 五、课题设计的实现方案 (1)本系统开发语言的选择 本系统使用的开发语言是c#语言,C#语言是一种优秀的面向对像程序设计语言,它在C语言的基础上发展而来,但它比C语言更容易为人们学习和掌握。C#以其独特的语言机制在计算机科学的各个领域中得到了广泛的应用。面向对象的设计思想是在原来结构化程序设计方法基础上的一个质的飞跃,C#完美地体现了面向对象的各种特性。正是因为c#语言有如此多的优点,因此在开发本系统时我把它作为本系统的开发语言。 (2)本系统开发工具的选择 本系统前台使用的开发工具是Microsoft Visual C#。Microsoft Visual C#是Microsoft公司推出的开发Win32环境程序,面向对象的可视化集成编程系统。它不但具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE2,WinSock网络、3D控制界面。它以拥有“语法高亮”,IntelliSense(自动编译功能)以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及建置系统以预编译头文件、最小重建功能及累加连结著称。这些特征明显缩短程式编辑、编译及连结的时间花费,在大型软件计划上尤其显著。正是因为Microsoft Visual C#有如此多的有点,因此在开发本系统时我把它作为本系统前台的开发工具。 本系统创建、管理数据库使用的工具是SQL Server 2005。SQL Server 2005 是Microsoft公司推出的SQL Server 数据库管理系统的一个版本。该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能,具有使用方便,可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2005 的大型多处理器的服务器等多种平台使用。 六、研究方法 该毕业设计采用的研究方法主要有文献法和调查法。该毕业设计具体功能的获取过程主要使用文献法和走访调查法,通过网络调查和查阅网络资料来具体确定该软件的功能需求细节;在软件开发过程中,解决技术问题使用的方法是文献法,通过查阅课本、图书馆资料和网络在线文献等,解决在软件开发过程中的技术问题,比如数据库、建模工具的使用、软件测试等。 七、选题的特色及创新点 选题的特色:本毕业设计的开题经过走访调查和文献查阅等多种方式,基本可以与现实的需求相一致,并能体现用所学的知识和计算机技术解决实际问题。 选题的创新点:该选题采用的均是计算机成熟的技术,在计算机技术方面并没有体现创新点,但是通过完成该毕业设计,可以使得自己对计算机软件开发由更深的认识,积极培养自己的创新意识。 八、已查阅的相关文献
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值