




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、2 / 23'.計算機程序設(shè)計基礎(chǔ)(C語言)課程設(shè)計題目:學(xué)生宿舍管理系統(tǒng)設(shè)計級: 計121號:20502120504 12C5C6 120505姓 名: 賈文超 楊曉紅 張永康 陸秀和指導(dǎo)教師: 劉喜梅孫強范周瑜2013年7月1日北京信息工程學(xué)院信息技術(shù)教學(xué)與實驗中心學(xué)生宿舍管理系統(tǒng)設(shè)計功能:實現(xiàn)簡單的學(xué)生宿舍基本信息管理,宿舍的 基本信息包括樓號、房間號、面積、所容納 人數(shù)、已入住人數(shù)等?;疽螅? .設(shè)計簡單的菜單,能夠進行系統(tǒng)功能選擇。2 .實現(xiàn)信息的錄入功能。3 .在已有信息的基礎(chǔ)上添加新的紀(jì)錄。4 .刪除指定房間號的記錄。5 .修改指定房間號的記錄。6 .實現(xiàn)信息的瀏覽功
2、能。7 .按房間號查詢功能。8 .按已入住人數(shù)排序功能。1 .學(xué)生宿舍管理系統(tǒng)概述 41.1 需求分析 41.2 基本功能 42 .學(xué)生宿舍管理系統(tǒng)總體設(shè)計 51.1 管理流程圖51.2 管理員操作 53.模塊戈份 61.1 第一選擇模塊 61.2 第二錄入模塊 71.3 第三添加模塊 81.4 第四刪除模塊81.5 第五修改模塊 91.6 第六瀏覽模塊 91.7 第七查詢模塊 101.8 第八排序模塊 114 .算法說明 115 .各函數(shù)模塊功能 111.1 各自定義函數(shù)功能 116 .程序測試 127 .結(jié)論 141.1對調(diào)試中主要問題進行總結(jié) 148 .體會及建議 148.1 對自己設(shè)計
3、進行評價,指出合理和不足之處,提出改進的方案 149 .學(xué)生宿舍管理系統(tǒng)設(shè)計參與者 141.1 小組成員信息 141 .學(xué)生宿舍管理系統(tǒng)概述高校學(xué)生宿舍管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護以及前端應(yīng)用程序的開發(fā)兩個方面。對于前端應(yīng)用程序的開 發(fā)則要求應(yīng)用程序能提供強大的數(shù)據(jù)操縱功能, 界面友好、使用簡單方便等特點。 舊的手工紀(jì)錄的宿舍管理方式已經(jīng)不能適應(yīng)高速 發(fā)展的信息化時代,新的宿舍管 理系統(tǒng)開發(fā)出來之后,學(xué)校的現(xiàn)有的宿舍信息管理將有很大的改觀,由過去的人工方式轉(zhuǎn)變?yōu)橛嬎銠C方式,由效率低、數(shù)據(jù)冗余、易產(chǎn)生錯誤轉(zhuǎn)變?yōu)闄z索迅速、 查找方便、可靠性高、存儲量
4、大。這些優(yōu)點能夠極大地提高效率,也是學(xué)??茖W(xué)化、正規(guī)化管理的重要條件。學(xué)生宿舍管理系統(tǒng)對于一個學(xué)校來說是必不可少的組成部分。對于學(xué)生信息量比較龐大,需要記錄存檔的數(shù)據(jù)比較多的高校來說,人工記錄是相當(dāng)麻煩的, 而且當(dāng)查找某條記錄時,只能靠人工去一條條地查找,這樣不但麻煩而且效率非 常低。當(dāng)今社會是飛速進步的世界,計算機化管理正是適應(yīng)時代的產(chǎn)物。21世紀(jì)的今天,信息社會占著主流地位,計算機在各行各業(yè)中的運用已經(jīng)得到普及。 我們針對此,設(shè)計了一套學(xué)生宿舍管理系統(tǒng)。學(xué)生宿舍管理系統(tǒng)采用的是計算機 化管理,系統(tǒng)做的盡量人性化,使用者會感到操作非常方便,管理人員需要做的 就是將數(shù)據(jù)輸入到系統(tǒng)的數(shù)據(jù)庫中去。
5、由于數(shù)據(jù)庫存儲容量相當(dāng)大,而且比較穩(wěn) 定,適合較長時間的保存,也不容易丟失。這無疑是為信息存儲量比較大的學(xué)校 提供了一個方便、快捷的操作方式。本系統(tǒng)具有運行速度快、安全性高、穩(wěn)定性 好的優(yōu)點,還具有修改功能,能夠快速的查詢學(xué)校所需的住宿信息。1.2基本功能高校學(xué)生宿舍管理系統(tǒng)的開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護以及前端 應(yīng)用程序的開發(fā)兩個方面,但本課題要實現(xiàn)的是前端應(yīng)用程序的開發(fā)。在設(shè)計該 系統(tǒng)時,會盡可能地貼近我們學(xué)生,便于管理者操作。系統(tǒng)在實現(xiàn)上具有如下功 能:1 .設(shè)計簡單的菜單,能夠進行系統(tǒng)功能選擇。2 .實現(xiàn)信息的錄入功能。3 .在已有信息的基礎(chǔ)上添加新的記錄。4 .刪除指定房問號的
6、記錄。5 .修改指定房問號的記錄6 .實現(xiàn)信息的瀏覽功能7 .按房間號查詢功能8 .按已入住人數(shù)排序功能2.學(xué)生宿舍管理系統(tǒng)總體設(shè)計1.1管理流程圖4 / 23'.對系統(tǒng)可劃分為三層流程圖:第一層流程圖:輸入宿舍信息(房問號、樓號、容納 人數(shù)、手機號等)f 學(xué)生宿舍 , 管理系統(tǒng))第二層流程圖:第三層流程圖:12 / 23'.1.2第二錄入模塊1.3第三添加模塊開始1.6第六瀏覽模塊(與下圖1.7類似)1.7第七查詢模塊1.8第八排序模塊4 .算法說明數(shù)據(jù)類型(整形、實型、字符型、指針、數(shù)組、結(jié)構(gòu)等);運算類型(算術(shù) 運算、邏輯運算、自增自減運算、賦值運算等);程序結(jié)構(gòu)(順序結(jié)
7、構(gòu)、判斷選 擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu));大程序的功能分解方法(即函數(shù)的調(diào)用與使用)等,利用 數(shù)組對宿舍的記錄進行循環(huán)輸入輸出, 利用冒泡法記錄進行排序,利用循環(huán)查找 數(shù)組中某個數(shù)據(jù),對其進行顯示,刪除,讀入和寫入文檔等操作。5 .各函數(shù)模塊功能5.1 各自定義函數(shù)功能1、void insert()(錄入系統(tǒng)所需的數(shù)據(jù);將錄入的數(shù)據(jù)存儲在文件中)2、void seek()(按要求對數(shù)據(jù)進行查詢)3、void modify()(對數(shù)據(jù)進行更新操作)4、void del()(對數(shù)據(jù)進行刪除操作)5、void save()(對指定數(shù)據(jù)進行統(tǒng)計并輸出)6、void sort()(對指定數(shù)據(jù)排序并輸出)7、voi
8、d reveal()(對指定數(shù)據(jù)產(chǎn)生報表輸出)8、void menu()(功能目錄)6.程序測試顯示請選擇菜單編號請輸入待增加的宿舍數(shù)請輸入第1個宿舍的房間號輸入411316請輸入第1個宿舍的宿舍長請輸入第1個宿舍的樓號請輸入第1個宿舍的宿舍面積賈文超140請輸入第1個宿舍的房間容納人數(shù)請輸入第1個宿舍的宿舍成員6賈文超/陸秀和/楊曉紅/張永康/李正明/偉力請輸入第1個宿舍的手機號請輸入第1個宿舍的居住人數(shù)錄入完畢!請選擇菜單編號6結(jié)果:所有宿舍信息為:房間號宿舍長樓號宿舍面積房間容納人數(shù)1316賈文超 1406*宿舍成員手機號居住人數(shù)賈文超/陸秀和/楊曉紅/張永康/李正明/偉力6顯示請選擇菜
9、單編號輸入21.按房間號查詢2.按宿舍長查詢3.退出本菜單請選擇子菜單編號:1請輸入要查詢的宿舍的房間號:1316結(jié)果:房間號宿舍長樓號宿舍面積房間容納人數(shù)1316賈文超 1406*宿舍成員手機號居住人數(shù)賈文超/陸秀和/楊曉紅/張永康/李正明/偉力6顯示請選擇菜單編號請輸入要修改的宿舍的房間號輸入31316 請輸入新的宿舍面積1, 修改宿舍長2, 修改樓號3, 修改宿舍面積4, 修改房間容納人數(shù)5, 修改宿舍成員6, 修改手機號號碼7, 修改居住人數(shù)8, 退出本菜單請選擇子菜單編號:350請選擇子菜單編號:請選擇菜單編號86結(jié)果:房間號宿舍長樓號宿舍面積房間容納人數(shù)1316賈文超 1506*宿
10、舍成員手機號居住人數(shù)賈文超/陸秀和/楊曉紅/張永康/李正明/偉力67,總結(jié)1.1對調(diào)試中主要問題進行總結(jié)調(diào)試過程中,經(jīng)常會出現(xiàn)輸入或顯示為亂碼的情況,這往往是上下定義的數(shù)據(jù)類型不同或定義數(shù)組長度不夠所造成的。有時候程序中還會出現(xiàn)錄入五個數(shù)據(jù)而只顯示四個的情況,這也往往是由于定義的結(jié)構(gòu)體數(shù)組長度過低所造成的。像這類問題只要把數(shù)據(jù)類型都定義成字符型,并且定義一個合理的數(shù)組長度往往都能解決。在調(diào)試過程中我遇到最大的問題出現(xiàn)在刪除模塊。在運用“dormitory.txt ”打開文件并對某一數(shù)據(jù)進行刪除后,往往顯示會多顯示一行 數(shù)據(jù)。這是由于“ dormitory.txt ”寫數(shù)據(jù)時只會覆蓋數(shù)據(jù)而不會清
11、除原文件數(shù) 據(jù),因此文件最后一行數(shù)據(jù)總會保留在原文件中。后來我先用“dormitory.txt ”打開文件并讀取文件中的數(shù)據(jù),然后再用“ r”打開原文件將刪除后的數(shù)據(jù)重新寫入 文件,最終檢測運行成功。8.體會及建議1.1對自己設(shè)計進行評價,指出合理和不足之處,提出改進的方案本程序擁有很多的優(yōu)點:第一,它具有作為一個宿舍管理系統(tǒng)的各個功能, 包括 錄入信息、添加信息、修改信息、刪除信息、查詢信息、統(tǒng)計信息六大主要功能。 可以方便的進行住宿學(xué)生信息的管理。 第二,它的各個功能模塊在實現(xiàn)時非常方 便,例如:錄入和添加學(xué)生信息可以自己控制錄入和添加的人數(shù);統(tǒng)計學(xué)生信息可以分學(xué)號、班級、專業(yè)等進行統(tǒng)計等
12、等?!叭f事開頭難”這句話在我編寫程序的過程中得到了真正的體現(xiàn)。在最初編寫 的幾天里出現(xiàn)了這樣那樣的錯誤一大堆,這主要是由于我對基礎(chǔ)知識掌握不扎實 所造成的。但是隨后幾天里,我對課本知識進行了回顧并不時的向老師和同學(xué)進 行請教,慢慢的對編寫程序也開始得心應(yīng)手起來。程序的編寫總歸是一件費時費 力的事情,但只要我們認(rèn)真編寫和調(diào)試最后總能成功。短短的兩周實習(xí)時間我收獲頗多,我相信經(jīng)過這次實習(xí)必將為我以后的深入 學(xué)習(xí)打下扎實的基礎(chǔ)。9.學(xué)生宿舍管理系統(tǒng)設(shè)計參與者1.1 小組成員信息姓名院系班級學(xué)號賈文超信息工程學(xué)院機121120502陸秀和信息工程學(xué)院機121120506楊曉紅信息工程學(xué)院機121120
13、504張永康信息工程學(xué)院機121120505參考文獻:1.軟件工程導(dǎo)論 第四版 清華大學(xué)出版2. C#FF發(fā)實戰(zhàn)寶典王小科 編著 清華大學(xué)出版社3. C#FF發(fā)大全劉麗霞編著清華大學(xué)出版4 .百度知道5 .C# 與.net開發(fā)網(wǎng)附錄:源程序清單#include<stdio.h>/*I/O 函數(shù)*/#include<stdlib.h>/*其它說明 */#include<string.h>/*字符串函數(shù)*/#defineBUFLEN100/*緩沖區(qū)最大字符數(shù)*/#define LEN100 /*房間號和宿舍長最大字符數(shù),實際請更改*/#define N 1000
14、 /*最大宿舍人數(shù),實際請更改*/ struct apartment /* 結(jié)構(gòu)體 */ char room LENH; /* 房間號 */char dormitoryleader LEN+1; /* 宿舍長 */ int dormitory; /* 樓號 */ char area3; /* 宿舍面積 */ char hold LENH; /* 房間容納人數(shù) */ char member1000; /* 宿舍成員 */ char tel LENH; /* 手機號號碼 */ char livenumber30; /* 居住人數(shù) */ stu N int k=1,n,m; /* 定義全局變量*/
15、void readfile(); /* 函數(shù)聲明 */ void seek();void modify();void insert(); void del(); | void reveal(); void save(); void menu(); int main() while (k) menu();system( "pause"); return 0;void help() printf( "n0.歡迎使用宿舍系統(tǒng)幫助!n");printf( "n1.進入系統(tǒng)后,先刷新宿舍信息,再查詢;n");printf( "n2.按
16、照菜單提示鍵入數(shù)字代號;n");printf( "n3.增加宿舍信息后,切記保存按7;n");printf( "n4.謝謝您的使用!n"); void readfile() /* 建立信息 */char *p= "dormitory.txt" ;FILE *fp;int i=0;if (fp=fopen( "dormitory.txt" , "r" )= NULL printf( "Open error! Strike any key to exit!",p);sy
17、stem( "pause");exit(0);while (fscanf(fp, "%s %s%d%s %s %s %s %sStui.room,stui.dormitoryleader,&stui.dorm itory,stui.area,stui.hold,stui.member,stui.tel,stui.livenumber)=8) i+;i=i; fclose(fp); |n=i;printf("錄入完畢! n"); void seek() /* 查找 */int i,item,flag; |char s121;/*以宿舍長和
18、房間號最長長度+1為準(zhǔn)*/printf( "n");printf("1.按房間號查詢n"printf( -2.按宿舍長查詢-n"););printf( -3.退出本菜單-n"printf( "n"););while (1)printf("請選擇子菜單編號:");scanf( "%d",&item);flag=0;switch (item)case 1:printf("請輸入要查詢的宿舍的房間號:n");scanf( "%s",s
19、1);for (i=0;i<n;i+) |if (strcmp(stui.room,s1)=0)flag=1;printf("房間號宿舍長 樓號 宿舍面積房間容納人數(shù)n");printf("-'n");printf( "%0s %8s %3d %7s %11s n" ,stui.room,stui.dormitoryleader,stui.dormitory, stui.area,stui.hold);printf( "*n");printf("宿舍成員手機號居住人數(shù)n");pri
20、ntf("-'n");printf( " %0s %20s %8sn" ,stui.member,stui.tel,stui.livenumber);if (flag=0)printf("該房間號不存在!n" ); break;case 2:printf("請輸入要查詢的宿舍的宿舍長:n");scanf( "%s",s1);for (i=0;i<n;i+)|if (strcmp(stui.dormitoryleader,s1)=0)flag=1;printf("房間號宿舍
21、長 樓號宿舍面積房間容納人數(shù)n");printf("-'n");printf( "%0s %8s %3d %7s %11s n" ,stui.room,stui.dormitoryleader,stui.dormitory, stui.area,stui.hold);printf(,*手機號居住人數(shù)n");*n");printf("宿舍成員printf("-'n");printf( " %0s %20s %8sn" ,stui.member,stui.tel,
22、stui.livenumber);if (flag=0) |printf("該宿舍長不存在!n" ); break;case 3: return ;default :printf("請在 1-3 之間選擇 n");void modify() /* 修改彳言息*/int i,item,num; |char area13,s1LEh+1,s2 LEN+1; /* 以宿舍長和房間號最長長度 +1為準(zhǔn)*/printf("請輸入要修改的宿舍的房間號:n");scanf( "%s",s1);for (i=0;i<n;i+
23、)if (strcmp(stui.room,s1)=0) /* 比較字符串是否相等 */num=i;pnntf( "n");printf("1.修改宿舍長n");printf("2.修改樓號n");printf("3.修改宿舍面積n");printf("4.修改房間容納人數(shù)n");printf("5.修改宿舍成員n");printf("6.修改手機號號碼n");printf("7.修改居住人數(shù)n");printf("8.退出本
24、菜單n");printf("n");while (1)printf("請選擇子菜單編號:");scanf( "%d",&item);switch (item)case 1:printf("請輸入新的宿舍長:n");scanf( "%s",s2);strcpy(stunum.dormitoryleader,s2); break;case 2:printf("請輸入新的樓號:n");scanf( "%d",&stunum.dormit
25、ory); break;case 3:printf("請輸入新的宿舍面積:n");scanf( "%s",area1);strcpy(stunum.area,area1); break;case 4:printf("請輸入新的房間容納人數(shù):n");scanf( "%s",s2);strcpy(stunum.hold,s2); break;case 5:printf("請輸入新的宿舍成員:n");scanf( "%s",s2);strcpy(stunum.member,s2);
26、 break;case 6:printf("請輸入新的手機號號碼:n");scanf( "%s",s2);strcpy(stunum.tel,s2); break;case 7:printf("請輸入新的居住人數(shù):n");scanf( "%s",s2);strcpy(stunum.livenumber,s2); break;case 8: return ;default :printf("請在 1-8 之間選擇 n");void sort() /*按居住人數(shù)排序*/int i,j,*p,*q,s
27、;char temp100;for (i=0;i<n-1;i+)for (j=n-1;j>i;j-)if (strcmp(stuj-1.livenumber,stuj.livenumber)>0)strcpy(temp,stuj-1.room); |strcpy(stuj-1.room,stuj.room);strcpy(stuj.room,temp);strcpy(temp,stuj-1.dormitoryleader);strcpy(stuj-1.dormitoryleader,stuj.dormitoryleader);strcpy(stuj.dormitorylead
28、er,temp);strcpy(temp,stuj-1.area);strcpy(stuj-1.area,stuj.area);strcpy(stuj.area,temp);strcpy(temp,stuj-1.hold);strcpy(stuj-1.hold,stuj.hold);strcpy(stuj.hold,temp);strcpy(temp,stuj-1.member);strcpy(stuj-1.member,stuj.member);strcpy(stuj.member,temp);strcpy(temp,stuj-1.tel);strcpy(stuj-1.tel,stuj.te
29、l);|strcpy(stuj.tel,temp);strcpy(temp,stuj-1.livenumber);strcpy(stuj-1.livenumber,stuj.livenumber); strcpy(stuj.livenumber,temp);p=&stuj-1.dormitory;q=&stuj.dormitory;s=*q;*q=*p;*p=s; void insert。/* 插入函數(shù) */int i=n,j,flag;printf("請輸入待增加的宿舍數(shù):n");scanf( "%d",&m); do flag
30、=1; while (flag)flag=0;printf("請輸入第%d個宿舍的房間號:n" ,i+1);scanf( "%s",stui.room);for (j=0;j<i;j+)if (strcmp(stui.room,stuj.room)=0)printf("已有該房間號,請檢查后重新錄入!n");flag=1;break; /*如有重復(fù)立即退出該層循環(huán),提高判斷速度*/printf("請輸入第 %d個宿舍的宿舍長:n" ,i+1);scanf( "%s" ,stui.dormi
31、toryleader);printf("請輸入第%d個宿舍的樓號:n" ,i+1);scanf( "%d",&stui.dormitory);printf("請輸入第%d個宿舍的宿舍宿舍面積(mA2):n" ,i+1);scanf( "%s",stui.area);printf("請輸入第%d個宿舍的房間容納人數(shù):n" ,i+1);scanf( "%s",stui.hold);printf("請輸入第%d個宿舍的宿舍成員(注:人員之間加/):n"
32、,i+1); scanf( "%s",stui.member);printf("請輸入第%d個宿舍的手機號:n" ,i+1);scanf( "%s",stui.tel);printf("請輸入第%d個宿舍的居住人數(shù):n" ,i+1);scanf( "%s",stui.livenumber);if (flag=0) | i=i; i+; while (i<n+m); n+=m;printf("錄入完畢! n'n");sort(); void del() int i
33、,j,flag=0; char s1 LENH;printf("請輸入要刪除宿舍的房間號:n");scanf( "%s",s1);for (i=0;i<n;i+) |if (strcmp(stui.room,s1)=0) flag=1;for (j=i;j<n-1;j+) stuj=stuj+1;if (flag=0) |printf("該房間號不存在!n");if (flag=1) | printf("刪除成功,顯示結(jié)果請選擇菜單6n");n-; void reveal() int i;printf(
34、"所有宿舍的信息為:n");printf("房間號 宿舍長樓號宿舍面積房間容納人數(shù)n" ); |printf( "n");for (i=0;i<n;i+) -| printf( "%0s %7s %5d %5s %9s n" ,stui.room,stui.dormitoryleader,stui.dormitory, stui.area,stui.hold);27 / 23'.printf("*n")printf("宿舍成員手機號居住人數(shù)n");printf("-'n");for (i=0;i<n;i+) -|p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025租賃合同標(biāo)準(zhǔn)范本
- 護理帶教方法規(guī)范化培訓(xùn)體系
- 果酸換膚后續(xù)護理
- 人教版小學(xué)英語四年級第二冊期末檢測試卷
- 管理學(xué)組織結(jié)構(gòu)
- 腦血栓形成護理
- 遺傳性腎炎的臨床護理
- 幼兒園中班家訪工作總結(jié)模版
- 高中化學(xué)人教版晶體結(jié)構(gòu)與性質(zhì)知識點總結(jié)
- 山東省濟寧市兗州區(qū)2024-2025學(xué)年高二下學(xué)期期中考試英語試題
- 衛(wèi)星互聯(lián)網(wǎng)應(yīng)用與挑戰(zhàn)
- 《生物醫(yī)用陶瓷》課件
- 數(shù)據(jù)資產(chǎn)入表的探討與思考
- 浙江寧波鄞州區(qū)市級名校2025屆中考生物全真模擬試卷含解析
- 國家電網(wǎng)十八項重大反事故措施
- 院感教學(xué)課件
- 江蘇省南京市(2024年-2025年小學(xué)六年級語文)統(tǒng)編版期末考試(下學(xué)期)試卷及答案
- 【MOOC】溫病學(xué)-河南中醫(yī)藥大學(xué) 中國大學(xué)慕課MOOC答案
- 中國慢性阻塞性肺疾病基層診療指南(2024年)解讀
- 《汽車用改性聚丙烯車門外板》
- 欄桿拆除及更換施工方案
評論
0/150
提交評論