下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、超市收银系统设计分析系统整体架构超市收银系统图1从图1可以看出,系统框架很清晰,用户登录,根据用户权限的不同, 对应不同的操作方法, 操作对象为商品。但本系统要求使用 C/S框架结构来设计。C/S框架介绍:C/S结构,即大家熟知的客户机和服务器结构。C/S结构的基本原则是将计算机应用任务分解成多个子任务,由多台计算机分工完成,即采用“功能分布”原则。客户端完成数据处理,数据表示以及用户接口功能;服务器端完成 DBMS (数据库管理系统)的核心功能。这种客户请求服务、服务器提供服务的处理方式是 一种新型的计算机应用模式。Client和Server常常分别处在相距很远的两台计算机上,Client程
2、序的任务是 将用户的要求提交给Server程序,再将Server程序返回的结果以特定的形式显示给用户 ;Server程序的 任务是接收客户程序提出的服务请求,进行相应的处理,再将结果返回给客户程序。鉴于超市收银系统的特性,本系统不牵扯多个客户端,不需要线程同步。代码设计框架 因为使用C/S框架设计程序,因此有固定的设计步骤:项目包的设计:-SuperN arke tManageSyEtMH-与d0- me i t. cl i erit+ 1j Cli tntM客ilk javalCl i entJOpt. j ava-卜 uqe it, entityS JJ G&dds. j J LJ_| U
3、s er s. j aa -石 Gt. server 由| StrverOp t. j ava l+l JJ ServerTlread- java -:t uqe. i t. util由囚 Hit as. j *va+ _Jj SyCcnEtflikts. java J Tods, j ava B sys propsrti也国 卿 系统库J&vaSE-l. 7图2client包:主要由客户端操作界面类和客户端业务类组成,客户端操作类也就是客户端main方法类,主要负责引导用户操作,提供系统界面信息提示操作,包括:初始化登录视图、商品库存管理视图和收银管理视图;客户端业务类主要包括 处理客户端请
4、求 并将客户端请求打包发送给服务器的方法和一些辅助操作方法。处理库存管理员请求方法为:商品入库、商品出库、新增商品、查询全部商品和按编号查询商品;处理收银员请求方法为:扫描商品、修 改购买数量商品和结账。entity包:主要由系统所涉及的实体类组成,根据操作视图可以确定为用户类和商品类。门y phm 旧C TrecritD方 口01txt OCL1-Lk*帮*工.董陪2.退出茶琉 田地揖赛手】/士法金强*法*去俣*求* *金用尸名茹:11Q1 阐尸军中0000 用尸W3W科幡入槽谣!旨果去撤, 用尸名辕:11 口 1工用户番珂;1111图3用户信息ai-Li J.nc ”,中W&4八民|0不
5、= Dll LL 10 TY 修 04-4.+一/迎y柔舌询国理三城.士/才3.VWHA 4.SitBWAS .珞)由点信电基/11搭由行君酷怅:1,启幺人* .育晶出庠结/高品蜩2 : L-J一孑自由胃品,唐堂徨漏餐3:骷不H品!商总端W用品名持咫二单喻单位就一LD03肺就水有粒7.01,SLSC1004任吁单案;错2.570v7010H1青点芝麻油9. 521LD3E运用电看归呼1.513g2C01D07白玉内玛豆腐1. 口400g151 口口日百百芝冠酒9. 5125m20LDJS料李劫口牌6. 5-100g101 口口 6白玉11五弄2.4350g20询陈理由行的1t作:1.用RAK
6、E.白品出X3.4.);贱由品5 .带查海号电晶6*道由平出M5海号:,T图4商品信息server包:主要由服务器主流程类(线程类)和服务器(数据处理)业务类组成,服务器主流程类也即main方法类,主要负责接收客户端请求,并根据请求标志信息分配相应操作,最 后再将处理数据发送给客户端;服务器数据处理业务类主要由处理客户端请求的方法和商品信息库组成。util 包:util包为实用工具包,主要包括项目中一些工具类,主要包括数据处理类(加密、解密、数 据转换、特殊文件操作和数据打包)和常量类。本项目主要包括数据打包类、常量类和 proprties文件操作类。 文件:Properties文件是一个文本
7、文件;properties文件的语法有两种,一种是注释,一种是属性配置;注释:前面加上 #号;属性配置:以“键=值”的方式书写一个属性的配置信息。Properties类本身表示了对一种 Map结构的操作,properties文件本身就表示一个“键值对 的集合,因此,Properties类属于集合容器的家族,在使用前应该创建一个Properties的容器,实际上就是创建一个默认不带参数的Properties对象,通过别的方式给里面添加“键值对”。在本项目的作用主要用来配置服务器信息:主机名和端口号。2、项目设计知识点本项目主要设计关键知识点:类和对象,封装,继承,异常,集合和泛型,输入/输出多线
8、程和网络编程。3、代码编写思路创建项目创建Java包:客户端包,服务器包,实体包,实用工具包。创建配置文件:.properties文件或.xml文件。创建各Java包中的类文件:客户端包:客户端操作界面类和客户端业务类;服务器包:服务器主流程类(线程类)和服务器业务类(数据处理);实体包:根据具体项目情况创建;实用工具包:数据包类:主要储存客户端和服务器之间交互的关键数据,包括实体对象和逻辑判断标志 等;常量类:客户端和服务器之间需要共同使用的状态常量,一般为业务操作标识符和系统信息常量(正确、错误状态常量,配置信息常量)。工具类:一般为配置文件的操作类。编写个项目文件(由简入繁:单个功能实现
9、到全部功能拓展) 项目调试。具体代码分析文件编写该文件主要用户配置 socket套接字属性:主机名和端口号,在此配置信息为:CljJ SerfrtrOpt jtv* lL S*rvtrThrtd j wh T Dhlts.国 lyi proj ertis S3 .x HOT=localhost2PORIBSGB图5 sys信息实体类编写根据entity包分析可知:Goods类和Users类。Goods 类:SuppressWarnings (SGria.!)public class Goods implejnents Serializable private String goodsNumbs
10、r;privateStringgoodsMacneF/商品名称privatedoublegoodsPrice;/稻品单价priteStringgoadsVnit;商品单位|privateint goodsStock;,J福品数量图6 Goods类Users 类:SuppressWarnirLgs (,pserialv)public class Users implements Serializable private String userbJaTne;用户名称private String userPassword;/图7 Users类注:因为涉及到socket编程,因此两实体类均需要序列化。
11、实用工具包类编写数据包类(Datas类):因为该项目为超市收银系统,根据项目效果图可知,主要设计对象为:商品对象(goods),用户对象(user);为便于商品信息操作,创建商品集合,又因为牵扯到库存管理和收银两 个类,进而创建库存商品集合和购买商品集合;又因为牵扯到客户端和服务器端业务请求操作,因此创建业务操作标识变量:flag。具体内容如下:SuppressW3.rniTigs (r, serial1T)puBLio cla.es 口且七日二 implements Seri all z Able private String flag; if 址务愣作标识private Goods ood
12、s; / /, 商品对象private Users user; :用尸对藐private Ar rayList eumGooe.sliEt; / 1库存商品集合private A工匚己yLis七工Good3 touyGoodslist; 购买商品集含图8 Datas类CUeN U&n 与phhdt】.电,PE 露lUwid. mlTTiC TJRK 17寤扁若而品名机充工一林*境承量1D03修勒卡窗rt1. D1. 514。100 4旺4单工;2.570g70130 1吉口芝麻型9. bl25ml2U15CZ本羊消等内耳1,513g2 Ci D13C7白工二的W青1. D4 0 0gIS1DC
13、吉言至解期9.S122Q1 DC 5秣子及轲片fi. Q4 DQg10:IC 6白玉前营参2.435 Dg三口1010佳出赳茬第4.220 Oq4。调岂算误仃m即作:1.市晶“障工.浦晶出库3 .耨冷目2L独国土H-由品5.后我询号蚤词币品6.追比一事用is建可苗,金曲展 弓.餐羞指学r博修雇八加直泉看昌就西底存者瞟)班、* * 谓丸猩讨行?1慌世:1.帚县人屋2.有翳山Ji图9库存商品集合应用需求(10 Jd师仔节舁细7口97. n2, 5巧.12, 5如充桂呻l(t押十:1, 1玉苜同晶z.性收耕避一:.不昨 斗.潘书太削旱:37.51.当国籍并工,合号郁呼图10购买商品集合应用需求注:因
14、为 涉及到socket编程,Datas类需要序列化 工具类(Tools类文件):Tools文件主要用于操作文件,对文件操作之前,首先需要加载源文件(鉴于加载操作特殊 性(提前操作),使用static块来封装),然后才能读取文件中键对应的值。该类主要是用于读取 socket参数信息(host, port)。public class Tools (twite Prop&rtiiag j?- 下工。口穹Hi鲁声口;/.prorrtie日h件1:it ar-icfr)at-atlc3 ad (TooXa . 1 *ss .9工1才 saE&mMqi(*:&中皮g(口工 ”0片句匚 e1方m tiy:s
15、CQnRtK-T.SF5 rr -次甘ynn j : catoh LEneeption e!(e, p更ibic宕七属雷氏七也包n) j1.UE工特修黄二u已public 加工-L1.U Rt*LEg 11ALVIUjA ElrElJig 人屯yj 4 p, i P Eopf cy (Xsyk ?图11Propertis方法:void load(InputStream inStream) 从输入流中读取属性列表(键和元素对)。ClassLoader类:类加载器是负责加载类的对象。Inputstream getResourceAsStream(String name):返回读取指定资源的输入流。
16、常重类:由代码编写思路分析可知:常量类列表主要由以下几个部门组成:系统配置常量,系统信息反馈常量,系统操作常量,管理员操作常量,收银员操作常量。pdblio olasn sysconstanrs (门票盅星星publia staticfinal/trinqSrs_PHQPERTYNAME - wSpertiesj/1rt每public: Lttic工 itilSt ringS YSERVERPCR T = PC式I?,/JRs-fegVipublio staticfinalrtringSYS2HQSTNAME - “HOST,/力鼻飒口常修里氏任后氏翼定量 public stati
17、cf iniLrtri ngSYS SVCCESS - rPSUCCESSMl/作珏public: jiL*ticfituilSt ring5T三ERR3A 三 nERROR*/帝幅作飞星/半翦魔IL舞呈 public xlatiufituilSt KingSYS_LCGIN - 11 LG SIN H ;H及案惟件写星public !ttticfinalStringSYS ADMIN = ATM:Nrn物飞函笠录耳里public staticfinalstringSYS2USER ffUSER rH收锚负建录M号门招飞酝酎rs星 public staticfinalstringSYS_IMP
18、ORT = !,IMPORT ;n几或n曷睥怅电量publ i.afinalStringSYS2EXPORT 二 EXPORT ;H出蹲内宅Mi,国publia staticf iruiltring皿? = ADD;新中后品醉惟电身publ i a At.jiti cf i nalStringSYrilfDALL = hFINDAIjLm;f t到厮百商品掾世常用public staticirulWtr 工 MSYS2nD = FIND?f/东黑京台,用晶胞作为自如际除忙5且 publla ttic工工glLidSYS_SCAN = SCAN?n日,立昂用礼常哥publi acf i ha I
19、StringSY_UPDATA - lNUPDATA-i;/惆-EM阜苒眸rr烹血publla tticf ItialSYS- riiWEUY = FZNDBUT:/图12常量列表注:具体常量参数可以在具体编程中增加或删减。 客户端类编写 客户端操作界面类:客户端操作界面类主要完成如下工作:(1)用户登录(2)用户操作用户登录有两个选项:管理员和收银员;用户操作也分别按照管理员和收银员来展开。u魁,Lli trt 1.1 tvI Profrwi yilnMtvtj dhl 6,工,UJl _l12 W 54啊抄使ffl害十看空壬倏/*才育大小x12. ifffl系跖潘/满 a*K Kt*大酒
20、/证13奉丰 1/ 大大 *h*古*去去*/大才* TK *1 用尸名探:.I J 崩尸型码:I(JLI II名或者密码编上错湛,登录失11011用只受:11:1 * * *欢迎现景香埠留而座存管理事场H * * 席法提班的澡作:1 .前息入库 2 .璐品匕犀 3 .新慵高总4 一查询至即商品 7震委国寻音道商品 心退出图13管理员登录成功视图Client Java Application C:Fragram FilesJivajdlcl. B D_13binj4viw ext (2011-1欢迎使用百鸟超市育理系统* 7t *九*工聋陆2.退出系线太去太太太太去去去/太去去去去去去请选择数字
21、/ 2*用户名称:1001用户密码:0 L L 0r*欢迎登录春鸟超市收银系统夫*谙选择进行的操作:1 .扫描商品2修改数量3 .结赈 4 .退出jJ图14收银员登录成功视图鉴于登录操作只有两个选项,采用if-else编写较为快捷。具体代码截图如下:/制幅迫意也屈publ ic ircid lojzn ( ) while txue) cut*.*金京迪使用青鸟超市甘罡关於* * * );System,przn-ln (lhl ,曼需匚3 .退出登录”)iSgtea. gu 匚*print In(rt* * * * *吉寺择敬字 3* * *1;int. ch = i pput ,TieytIr
22、. t ;if (ch = 1) whiqto 於 | System + 7ui .pcint用户名 * fUajQd = input rneXw );sqt的, ?utnpi:int (用户帝罚:“;;jjmlJ - input. nest O ;Datas dataff =. dolcgin (n -.f pvri);i f (SyflConsTunt fl . ST5_.fiDMIX. ?r dai-B w , g*tFl *g () J ) cratT?AdminView ()?brk; ultio i1q. Sf“口3&*aqu-l*a匚口童 gatFlug f) j fcioatQ
23、Ucorviaw(): breaks else (Syatfrn. adt.printlCIBJB矍牙里眼! MJ ; also if (ch - 2)(s 1冶二白tn. an二.空r 士nt In :冏炉使屈本卷并? t K :;Systetr.,5xit(0); l会J_虫日:图15登录操作代码管理员操作和业务员操作选择较多,因此采用switch来实现较为合适,具体代码截图如下:/身用M毒甘理4MHi酉piihllG v&ld crBdxAdniLviw () (Wypt加 ou亡,pointing1*西*1*/“如号弄钿骨万乐南.也*中*/*曰); Hhlle true)(Sye-SM
24、 oue.println(AiM-fifi: 1.ftlLa.( 2.屯工山及3/值由 4T修由上耐& 5,帕冲lt号电由冷窑6,lEitJ j ini ch - inpiat .ncxtlnt () f 口上mn i cm f case 1;5,yst&tn-oc,prinz (Tfc上由昌立号:*) r String nuffihar = xrpLix next ();i E IJudge (nkUEber i ) (E mt a南p Fiat/丁 厚1 tint stc ck = irput - rextTnt l J ;Datm 石 GatraE = cipt. do Import (
25、rLUJEheEp stc-cs);if 5ykIZizm* ant.e. S2-JT_. qqUjifi |djat. go-tFLaq f ) | ) yatam. cu,u px inr Ln 191 AcEEtUjf * jSiKrWAllGQQ4fl-什 else Systsni. (PirtrHintln | g am先111号) iJi曰上身3$1七揖::,卜工Int二nw出Wn用品rf遑叼号3:断加的,*);7Row* 11GQ0烝 0 J)hreak靠g 日。2 i#ptvi#wo 工break iraQ 3taJiewC); break;HhowAllijOOdBO F图1
26、6管理员操作代码H的M期学理表好现用publiu void crtJjL&UtrViB ( i int ilag = 0?Sys tn. &ut.println (* * *忒磔曼百 5*31收睡岐* * * *);wlillu fLruu】(system, ejt, princln t bifflJSimQtfeit : 1. tJfii&Ji 2 一修政国培 3 .磊鹏 4 .iEtte Rj ;int ch - itij; At . next Int ();swlLcli (ctlj Icase L:5/strti. out .print 广场,i: “ J ;t-Lng =匕山由白 二
27、 Lnj. J.L. nuxt ();it (goodsJudge(scanNo)Goc3Q scaJiGoodjS imw Goodji tf ;二ui-Gnu.tiytCc jdKiiL:!: jl i LCuJibfol IDates eiatas = apt.docanscanGocdaj f (5yCun21jjit!i .SYS SUCCESS,j=i (dd-ttis .(.) ) J Eyeculil, juLZ_n”I:flag - 1jA_t x a yLi s t tsciij,l,Lt ,_131=.6 . qwtrEuyQdijdsLqb _); j j
28、aijEht* I. UGcinliEJl; els* tS y K . _Ui.Ljrj.n tJjl ; else tbreak;仃小与日2:If (flac - 1) t npdaT:Viei*r U ; 1eh 居:白k. ou:. println ”设小康七H%高品1 );)htjk;caso 3:it (fla = 1J CE&c kc?u Vj_te *f I) r图17收银员操作代码 main ()方法:原则上 main ()越简单越好,具体代码截图如下: main方法public static void main(String args) neu ClientMain ()
29、login ();|图18 main ()方法代码注:代码编写按如上模块来进行编写(登录方法,管理员操作方法,收银员方法),具体方法的实现依靠客户端业务类,本类中主要负责视图的引导和显示,可以分模块来进行编写和调试,遵循由简入繁原则。客户端业务类:客户端类的方法编写主要为满足客户端操作界面类的需求且需要实现与服务器端的信息交互(通过socket编程实现),因此具体代码包括登录信息的处理(方法) ,管理员视图下的 业务操作处理(方法),收银员视图下的业务操作处理(方法) ,以及业务操作过程需要的逻 辑操作方法的编写。具体代码截图如下:+ public Datas dologin(StringSt
30、ring pwd) 1n商丹人声小 pLdJllc Datas doimpctt (string nurabext Int stock) (口/ 商品出库+ pnhli c Dates doExpcrt (String rtnnhAr, int stoc:k /查看厮面商留+1 public Datas doFindAll () 口/按褊号有看商品+ public Goods doFind(String number) 口/新出同品+ public Datas doAdd (Goods gcods) -N扫嗡商品+ public Dats doScan(Goode goods) 匚f1直匍阉手
31、荷轴列表+ public ArrayList findBuylist () |J/修奴物要商品数呈4 pLblic Dates doUpdate (StirLng nuriber, int 曰七口ck: (| .|图19客户端业务方法因为需要使用socket编程来实现客户端与服务器的数据通信,因此需要socket的初始化和socket的关闭操作。具体代码如下:public void init0 ( tty LhlH.e= 1_L - ii- Socket (T3cl= .SysConstiiL j= . S i:rinteger .jzszrse2nEfTSCLs.1 Ue (Sys con
32、S tan 13 . E T3J ) tthis _ obj Out = new Dfa ectGutputStream ( sac Itet _ ge-tOutputS 1 ream ( ); .cL r; - nun CbjectlnpdLStieszLfGokHat . else Sy6匚包m.。匚.pisin七二n强生此整品.注选殍潟号3:新坦用品!; showAllGodds();) break;图22读取服务器返回数据并处理服务器类编写服务器主流程类:服务器主流程类也即线程类,本线程类采用继承Thread父类来实现。run()方法主要负责读取客户端发送过来的数据,提取业务操作常量标
33、识, 然后分别进行相应的操作,具体的数据处理依靠服务器业务类来实现,然后在将处理好的数据打包(Datas)发送给客户端,具体代码截图如下:try KZV9f3Q&k9Z 三 门5 S匚 Y二口底卜,:(工口方 CT口口15 .getva lue (sysconstants hyerm瓯port、)斌Sock at s-Qck&t = nixll;Ob jgctInputS trea.ni obj In = mil 1;Obi e ctOut pu t St rearc objoiz = nu 11; wfcuL le Ltub) sceke* - seirv,eTseik& . aecep*
34、() ; / ji/X&iEW.11t j Ixl iitsw 。上e匚tlr ut1导匕工Eduzi 1与匚匚k寻t. g匕二二put. 3tl工ediU . ) *objOuL - new Ob jectOutputSt.reajn(3-ocket-get0utpjtStre.inn ( j ? /圣映塞r品侵建安的咆握ddtdif; 二3匕 obj InzcidLjObjiQct ( i/ new J?冬罂业港打杂-.ServcOpt opt = nvw SEVxOpz();1 f (sysconstanta.SYLOGrequls (datas.gexFlag ()(,膈培Wi青曲?花
35、 int t = opt, aesTverLogin | datas aqetUser (J aetUserNajne ( fdatas.gezuser().ge tus e r Fas s wo rd () / 峙1: if (t = 1) 4datas - set.Flag (SysConstants - SYS_ADMTif t 卜 else i (t = 2) 1)(ysConetanLs . SJT5_i7SE);H *La* (.宫bLF131(SyCzkt- 31S_E班0R) w ttlsv if (SysConEtant s . 5rSIMjPCRTiSquiaLs jdat
36、 as , gzFl&9 ( H I ( 7 行吊库室作 Datas iptData3 = opt, import fdatas. getGoods (M ?if (iptData? = nwLIJ 图23读取客户端数据并进行相应的操作代码 else If (SysConstants B SZS FIequals (datas . get Flag ()Array 1 i st:Goc Li3;; = null r list = opt indBuy ();if (list = null) dstss, sei;Flag (syscinstants , 5YS 三三其匚三:; (ritasT
37、serzFlaq (SysCnst ant s . S 亨匚U&ES、;Hat ms,3日;ByGoodsLlst iItet);1)/写谜ok jQut . uiitactiject idt*sl ;ct j-u. close (k ?objlTi.rZc?e (:aceke- . -IQS3 (i ;I catcti (Exception e) f口 . pr: t 二七门上Trmcp 1;|图24将处理好的数据打包发送给客户端操作代码服务器业务类:服务器业务类主要包括两部分: 基础数据:用户信息(管理员和收银员的账号、 密码-ROM型), 库存商品信息(ROM型),购买商品信息(RAM型);处理客户端请求的数据处理方法。基 础数据以后可用数据库来保存处理。priViate stati o privatepriviit 而tdti 口 private stxitj o /乐高器物嗝AmROM型数据初始化采用 static块实现,一次执行,最先执行。具体代码截图如下:users userM/ 四银山口日日“百押号ArrayList suml 1st = nnw Ar ryLi 9t () ; / iTWe7iS Ar r ay L i 51 buy 11st = nrtw Ar
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年化工自动化控制仪表参考考前冲刺模拟题库附答案详解(轻巧夺冠)
- 2026年质量员之设备安装质量专业管理实务考前冲刺练习题(全优)附答案详解
- 包装3D打印工艺-洞察与解读
- 跨区域电网负荷预测-洞察与解读
- 污水处理厂施工质量保障计划
- 02提取车间2号生产线产品共线生产风险评估报告
- 施工现场脚手板安全防护措施
- 除草覆绿工程施工方案
- 2026江西省农业科学院园艺研究所编外招聘1人备考题库带答案详解
- 2026湖南长沙市第二医院(长沙市妇幼保健院河西分院)招聘92人备考题库及答案详解(各地真题)
- 2026年广东广州市高三二模高考数学试卷试题(含答案详解)
- 2025广东潮州府城文化旅游投资集团有限公司及其下属企业招聘8人笔试历年参考题库附带答案详解
- 2026山东日照银行烟台分行社会招聘备考题库完整参考答案详解
- 2026年高考历史高分冲刺学习指南
- 商场消防教育培训制度
- 心包积液诊疗指南(2025年版)
- 2025年四川省达州市中考物理模拟试题(试卷+解析)
- 2026浙江浙大圆正科技创新服务有限公司招聘中层管理人员1人笔试参考题库及答案解析
- 高考地理总复习《内外力作用对地表形态的影响》专项测试卷(带答案)
- 2026春教科版一年级下册科学《身边的物体》教案
- 《汽车轮毂单元》
评论
0/150
提交评论