C語言程序設(shè)計(第3版)課件chap10-函數(shù)與程序結(jié)構(gòu)_第1頁
C語言程序設(shè)計(第3版)課件chap10-函數(shù)與程序結(jié)構(gòu)_第2頁
C語言程序設(shè)計(第3版)課件chap10-函數(shù)與程序結(jié)構(gòu)_第3頁
C語言程序設(shè)計(第3版)課件chap10-函數(shù)與程序結(jié)構(gòu)_第4頁
C語言程序設(shè)計(第3版)課件chap10-函數(shù)與程序結(jié)構(gòu)_第5頁
已閱讀5頁,還剩60頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Chap

10函數(shù)與程序結(jié)構(gòu)10.1圓形體積計算器10.2漢諾塔問題10.3長度單位轉(zhuǎn)換10.4大程序構(gòu)成本章要點(diǎn)怎樣把多個函數(shù)組織起來?怎樣用結(jié)構(gòu)化程序設(shè)計的思想解決問題?怎樣用函數(shù)嵌套求解復(fù)雜的問題?怎樣用函數(shù)遞歸解決問題?如何使用宏?如何使用多文件模塊構(gòu)建較大規(guī)模程序使用結(jié)構(gòu)化程序設(shè)計方法解決復(fù)雜的問題把大問題分解成若干小問題,小問題再進(jìn)一步分解成若干更小的問題寫程序時,用main()解決整個問題,它調(diào)用解決小問題的函數(shù)這些函數(shù)又進(jìn)一步調(diào)用解決更小問題的函數(shù),從而形成函數(shù)的嵌套調(diào)用10.1圓形體積計算器main()函數(shù)1函數(shù)2……函數(shù)m函數(shù)1_1函數(shù)1_2函數(shù)m_1函數(shù)m_n……程序結(jié)構(gòu)例10-1設(shè)計一個常用圓形體體積計算器,采用命令方式輸入1、2、3,分別選擇計算球體、圓柱體、圓錐體的體積,并輸入計算所需相應(yīng)參數(shù)。分析:輸入1、2、3選擇計算3種體積,其他輸入結(jié)束計算設(shè)計一個控制函數(shù)cal(),經(jīng)它辨別圓形體的類型再調(diào)用計算球體、圓柱體、圓錐體體積的函數(shù)設(shè)計單獨(dú)的函數(shù)計算不同圓形體的體積10.1.1程序解析-計算常用圓形體體積3層結(jié)構(gòu),5個函數(shù)降低程序的構(gòu)思、編寫、調(diào)試的復(fù)雜度可讀性好程序結(jié)構(gòu)main()cal()vol_ball()vol_cylind()vol_cone()例10-1源程序#definePI3.141592654voidcal(intsel);

doublevol_ball(void);

doublevol_cylind(void);

doublevol_cone(void);intmain(void){intsel;

while(1){printf("1-計算球體體積\n");

printf("2-計算圓柱體積\n"); printf("3-計算圓錐體積\n"); printf("其他-退出程序運(yùn)行\(zhòng)n"); printf(“請輸入計算命令:");

scanf("%d",&sel); if(sel<1||sel>3)

break; /*輸入非1~3,循環(huán)結(jié)束*/

else

cal(sel); /*輸入1~3,調(diào)用cal()*/ }return0;}/*常用圓形體體積計算器的主控函數(shù)*/voidcal(intsel){switch(sel){ case1: printf("球體積為:%.2f\n",vol_ball()); break;case2:

printf("圓柱體積為:%.2f\n",vol_cylind()); break;case3:

printf("圓錐體積為:%.2f\n",vol_cone()); break; }}/*計算球體體積V=4/3*PI*r*r*r*/doublevol_ball(){doubler;printf("請輸入球的半徑:");scanf("%lf",&r);return(4.0/3.0*PI*r*r*r);}/*計算圓柱體積V=PI*r*r*h*/doublevol_cylind(){doubler,h;printf("請輸入圓柱的底圓半徑和高:");scanf("%lf%lf",&r,&h);return(PI*r*r*h);}/*計算圓錐體積V=h/3*PI*r*r*/doublevol_cone(){doubler,h;printf("請輸入圓錐的底圓半徑和高:");

scanf("%lf%lf",&r,&h);return(PI*r*r*h/3.0);}10.1.2函數(shù)的嵌套調(diào)用順序調(diào)用intmain(void){……y=fact(3);……z=mypow(3.5,2);

……}doublefact(intn){……}doublemypow(doublex,inn){……}mainfactmypowmainfactmypow嵌套調(diào)用intmain(void){……cal(sel);

……}voidcal(intsel){ ……

vol_ball()……}doublevol_ball(){ ……}maincalvol_ballmaincalvol_ball10.1.2函數(shù)的嵌套調(diào)用例10-1分析vol_ball();vol_cylind();vol_cone();intmain(void){

……

cal(sel);}voidcal(intsel){ ……

}doublevol_ball(){ ……}doublevol_cylind(){ ……}doublevol_cone(){……}main()cal()vol_ball()vol_cylind()vol_cone()在一個函數(shù)中再調(diào)用其它函數(shù)的情況稱為函數(shù)的嵌套調(diào)用。如果函數(shù)A調(diào)用函數(shù)B,函數(shù)B再調(diào)用函數(shù)C,一個調(diào)用一個地嵌套下去,構(gòu)成了函數(shù)的嵌套調(diào)用。具有嵌套調(diào)用函數(shù)的程序,需要分別定義多個不同的函數(shù)體,每個函數(shù)體完成不同的功能,它們合起來解決復(fù)雜的問題。10.1.2函數(shù)的嵌套調(diào)用結(jié)構(gòu)化程序設(shè)計方法自頂向下,逐步求精,函數(shù)實現(xiàn)自頂向下:程序設(shè)計時,應(yīng)先考慮總體步驟,后考慮步驟的細(xì)節(jié);先考慮全局目標(biāo),后考慮局部目標(biāo)。先從最上層總目標(biāo)開始設(shè)計,逐步使問題具體化。不要一開始就追求眾多的細(xì)節(jié)。逐步求精:對于復(fù)雜的問題,其中大的操作步驟應(yīng)該再將其分解為一些子步驟的序列,逐步明晰實現(xiàn)過程。函數(shù)實現(xiàn):通過逐步求精,把程序要解決的全局目標(biāo)分解為局部目標(biāo),再進(jìn)一步分解為具體的小目標(biāo),把最終的小目標(biāo)用函數(shù)來實現(xiàn)。問題的逐步分解關(guān)系,構(gòu)成了函數(shù)間的調(diào)用關(guān)系。限制函數(shù)的長度。一個函數(shù)語句數(shù)不宜過多,既便于閱讀、理解,也方便程序調(diào)試。若函數(shù)太長,可以考慮把函數(shù)進(jìn)一步分解實現(xiàn)。避免函數(shù)功能間的重復(fù)。對于在多處使用的同一個計算或操作過程,應(yīng)當(dāng)將其封裝成一個獨(dú)立的函數(shù),以達(dá)到一處定義、多處使用的目的,以避免功能模塊間的重復(fù)。減少全局變量的使用。應(yīng)采用定義局部變量作為函數(shù)的臨時工作單元,使用參數(shù)和返回值作為函數(shù)與外部進(jìn)行數(shù)據(jù)交換的方式。只有當(dāng)確實需要多個函數(shù)共享的數(shù)據(jù)時,才定義其為全局變量。函數(shù)設(shè)計時應(yīng)注意的問題10.2漢諾塔問題10.2.1程序解析10.2.2遞歸函數(shù)基本概念10.2.3遞歸程序設(shè)計10.2.1漢諾(Hanoi)塔問題解析

將64個盤從座A搬到座B(1)一次只能搬一個盤子(2)盤子只能插在A、B、C三個桿中(3)大盤不能壓在小盤上

A B C分析

A B C分析

A B C

A B Cnn-1n-1分析

A B C

A B Cn10.2.1漢諾(Hanoi)塔問題解析遞歸方法的兩個要點(diǎn)(1)遞歸出口:一個盤子的解決方法;(2)遞歸式子:如何把搬動64個盤子的問題簡化成搬動63個盤子的問題。把漢諾塔的遞歸解法歸納成三個步驟:n-1個盤子從座A搬到座C第n號盤子從座A搬到座Bn-1個盤子從座C搬到座B算法:hanio(n個盤,A→B,C為過渡){if(n==1)

直接把盤子A→Belse{hanio(n-1個盤,A→C,B為過渡)

把第n號盤A→B hanio(n-1個盤,C→B,A為過渡) }}

A B Cn-110.2.2遞歸函數(shù)基本概念例10-2用遞歸函數(shù)實現(xiàn)求n!遞推法在學(xué)習(xí)循環(huán)時,計算n!采用的就是遞推法:

n!=1×2×3×…×n用循環(huán)語句實現(xiàn):

result=1; for(i=1;i<=n;i++) result=result*i;遞歸法n!=n×(n-1)! 當(dāng)n>1 遞歸式子=1 當(dāng)n=1或n=0 遞歸出口即求n!可以在(n-1)!的基礎(chǔ)上再乘上n。如果把求n!寫成函數(shù)fact(n),則fact(n)的實現(xiàn)依賴于fact(n-1)。10.2.2遞歸函數(shù)基本概念例10-2用遞歸函數(shù)求n!。#include<stdio.h>doublefact(intn);intmain(void){intn;scanf("%d",&n);printf("%f",fact(n));return0;}doublefact(intn) /*函數(shù)定義*/{doubleresult;

if(n==1||n==0) /*遞歸出口*/result=1;elseresult=n*fact(n-1);

returnresult;}10.2.2遞歸函數(shù)基本概念遞歸式遞歸出口例10-2分析求n!遞歸定義n!=n*(n-1)!(n>1)n!=1(n=0,1)#include<stdio.h>doublefact(intn);intmain(void){intn;scanf("%d",&n);printf("%f",fact(n));return0;}doublefact(intn){doubleresult;

if(n==1||n==0)result=1;elseresult=n*fact(n-1);

returnresult;}fact(n)=n*fact(n-1);main()fact(3)fact(2)fact(1){....{....{....{....printf(fact(3))f=3*fact(2)f=2*fact(1)f=1}return(f)return(f)return(f)}}}遞歸函數(shù)fact(n)的實現(xiàn)過程fact(3)=3*fact(2)=

2*fact(1)=

fact(1)=12*1=23*2=6同時有4個函數(shù)在運(yùn)行,且都未完成10.2.3遞歸程序設(shè)計用遞歸實現(xiàn)的問題,滿足兩個條件:問題可以逐步簡化成自身較簡單的形式(遞歸式)n!=n*(n-1)!nn-1Σi=n+Σi

i=1i=1遞歸最終能結(jié)束(遞歸出口)兩個條件缺一不可解決遞歸問題的兩個著眼點(diǎn)10.2.3遞歸程序設(shè)計例10-3編寫遞歸函數(shù)reverse(intn)實現(xiàn)將整數(shù)n逆序輸出。

分析:將整數(shù)n逆序輸出可以用循環(huán)實現(xiàn),且循環(huán)次數(shù)與n的位數(shù)有關(guān)。遞歸實現(xiàn)整數(shù)逆序輸出也需要用位數(shù)作為控制點(diǎn)。歸納遞歸實現(xiàn)的兩個關(guān)鍵點(diǎn)如下:遞歸出口:直接輸出n,如果n<=9,即n為1位數(shù)遞歸式子:輸出個位數(shù)n%10,再遞歸調(diào)用reverse(n/10)輸出前n-1位,如果n為多位數(shù)10.2.3遞歸程序設(shè)計由于結(jié)果是在屏幕上輸出,因此函數(shù)返回類型為voidvoidreverse(intnum){ if(num<=9) printf("%d",num); /*遞歸出口*/ else{ printf("%d",num%10); reverse(num/10); /*遞歸調(diào)用*/ }}例10-4漢諾(Hanoi)塔問題

A B Chanio(n個盤,A→B,C為過渡){if(n==1)

直接把盤子A→Belse{hanio(n-1個盤,A→C,B為過渡)

把n號盤A→B hanio(n-1個盤,C→B,A為過渡) }}

源程序

/*搬動n個盤,從a到b,c為中間過渡*/voidhanio(intn,chara,charb,charc){if(n==1)printf("%c-->%c\n",a,b);else{hanio(n-1,a,c,b);printf("%c-->%c\n",a,b);hanio(n-1,c,b,a);}}intmain(void){intn;printf("inputthenumberofdisk:");scanf("%d",&n);printf("thestepsfor%ddiskare:\n",n);hanio(n,'a',‘b',‘c');return0;}inputthenumberofdisk:3thestepsfor3diskare:a-->ba-->cb-->ca-->bc-->ac-->ba-->b

A B Cinputthenumberofdisk:3thestepsfor3diskare:a-->ba-->cb-->ca-->bc-->ac-->ba-->b課堂練習(xí):利用遞歸函數(shù)計算x的n次冪intmi(intx,intn){

if(n==1) returnx;

else

returnx*mi(x,n-1);}10.3長度單位轉(zhuǎn)換10.3.1程序解析10.3.2宏基本定義10.3.3帶參數(shù)的宏定義10.3.4文件包含10.3.5編譯預(yù)處理10.3.1程序解析

例10-5歐美國家長度使用英制單位,1英里=1609米,1英尺=30.48厘米,1英寸=2.54厘米。請編寫程序轉(zhuǎn)換。#include<stdio.h>#defineMile_to_meter1609 /*1英里=1609米*/#defineFoot_to_centimeter30.48/*1英尺=30.48厘米*/#defineInch_to_centimeter2.54/*1英寸=2.54厘米*/intmain(void){ floatfoot,inch,mile; /*定義英里,英尺,英寸變量*/ printf("Inputmile,footandinch:"); scanf("%f%f%f",&mile,&foot,&inch); printf("%fmiles=%fmeters\n",mile,mile*Mile_to_meter); /*計算英里的米數(shù)*/ printf("%ffeet=%fcentimeters\n",foot,foot* Foot_to_centimeter); /*計算英尺的厘米數(shù)*/ printf("%finches=%fcentimeters\n",inch,inch* Inch_to_centimeter); /*計算英寸的厘米數(shù)*/ return0;}Inputmile,footandinch:1.235.11.200000miles=1930.800077meters3.000000feet=91.440000centimeters5.100000inches=12.954000centimeters10.3.2宏基本定義

#define宏名標(biāo)識符宏定義字符串編譯時,把程序中所有與宏名相同的字符串,用宏定義字符串替代#definePI3.14#definearr_size4說明:宏名一般用大寫字母,以與變量名區(qū)別宏定義不是C語句,后面不得跟分號宏定義可以嵌套使用 #definePI3.14 #defineS2*PI*PI多用于符號常量宏定義可以寫在程序中任何位置,它的作用范圍從定義書寫處到文件尾??梢酝ㄟ^“#undef”強(qiáng)制指定宏的結(jié)束范圍。10.3.2宏基本定義#defineA“Thisisthefirstmacro”voidf1(){printf(“A\n”);}#defineB“Thisisthesecondmacro”

A的有效范圍voidf2(){printf(B); B的有效范圍}#undefBintmain(void){f1();f2();return0;}宏的作用范圍10.3.3帶參數(shù)的宏定義例10-6簡單的帶參數(shù)的宏定義。#include<stdio.h>#defineMAX(a,b)a>b?a:b#defineSQR(x)x*xintmain(void){ intx,y; scanf(“%d%d”,&x,&y); x=MAX(x,y); /*引用宏定義*/ y=SQR(x); /*引用宏定義*/ printf(“%d%d\n”,x,y); return0;}10.3.3帶參數(shù)的宏定義例:#definef(a)a*a*aint main(void)/*水仙花數(shù)*/{inti,x,y,z;for(i=1;i<1000;i++){x=i%10;y=i/10%10;z=i/100;if(x*x*x+y*y*y+z*z*z==i) printf(“%d\n”,i);} return0;}#definef(a)(a)*(a)*(a)各位數(shù)字的立方和等于它本身的數(shù)。例如153的各位數(shù)字的立方和是13+53+33=153=x+y*x+y*x+y(f(x)+f(y)+f(z)==i)f(x+y)=(x+y)3?

#definef(a,b,t)t=a;a=b;b=t;intmain(){ intx,y,t; scanf(“%d%d”,&x,&y); f(x,y,t) printf(“%d%d\n”,x,y); return0;}t=x;x=y;y=t;編譯時被替換帶參數(shù)的宏定義不是函數(shù),宏與函數(shù)是兩種不同的概念宏可以實現(xiàn)簡單的函數(shù)功能示例用宏實現(xiàn)兩個變量值的交換與函數(shù)的區(qū)別在哪里?宏定義應(yīng)用示例定義宏LOWCASE,判斷字符c是否為小寫字母。

#defineLOWCASE(c)(((c)>='a')&&((c)<='z'))

定義宏CTOD將數(shù)字字符(‘0’~‘9’)轉(zhuǎn)換為相應(yīng)的 十進(jìn)制整數(shù),-1表示出錯。

#defineCTOD(c)(((c)>='0')&&((c)<='9')?c-'0':-1)

#defineF(x)x-2#defineD(x)x*F(x)intmain(){printf("%d,%d",D(3),D(D(3))); return0;}練習(xí)——帶宏定義的程序輸出閱讀帶宏定義的程序,先全部替換好,最后再統(tǒng)一計算不可一邊替換一邊計算,更不可以人為添加括號D(3)=x*F(x) 先用x替換展開 =x*x-2進(jìn)一步對F(x)展開,這里不能加括號 =3*3-2=7 最后把x=3代進(jìn)去計算D(D(3))=D(x*x-2)先對D(3)用x替換展開, =x*x-2*F(x*x-2)拿展開后的參數(shù)對D進(jìn)一步進(jìn)行宏替換 =x*x-2*x*x-2-2拿展開后的參數(shù)對F進(jìn)一步進(jìn)行宏替換 =3*3-2*3*3-2-2=-13 最后把x=3代進(jìn)去計算運(yùn)行結(jié)果:7-13結(jié)果分析10.3.4文件包含系統(tǒng)文件以stdio.h、math.h等形式供編程者調(diào)用實用系統(tǒng)往往有自己諸多的宏定義,也以.h的形式組織、調(diào)用問題:如何把若干.h頭文件連接成一個完整的可執(zhí)行程序?文件包含include格式#include<需包含的文件名>#include“需包含的文件名”作用把指定的文件模塊內(nèi)容插入到#include所在的位置,當(dāng)程序編譯連接時,系統(tǒng)會把所有#include指定的文件拼接生成可執(zhí)行代碼。注意編譯預(yù)處理命令,以#開頭。在程序編譯時起作用,不是真正的C語句,行尾沒有分號。文件包含系統(tǒng)文件夾當(dāng)前文件夾+系統(tǒng)文件夾例10-7將例10-5中長度轉(zhuǎn)換的宏,定義成頭文件length.h,并寫出主函數(shù)文件。頭文件length.h源程序#defineMile_to_meter1609 /*1英里=1609米*/#defineFoot_to_centimeter30.48 /*1英尺=30.48厘米*/#defineInch_to_centimeter2.54 /*1英寸=2.54厘米*/主函數(shù)文件prog.c源程序#include<stdio.h>#include“l(fā)ength.h” /*包含自定義頭文件*/intmain(void){ floatfoot,inch,mile; /*定義英里,英尺,英寸變量*/ printf("Inputmile,footandinch:"); scanf("%f%f%f",&mile,&foot,&inch); printf("%fmiles=%fmeters\n",mile,mile*Mile_to_meter);

printf("%ffeet=%fcentimeters\n",foot,foot*Foot_to_centimeter);

printf("%finches=%fcentimeters\n",inch,inch*Inch_to_centimeter);

return0;}將例10-1的5個函數(shù)分別存儲在2個.C文件上,要求通過文件包含把它們聯(lián)結(jié)起來。頭文件length.h#defineMile_to_meter1609#defineFoot_to_centimeter30.48#defineInch_to_centimeter2.54主函數(shù)文件prog.c#include<stdio.h>#include“l(fā)ength.h”

intmain(void){floatmile,foot,inch;

…… return0;}編譯連接后生成的程序

…stdio.h的內(nèi)容#defineMile_to_meter1609#defineFoot_to_centimeter30.48#defineInch_to_centimeter2.54intmain(void){floatmile,foot,inch; ……return0;}ctype.h字符處理 math.h與數(shù)學(xué)處理函數(shù)有關(guān)的說明與定義stdio.h輸入輸出函數(shù)中使用的有關(guān)說明和定義string.h字符串函數(shù)的有關(guān)說明和定義 stddef.h定義某些常用內(nèi)容 stdlib.h 雜項說明 time.h支持系統(tǒng)時間函數(shù) 常用標(biāo)準(zhǔn)頭文件編譯預(yù)處理是C語言編譯程序的組成部分,它用于解釋處理C語言源程序中的各種預(yù)處理指令。文件包含(#include)和宏定義(#define)都是編譯預(yù)處理指令在形式上都以“#”開頭,不屬于C語言中真正的語句增強(qiáng)了C語言的編程功能,改進(jìn)C語言程序設(shè)計環(huán)境,提高編程效率10.3.5編譯預(yù)處理C程序的編譯處理,目的是把每一條C語句用若干條機(jī)器指令來實現(xiàn),生成目標(biāo)程序。由于#define等編譯預(yù)處理指令不是C語句,不能被編譯程序翻譯,需要在真正編譯之前作一個預(yù)處理,解釋完成編譯預(yù)處理指令,從而把預(yù)處理指令轉(zhuǎn)換成相應(yīng)的C程序段,最終成為由純粹C語句構(gòu)成的程序,經(jīng)編譯最后得到目標(biāo)代碼。編譯預(yù)處理編譯預(yù)處理的主要功能:文件包含(#include)宏定義(#define)條件編譯編譯預(yù)處理功能條件編譯#defineFLAG1#ifFLAG

程序段1#else

程序段2#endif編譯預(yù)處理功能10.4大程序構(gòu)成

——多文件模塊的學(xué)生信息庫系統(tǒng)10.4.1分模塊設(shè)計學(xué)生信息庫系統(tǒng)10.4.2C程序文件模塊10.4.3文件模塊間的通信10.4.1分模塊設(shè)計學(xué)生信息庫系統(tǒng)例10-8請綜合例9-1、例9-2、例9-3和例9-4,分模塊設(shè)計一個學(xué)生信息庫系統(tǒng)。該系統(tǒng)包含學(xué)生基本信息的建立和輸出、計算學(xué)生平均成績、按照學(xué)生的平均成績排序以及查詢、修改學(xué)生的成績等功能。函數(shù)建立為:

10.4.1分模塊設(shè)計學(xué)生信息庫系統(tǒng)由于整個程序規(guī)模較大,按照功能圖,分成三個程序文件模塊,并把結(jié)構(gòu)體定義等寫成一個頭文件。頭文件student.h

輸入輸出程序文件input_output.cvoidnew_student(structstudentstudents[])voidoutput_student(structstudentstudents[])計算平均成績與平均成績排序程序文件aver_sort.cvoidaverage(structstudentstudents[])voidsort(structstudentstudents[])查詢修改程序文件modify.cvoidmodify(structstudentstudents[])voidsearch_student(structstudentstudents[],intnum)10.4.1分模塊設(shè)計學(xué)生信息庫系統(tǒng)一共定義了三個.c程序文件和一個.h頭文件,它們各自獨(dú)立,再通過主函數(shù)main()調(diào)用。主函數(shù)放在student_system.c文件中,各文件存放在同一個文件夾下,相互間的連接采用文件包含的形式。主函數(shù)程序文件student_system.c#inclu

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論