下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学生证的管理程序一C语言课程设计报告一、题目要求该程序应该具有下列功能:1、录入某位学生的学生证信息。学生证应该包照自含的信息请参己的学生证;2、给定学号,显示某位学生的学生信息;3、给定某个班级的班号,显示该班所有学生的学生证信息4、给定某位学生的学号,修改该学生的学生信息;5、给定某位学生的学号,删除该学生的学生信息;6、提供一些统计各类信息的功能。输入要求应用程序后,在屏幕上显示一个菜单。用户可以根据要求选定相应的操作项 目。进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。 输出要求1、应用程序运行后,要在屏幕上显示一个菜单;2、要求用户输入数据时,要给出清晰、明确的提示信
2、息,包括输入的数据内 容、格式及结束方式等。提示设计一个结构体类型和一维数组类型,用来保存学生证内容;二、需求分析根据题目要求,因为学生信息是一个有不同类型的变量组成,因此,应提供 结构体操作,在程序中需要浏览学生信息,应提供显示、查找、修改、删除、 统计等操作。另外还应该提供键盘式的选择菜单实现功能选择。三、总体设计学生证的管理程序主要包含学生信息的录入、修改、删除、查询、统计等模 块。为了各模块的独立性,将显示模块分别镶嵌在录入、修改、删除、查询、 统计等模块中。四、详细分析1、 主函数分析主函数的设计简洁,只提供加录入、修改、删除、查询、统计和显示等函数的调用和加载功能。其中各功能模块用
3、菜单方式选择。并将main(函数体内的界面选择部分部分语句单独抽出来做一个独立的函数,目的在于系统执行完每部 分功能模块后能更方便返回到系统界面。menu(函数从主函数中独立出来后,表面的主函数只是起一个程序开始的作用,其主要功能被独立出来的被调用的 menu(函数所取代。menu)函数主要完成菜单的输出和被选择的项目的输入 和相应执行函数的调用。并将已经拥有的信息从指定文件中读取到结构体st中,以便执行其他的功能性函数。成功后需要关闭文件。流程图程序 *menu*7menu(>int n,w,i,j。STU *st。FILE *fp。fp=fopen("student1.tx
4、t","wb+">。if(!fp>printf("Document error!">。exit(0>。elsefread(&i,2,1,fp> 。fclose(fp>。j=i+1。st=(STU*>malloc(j*sizeof(STU>>。 doprintf("ntt*MENU*nn”>printf("ttt1.Input information of studentn">。输入学生信息printf("ttt2.Inquiries
5、 information of studentn">/ 显示学生信息。printf("ttt3.Changes information of studentn">。修改学生信息printf("ttt4.Delete information of studentn"> 。 删除学生信息printf("ttt5.Statistic information of studentn">。 统计学生信息printf("ttt6.Exit"> 。 结束printf("nn2tt
6、*n”>printf("Choice your number(1-6> bbbbbbb">。scanf("%d",&n>。if(n<1&&n>6>w=1 o getchar(>。elsew=0 o free(st>。 while(w=1> o switch(n>case 1:input(i,st>。break。case 2:inquiries(i,st> break case 3:change(i,st> break case 4:delete(i
7、,st> break case 5:statistic(i,st> break case 6:exit(0> break 2、各功能模块设计(1)输入模块设计分析在向指定文件输出学生信息及录入信息前需要将输入的学生证号进行检测,该 检测是在结构体中st元素的学号项值比较而得出。如果已经存在的序号拒绝录 入,如果还没有输入的学生证号就按提示继续输入学生信息信息。输入成功后 显示刚输入的信息并将信息输出到指定文件的末尾。成功后将释放机构体指 针;关闭文件并返回到 menu<)函数继续选择并执行其他操作。流程图程序*input*/ void input(int k,STU *
8、st>int n,i 。FILE *fp。long boSTU student。bbbbbbb">。 输入学号bbbbbbbbb">。输入名字printf("Please input your number scanf("%ld",&b> ; printf("nPlease input your namescanf("%s",student_1.name> printf("nPlease input you sex male(1> or female(2>
9、 bbbbbbb">。/输入性别scanf("%d”,&student_1.sex>。printf("nPlease input you Classbbbbbbb">。输入班号scanf("%ld",&student_1.classes>printf("nPlease input you date of birth bbbbbbb"> 。输入出生日scanf("%ld",&student_1.birthofp=fopen("stud
10、ent1.txt","ab"。if(!fpprintf("Document error!"。exit(0。elsefprintf(fp,"%ld%s%d%ld%ld",b,student_1.name,student_1.sex,student_1.classes ,student_1.birth0printf("%ld%s%d%ld%ld",b,student_1.name,student_1.sex,student_1.classes,stu dent_1.birth0n=k+1orewind(fp。
11、fprintf(fp,"%d",n。fclose(fp。free(st。menu(。2、查询模块分析查询的主要方式就是通过学号查询,查询时需要通过输入学号并按学生信息储存逐个核对,如果出现发现相同信息则输出该同学的其他信息,没有发现相同的信息则提示未找到并返回到menu)函数继续选择并执行其他操作。该查询也是通过机构体st的元素项的比较得出。运行结束后需要关闭文件并释放机构体指针的空间。int i,j=0,n,p,w。 long a。do*INQUIRIE MENU*nn”>printf("ttt1.Inquiries school numbern"
12、;>。printf("ttt2.Inquiries classesn">。printf("ttt3.Inquiries date of birthn"> 。printf("nntt*n”>printf("ttt4.Back to menun">。printf("Choice your number(1-4> bbbbbbb">。scanf("%d",&n>。if(n<1&&n>4>w=1 o ge
13、tchar(>。 elseW=0owhile(w=1> oswitch(n>case 1:j=0 o printf("Please input your inquiries school number bbbbbbb">。scanf("%ld",&a>。for(i=0 o i<k o i+>if(sti.num=a>j=1p+printf("%ld%s%d%ld%ld",sti.num,,sti.sex,sti.classes,sti.birth> 。 if
14、(!j>printf("There is no this school number!">。 else printf("Success.There are %d student.",p> inquiries(k,st>。break。case 2:j=0 printf("Please input you class numberbbbbbbb”>。scanf("%ld",&a>。for(i=0 i<k i+> if(sti.classes=a>i=1p+printf
15、("%d%s%d%d%ld",sti.num,,sti.sex,sti.classes,sti.birth>。 if(!j>printf("There is no this Class!">。 elseprintf("Success.There are %d student.",p> inquiries(k,st>。break。case 3:j=0printf("Please input you date of birth bbbbbbb">。scanf(&quo
16、t;%ld",&a>。for(i=0。 i<k。 i+> if(sti.birth=a> i=1 o p+0printf("%d%s%d%d%ld",sti.num,,sti.sex,sti.classes,sti.birth>。 )if(!j>printf("There is no this date of birth!">。elseprintf("Success.There are %d student.",p> inquiries(k,st>
17、。break。case 4:free(st> menu(>。 break。3、修改模块分析修改一个学生的信息首先要利用学生证号在已经存储的信息中找到该学生的信 息并输出该学生的具体信息,再在阅读完信息之后选择所需要修改的信息。修 改成功之后需要将已经更改的信息输出到屏幕和指定文件保存。成功之后返回 到menu<)函数继续选择并执行其他操作。其中的信息比较也是通过输入学号 和机构体中的学号项逐个比较。流程图程序/*change*/void change(int k,STU *st> int a,i,n,w,j=0,p,q=0。FILE *fp。fp=fopen("
18、;student1","wb">。if(!fp>printf("Document error!"> exit(0>。printf("Plese input you change number bbbbbbb"> scanf("%ld",&a>。for(i=0 i<k i+>if(sti.num=a>j=1 p=ido*">printf("ntt*CHANGES MENU printf("nttt1.Chang
19、e Number">。修改学号printf("nttt2.Change Name">。修改名字printf("nttt3.Change Sex">。 修改性别printf("nttt4.Change classes">。修改班号printf("ntt*n">printf("nttt5.Change Date of birth">。修改出生日期 printf("nttt6.Back"> 。printf("nChoic
20、e your number(1-6> bbbbbbb"> scanf("%d",&n>。if(n<1&&n>6>w=1。getchar(>。else w=0 while(w=1> oswitch(n>case 1:printf("nPlease input your new number bbbbbbb"> scanf("%ld",&sti.num>。q=1。change(k,st>。break。case 2:printf
21、("nPlease input your new name bbbbbbbbb"> scanf("%s",>。q=1。change(k,st>。break。case 3:printf("nPlease input your right sexmale(M> or female(f>> bbbbbbb">scanf("%d",&sti.sex>。q=1。change(k,st>。break。case 4:printf("nPlea
22、se input your new classes bbbbbbb"> scanf("%ld",&sti.classes>。q=1。change(k,st> break。case 5:printf("nPlease input your right date of birthbbbbbbb">。scanf("%ld",sti.birth>。q=1。change(k,st>。break。case 6:rewind(fp>fprintf(fp,"%d",k。f
23、or(i=0 o iko i+fprintf(fp,"%ld%s%d%ld%ld",sti.num,,sti.sex,sti.classes,sti.birth 。 if(P printf("Thechangedinformationare:%ld%s%d%ld%ld",stq.num,,stq.sex,stq.classes,stq.birth。 free(st。fclose(fp。menu(。 if(!j printf("There is no this student"。free(st。menu(
24、。4、删除模块分析删除一个给定学号的学生的信息时需要在学号输入后在已经有的学生信息中逐个查找,发现该信息后直接将后一个结构体元素复制个被删除的元素,依次类推,直到倒数第二个元素被复制,这时将结构体的有效元素个数减1便完成该学生信息的删除。在删除成功后需要将被改变的学生信息输出到指定文件。成 功之后释放结构体空间,关闭文件并返回到menu)函数继续选择并执行其他操作。流程图程序/*delete*/delete(int k,STU *stint i,j,b o long a。 FILE *fp。 printf("Please input your delete school number
25、 bbbbbbb"> scanf("%ld",&a>。 for(i=0 o i<k o i+> if(sti.num=a>printf("Thedeletedinformationare:%ld%s%d%ld%ld",sti.num,,sti.sex,sti.classes,sti.birth>。 for(。i<k-1 o i+> sti.num=sti+1.num。 strcpy(,sti+1.name>。 sti.sex=sti+1.sex。 st
26、i.classes=sti+1.classes sti.birth=sti+1.birth。 j=k-1 o fp=fopen("student1","wb">。 if(!fp>printf("Document error!">。exit(0> o rewind(fp> fprintf(fp,"%d",j> 。 for(i=0 i<j i+>fprintf(fp,"%ld%s%d%ld%ld",sti.num,,sti.sex,st
27、i.classes,sti.birth> 。 free(st> fclose(fp> menu(> break elseprintf("There is no this schol number!">。 free(st> fclose(fp> menu(> 5、统计模块分析统计的主要项目有姓名、班级、性别和出生日期,并通过可输入菜单完成统计 项目的选择和相应功能的执行。在统计时是将输入的信息和结构体中的已有信 息进行比较,如果出现同样的信息便输出该同学的信息并进行记数统计。完成 后释放结构体指针空间,返回到 menu<)
28、函数继续选择并执行其他操作。 流程图程序*statistic*/void statistic(int k,STU *st> int n,w,i,b,p=0。long name10。doprintf("ntt*STATISTICMENU*nn">printf("ttt1.Name statisticn">。 printf("ttt2.classes statisticn">。printf("ttt3.Sex statisticn">。printf("ttt4.Dat
29、e of birth statisticn"> 。printf("ttt5.Back"> 。printf("nntt*n">printf("Choice your number(1-5> bbbbbbb">。scanf("%d",&n>。if(n<1&&n>5>w=1 。 getchar(>。elsew=0owhile(w=1> oswitch(n>case 1:printf("nPlease inp
30、ut you statistic name bbbbbbbbb"> scanf("%s",name> for(i=0 o i<k o i+>if(!strcmp(,name>>p+ Oprintf("%ld%s%d%ld%ld",sti.num,,sti.sex,sti.classes,sti.birth> 。)if(P>printf("There are %d students.",p>statistic(k,st>。case 2:
31、printf("nPlease input you classes bbbbbbb"> scanf("%ld",&a>。for(i=0 o i<k o i+>if(sti.classes=a>p+ oprintf("%ld%s%d%ld%ld",sti.num,,sti.sex,sti.classes,sti.birth> 。if(p>printf("There are %d students.",p>statistic(k,st>。ca
32、se 3:printf("nPlease input you statistic sex M or F bbbbbbb"> scanf("%d",&b>。for(i=0 o i<k0 i+>if(sti.sex=b>p + + oprintf("%ld%s%d%ld%ld",sti.num,,sti.sex,sti.classes,sti.birth> 。if(p>printf("There are %d students.",p>statis
33、tic(k,st>。case 4:printf("nPlease input you date of birthbbbbbbb">。scanf("%ld",&a>。for(i=0 o i<k o i+>if(sti.classes=a>p + + oprintf("%ld%s%d%ld%ld",sti.num,,sti.sex,sti.classes,sti.birth> 。if(p>printf("There are %d students."
34、;,p>statistic(k,st>。case 5:free(st为 menu(>。 )五、上机操作行有 注 iMW 疑有* Mi XK",装*11fli W1*1M=第* 有3*1. Input inf orrnat ion of student2BInquiries info>rn<ation of student3 .Changes information nf student4 .Delete infornation of student5 .Stat is tic inf oinat ion of st uderit6 .ExitChuice
35、 9out* nunbei*<l-6) 2* Mi* WMF MW NiW = NQU I RIE MENU 第 Mi = . * = *;1.1 nquit'ies school numbei*2 H Idniquiiies classes3.Inquiries date of birth4.Back to menuM 苴X JCHMMHMHMMWHW-KGhoice youir nuinber<l-4> 1Cho ice your numberCl-G> 2弁 XKMMMXM 寅 XMK'I NQU 1RI E M ENU喊XM1 .Inquirie
36、s schocil number2 BI oquipies c lasses3 UnquiFies date of biFth4 .Back to menuCho ice your nu.mber,<l4> E 1Please input your inquiries school number IS rhere is no this school nunberf*=*一*%* * NQURE MENU讲.*胃.一装.箫*11BIiiquiries school numbek2.1 inquiries c lasses3 Bloquipieg date of birth 4-Bac
37、k to menuCho Ice your numbei*<l-4) 1Cho ice youi' niimber<l-4> 1Please input your inquiries school nitimber 15There is nu this school nunbeF*N QU RIE M£NU1.Inquiries schoel number2.Inquiries classes3 B InqiJiiries date of birthi4.Back to menu* M M*-*M*M*HM M MM Mf1*+<*/ /帆M MCho
38、 ice yoiii* nuniberXl-l) 231Please input you icla后菩 ounher 72025 IbfrFe is no this Cl<ss!犀M* 舞 MMM?I N QU I RI E MENU XHMM 脏 MMMMM-XXX1 inquiries school number2.Inquiries classes3 BInquiries date of birth 4BBack to meouChoice your numbe尸1-4) JI皿 t5 Xhoice your numbev<l-4> 2Jlease input <
39、/ou class nunber 72025 CliEre is no this Class!KMKJCJIKJCMIOCWiMMHi NQU I RI E MENU MXHXNHMKMMKXMlJt1.1 inquiries school niiniber2. Inquiries classes3.Inquiries date of birth4.Back to menuCho ice your nunber<l-4> E 3Please input you date of birth1 8651rhere is no this date of birth?*骨一NQUIR E
40、MENU wkmmmhm mmmwmmm1BInquiries school ounber2.1oquIries classes3 B Inquiries date of birth 4.Back to menuCkoicc y。" 8111的尿肝14【】0- t5 XChoice your numberCl-4> 3Please input ijou date of blrtliL 865There is no< this date of birth?*M*M MJCM BtJCMNQU R I E M ENll1 . IriquiFies: school munbev
41、2 BInquiries classes3.Inquiries date of birth 4.Back to menmChoice your number<l-4> E 41. Input irtformat ion of student2Bloquiries informatioo of student3 .Clianges inf ormat ion of student4 .Delete information of student5 .Statistic infoimation of student 6 BExitdhnlce you片 nuRbeiri-6B. 9 X&
42、#167;iliMf- MFIf *注*1«-MiMTUXiM* X* K*城*CliD ice your niiPiber(l-6> 2St MM KMXNQU 1H 1 E MENU *"苴*-MM HMJI *1 . Imjuiries school number2 BInquiries classes3.Inquiri&s date of birth 4.Back to menuChoice your numbei*<l-4> E 41.Input informatIon of student2.Inquiries informatiort
43、 of student3 .Clianges inf ormat ion of s tudent 4aDelete informdtioini of student5 - Stat 1stic infomation of student6 .Exit匕JwicE your niiEberXl-611*7*11H*SiH<_KM7*3*t*H*MEhlll *HH*7*Ht*7*w*M*fs<_M*|t*31Ht7 .loput information of student8 . Inquiries infomat ion oF student9 .Changes inforrnat
44、 ion of student10 Delete informal:ion of studentS .Stat is tic iinf ormait ion of studentgChuice yourPlese inputThere is no11 Exitnumber(l-6) 31i/auL change numbepC 15this student梵:M.MXME MMi>E MM>E JKMXKMXIgMXM ENU MMX M理1.1 nput in Format ion of student1.2 nquiries information of student3 .C
45、hanges infopmation of student4 .Delete information of studant5 .Statistic inFai'iiatlor of student6 .Exit2(hnicE yournumbei*(l6)1 P12121212JCXHKM KK X KKMNKflENU HMHJtXMMNMMItlOIMMMiJHXMX1.Input information of student2 HInquiries infovmation of studeot3 .Changes infornatiom of student4 .Delete i
46、nformal:ioo of student5 .Statistic infarmacion of student6 HExitChoice your nunber<l, 4Please input your de lets schoo1 numbep 151There is no this schol number?Input infornation of student 2BIoQuii*ies infornation of studeot 3.Changes infornation of student 49Delete infornatioo of student5 .S tat
47、 1st ic inf ojrniat ion of studeot6 BExit2# ME * M; W 注 MiW -ME * * HE *MF* if * ME 注注 ME 注* iff if if * MiW 菁 BECho ic e yhour niiPib£i*l-6皿-|ax|There is no this ?chol nunber!K M MS K M . K M: X JWHHHHtfflENU1 . Input infomat ion of student2 BInquiries imformation of student3 .Changes inf orma
48、tion of stud>ent4 .Delete Informatioo of student:S .Stat is tic inf ormat.ion of student6.ExitCho ice your nuPiber(l-6) L 51H H H 甘一u-u-Itf-U-。-M*-H-U " r. u n T T T W T T fat I ' | I y 。g 父".父.廿痴.1 .Name statistic2 .classes statistic3-Sex statistic4.Date of birth statisticS.BackCJh
49、iiD ice your riLimbeird-S)* 11Please input you statistic naiiewangffel 1Pleas>e input you statistic sex M or Ft 1 JXX M 梵M MXM MM -TfilT I S T I C MENU1 .Nme statistic2 .classes statistic3 B Sex stat istic4BD«te of biFth stat 1stic4 .BackCho ice your* niimber<l-5)1 51. Input七 infoikmation
50、i of student2. loquiries informaition of student3. -Clianges inf ornat ion of s tudent4-Delete information of £七udeintS.Statistic information of student6.Exit2Cfio ice your nimber(l-6> 六、源程序#include<stdio.h>#include<malloc.h>#include<string.h>#include<stdlib.h>#define
51、 STU struct studentSTUlong num。char sexolong classes long birtho ° /*input*/ void input(int k,STU *st> int n,iFILE *fp olong bSTU student_1printf("Please input your number bbbbbbb">。scanf("%ld",&b>for(i=0 o i<k o i+>if(sti.num=b>printf("
52、nThe school number is repeat!n">。free(st>。menu(>。elseprintf("nPlease input your name bbbbbbbbb">scanf("%s",student_1.name>printf("nPlease input you sex male(1> or female(2>bbbbbbb">。scanf("%d”,&student_1.sex>。printf("nPlease
53、 input you Class bbbbbbb">。scanf("%ld”,&student_1.classes>printf("nPlease input you date of birth bbbbbbb">。scanf("%ld",&student_1.birth>。fp=fopen("student1.txt","ab">。if(!fp>printf("Document error!">。exit(0>
54、。elsefprintf(fp,"%ld%s%d%ld%ld”,b,student_1.name,student_1.sex,student_1.class es,student_1.birth>printf("%ld%s%d%ld%ld”,b,student_1.name,student_1.sex,student_1.classes,s tudent_1.birth>0n=k+1rewind(fp>。fprintf(fp,"%d",n>。fclose(fp>。free(st>menu(> )*inquirie
55、svoid inquiries(int k,STU *st> int i,j=0,n,p,w。long a。doprintf("ntt*INQUIRIE MENU*nn">printf("ttt1.Inquiries school numbern”>。printf("ttt2.Inquiries classesn”>。printf("ttt3.Inquiries date of birthn"> 。printf("ttt4.Back to menun"> 。printf(&quo
56、t;nntt*n”>printf("Choice your number(1-4> bbbbbbb">。scanf("%d",&n>。if(n<1&&n>4>w=1 o getchar(>。 elsew=0while(w=1>switch(n>case 1:j=0 o printf("Please input your inquiries school number bbbbbbb">。scanf("%ld",&a&g
57、t;。for(i=0 o i<ko i+>if(sti.num=a>j=1p+printf("%ld%s%d%ld%ld",sti.num,,sti.sex,sti.classes,sti.birth> 。 if(!j>printf("There is no this school number!">。 elseprintf("Success.There are %d student.",p> inquiries(k,st>。break。case 2:j=0 printf
58、("Please input you class number bbbbbbb”>。 scanf("%ld",&a>。for(i=0 i<k i+>if(sti.classes=a>i=1p+printf("%d%s%d%d%ld",sti.num,,sti.sex,sti.classes,sti.birth> 。 )if(!jprintf("There is no this Class!"。elseprintf("Success.There are %d student.",p inquiries(k,st。break。case 3:j=0printf("Please input you date of birth bbbbbbb"。 scanf("%ld",&a。for(i=0 ik i+if(sti.birth=ai=1 o p+0printf("%d%s%d%d%ld",sti.num,,sti.sex,sti.classes,sti.b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 贵州大学《结构力学B》2023-2024学年第一学期期末试卷
- 贵州财经大学《小学教育教学叙事研究》2023-2024学年第一学期期末试卷
- 2025青海省建筑安全员《B证》考试题库及答案
- 贵阳信息科技学院《教育史专题研究》2023-2024学年第一学期期末试卷
- 硅湖职业技术学院《计算思维导论》2023-2024学年第一学期期末试卷
- 2025甘肃建筑安全员-A证考试题库及答案
- 广州新华学院《物流与电子商务实验》2023-2024学年第一学期期末试卷
- 2025辽宁省建筑安全员A证考试题库
- 2025年湖南建筑安全员-A证考试题库附答案
- 中华诗词大赛题
- DB34T 3703.3-2021 长大桥梁养护指南 第3部分:定期检查工作验收
- 保洁突发事件应急预案
- 国土空间规划用途管制实施与研究
- 胆囊术后并发症护理
- 医疗废物暂存间消毒制度
- 2023-2024学年人教版高中信息技术必修二第二章第二节《 信息系统的开发过程》教案
- 2024六年级英语上册 Module 9 Unit 1 Do you want to visit the UN building教案 外研版(三起)
- 2024年广东省高中学业水平合格性考试语文试卷真题(含答案解析)
- 高技能公共实训基地建设方案
- DL∕T 1732-2017 电力物联网传感器信息模型规范
- 混凝土股东合同范本
评论
0/150
提交评论