版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、编 号:B04931082学 号:7教学院课程名称题目专业班级姓名同组人员指导教师课程设计计算机学院高级语言程序设计H运动会比赛计分系统软件工程(一)班包先跃石奇、吕鹏飞、立阳祁文青2013 年 06 月 29 日课程设计任务书20122013 学年第2学期学生:包先跃专业班级:12软件工程指导教师:祁文青、课程设计题目:运动会比赛计分系统工作部门: 计算机学院名次取法有如下几种:取前 第五名得分1 ;取前3名:5名:第一名得分7分,第二名得分5,第三名得分3,第四名得分2 , 第一名得分5,第二名得分3,第三名得分2 ;、课程设计容:初始化输入:N-参赛学校总数,M-男子竞赛项目数, W-女
2、子竞赛项目数各项目功能要求:(1 )系统以菜单方式工作(2 )由程序提醒用户填写比赛结果,输入各项目获奖运动员信息。(3 )所有信息记录完毕后,用户可以查询各个学校的比赛成绩(4 )查看参赛学校信息和比赛项目信息等。三、进度安排1 分析问题,给出数学模型,选择数据结构。2 设计算法,给出算法描述。3 给出源程序清单。4. 编辑、编译、调试源程序。5. 撰写课程设计报告。四、基本要求1. 界面友好,函数功能要划分好。2. 总体设计应画一流程图。3. 程序要加必要的注释。4. 要提供程序测试方案。5. 程序一定要经得起测试,要能运行起来,不能运行的程序是没有价值的。目录目录 2一 概述 . 3二
3、总体方案设计 . 4三 详细设计 55.1.1 提出问题 85.1.2 解决问题 95.1.3 提出问题 95.1.4 分析问题 95.1.5 解决问题 95.1.6 提出问题 95.1.7 分析问题 95.1.8 解决问题 95.2 算法的效率及改进设想 9四 程序的调试与运行结果分析 11(一) 用户手册 11(二)调试过程中出现的问题和处理方式 15五 课程设计总结 . 16附录:(源程序) . 17参 考 文 献 27概述1. 课程设计的目的 1理解和掌握该课程中的有关基本概念,程序设计思想和方法。 2培养综合运用所学知识独立完成课题的能力。3培养勇于探索、严谨推理、实事、有错必改,用
4、实践来检验理论,全方位考虑问题 等科学技术人员应具有的素质。4掌握从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问 题的新途径的悟性,初步培养工程意识和创新能力。2. 课程设计的要求1)可以输入各个项目的前三名或前五名的成绩;2)能统计各学校总分,3)可以按学校编号或名称、学校总分、男女团体总分排序输出;4)可以按学校编号查询学校某个项目的情况; 可以按项目编号查询取得前三或前五名的 学校。5)数据存入文件并能随时查询6)规定:输入数据形式和围:可以输入学校的名称,运动项目的名称 输出形式:有合理的提示,各学校分数为整形 界面要求:有合理的提示,每个功能可以设立菜单,根据提
5、示,可以完成相关的功能 要求。存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储 在数据文件中。 (数据文件的数据读写方法等相关容在 c 语言程序设计的书上,请自学 解决)请在最后的上交资料中指明你用到的存储结构; 测试数据:要求使用 1 、全部合法数据; 2 、整体非法数据; 3 、局部非法数据。进行程 序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明 ;二总体方案设计(1) 运动项目定义:typedef struct Sport / 运动项目结构char n ame20; / 运动项目名称int isboy; 0为女项目,1为男项目int is3;
6、0为取前五名,1为取前五名int number; / 项目编号(2 )主要算法的设计思想:本程序主要是使用链表来实现操作。一个运动会包括运动项目和参加运动会的成员。因此构造两个链表Department,Sport。根据输入的不同选择不同的功能,有输入运动项目,按总分排序,按男团体总分排序,按女团体总分排序,按项目标号查询,退出。为了操作的方便,并且能够保存输入数据,所以通过文件操作来实现数据的写和读。每次添加 新的数据后都要输入0退出,数据才能保存。对于总分的排序使用了冒泡排序。为了使整个程序 看起来更加友好,又添加了程序启动画面。在此次课程设计小组中我所承当的工作是:对总程序的结构体的定义,
7、界面菜单的建立以及void funct6(ALLNode*g2)和按学校编号查询学校某个项目情况的子函数程序编写。void funct7(ALLNode *g2)是按学校编号查询学校某个项目情况;voidfun ct6(ALLNode *g2):按女团体总分排序输出。(各部分解决问题详见详细设计中遇到的较重要问题的回顾)三详细设计3、 1程序流程图1)设计运动会的学校编号或名称、项目成绩、男女团体总分的数据存储系统设计图(2)查询团体总分程序设计图成绩査询亠(3)总流程图:(4 )算法分析:其中/* 学校 */school 类为:class school:public athlete publ
8、ic:int count; /* 学校获奖数 */int serial; /* 学校编号 */int menscore; /* 男选手总分 */int womenscore; /* 女选手总分 */int totalscore; /*总分 */athlete athMaxSize; /* 获奖运动员信息数组,包括分数,名次,项目 */ school *prev;/前指针school *next;/ 后指针; 其中部分主要的函数: 添加操作 add(school* &head) 查询操作 checkFunc(school *head,int &n) 文件保存 save(school *head)
9、 总分快速排序 tquicksort(vector& v, int first, int last) 总分基数排序 tbaseSort(vector& v, int d)2. 关键算法添加项目号for ( i = 1 ; i serial = 要添加的编号 )(first-athfirst-count).item =要添加的项目号 ;(first-athfirst-count).range =i (名次) First 指向的学校的项目加一;更新总分break; first = first-next;5)遇到的较重要问题的回顾5.1.1 提出问题所有输入输出容只能在一屏显示,学过 c语言,很知道
10、” n ”是换行,” f ”是换 屏的,可是在这里就是无法实现。5.1.2 解决问题输入 clrscr();5.1.3 提出问题 设置选项,供用户输入选择时,当按任意键时都会跳入下一步操作,或者直接退出 系统。5.1.4 分析问题在供用户选择时,提供了几个选项,就写几个 case 语句,但是当用户输入的并不 是这几个数字时,系统就不能做出正确判断。5.1.5 解决问题修改 case 语句,添加 default 语句提示出错,要求重新输入;default : clrscr();/* 清屏 */printf( 输入错误,请重新选择 );5.1.6 提出问题当同一项目中有同一学校的两个人时,便不能正
11、确输出或者输出相同人名。5.1.7 分析问题 由于同时有两个相同学校编号的人存在,系统在输出时,不能确定那个是正确的, 或者用后来的覆盖以前的。5.1.8 解决问题用 for 函数实现从开始到结尾的遍历。5.2 算法的效率及改进设想 算法的效率:总的来讲,严重引响执行速度的便是查找,查找任意一个数据,便要 将其所在的结构从头至尾遍历一次,耗费大量的时间。改进设想:因大部分显示均是以学校为单位,所以将以由有关人的各种信息为集合 的结构改为以由有关学校的各种信息为集合的结构。在这次上机过程中遇到过一些问题,但经过我们不懈努力,解决了部分,还有的现 在不能解决,留着我们日后思考和解决。比如说在运用数
12、据结构排序的时候, 方法的选择上, 总是想用时间复杂度小的算法,但结果出了问题,最后还是用了我们熟悉的选择法排序。结构体的运用上感觉不是很熟悉,遇到结构体的时候很陌生,这是以后必须要加强 的。在我们的这个程序中用了两个结构体:struct nodeint num;struct node *f22;我们同样遇到了一些还不能很好解决的问题, 在输出的时候不能得到我们想要的效 果,在按学校编号排序查询输出的时候, 发生了重叠在做了几次修改之后都能使之满意, 这有待学习和修改。在编写之前,做整体的规划很重要,这才能让我们的效率更高和合作得更好。四程序的调试与运行结果分析(一)用户手册1本程序可以在 V
13、C+5.0和VC+6.0 的环境下运行。2在vc中创建一个工程,将源程序复制到.cpp中,编译就可以。如下: 运动会计分系统1.主菜单窗R 匸: Dt CliKEMT 勺JJfD SB晝逼UG 4jLDamiSIKATOJt桌简血ieburX, 1 * exe.IsIkI_L_|._I运动会分数统计系统a情K 件 目学 文 项的 存 出出某名 并出出 入出 12345671-92.则项目搞号为男子-X3 2s nzu=校 数教 总总的 目目会 项项渤 子孑诉5 思女加叫 入人参罕 .s =输 入 各 个 项 目 成 绩 并 存 储 文 件ffC S JiDVTSrSTRA TOR_ |fi|
14、1 Deliijg I.亡宴底*当电动=-1 卞拳柚編导为13.统计各学校总分4.按学校编号排序输出5.按学校总分排序输出6.按男团体总分排序输出OCjrjjm团生总分排序输出*7.按女团体总分排序输出学校编号按女团体总分排序输出WHWI 女团体总乐z30303e3eJe24&46464fa168.按学校编号查询学校某个项目情况9.按项目编号查询取得名次的学校(二)调试过程中出现的问题和处理方式为了使系统具有一点的容错性,当输入错误信息时应给出相应提示以正确输入数据,如:printf(要查询的项目编号:);sea nf(%d,&s); if(sm+w|s=O)printf(此次运动会不包括这个
15、项目.nnn);想在每次查询结束想返回主菜单进行其它项时,应在main()函数中调用其它函数时再调用main()函数,如:switch(choice)case 1:in puti nformatio n();writedata();readdata();mai n();case 2:output();ma in();case 3:in quiry();mai n();case 4:readdata();ma in();程序出现语法错误,发现是输入名次信息的地方忘带地址符&,或是程序不完整,只写了一个大括号。如:prin tf(* 名次:);scan f(%d,&hi.cj.ra nges)五课
16、程设计总结经过几个星期的奋战,终于完成了课程设计,感觉又进一步了解了这门课程,各个知识点 都加强了我似乎突然找到了方向,认真的学习这门课。回顾这次课程设计,使我感慨颇多。的确,从理论到实践,在整整两星期的日子里,学到很多 很多的的东西,同时不仅可以巩固学过的知识,而且学到了很多在书本上所没有学到过的知识。通 过这次课程设计使我懂得了理论与实际相结合是很重要的,从而提高自己的实际动手编程能力和独 立思考的能力。运动会计分系统,比较复杂,经过很长时间的书写,总算尝到了胜利的“滋味”在细节的认识上,我们在开发程序的时候,在之前就要知道自己想要的效果,然后把需要实现 的功能在纸上列出来,然后比如要用几
17、个函数来实现几个功能,整体需要几个模块来搭建,这些工 作都是要在未动工之前就得做好的准备工作,编程要的是有整体的思想加细心。这次的课程设计收 获颇多,最大的认识到了要想高效设计出想要的东西不仅要熟悉的掌握所学知识,还要学会充分利 用现有资源。在这之前,总以为自己编程方面还很差,现在才觉得,只要努力了,就会有收获,就 会得到回报。附录:(源程序)(一)。运动会计分系统#include #include #include #include /#include /* 屏幕操作函数 */#define MAX 50/#define NULL 0typedef struct node1int schoo
18、l;/* 学校编号 */int record;/* 项目成绩 */struct node1 *next;/* 链域 */Schools;typedef struct int item; /* 项目编号 */Schools *firstschool; /* 链域指向链表中第一个结点 */ ITEM;typedef struct int z; /* 项目总数 */ ITEM aMAX;ALLitems;typedef struct node2 int item; /* 该学校获奖的项目 */int record; /* 项目成绩 */struct node2 *next; /* 链域 */Item
19、s;typedef struct int school; /* 学校编号 */int score; /* 学校总分 */int boys; /* 男团体总分 */int girls; /* 女团体总分 */Items *firstitem; /* 链域指向链表中第一个获奖项目的结点 */ SCHNode;typedef struct int n; /* 学校总数 */SCHNode bMAX;ALLNode;ALLitems *g1;ALLNode *g2;void funct1(ALLitems *g1,ALLNode *g2) Schools *p1;Items *p2;int i,j,k
20、,m,w,h,x;p1=(Schools *)malloc(sizeof(Schools);p2=(Items *)malloc(sizeof(Items);if(!p1|!p2)exit(1);printf(n * 输 入 各 个 项 目 信 息 * nn);printf( 输入男子项目总数 m:);scanf(%d,&m);if(m20) printf( 输入有误 ,m 是 20 以的整数 , 请重新输入 :); scanf(%d,&m);printf( 输入女子项目总数 w:);scanf(%d,&w);if(w20) printf( 输入有误 ,w 是 20 以的整数 , 请重新输入
21、:); scanf(%d,&w);printf( 输入参加运动会的学校总数 n:);scanf(%d,&g2-n);if(g2-nn20) printf( 输入有误 ,n 是 20 以的整数 , 请重新输入 :); scanf(%d,&g2-n);g1-z=m+w;printf( 则项目编号为男子 1-%d, 女子 %d-%d,m,m+1,g1-z);printf(nn * 记录运动会成绩 *);printf(nn(输入 0 标志结束 )n);for(k=1;kz;k+) g1-ak.item=k;g1-ak.firstschool=NULL;for(k=1;kn;k+) g2-bk.scho
22、ol=k; g2-bk.firstitem=0; g2-bk.score=0; g2-bk.boys=0; g2-bk.girls=0; g2-b0.score=0; g2-b0.boys=0; g2-b0.girls=0;while(i!=0) printf(n 项目 :); scanf(%d,&i);if(i!=0) printf( 1. 前三名 2. 前五名 n); printf( 请选择 :); scanf(%d,&j);if(j!=1&j!=2) printf( 输入有误 , 请重新选择 :); scanf(%d,&j);if(j=1) h=3;do printf(”第d名:学校(学
23、校编号为数字),h);scanf(%d,&x);p1=(Schools *)malloc(sizeof(Schools); p1-school=x;p2=(Items *)malloc(sizeof(Items);p2-item=i;if(h=3) p2-record=p1-record=2;if(h=2) p2-record=p1-record=3;if(h=1) p2-record=p1-record=5;p1-next=g1-ai.firstschool;g1-ai.firstschool=p1;p2-next=g2-bx.firstitem;g2-bx.firstitem=p2;/*
24、累计总分 */* 累计男团体总分 */* 累计女团体总分 */g2-bx.score=g2-bx.score+p2-record;if(ibx.boys=g2-bx.boys+p2-record;else g2-bx.girls=g2-bx.girls+p2-record;h-;while(x!=0&h!=0);if(j=2) h=5;do printf(”第d名:学校(学校编号为数字),h);scanf(%d,&x);p1=(Schools *)malloc(sizeof(Schools);p1-school=x;p2=(Items *)malloc(sizeof(Items);p2-ite
25、m=i;if(h=5) p2-record=p1-record=1;if(h=4) p2-record=p1-record=2;if(h=3) p2-record=p1-record=3;if(h=2) p2-record=p1-record=5;if(h=1) p2-record=p1-record=7;p1-next=g1-ai.firstschool;g1-ai.firstschool=p1;p2-next=g2-bx.firstitem;/* 累计总分 */* 累计男团体总分 */* 累计女团体总分 */g2-bx.firstitem=p2;g2-bx.score=g2-bx.scor
26、e+p2-record;if(ibx.boys=g2-bx.boys+p2-record; else g2-bx.girls=g2-bx.girls+p2-record;h-;while(x!=0&h!=0); void save() FILE *fp1,*fp2;fp1=(FILE *)malloc(sizeof(FILE);fp2=(FILE *)malloc(sizeof(FILE);if(fp1=fopen(sports1,wb)=NULL) printf(cannot open file.n);return;if(fwrite(g1,sizeof(ALLitems),1,fp1)!=
27、1)printf(file write error.n);fclose(fp1);if(fp2=fopen(sports2,wb)=NULL) printf(cannot open file.n); return;if(fwrite(g2,sizeof(ALLNode),1,fp2)!=1)printf(file write error.n);fclose(fp2);void funct2(ALLNode *g2) int k; printf(nn printf( for(k=1;kn;k+) printf( printf(n); system(pause);printf( getchar()
28、;void funct3(ALLNode *g2)int k; Items *p2;p2=(Items *)malloc(sizeof(Items); printf(nn printf( scanf(%d,&k);for(k=1;kn;k+) printf(tttttt%dt,k);p2=g2-bk.firstitem; while(p2!=NULL) printf( 项目 %d: 得 %d p2=p2-next; printf(n); printf(n); system(pause);printf( 按任意键返回主菜单 );getchar();void funct4(ALLNode *g2)
29、 int i,j,k; Items *p2;printf(nn/* 输出各学校总分 */* 输出各学校总分 *n);学校编号 t 总分 n);%dttt %dn,k,g2-bk.score);按任意键返回主菜单 );/* 按学校编号排序输出 */* 按学校编号排序输出 *n); 学校编号 ttt 获奖情况 n);分 ,p2-item,p2-record);/* 按学校总分排序输出 */* 按学校总分排序输出 *n);n);printf( 学校编号 tt 总分scanf(%d,&k);/printf( 输入要查询的项目编号 :);for(i=2;in;i+) printf(%dt,k);p2=g
30、2-bk.firstitem;while(p2!=NULL) printf(%d tt%dn,g2-bk.school,g2-bk.score); p2=p2-next;printf(n);g2-b0.score=g2-bi.score; g2-b0.boys=g2-bi.boys; g2-b0.girls=g2-bi.girls;g2-b0.school=g2-bi.school;j=i-1; while(g2-b0.scorebj.score&j0) g2-bj+1.score=g2-bj.score;g2-bj+1.boys=g2-bj.boys;g2-bj+1.girls=g2-bj.
31、girls;g2-bj+1.school=g2-bj.school;j-;g2-bj+1.score=g2-b0.score; g2-bj+1.boys=g2-b0.boys;g2-bj+1.girls=g2-b0.girls;g2-bj+1.school=g2-b0.school;for(k=1;kn;k+)printf(%d tt%dn,g2-bk.school,g2-bk.score);system(pause);printf( 按任意键返回主菜单 );getchar();void funct5(ALLNode *g2) /* 按男团体总分排序输出 */ int i,j,k;Items
32、*p2;p2=(Items *)malloc(sizeof(Items);printf(nn * 按男团体总分排序输出 *n); printf( 学校编号 tt 男团体总分 n);scanf(%d,&k);/printf( 输入要查询的学校编号 :);for(i=2;in;i+)printf(%dt,k);p2=g2-bk.firstitem;while(p2!=NULL) printf(%dtt %dn,g2-bk.school,g2-bk.boys);p2=p2-next;printf(n);g2-b0.score=g2-bi.score;g2-b0.boys=g2-bi.boys;g2-
33、b0.girls=g2-bi.girls; g2-b0.school=g2-bi.school; j=i-1;while(g2-b0.boysbj.boys&j0) g2-bj+1.score=g2-bj.score;g2-bj+1.boys=g2-bj.boys;g2-bj+1.girls=g2-bj.girls;g2-bj+1.school=g2-bj.school;j-; g2-bj+1.score=g2-b0.score; g2-bj+1.boys=g2-b0.boys; g2-bj+1.girls=g2-b0.girls; g2-bj+1.school=g2-b0.school;fo
34、r(k=1;kn;k+)printf(%dtt %dn,g2-bk.school,g2-bk.boys);system(pause); / 暂停等待 printf( 按任意键返回主菜单 );getchar();void funct6(ALLNode *g2)/* 按女团体总分排序输出 */ int i,j,k;Items *p2;p2=(Items *)malloc(sizeof(Items);printf(nn * 按女团体总分排序输出 *n); printf( 学校编号 tt 女团体总分 n);scanf(%d,&k);/ printf( 输入要查询的项目编号 :);for(i=2;in;
35、i+)printf(%dt,k);p2=g2-bk.firstitem;while(p2!=NULL) printf(%dtt %dn,g2-bk.school,g2-bk.girls);p2=p2-next;printf(n);g2-b0.score=g2-bi.score; g2-b0.boys=g2-bi.boys; g2-b0.girls=g2-bi.girls; g2-b0.school=g2-bi.school; j=i-1;while(g2-b0.girlsbj.girls&j0) g2-bj+1.score=g2-bj.score; g2-bj+1.boys=g2-bj.boy
36、s; g2-bj+1.girls=g2-bj.girls; g2-bj+1.school=g2-bj.school;j-; g2-bj+1.score=g2-b0.score; g2-bj+1.boys=g2-b0.boys; g2-bj+1.girls=g2-b0.girls; g2-bj+1.school=g2-b0.school;for(k=1;kn;k+)printf(%dtt %dn,g2-bk.school,g2-bk.girls); system(pause);printf( 按任意键返回主菜单 );getchar();void funct7(ALLNode *g2) /* 按学
37、校编号查询学校某个项目情况 */ int i,j;Items *p2;printf(n * 按学校编号查询学校某个项目情况 *n);printf(输入要查询的学校编号 :);scanf(%d,&i);printf(输入要查询的项目编号 :);scanf(%d,&j);p2=g2-bi.firstitem;while(p2!=NULL) if(p2-item=j)printf( 学 校 编 号 :%dt 项 目 %d: 得 %d 分 n,i,p2-item,p2-record);p2=p2-next;printf(n);system(pause);printf( 按任意键返回主菜单 );getc
38、har(); void funct8(ALLitems *g1) /* 按项目编号查询取得名次的学校 */ int i;Schools *p1;printf(n* 按项目编号查询取得名次的学校 *n);printf( 输入要查询的项目编号 :);scanf(%d,&i);printf( 项目编号 ttt 取得名次的学校 n);printf(%dt,i);p1=g1-ai.firstschool;while(p1!=NULL) printf( 学校 %d: 得 %d 分 ,p1-school,p1-record); p1=p1-next;printf(nn);system(pause);prin
39、tf( 按任意键返回主菜单 );getchar();void main() int t;g2=(ALLNode*)malloc(sizeof(ALLNode);g1=(ALLitems*)malloc(sizeof(ALLitems); if(!g2|!g1)exit(1);/textcolor(WHITE);/textbackground(BLUE);/clrscr();system(cls);for(;)printf(tt运动会分数统计系统n);printf(tt* * * * * * * * * * * * * * * * * * * * * *n);printf(tt*1. 输入各个项目成绩并存储文件*tn);printf(tt*2. 统计各学校总分*tn);printf(tt*3. 按学校编号排序输出*tn);printf(tt*4. 按学校总分排序输出*tn);printf(tt*5. 按男团体总分排序输出*tn);printf(tt*6. 按女团体总分排序输出*tn);printf(tt*7. 按学校编号查询学校某个项目情况*tn);printf(tt*8. 按项目编号查询
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 婚后购房合同
- 数字素养的考试题及答案
- 瓶装液化气供气合同
- 充电桩施工合同
- 音乐助理合同
- 溧阳租房合同
- 正规包地合同
- 2025年思贤月嫂考试试题及答案
- 2025年社区医疗考试题目及答案
- 孝感医疗面试真题及答案
- 手卫生规范知识培训试题2025(附答案)
- 石化安全事故案例分析
- 财政税收课件
- 2025年康养酒店可行性分析报告
- 湖北省荆州市沙市中学2025-2026学年高一上学期9月月考+化学
- 2. 原子的核式结构模型说课稿-2025-2026学年高中物理教科版选修3-5-教科版2004
- 2025年黑龙江b证继续教育考试试题及答案
- 舒伯特魔王课件
- 《热力供暖系统运行维护方案》
- 2025年全国体育单独招生考试数学试卷真题(含答案详解)
- 制定养老机构安全管理标准与实施指南
评论
0/150
提交评论