數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)《停車場(chǎng)管理系統(tǒng)》_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)《停車場(chǎng)管理系統(tǒng)》_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)《停車場(chǎng)管理系統(tǒng)》_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)《停車場(chǎng)管理系統(tǒng)》_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)《停車場(chǎng)管理系統(tǒng)》_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

數(shù)據(jù)構(gòu)造

設(shè)計(jì):停車場(chǎng)管理

姓名:韋邦權(quán)

專業(yè):2013級(jí)計(jì)算機(jī)科學(xué)與技術(shù)

學(xué)號(hào):13224624

班級(jí):13052316

完成日期:2013.12.19

1問(wèn)題描述

設(shè)停車場(chǎng)是一個(gè)可停放n輛汽車的狹長(zhǎng)通道,且只有一個(gè)門可供出入。汽車在停

車場(chǎng)內(nèi)按車輛到達(dá)時(shí)間的先后順序,依次由北向南排列(門在最南端,最先到達(dá)的第

一輛車停放在車場(chǎng)的最北端),假設(shè)車場(chǎng)內(nèi)已停滿n輛汽車,那么后來(lái)的汽車只能在

門外的便道上等候,一旦有車開(kāi)走,那么排在便道上的第一輛汽車即可開(kāi)入;當(dāng)停車

場(chǎng)內(nèi)某輛車要離開(kāi)時(shí),在它之后進(jìn)入的車輛必須先退出車場(chǎng)為它讓路,待該輛車開(kāi)出

大門外,其他車輛再按原順序進(jìn)入車場(chǎng),每輛停放在車場(chǎng)的車在它離開(kāi)停車場(chǎng)時(shí)必須

按它停留的時(shí)間長(zhǎng)短交納費(fèi)用。

2需求分析

(1)根據(jù)車輛到達(dá)停車場(chǎng)到車輛離開(kāi)停車場(chǎng)時(shí)所停留的時(shí)間進(jìn)展計(jì)時(shí)收費(fèi)。

(2)當(dāng)有車輛從停車場(chǎng)離開(kāi)時(shí),等待的車輛按順序進(jìn)入停車場(chǎng)停放。實(shí)現(xiàn)停車

場(chǎng)的調(diào)度功能。

(3)用順序棧來(lái)表示停車場(chǎng),鏈隊(duì)表示停車場(chǎng)外的便道。

(4)顯示停車場(chǎng)信息和便道信息。

(5)程序執(zhí)行的命令為:①車輛進(jìn)入停車場(chǎng)②車輛離開(kāi)停車場(chǎng)③顯示停車

場(chǎng)的信息。

3概要設(shè)計(jì)

3.1抽象數(shù)據(jù)類型定義

U)棧的抽象數(shù)據(jù)類型定義

ASTStack{

數(shù)據(jù)對(duì)象:D={ai|aiGElemSet,i=ln>0}

數(shù)據(jù)關(guān)系:Rl={<ai-l,ai>|ai-l,ai£D,i=2,...,n}

約定an端為棧頂,al端為棧底。

基本操作:

InitStack(&S)

操作結(jié)果:構(gòu)造一個(gè)空棧S。

DestroyStack(&S)

初始條件:棧S已存在。

操作結(jié)果:棧S被銷毀。

ClearStack(&S)

初始條件:棧S已存在。

操作結(jié)果:將棧S清為空棧。

StackEmpty(S)

初始條件:棧S已存在。

操作結(jié)果:假設(shè)棧S為空棧,那么返回TRUE,否那么FALSE。

StackLength(s)

初始條件:棧S已存在。

操作結(jié)果:返回S的元素個(gè)數(shù),既棧的長(zhǎng)度。

GetTop(S,&e)

初始條件:棧S已存在且非空。

操作結(jié)果:用e返回S的棧頂元素。

Push(&S,e)

初始條件:棧S已存在。

操作結(jié)果:插入元素e為新的棧頂元素。

Pop(&S,&e)

初始條件:棧S已存在且非空。

操作結(jié)果:刪除S的棧頂元素,并用e返回其值。

StackTraverse(S,visit())

初始條件:棧S已存在且非空。

操作結(jié)果:從棧底到棧頂依次對(duì)S的每個(gè)數(shù)據(jù)元素調(diào)用函數(shù)visit。。一旦visit。

失敗,那么操作失效。

}ADTStack

(2)隊(duì)列的抽象數(shù)據(jù)類型定義

ADTQueue{

數(shù)據(jù)對(duì)象:D={ai|aiGElemSet,i=l,2,...,n,n>0}

數(shù)據(jù)關(guān)系:Rl={<ai-l,ai>|ai-l,aieD,i=2,...,n}

約定其中al端為隊(duì)列頭,an為隊(duì)列尾。

基本操作:

InitQueue(&Q)

操作結(jié)果:構(gòu)造一個(gè)空隊(duì)列Q。

DestroyQueue(&Q)

初始條件:隊(duì)列Q已存在。

操作結(jié)果:隊(duì)列Q被銷毀,不再存在。

ClearQueue(&Q)

初始條件:隊(duì)列Q已存在。

操作結(jié)果:將Q清為空隊(duì)列。

QueueEmpty(Q)

初始條件:隊(duì)列Q已存在。

操作結(jié)果:假設(shè)Q為空隊(duì)列,那么返回TRUE,否那么FALSE。

QueueLength(Q)

初始條件:隊(duì)列Q已存在。

操作結(jié)果:返回Q的元素個(gè)數(shù),即隊(duì)列的長(zhǎng)度。

GetHead(Q,&e)

初始條件:Q為非空隊(duì)列。

操作結(jié)果:用e返回的隊(duì)頭元素。

EnQueue(&Q,e)

初始條件:隊(duì)列Q已存在。

操作結(jié)果:插入元素e為Q的新的隊(duì)尾元素。

DeQueue(&Q,&e)

初始條件:Q為非空隊(duì)列。

操作結(jié)果:刪除Q的隊(duì)頭元素,并用e返回其值。

QueueTraverse(Q,visit())

初始條件:Q已存在且非空。

操作結(jié)果:從隊(duì)頭到隊(duì)尾,依次對(duì)Q的每個(gè)數(shù)據(jù)元素調(diào)用函數(shù)visit。。一旦visit。

失敗,那么操作失敗。

}ADTQueue

3.2模塊劃分

本程序包括六個(gè)模塊:

(1)主程序模塊

voidmain()

(

初始化停車站;

初始化讓路的臨時(shí)棧;

初始化通道;

輸出主菜單:車輛到達(dá)、車輛離開(kāi)與計(jì)費(fèi)、查看停車場(chǎng)信息;

)

(2)入場(chǎng)模塊

intarrive(SqStack*In,LinkQueue*W)

(

車輛進(jìn)入停車場(chǎng);

計(jì)算停車費(fèi)用

}

(3)出場(chǎng)模塊

voidleave(SqStack*In,SqStack*Out,LinkQueue*W)

(

車輛離開(kāi)停車場(chǎng);

)

(4)輸出模塊

voidinfo(SqStackS,LinkQueueW)

輸出停車場(chǎng)信息;

}

(5)棧模塊——實(shí)現(xiàn)棧的抽象數(shù)據(jù)類型

(6)隊(duì)列模塊——實(shí)現(xiàn)隊(duì)列的抽象數(shù)據(jù)類型

4詳細(xì)設(shè)計(jì)

4.1數(shù)據(jù)類型的定義

intMAX;/*定義一個(gè)全局變量用來(lái)存儲(chǔ)車庫(kù)最大容量*/

floatprice;/*定義一個(gè)全局變量用來(lái)存儲(chǔ)每車每小時(shí)的費(fèi)用*/

typedefstructtime

(

inthour;

intmin;

}Time;/*時(shí)間結(jié)點(diǎn)*/

typedefstructnode

(

charnum[10J;

Timereach;

Timeleave;

}Car;/*車輛信息結(jié)點(diǎn)*/

typedefstructNODE

(

Car*stack[100];

inttop;

}SqStack;/*停車站*/

typedefstructcar

Car*data;

structcar*next;

JQNode;

typedefstructNode

(

QNode*head;

QNode*rear;

}LinkQueue;/*通道*/

4.2主要模塊的算法描述

本程序主要分為四局部:(1)主函數(shù)及程序框架、(2)車輛到達(dá)模塊、(3)車

輛離開(kāi)模塊、(4)顯示車輛信息模塊,

(1)主函數(shù)

voidmain()

(

SqStackIn,Out;LinkQueueWait;

intch;

InitStack(&In);/*初始化停車站*/

InitStack(&Out);/*初始化讓路的臨時(shí)棧*/

InitQueue(&Wait);/*初始化通道*/

while(l)

(

printf("-------------------歡迎使用停車場(chǎng)管理系統(tǒng)

-------------------\n");

printf("\t本系統(tǒng)由5011工作室開(kāi)發(fā),作者:鄧春國(guó)、段慶龍、梁偉明、丁

磊。\n\n");

printf("請(qǐng)輸入停車場(chǎng)的容量:");

scanf("%d",&MAX);

printf("請(qǐng)輸入停車場(chǎng)的收費(fèi)標(biāo)準(zhǔn)(元/小時(shí)

scanf("%f',&price);

printf("您輸入的停車場(chǎng)容量為%d位,費(fèi)用為%2.1f元/小時(shí)。

\n",MAX,price);

printf("\n(l)車輛到達(dá)\n(2)車輛離開(kāi)\n(3)停車場(chǎng)信息\n(4)退出系統(tǒng)3請(qǐng)

選擇\n");

while(l)

(

ch=getch();

switch(ch)

(

case49:arrive(&In,&Wait);break;/*車輛到達(dá)*/

case50:leave(&In,&Out,&Wait);break;/*車輛離開(kāi)*/

case51:info(In,Wait);break;/*輸出車站信息*/

case52:{printf("謝謝使用!");exit(O);}/*退出主程序*/

default:printf("\n按鍵無(wú)效,請(qǐng)重新按鍵選擇!");

}/*49-52分別表示“1"-"4"這四個(gè)按鍵的鍵值*/

system("CLS");

printf("---------------------歡迎使用停車場(chǎng)管理系統(tǒng)

---------------------\n");

printf("\t本系統(tǒng)由CG工作室開(kāi)發(fā),作者:鄧春國(guó)、段慶龍、梁偉明、

丁磊。\n\n\n");

printf("您輸入的停車場(chǎng)容量為%d位,費(fèi)用為%2.1f元/小時(shí)。

\n",MAX,price);

printf("\n(l)車輛到達(dá)\n(2)車輛離開(kāi)\11(3)停車場(chǎng)信息\n(4)退出系統(tǒng)

\n請(qǐng)選擇\n");

)

}

12)車輛離開(kāi)模塊

①算法分析

voidleave(SqStack*In,SqStack*Out,LinkQueue*W)/*車輛離開(kāi)*/

(

introom;

Car*p,*t;QNode*q;

/*開(kāi)場(chǎng)定義一個(gè)整型變量room,用來(lái)記錄要離開(kāi)的車輛在停車場(chǎng)的位置,定義

車輛結(jié)點(diǎn)指針p和t和隊(duì)列結(jié)點(diǎn)指針q。*/

if(ln->top>0)/*有車*/

(

while(l)

(

printf("\n請(qǐng)輸入車在停車場(chǎng)的位置(l-%d):",In->top);

scanf("%d",&room);

if(room>=l&&room<=In->top)break;

)

/*判斷停車場(chǎng)內(nèi)是否有車,如果有車,就輸入要離開(kāi)的車輛在停車場(chǎng)的位置,

否那么就提示停車場(chǎng)沒(méi)車。這里用了while循環(huán)語(yǔ)句,如果輸入的車輛位置超出范

圍,就要重新輸入。*/

while(In->top>room)/*車輛離開(kāi)*/

(

Out->top++;

Out->stack[Out->top]=In->stack[In->top];

In->stack[In->top]=NULL;In->top-;

)

/*如果棧頂位置In->top大于要離開(kāi)的車位置room(即要離開(kāi)的車不在停車場(chǎng)

的門口)的話,在要離開(kāi)的車輛前面的車就要先離開(kāi),開(kāi)到臨時(shí)停車場(chǎng),即臨時(shí)棧中,

因此Out所表示的臨時(shí)棧的棧頂top加1,用來(lái)表示臨時(shí)停車場(chǎng)增加1輛車;接著

把該車的信息拷貝到棧Out中,然后刪除棧In的棧頂(即這輛車開(kāi)走)。*/

p=In->stack[In->top];

In->stack[In->top]=NULL;In->top—;

while(Out->top>=1)

In->top++;In->stack[In->top]=Out->stack[Out->top];

Out->stack[Out->top]=NULL;Out->top—;

)

/*直到要離開(kāi)的車輛前面的車都開(kāi)到臨時(shí)停車場(chǎng)之后,該車才離開(kāi),離開(kāi)之后,

該車的信息結(jié)點(diǎn)In->stack[In->top]置空,然后棧頂In->top減1。之后就判斷臨時(shí)

停車場(chǎng)是否有車,有車就一輛一輛的開(kāi)回停車場(chǎng)里面,因此停車場(chǎng)的棧頂In->top加

1,然后就把臨時(shí)停車場(chǎng)的車結(jié)點(diǎn)的信息拷貝到停車場(chǎng)的車結(jié)點(diǎn)上,接著刪除臨時(shí)停

車場(chǎng)車的結(jié)點(diǎn)(即Out->stack[Out->top]=NULL;Out->top--;)。*/

PRINT(p,room);

if((W->head!=W->rear)&&In->top<MAX)

(

q=W->head->next;t=q->data;In->top++;

printf("\n便道的%s號(hào)車進(jìn)入車場(chǎng)第%d號(hào)停車位。

",t->num,In->top);

printf("\n請(qǐng)輸入現(xiàn)在的時(shí)間(格式“**:**"

scanf("%d:%d",&(t->reach.hour),&(t->reach.min));

W->head->next=q->next;

if(q==W->rear)W->rear=W->head;

In->stack[In->top]=t;

free(q);

)

/*判斷(W->head!=W->rear)&&In->top<MAX(即通道上是否有車及停車場(chǎng)

是否已滿),如果便道有車且停車場(chǎng)未滿,通道的車便可進(jìn)入停車場(chǎng),此時(shí)指針q指

向便道的頭,即隊(duì)頭,然后停車場(chǎng)的棧頂In->top加1以便增加新的車輛,接著輸

入隊(duì)頭的車輛信息,即要進(jìn)去停車場(chǎng)的車的信息,然后便道隊(duì)列的頭結(jié)點(diǎn)指向q1即

剛進(jìn)入停車場(chǎng)的車的結(jié)點(diǎn))的后繼結(jié)點(diǎn),即原隊(duì)列中第二輛車的結(jié)點(diǎn),接著判斷剛離

開(kāi)的車是否是最后一輛車,如果是,就把隊(duì)列置空,即隊(duì)頭等于隊(duì)尾;之后就把結(jié)點(diǎn)

t(即要進(jìn)入停車場(chǎng)的車)的信息拷貝到停車場(chǎng)棧頂?shù)能囍?,最后釋放p的空間,即

原隊(duì)頭結(jié)點(diǎn)。*/

elseprintf("\n停車場(chǎng)里沒(méi)有車\n");/*沒(méi)車*/

printf("請(qǐng)按任意鍵返回");

getch();

②leave函數(shù)流程圖如圖4.1所示:

5測(cè)試分析

(開(kāi)場(chǎng))

測(cè)試數(shù)據(jù)及結(jié)果如Er

定義必要的變量

輸入2輛人的信息,如圖如2所示:

莖生場(chǎng)是否有否

再輸入2輛

"C:\Users\Administrator.PC-20141024YLPI\Desktop\Debug\Cppl.exe*

**停車場(chǎng)管理程序**

A-汽車進(jìn)車場(chǎng)D--汽車出車場(chǎng)**

E-----退出程序

I辜里辛MA.D.E〉:A

1號(hào)車道

停車場(chǎng)管理程序Z

重;fi-汽車進(jìn)車場(chǎng)D--汽車出車場(chǎng)**

停:E-----退出程序

[請(qǐng)選擇:<A,D,E>:A

|車牌為:2

賽場(chǎng)的時(shí)刻:2

該車已趺薦車場(chǎng)在:2號(hào)車道

E-----退出程序

蠡■該車先停在便道的第2個(gè)位置上

最后選擇車輛離開(kāi),輸入第2輛車離開(kāi),如圖

6課程設(shè)計(jì)總結(jié)

通過(guò)這次課程設(shè)計(jì)使我充分的理解了用棧和隊(duì)列實(shí)現(xiàn)模擬停車場(chǎng)的基本原理,

知道了棧的順序存儲(chǔ)構(gòu)造和隊(duì)列的鏈?zhǔn)酱鎯?chǔ)構(gòu)造的定義和算法描述,同時(shí)也學(xué)會(huì)了編

寫停車場(chǎng)問(wèn)題的程序。雖然此次的程序不是很完備,沒(méi)有參加一些更完善的功能,但

是總體還是一個(gè)比較能表達(dá)數(shù)據(jù)構(gòu)造知識(shí)點(diǎn)能力的程序了,當(dāng)然只是相對(duì)于我這個(gè)初

學(xué)者來(lái)說(shuō)。在剛開(kāi)場(chǎng)編程的時(shí)候,我感到有點(diǎn)無(wú)從下手,但經(jīng)過(guò)對(duì)題目的詳細(xì)分析和

思考之后,我就知道具體應(yīng)該做什么,怎么做了。經(jīng)過(guò)幾天和同學(xué)的一起研究,我完

成這個(gè)程序,我學(xué)到了很多東西,這是在課堂上無(wú)法做到的。

源程序

#include<stdio.h>

#include<stdlib.h>

#include<iostream.h>

#include<string.h>

#include<math.h>

#definesize1//停車場(chǎng)位置數(shù)

//模擬停車場(chǎng)的堆棧的性質(zhì);

typedefstructzanlind{

intnumber;〃汽車車號(hào)

intar_time;〃汽車到達(dá)時(shí)間

Jzanlnode;

typedefstruct{

zanlnode*base;〃停車場(chǎng)的堆棧底

zanlnode*top;〃停車場(chǎng)的堆棧頂

intstacksize_curren;

}stackhead;

〃堆棧的基本操作;

voidinitstack(stackhead&L)〃構(gòu)造一個(gè)空棧

(

L.base=(zanlnode*)malloc(size*sizeof(zanlind));

if(!L.base)exit(O);

L.top=L.base;

L.stacksize_cuiTen=O;

)

voidpush(stackhead&L,zanlnodee)〃把元素e壓入s棧

*L.top++=e;

L.stacksize_curren++;

voidpop(stackhead&L,zanInode&e)〃把元素e彈出s棧

(

if(L.top==L.base)

(

coutvv”停車場(chǎng)為空!!*';

return;

)

e=*-L.top;

L.stacksize_curren—;

)

〃模擬便道的隊(duì)列的性質(zhì);

typedefstructduiiie{

intnumber;〃汽車車號(hào)

intar_time;〃汽車到達(dá)時(shí)間

structduilie*next;

}*queueptr;

typedefstruct{

queueptrfront;〃便道的隊(duì)列的對(duì)頭

queueptrrear;//便道的隊(duì)列的隊(duì)尾

intlength;

}linkqueue;

〃隊(duì)列的基本操作;

voidinitqueue(linkqueue&q)〃構(gòu)造一個(gè)空隊(duì)列

(

q.front=q,rear=(queueptr)malloc(sizeof(duilie));

if(!q.front||!q.rear)

exit(O);

q.front->next=NULL;

q.length=0;

)

voidenqueue(linkqueue&q,intnumber,intar_time)〃把元素的插入隊(duì)歹lj(屬性為number,ar_time)

{

queueptrp;

p=(queueptr)malloc(sizeof(duilie));

if(!p)exit(O);

p->number=number;

p->ar_time=ar_time;

p->next=NULL;

q.rear->next=p;

q.rear=p;

q.length++;

voidpopqueue(linkqueue&q,queueptr&w)//把元素的插入隊(duì)列(屬性為number,ar_time)

{

queueptrp;

if(q.front==q.rear)

(

cout?”停車場(chǎng)的通道為空!!n?endl;

return;

)

p=q.front->next;

w二p;

q.front->next=p->next;

q.length-;

if(q.rear==p)q.front=q.rear;

)

voidjinru(stackhead&st,linkqueue&q)〃對(duì)進(jìn)入停車場(chǎng)的汽車的處理;

{

intnumber,time_a;

cout<〈”車牌為:°;

cin?number;

cout<<”進(jìn)場(chǎng)的時(shí)刻六

cin?time_a;

if(st.stacksize_curren<2)

(

zanlnodee;

e.number=number;

e.ar_time=time_a;

push(st,e);

cout?n該車已進(jìn)入停車場(chǎng)在:n?st.stacksize_curren?"號(hào)車道”<vendl?endl;

)

else

(

enqueue(q,number,time_a);

coutvv”停車場(chǎng)已滿,該車先停在便道的第”<vq.length?”個(gè)位置上”<vendl;

)

)

voidlikai(stackhead&st,stackhead&sl,linkqueue&q)〃對(duì)離開(kāi)的汽車的處理;

{//st堆棧為停車場(chǎng),si堆棧為倒車場(chǎng)

intnumber,time_d,flag=1,money,arrivaltime;//q為便道隊(duì)歹U

coutvv”車牌為:";

cin?number;

cout?n出場(chǎng)的時(shí)刻:

cin?time_d;

zanlnodee,q_to_s;

queueptrw;

while(flag)〃找到要開(kāi)出的車,并彈出停車場(chǎng)棧

pop(st,e);

push(sl,e);

if(e.number二二number)

(

f!ag=O;

money=(time_d-e.ar_time)*2;

arrivaltime=e.ar_time;

)

)

pop(sl,e);〃把臨時(shí)堆棧的第一輛車(要離開(kāi)的)去掉;

while(sLstacksize_curren)〃把倒車場(chǎng)的車倒回停車場(chǎng)

(

pop(sl,e);

push(st,e);

)

if(st.stacksize_curren<2&&q.1ength!=0)〃停車場(chǎng)有,空位,便道上的車開(kāi)進(jìn)入停車場(chǎng)

(

popqueue(q,w);

q_to_s.ar_time=time_d;

q_to_s.number=w->number;

push(st,q_to_s);

cout?n車牌為"《q_to_s.numberv<”的車已從通道進(jìn)入停車場(chǎng),所在的停車位

^9:"?st.stacksize_curren?endl?endl;

)

cout?"\n收據(jù)"<<endl;

cout?u======================車牌號(hào):n?number?endl;

cout?u===================================================n?e

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論