北京工業(yè)大學 數據結構課設-理發(fā)館 報告_第1頁
北京工業(yè)大學 數據結構課設-理發(fā)館 報告_第2頁
北京工業(yè)大學 數據結構課設-理發(fā)館 報告_第3頁
北京工業(yè)大學 數據結構課設-理發(fā)館 報告_第4頁
北京工業(yè)大學 數據結構課設-理發(fā)館 報告_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

...wd......wd......wd...理發(fā)館學號_____110703xx___姓名_____xxx______指導教師______xx______2013年10月目錄1需求分析3程序功能介紹3程序數據要求31.3開發(fā)與運行環(huán)境需求41.4用戶界面設計52數據構造設計72.1主要數據構造72.2程序整體構造112.3模塊功能描述113詳細設計 124測試 224.1正確運行例如224.2錯誤運行例如245總結提高251需求分析1.1程序功能介紹本程序模擬理發(fā)館一天的經營狀況,理發(fā)館的環(huán)境如下:1.理發(fā)館有N把理發(fā)椅,可同時為N位顧客進展理發(fā)(2<N<9);2.理發(fā)師按技術水平分為三個等級〔一級最高,三級最低〕,對應不同的服務收費。理發(fā)館一天的工作過程如下:1.顧客進門時,需要選擇某級別的理發(fā)師,只要該級別的理發(fā)師有空椅,則可立即坐下理發(fā),否則需排隊等候;2.一旦該級別的理發(fā)師有顧客理發(fā)完離去,排在該位理發(fā)師隊列隊頭的顧客便可以開場理發(fā)。理發(fā)館老板統(tǒng)計每天不同級別理發(fā)師的營業(yè)時間、創(chuàng)收和每天理發(fā)館總創(chuàng)收,并寫入文本文件中,可作為理發(fā)師工資與獎金的發(fā)放依據。1.2程序數據要求1.2.1輸入數據〔由文本文件輸入〕:7:3061121324352630.6數據說明:第一行的09:30表示理發(fā)館將于九點半開門;第二行的6表示理發(fā)館有6張理發(fā)椅(此處可輸入3~9的任意值);隨后的N行:表示第i張椅子的理發(fā)師的級別〔如:第1張理發(fā)椅是1級理發(fā)師,第2張理發(fā)椅是1級理發(fā)師…〕。最后一行的0.6代表折扣〔可選〕1.2.2隨機數據需求:每個顧客進門時將負責生成三個隨機數:1〕理發(fā)時間durtime:進門顧客理發(fā)所需服務時間;2〕間隔時間intertime:該顧客與下一位顧客到達的時間間隔;3〕服務選項select:該顧客選擇理發(fā)師的級別。由隨機數函數產生。1.2.3輸出數據〔輸出到文本文件中〕:本日賬目清單===============================按理發(fā)師===============================理發(fā)師編號:1級別:1工作時長:17本日盈收:17理發(fā)師編號:2級別:1工作時長:29本日盈收:29理發(fā)師編號:3級別:2工作時長:28本日盈收:14理發(fā)師編號:4級別:3工作時長:73本日盈收:23理發(fā)師編號:5級別:2工作時長:24本日盈收:12理發(fā)師編號:6級別:3工作時長:27本日盈收:9理發(fā)師編號:7級別:3工作時長:20本日盈收:6理發(fā)師編號:8級別:1工作時長:30本日盈收:30================================按級別===============================1級別理發(fā)師總工時:76總收入:762級別理發(fā)師總工時:52總收入:263級別理發(fā)師總工時:120總收入:38=================================總匯===============================本日總創(chuàng)收:1401.3開發(fā)與運行環(huán)境需求1.3.1開發(fā)環(huán)境:Visualstudio20101.3.2運行環(huán)境:Winxp/Win7/Win81.4用戶界面設計1.4.1初始化界面〔例:6個隊列〕8隊列界面1.4.2顧客到達、理發(fā)及等待界面1.4.3顧客離開界面1.4.4DOS/GUI同步演示程序過程1.4.5折扣選擇界面2數據構造設計2.1主要數據構造2.1.1事件類〔Event〕//事件類:包含事件發(fā)生時間,事件類型,和下一個事件〔指針〕三個數據成員classEvent{public:intoccurtime;intevent_type;Event*next_event;Event(){}Event(intoccurtime,intevent_type):occurtime(occurtime),event_type(event_type),next_event(NULL){}~Event(){}};2.1.2事件表〔EventList〕//事件表類:數據成員:頭指針,兩個用于插入刪除事件結點的指針,和事件表長度classEventList{public:Event*head,*ptr_before,*ptr_after;intlength;//事件表長度EventList(){head=newEvent(-1,-1);length=1;}~EventList(){}voidOrderIn(Event*new_in);intListEmpty();intCmp(Event*new_in,Event*t1);};2.1.3顧客類〔Customer〕classCustomer{public:intdurtime;intselect;Customer*next;Customer():select(-1){}Customer(intdurtime,intselect):durtime(durtime),select(select),next(NULL){}~Customer(){}};2.1.4顧客隊列類〔CustomerQueue〕classCustomerQueue{public:Customer*front,*rear;intselect;intlength;intworktime;intmoney;CustomerQueue():front(NULL),rear(NULL),select(-1),length(0),money(0),worktime(0){}~CustomerQueue(){}voidEnQueue(Customer*add);voidDelQueue();};2.1.5隨機函數類〔Random〕:classRandom{public:intdurtime;intintertime;intselect;Random(){srand((int)time(NULL));}~Random(){}intDurtime();intIntertime();intSelect();};2.1.6文件操作類〔FileOperation〕:classFileOperation{public:intinput_time[2];//接收輸入時間小時、分鐘charmaohao;//接收中間的冒號intnumber[11];//用于接收理發(fā)師編號信息intchairs;//理發(fā)師人數floatdiscount;//折扣〔可選〕charzhekou;FileOperation():discount(1.0){}~FileOperation(){}voidFileInput(ifstream&from_file,int&opentime,CustomerQueuecq[],int&closetime);voidFileOutput(ofstream&to_file,CustomerQueuecq[],int&total_money);};2.1.7繪圖類〔barbergraph〕:classbarbergraph{public:IMAGEbackground_img;//顧客去背景圖片IMAGEbaber_desk;//理發(fā)師桌子背景IMAGEmy_clock;//時鐘背景IMAGEdoor;//門charnow_time[10];//時鐘信息存儲charbarber_info[20];//理發(fā)師信息chargraphic_symbol[15];//圖例信息Customer*p;//獲取當前動作顧客intchairs;//獲取理發(fā)師人數barbergraph(){//讀取背景圖片集loadimage(&background_img,_T("背景1.jpg"));loadimage(&baber_desk,_T("六張桌子.jpg"));loadimage(&my_clock,_T("時鐘.jpg"));loadimage(&door,_T("門.jpg"));}voidset_chairs(intchairs);//初始化理發(fā)師人數voidCommonGraph(CustomerQueuecq[],intopentime);//通用繪圖界面voidBarberGraph(CustomerQueuecq[],intopentime);//無事件狀態(tài)界面voidArriveBarberGraph(CustomerQueuecq[],intarrival,intnowtime);//顧客到來界面voidDepartBarberGraph(CustomerQueuecq[],intdeparture,intnowtime);//顧客離開界面~barbergraph(){}};2.1.8理發(fā)館類〔Barbershop〕:classBarberShop{public:EventListev;//事件表CustomerQueuecq[11];//六個顧客隊列1~10可選intopentime;//開門時間Event*cur_event;//當前事件Event*new_event;//初始事件Customer*new_customer;//新顧客指針intclosetime;//TODO:目前為調試數據〔22:00理想,未實現〕inttotal_money;//理發(fā)館一天總收入intchairs;//接收理發(fā)師人數BarberShop():cur_event(NULL),new_customer(NULL),total_money(0){}voidOpenForDay(barbergraph&bg,intchairs);//開門初始化函數intMinimum(intselect);//求同級別最短隊列函數voidCustomerArrived(Random&ran,barbergraph&bg);//顧客到來voidCustomerDeparture(barbergraph&bg);//顧客離開voidBarberSimulation(Random&ran,barbergraph&bg,intchairs);//事件驅動模型~BarberShop(){}};2.2程序整體構造main2.2.1函數調用圖:mainFileoutputFileinputBarberSimulationFileoutputFileinputBarberSimulationListEmptyCustomerDepartureCustomerArrivedOpenForDayListEmptyCustomerDepartureCustomerArrivedOpenForDayDelQueueEnQueueOrderInBarberGraphDelQueueEnQueueOrderInBarberGraphMinimumDepartBarberGraphArriveBarberGraphMinimumDepartBarberGraphArriveBarberGraph2.3模塊功能描述2.3.1Event:作為EventList的結點元素,數據:事件類型、事件發(fā)生的時間2.3.2EventList:事件表,為有序表。數據:頭指針,時間表長度length;操作:插入、刪除Event2.3.3Customer:保存顧客信息。數據:durtime,select2.3.4CustomerQueue:保存顧客隊列信息以及理發(fā)師信息。數據:select,length,worktime,money,頭尾指針;操作:入隊,出隊;2..3.5Random:生成要求中的三個隨機數。2.3.6FileOperation:從文件讀入數據,向文件輸出數據。2.3.7BarberGraph:繪制圖形界面,包括初始化界面、顧客到來、顧客離開界面。2.3.8barbershop:處理顧客到來,顧客離開,含事件驅動主程序。3詳細設計3.1.1eventlist.cpp#include"eventlist.h"voidEventList::OrderIn(Event*new_in){//插入事件表if(1==length){//如果長度為一,直接插入head->next_event=new_in;length++;return;}else{//如果長度不為一,用兩指針一前一后進展插入操作ptr_before=head->next_event;ptr_after=head;while(ptr_before!=NULL){if(-1==Cmp(new_in,ptr_before)){//如果插入事件在前new_in->next_event=ptr_before;ptr_after->next_event=new_in;length++;return;}//如果在此結點之后,后移一位繼續(xù)比擬ptr_after=ptr_before;ptr_before=ptr_before->next_event;}ptr_after->next_event=new_in;//如果在最后,直接插到表尾length++;}}intEventList::ListEmpty(){if(length>1)return0;elsereturn1;}3.1.2customerqueue.cpp#include"customerqueue.h"voidCustomerQueue::EnQueue(Customer*add){if(NULL==rear){//如果隊伍沒人,直接入隊front=rear=add;}else{rear->next=add;rear=rear->next;}length++;}voidCustomerQueue::DelQueue(){if(0!=length){Customer*p=front;front=front->next;if(rear==p)rear=NULL;deletep;//釋放隊頭結點空間length--;}}3.1.3random.cpp#include"random.h"intRandom::Durtime(){returnrand()%21+10;//隨機一個10~30的數〔持續(xù)時間〕}intRandom::Intertime(){returnrand()%6;//隨機一個0到5的數〔間隔時間〕}intRandom::Select(){returnrand()%3+1;//隨機一個1~3的數〔級別〕}3.1.4fileoperation.cpp#include"fileoperation.h"usingnamespacestd;voidFileOperation::FileInput(ifstream&from_file,int&opentime,CustomerQueuecq[],int&closetime){from_file>>input_time[0]>>maohao>>input_time[1];//接收開門時間opentime=60*input_time[0]+input_time[1];//將時間轉化為intfrom_file>>chairs;//接收理發(fā)師人數if(chairs>8||chairs<3){cout<<"inputerror,thenumberofchairsshouldbetween3and8!"<<endl;_getch();exit(0);}for(inti=1;i<chairs+1;i++){//初始化理發(fā)師信息from_file>>number[i];from_file>>cq[i].select;}from_file>>input_time[0]>>maohao>>input_time[1];//接收關門時間closetime=60*input_time[0]+input_time[1];//關門時間轉化cout<<"提供折扣y/n"<<endl;cin>>zhekou;if('y'==zhekou){from_file>>discount;cout<<"本日折扣為"<<discount<<"!"<<endl;}else{cout<<"本店今日不打折!"<<endl;}from_file.close();//關閉讀文件}voidFileOperation::FileOutput(ofstream&to_file,CustomerQueuecq[],int&total_money){intclass_money[4]={0};//按理發(fā)師級別統(tǒng)計當天收入intclass_worktime[4]={0};//按理發(fā)師級別統(tǒng)計當天工時to_file<<"本日賬目清單"<<endl<<endl;to_file<<"===============================按理發(fā)師==============================="<<endl<<endl;for(inti=1;i<chairs+1;i++){to_file<<"理發(fā)師編號:"<<i<<"級別:"<<cq[i].select<<"工作時長:"<<cq[i].worktime<<"本日盈收:"<<cq[i].money<<endl;}to_file<<"================================按級別==============================="<<endl<<endl;for(inti=1;i<chairs+1;i++){//按級別統(tǒng)計理發(fā)師工資和工時if(1==cq[i].select){class_money[1]+=cq[i].money;class_worktime[1]+=cq[i].worktime;}if(2==cq[i].select){class_money[2]+=cq[i].money;class_worktime[2]+=cq[i].worktime;}if(3==cq[i].select){class_money[3]+=cq[i].money;class_worktime[3]+=cq[i].worktime;}}for(inti=1;i<4;i++){//按級別將理發(fā)師的工資和工時、總創(chuàng)收輸出到文件中to_file<<i<<"級別理發(fā)師總工時:"<<class_worktime[i]<<"總收入:"<<class_money[i]<<endl;}to_file<<"=================================總匯==============================="<<endl<<endl;to_file<<"本日總創(chuàng)收:"<<total_money;to_file.close();//關閉寫文件}3.1.5barbergraph.cpp#include"barbergraph.h"voidbarbergraph::set_chairs(intchairs){this->chairs=chairs;}//通用繪圖函數,負責繪制圖例,時鐘,理發(fā)師信息〔不包括隊列〕,主要用于刷新界面voidbarbergraph::CommonGraph(CustomerQueuecq[],intopentime){//此處的opentime為nowtimeBeginBatchDraw();//開場批量繪圖,防止閃爍putimage(0,0,&my_clock);//將圖片集分別插到對應區(qū)域putimage(120,100,&background_img);putimage(120,0,&baber_desk);putimage(0,470,&door);rectangle(0,0,120,650);//左側框//輸出時鐘信息if((opentime-420)%60<10){//如果分鐘小于10,在顯示前面加0sprintf_s(now_time,"%d:0%d",7+(opentime-420)/60,(opentime-420)%60);}else{sprintf_s(now_time,"%d:%d",7+(opentime-420)/60,(opentime-420)%60);}setfont(50,0,"黑體");//設置時鐘字體setcolor(RED);//時鐘字體顏色outtextxy(10,20,now_time);setfont(15,0,"黑體");//恢復初始字體setcolor(WHITE);//恢復初始字體顏色//輸出圖例信息for(inti=0;i<5;i++){if(0==i){sprintf_s(graphic_symbol,"圖例:");}if(1==i){sprintf_s(graphic_symbol,"顧客到達");rectangle(20,170+i*70,90,190+i*70);setfillstyle(BLUE,SOLID_FILL);floodfill(55,175+i*70,WHITE);}if(2==i){sprintf_s(graphic_symbol,"顧客等待");rectangle(20,170+i*70,90,190+i*70);setfillstyle(RED,SOLID_FILL);floodfill(55,175+i*70,WHITE);}if(3==i){sprintf_s(graphic_symbol,"顧客離開");rectangle(20,170+i*70,90,190+i*70);setfillstyle(GREEN,SOLID_FILL);floodfill(55,175+i*70,WHITE);}if(4==i){sprintf_s(graphic_symbol,"顧客理發(fā)中");rectangle(20,170+i*70,90,190+i*70);setfillstyle(YELLOW,SOLID_FILL);floodfill(55,175+i*70,WHITE);}outtextxy(20,150+i*70,graphic_symbol);}//繪制理發(fā)師信息for(inti=0;i<chairs;i++){rectangle(120+i*150,0,120+(i+1)*150,100);}for(inti=1;i<chairs+1;i++){sprintf_s(barber_info,"編號%d級別:%d",i,cq[i].select);outtextxy(155+150*(i-1),40,barber_info);}}//靜態(tài)繪圖函數,用于初始化界面和顧客離開后暫停畫面voidbarbergraph::BarberGraph(CustomerQueuecq[],intopentime){CommonGraph(cq,opentime);for(inti=1;i<chairs+1;i++){p=cq[i].front;intj=0;while(p!=NULL){circle(195+150*(i-1),230+50*j++,20);if(1==j){setfillstyle(YELLOW,SOLID_FILL);//設置填充模式:黃色,固實填充floodfill(195+150*(i-1),230+50*(j-1),WHITE);//坐標所在的封閉區(qū)域為填充對象,最后一個參數為邊框顏色}else{setfillstyle(RED,SOLID_FILL);//設置填充模式:紅色,固實填充floodfill(195+150*(i-1),230+50*(j-1),WHITE);//坐標所在的封閉區(qū)域為填充對象,最后一個參數為邊框顏色}p=p->next;}}EndBatchDraw();//完畢批量繪圖_getch();//cleardevice();//以當前背風光清屏〔黑色〕}//繪制顧客到來瞬間界面voidbarbergraph::ArriveBarberGraph(CustomerQueuecq[],intarrival,intnowtime){CommonGraph(cq,nowtime);for(inti=1;i<chairs+1;i++){p=cq[i].front;intj=0;while(p!=NULL){circle(195+150*(i-1),230+50*j++,20);if(1==j){setfillstyle(YELLOW,SOLID_FILL);//設置填充模式:黃色,固實填充floodfill(195+150*(i-1),230+50*(j-1),WHITE);//坐標所在的封閉區(qū)域為填充對象,最后一個參數為邊框顏色}if(i==arrival&&p->next==NULL){setfillstyle(BLUE,SOLID_FILL);//設置填充模式:藍色,固實填充floodfill(195+150*(i-1),230+50*(j-1),WHITE);//坐標所在的封閉區(qū)域為填充對象,最后一個參數為邊框顏色}else{if(j>1){setfillstyle(RED,SOLID_FILL);//設置填充模式:紅色,固實填充floodfill(195+150*(i-1),230+50*(j-1),WHITE);//坐標所在的封閉區(qū)域為填充對象,最后一個參數為邊框顏色}}p=p->next;}}EndBatchDraw();_getch();//cleardevice();//以當前背風光清屏〔黑色〕}//繪制顧客離開瞬間界面voidbarbergraph::DepartBarberGraph(CustomerQueuecq[],intdeparture,intnowtime){CommonGraph(cq,nowtime);for(inti=1;i<chairs+1;i++){//隊列動態(tài)變換局部p=cq[i].front;intj=0;while(p!=NULL){circle(195+150*(i-1),230+50*j++,20);if(1==j){setfillstyle(YELLOW,SOLID_FILL);//設置填充模式:黃色,固實填充floodfill(195+150*(i-1),230+50*(j-1),WHITE);//坐標所在的封閉區(qū)域為填充對象,最后一個參數為邊框顏色}if(i==departure&&p==cq[i].front){setfillstyle(GREEN,SOLID_FILL);floodfill(195+150*(i-1),230+50*(j-1),WHITE);}else{if(j>1){setfillstyle(RED,SOLID_FILL);//設置填充模式:紅色,固實填充floodfill(195+150*(i-1),230+50*(j-1),WHITE);//坐標所在的封閉區(qū)域為填充對象,最后一個參數為邊框顏色}}p=p->next;}}EndBatchDraw();_getch();//cleardevice();//以當前背風光清屏〔黑色〕}3.1.6barbershop.cpp#include"barbershop.h"usingnamespacestd;voidBarberShop::OpenForDay(barbergraph&bg,intchairs){this->chairs=chairs;//從輸入函數中得到理發(fā)師人數bg.set_chairs(chairs);//將理發(fā)師人數傳到繪圖對象中initgraph(1024+(chairs-6)*150,650,1);//初始化界面大小〔根據理發(fā)師人數來初始化大小〕setbkmode(TRANSPARENT);//設置文字或圖片輸出背景為透明setfont(15,0,"黑體");//初始化字體setcolor(WHITE);//初始化字體顏色bg.BarberGraph(cq,opentime);//初始化界面信息Event*new_event=newEvent(opentime,0);//創(chuàng)立第一個事件ev.OrderIn(new_event);//插入事件表}//OpenForDayintBarberShop::Minimum(intselect){intmin_cq=1000;//最短隊列初始值intmin_length=1000;//假定初始最短長度為無窮for(inti=1;i<=chairs;i++){//尋找符合select的最短隊列if(cq[i].select==select&&cq[i].length<min_length){min_length=cq[i].length;min_cq=i;}}returnmin_cq;//返回最短隊列號}voidBarberShop::CustomerArrived(Random&ran,barbergraph&bg,floatdiscount){//處理客戶到達事件intselect=ran.Select();//隨機生本錢顧客的理發(fā)師級別選擇intdurtime=ran.Durtime();//隨機生本錢顧客的理發(fā)時長intintertime=ran.Intertime();//隨機生成下一個顧客的到來時間間隔intmoney=durtime/select*discount;//本顧客的消費額〔收費公式〕intmin_cq;//記錄最短隊列信息new_customer=newCustomer(durtime,select);//生本錢顧客實體total_money+=money;//計入總收入min_cq=Minimum(select);//求最短隊列cout<<"min_cq:"<<min_cq<<"";cout<<"selece:"<<select<<""<<"durtime:"<<durtime<<""<<"intertime:"<<intertime<<"";cout<<"("<<7+(cur_event->occurtime-420)/60<<":"<<(cur_event->occurtime-420)%60<<","<<cur_event->event_type<<")"<<endl;//時間轉換公式cq[min_cq].money+=money;//計入min_cq隊列理發(fā)師總收入cq[min_cq].worktime+=durtime;//計入min_cq隊列理發(fā)師工作時間cq[min_cq].EnQueue(new_customer);//入隊bg.ArriveBarberGraph(cq,min_cq,cur_event->occurtime);//在圖形界面上顯示到來顧客intt=cur_event->occurtime+intertime;//下一顧客的到來時間if(t<closetime){//下一顧客到來未關門new_event=newEvent(t,0);ev.OrderIn(new_event);//生成下一顧客到達事件插入事件表}if(1==cq[min_cq].length){//如果新來的顧客在隊頭new_event=newEvent(cur_event->occurtime+durtime,min_cq);ev.OrderIn(new_event);//生本錢顧客的離開事件插入事件表}}//CustomerArrived//客戶離開事件voidBarberShop::CustomerDeparture(barbergraph&bg){//注意:隊列中超過兩個人時下個人的離開事件從前一個人離開時開場計時。inti=cur_event->event_type;//記錄要刪除的隊列編號cout<<"dep_cq:"<<i<<"";cout<<"("<<7+(cur_event->occurtime-420)/60<<":"<<(cur_event->occurtime-420)%60<<","<<cur_event->event_type<<")"<<endl;bg.DepartBarberGraph(cq,i,cur_event->occurtime);//將離開的顧客用圖形表示出來cq[i].DelQueue();//刪除第i隊的排頭客戶bg.BarberGraph(cq,cur_event->occurtime);//繪制顧客離開后的畫面if(0!=cq[i].length){//設定第i隊列的隊頭離開事件插入事件表new_event=newEvent(cur_event->occurtime+cq[i].front->durtime,i);ev.OrderIn(new_event);}}//CustomerDeparturevoidBarberShop::BarberSimulation(Random&ran,barbergraph&bg,intchairs,floatdiscount){OpenForDay(bg,chairs);//開門初始化while(!ev.ListEmpty()){//事件驅動主體,只要事件表不為空則一直執(zhí)行第一個事件cur_event=ev.head->next_event;//獲取當前事件(表中第二個結點)if(0==cur_event->event_type){//如果為0則為到來事件CustomerArrived(ran,bg,discount);

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論