欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    学生证管理系统(C语言课程设计).docx

    • 资源ID:87078264       资源大小:267.91KB        全文页数:49页
    • 资源格式: DOCX        下载积分:12金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    学生证管理系统(C语言课程设计).docx

    C语言课程设计报告学院:地球科学学院专 业:资源环境与城乡规划管理题目:学生证管理系统班号:014072-XX姓名:李仙伟学号:XXXXXXXX指导教师: XXXXXXXX2010年11月26日报告目录、课程设计目的3二、实习内容及要求3三、需求分析3四、总体分析3五、详细设计45.0头文件及结构体45. 1 主函数55.2菜单模块55. 3 添加模块65.4 修改模块105.5 浏览模块 145.6 查询模块155.6.1 按学号查询 155. 6.2按名字查询165. 6.3按班级查询 175.7统计模块 185.7. 1男生信息195. 7.2女生信息215. 7.3全体学生信息 235.8删除模块23六、上机操作266. 1系统说明266.2系统测试26七、总结32、源代码32、课程设计目的通过实践,学会编制结构清晰、风格良好、数据结构适当的C语言程序,加深对C语言 基础知识的理解和掌握,进步巩固C语言编程实践能力,锻炼思维逻辑和解决综合性实际 问题的能力。二、实习内容及要求1、用c语言编写个学生证管理系统,该系统具有以下功能:(1)录入某位学生的学生证信息;(2)给定学号,显示某位学生的学生证信息;(3)给定某个班级的班号,显示该班所有学生的学生证信息;(4)给定某位学生的学号,修改该学生的学生证信息;(5)给定某位学生的学号,删除该学生的学生证信息;(6)提供一些统计各类信息的功能;(7)提供浏览所有学生的学生证信息的功能。2、输入要求应用程序运行后,在屏幕上显示一个菜单;用户可以根据要求,选定相应的操作项目; 进入某个操作后,根据应用程序的提示,从键盘输入相应的信息。3、输出要求(1)应用程序运行后,要在屏幕上显示个菜单;(2)要求用户输入数据时,给出清晰、明确的提示信息,包括输入的数据内容、格式 及结束方式等。三、需求分析根据题目要求,学生信息要从文本文件中存取,所以本程序应该提供读写文件,显示、 统计、查询、修改记录,保存文件等操作,止匕外,还应该提供键盘式选择菜单实现功能。四、总体设计根据需求分析,可以把这个系统的设计分为添加、修改、查询、浏览、统计、删除六大模块,其中查询模块可以分为三个子模块,统计模块可以分为三个子模块,子模块下面还有子函数;系统功能模块图如卜所小:五、详细设计5.0头文件及结构体#include<stdio.h>#include<stdlib.h>#include<string.h>#define N 100struct Class(班级char Cname20;班名char Cno20|;班号);struct Student学生char Sname20;姓名char Sex| 10;性别char Sno20;学号int Age;年龄struct Class CInfo;嵌套结构体,表示班级信息StuInfoN;结构体数组,用作读取和存放临时数据5. 1主函数void main()(菜单menu();getchar();5.2菜单 void menu()int chose;int right;doprintf(Antttt学生证管理系统3”);printf(Mprintf(M菜单:tl 添加、t2 .修改t3 .浏览全部Xt4-査询t5-统计t6删除't7-退出n");printf(M”);printfC请输入数字选择);scanf("%d”,&chose);if(chose<l llchose>8)(right=l;printfC输入错误,请重新输入!'n");getchar();else right=O;while(right=l);switch(chose)case l:add();break;添加模块case 2:modify();break;修改模块case 3:browse();break;浏览模块case 4:quiry();break;查询模块case 5:stastic();break;/统计模块case 6:Delete();break;删除模块case 7:exit(0);退出5.3 添加模块首先要判断文件 Stulnfo. txt是否存在,如 果存在就以读写(r+)的方 式打开,如果不存在,就以 写(w)的方式创建文件 Stulnfo. txto输入格式要 求:性别为男或女,学号为 11位且不能重复,年龄在 0-100之间,班级号为6位, 程序提供了完善的验证机 制,输入错误时将提示重新 输入直到正确为止。此外, 如果以读写的方式打开,还 要判断记录数num<N是否 成立,因为结构体数组的大 小为N,当num=N时,表示 已满,不能再存储数据,需 要修改N的值。void add()int num;表示记录数inti;int age;临时变量,用于验证输入的性别是否满足条件charsno20; 临时变量,用于验证输入的学号是否满足条件 charsex20; 临时变量,用于验证输入的性别是否满足条件 char cno20; 临时变量,用于验证输入的班号是否满足条件 int right;FILE*fp;if(fp=fopen(,'StuInfo.txt,r+,)=NULL)以读写方式打开(if(fp=fopen(,'StuInfo.txt,'w,)=NULL) 文件不存在就创建文件 (printf(、n文件不存在且创建失败,返回! nH); menu();)printf(Hn请按照提示输入学生信息:'nn");printf("姓名:“);scanf(n%s",&StuInfo0.Sname); doprintf(”n 性别(男或女):"); scanf("%s'sex);if(strcmp( sex,”男”)!=0)&&(strcmp(sex,”女”)!=0) (printf(”输入错误,请输入男或女!'n”);right=l;getchar(); else right=O; while(right= 1);strcpy(StuInfo0.Sex,sex); doprintf(”n 学号(11 位):”); scanf(”s”,sno);if(strlen(sno)!=l 1) (printf(”输入错误,学号长度应为11位数!'n”); right=l;getchar(); ) else right=O; while( right=1);strcpy(StuInfo0.Sno,sno);do(printfCAn年龄巧;scanf(M%d",&age);if( age <=01 Iago 100)(printf("年龄应在0.100之间,请重新输入年龄!n");right=l;getchar();else right=0; while(right=l);Stulnfo0.Age=age;doprintf(、 班号(6 位):");scan f("%s",eno);if(strlen(cno)!=6)(printf("输入错误,班号长度应为6位数!n");right=l;getchar();else right=O; while(right=l);strcpy(Stu!nfoOJ.CInfo.Cno,cno);printf(n 班名:");scanf("%s'&StuInfo0.CInfo.Cname);fprintf(fp,n%st%st%st%dt%st%s,',Stulnfo0.Sname,StuInfo0.Sex,StuInfo|0.Sno,StuInfo0.Age,Stu Info0.CInfo.Cno,StuInfo0.CInfo.Cname);fclose(fp);printf(”n 保存成功! n");printf(1*n请按enter键返回主菜单!n");getchar();getchar();menu();)以上的输入是以写的方式输入,下面是以读写的方式输入数据for(i=0;!feof(fp);i+)(fscanf(fp,%s%s%s%d%s%s,1,&StuInfoi.Sname,&StuInfoi.Sex,&StuInfoi.Sno,&StuInfoi.Age,&StuI nfoi.CInfo.Cno,&StuInfoi.CInfo.Cname);num=i;记录数if(num=N)(printf("n保存记录数超出结构体数组数的大小,请先修改N的值!'n");printf(n请按enter键返回主菜单!n");getchar();getchar();menu();printf(An请按照提示输入学生信息:'NT);printf("姓名:“);scanf("%sn,&StuInfonum.Sname);do(printf(”n 性别(男或女):”);scanf(”s”,sex);if(strcmp(sex,”男")!=0)&&(strcmp(sex,”女")!=0)(printf(”输入错误,请输入男或女!'n”);right=l;getchar();else right=O;while(right=l);strcpy(Stulnfo|num.Sex,sex);do(printf(”'n 学号(11 位):”);scanf(,%s,sno);if(strlen(sno) !=11)(printf(”输入错误,学号长度应为11位数!'n”);right=l;getchar();else right=O;for(i=0;i<num;i+)(if(strcmp(sno,StuInfo|i.Sno)=0)printf("该学号已经存在,请重新输入!n");right=l;getchar(); while(right=l);strcpy(StuInfonum.Sno,sno);doprintf(An 年龄);scanf(,%d,',&age);if(age<=Ollage>IOO)(printf("年龄应在0-100之间,请重新输入年龄!');right=l;getchar();)else right=O; while( right=1);StuInfonum.Age=age;doprintfCM 班号(6 位):”);scan f(M%su,eno);if(strlen(cno)!=6) (primf("输入错误,班号长度应为6位数!n");right=l;getcharQ;else right=O;)while(right=l);strcpy(StuInfonum.CInfb.Cno,cno);primf("班名:");scanf(,%sM,&StuInfdnum.CInfb.Cname);把该记录写到文件末尾fprintf(fp/'n%st%st%st%dt%st%s,StuInfonum.Sname,StuInfonum.Sex,StuInfonum.Sno,StuInfonu m.Age,StuInfonum.CInfb.Cno,StuInfbnum.CInfo.Cname);fclose(fp);printf("保存成功!'n”);printf("请按enter键返回主菜单!n");getchar();getchar();menu();5.4 修改模块先判断文件Stulnfo. txt以读 (r)的方式能否打开,不能就返回, 可以就读入记录;然后输入学号查找 记录,没找到就返回,找到就按照提 示修改该记录,与输入模块样,输 入的格式要求:性别为男或女,学号 为11位且不能与除当前修改的记录 的学号外的记录的学号重复,年龄在 0-100之间,班级号为6位,程序提 供了完善的验证机制,输入错误时将 提示重新输入直到正确为止。输入完 成后,再以写(w)的方式创建文件, 不能创建就返回,可以就将结构体数 组中的所有记录保存到文件中,这与 添加稍有差别,最后返回主菜单。void modifyOint num;inti;int right;int age;char sex20;char cno20;char sno20;int found="l;char StuNO20;FILE*fpr,*fpw;if(fpr=fopen(',StuInfo.txtn;,r,)=NULL)(printf("文件打不开!'n");menu();)for(i=0; !feof(fpr);i+)(fpr=fopen("StuInfo.txtW)=NULL否读取文件输入学号是否存在该学号的记录是根据盧示输入新信息(fpw=fopen("StuInfo.txT',"w")=NULL否保存数据是»主单.fscanf(fpr,M%s%s%s%d%s%s,1,&StuInfoi.Sname,&StuInfoi.Sex,&StuInfoi.Sno,&StuInfoi.Age,&StuI nfoi.CInfd.Cno,&StuInfoi.CInfo.Cname);)num=i;fclose(fpr);printf(An请输入学号选择要修改的记录:;scanf(M%s *',StuNO);for(i=0;i<num;i+)(if(strcmp(StuNO,StuInfoi.Sno)=0)found=i;primf("n你要修改的学生信息为:nn");primf("姓名性别 学号 年龄 班号班名、);printf(',%st%st%st%dt%st%sn',StuInfoi.Sname,StuInfoi.Sex,StuInfoi.Sno,StuInfoi.Age,StuInfbi .CInfo.Cno,StuInfoi.CInfo.Cname);printf(',n请按照提示输入学生的新信息:、);printf("姓名:“);scanf(H%sH,&StuInfofound|.Sname);do(printf(”n 性别(男或女):”);scanf(”s”,sex);if(strcmp( sex,” 男”)!=0)&&(strcmp(sex,”女”)!=0)(printf(”输入错误,请输入男或女!');right=l;getchar();)else right=O; while(right=l);strcpy( Stulnfo|found |.Sex,sex);do(printf(!学号(11 位):");scanf("%s",sno);if(strlen(sno) !=11)(printf("输入错误,学号长度应为11位数!'n");right=l;getchar();else right=O;for(i=0;i<num;i+)(if(i!=found)&&(strcmp(sno,StuInfoi.Sno)=0)(printf("该学号已经存在,请重新输入!'n");right=l;getchar(); while(right=l);strcpy(StuInfofound.Sno,sno);doprintf(Hn 年龄巧;scanf(n%dn,&age);if(age<=OI Iago 100) (printf("年龄应在0.100之间,请重新输入年龄!');right=l;getcharQ;)else right=0; while(right=l);StuInfofound.Age=age;doprintfCAn 班号(6 位)scan f(M%sH,eno);if(strlen(cno)!=6) (printf("输入错误,班号长度应为6位数!n");nght=l;getchar();else right=O;while(right=l);strcpy(StuInfofound.CInfo.Cno,cno);printf(n 班名:");scanf(n%sn,&StuInfofound.CInfo.Cname);if(fpw=fopen(,StuInfo.txt,w,')=NULL)(printf("文件打不开,保存失败! n”); menu();for(i=0;i<num;i+)保存文件fprintf(fpw;An%st%st%st%dt%st%s,StuInfoi.Sname,StuInfbi.Sex,StuInfoi.Sno,StuInfoi.Age,S tuInfoi.CInfo.Cno,StuInfoi.CInfo.Cname);)fclose(fpw);printf("n 修改成功!'n");printf(Mn请按enter键返回主菜单!n"); getchar();getchar();menu();)if(found<0)printf(n没有找到该学号的记录An”);printf(Mn请按enter键返回主菜单!n");getchar();getchar();menu();5.5 浏览模块void browse()int num;int i;FILE*fp;if(fp=fopen(,StuInfo.txtM;,r")=NULL) printfC文件打不开! n”);menu();)for(i=0; !feof(fp);i+)fscanf(fp,%s%s%s%d%s%s,&StuInfoi.Sname,&StuInfoi.Sex,&StuInfoi.Sno,&StuInfoi.Age,&St uInfoi.CInfo.Cno,&Stu!nfoi.CInfo.Cname);)fclose(fp);num=i;printf(,n已添加d个学生信息、nn”,num);printf("姓名性别学号年龄班号班名、);for(i=0;i<num;i+)printf(M%st%st%st%d't%s%sn,StuInfoi.Sname,StuInfoi.Sex,StuInfoi.Sno,StuInfoi.Age,StuInfoi.CInfo.Cno,StuInfoi.CInfo.Cname);)printf(An请按enter键返回主菜单!'n");getchar();getchar(); menu();)5.6 查询模块void quiry()int chose;int right;doprintf("nl-按学号查询t2按姓名 查询t3-某班学生信息t4返回Xn");printf("n请输入数字选择:"); scanf(,'%d,&chose);if(chose<l llchose>4) (right=l;getcharQ;)else right=O;while(right=l);switch(chose)(case 1 :bySno();break;case 2:bySname();break;case 3:byCno();break;case 4:menu();5. 6.1根据学号查找某学生的学生证信息:void bySno()int found="l;int num;inti;char no20;FILE*fp;if(fp=fopen(,'StuInfo.txt,r,')=NULL)(printf("文件打不开! n");是春menu();for(i=0;!feof(fp);i+)fscanf(fp,M%s%s%s%d%s%s,',&StuInfoi.Sname, &StuInfoi.Sex,&StuInfbi.Sno,&StuInfoi.Age, &StuInfoi.CInfo.Cno,&StuInfoi.CInfo.Cname);)num=i;fclose(fp);printfC'An请输入学生学号:"); scanf("%s",no);fbr(i=O;i<num;i+)if(strcmp(no,StuInfoi.Sno)=0)(found=i;printf("n该学生的信息为:nnM);printf("姓名性别学号年龄班号班名");printf(,%st%st%st%dt%st%sn,StuInfbfound.Sname,StuInfofound.Sex,StuInfbfound.Sno,StuI nfofound.Age,StuInfofbund.CInfo.Cno,StuInfofound.CInfo.Cname);) ) if(found<0) printf(“n没有找到该班号的记录!n"); printf("n请按enter键返回上级菜单!n"); getchar(); getchar(); quiry();5.6.2 根据姓名查找某学生的学生证信息: void bySname() int found=-1; int num;int i;char name20;FILE*fp;if(fp=fopen(,StuInfo.txt,',r,)=NULL)printf("文件打不开!'n"); menu();)for(i=0;!feof(fp);i+)fscanf(ip;,%s%s%s%d%s%s,&StuInfoi.Sname, &StuInfoi.Sex,&StuInfoi.Sno,&StuInfoi.Age, &StuInfoi.CInfo.Cno,&StuInfoi.CInfo.Cname);)num=i;fclose(fp);printfC'n请输入学生姓名:");scanf(n%sn,name);fbr(i=0;i<num;i+4-)(if(strcmp(name,StuInfo(i.Sname)=0) (found=i;printf(n该学生的信息为:nn");printf(M姓名 性别 学号 年龄 班号 班名Xn");printf(,%st%st%st%dt%st%sn'StuInfofound.Sname,StuInfofound.Sex,StuInfofound.Sno,Stu Infofound.Age,StuInfofound.CInfo.Cno,StuInfofound.CInfo.Cname);)if(found<0)printfCAn没有找到该班号的记录!n"); printf("n请按enter键返回上级菜单NT); getchar();getchar(); quiry();5.6.3 根据班号查询某个班级所有学生的 学生证信息:void byCno()(int found="l;int num;int i;char ClaNO20;HLE*fp;if(fp=fopen(,'StuInfo.txt,r,)=NULL)(printf("文件打不开!'n”); menu();for(i=0; !feof(fp);i+)fscanf(fp,M%s%s%s%d%s%sH,&StuInfoi|.Sname, &StuInfoi.Sex,&StuInfoi.Sno,&StuInfdi.Age, &StuInfoi.CInfo.Cno,&StuInfoi.CInfo.Cname);)num=i;fclose(fp);printf("n请输入班号:");scanf("%s",ClaNO);printf("n该班级的学生信息为:nn");班号班名、n");printf("姓名性别学号年龄for(i=0;i<num;i+)if(strcmp(ClaNO,StuInfoi.CInfo.Cno)=0)(fbund=i;printf(',%st%st%st%dt%st%sn',StuInfbfound.Sname,StuInfofound.Sex,StuInfofound.Sno,StuI nfofound.Age,StuInfofound.CInfo.Cno,StuInfofound.CInfo.Cname);if(found<0)printf(Mn没有找到该班号的记录!n"); printf('n请按enter键返回上级菜单!n"); getchar();getchar(); quiryO;5.7统计模块该模块实现了基本的统计功能,包括 分别统计男女生的人数、平均年龄,以及 全体学生的人数和基本年龄;void stastic()int chose;int right;doprintf("nl-全体男生t2全体女生t3-全体学生t4返回、n");printf("n请输入数字选择:");scanf( "%d M,&chose);“found小于,说明不存在班号的学生记录if(chose<l llchose>4)right=l; getchar(); ) else right=O; while(right=l); switch( chose) (case 1:Male()J男生的统计信息printf(Mn请按enter键返回上级菜单 getchar(); getchar(); stastic(); break; case 2:FemaleO;女生的统计信息printf(Mn请按enter键返回级菜单!n"); getchar();getchar();stastic(); break; case 3:StuMsgO;全体学生的统计信息printf(Hn请按enter键返回上级菜单!n"); getchar();getchar(); stastic(); break; case 4:menu();灯cmp(“男”,StuIMoi.Sex) Count-Hreturn count是) 5. 7.1统计男生信息子模块 void Male() int num; 人数 float mg; 平均年龄 num=MaleNum(); mg=MaleMG();printf(An男生总人数为:%dn平均年 龄为:%fn",num,mg); )5.7.1. 1返回男生人数子函数int MaleNum()int num;int count=0;inti;FILE*fp;if(fp=fopen(,StuInfo.txt',;'r,)=NULL) (printf("文件打不开!'n");menu();for(i=0;!feof(fp);i+)fscanf(fp,%s%s%s%d%s%s,',&StuInfoi.Sname,&StuInfoi.Sex,&StuInfoi.Sno,&StuInfoi.Age,&StuInfoi.CInfo.Cno,&StuInfoi.CInfo.Cname);)fclose(fp);num=i;for(i=0;i<num;i+)if(strcmp(“男”,Stulnfoi.Sex)=0)(count 4-+;)return count;5. 7. 1.2返回男生平均年龄float MaleMGOint num;int count=0;int found;float mAge=0;inti;FILE*fp;if(fp=fopen(,StuInfo.txt,'r,)=NULL)(printf("文件打不开!'n");menu();)for(i=0;!feof(fp);i+)for(i=0;!fco 師);i+) strcmpf 劣",Slulnfbi.Sex)=O fbunt=lCounts mAge*Stulnfbfbund.Age;mAge.=count;return mAgefscanf(fp,%s%s%s%d%s%sw,&StuInfoi.Sname, &StuInfoi.Sex,&StuInfoi.Sno,&StuInfoi.Age,&StuInfo|i|.CInfo.Cno,&Stulnfoi.CInfo.Cname);fclose(fp);num=i;for(i=0;i<num;i+)(if(strcmp(“男”,StuInfoi.Sex)=0)|found=i;count+;mAge+=StuInfoi.Age;)if(count>0)m Age/二count;return mAge;5.7.2统计女生信息子模块void Female()int num;float mg;num=FemaleNum();mg=FemaleMG();printf(An女生总人数为:%dn平均年龄为: 5.7.2. 1返回女生人数子函数int FemaleNum()int num;int count=0;int i;FILE*fp;if(fp=fopen(nStuInfo.txtH,V)=NULL)(printf("文件打不开!'n”);menu();)%fn”,num,mg);sircmpi" 女”,Stulnfbi.Sex) Count-H-return countfor(i=0; !feof(fp);i+)fscanf(fp,M%s%s%s%d%s%s,',&StuInfbi.Sname,&StuInfoi.Sex,&StuInfoi.Sno,&StuInfdi.Age,& StuInfoi.CInfb.Cno,&StuInfoi.CInfd.Cname);)fclose(fp);num=i;for(i=0;i<num;i+)(if(strcmp(*'j<,StuInfoi.Sex)=0)(count+;)return count;5.7.2.2返回女生平均年龄float FemaleMG()int num;int count=0;int found;float mAge=0;int i;FILE*fp;if(fp=fopen( ,'Stulnfo.txt,r,')=NULL) (printf("文件打不开!'n");menu();读取文件M=0;!fcof(帔sircmpT 女"5 加 nfo(i.ScxL0foum=lCount-HmAge- Stuinfbfound.Age;mAgc/=count;return mAgefor(i=0; !feof(fp);i+)fscanf(fp,%s%s%s%d%s%s,&StuInfoi.Sname,&StuInfoi.Sex,&StuInfoi.Sno,&StuInfoi.Age,& StuInfoi.CInfo.Cno,&StuInfoi.CInfo.Cname);fclose(fjp);num=i;for(i=0;i<num;i+)(if(strcmp(,:,StuInfoi.Sex)=0)found=i;count+;mAge+=StuInfoi.Age;)if(count>0)mAge/=count;)return mAge;5.7.3全体学生统计信息子模块void StuMsgOint num;float mg;num=StuNum();mg=MG();printf(A

    注意事项

    本文(学生证管理系统(C语言课程设计).docx)为本站会员(无***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开