版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 《Web技術(shù)與應(yīng)用》課程設(shè)計(jì)</p><p> 題 目 選課注冊(cè)管理系統(tǒng) </p><p><b> 選課注冊(cè)管理系統(tǒng)</b></p><p> 摘要:隨著在校大學(xué)生人數(shù)的不斷增加,教務(wù)系統(tǒng)的數(shù)據(jù)量也不斷的上漲。針對(duì)學(xué)生選課這一環(huán)節(jié),本系統(tǒng)從學(xué)生網(wǎng)上自主選課以及教師的課程發(fā)布兩個(gè)大方
2、面進(jìn)行了設(shè)計(jì),基本實(shí)現(xiàn)了學(xué)生的在線信息查詢、選課功能以及教師對(duì)課程信息發(fā)布的管理等功能,另外也初步解決了教師在課程信息發(fā)布管理上的權(quán)限問(wèn)題。本程序前臺(tái)采用JSP(Java Server Pages)進(jìn)行頁(yè)面制作,后臺(tái)由MYSQL數(shù)據(jù)庫(kù)支持,通過(guò)使用JAVA語(yǔ)言實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁(yè)的效果,達(dá)到對(duì)數(shù)據(jù)庫(kù)的操作以完成使用者的要求。本文中除了有對(duì)程序的總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、功能實(shí)現(xiàn)等主體部分外,在這之前還介紹了與網(wǎng)上選課系統(tǒng)相關(guān)的信息管理系統(tǒng)、網(wǎng)絡(luò)編程技
3、術(shù)、JAVA編程語(yǔ)言、MYSQL數(shù)據(jù)庫(kù)等的基本內(nèi)容及發(fā)展情況。 關(guān)鍵詞:選課系統(tǒng);系統(tǒng)管理;JAVA;JSP;MYSQL</p><p><b> 1 引言</b></p><p> 學(xué)生選課注冊(cè)系統(tǒng)是一個(gè)學(xué)校不可缺少的部分,該系統(tǒng)可以快速方便的使學(xué)生完成課程的選修及選修課程的管理,讓管理員方便的管理選修課和設(shè)置選修時(shí)間,教師也可以查看自己代的選修課和給學(xué)
4、生錄入成績(jī)。</p><p> 1.1主要功能及要求</p><p><b> ?。?)系統(tǒng)用戶</b></p><p> 本系統(tǒng)的用戶是學(xué)校的學(xué)生、教師和管理員。學(xué)生使用本系統(tǒng)查詢新學(xué)期將開(kāi)設(shè)的課程和授課教師的情況,選擇自己要學(xué)習(xí)的課程,并進(jìn)行登記注冊(cè)。教師使用本系統(tǒng)查詢新學(xué)期將開(kāi)設(shè)的課程、參加聽(tīng)課的學(xué)生情況。教學(xué)管理員使用本系統(tǒng)進(jìn)行教學(xué)
5、管理,包括課程管理和新學(xué)期的課程選課注冊(cè)管理。</p><p><b> ?。?)系統(tǒng)功能</b></p><p> 本系統(tǒng)負(fù)責(zé)新學(xué)期的課程選課注冊(cè)工作;應(yīng)提供的服務(wù)功能如下:</p><p> 錄入與生成新學(xué)期課程表:教學(xué)管理員在新學(xué)期開(kāi)始前錄入新學(xué)期課程,打印將開(kāi)設(shè)的課程目錄表,供師生參考選擇。若某課程的實(shí)際選課學(xué)生少于10人,則停開(kāi)該
6、課程,把該課程從課程目錄表中刪除;若某課程的選課學(xué)生多于30人,則停止選課。</p><p> 學(xué)生選課注冊(cè):新學(xué)期開(kāi)始前一周為選課注冊(cè)時(shí)間,在此期間學(xué)生可以選課注冊(cè),并且允許改變或取消注冊(cè)申請(qǐng)。</p><p> 查詢:可以查詢課程信息、學(xué)生選課信息和學(xué)生、教師信息。</p><p> 選課注冊(cè)信息的統(tǒng)計(jì)與報(bào)表生成:教學(xué)管理員對(duì)學(xué)生的選課注冊(cè)信息進(jìn)行統(tǒng)計(jì)(按
7、課程、按學(xué)生、按班級(jí))。</p><p> 1.2系統(tǒng)說(shuō)明(包括存儲(chǔ)內(nèi)容,系統(tǒng)輸入輸出,運(yùn)行環(huán)境等)</p><p> 本系統(tǒng)采用MySQL+Tomcat+MyEclipse編寫(xiě)的JSP選課注冊(cè)管理系統(tǒng),數(shù)據(jù)庫(kù)用Mysql構(gòu)建學(xué)生,教師,管理員表。本系統(tǒng)僅需要一臺(tái)裝有 Windows系統(tǒng)并裝有 Mysql數(shù)據(jù)庫(kù)和Tomcat服務(wù)器的計(jì)算機(jī)即可。對(duì)于軟件技術(shù)要求,本系統(tǒng)采用基于B/S 架
8、構(gòu)的JavaEE的WEB開(kāi)發(fā),頁(yè)面采用CSS樣式,Jsp,Javascript等頁(yè)面技術(shù)。</p><p> 系統(tǒng)分為三個(gè)角色:學(xué)生,教師,管理員。登陸用戶名為學(xué)號(hào),或者教師號(hào),password學(xué)生默認(rèn)為123(可修改),教師默認(rèn)為teacher(可修改)。管理員用戶名與密碼一直都為admin(具體詳細(xì)的用戶名與密碼見(jiàn)下面的信息表截圖)。</p><p><b> 2 系統(tǒng)設(shè)
9、計(jì)</b></p><p> 2.1系統(tǒng)模塊功能設(shè)計(jì)</p><p> 本系統(tǒng)分為三個(gè)模塊,分別是管理員模塊,教師模塊和學(xué)生模塊。以下為各功能模塊的詳細(xì)信息:</p><p> 圖1 系統(tǒng)關(guān)系功能模塊圖</p><p> 2.2系統(tǒng)各模塊功能分析</p><p><b> ?。?)登錄模塊
10、</b></p><p> 通過(guò)列表框可以分別選擇學(xué)生、教師和管理員三種用戶類型,根據(jù)不同的用戶類型,登錄后會(huì)進(jìn)入不同的管理模塊</p><p> 圖2 用戶登錄用例圖</p><p> (2)系統(tǒng)管理員模塊</p><p><b> 1)選課時(shí)間設(shè)置</b></p><p>
11、 系統(tǒng)管理員通過(guò)此項(xiàng)功能設(shè)置選課時(shí)間段—預(yù)選時(shí)間段和補(bǔ)選時(shí)間段,只有在選課時(shí)間段里,學(xué)生才可以選擇課程,不在此時(shí)間段,學(xué)生不能進(jìn)行選課操作。</p><p><b> 2)選修課程管理</b></p><p> 管理員可以進(jìn)行添加新的選修課、刪除選修課、修改選修課和查找選修課等操作</p><p><b> 3)添加新的選修課
12、</b></p><p> 在選課之前,管理員可以添加新的選修課,讓學(xué)生在選課期間進(jìn)行選修</p><p><b> 4)刪除選修課</b></p><p> 在選課之前,管理員可以取消某門(mén)選修課</p><p><b> 5)修改選修課</b></p><p
13、> 在選課之前,管理員可以修改某門(mén)選修課的信息</p><p><b> 6)查找選修課</b></p><p> 可以根據(jù)教師的員工號(hào)精確查找該教師所代選修課,也可以根據(jù)教師名稱和課程名模糊查詢選修課,不輸入查詢條件可以查詢所有選修課。針對(duì)查詢出的某門(mén)選修課,可以查看代課老師的信息和選修該課程的所有學(xué)生信息。在查看學(xué)生信息頁(yè)面可以修改學(xué)生的課程成績(jī)<
14、;/p><p><b> 7)密碼管理</b></p><p> 可以對(duì)學(xué)生、教師和管理員的密碼進(jìn)行修改,通過(guò)單選框確定要修改密碼的用戶類型</p><p> 圖3 管理員模塊功能用例圖</p><p><b> ?。?)教師模塊</b></p><p><b>
15、 1)查看所代課程</b></p><p> 教師用戶登陸系統(tǒng)后,可以查看所代課程的列表,可以查看某門(mén)課程的全體學(xué)生的信息并能錄入學(xué)生的成績(jī),成績(jī)可分批錄入,錄入后可顯示提交按鈕,進(jìn)行學(xué)生成績(jī)的提交,提交之前必須確認(rèn)填寫(xiě)的學(xué)生成績(jī)無(wú)誤,否則提交之后教師就無(wú)法修改學(xué)生的成績(jī),必須通過(guò)管理員進(jìn)行修改學(xué)生的成績(jī)</p><p><b> 2)修改密碼</b>
16、;</p><p> 教師可以修改自己的密碼</p><p> 圖4 教師模塊功能用例圖</p><p><b> ?。?)學(xué)生選課模塊</b></p><p><b> 1)選擇選修課程</b></p><p> 學(xué)生登陸系統(tǒng)后,在所有選修課程中可以選擇兩門(mén)選修課。
17、只有在選課時(shí)間段內(nèi)才可以使用該功能。在預(yù)選階段,該功能完成選修課程的預(yù)選,學(xué)生可以選擇所有選修課程,預(yù)選結(jié)束之后,系統(tǒng)開(kāi)始正選。對(duì)超過(guò)XX課程計(jì)劃招生人數(shù)的課程,系統(tǒng)自動(dòng)進(jìn)行抽簽,確定哪些學(xué)生選課成功,哪些學(xué)生選課沒(méi)有成功。選課不成功的可以進(jìn)行補(bǔ)選。在補(bǔ)選階段,該功能完成選修課程的補(bǔ)選,補(bǔ)選采用競(jìng)爭(zhēng)機(jī)制,系統(tǒng)會(huì)羅列出所有未滿的課程,讓學(xué)生進(jìn)行補(bǔ)選。</p><p><b> 2)查看學(xué)分</b&
18、gt;</p><p> 本功能完成學(xué)生對(duì)以前選修課程的成績(jī)和所獲學(xué)分的查看</p><p><b> 3)修改密碼</b></p><p> 學(xué)生可以修改自己的密碼</p><p><b> 4)查看已選課程</b></p><p> 選課開(kāi)始之后,學(xué)生可以通過(guò)查
19、看已選課程,了解本學(xué)期所選的選修課的信息</p><p> 圖5 學(xué)生模塊功能用例圖</p><p><b> 2.3主要數(shù)據(jù)字典</b></p><p> 1)學(xué)生表(student)</p><p> 2)教師表(teacher)</p><p> 3)管理員表(admin)<
20、/p><p><b> 2.4數(shù)據(jù)存儲(chǔ)設(shè)計(jì)</b></p><p> 本系統(tǒng)采用Mysql數(shù)據(jù)庫(kù),根據(jù)得到的關(guān)系建立二維表</p><p> 1)建立學(xué)生信息表:</p><p><b> 圖6學(xué)生信息表</b></p><p> 2)建立一個(gè)教師信息表:</p&
21、gt;<p><b> 圖7 教師信息表</b></p><p><b> 3)錄入課程:</b></p><p> 圖8 學(xué)生選課課程信息表</p><p><b> 4)錄入成績(jī):</b></p><p><b> 圖9 學(xué)生成績(jī)表<
22、/b></p><p><b> 2.5源代碼</b></p><p> 由于該系統(tǒng)代碼太多,現(xiàn)貼出主要功能代碼,首先是登陸核心代碼:</p><p> if(hasLogin(username, request)){</p><p> return mapping.findForward("fa
23、il");</p><p><b> }</b></p><p><b> //登錄的用戶類型</b></p><p> int type = Integer.parseInt(request.getParameter("select"));</p><p>&
24、lt;b> //學(xué)生登錄</b></p><p> if(type==1){</p><p><b> //學(xué)生登錄</b></p><p> Student student = studentDao.login(username, password);</p><p> //判斷是否登錄成功
25、</p><p> boolean flag = isLoginError(student, request);</p><p> //登錄失敗返回登錄頁(yè)面,顯示錯(cuò)誤信息</p><p> if(!flag){</p><p> return mapping.findForward("fail");</p&g
26、t;<p><b> }</b></p><p> //在session中記錄登錄的對(duì)象</p><p> request.getSession().setAttribute("login_student", student);</p><p> //在session中記錄登錄的類型</p>
27、<p> request.getSession().setAttribute("login_type", 1);</p><p> }else if(type==2){//教師登錄</p><p> Teacher teacher = teacherDao.login(username, password);</p><p>
28、 boolean flag = isLoginError(teacher, request);</p><p> if(!flag){</p><p> return mapping.findForward("fail");</p><p><b> }</b></p><p> reque
29、st.getSession().setAttribute("login_teacher", teacher);</p><p> request.getSession().setAttribute("login_type", 2);</p><p> }else{//管理員登錄Admin admin = adminDao.adminLogin(u
30、sername, password);</p><p> boolean flag = isLoginError(admin, request);</p><p> if(!flag){</p><p> return mapping.findForward("fail");</p><p><b> }
31、</b></p><p> request.getSession().setAttribute("login_admin", admin);</p><p> request.getSession().setAttribute("login_type", 3);</p><p><b> }<
32、/b></p><p> CookieUtils.addCookie(response, "login_id", username);</p><p> CookieUtils.addCookie(response, "login_type", type+"");</p><p> return
33、 mapping.findForward("success");</p><p><b> }</b></p><p> 系統(tǒng)查詢,刪除,增加功能核心代碼:</p><p> ------------------------查詢--------------------------------</p>&l
34、t;p> public ActionForward queryCourse(ActionMapping mapping, ActionForm form,</p><p> HttpServletRequest request, HttpServletResponse response)</p><p> throws Exception {</p><p&
35、gt; System.out.println("AdminCourseAction.query...");</p><p> String cid = request.getParameter("cid");</p><p> String cname = request.getParameter("cname");<
36、/p><p> String tname = request.getParameter("tname");</p><p> String tid = request.getParameter("tid");</p><p> System.out.println(tid);</p><p> //
37、根據(jù)要求查詢指定的所有課程</p><p> List<Course> courses = adminCourseService.queryAllCourseByRequired(new Date(System.currentTimeMillis()), cid, cname, tid, tname);</p><p> System.out.println(courses
38、);</p><p> //是否有該條件的課程</p><p> if(courses.isEmpty()){</p><p> request.setAttribute("isEmpty", 1);</p><p><b> }else{</b></p><p>
39、request.setAttribute("isEmpty", 0);</p><p> request.setAttribute("courses", courses);</p><p><b> }</b></p><p> request.setAttribute("cid"
40、;, cid);</p><p> request.setAttribute("cname", cname);</p><p> request.setAttribute("tname", tname);</p><p> request.setAttribute("tid", tid);</p
41、><p> return mapping.findForward("success");</p><p><b> }</b></p><p> ------------------------刪除--------------------------------</p><p> public A
42、ctionForward deleteCourse(ActionMapping mapping, ActionForm form,</p><p> HttpServletRequest request, HttpServletResponse response)</p><p> throws Exception {</p><p> System.out.
43、println("AdminCourseAction.deleteCourse...");</p><p> String courseid = request.getParameter("courseid");</p><p><b> //刪除指定的課程</b></p><p> boolean
44、 flag = adminCourseService.deleteCourse(Integer.parseInt(courseid));</p><p> //if(flag){</p><p> //return mapping.findForward("success");</p><p><b> //}<
45、;/b></p><p> ////TODO...</p><p> return mapping.findForward("success");</p><p><b> }</b></p><p> //------------------------增加------------
46、--------------------</p><p> public ActionForward insertCourse(ActionMapping mapping, ActionForm form,</p><p> HttpServletRequest request, HttpServletResponse response) {</p><p>
47、 System.out.println("AdminCourseAction.insertCourse...");</p><p> AdminCourseForm f = (AdminCourseForm)form;</p><p> //判斷課程編號(hào)是否已經(jīng)存在</p><p> boolean notexist = adminCour
48、seService.ifCidNotExist(f.getCid());</p><p> //已經(jīng)存在返回錯(cuò)誤信息</p><p> if(!notexist){</p><p> request.setAttribute("exist", 1);</p><p> request.setAttribute(&q
49、uot;fail", 1);</p><p> return mapping.findForward("fail");</p><p><b> }</b></p><p> //獲取所有指定星期未被使用的教室</p><p> List<Room> rooms = ro
50、omService.queryAllRoomUnUse(new Date(System.currentTimeMillis()).toString(), f.getWeek());</p><p> //判斷提交的教室是否在指定星期正被使用</p><p> boolean roomunuser = rooms.contains(roomService.queryRoomById(In
51、teger.parseInt(f.getRid())));</p><p> if(!roomunuser){</p><p> request.setAttribute("roomuse", 1);</p><p> request.setAttribute("fail", 1);</p><p&g
52、t; return mapping.findForward("fail");</p><p><b> }</b></p><p><b> //生成課程對(duì)象</b></p><p> Course course = getCourse(f.getCid(), f.getCname(), f.g
53、etStartDate(), f.getEndDate(), f.getCredit(), </p><p> f.getSchoolTime(), f.getWeek(), f.getTid(), Integer.parseInt(f.getRid()));</p><p> //判斷代課老師的編號(hào)是否存在</p><p> if(course.getTea
54、cher()==null){</p><p> request.setAttribute("tidnotexists", 1);</p><p> request.setAttribute("fail", 1);</p><p> return mapping.findForward("fail");
55、</p><p><b> }</b></p><p><b> //插入課程</b></p><p> boolean flag = adminCourseService.insertCourse(course);</p><p> if(!flag){</p><p&
56、gt; request.setAttribute("fail", 1);</p><p> return mapping.findForward("fail");</p><p><b> }</b></p><p> List<Room> roomList = roomService
57、.queryAllRoom();</p><p> request.setAttribute("rooms", roomList);</p><p> request.setAttribute("insertSucc", 1);</p><p> return mapping.findForward("succ
58、ess");</p><p><b> }</b></p><p> 課程的驗(yàn)證規(guī)則代碼:</p><p> <form-validation><formset> <form name="adminCourseForm"> <field property
59、="cid" depends="required"> <arg0 key="course.cid" /> </field> <field property="cname" depends="required"> <arg0 key="cour
60、se.cname" /> </field> <field property="startDate" depends="required, date"> <arg0 key="course.startDate" /> <!-- <arg1 key="2009-10-0
61、3" name="date" resource="false" /> --> <var> <!-- 驗(yàn)證課程開(kāi)課日期輸入格式是否正確 --> <var-name>datePattern</var-name> </p><p><b> 3 系統(tǒng)實(shí)現(xiàn)
62、</b></p><p> 首先啟動(dòng)Tomcat,成功之后發(fā)布,在瀏覽器地址欄中鍵入localhost:8080 /choosecoursesystem</p><p><b> 1)進(jìn)入系統(tǒng)界面:</b></p><p><b> 圖10 系統(tǒng)主界面</b></p><p>
63、2)選擇登陸身份,這里測(cè)試用管理員登陸,賬號(hào):admin;密碼:admin</p><p> 圖11 管理員主界面</p><p> 3)管理員可以進(jìn)行選課時(shí)間設(shè)置:</p><p> 圖12 選課時(shí)間設(shè)置成功界面</p><p> 4)管理員也可以進(jìn)行添加選修課,操作選修課如圖:</p><p> 圖13
64、添加選修課成功界面</p><p> 圖14 添加選修課失敗界面</p><p><b> 查詢</b></p><p> 圖15 查詢選修課界面</p><p><b> 修改</b></p><p> 圖16 修改選修課界面</p><p&g
65、t;<b> 刪除</b></p><p> 圖17 刪除選修課界面</p><p><b> 4 結(jié)束語(yǔ)</b></p><p> 學(xué)生選課注冊(cè)管理系統(tǒng)是一個(gè)學(xué)校不可缺少的部分,該系統(tǒng)可以快速方便的使學(xué)生完成課程的選修及選修課程的管理,讓管理員方便的管理選修課和設(shè)置選修時(shí)間,教師也可以查看自己代的選修課和給學(xué)生錄
66、入成績(jī)等。</p><p> 對(duì)我而言,經(jīng)過(guò)這次課程設(shè)計(jì),使我對(duì)java及web有了更深一步的了解,且不說(shuō)前面的環(huán)境變量,系統(tǒng)環(huán)境變量的部署問(wèn)題,就是后面的各種包都可以讓你忙上半天。而且該系統(tǒng)用上了很多技術(shù),其中“SSH”(struct,spring,hibernate)黃金組合架構(gòu)使程序效率更高。通過(guò)選用該系統(tǒng)的服務(wù)器—Tomcat5.X系列,使我了解到它不僅性能穩(wěn)定,而且是免費(fèi)的,更重要的是對(duì)apache的
67、深入了解深深地吸引了我。當(dāng)然,我要明白,懂的還有很多很多,這些這是前進(jìn)路上的一處風(fēng)景而已。</p><p><b> 參考文獻(xiàn):</b></p><p> [1] 劉廣珠.《高中生考試焦慮成因分析》.陜西師大學(xué)報(bào)(哲社版),1995,24(1):161-164.</p><p> [2] 鄭 霖 柴宗新 鄭遠(yuǎn)昌等.《四川省地理》.四川科
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 選課管理系統(tǒng)課程設(shè)計(jì)
- 選課管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生選課管理系統(tǒng)課程設(shè)計(jì)
- 3web編程學(xué)生選課系統(tǒng)課程設(shè)計(jì)
- 學(xué)生選課管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- web課程設(shè)計(jì)--課程管理系統(tǒng)
- 課程設(shè)計(jì)報(bào)告--學(xué)生選課管理系統(tǒng)
- 學(xué)生選課系統(tǒng)課程設(shè)計(jì)
- 學(xué)生選課系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)-模擬選課系統(tǒng)
- 學(xué)生選課系統(tǒng)課程設(shè)計(jì)
- 軟件工程課程設(shè)計(jì)-選課管理系統(tǒng)
- 數(shù)據(jù)庫(kù)選課管理系統(tǒng)課程設(shè)計(jì)
- vfp課程設(shè)計(jì)報(bào)告--學(xué)生選課管理系統(tǒng)
- 施工組織課程設(shè)計(jì)--學(xué)生選課管理系統(tǒng)
- 課程設(shè)計(jì)----學(xué)生選課管理
- 學(xué)生選課系統(tǒng)課程設(shè)計(jì)
- 信息管理系統(tǒng)課程設(shè)計(jì)_學(xué)生選課管理信息系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)--學(xué)生選課系統(tǒng)
- 學(xué)生選課系統(tǒng)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論