下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学生成绩管理系统课程设计报告专 业:信息科学与工程学院 班级:电气信息类0916班姓名:坤指导教师:汤哲学号:0909091612课程设计报告一、课程设计题目 学生成绩管理系统1、需要处理的基础数据 学生基本信息: 如班级、学号、性别、年龄等。 学生选修课程的基本信息: 课程编号、课程名称、学分、考试成绩、平 时成绩、综合成绩(考试成绩 *0.7+平时成绩 *0.3 )等。主菜单2、系统的基本功能数据的录入: 如录入学生的基本信息, 以及该学生选修课程的基本信息; 数据的修改:如修改指定学号、或者指定的学生信息,或者修改其选修 课程信息;数据的插入:插入某个学生信息;数据的查询:如按学号查询、
2、按查询等;数据的删除:如删除指定学号、或者指定的学生及其选修课程信息; 平均成绩的计算:计算每个学生各门功课的平均成绩,并按平均成绩从 高到低的次序输出学生信息;列出不及格学生清单(学号、 、不及格的课程和成绩) 。3、链表struct stu /* 定义学生基本信息结构体 */int i; /* 以输入的顺序来确定的学生序号 */ char num11;char classnum5;char name128;char sex32;int age;float ave;struct stu *next;int n=0; /* 学生人数 */struct stu *head=0;struct st
3、u1 /* 定义学生选修课信息结构体 */ char lessonnum11;char lessonname256;float score;float testgrade;float commongrade;float grade;struct stu1 *next;int m;struct stu1 *amax_num ; /* 定义一个指针数组来记住课程链表地址 */ /* 数据的录入程序*/void create( void ) /* 建立学生基本信息链表 */n=0;struct stu *p1,*p2;char ch,ch1;struct stu1 *create1( void );
4、don=n+1;an=0;system("cls");p1=( struct stu *)malloc(LEN);printf("n 学号: ");scanf("%s",p1->num);printf("n 班级: "); scanf("%s",p1->classnum);printf("n : "); scanf("%s",p1->name) ;printf("n 性别 :"); scanf("%s&quo
5、t;,p1->sex);printf("n 年龄: "); scanf("%d",&p1->age);if (n=1)head=p1;else p2->next=p1;p2=p1;printf("n 是否输入选修课信息( y/n ) n"); fflush(stdin); /* 清空输入缓冲区 */ ch1=getchar();if (ch1='y'|ch1='Y')an=create1(); /* 根据序号来记忆课程链表地址 */ p1->i=n;system(&quo
6、t;cls");printf("n 是否继续输入另一学生信息 (y/n)n"); fflush(stdin); /* 清空输入缓冲区 */ ch=getchar(); while (ch='y'|ch='Y');p2->next=0;struct stu1 *create1( void ) /* 建立课程链表 */m=0;struct stu1 *p1,*p2;char ch;struct stu1 *head=0;dom=m+1; system("cls");p1=( struct stu1 *)mall
7、oc(LEM); printf("n 课程编号 :");scanf("%s",p1->lessonnum); printf("n 课程名称 :");scanf("%s",p1->lessonname); printf("n 学分 :");scanf("%f",&p1->score); printf("n 考试成绩 :");scanf("%f",&p1->testgrade);printf(&quo
8、t;n平时成绩:");sea nf("%f",&p1->co mmon grade);p1->grade=p1->testgrade*0.7+p1->co mmon grade*0.3;printf("n综合成绩:%-6.1f",p1->grade);if (m=1)head=p1;else p2->n ext=p1;p2=p1;printf("n是否继续输入另一课程信息(y/n)n");fflush(stdin);/*清空输入缓冲区*/ch=getchar(); while (c
9、h='y'|ch='Y');p2->n ext=0;return (head);二、设计思路界面:界面的显示由循环语句和 switch语句来控制完成-in xj晦奥岀 書删不退 1 3 ? 0息息息清信信信生清输入助能选極编£(0-e):K H:W ffil.exe数据的录入:运用链表进行数据的存储,由于要录入的数据有两种即学生的基本信息 和学生的选修课程信息,本系统采用两个链表分别存储数据, 采用数组将两个链表联系 起来,运用循环语句和判断语句来进行数据的录入。 作者感到本功能设计中的难点在于 将两个链表联系起来,解决方案是采用一个指针数组来将
10、第二个链表中每个节点地址存 储起来,进而将两个链表联系起来。_.P *1学号班级! 0916如曹呻性別哆g熱18是否输入选傕课唁息Cy/n)拽狗杵音半;信息的修改:本系统采用的是按学号查找信息,系统采用一个由判断语句和循环语句构成的查询函数struct stu *findn um( void)来提供信息存储地址;再按照地址来进行 修改,其中采用switch语句和循环语句来控制使系统能够提供选择修改的功能。在这 一功能的设计中,作者感到课程信息的修改中的添加课程信息功能是一个难点,解决方案是按插入方案来进行设计。K,界面.e we-IP 1修改学号"修改班圾乳修改姓名仁爆改侄前修改年齢
11、一幔改选燼谍程信息0-退出请输入功能选择编号(6-0 : 插入信息:本系统采用的是按学号顺序来进行插入的,在这一功能的设计中,首先在开辟一个结构体空间将插入学生的信息存储于其中, 在采用判断语句和循环语句来查找 该条信息应该插入位置的地址,将上一结点的下行指针指向本结点, 再将该节点的下行 指针指向下一个结点从而达到插入信息的目的。 在这一功能的设计中作者感到插入的具 体算法是个难点,本系统采用的教材书本上的方法。息 信体 貝09时16 生09字0916 * 9 9 V0 0 K 1 1 入号级JDljdK hte、焊 hl.EMe是否输人选僵课唁息("rC查询信息:本功能实现是调用
12、struct stu *findn um( void)函数查找该条信息的地址, 然后再采用for循环进行信息的输出,本功能的实现比较简单,难点在于对函数的调用 的灵活运用。删除信息:系统采用按学号删除的方案,在这一功能的设计中我没有采用直接调用 struct stu *findnum( void)函数,而是又重写查找地址程序,这是出于考虑系统功能 的更好实现而采用的举措。具体删除算法采用该节点上一个结点的下行指针直接指向该 结点下一个结点从而达到删除该结点的目的。在此功能的设计中,本作者感到难点不在于算法而在于思维设计的是否缜密。计算平均成绩:本功能的实现需要首先计算各个学生的平均成绩,再按照
13、平均成绩进 行排序。这两个过程的设计排序是个难点,因为本系统存储结构为链表,在排序方面较 数组有很大区别,在作者看来比较困难,解决方案是运用一个指针型数组将每个结点的 地址存在其中,再按照该指针指向的平均成绩来排序数组中的地址, 再按照数组中的地 址顺序来输出信息,间接达到排序的目的。0909091613诱程編号2班级0916班级091C 课曬性書97価胸闻0?r ,enm年龄平闾应绩1997.6500B2平吋咸绩综台威绩98,00090997.3000039«.AnHHAA9ft.AflAnAH学号0969e?lG09课程编号2老试成绩9S.OUMf)ev.uuuou年龄平均咸绩2
14、094.09Q060平时咸绩综台成绩9«.000009vv.uuuauvu.uuuuuu按仕意犍退岀不及格学生清单:判断语句和循环语句的结合运用以达到列出清单的目的,本功能的实 现 不 难, 难 在 于 准 确 控 制。保存到文件二、系统流程J 主函数界面 丿 I列出不及格学生清单四、程序代码#include<stdio.h>#include<stdlib.h>#include<string.h>#define LEN sizeof(struct stu)#define LEM sizeof(struct stu1)#define max_num
15、256struct stu /* 定义学生基本信息结构体 */int i; /* 以输入的顺序来确定的学生序号 */char num11;char classnum5;char name128;char sex32;int age;float ave;struct stu *next;int n=0;/*学生人数 */struct stu *head=0;struct stu1/* 定义学生选修课信息结构体 */char lessonnum11;char lessonname256;float score;float testgrade;float commongrade;float grad
16、e;struct stu1 *next;int m;struct stu1 *amax_num ;/* 定义一个指针数组来记住课程链表地址 */ /* 数据的录入程序 */void create(void) /* 建立学生基本信息链表 */n=0;struct stu *p1,*p2;char ch,ch1;struct stu1 *create1(void);don=n+1;an=0;system("cls");p1=(struct stu *)malloc(LEN); printf("n 学号: ");scanf("%s",p1-
17、>num);printf("n 班级: "); scanf("%s",p1->classnum);printf("n :"); scanf("%s",p1->name) ;printf("n 性别 :");scanf("%s",p1->sex);printf("n 年龄: ");scanf("%d",&p1->age); if(n=1)head=p1;else p2->next=p1;p2=p
18、1;printf("n 是否输入选修课信息( y/n) n");fflush(stdin); /* 清空输入缓冲区 */ ch1=getchar();if(ch1='y'|ch1='Y')an=create1(); /* 根据序号来记忆课程链表地址 */ p1->i=n;system("cls");printf("n 是否继续输入另一学生信息 (y/n)n");fflush(stdin); /* 清空输入缓冲区 */ ch=getchar();while(ch='y'|ch=
19、9;Y');p2->next=0;struct stu1 *create1(void) /* 建立课程链表 */m=0;struct stu1 *p1,*p2;char ch;struct stu1 *head=0;dom=m+1;system("cls");p1=(struct stu1 *)malloc(LEM); printf("n 课程编号 :");scanf("%s",p1->lessonnum);printf("n 课程名称 :");scanf("%s",p1-&
20、gt;lessonname);printf("n 学分 :");scanf("%f",&p1->score);printf("n 考试成绩 :");scanf("%f",&p1->testgrade);printf("n 平时成绩 :");scanf("%f",&p1->commongrade);p1->grade=p1->testgrade*0.7+p1->commongrade*0.3;printf("
21、n 综合成绩 :%-6.1f",p1->grade); if(m=1)head=p1;else p2->next=p1;p2=p1;printf("n 是否继续输入另一课程信息 (y/n)n");fflush(stdin); /* 清空输入缓冲区 */ch=getchar();while(ch='y'|ch='Y');p2->next=0;return(head);struct stu *findnum(void)char num11;struct stu *p1;struct stu1 *p2;char c;pr
22、intf("n 输入学生学号: "); fflush(stdin);gets(num);struct stu *fa;fa=head;if(head=0)printf("nlist nulln");goto end; while(strcmp(fa->num,num)!=0)if(fa->next=0)break; fa=fa->next; if(strcmp(fa->num,num)=0)return fa; else printf("%s can't be found!n",num);end:ret
23、urn 0;/* 查询信息模块 */void search(void)system("cls");char ch2;struct stu *findnum(void);struct stu *p;struct stu1 *p1; p=findnum();if(p=0)goto end;p1=ap->i; printf("n%17s"," 学号 ");printf("%15s"," 班级 ");printf("%16s","");printf(&quo
24、t;%15s"," 性别 "); printf("%15s"," 年龄 "); printf("n%17s",p->num); printf("%15s",p->classnum); printf("%16s",p->name) ; printf("%15s",p->sex); printf("%15d",p->age);printf("n* *");printf("
25、n%11s","课程编号");printf("%19s","课程名称");printf("%9s"," 学分");printf("%13s","考试成绩");printf("%13s","平时成绩"); printf("%13s"," 综合成绩 "); for(;p1!=0;)printf("n%11s",p1->lessonnum); pr
26、intf("%19s",p1->lessonname); printf("%9.1f",p1->score); printf("%13f",p1->testgrade);printf("%13f",p1->commongrade); printf("%13f",p1->grade); p1=p1->next;end:printf("n 按任意键退出 "); ch2=getchar();void modify(void)struct stu
27、*findnum(void); char selmenu,selmenu1; system("cls");char ch2;char ch3;char ch4;char ch6;char ch7;char ch8;struct stu *findnum(void);struct stu *p;struct stu1 *p1;struct stu1 *p2;char lessonno11;p=findnum();if(p=0)printf("n 按任意键退出 "); fflush(stdin); scanf("%c",&ch2)
28、;elseprintf("n%17s"," 学号 "); printf("%15s"," 班级 "); printf("%16s",""); printf("%15s"," 性别 "); printf("%15s"," 年龄 "); printf("n%17s",p->num); printf("%15s",p->classnum); print
29、f("%16s",p->name) ; printf("%15s",p->sex); printf("%15d",p->age);printf("n*");printf("n%11s","课程编号"); printf("%19s"," 课程名称 "); printf("%9s"," 学分"); printf("%13s"," 考试成绩 ")
30、; printf("%13s"," 平时成绩 "); printf("%13s"," 综合成绩 "); for(;p1!=0;)printf("n%11s",p1->lessonnum); printf("%19s",p1->lessonname); printf("%9.1f",p1->score);printf("%13f",p1->testgrade); printf("%13f",p1
31、->commongrade); printf("%13f",p1->grade);p1=p1->next;printf("n 按任意键开始修改 ");scanf("%c",&ch2);dosystem("cls");printf("nn");printf("ttt1. 修改学号 ");printf("tt2. 修改班级 n");printf("ttt3. 修改 ");printf("tt4. 修改性别
32、 n");printf("ttt5. 修改年龄 ");printf("tt6. 修改选修课程信息 n");printf("ttt0. 退出 ");printf("nttt 请输入功能选择编号( 0-6): "); scanf("%c",&selmenu);switch(selmenu)case '1':system("cls");printf(" 学号: %s",p->num);printf("n 输入新的
33、数据: "); scanf("%s",p->num);printf("n 修改成功! n 按任意键退出 "); fflush(stdin);scanf("%c",&ch8);break;case '2':system("cls");printf(" 班级: %s",p->classnum); printf("n 输入新的数据: "); scanf("%s",p->classnum);printf(&quo
34、t;n 修改成功! n 按任意键退出 "); fflush(stdin);scanf("%c",&ch8);break;case '3':system("cls");printf(" : %s",p->name); printf("n 输入新的数据: "); scanf("%s",p->name);printf("n 修改成功! n 按任意键退出 "); fflush(stdin);scanf("%c",&am
35、p;ch8);break;case '4':system("cls");printf(" 性别: %s",p->sex);printf("n 输入新的数据: "); scanf("%s",p->sex);printf("n 修改成功! n 按任意键退出 "); fflush(stdin);scanf("%c",&ch8);break;case '5':system("cls");printf("
36、 年龄: %d",p->age);printf("n 输入新的数据: "); scanf("%d",&p->age);printf("n 修改成功! n 按任意键退出 "); fflush(stdin);scanf("%c",&ch8);break;case '6':dosystem("cls");printf("nnttt1. 添加选修课程信息 ");printf("tt2. 修改已有课程信息 ");
37、printf("nttt0. 退出 ");printf("nttt 请输入功能选择编号( 0-2): "); fflush(stdin);scanf("%c",&ch6);if(ch6='0')break;if(ch6='1')p2=(struct stu1 *)malloc(LEM);printf("nttt 课程编号 :");scanf("%s",p2->lessonnum);printf("nttt 课程名称 :");sca
38、nf("%s",p2->lessonname);printf("nttt 学分 :");scanf("%f",&p2->score);printf("nttt 考试成绩 :");scanf("%f",&p2->testgrade);printf("nttt 平时成绩 :");scanf("%f",&p2->commongrade);p2->grade=p2->testgrade*0.7+p2-&g
39、t;commongrade*0.3;printf("nttt 综合成绩 :%-6.1f",p2->grade);p2->next=p1;ap->i=p2;p1=ap->i;printf("nttt 按任意键退出 ");fflush(stdin);scanf("%c",&ch7) ;if(ch6='2')if(p1=0)printf(" 无任何课程信息 ");goto end;printf("nn 输入要修改课程的编号: ");fflush(stdi
40、n);scanf("%s",lessonno);while(strcmp(p1->lessonnum,lessonno)!=0)if(p1->next=0)break; p1=p1->next; if(strcmp(p1->lessonnum,lessonno)=0) printf("n%11s","课程编号");printf("%19s","课程名称"); printf("%9s"," 学分");printf("%13s
41、","考试成绩");printf("%13s","平时成绩"); printf("%13s"," 综合成绩 "); printf("n%11s",p1->lessonnum); printf("%19s",p1->lessonname); printf("%9.1f",p1->score); printf("%13f",p1->testgrade); printf("%13
42、f",p1->commongrade); printf("%13f",p1->grade);printf("n 按任意键进行修改 "); fflush(stdin);scanf("%c",&ch3);dosystem("cls");printf("nn"); printf("ttt1. 修改课程编号 "); printf("tt2. 修改课程名称 n"); printf("ttt3. 修改学分 "); pr
43、intf("tt4. 修改考试成绩 n"); printf("ttt5. 修改平时成绩 "); printf("ttt0. 退出 ");printf("nttt 请输入功能选择编号( 0-5): ");scanf("%c",&selmenu1);switch(selmenu1)case '1':printf("n 输入新的课程编号: "); scanf("%s",p1->lessonnum);printf("n 修改
44、成功! n 按任意键退出 ");fflush(stdin);scanf("%c",&ch8);break;case '2':printf("n 输入新的课程名称: "); scanf("%s",p1->lessonname);printf("n 修改成功! n 按任意键退出 ");fflush(stdin);scanf("%c",&ch8);break;case '3':printf("n 输入新的学分: ");
45、scanf("%f",&p1->score);printf("n 修改成功! n 按任意键退出 "); fflush(stdin);scanf("%c",&ch8);break;case '4':printf("n 输入新的考试成绩: "); scanf("%f",&p1->testgrade);printf("n 修改成功! n 按任意键退出 "); fflush(stdin);scanf("%c",&
46、amp;ch8);break;case '5':printf("n 输入新的平时成绩: "); scanf("%f",&p1->commongrade); printf("n 修改成功! n 按任意键退出 "); fflush(stdin);scanf("%c",&ch8);break;p1->grade=p1->testgrade*0.7+p1->commongrade*0.3;while(selmenu1!='0');else printf
47、("找不到 sn",lessonno);end:printf("n 是否继续修改或添加另一选修课信息( y/n)"); fflush(stdin);scanf("%c",&ch4);while(ch4='Y'|ch4='y');while(selmenu!='0');/* 插入模块 */void insert(void)struct stu1 *create1(void) ;char ch5;system("cls");struct stu *p1,*p2,*
48、p;p1=p2=head;p=(struct stu *)malloc(LEN);printf(" 输入要插入的学生的学号: ");scanf("%s",p->num);if(head=0)head=p;p->next=0;else if(strcmp(p->num,head->num)<0)p->next=head;head=p;elsewhile(p1->next!=0&&strcmp(p->num,p1->num)>0) p2=p1; p1=p1->next;if(s
49、trcmp(p->num,p1->num)>0)p1->next=p; p->next=0;elsep2->next=p;p->next=p1;printf("n 输入插入学生的具体信息 ");printf("n 学号: %s",p->num);printf("n 班级: "); scanf("%s",p->classnum);printf("n :"); scanf("%s",p->name) ;printf(&q
50、uot;n 性别 :"); scanf("%s",p->sex);printf("n 年龄: "); scanf("%d",&p->age);printf("n 是否输入选修课信息( y/n)");fflush(stdin);scanf("%c",&ch5); p->i=n+1;if(ch5='y'|ch5='Y')an+1=create1();/* 清空输入缓冲区 */n+;/* 删除模块 */void del(voi
51、d) system("cls"); char no11;struct stu *p1,*p2;struct stu1 *p;char ch;p1=head;p2=head;printf("n 输入要删除学生信息的学号: "); scanf("%s",no);if(head=0)printf("list null");goto end; while(strcmp(p1->num,no)!=0)if(p1->next=0)break;p2=p1;p1=p1->next;if(strcmp(no,p1-
52、>num)=0)p=ap1->i;printf("n%17s"," 学号 "); printf("%15s"," 班级 "); printf("%16s",""); printf("%15s"," 性别 "); printf("%15s"," 年龄 "); printf("n%17s",p1->num); printf("%15s",p1-
53、>classnum); printf("%16s",p1->name) ; printf("%15s",p1->sex); printf("%15d",p1->age);printf("n* *");printf("n%11s","课程编号"); printf("%19s","课程名称"); printf("%9s"," 学分");printf("%13s&quo
54、t;,"考试成绩");printf("%13s","平时成绩"); printf("%13s"," 综合成绩 ");for(;p!=0;)printf("n%11s",p->lessonnum);printf("%19s",p->lessonname);printf("%9.1f",p->score); printf("%13.1f",p->testgrade); printf("%
55、13.1f",p->commongrade); printf("%13.1f",p->grade);p=p->next;printf("n 按任意键进行删除 "); fflush(stdin);scanf("%c",&ch);if(head=p1) head=p1->next;elsep2->next=p1->next; free(ap1->i);free(p1);-n;system("cls");printf("n 删除成功! ");
56、 printf("n 按任意键退出 "); scanf("%c",&ch);else printf("%s 找不到 !n",no); end:/* 求平均模块 */void average(void)system("cls");struct stu *p,*pa;struct stu *bmax_num=0;struct stu1 *p1;int k,j;float sum;char ch;if(head=0)printf("n 无学生信息,请先输入学生信息 ");goto end;fo
57、r(p=head;p!=0;p=p->next) /* 求每个学生的平均成绩 */p1=ap->i;if(p1=0)p->ave=0;elsefor(j=0,sum=0;p1!=0;j+)sum=sum+p1->grade; p1=p1->next;p->ave=sum/j;for(p=head,k=0;p!=0;k+)/* 把链表中各指针放入数组中 */bk=p;p=p->next;for(k=0;bk!=0;k+) /* 按照平均分的高低来存放各指针 */for(j=k+1;bj!=0;j+)if(bk->ave<bj->ave)
58、pa=bk;bk=bj; bj=pa;for(k=0;bk!=0;k+) /* 按顺序输出学生信息 */ p1=abk->i;printf("n%12s"," 学号 ");printf("%15s"," 班级 ");printf("%12s","");printf("%10s"," 性别 ");printf("%10s"," 年龄 ");printf("%12s",&qu
59、ot; 平均成绩 ");printf("n%12s",bk->num); printf("%15s",bk->classnum);printf("%12s",bk->name) ;printf("%10s",bk->sex);printf("%10d",bk->age);printf("%12f",bk->ave);printf("n%11s","课程编号"); printf("%
60、19s"," 课程名称 "); printf("%9s"," 学分"); printf("%13s"," 考试成绩 "); printf("%13s"," 平时成绩 "); printf("%13s"," 综合成绩 ");for(;p1!=0;)printf("n%11s",p1->lessonnum); printf("%19s",p1->lessonn
61、ame); printf("%9.1f",p1->score); printf("%13f",p1->testgrade); printf("%13f",p1->commongrade); printf("%13f",p1->grade); p1=p1->next;printf("n* *"end:printf("n 按任意键退出 ");fflush(stdin);scanf("%c",&ch);/* 求不及格清单模块
62、 */void falist(void)system("cls");int j,k;struct stu *p;struct stu1 *p1;char ch;for(p=head,k=0;p!=0;p=p->next)for(p1=ap->i,j=0;p1!=0;p1=p1->next)if(p1->grade<60)j+;k+;if(j!=0)printf(" : %s",p->name);printf("n 学号: %s",p->num);printf("n%11s"
63、,"课程编号");printf("%19s","课程名称");printf("%9s"," 学分");printf("%13s","考试成绩");printf("%13s","平时成绩");printf("%13s"," 综合成绩 ");for(p1=ap->i;p1!=0;p1=p1->next)if(p1->grade<60)printf("n%11s",p1->lessonnum);printf("%19s",p1->lessonname);printf("%9.1f",p1->score);printf("%13f",p1->testgrade);printf("%13f",p1->commongrade);printf("%13f",p1->grade);*");if(k=0)printf(" 不及格的清单为空 ."
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论