




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、實(shí)驗(yàn)題目:學(xué)生成績管理系統(tǒng)一、 實(shí)驗(yàn)?zāi)康?. 熟悉c語言的編譯連接和運(yùn)行過程。2. 掌握c語言的數(shù)據(jù)類型,熟悉整型、實(shí)型、字符型變量的定義方式及如何給它們賦值。3. 掌握if語句及switch語句的運(yùn)用方法及嵌套應(yīng)用方法。4. 掌握實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的三種語句while、 do-while.、for 的使用。5. 掌握函數(shù)的定義方法和調(diào)用方法。6. 能夠采用模塊化思想調(diào)試程序。二實(shí)驗(yàn)內(nèi)容1. 編寫程序并進(jìn)行調(diào)試運(yùn)行。2. 輸入學(xué)生資料,并保存于文件。每個(gè)學(xué)生包含信息如:姓名、學(xué)號、性別、物理成績、數(shù)學(xué)成績、英語成績、計(jì)算機(jī)成績。3. 對已存入的學(xué)生信息進(jìn)行更新操作,包括更新學(xué)生信息信息、刪除某個(gè)學(xué)生
2、信息和修改學(xué)生信息。4. 通過按學(xué)生姓名的方式查詢學(xué)生信息。5.輸入某學(xué)生各門成績進(jìn)行統(tǒng)計(jì)。6 對學(xué)生物理成績排序。7.最后輸出學(xué)生信息,供需要時(shí)打印。 二、 需求分析1. 該程序可用于對學(xué)生的基本信息的存儲、更新、查詢、輸出、統(tǒng)計(jì)、排序等操作。2. 其中更新功能包括:添加信息、刪除信息、修改信息、可根據(jù)需要添加一個(gè)或多個(gè)學(xué)生 信息,也可對個(gè)別學(xué)生信息進(jìn)行適當(dāng)?shù)膭h除或修改。以便隨時(shí)更新學(xué)生信息。3. 程序中設(shè)計(jì)的查詢功能可根據(jù)需要從若干數(shù)據(jù)中查詢某信息,四、概要設(shè)計(jì)1、方案設(shè)計(jì)對系統(tǒng)進(jìn)行分析,給出結(jié)構(gòu)圖 分析:系統(tǒng)要求實(shí)現(xiàn)許多的功能,因此遵循結(jié)構(gòu)化程序設(shè)計(jì)思想來進(jìn)行本系統(tǒng)的設(shè)計(jì)自頂向下、逐步細(xì)
3、化,將系統(tǒng)設(shè)計(jì)任務(wù)分解出許多子功能模塊進(jìn)行設(shè)計(jì) 結(jié)構(gòu)圖如下:學(xué)生成績管理系統(tǒng)插入數(shù)據(jù)查看數(shù)據(jù)更新數(shù)據(jù)物理成績數(shù)學(xué)成績英語成績計(jì)算機(jī)成績統(tǒng)計(jì)成績成績排序輸入數(shù)據(jù)輸出數(shù)據(jù)更新數(shù)據(jù)刪除數(shù)據(jù)修改數(shù)據(jù)物理成績排序物 理 總 分 和 平均 分?jǐn)?shù)學(xué)總分和平均分英語總分和平均分計(jì)算機(jī)平均分顯示數(shù)據(jù)保存數(shù)據(jù)五 功能模塊的說明1 輸入初始學(xué)生信息:其中包括學(xué)生姓名,學(xué)號,性別,物理 數(shù)學(xué) 英語 計(jì)算機(jī)成績 等相關(guān)信息;可用函數(shù)cin(stu *p1)來實(shí)現(xiàn)此操作。2 查詢模塊:可用 stu *lookdata(stu *p1)來實(shí)現(xiàn)。找到就輸出此學(xué)生全部信息包括學(xué)生物理 數(shù)學(xué) 英語 計(jì)算機(jī)的成績 。3 插入模塊:
4、可用insert()來實(shí)現(xiàn)。其中通過學(xué)號的大小比較的,并且以此來排序。4 輸出學(xué)生的信息及成績:通過學(xué)生的姓名來查看學(xué)生的語文 數(shù)學(xué) 英語 計(jì)算機(jī)的有關(guān)成績,同時(shí)也可以分別通過paverage() maverage() eaverage() comaverage()來輸出物理 數(shù)學(xué) 英語 計(jì)算機(jī)等成績的平均分 最高分 最低分。5 退出系統(tǒng):可以用一個(gè)函數(shù)來實(shí)現(xiàn),首先將信息保存在文件中,釋放動態(tài)創(chuàng)建的內(nèi)存空間,再退出次程序。流程圖如下六 調(diào)試情況及運(yùn)行結(jié)果1、 對自己設(shè)計(jì)進(jìn)行評價(jià),指出合理和不足之處,提出改進(jìn)的方案。此次實(shí)踐課編寫的是一個(gè)應(yīng)用程序,相對于以前我們見到的程序,它要大得多,于是就按課
5、本上的例子編了超市管理系統(tǒng),先把界面弄好然后再添加各模塊,而且各模塊也出現(xiàn)了不少問題,在同學(xué)們和老師的幫助下,我很有耐心的一次又一次的進(jìn)行修改,最后運(yùn)行的結(jié)果基本上達(dá)到了預(yù)期的目的。可結(jié)果還不是太理想。由于時(shí)間很短,在選題報(bào)告中設(shè)想到的好多功能都沒有實(shí)現(xiàn)。已有的那些功能雖已能基本上滿足管理者和消費(fèi)者的需要,但如果還有更多的功能程序就會更加完美。如:進(jìn)入系統(tǒng)時(shí)沒有設(shè)制密碼,保護(hù)性不夠強(qiáng);在輸入商品號時(shí)沒有出錯(cuò)提示,如果商品號輸入負(fù)值2、在設(shè)計(jì)過程中的感受。 本次C 語言的實(shí)習(xí)課讓我對C 語言的學(xué)習(xí)又有了更深入的了解,也讓我更深刻地領(lǐng)悟到了“實(shí)踐出真理”這個(gè)道理,在上機(jī)實(shí)踐過程中學(xué)到的知識遠(yuǎn)遠(yuǎn)超過
6、了在課堂上十幾周學(xué)到的,學(xué)校組織的這次實(shí)習(xí)讓我們這些實(shí)踐知識匱乏的大學(xué)生增添了許多社會經(jīng)驗(yàn),為我們將來走上工作崗位其了不小的鋪墊作用。本次實(shí)習(xí)中遇到了很多以前沒有遇到過的問題,也曾想過要放棄,但看到那些同學(xué)都在那認(rèn)真的寫程序,給了我繼續(xù)的信心。在同學(xué)的幫助下,我順利的結(jié)束了本次實(shí)習(xí),讓我知道原來憑借自己努力取得的成功會讓自己這么欣慰,也讓我知道了友誼和團(tuán)結(jié)的重要性。七參考文獻(xiàn)C語言程序設(shè)計(jì) 王曙燕 曹錳 科學(xué)出版社 八。附錄: #include <stdio.h>#include <stddef.h>#include <stddef.h>#include &
7、lt;string.h>#include <stdlib.h>#include <conio.h>#define MAX 10int sum=10;typedef struct student /*定義結(jié)構(gòu)體*/ char nameMAX; /*姓名*/ int num; /*學(xué)號*/ char sexMAX; /*性別*/ float physic; /*語文*/ float mathematic; /*數(shù)學(xué)*/ float english; /*英語*/ float computer; /*計(jì)算機(jī)*/ struct student *next; /*結(jié)構(gòu)體指針
8、*/ stu; stu *head;/*讀取信息*/int read_message() FILE *fp; stu *p; int i=0; if(fp=fopen("student_manage.txt","rb")=NULL) printf("nn*暫時(shí)還沒有任何信息,輸入密碼進(jìn)入主菜單選擇基本信息錄入!*n"); return 0; while(feof(fp)!=1) fread(head,sizeof(stu),1,fp); if(p->num=0) break; else i+; fclose(fp); retur
9、n(i); /*顯示或打印函數(shù)*/ void print() printf("ttt Score Manage Systemn"); /*成績管理系統(tǒng)*/ printf("ttt 成績管理系統(tǒng)n"); printf(" <1>Enter Record: 輸入數(shù)據(jù) n"); /*輸入數(shù)據(jù)*/ printf(" <2>Display: 顯示或打印 n"); /*顯示*/ printf(" <3>find: 查找數(shù)據(jù) n"); /*訪問數(shù)據(jù)*/ printf(&qu
10、ot; <4>Renew_message: 更新模塊 n"); /*更新模塊*/ printf(" <5>Save: 保存數(shù)據(jù) n"); printf(" <6>sort_physic: 成績排名 n"); /*物理成績排名*/ printf(" <7>Count: 數(shù)據(jù)統(tǒng)計(jì) n"); /*數(shù)據(jù)統(tǒng)計(jì)*/ printf(" <8>Physic Average: 物理平均成績 n"); /*物理平均成績*/ printf(" <9&g
11、t;Math Average: 數(shù)學(xué)平均成績 n"); /*數(shù)學(xué)平均成績*/ printf(" <10>English Average:英語平均成績 n"); /*英語平均成績*/ printf(" <11>Computer Average:計(jì)算機(jī)平均成績 n"); /*計(jì)算機(jī)平均成績*/ printf(" <12>Quit: 退出 tn"); /*退出*/ /*輸入相關(guān)數(shù)據(jù)函數(shù)*/ void cin(stu *p1) printf("n Enter name:n");
12、 scanf("%s",&p1->name); printf("Enter num:n"); scanf("%d",&p1->num); printf("Enter sex:n"); scanf("%s",&p1->sex); printf("Enter scoren"); printf("Enter physic:n"); scanf("%f",&p1->physic); pri
13、ntf("Enter mathematic:n"); scanf("%f",&p1->mathematic); printf("Enter english:n"); scanf("%f",&p1->english); printf("Enter computer:n"); scanf("%f",&p1->computer); /*其他數(shù)據(jù)是否輸入函數(shù)*/ stu *cindata() stu *p1,*p2; int i=1; cha
14、r ch; p1=(stu*)malloc(sizeof(stu); head=p1; while(i) cin(p1); printf("Do you want to continue?Yes or no:n"); fflush(stdin); ch=getchar(); if(ch='n'|ch='N') i=0; p1->next=NULL; else p2=p1; p1=(stu*)malloc(sizeof(stu); p2->next=p1; return(p1->next); /*查看數(shù)據(jù)函數(shù)*/ stu *l
15、ookdata(stu *p1) while(p1!=NULL) printf("Name:%st",p1->name); printf("Num:%dt",p1->num); printf("Sex:%st",p1->sex); printf("n"); printf("Physic:%ft",p1->physic); printf("Math:%ft",p1->mathematic); printf("English:%ft&quo
16、t;,p1->english); printf("Computer:%ft",p1->computer); printf("n"); p1=p1->next; return p1; /*通過比較學(xué)號來插入數(shù)據(jù)的函數(shù)*/ void insert() stu *p1,*p3,*p2; p1=head; p3=(stu*)malloc(sizeof(stu); p3->next=NULL; if(head=NULL) head=p3;return; cin(p3); while(p1!=NULL&&(p1->num
17、<p3->num) p2=p1;p1=p1->next; if(p2=head) p3->next=head; head=p3;return; p3->next=p1; p2->next=p3; /*通過姓名來查找的函數(shù)*/ void find(stu *p2) char name20; int b=0; printf("Enter the name of the sutdent you want to find:"); scanf("%s",name); while(p2!=NULL) if(strcmp(name,
18、p2->name)=0) printf(" The data you want has be find "); printf("Name:%st",p2->name); printf("Num:%dt",p2->num); printf("Sex:%st",p2->sex); printf("n"); printf("Physic%ft",p2->physic); printf("Math%ft",p2->mathema
19、tic); printf("English%ft",p2->english); printf("Computer%ft",p2->computer); printf("n"); b=1; else if(b=0) printf("sorry not find data!"); p2=p2->next; if(b=1) print(); printf("Find onen"); else print(); printf("Not findn"); /*求各學(xué)生
20、物理平均成績*/void paverage() stu *p1; int i; float max=0.0,min=200.0; float sum=0.0,aver=0; p1=head; if(p1=NULL) printf("not data!"); else for(i=0;p1!=NULL;p1=p1->next) sum+=p1->physic; aver=sum/i; p1=head; for(i=0;p1!=NULL;i+,p1=p1->next) if(max<p1->physic) max=p1->physic; p1
21、=head; for(i=0;p1!=NULL;i+,p1=p1->next) if(min>p1->physic) min=p1->physic; printf("Physic Average:%f ",aver); printf("Physic Max:%f",max); printf("Physic Min:%f",max); /*求各學(xué)生數(shù)學(xué)平均分 最高和最低分成績的函數(shù)*/void maverage() stu *p1; int i; float max=0.0,min=200.0; float su
22、m=0.0,aver=0; p1=head; if(p1=NULL) printf("not data!"); else for (i=0;p1!=NULL;i+,p1=p1->next) sum+=p1->mathematic; aver=sum/i; p1=head; for(i=0;p1!=NULL;i+,p1=p1->next) if(max<p1->mathematic) max=p1->mathematic; p1=head; for(i=0;p1!=NULL;i+,p1=p1->next) if(min>p1-&
23、gt;mathematic) min=p1->mathematic; printf("Math Average:%f",aver); printf("Math Max:%f",max); printf("Math Min:%f",min); /*求各學(xué)生英語平均分 最高和最低分成績的函數(shù)*/void eaverage() stu *p1; int i; float max=0.0,min=200.0; float sum=0.0,aver=0; p1=head; if(p1=NULL) printf("not data
24、!"); else for(i=0;p1!=NULL;i+,p1=p1->next) sum+=p1->english; aver=sum/i; p1=head; for(i=0;p1!=NULL;i+,p1=p1->next) if(max<p1->english) max=p1->english; p1=head; for(i=0;p1!=NULL;i+,p1=p1->next) if(min>p1->english) min=p1->english; printf("English Average:%f&qu
25、ot;,aver);printf("English Max:%f",max);printf("English Min:%f",min); /*求各學(xué)生計(jì)算機(jī)平均成績 最高和最低分*/ void comaverage() stu *p1; int i; float max=0.0,min=200.0; float sum=0.0,aver=0; p1=head; if(p1=NULL) printf("not data!"); else for(i=0;p1!=NULL;i+,p1=p1->next) sum+=p1->co
26、mputer; aver=sum/i; p1=head; for(i=0;p1!=NULL;i+,p1=p1->next) if(max<p1->computer) max=p1->computer; p1=head; for(i=0;p1!=NULL;i+,p1=p1->next) if(min>p1->computer) min=p1->computer; printf("Computer Average:%f",aver); printf("Computer Max:%f",max); printf(
27、"Computer Min:%f",min); /*統(tǒng)計(jì)物理平均和總分*/void aver_sum_physic() stu *p1; int i; float sum=0,aver; p1=head; if(p1=NULL) printf("not data!"); else for(i=0;p1!=NULL;i+,p1=p1->next) sum+=p1->physic; aver=sum/i; printf("Physic Average:%f",aver); printf("Physic Sum:%f&
28、quot;,sum);/*統(tǒng)計(jì)數(shù)學(xué)平均和總分*/void aver_sum_mathematic() stu *p1; int i; float sum=0,aver; p1=head; if(p1=NULL) printf("not data!"); else for(i=0;p1!=NULL;i+,p1=p1->next) sum+=p1->mathematic; aver=sum/i; printf("Mathematic Average:%f",aver); printf("Mathematic Sum:%f",s
29、um);/*統(tǒng)計(jì)英語平均和總分*/void aver_sum_english() stu *p1; int i; float sum=0,aver; p1=head; if(p1=NULL) printf("not data!"); else for(i=0;p1!=NULL;i+,p1=p1->next) sum+=p1->english; aver=sum/i; printf("English Average:%f",aver); printf("English Sum:%f",sum);/*統(tǒng)計(jì)計(jì)算機(jī)平均和總分*/v
30、oid aver_sum_computer() stu *p1; int i; float sum=0,aver; p1=head; if(p1=NULL) printf("not data!"); else for(i=0;p1!=NULL;i+,p1=p1->next) sum+=p1->computer; aver=sum/i; printf("Computer Average:%f",aver); printf("Computer Sum:%f",sum);/*統(tǒng)計(jì)模塊*/void count() int choi
31、ce;doprintf(" *統(tǒng)計(jì)學(xué)生平均分和總分*n");printf(" <1>:物理平均和總分n");printf(" <2>:數(shù)學(xué)平均和總分n");printf(" <3>:英語平均和總分n");printf(" <4>:計(jì)算機(jī)平均和總分n");printf(" <0>返回主菜單:n");printf(" 請選擇(04):n");scanf("%d",&choi
32、ce);switch(choice) case 1:aver_sum_physic();break; case 2:aver_sum_mathematic();break; case 3:aver_sum_english();break; case 4:aver_sum_computer();break; case 0:break;while(choice!=0);/*物理成績排序*/*庫存排行*/sort_physic() int i=1,j=1; float min; stu *newh,*newp,*tp1,*tp2,*p; newp=newh=NULL; tp1=tp2=NULL; p
33、=head; do i+; p=p->next; while(p->next); while(head!=NULL) p=head; tp1=tp2=p; min=p->physic; while(p->next!=NULL) if(p->next->physic<min) min=p->next->physic; tp1=p; tp2=p->next; p=p->next; if(newh=NULL) newp=newh=tp2; else newp->next=tp2; newp=tp2; if(tp2=head) h
34、ead=tp2->next; else tp1->next=tp2->next; tp2->next=NULL; head=newh; p=head; for(j=1;j<=i;j+) if(p!=NULL) printf("n 物理成績排行n");printf("-");printf("n 排名 姓名 性別 學(xué)號 物理成績n"); printf("n%18d %6s %8s %11d %10fn",j,p->name,p->sex,p->num,p->phys
35、ic); p=p->next; else break; printf("n 按任意鍵返回n"); getch(); /*刪除相關(guān)數(shù)據(jù)*/ shanchu() int num; stu *p,*p0; p=head; cin(p); printf("請輸入要刪除的學(xué)號:"); scanf("%d",&num); head=p->next; free(p); return 1; p0=p->next; while(p0!=NULL) if(p0->num=num) p->next=p; free(p0
36、); return 1; p=p0; p0=p0->next; return 0;/*修改模塊*/void revise_message(stu *h)int choice,revise_num,flag;stu *p;p=head; doprintf("n 輸入要修改的學(xué)生的學(xué)號:");scanf("%d",&revise_num);while(p->num!=revise_num) p=p->next; /*查找*/if(p->num=revise_num)printf("n -學(xué)生信息-n");p
37、rintf("-n"); printf("學(xué)號-姓名-性別-物理成績-數(shù)學(xué)成績-英語成績-計(jì)算機(jī)成績n"); printf("%8s%4d%8s%8f%8f%8f%8f n",p->name,p->num,p->sex,p->physic,p->mathematic,p->english,p->computer); printf("n 您要修改哪一項(xiàng)?n");printf("n 1、姓名n");printf("n 2、學(xué)號n"); p
38、rintf("n 3、性別n");printf("n 4 物理成績n");printf("n 5、數(shù)學(xué)成績n"); printf("n 6、英語成績n");printf("n 7、計(jì)算機(jī)成績n");printf("n 請選擇(1-7):");scanf("%d",&choice);switch(choice)case 1:printf("n 輸入修改后的學(xué)生姓名:"); scanf("%s",p->na
39、me);break;case 2:printf("n 輸入修改后的學(xué)生學(xué)號:"); scanf("%d",p->num);break; case 3:printf("n 輸入修改后的性別:"); scanf("%s",&p->sex); case 4:printf("n 輸入修改后的物理成績:"); scanf("%f",&p->physic); case 5:printf("n 輸入修改后的數(shù)學(xué)成績:"); scanf(
40、"%f",&p->mathematic); case 6:printf("n 輸入修改后的英語成績:"); scanf("%f",&p->english);break;case 7:printf("n 輸入修改后的計(jì)算機(jī)成績:"); scanf("%f",&p->computer);break; printf("-n"); printf("學(xué)號-姓名-性別-物理成績-數(shù)學(xué)成績-英語成績-計(jì)算機(jī)成績n"); prin
41、tf("%8s%4d%8s%8f%8f%8f%8f n",p->name,p->num,p->sex,p->physic,p->mathematic,p->english,p->computer); break;if(p->next=NULL)printf("n 該學(xué)生不存在!");printf("nn 要繼續(xù)嗎?(y/n)");choice=getch();if(choice='y')|(choice='Y')printf("n 繼續(xù)!n&qu
42、ot;);flag=1;else flag=0;while(flag=1);printf("n 按任意鍵返回主菜單!n");/*更新模塊*/void renew_message() int choice; do printf("nn *更新學(xué)生信息*nn"); printf(" 1.添加信息nn"); printf(" 2.刪除信息nn"); printf(" 3.修改信息nn"); printf(" 4.返回主菜單nn"); printf(" 請選擇(03):&q
43、uot;); scanf("%d",&choice); switch(choice) case 1: insert();break; case 2: shanchu();break; case 3: revise_message(head);break; case 0:;break; while(choice!=0); /*保留數(shù)據(jù)函數(shù)*/void save(stu *p2) FILE *fp; char file10; printf("Enter file name"); scanf("%s",file); fp=fopen(file,"w"); while(p2!=NULL) fprintf(f
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 生物學(xué)科實(shí)驗(yàn)操作經(jīng)驗(yàn)交流計(jì)劃
- 畫出童年小班藝術(shù)表現(xiàn)計(jì)劃
- 優(yōu)化流程的年度工作框架計(jì)劃
- 班級心理素質(zhì)提升活動的案例分享計(jì)劃
- 2025年中國新型建材行業(yè)市場競爭格局及投資方向研究報(bào)告(智研咨詢)
- 2025年鐵紅項(xiàng)目建議書
- 2025年系列自動遙測氣象站項(xiàng)目合作計(jì)劃書
- 汽車零件互換性規(guī)則設(shè)定
- 構(gòu)建穩(wěn)定可靠的數(shù)據(jù)庫同步體系
- 三國演義的英雄氣概讀后感
- 發(fā)展?jié)h語 初級讀寫一 第二課 謝謝你
- 部編版六年級語文下冊第一單元大單元教學(xué)任務(wù)單
- 人教版小學(xué)語文1-6年級背誦內(nèi)容完整版
- 2023徐金桂“徐徐道來”(行政法知識點(diǎn))版
- 《事故汽車常用零部件修復(fù)與更換判別規(guī)范》
- 2024-2030年中國酒類流通行業(yè)發(fā)展動態(tài)及投資盈利預(yù)測研究報(bào)告
- 物業(yè)管理如何實(shí)現(xiàn)降本增效
- DL-T825-2021電能計(jì)量裝置安裝接線規(guī)則
- 信息科技重大版 七年級下冊 互聯(lián)網(wǎng)應(yīng)用與創(chuàng)新 第一單元單元教學(xué)設(shè)計(jì) 互聯(lián)網(wǎng)創(chuàng)新應(yīng)用
- 2024年興業(yè)銀行股份有限公司校園招聘考試試題及參考答案
- 2024智慧城市城市交通基礎(chǔ)設(shè)施智能監(jiān)測技術(shù)要求
評論
0/150
提交評論