Oracle数据库课程设计报告学生成绩管理系统.doc
《Oracle数据库课程设计报告学生成绩管理系统.doc》由会员分享,可在线阅读,更多相关《Oracle数据库课程设计报告学生成绩管理系统.doc(36页珍藏版)》请在咨信网上搜索。
Oracle数据库课程设计报告学生成绩管理系统 ———————————————————————————————— 作者: ———————————————————————————————— 日期: 36 个人收集整理 勿做商业用途 Oracle数据库课程设计 题目 学生考试管理系统 班级 11网工2班 姓名 马路瑶 学号 指导老师 杨超峰 目录 一、 前言…………………………………………………2 二、 需求分析……………………………………………3 三、 系统设计……………………………………………5 四、 数据库设计…………………………………………7 五、 编程步骤……………………………………………19 六、 测试…………………………………………………25 七、 课程设计总结………………………………………33 八、 参考资料……………………………………………34 九、 附录…………………………………………………34 一、前言 学生考试管理是一个学校必不可少的部分,随着计算机和计算机知识的普及,学生考试管理系统得到了更大的发展空间,通过对学生考试管理系统的开发,可以提高校务人员的工作效率。 学生成绩管理是一个学校不可缺少的部分,一个良好的学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段。学生考试管理系统对学校加强学生考试管理有着极其重要的作用。由于各个大学都在持续扩招,学生的数量日益庞大,对于如何管理如此庞大的学生考试数据显得更为复杂,传统的手工成绩管理不仅工作量大,而且容易出现问题,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。已不能适应时代的发展。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,具有手工管理所无法比拟的优点。例:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高管理者管理的效率,也是学校走向科学化、正规化管理,与世界接轨的重要条件. 因此,开发设计这样一套学生成考试理软件成为很有必要的事情. 二、需求分析 1。功能需求 1. 学生基本信息及所选科目成绩的录入或导入。 2. 基本信息的查询(分系、班级;分科目)与修改。 3. 对每系或每班各科成绩进行分析(即求单科平均成绩、及格率和优秀率); 4. 对所开课程的成绩分析(求其平均成绩,最高分和最低分); 5. 对学生考试成绩进行排名(单科按系别或班级进行排名,对每一个班级,同一学期学生总体成绩进行排名,并显示各科成绩信息) 6. 不及格情况的统计、导出、打印 2。系统需求 该学生成绩管理系统采用java语言开发研制, JavaBean作为行为模型,servlet作为响应服务器,DIV+CSS+javascript设计网页,oracle作为数据存储。在完成用户需求同时,完成条件查询等功能。 针对学生成绩及其数据特点,可以全面实现对学生成绩的插入、查询、修改、删除和输出等功能的计算机管理。它能使学生成绩数据的工作人员从繁重的工作中解脱出来,大大减轻了工作量,减少人为的工作失误,全面提高学生成绩管理的效率,从而使学校对于学生成绩的管理水平和技术水平跃上一个新的台阶。 3。系统开发环境 1.开发语言:java+jsp 2。开发工具: IE 8.0,Tomcat ,jdk 1.7,dreamweaver 3。数据库:Oracle 10g 4.文档编写工具:word 5. 服务器端运行环境:oracle 10g,Tomcat ,jdk 1.7 6. 客户端运行环境:浏览器 三、系统设计 1。功能模块 学生考试管理系统 信息录入 信息查询 信息修改 信息删除 成绩统计分析 班级信息录入 科目信息录入 学生信息录入 班级内部排名 按学号查询 按姓名查询 学生信息修改 成绩信息修改 学生信息删除 成绩信息删除 单科成绩排名 单科成绩分析 成绩信息录入 不及格情况统计 学生总成绩排名 2.系统流程图 开始 登陆 密码正确? 是 否 进入系统 修改密码 控制面板 退出系统? 结束 是 否 3。数据字典 (1)数据存储 数据表:用户表 表组成:用户名,密码 数 据 项:用户名 数据类型:varchar 数据长度:50 数 据 项:密码 数据类型:varchar 数据长度:50 (2) 数据流定义: 登陆 名 称: 登陆 简 述: 用户登陆系统 数据来源: 用户 数据去向:用户表 数据组成:用户名+密码 四、数据库设计 1.数据库结构设计 院系表(cs) 字段名 数据类型 是否为空 说明 Cs_class Varchar2(50) Not null 班级名(主键) Cs_dept Varchar2(50) Not null 系别 Cs_grade Varchar2(50) Not null 年级 成绩表(gd) 字段名 数据类型 是否为空 说明 Gd_stu_no Varchar2(15) Not null 学号(联合主键、外键) Gd_sub_subject Varchar2(50) Not null 科目(联合主键、外键) Gd_grade Number(3) Not null 成绩 科目表(sub) 字段名 数据类型 是否为空 说明 Sub_subject Varchar2(50) Not null 科目名(主键) Sub_teacher_name Varchar2(10) 任课老师名 学生表(student) 字段名 数据类型 是否为空 说明 Stu_no Varchar2(15) Not null 学号(主键) Stu_name Varchar2(10) Not null 学生名 Stu_cs_class Varchar2(50) 班级名(外键) Stu_sex Varchar(4) Not null 性别(约束) Stu_birthday Varchar2(50) 出生日期 Stu_phone Varchar2(200) 联系电话 用户表(user_) 字段名 数据类型 是否为空 说明 name Varchar2(50) Not null 用户名(主键) Passwd Varchar2(50) notnull 密码 2.实体联系图 学生信息 姓名 出生日期 性别 学号 联系电话 所在班级 成绩信息 科目名 学号 成绩 教师用户 管理 用户名 密码 班级信息 班级名 年级 科目信息 科目名 任课老师 系别 管理 管理 管理 3.数据库源代码 select userenv(’language') from dual; shutdown immediate startup mount ALTER SYSTEM ENABLE RESTRICTED SESSION; ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; ALTER SYSTEM SET AQ_TM_PROCESSES=0; ALTER DATABASE OPEN; alter database character set INTERNAL_USE UTF8; shutdown immediate startup create user xz105151640043 identified by xz / grant dba to xz / conn xz105151640043/xz / set serveroutput on / create table user_(name varchar(50) primary key,passwd varchar(50) not null) / insert into user_ values(’xz',’xz’); / Commit / create table cs( cs_class varchar(50) primary key, cs_dept varchar(50) not null, cs_grade varchar(50) not null ) / create table student( stu_no varchar(15) primary key, stu_name varchar(10) not null, stu_sex varchar(4) not null check (stu_sex=’男'or stu_sex=’女'), stu_birthday varchar(50) , stu_phone varchar(50), stu_cs_class varchar(50), constraint class_fk foreign key(stu_cs_class) references cs(cs_class) on delete cascade ) / create table sub( sub_subject varchar(50) primary key, sub_teacher_name varchar(10) ) / create table gd( gd_stu_no varchar(15), gd_sub_subject varchar(50), gd_grade number(3) not null, primary key(gd_stu_no,gd_sub_subject), constraint fk_gd_stu_no foreign key(gd_stu_no) references student(stu_no), constraint fk_gd_sub_subject foreign key(gd_sub_subject) references sub(sub_subject) ) / create or replace procedure p_insert_stu( p_stu_no in student.stu_no%type, p_stu_name in student.stu_name%type, p_stu_sex in student。stu_sex%type, p_stu_birthday in student。stu_birthday%type, p_stu_phone in student.stu_phone%type, p_stu_cs_class in student。stu_cs_class%type, s_state_values out number ) as begin insert into student (stu_no,stu_name,stu_sex ,stu_birthday,stu_phone,stu_cs_class) values (p_stu_no,p_stu_name,p_stu_sex,p_stu_birthday,p_stu_phone,p_stu_cs_class); if sql%rowcount=1 then s_state_values:=0; end if; exception when others then s_state_values:=1; commit; end ; / create or replace procedure c_insert_stu( c_stu_no in student。stu_no%type, c_state_values out number) as begin select count(*) into c_state_values from student where stu_no=c_stu_no; end ; / create or replace procedure c_insert_stu_fk( c_cs_class in cs.cs_class%type, c_state_values_fk out number) as begin select count(*) into c_state_values_fk from cs where cs_class=c_cs_class; end ; / create or replace procedure p_insert_cs( p_cs_dept in cs。cs_dept%type, p_cs_grade in cs。cs_grade%type, p_cs_class in cs。cs_class%type, s_state_values out number) as begin insert into cs(cs_dept,cs_grade,cs_class) values(p_cs_dept, p_cs_grade, p_cs_class); if sql%rowcount=1 then s_state_values:=0; end if; exception when others then s_state_values:=1; commit; end ; / create or replace procedure c_insert_cs( c_cs_class in cs.cs_class%type, c_state_values out number) as begin select count(*) into c_state_values from cs where cs_class=c_cs_class; end ; / create or replace procedure p_insert_sub( p_sub_subject in sub。sub_subject%type, p_sub_teacher_name in sub。sub_teacher_name%type, s_state_values out number) as begin insert into sub(sub_subject,sub_teacher_name) values(p_sub_subject, p_sub_teacher_name); if sql%rowcount=1 then s_state_values:=0; end if; exception when others then s_state_values:=1; commit; end; / create or replace procedure c_insert_sub( c_sub_subject in sub.sub_subject%type, c_state_values out number) as begin select count(*) into c_state_values from sub where sub_subject=c_sub_subject; end ; / create or replace procedure p_insert_gd( p_gd_stu_no in gd。gd_stu_no%type, p_gd_sub_subject in gd.gd_sub_subject%type, p_gd_grade in gd.gd_grade%type, s_state_values out number) as begin insert into gd(gd_stu_no,gd_sub_subject,gd_grade) values(p_gd_stu_no,p_gd_sub_subject,p_gd_grade); if sql%rowcount=1 then s_state_values:=0; end if; exception when others then s_state_values:=1; if p_gd_grade=null then s_state_values:=2; end if; commit; end ; / create or replace procedure c_insert_gd( p_gd_stu_no in gd.gd_stu_no%type, p_gd_sub_subject in gd。gd_sub_subject%type, c_state_values out number) as begin select count(*) into c_state_values from ( select gd_stu_no from gd where gd_sub_subject=p_gd_sub_subject ) where gd_stu_no=p_gd_stu_no; end ; / create or replace procedure c_insert_gd_fk1( c_stu_no in student.stu_no%type, c_state_values_fk1 out number) as begin select count(*) into c_state_values_fk1 from student where stu_no=c_stu_no; end ; / create or replace procedure c_insert_gd_fk2( c_sub_subject in sub。sub_subject%type, c_state_values_fk2 out number) as begin select count(*) into c_state_values_fk2 from sub where sub_subject=c_sub_subject; end ; / create or replace procedure p_select_stu_no_info( p_stu_no in out student.stu_no%type, p_stu_name out student.stu_name%type, p_stu_sex out student。stu_sex%type, p_stu_birthday out student。stu_birthday%type, p_stu_phone out student.stu_phone%type, p_stu_cs_class out student.stu_cs_class%type, p_cs_dept out cs。cs_dept%type, p_cs_grade out cs.cs_grade%type, c_state_values out number) as begin c_state_values:=0; select stu_no, stu_name,stu_sex ,stu_birthday ,stu_phone ,stu_cs_class ,cs_dept ,cs_grade into p_stu_no, p_stu_name, p_stu_sex, p_stu_birthday, p_stu_phone, p_stu_cs_class, p_cs_dept, p_cs_grade from student, cs where stu_cs_class=cs_class and stu_no=p_stu_no; exception when NO_DATA_FOUND then c_state_values:=1; when others then c_state_values:=2; end ; / create or replace procedure p_select_stu_no_gd(p_stu_no in student。stu_no%type , cursor_gd out sys_refcursor) as begin open cursor_gd for select gd_sub_subject,gd_grade from gd where gd_stu_no=p_stu_no; end; / create or replace procedure p_select_stu_name( p_stu_name in student.stu_name%type , cursor_stu out sys_refcursor, c_state_values out number) as begin c_state_values:=0; open cursor_stu for select stu_no, stu_name,stu_sex ,stu_birthday ,stu_phone ,stu_cs_class ,cs_dept ,cs_grade from student, cs where stu_name=p_stu_name and stu_cs_class=cs_class; exception when others then c_state_values:=2; end; / create or replace procedure p_pm_sum( cursor_gd_sum out sys_refcursor ) as begin open cursor_gd_sum for select distinct sno,stu_name,sum from student,(select gd_stu_no as sno,sum(gd_grade) as sum from gd group by gd_stu_no ) where stu_no=sno order by sum desc; end; / create or replace procedure p_pm_sub( p_gd_sub_subject in gd。gd_sub_subject%type, cursor_gd_sub out sys_refcursor ) as begin open cursor_gd_sub for select gd_stu_no,stu_name,gd_grade from gd,student where gd_sub_subject=p_gd_sub_subject and stu_no=gd_stu_no order by gd_grade desc; end; / create or replace procedure p_pm_class( p_stu_cs_class in student。stu_cs_class%type, cursor_gd_class out sys_refcursor ) as begin open cursor_gd_class for select distinct sno,stu_name,sum from student,(select gd_stu_no as sno,sum(gd_grade) as sum from gd group by gd_stu_no ) where stu_no=sno and stu_cs_class=p_stu_cs_class order by sum desc; end; / create or replace procedure p_fx( cursor_fx out sys_refcursor ) as begin open cursor_fx for select gd_sub_subject,max(gd_grade) as zuigao,min(gd_grade) as zuidi,avg(gd_grade) as pingjun,SUM(CASE WHEN gd_grade>=60 THEN 1 ELSE 0 END)/COUNT(*)*100 AS jigelv, SUM(CASE WHEN gd_grade〉=80 THEN 1 ELSE 0 END)/COUNT(*)*100 AS youxiulv from gd group by gd_sub_subject; end; / create or replace procedure p_bujige( cursor_bujige out sys_refcursor ) as begin open cursor_bujige for select gd_stu_no,gd_sub_subject,gd_grade from gd where gd_grade〈60; end; / create or replace procedure p_update_stu( p_stu_no in student。stu_no%type, p_stu_name in student。stu_name%type, p_stu_sex in student.stu_sex%type, p_stu_birthday in student。stu_birthday%type, p_stu_phone in student.stu_phone%type, p_stu_cs_class in student.stu_cs_class%type, s_state_values out number ) as begin update student set stu_name=p_stu_name,stu_sex=p_stu_sex,stu_birthday=p_stu_birthday,stu_phone=p_stu_phone,stu_cs_class=p_stu_cs_class where stu_no=p_stu_no; if sql%rowcount=1 then s_state_values:=0; end if; exception when others then s_state_values:=1; commit; end ; / create or replace procedure p_delete_stu( p_stu_no in student。stu_no%type, s_state_values out number) as begin delete from gd where gd_stu_no=p_stu_no; delete from student where stu_no=p_stu_no; s_state_values:=0; exception when others then s_state_values:=1;rollback; commit; end; / create or replace procedure p_update_gd( p_gd_stu_no in gd。gd_stu_no%type, p_gd_sub_subject in gd。gd_sub_subject%type, p_gd_grade in gd。gd_grade%type, s_state_values out number) as begin update gd set gd_stu_no=p_gd_stu_no,gd_sub_subject=p_gd_sub_subject,gd_grade=p_gd_grade where gd_stu_no=p_gd_stu_no and gd_sub_subject=p_gd_sub_subject; if sql%rowcount=1 then s_state_values:=0; end if; exception when others then s_state_values:=1;rollback; commit; end ; / create or replace procedure p_delete_gd( p_gd_stu_no in gd.gd_stu_no%type, p_gd_sub_subject in gd。gd_sub_subject%type, s_state_values out number) as begin delete from gd where gd_stu_no=p_gd_stu_no and gd_sub_subject=p_gd_sub_subject; if sql%rowcount=1 then s_state_values:=0; end if; exception when others then s_state_values:=1;rollback; commit; end ; / create or replace procedure p_denglu( p_name in user_。name%type, p_passwd in user_.passwd%type, s_state_values out number ) as begin select count(*) into s_state_values from user_ where name=p_name and passwd=p_passwd; end; / create or replace procedure p_update_passwd( p_name in user_.name%type, p_passwd in user_.passwd%type, s_state_values out number ) as begin update user_ set passwd= p_passwd where name=p_name; if sql%rowcount=1 then s_state_values:=0; end if; exception when others then s_state_values:=1;rollback; commit; end; / create or replace procedure p_select_no( cursor_stu_no out sys_refcursor ) as begin open cursor_stu_no for select stu_no from student order by stu_no; end; / create or replace procedure p_select_all( cursor_all out sys_refcursor ) as begin open cursor_all for select stu_no, stu_name,stu_sex ,stu_birthday ,stu_phone ,stu_cs_class ,cs_dept ,cs_grade from student, cs where stu_cs_class=cs_class order by stu_no; end; / create or replace procedure p_select_count( myrowcount out number ) as begin select count(*) into myrowcount from student; end; / 五、编程步骤 1。连接数据库的javabean 由于在本系统的多个JSP页面中都需要访问数据库,因此使用一个JavaBean来专门完成数据库的连接。把数据库连接封装在一个类中,每次需要访问数据库是只需实例化这个类并利用类里面提供的共有方法来完成连接即可。这样,既可以节省编码时间,也提高了代码的利用率. 1。1模块描述 负责完成与数据库的连接 1。2.类的设计与实现 (1)名称:jdbc.java (2)功能:负责完成与数据库的连接。 1.3构造方法设计 1。3。1 ① 方法定义:public jdbc() ② IPO图 输入:无。 处理:加载驱动程序,若加载中出现异常,则显示异常描述信息. 输出:无。 ③ 程序清单: public class jdbc { private static final String DB_NAME= "xz105151640043”; private static final String DB_PASSWORD=”xz"; private static final String DB_URL = ”jdbc:oracle:thin:@localhost:1521:orcl”; static { try { Class。forName("oracle.jdbc。driver.OracleDriver”); } catch (ClassNotFoundException e) { e.printStackTrace(); System。out.println(”class not found!!”); } } 1.3.2 ① 方法定义:public getConnection() ② IPO图 输入:无。 处理:创建驱动程序和指定数据库间的连接对象,建立语句对象 输出:无。 ③ 程序清单: public static Connection getConnection(){ try { return DriverManager.getConnection(DB_URL, DB_NAME,- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 数据库 课程设计 报告 学生 成绩管理系统
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文