当前位置:   article > 正文

【数据结构】运动会分数统计系统课程设计_数据结构运动会分数统计系统

数据结构运动会分数统计系统

1.问题描述

参加运动会有 n 个学校,学校编号为1...... n 。比赛分成 m 个男子项目,和 w 个女子项目。项目编号为男子1~ m ,女子 m +1~ m + w 。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2:哪些项目取前五名或前三名由学生自己设定。( m <=20, n <=20)

建议输入学校的名称,运动项目的名称等,其余信息学生自行设计;输出形式:有合理的提示,各学校分数为整形;

2.需求分析

(1)可以输入各个项目的前三名或前五名的成绩;

(2)能统计各学校总分,

(3)可以按学校编号或名称、学校总分、男女团体总分排序输出:

(4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。

【使用两个结构体】

(用链表的方法)

typedef struct Lnode
{
    char sch[20];//学校名称 
    int num, schsum, sum;//学校总分,男团体总分,女团体总分
    struct Lnode* next;
}Lnode, * LinkList;
typedef struct Lnode1
{
    char sch[20];//项目名称
    char sch1[20], sch2[20], sch3[20], sch4[20], sch5[20];//该项目前5名学校名称 
    int num1, num2, num3, num4, num5;//该项目前5名学校分数
    struct Lnode1* next;
}Lnode1, * LinkList1;

【输入学校名称】

void schoolname(LinkList& L1, int n)
{
    int i;
    LinkList p, q;
    L1 = (LinkList)malloc(sizeof(Lnode));
    printf("请输入%d个学校的名字:\n", n);
    p = (LinkList)malloc(sizeof(Lnode));
    if (L1 == nullptr ||p==nullptr)
    {
        printf("未分配内存!");
    }
    else
    {
        L1->next = p;
        scanf("%s", &p->sch);
        for (i = 1; i <n; i++)
        {
            q = p;
            p = (LinkList)malloc(sizeof(Lnode));
            scanf("%s", &p->sch);
            q->next = p;
        }
    }

【输入男子运动会项目名称】

void mansports(LinkList1& L2, int n2)
{
    int i;
    LinkList1 r, s;
    L2 = (LinkList1)malloc(sizeof(Lnode1));
    printf("请输入这%d个项目的名字:\n", n2);
    r = (LinkList1)malloc(sizeof(Lnode1));
    if (L2 == nullptr || r == nullptr)
    {
        printf("未分配内存!");
    }
    else
    {
        L2->next = r;
        scanf("%s", &r->sch);
        for (i = 2; i <= n2; i++)
        {
            s = r;
            r = (LinkList1)malloc(sizeof(Lnode1));
            scanf("%s", &r->sch);
            s->next = r;
        }
    }   

【输入女子运动会项目名称】

void womansports(LinkList1& L3, int n3)
{
    int i;
    LinkList1 r, s;
    L3 = (LinkList1)malloc(sizeof(Lnode1));
    printf("请输入这%d个项目的名字:\n", n3);
    r = (LinkList1)malloc(sizeof(Lnode1));
    if (L3 == nullptr || r == nullptr)
    {
        printf("未分配内存!");
    }
    else
    {
        L3->next = r;
        scanf("%s", &r->sch);
        for (i = 2; i <= n3; i++)
        {
            s = r;
            r = (LinkList1)malloc(sizeof(Lnode1));
            scanf("%s", &r->sch);
            s->next = r;
        }
    }

【学校总分排名】

void schoolrankings(LinkList& L1, int n)
{
    LinkList p;
    int z = 1, i, j, y;
    printf("参加这次比赛的学校的总分排名:\n");
    p = L1->next;
    for (i = 0; i < n; i++)
    {
        a[i] = p->num;//将学校总分全部赋值给全局变量
        p = p->next;
    }
    for (i = 0; i < n - 1; i++)//交换法排序
    {
        for (j =i+ 1; j <n; j++)
        {
            if (a[i] > a[j])
            {
                y = a[i];
                a[i] = a[j];
                a[j] = y;
            }
        }
    }
    for (i = n-1 ; i >= 0; i--)//倒序
    {
        p = L1->next;
        if (i > 0)
            while (a+i==a+i-1)
            {
                i--;
            }
        for (j = 1; j <=n; j++)
        {
            if (a[i] == p->num)
            {
                printf("第%d名%s:%d分\n", z, p->sch, p->num);
                z++;
            }
            p = p->next;
        }
    }

【男子项目成绩排名】

void manrankings(LinkList& L1, int n)
{
    LinkList p;
    int z = 1, i, j, y;
    printf("参加这次比赛的男子项目总分排名:\n");
    p = L1->next;
    for (i = 0; i < n; i++)
    {
        a[i] = p->schsum;
        p = p->next;
    }
    for (i = 0; i < n - 1; i++)//交换法排序
    {
        for (j = i + 1; j < n; j++)
        {
            if (a[i] > a[j])
            {
                y = a[i];
                a[i] = a[j];
                a[j] = y;
            }
        }
    }
    for (i = n -1; i >=0; i--)
    {
        p = L1->next;
        if (i > 0)//如果两个相等,直接下一个总分
            while (a+i == a+i-1)
            {
                i--;
            }
        for (j = 1; j <=n; j++)
        {
            if (a[i] == p->schsum)
            {
                printf("第%d名%s:%d分\n", z, p->sch, p->schsum);
                z++;
            }
            p = p->next;
        }
    }

}

【女子项目成绩排名】

void womanrankings(LinkList& L1, int n)
{
    LinkList p;
    int z=1, i, j, y;//z从第一名开始
    printf("参加这次比赛的女子项目总分排名:\n");
    p = L1->next;
    for (i = 0; i < n; i++)
    {
        a[i] = p->sum;
        p = p->next;
    }
    for (i = 0; i < n - 1; i++)//交换法排序
    {
        for (j = i + 1; j < n; j++)
        {
            if (a[i] > a[j])
            {
                y = a[i];
                a[i] = a[j];
                a[j] = y;
            }
        }
    }
    for (i = n -1; i >=0; i--)
    {
        p = L1->next;
        if (i > 0)
            while (a+i == a+i-1)
            {
                i--;
            }
        for (j = 1; j <= n; j++)
        {
            if (a[i] == p->sum)
            {
                printf("第%d名%s:%d分\n", z, p->sch, p->sum);
                z++;
            }
            p = p->next;
        }
    }
}
 

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4. typedef struct Lnode
  5. {
  6. char sch[20];//学校名称
  7. int num, schsum, sum;//学校总分,男团体总分,女团体总分
  8. struct Lnode* next;
  9. }Lnode, * LinkList;
  10. typedef struct Lnode1
  11. {
  12. char sch[20];//项目名称
  13. char sch1[20], sch2[20], sch3[20], sch4[20], sch5[20];//该项目前5名学校名称
  14. int num1, num2, num3, num4, num5;//该项目前5名学校分数
  15. struct Lnode1* next;
  16. }Lnode1, * LinkList1;
  17. int a[20];
  18. //输入各学校名称
  19. void schoolname(LinkList& L1, int n)
  20. {
  21. int i;
  22. LinkList p, q;
  23. L1 = (LinkList)malloc(sizeof(Lnode));
  24. printf("请输入%d个学校的名字:\n", n);
  25. p = (LinkList)malloc(sizeof(Lnode));
  26. if (L1 == nullptr ||p==nullptr)
  27. {
  28. printf("未分配内存!");
  29. }
  30. else
  31. {
  32. L1->next = p;
  33. scanf("%s", &p->sch);
  34. for (i = 1; i <n; i++)
  35. {
  36. q = p;
  37. p = (LinkList)malloc(sizeof(Lnode));
  38. scanf("%s", &p->sch);
  39. q->next = p;
  40. }
  41. }
  42. }
  43. //输入男子运动项目名字
  44. void mansports(LinkList1& L2, int n2)
  45. {
  46. int i;
  47. LinkList1 r, s;
  48. L2 = (LinkList1)malloc(sizeof(Lnode1));
  49. printf("请输入这%d个项目的名字:\n", n2);
  50. r = (LinkList1)malloc(sizeof(Lnode1));
  51. if (L2 == nullptr || r == nullptr)
  52. {
  53. printf("未分配内存!");
  54. }
  55. else
  56. {
  57. L2->next = r;
  58. scanf("%s", &r->sch);
  59. for (i = 2; i <= n2; i++)
  60. {
  61. s = r;
  62. r = (LinkList1)malloc(sizeof(Lnode1));
  63. scanf("%s", &r->sch);
  64. s->next = r;
  65. }
  66. }
  67. }
  68. //女子运动项目
  69. void womansports(LinkList1& L3, int n3)
  70. {
  71. int i;
  72. LinkList1 r, s;
  73. L3 = (LinkList1)malloc(sizeof(Lnode1));
  74. printf("请输入这%d个项目的名字:\n", n3);
  75. r = (LinkList1)malloc(sizeof(Lnode1));
  76. if (L3 == nullptr || r == nullptr)
  77. {
  78. printf("未分配内存!");
  79. }
  80. else
  81. {
  82. L3->next = r;
  83. scanf("%s", &r->sch);
  84. for (i = 2; i <= n3; i++)
  85. {
  86. s = r;
  87. r = (LinkList1)malloc(sizeof(Lnode1));
  88. scanf("%s", &r->sch);
  89. s->next = r;
  90. }
  91. }
  92. }
  93. //学校总分排名
  94. void schoolrankings(LinkList& L1, int n)
  95. {
  96. LinkList p;
  97. int z = 1, i, j, y;
  98. printf("参加这次比赛的学校的总分排名:\n");
  99. p = L1->next;
  100. for (i = 0; i < n; i++)
  101. {
  102. a[i] = p->num;//将学校总分全部赋值给全局变量
  103. p = p->next;
  104. }
  105. for (i = 0; i < n - 1; i++)//交换法排序
  106. {
  107. for (j =i+ 1; j <n; j++)
  108. {
  109. if (a[i] > a[j])
  110. {
  111. y = a[i];
  112. a[i] = a[j];
  113. a[j] = y;
  114. }
  115. }
  116. }
  117. for (i = n-1 ; i >= 0; i--)//倒序
  118. {
  119. p = L1->next;
  120. if (i > 0)
  121. while (a+i==a+i-1)
  122. {
  123. i--;
  124. }
  125. for (j = 1; j <=n; j++)
  126. {
  127. if (a[i] == p->num)
  128. {
  129. printf("第%d名%s:%d分\n", z, p->sch, p->num);
  130. z++;
  131. }
  132. p = p->next;
  133. }
  134. }
  135. }
  136. //男子项目成绩排名
  137. void manrankings(LinkList& L1, int n)
  138. {
  139. LinkList p;
  140. int z = 1, i, j, y;
  141. printf("参加这次比赛的男子项目总分排名:\n");
  142. p = L1->next;
  143. for (i = 0; i < n; i++)
  144. {
  145. a[i] = p->schsum;
  146. p = p->next;
  147. }
  148. for (i = 0; i < n - 1; i++)//交换法排序
  149. {
  150. for (j = i + 1; j < n; j++)
  151. {
  152. if (a[i] > a[j])
  153. {
  154. y = a[i];
  155. a[i] = a[j];
  156. a[j] = y;
  157. }
  158. }
  159. }
  160. for (i = n -1; i >=0; i--)
  161. {
  162. p = L1->next;
  163. if (i > 0)//如果两个相等,直接下一个总分
  164. while (a+i == a+i-1)
  165. {
  166. i--;
  167. }
  168. for (j = 1; j <=n; j++)
  169. {
  170. if (a[i] == p->schsum)
  171. {
  172. printf("第%d名%s:%d分\n", z, p->sch, p->schsum);
  173. z++;
  174. }
  175. p = p->next;
  176. }
  177. }
  178. }
  179. //女子项目成绩
  180. void womanrankings(LinkList& L1, int n)
  181. {
  182. LinkList p;
  183. int z=1, i, j, y;//z从第一名开始
  184. printf("参加这次比赛的女子项目总分排名:\n");
  185. p = L1->next;
  186. for (i = 0; i < n; i++)
  187. {
  188. a[i] = p->sum;
  189. p = p->next;
  190. }
  191. for (i = 0; i < n - 1; i++)//交换法排序
  192. {
  193. for (j = i + 1; j < n; j++)
  194. {
  195. if (a[i] > a[j])
  196. {
  197. y = a[i];
  198. a[i] = a[j];
  199. a[j] = y;
  200. }
  201. }
  202. }
  203. for (i = n -1; i >=0; i--)
  204. {
  205. p = L1->next;
  206. if (i > 0)
  207. while (a+i == a+i-1)
  208. {
  209. i--;
  210. }
  211. for (j = 1; j <= n; j++)
  212. {
  213. if (a[i] == p->sum)
  214. {
  215. printf("第%d名%s:%d分\n", z, p->sch, p->sum);
  216. z++;
  217. }
  218. p = p->next;
  219. }
  220. }
  221. }
  222. int main()
  223. {
  224. int i, j, z, x, n, m, w;
  225. LinkList p, q, L1;
  226. LinkList1 r, s, L2 = NULL, L3 = NULL;
  227. do
  228. {
  229. printf("************************************\n");
  230. printf("****1 输入基本信息 ****\n");
  231. printf("****2 查询某校各个项目的成绩 ****\n");
  232. printf("****3 查询某个项目的结果 ****\n");
  233. printf("****4 结束程序 ****\n");
  234. printf("************************************\n");
  235. printf("请选择你的操作:\n");
  236. scanf("%d", &z);
  237. if (z == 2)
  238. {
  239. r = L2->next;
  240. printf("请输入你像查询学校的名字:\n");
  241. s = (LinkList1)malloc(sizeof(Lnode1));
  242. scanf("%s", &s->sch);
  243. for (i = 1; i <= m; i++)
  244. {
  245. if (strcmp(r->sch1, s->sch) == 0)
  246. printf("贵校荣获男子项目%s的第1名,他的成绩是:%d\n", r->sch, r->num1);
  247. if (strcmp(r->sch2, s->sch) == 0)
  248. printf("贵校荣获男子项目%s的第2名,他的成绩是:%d\n", r->sch, r->num2);
  249. if (strcmp(r->sch3, s->sch) == 0)
  250. printf("贵校荣获男子项目%s的第3名,他的成绩是:%d\n", r->sch, r->num3);
  251. if (strcmp(r->sch4, s->sch) == 0)
  252. printf("贵校荣获男子项目%s的第4名,他的成绩是:%d\n", r->sch, r->num4);
  253. if (strcmp(r->sch5, s->sch) == 0)
  254. printf("贵校荣获男子项目%s的第5名,他的成绩是:%d\n", r->sch, r->num5);
  255. r = r->next;
  256. }
  257. r = L3->next;
  258. for (i = 1; i <= w; i++)
  259. {
  260. if (strcmp(r->sch1, s->sch) == 0)
  261. printf("贵校荣获女子项目%s的第1名,他的成绩是:%d\n", r->sch, r->num1);
  262. if (strcmp(r->sch2, s->sch) == 0)
  263. printf("贵校荣获女子项目%s的第2名,他的成绩是:%d\n", r->sch, r->num2);
  264. if (strcmp(r->sch3, s->sch) == 0)
  265. printf("贵校荣获女子项目%s的第3名,他的成绩是:%d\n", r->sch, r->num3);
  266. if (strcmp(r->sch4, s->sch) == 0)
  267. printf("贵校荣获女子项目%s的第4名,他的成绩是:%d\n", r->sch, r->num4);
  268. if (strcmp(r->sch5, s->sch) == 0)
  269. printf("贵校荣获女子项目%s的第5名,他的成绩是:%d\n", r->sch, r->num5);
  270. r = r->next;
  271. }
  272. }
  273. if (z == 3)
  274. {
  275. printf("请输入你要查询的项目的名字:\n");
  276. s = (LinkList1)malloc(sizeof(Lnode1));
  277. scanf("%s", &s->sch);
  278. r = L2->next;
  279. for (i = 1; i <= m; i++)
  280. {
  281. if (strcmp(r->sch, s->sch) == 0)
  282. {
  283. if (strlen(r->sch4) == 0)
  284. printf("第1名%s,第2名%s,第3名%s\n", r->sch1, r->sch2, r->sch3);
  285. if (strlen(r->sch4) > 0)
  286. printf("第1名%s,第2名%s,第3名%s,第4名%s,第5名%s\n", r->sch1, r->sch2, r->sch3, r->sch4, r->sch5);
  287. }
  288. r = r->next;
  289. }
  290. r = L3->next;
  291. for (i = 1; i <= w; i++)
  292. {
  293. if (strcmp(r->sch, s->sch) == 0)
  294. {
  295. if (strlen(r->sch4) == 0)
  296. printf("第1名%s,第2名%s,第3名%s\n", r->sch1, r->sch2, r->sch3);
  297. if (strlen(r->sch4) > 0)
  298. printf("第1名%s,第2名%s,第3名%s,第4名%s,第5名%s\n", r->sch1, r->sch2, r->sch3, r->sch4, r->sch5);
  299. }
  300. r = r->next;
  301. }
  302. }
  303. if (z == 1)
  304. {
  305. printf("请输入参加这次比赛的学校个数:\n");
  306. scanf("%d", &n);
  307. schoolname(L1, n);
  308. q = L1->next;
  309. for (i = 0; i < n; i++)
  310. {
  311. q->num = 0;
  312. q->schsum = 0;
  313. q->sum = 0;
  314. q = q->next;
  315. }
  316. printf("请输入这次比赛男子项目的个数:\n");
  317. scanf("%d", &m);
  318. mansports(L2, m);
  319. r = L2->next;
  320. for (i = 1; i <= m; i++)
  321. {
  322. printf("如果此次%s比赛只取前3名的成绩请输入1,取前5名请输入2!\n", r->sch);
  323. scanf("%d", &z);
  324. printf("请输入第1名所来自的学校的名字和他该项目的成绩:\n");
  325. scanf("%s%d", &r->sch1, &r->num1);
  326. q = L1->next;
  327. for (j = 0; j < n; j++)
  328. {
  329. if (strcmp(r->sch1, q->sch) == 0)//比较r->sch1这个学校是不是q->sch这个学校,直接将结构体1与2连接起来
  330. {
  331. if (z == 1 || z == 2)
  332. {
  333. q->num = q->num + r->num1;
  334. q->schsum = q->schsum + r->num1;
  335. }
  336. /*if (z == 2)
  337. {
  338. q->num = q->num + r->num1;
  339. q->schsum = q->schsum + r->num1;
  340. }*/
  341. }
  342. q = q->next;
  343. }
  344. printf("请输入第2名所来自的学校的名字和他该项目的成绩:\n");
  345. scanf("%s%d", &r->sch2, &r->num2);
  346. q = L1->next;
  347. for (j = 1; j <= n; j++)
  348. {
  349. if (strcmp(r->sch2, q->sch) == 0)
  350. {
  351. if (z == 1 || z == 2)
  352. {
  353. q->num = q->num + r->num2;
  354. q->schsum += r->num2;
  355. }
  356. /*if (z == 2)
  357. {
  358. q->num += r->num2;
  359. q->schsum += r->num2;
  360. }*/
  361. }
  362. q = q->next;
  363. }
  364. printf("请输入第3名所来自的学校的名字和他该项目的成绩:\n");
  365. scanf("%s%d", &r->sch3, &r->num3);
  366. q = L1->next;
  367. for (j = 1; j <= n; j++)
  368. {
  369. if (strcmp(r->sch3, q->sch) == 0)
  370. {
  371. if (z == 1 || z == 2)
  372. {
  373. q->num = q->num + r->num3;
  374. q->schsum += r->num3;
  375. }
  376. /*if (z == 2)
  377. {
  378. q->num += r->num3;
  379. q->schsum += r->num3;
  380. }*/
  381. }
  382. q = q->next;
  383. }
  384. if (z == 2)
  385. {
  386. printf("请输入第4名所来自的学校的名字和他该项目的成绩:\n");
  387. scanf("%s%d", &r->sch4, &r->num4);
  388. q = L1->next;
  389. for (j = 1; j <= n; j++)
  390. {
  391. if (strcmp(r->sch4, q->sch) == 0)
  392. {
  393. q->num = q->num + r->num4;
  394. q->schsum += r->num4;
  395. }
  396. q = q->next;
  397. }
  398. printf("请输入第5名所来自的学校的名字和他该项目的成绩:\n");
  399. scanf("%s%d", &r->sch5, &r->num5);
  400. q = L1->next;
  401. for (j = 1; j <= n; j++)
  402. {
  403. if (strcmp(r->sch5, q->sch) == 0)
  404. {
  405. q->num = q->num + r->num5;
  406. q->schsum += r->num5;
  407. }
  408. q = q->next;
  409. }
  410. }
  411. r = r->next;
  412. }
  413. printf("输入比赛中女子项目的个数:\n");
  414. scanf("%d", &w);
  415. womansports(L3, w);
  416. r = L3->next;
  417. for (i = 1; i <= w; i++)
  418. {
  419. printf("如果此次%s比赛只取前3名的成绩请输入1,取前5名请输入2!\n", r->sch);
  420. scanf("%d", &x);
  421. printf("请输入第1名所来自的学校的名字和他该项目的成绩:\n");
  422. scanf("%s%d", &r->sch1, &r->num1);
  423. q = L1->next;
  424. for (j = 1; j <= n; j++)
  425. {
  426. if (strcmp(r->sch1, q->sch) == 0)
  427. {
  428. if (x == 1)
  429. {
  430. q->num = q->num + r->num1;
  431. q->sum = q->sum + r->num1;
  432. }
  433. if (x == 2)
  434. {
  435. q->num = q->num + r->num1;
  436. q->sum = q->sum + r->num1;
  437. }
  438. }
  439. q = q->next;
  440. }
  441. printf("请输入第2名所来自的学校的名字和他该项目的成绩:\n");
  442. scanf("%s%d", &r->sch2, &r->num2);
  443. q = L1->next;
  444. for (j = 1; j <= n; j++)
  445. {
  446. if (strcmp(r->sch2, q->sch) == 0)
  447. {
  448. if (x == 1)
  449. {
  450. q->num = q->num + r->num2;
  451. q->sum += r->num2;
  452. }
  453. if (x == 2)
  454. {
  455. q->num += r->num2;
  456. q->sum += r->num2;
  457. }
  458. }
  459. q = q->next;
  460. }
  461. printf("请输入第3名所来自的学校的名字和他该项目的成绩:\n");
  462. scanf("%s%d", &r->sch3, &r->num3);
  463. q = L1->next;
  464. for (j = 1; j <= n; j++)
  465. {
  466. if (strcmp(r->sch3, q->sch) == 0)
  467. {
  468. if (x == 1)
  469. {
  470. q->num = q->num + r->num3;
  471. q->sum += r->num3;
  472. }
  473. if (x == 2)
  474. {
  475. q->num += r->num3;
  476. q->sum += r->num3;
  477. }
  478. }
  479. q = q->next;
  480. }
  481. if (x == 2)
  482. {
  483. printf("请输入第4名所来自的学校的名字和他该项目的成绩:\n");
  484. scanf("%s%d", &r->sch4, &r->num4);
  485. q = L1->next;
  486. for (j = 1; j <= n; j++)
  487. {
  488. if (strcmp(r->sch4, q->sch) == 0)
  489. {
  490. q->num = q->num + r->num4;
  491. q->sum += r->num4;
  492. }
  493. q = q->next;
  494. }
  495. printf("请输入第5名所来自的学校的名字和他该项目的成绩:\n");
  496. scanf("%s%d", &r->sch5, &r->num5);
  497. q = L1->next;
  498. for (j = 1; j <= n; j++)
  499. {
  500. if (strcmp(r->sch5, q->sch) == 0)
  501. {
  502. q->num = q->num + r->num5;
  503. q->sum += r->num5;
  504. }
  505. q = q->next;
  506. }
  507. }
  508. r = r->next;
  509. }
  510. p = L1->next;
  511. printf("参加这次比赛的学校的成绩为:\n");
  512. for (i = 0; i < n; i++)
  513. {
  514. printf("%s:总分:%d分,男子团体总分:%d,女子团体总分:%d分\n", p->sch, p->num, p->schsum, p->sum);
  515. p = p->next;
  516. }
  517. schoolrankings(L1, n);
  518. manrankings(L1, n);
  519. womanrankings(L1, n);
  520. }
  521. } while (z != 4);
  522. printf("\n");
  523. return 0;
  524. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/812889
推荐阅读
相关标签
  

闽ICP备14008679号