高校水电费管理系统 C语言课程设计_c语言课程设计管理系统登录

目录

摘 要1

第1章 绪论2

1.1 课程设计的目的与要求2

1.2 课程设计的背景和意义2

1.2.1课程设计的背景2

1.2.2 课程设计的意义2

1.3 课程设计环境3

第2章 需求分析3

2.1 问题描述3

2.2 功能要求3

2.3 问题的解决方案4

第3章 系统设计4

3.1 数据设计4

3.1.1 类设计4

3.1.2 类之间的关系6

3.1.3 函数设计7

3.2 结构设计7

3.2.1 系统流程图7

3.2.2 界面设计7

第4章 系统实现10

4.1 类实现10

4.2 函数实现16

第5章 系统测试26

5.1 模块测试26

5.2 课程设计过程中遇到的问题31

总 结32

致谢33

参考文献34

摘 要

人类进入21世纪以来,随着网络技术的发展和科学技术的进步,人们的工作与生活越来越依赖于计算机,利用计算机对学校的水电费进行系统的管理。运用先进的软件开发平台,对水电费管理信息进行规范化和网络化管理,这对于学校管理部分来说是一个迫切的需求。本课程设计主要介绍利用计算机开发软件平台实现学校水电费管理方面的应用。 该课程设计主要阐述高校水电费管理系统的设计与实现,并且结合本校实际情况给出了本系统的结构和模块, 采用C++开发语言,具有一系列系统功能的学校水电费管理系统。本系统的功能实现通过教师和学生两种角色完成。总体实现水电费管理操作,以及用户管理,水电费查询,数据管理等功能。

关键词:高校水电费管理系统、水电费

第1章 绪论

1.1 课程设计的目的

(1)要求学生能够熟练掌握C++语言基本知识的技能。

(2)基本掌握面向对象程序设计的基本思路和方法。

(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。

1.2 课程设计的背景和意义

1.2.1 课程设计的背景

1.理论研究基础

(1)C++再C的基础上增加了面向对象的机制。

(2)充分利用面向对象机制中的继承性与多态性实现函数的设计。

2.技术层面的支持

运用系统为C++面向对象程序设计提供的各种设计方法。

1.2.2 课程设计的意义

通过设计此系统,熟练掌握C++语言的基本知识和技能,基本掌握面向对象车程序开发的基本思路和方法,培养学生的动手操作能力,提高自主学艺能力,能够利用所学的基本知识和技能,进行简单的应用程序设计。

1.3 课程设计环境

软件环境:

Visual C++6.0是微软公司开发的可视化C++集成开发环境,它将程序代码的编辑、编译、连接、调试等功能集为一体,向用户提供方便友好的界面,以便对其进行操作。

硬件环境:

计算机科学与信息工程学院A06-502,笔记本电脑。

  1. 需求分析
    1.问题描述
    住宿学生信息包括:学号、姓名、性别、年龄、班级、用电量、用水量等信息。 教工信息包括职工号、姓名、性别、年龄、工作部门、用电量、用水量等信息。 能计算出学生和教工每月所要交的电费和水费。定义一个人员类,实现学生和教工共同的信息和行为。
  2. 功能需求描述
  3. 添加功能:程序能够添加不同学生和教工的记录,提供选择界面供用户选择所要添加的类别,要求编号号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。

(2)查询功能:可根据姓名、用水量、用电量信息对已添加的学生或教工记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。

(3)显示功能:可显示当前系统中所有学生和教工的记录,条记录占据一行。

(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。

(5)删除功能:主要实现对已添加的学生或教工记录进行删除。如果当前系统中没有相应的记录,则提示“记录为空”并返回操作。

(6)统计功能:能根据多种参数进行统计。能统计学生和教工的用水用电量、所要交纳的电费和水费、未交纳水电费的人员信息等。

(7)保存功能:可将当前系统中各类记录存入文件中,存入方式任意。

(8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。

(9)计算电费和水费。学生每月都有一定额度的水电是免费使用的,超过的部分需要交费。

3.问题解决方案

根据系统功能要求,可以将问题解决分为以下步骤:

  1. 应用系统分析,建立该系统的功能模块框以及界面的组织和设计;
  2. 分析系统中的各个实体及它们之间的关系;
  3. 根据问题描述,设计系统的类层次;
  4. 完成类层次中各个类的描述;

(5)完成类中各个成员函数的定义;

(6)完成系统的应用模块;

(7)功能调试;

(8)完成系统总结报告。

  1. 系统设计

总体思路:

1、在主函数中通过分支选择实现不同的功能。

2、在菜单函数中,通过设计界面与用户进行交互。

3、定义一个使用者类,在类的内部定义各种函数,实现增加、显示、修改、删除、查询、保存、读取、统计用户信息等功能。

3.1 数据设计

3.1.1 类设计

  1. 公共继承父类Person
  2. 学生派生类Teacher
  3. 教师派生类Student
  4. 学生管理类Stu_Manage
  5. 教师管理类Tea_Manage

3.1.2 类之间的关系

学生类Student和教师类Teacher继承父类Person

学生类Student和教师类Teacher是父类Person的派生类

3.1.3 函数设计

  1. 构造函数Person()、构造函数Teacher、构造函数Student、构造函数Stu_Manage、构造函数Tea_Manage
  2. 输入函数Input()
  3. 输出函数Output()
  4. 用户信息添加函数 Add()
  5. 用户信息显示函数 Show()
  6. 用户信息查询函数Search()
  7. 用户信息编辑函数Edit()
  8. 用户信息删除函数Delete()
  9. 用户信息统计函数Total()
  10. 用户信息保存函数Save()
  11. 用户信息读取函数Read()
  12. 教师显示菜单函数TeaMenu()
  13. 学生显示菜单函数StuMenu()

3.2 结构设计

3.2.1 系统流程图

简单流程图

开始

教师or学生

教师管理 学生管理

选择功能

功能实现

退出

详细结构图

高校水电费管理系统

教师水电费管理学生水电费管理

 

添 查修删显保读统退

加 找改除示存取计出

3.2.2 界面设计

由简单的输入函数cin()输出函数cout()设计而成。

  1. 系统实现

4.1.1 类实现

(1)公共继承父类Person

class Person

{

public:

int num;

string name;

string sex;

int age;

double water;

double power;

public:

Person(int n=0,string nm=" ",string s=" ",int a=0,double w=0.0,double p=0.0)

{

num=n;

name=nm;

sex=s;

age=a;

water=w;

power=p;

} ;

(2)学生派生类Teacher

class Teacher:virtual public Person

{

public:

string depart;

double watermoney;

double powermoney;

int choice1;

int choice2;

public:

Teacher(int n=0,string nm=" ",string s="男",int a=0,string d="普通教师",double w=0.0,double p=0.0,double wm=0.0,double pm=0.0)

:Person(n,nm,s,a,w,p),depart(d)

{

watermoney=wm;

powermoney=pm;

};

(3)教师派生类Student

class Student:virtual public Person

{

public:

string bj;

double watermoney;

double powermoney;

int choice1;

int choice2;

public:

Student(int n=0,string nm=" ",string s="男",int a=0,string z=" ",double w=0.0,double p=0.0,double wm=0.0,double pm=0.0)

:Person(n,nm,s,a,w,p),bj(z)

{

watermoney=wm;

powermoney=pm;

};

(4)学生管理类Stu_Manage

class Stu_Manage

{

Student Stu[TMAX];

int top;

public:

Stu_Manage(){top=0;}

void Add();

void Show();

void Search();

void Edit();

void Delete();

void Total();

void Save();

void Read();

};

(5)教师管理类Tea_Manage

class Tea_Manage

{

Teacher Tea[TMAX];

int top;

public:

Tea_Manage(){top=0;}

void Add();

void Show();

void Search();

void Edit();

void Delete();

void Total();

void Save();

void Read();

};

4.1.2 函数实现

(1)构造函数Person()

Person(int n=0,string nm=" ",string s=" ",int a=0,double w=0.0,double p=0.0)

{

num=n;

name=nm;

sex=s;

age=a;

water=w;

power=p;

} ;

(2)构造函数Teacher

Teacher(int n=0,string nm=" ",string s="男",int a=0,string d="普通教师",double w=0.0,double p=0.0,double wm=0.0,double pm=0.0):Person(n,nm,s,a,w,p),depart(d)

{

watermoney=wm;

powermoney=pm;

};

(3)构造函数Student

Student(int n=0,string nm=" ",string s="男",int a=0,string z=" ",double w=0.0,double p=0.0,double wm=0.0,double pm=0.0)

:Person(n,nm,s,a,w,p),bj(z)

{

watermoney=wm;

powermoney=pm;

};

(4)构造函数Stu_Manage

Stu_Manage(){top=0;}//初始时记录的个数为0,所以设置top=0;

void Add();//实现该类记录的添加;

void Show();//实现该类所有记录的显示;

void Search();//实现该类记录的查询;

void Edit();//实现该类记录的修改;

void Delete();//实现该类记录的删除

void Total();//实现该类的统计

void Save();//将该类记录保存到文件

void Read();//可从文件中将记录读取到该类的数组中

构造函数Tea_Manage 都用于了初始化对象。

(5)输入函数Input()

void Input()

{

cout<<"请输入编号:"<<endl;

cin>>num;

cout<<"请输入姓名:"<<endl;

cin>>name;

cout<<"请选择性别:";

cout<<"(1.男 2.女)"<<endl;

cout<<"请输入你的选择"<<endl;

cin>>choice2;

switch(choice2)

{

case 1:sex="男";break;

case 2:sex="女";break;

default:cout<<"输入错误。"<<endl;break;

}

cout<<"请输入年龄:"<<endl;

cin>>age;

cout<<"请选择工作部门:"<<endl;

cout<<setw(10)<<"1.普通教师"<<setw(10)<<"2.教务处"<<setw(10)<<"3.财务处"<<setw(10)<<"4.创业办公室"<<endl;

cout<<"请输入你的选择"<<endl;

cin>>choice1;

switch(choice1)

{

case 1:depart="普通教师";break;

case 2:depart="教务处";break;

case 3:depart="财政处";break;

case 4:depart="创业办公室";break;

default:cout<<"输入错误。"<<endl;break;

}

cout<<"请输入本月的用水量"<<endl;

cin>>water;

cout<<"请输入本月的用电量"<<endl;

cin>>power;

watermoney=0.5*water;

powermoney=0.5*power;

}

(6)输出函数Output()

void Output()

{

cout<<" "<<num

<<" "<<name

<<" "<<sex

<<" "<<age

<<" "<<depart

<<" "<<water

<<setw(10)<<power

<<" "<<setw(10)<<watermoney

<<setw(10)<<powermoney

<<endl;

}

(7)用户信息添加函数 Add()

void Stu_Manage::Add()

{

if(top>=TMAX)

{

cout<<"用户已满"<<endl;

return;

}

Student s;

cout<<"输入新添加的人员的信息"<<endl;

s.Input();

for(int i=0;i<top;i++)

if(s.GetNum()==Stu[i].GetNum())

{

cout<<"该编号的人员已存在"<<endl;

return;

}

Stu[top]=s;

top=top+1;

cout<<"添加成功!"<<endl;

}

(8)用户信息显示函数 Show()

void Stu_Manage::Show()

{

if(top==0)

{

cout<<"无数据!"<<endl;

return;

}

cout<<" "<<"学号"

<<" "<<"姓名"

<<" "<<"性别"

<<" "<<"年龄"

<<" "<<"班级"

<<setw(10)<<"用水量"

<<setw(10)<<"用电量"

<<setw(10)<<"水费"

<<setw(10)<<"电费"

<<endl;

for(int i=0;i<top;i++)

Stu[i].Output();

}

(9)用户信息查询函数Search()

void Stu_Manage::Search()

{

if(top==0)

{

cout<<"当前系统中没有存储记录"<<endl;

return;

}

int choice;

cout<<"请选择查找方式:1.按姓名查询 2.按用水量查询 3.按用电量查询"<<endl;

cin>>choice;

switch(choice)

{

case 1:{

cout<<"请输入要查找的姓名"<<endl;

string name;

cin>>name;

cout<<" "<<"学号"

<<" "<<"姓名"

<<" "<<"性别"

<<" "<<"年龄"

<<" "<<"班级"

<<setw(10)<<"用水量"

<<setw(10)<<"用电量"

<<setw(10)<<"水费"

<<setw(10)<<"电费"

<<endl;

for(int i=0;i<top;i++)

{

if(Stu[i].GetName()==name)

{

Stu[i].Output();

}

}

return;

cout<<"查无此人!"<<endl;

}break;

case 2:{

cout<<"请输入要查找的水量:"<<endl;

double water;

cin>>water;

cout<<" "<<"学号"

<<" "<<"姓名"

<<" "<<"性别"

<<" "<<"年龄"

<<" "<<"班级"

<<setw(10)<<"用水量"

<<setw(10)<<"用电量"

<<setw(10)<<"水费"

<<setw(10)<<"电费"

<<endl;

for(int i=0;i<top;i++)

{

if(Stu[i].GetWater()==water)

{

Stu[i].Output();

}

}

return;

cout<<"查无此人!"<<endl;}

break;

case 3:{

cout<<"请输入要查找的电量:"<<endl;

double power;

cin>>power;

cout<<" "<<"学号"

<<" "<<"姓名"

<<" "<<"性别"

<<" "<<"年龄"

<<" "<<"班级"

<<setw(10)<<"用水量"

<<setw(10)<<"用电量"

<<setw(10)<<"水费"

<<setw(10)<<"电费"

<<endl;

for(int i=0;i<top;i++)

{

if(Stu[i].GetPower()==power)

{

Stu[i].Output();

}

}

return;

cout<<"查无此人!"<<endl;}

break;

default:cout<<"无此选项!请重试!"<<endl;break;

}

}

(10)用户信息编辑函数Edit()

void Stu_Manage::Edit()

{

if(top==0)

{

cout<<"当前系统中没有存储记录!"<<endl;

return;

}

int num;

cout<<"请输入要查找的教编号:"<<endl;

cin>>num;

for(int i=0;i<top;i++)

{

if(Stu[i].GetNum()==num)

{

cout<<"请对这位同学的信息进行修改:"<<endl;

Stu[i].Input();

cout<<"修改成功"<<endl;return;

}

}

cout<<"查无此人"<<endl;

 

}

(11)用户信息删除函数Delete()

void Stu_Manage::Delete()

{

if(top==0)

{

cout<<"当前系统中没有存储记录!"<<endl;

return;

}

cout<<"1.按编号查找删除 2.按姓名查找删除"<<endl;

int choice;

cin>>choice;

switch(choice)

{

case 1:

{

cout<<"请输入编号:";

int num;

cin>>num;

for(int i=0;i<top;i++)

{

if(num==Stu[i].num)

{

cout<<"是否确认删除? 1. 是 2.否"<<endl;

int choice;

cin>>choice;

switch(choice)

{

case 1:

{

for(int j=i;j<top-1;j++)

Stu[j]=Stu[j+1];

cout<<"删除成功!"<<endl;

top--;

};break;

case 2:return;

default:cout<<"无此项,失败!"<<endl;break;

}return;

}

}

cout<<"无此人!"<<endl;

}break;

case 2:

{

cout<<"请输入姓名:";

string name;

cin>>name;

for(int i=0;i<top;i++)

{

if(name==Stu[i].name)

{

cout<<"是否确认删除? 1.是 2.否 "<<endl;

int choice;

cin>>choice;

switch(choice)

{

case 1:

{

for(int j=i;j<top-1;j++)

Stu[j]=Stu[j+1];

cout<<"删除成功!"<<endl;

top--;

};break;

case 2:return;

default:cout<<"无此项,失败!"<<endl;break;

}return;

}

}

cout<<"无此人!"<<endl;

}; break;

default:cout<<"没有此项,失败:"<<endl;break;

}

}

(12)用户信息统计函数Total()

void Stu_Manage::Total()

{

cout<<" 1.学生所用水电量的总量 2.学生总的水电费 "<<endl;

int choice;

cout<<"请输入你的选择"<<endl;

cin>>choice;

switch(choice)

{

case 1:

{

double zwater=0.0,zpower=0.0;

for(int i=0;i<top;i++)

{

zwater+=Stu[i].water;

zpower+=Stu[i].power;

}

cout<<"学生的总用水量为"<<zwater<<endl;

cout<<"学生的总用电量为"<<zpower<<endl;

}break;

case2:

{

double zwatermoney=0.0,zpowermoney=0.0;

for(int i=0;i<top;i++)

{

zpowermoney+=Stu[i].powermoney;

zwatermoney+=Stu[i].watermoney;

}

cout<<"教师的总水费为"<<zwatermoney<<endl;

cout<<"教师的总电费为"<<zpowermoney<<endl;

}break;

default:cout<<"输入错误。请重新输入"<<endl;break;

}

}

(13)用户信息保存函数Save()

void Stu_Manage::Save()

{

ofstream out("学生.txt",ios::out);

if(!out)

{

cout<<"打开失败!"<<endl;

return;

}

cout<<"打开成功!"<<endl;

for(int i=0;i<top;i++)

{

out<<Stu[i].num<<" "

<<Stu[i].name<<" "

<<Stu[i].sex<<" "

<<Stu[i].age<<" "

<<Stu[i].bj<<" "

<<Stu[i].water<<" "

<<Stu[i].power<<" "

<<Stu[i].watermoney<<" "

<<Stu[i].powermoney<<" "

<<endl;

}

cout<<"写入成功!"<<endl;

out.close();

}

(14)用户信息读取函数Read()

void Stu_Manage::Read()

{

ifstream in("学生.txt",ios::in);

if(!in)

{

cout<<"打开失败!"<<endl;

return;

}

int i=0;

while(in>>Stu[i].num

>>Stu[i].name

>>Stu[i].sex

>>Stu[i].age

>>Stu[i].bj

>>Stu[i].water

>>Stu[i].power

>>Stu[i].watermoney

>>Stu[i].powermoney)

{

i++;

top++;

}

cout<<"打开成功!"<<endl;

in.close();

}

(15)教师显示菜单函数TeaMenu()

void TeaMenu()

{

Tea_Manage t;

int choice;

while(choice!=0)

{

cout<<"\n*******************************************************************************\n"<<endl;

cout<<"\n 教师水电费管理"<<endl;

cout<<"\n"<<endl;

cout<<"1.添加 2.查找 3.修改 4.删除 5.显示 6.保存 7.读取 8.统计 0.退出 "<<endl;

cout<<"\n"<<endl;

cout<<"\n输入您的操作的选项:";

cin>>choice;

switch(choice)

{

case 1:t.Add();break;

case 2:t.Search();break;

case 3:t.Edit();break;

case 4:t.Delete();break;

case 5:t.Show();break;

case 6:t.Save();break;

case 7:t.Read();break;

case 8:t.Total();break;

case 0:cout<<"退出成功!"<<endl;break;

default:cout<<"无此选项!请重试!"<<endl;break;

}

}

}

(16)学生显示菜单函数StuMenu()

void StuMenu()

{

Stu_Manage s;

int choice;

while(choice!=0)

{

cout<<"\n*******************************************************************************\n"<<endl;

cout<<"\n 学生水电费管理"<<endl;

cout<<"\n"<<endl;

cout<<" 1.添加 2.查找 3.修改 4.删除 5.显示 6.保存 7.读取 8.统计 0.退出"<<endl;

cout<<"\n"<<endl;

cout<<"\n输入您操作的选项:";

cin>>choice;

switch(choice)

{

case 1:s.Add();break;

case 2:s.Search();break;

case 3:s.Edit();break;

case 4:s.Delete();break;

case 5:s.Show();break;

case 6:s.Save();break;

case 7:s.Read();break;

case 8:s.Total();break;

case 0:cout<<"退出成功!"<<endl;break;

default:cout<<"无此选项!请重试!"<<endl;break;

}

}

}

  1. 系统测试

开始界面

  1. 用户信息的录入

用户信息的显示

  1. 用户信息的查找

6.用户信息的修改

  1. 用户信息的删除

总 结

经过我们努力的设计和开发,系统基本开发完毕。在本次课程设计中困难遇到不少。由于设计时间较短,所以该系统还有许多不尽如人意的地方,如出错处理不够完善等多方面问题。在这次系统开发的过程中,我深深体会到了做一个系统,首先进行需求分析的重要性,了解了一个系统的制作,从功能分析到功能模块分析、与其他系统的关系,这些都有待以后进一步改进。经过这次的课程设计,在设计中不断完善中,我们知道要做好一件事首先要理清思路,弄懂到底要解决什么问题及相应的步骤,采取的方法和开发工具,以及对一些可能的程序异常或是常见问题的容错检测和修正方案等。对于软件系统的开发,跟应该按照软件工程的相关方法流程等规定进行。写代码并不是最首要的。应根据问题的特色详细的进行需求分析,确定概念模型,然后确定逻辑模型,选定开发工具和开发方案,同时注意文档的修订等。做到每一步思路清晰,有章可依等。

本次课程设计过程,使我们对C++课程设计有了更深刻的认识。大大提高了模型规划、系统设计和软件编程的能力,自身的各方面的素质也得到了提高。同时也培养了我们的团队协作精神。这次课程设计不仅充实了我们的计算机专业知识,扩大了知识面,增强分析问题和解决问题的能力,也提高自学的能力与软件开发能力。

致谢

首先我要谢谢我的伙伴,没有他们的协助,我们不可能完成这样的一个课程设计,希望往后的日子里,我们的学习能够更上一楼层。其次,我要谢谢我的老师,一学期的教学真是辛苦您了,希望您以后工作顺利,万事如意。

参考文献

[1]耿祥义,张跃平. JSP实用教程. 北京:清华大学出版社,2003

[2]王珊,萨师煊. 数据库系统概论. 北京:高等教育出版社,2006

[3]李春葆. C++语言——习题与解析. 北京:清华大学出版社,2001

[4]张岳新. Visual C++程序设计基础. 苏州:苏州大学出版社,2000

[5]陈清华, 朱红. Visual C++程序设计案例精选与编程指导. 南京:东南大学出版社,2003

[6]祁云嵩. Visual C++程序设计.南京:东南大学出版社,2003

[7]周霭如, 林伟健. C++程序设计基础. 北京:电子工业出版社,2003

[8]谭浩强. C程序设计. 北京:清华大学出版社,2005

[9]谭浩强. C++面向对象程序设计. 北京:清华大学出版社,2006

[10]Decoder. C/C++程序设计. 北京:中国铁道出版社,2002

指导教师评语及设计成绩评 语
课程设计成绩: 指导教师: 日期: 年 月 日
  • 10
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大学生参加学科竞赛有着诸多好处,不仅有助于个人综合素质的提升,还能为未来职业发展奠定良好基础。以下是一些分析: 首先,学科竞赛是提高专业知识和技能水平的有效途径。通过参与竞赛,学生不仅能够深入学习相关专业知识,还能够接触到最新的科研成果和技术发展趋势。这有助于拓展学生的学科视野,使其对专业领域有更深刻的理解。在竞赛过程中,学生通常需要解决实际问题,这锻炼了他们独立思考和解决问题的能力。 其次,学科竞赛培养了学生的团队合作精神。许多竞赛项目需要团队协作来完成,这促使学生学会有效地与他人合作、协调分工。在团队合作中,学生们能够学到如何有效沟通、共同制定目标和分工合作,这对于日后进入职场具有重要意义。 此外,学科竞赛是提高学生综合能力的一种途径。竞赛项目通常会涉及到理论知识、实际操作和创新思维等多个方面,要求参赛者具备全面的素质。在竞赛过程中,学生不仅需要展现自己的专业知识,还需要具备创新意识和解决问题的能力。这种全面的综合能力培养对于未来从事各类职业都具有积极作用。 此外,学科竞赛可以为学生提供展示自我、树立信心的机会。通过比赛的舞台,学生有机会展现自己在专业领域的优势,得到他人的认可和赞誉。这对于培养学生的自信心和自我价值感非常重要,有助于他们更加积极主动地投入学习和未来的职业生涯。 最后,学科竞赛对于个人职业发展具有积极的助推作用。在竞赛中脱颖而出的学生通常能够引起企业、研究机构等用人单位的关注。获得竞赛奖项不仅可以作为个人履历的亮点,还可以为进入理想的工作岗位提供有力的支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值