C++大學(xué)教程課后習(xí)題答案11_第1頁(yè)
C++大學(xué)教程課后習(xí)題答案11_第2頁(yè)
C++大學(xué)教程課后習(xí)題答案11_第3頁(yè)
C++大學(xué)教程課后習(xí)題答案11_第4頁(yè)
C++大學(xué)教程課后習(xí)題答案11_第5頁(yè)
已閱讀5頁(yè),還剩28頁(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)介

Chapter12

SeparateCompilationandNamespaces

1.SolutionstoandRemarksonSelectedProgrammingProblems

1.DigitalTime

AddthefollowingmemberfunctiontotheADTclassDigitalTime.definedinDisplay

12.1and12.2.

void

DigitalTime::interval_since(constDigitalTime&aPreviousTime,

int&hourslnlnterval,

int&minutesInInterval);

Thedifferenceintheelapsedtimebetweenthetimeofthecallingobjectandthetimeof

theargumentobjectisreportedintheargumentsfortheintreferenceshoursandminutes

parameters.

Questionarisinginthesolution:Inexactlywhatdays(previous,current,successor)are

thesetimesallowedtobe?

Bothtimesinthesame(current)day,orcurrenttimeisinthecurrentdayandtheprevious

timeisinthepreviousday.

ThisBooleanexpressionistrueiftheprevioustimeisinthepreviousday:

(hour<prev.hour||hour==prev.hour&&minute<

prev.minute)

Thetimedifference

(callingobjtime)-(argumentpreviousobjtime)

actuallymeans

(callinghours:minutes)-(argumentprevioushours:minutes)

Copyright?2008PearsonEducation,Inc.PublishingasPearsonAddison-Wesley

This(perhaps)maybemoreclearlywritten

(caller_hours-prev_hours):(caller_minutes-prev_minutes)

raw_difference=

(caller_hours-prev_hours):(caller_minutes-prev_minutes)

whichwillneedfixingifeitherthehourortheminutearenegative.

Someexamples:

Timesinsameday,bothdifferencespositive:

11:1515:30

a_previous_timecallertime

raw_difference=(15-11):(30-15)=4:15

0<difference_minutes<60,

Sowedon'tneedtofixthetime.

difference=raw_difference

Timesinsameday,minutesdifferencesnegative:

I.I

11:305:15

a_previous_timecallertime

raw_difference=(15-11):(15-30)=4:(-15)

Thedifference_minute<0,sowedecrementhoursandadd60minutesto

minute,gettingtheintervalsincea_previous_time=3:45

Exampleswhereprevioustimeislaterthancaller'stime,sotimesareindifferent

days.

Wehavetimesondifferentdaysifthe

rawdifferencehour<0or

rawdifferencehour=0andrawdifferenceminute<0

thatis

(hour<prev.hour||hour==

prev.hour&&minute<prev.minute)

Whencaller'stimeisonapreviousday,add24toraw_differenceandfixminutesif

necessary.

Differencehoursnegative,differenceminutespositive:

previousdaycurrentday

||

12:3011:15

a_previous_timecallertime

raw_difference=(11-12):(15-30)=(-1):(-15)

difference=raw_difference+24:00

=(-1):(-15)+24:00=23:(-15)

differenceminutes<0,

whichwefixbyadding60anddecrementinghourstoget22:45

Bothdifferencehoursanddifferenceminutesarenegative:

previousdaycurrentday

||

12:1511:30

a_previous_timecallertime

raw_difference=(11-12):(30-15)=(-1):15

difference=raw_difference+24:00

=(-1):15+24:00=23:15

(differenceminutes>0sonofixisneeded)

previousdaycurrentday

12:5911:01

previoustimecaller'stime

raw_difference

=(caller_hours-prev_hours):(caller_min-prev_min)

=(11-12):(01-59)=(-1):(-58)

difference=raw_difference+24:00

=(-1):(-58)+24:00=23:(-58)

minutes<0,

soweneedtofixbydecrementinghoursandadding60tominutes.Thefixedtimeis

22:02

TheclassDigitalTimedefinition,withintervalsinceadded:

//file:dtime.h

//modifiedfromtextforChapter12problem1byaddition

//ofpublicfunctionsnormalizeandinterval_since.

//InterfaceforclassDigitalTime

//valuesareinputandoutputin24hourtime:

//9:30AMis9:30,and2:45PMis14:45

#include<iostream>

usingnamespacestd;

classDigitalTime

public:

friendbooloperator==(constDigitalTime&zconst

DigitalTime&);

DigitalTime(intthe_hourzintthe_minute);

DigitalTime();//settimetomidnight:0:00

voidadvance(intminutes_added);

voidadvance(inthours_addedzintminutes_added);

friendistream&operator>>(istream&,DigitalTime^);

friendostream&operator<<(ostream&zconstDigitalTime^);

//memberaddedforProgrammingProblem1zpage488

voidinterval_since(constDigitalTime&prev_timez

int&hours_in_interval,

int&minutes_in_interval)const;

private:

inthour;

intminute;

);

Thetestprogram:

//File:chl2prbl.cc

//Chapter12problem1:interval_sincetestprogram.

#include<iostream>

#include"dtime.hn

usingnamespacestd;

intmain()

cout<<"TestProgrammingProblem1n<<endl<<endl;

DigitalTimecurrentzprevious;

inthourszminutes;

charans;

do

cout<<"Enteracurrenttimein24hournotation";

cin>>current;

cout<<""<<current<<endl

<<nEnteraprevioustimein24hournotation;

cin>>previous;

cout<<*'*'<<previous<<endl;

erval_since(previouszhourszminutes);

cout<<"Thetimeintervalbetween”<<previous

<<'*and"<<current<<endl

<<"is"<<hours<<"hoursand"

<<minutes<<Hminutes11<<endl;

cout<<nY/yrepeats,anyothercharacterends"<<endl;

cin>>ans;

cout<<nn<<ans<<endl;

}while(1y*==ans||1Y1==ans);

return0;

)

Hereisthecodeforthefunctionintervalsince:

#include"dtime.hn

ttinclude<iostream>

usingnamespacestd;

void

DigitalTime::interval_since(constDigitalTime&prevz

int&hours_in_intervalz

int&minutes_in_interval)const

{——

DigitalTimedifference;

difference.hour=hour-prev.hour;

difference.minute=minute-prev.minute;

if(hour<prev.hour

hour==prev.hour&&minute<prev.minute)

(

cout<<n1Previous*timeisinthepreviousday"

<<endl;

difference.hour=24+(hour-prev.hour);

)

if(difference.minute<0)

(

difference.hour--;

difference.minute=difference.minute+60;

)

hours_in_interval=difference.hour;

minutes_in_interval=difference.minute;

)——

Testdataforatypicalrun:

3:155:30y3:305:15y5:153:30y5:303:15y11:5911:58y

11:5811:59y

12:0112:00y12:0012:01n

Outputfromatypicalrun,generatedbythiscommandissuedatthecommand

prompt:

13:32:29:-/AW$chl2prbl<chl2prbl.in>chl2prbl.out

13:32:31:^/AW$catchllprbl.out

TestProgrammingProblem1

Enteracurrenttimein24hournotation3:15

Enteraprevioustimein24hournotation5:30

1Previous*timeisinthepreviousday

Thetimeintervalbetween5:30and3:15

is21hoursand45minutes

Y/yrepeats,anyothercharacterends

y

Enteracurrenttimein24hournotation3:30

Enteraprevioustimein24hournotation5:15

'Previous*timeisinthepreviousday

Thetimeintervalbetween5:15and3:30

is22hoursand15minutes

Y/yrepeats,anyothercharacterends

y

Enteracurrenttimein24hournotation5:15

Enteraprevioustimein24hournotation3:30

Thetimeintervalbetween3:30and5:15

is1hoursand45minutes

Y/yrepeats,anyothercharacterends

y

Enteracurrenttimein24hournotation5:30

Enteraprevioustimein24hournotation3:15

Thetimeintervalbetween3:15and5:30

is2hoursand15minutes

Y/yrepeats,anyothercharacterends

y

Enteracurrenttimein24hournotation11:59

Enteraprevioustimein24hournotation11:58

Thetimeintervalbetween11:58and11:59

is0hoursand1minutes

Y/yrepeatszanyothercharacterends

y

Enteracurrenttimein24hournotation11:58

Enteraprevioustimein24hournotation11:59

1Previous*timeisinthepreviousday

Thetimeintervalbetween11:59and11:58

is23hoursand59minutes

Y/yrepeats,anyothercharacterends

y

Enteracurrenttimein24hournotation12:01

Enteraprevioustimein24hournotation12:00

Thetimeintervalbetween12:00and12:01

is0hoursand1minutes

Y/yrepeatszanyothercharacterends

y

Enteracurrenttimein24hournotation12:00

Enteraprevioustimein24hournotation12:01

'Previous1timeisinthepreviousday

Thetimeintervalbetween12:01and12:00

is23hoursand59minutes

Y/yrepeatszanyothercharacterends

n

Optional:TheMakeUtilityandMakefiles:

InordertocompilethefilesfromthisproblemIcouldhavetypedin

g++dtime.ccchl2prbl.add.ccchl2prbl.cc

eachtimeIwantedtocompileandlinkthefiles.Instead,Icreatedafile,called

makefile,orMakefile,whichisinterpretedbythemakeprogram.(Fmtalkingabout

Unix/Linuxmake,butBorlandandotherC++compilervendorshaveprogramswith

similarcapability,butsomewhatdifferentsyntaxforthemakefile.)

Themakeutilityenablesyoutosplitthecompilingofalargeprogramintotheautomatic

compilinganumberofsmallerpieces,thenautomaticallycallingthelinkprogramtohook

yourpiecestogether.

HereisthemakefileIusedtocompilethisprogram,completewiththedidactic

commentaryIhabituallyputintomyprogramsandutilities.

#File:makefile

#For:Chapter12Problem1.

#Use:tocreateyourexecutablezissuethecommand:

#

#make

#

#toremovethe.ofiles,issuethecommand:

#

#makeclean

chl2prbl:chl2prbl.ochl2prbl.add.odtime.odtime.h

g++-ochl2prblchl2prbl.ochl2prbl.add.odtime.o

#leadcharactermustbea<tab>.Withoutitzyougeta

#(notveryclear)errormessagefrommakesuchas

#Makefile:12:missingseparator.Stop.

#The12isthelinenumberwheretheerrorwasdetected.

#Thenextlinesareacleanupforuseaftercompiling.

clean:

rmchl2prbl.odtime.ochl2prbl.add.o

#leadcharactermustbea<tab>.Withoutityougetanerror

frommake

#Makefile:20:missingseparator.Stop.

#The20isthelinenumberwheretheerrorwasdetected.

IwilldiscusstheMakefilelinebyline.

NamethiseitherMakefileormakefile,andkeepitinthesamedirectorywithyour

C++codefiles.ThemakeprogramselectsmakefilebeforeMakefiletofollowinthe

compilingofaprogram.

Thelinesthatbeginwith#arecomments.Thelinesthatstartwithanidentifierfollowed

bya:,followedbyasequenceoffilenameswitha.oextension,arecalleddependency

lines.Theidentifierisjustalabel.Itcouldbecow:aswellaschllprbl:.Itsays

wehaveatask,andthattaskdependsonthesefileswith.oextensions,andanything

thesefilesdependon(inparticular,thefilenameuptothe.ofollowedby.cc.

becausethefilename.ccmustbecompiledtogetthefilename.o.)Ifanyofthese

filesarechanged,thecommandfollowingthislinewillbeexecutedtocreatethe.ofiles.

Inshort,thepresenceofeachofthe.ofilesinthislinetellsthemakeprogramthatitis

tolookfor.ccfileswiththesamenameuptothe.o,andcompilethesewiththe

compilernameonthenextline.

Thelinefollowingthetargetanddependencylistisacommandthattellsmakehowto

'make'theprogramwhosenameisgivenfollowingthe-ooption.Inthiscase,Bythe

way,theleadingcharacteronthisnextlineisa<tab>.Themakeprogramrequiresthat

thisbeatabcharacter.

Themakeprogram,unlessdirectednottodosowiththe-scommandlineoption,displays

eachcommanditexecutes.

15:46:37:-/AW$make

make:'chl2prbl1isuptodate.

Here,Ihadjustrunmake,andIranitagain.Themakeinterpreterlookedatthedates

andtimesonthefilesinthemakefileandfoundthatthecompiledversionswerealllater

thanthe.ccand.hfiles,soitconcludedthatthatacompilehadbeendonesincethesource

fileshadbeenedited.

15:46:39:-/AW$makeclean

rmchl2prbl.odtime.ochl2prbl.add.o

Makedidthecommandlinejustbelowtheclean:target.Thiskindoftargetiscalledafake

target,sinceitdoesnotcreateanyprograms.Itonlyexiststoenablethetaskonthenext

linetobedoneforus.

15:46:42:-/AW$make

g++-cchl2prbl.cc-ochl2prbl.o

g++-cchl2prbl.add.cc-ochl2prbl.add.o

g++-cdtime.cc-odtime.o

g++-ochl2prblchl2prbl.ochl2prbl.add.odtime.o

15:46:54:-/AW$15:46:37:-/AW$

Thistimemakelookedforandcompiledeachprogramfile,inturn,thenlinkedtheobject

filestogetherinthelastline.

Makecancompilepartofacollectionofsourcefiles,orallofthem.Oncethecompileis

done,installtheresultsofthecompilationinwhateverdirectoriesyouspecify.

Finally,g++andgcchavethefacilitytocreatecommandanddependencylinesthatcanbe

usedinamakefile.Themanualpageforgcc/g++willshedsomelighthere.

Reference:Makehasalanguageallitsownformakefiles.Agoodbeginningbookonthe

makefacilityistheO'ReillybookManagingProgramswilhMakementionedabove.

2.DoSelf-TestExercise5infulldetail.WritethecompleteADTclassincluding

interfaceandimplementationfiles.AlsowriteaprogramtotestyourADTclass.

Nosolutionisprovidedforthisexercise.

3-5.NoSolutionsProvided.

6.RationalNumberClass-separatecompilation

ExtendsChapter11Problem5touseseparatelycompiledfiles.

Thisisthetestprogram,theHeader,rational.h,containstheclassdefinitionsandthe

implementationareinchl2.6.cpp

Thisproblemrequiresimplementationofaclassforrationalnumberofthetype2/3.

Requirements:

classRational;

privatedata:intn,(fractionnumerator)andintd(fraction

denominator).

publicinterface:

constructors:

twointargs,toallowsettingrationaltoanylegalvalue

oneintarg,toconstructrationalswithargnumeratoranddenominator1.

overload<<and>>toallowwritingtoscreeninform325/430

andreadingitfromthekeyboardinthesameformat.

Notes:eithernordmaycontainanegativequantity.

Overload+-*/<<=>>===

Putdefinitionsinseparatefileforseparatecompilation

Testprogramrequired.

"Warning:*

VC++6,asdistributedWILLNOTCOMPILECODETHATUSESfriendsundersome

circumstances.YOUMUSTHAVEATLEASTPATCHLEVEL5INSTALLED.I

compiledthisusingthelatestVisualStudiopatchesatlevel.6.

//Filechl2.6.tst.cpp

//

//TestprogramforRationalclass

#include<iostream>

usingnamespacestd;

#include"rational.h"

int

mam()

cout<<"Testingdeclarations1'<<endl;

cout<<nRationalx,y(2),z(-5,-6),w(1,-3);'?<<endl;

Rationalx,y(2)zz(-5,-6),w(1z-3);

cout<<'?z=?'<<z<<",y="<<y<<",z="<<z

<<",w="<<w<<endl;

cout<<"Testing>>overloading:\nEnter"

<<"afractionintheformat"

<<"integer_numerator/integer_denominator"

<<endl;

cin>>x;

cout<<"Youenteredtheequivalentof:"<<x<<endl;

cout<<z<<"-("<<w<<")="<<z-w<<endl;

cout<<"Testingtheconstructorandnormalizationroutines:"<<endl;

y=Rational(-128z-48);

cout<<"y=Rational(-128,-48)outputsas"<<y<<endl;

y=Rational(-128,48);

cout<<"y=Rational(-128z48)outputsas?'<<y<<endl;

y=Rational(128,-48);

cout<<"y=Rational(128z-48)outputsas"<<y<<endl;

Rationala(1z1);

cout<<'?Rationala(1,1);aoutputsas:"<<a<<endl;

Rationalww=y*a;

cout<<y<<"*"<<a<<?'="<<ww<<endl;

w=Rational(25,9);

z=Rational(3,5);

cout<<"Testingarithmeticandrelational

<<"operatoroverloading"<<endl;

cout<<w<<ii*II<<z<<II_II<<w*z<<endl

cout<<w<<ii+II<<z<<fl_fl<<w+z<<endl

cout<<w<<II-II<<z<<fl_II<<w-z<<endl

cout<<wVVII/!l<<z<<11_II<<w/z<<endl

cout<<w<<<<<z<<*'=H<<(w<z)<<endl;

cout<<w<<<"<<w<<"="<<(w<w)<<endl;

cout<<w<<<="<<z<<<<(w<=z)<<endl;

cout<<w<<<="<<w<<<<(w<=w)<<endl;

cout<<w<<<<(w>z)<<endl;

cout<<w<<<<(w>w)<<endl;

cout<<w<<<<(w>=z)<<endl;

cout<<w<<<<(w>=w)<<endl;

w=Rational(-21z9);

z=Rational(3z5);

cout<<w<<<<w*z<<endl;

cout<<w<<<<w+z<<endl;

cout<<w<<<<w-z<<endl;

cout<<w<<<<w/z<<endl;

cout<<w<<<<(w<z)<<endl;

cout<<w<<<<(w<w)<<endl;

cout<<w<<<<(w<=z)<<endl;

cout<<w<<<<(w<=w)<<endl;

cout<<w<<<<(w>z)<<endl;

cout<<w<<<<(w>w)<<endl;

cout<<w<<<<(w>=z)<<endl;

cout<<w<<<<(w>=w)<<endl;

return0;

)

//endfilechl2.5.tst.cpp

/*

TypicalRun:

Testingdeclarations

Rationalx,y⑵,z(-5,-6),w(1z-3);

z=5/6zy=2/1zz=5/6zw=-1/3

Testing<<overloading:

Enterafractionintheformatinteger_numerator/integer_denominator

Youenteredtheequivalentof:9/7

5/6-(-1/3)=7/6

Testingtheconstructorandnormalizationroutines:

y=Rational(-128z-48)outputsas8/3

y=Rational(-128z48)outputsas-8/3

y=Rational(128,-48)outputsas-8/3

Rationala(1,1);aoutputsas:1/1

-8/3*1/1=-8/3

Testingarithmeticandrelationaloperatoroverloading

25/9*3/5=5/3

25/9+3/5=152/45

25/9-3/5=98/45

25/9/3/5=125/27

25/9v3/5=0

25/9<25/9=0

25/9<=3/5=0

25/9<=25/9=1

25/9>3/5=1

25/9>25/9=0

25/9>=3/5=1

25/9>=25/9=1

-7/3*3/5=-7/5

-7/3+3/5=-26/15

-7/3-3/5=-44/15

-7/3/3/5=-35/9

-7/3<3/5=1

-7/3<-7/3=0

-7/3<=3/5=1

-7/3<=-7/3=1

-7/3>3/5=0

-7/3>-7/3=0

-7/3>=3/5=0

-7/3>=-7/3=1

***************************************************************

IMPLEMENTATION

***************************************************************

/*

6

.RationalNumberClass--separatecompilation

ExtendsChapter11Problem5touseseparatelycompiledfiles.

THESEARETHEIMPLEMENTATIONS.TheHeader,rational.h,containsthe

classdefinitionsandthetestprogramisinchl2.6.tst.cpp

Thisproblemrequiresimplementationofaclassfor

rationalnumberofthetype2/3.

*/

//file:chl2.6.cpp

//ImplementationsofthemembersofclassRational.

//ForChapter12Problem6

#include<iostream>

#include<cstdlib>

usingnamespacestd;

#include"rational.h"

//privatemembersofclassRational

//intn;

//intd;

Rational::Rational(intnumer,intdenom)

(

normalize(numer,denom);

n=numer;

d=denom;

)

//setsdenominatorto1

Rational::Rational(intnumer):n(numer),d(1)

//Seetheinitializerappendix

(

//bodydeliberatelyempty

)

//setsnumeratorto0,denominatorto1

Rational::Rational():n(0)zd(1)

//seeinitializerappendix

(

//bodydeliberatelyempty

)

Rationaloperator+(constRational&left,

constRationaleright)

(

intnumer=left.n*right.d+left.d*right.n;

intdenom=left.d*right.d;

normalize(numer,denom);

Rationallocal(numer,denom);

returnlocal;

)

Rationaloperator-(constRationaleleft,

constRationaleright)

(

intnumer=left.n*right.d-left.d*right.n;

intdenom=left.d*right.d;

normalize(numer,denom);

Rationallocal(numer,denom);

returnlocal;

)

Rationaloperator*(constRationaleleft,

constRationaleright)

(

Rationalproduct;

intnumer=left.n*right.n;

intdenom=left.d*right.d;

normalize(numer,denom);

product=Rational(numer,denom);

returnproduct;

)

Rationaloperator/(constRationaleleft,

constRationaleright)

(

Rationalquotient;

intnumer=left.n*right.d;

intdenom=left.d*right.n;

normalize(numer,denom);

quotient=Rational(numer,denom);

returnquotient;

)

//precondition:allrelationaloperatorsrequired>0

booloperator<(constRationaleleft,

constRationaleright)

returnleft.n*right.d<right.n*left.d;

}

booloperator<=(constRationaleleftz

constRational&right)

(

returnleft.n*right.d<=right.n*left.d;

)

booloperator>(constRationaleleft,

constRationaleright)

(

returnleft.n*right.d>right.n*left.d;

)

booloperator>=(constRational&leftz

constRationaleright)

(

returnleft.n*right.d>=right.n*left.d;

)

booloperator==(constRationalaleft,

constRational&right)

(

returnleft.n*right.d==right.n*left.d;

)

//NOTE:

//Doinginputchangestheinputstreamstate.Thisseems

//obvious,butIhavestudentswhodidn1trealizethis.

//Thiscode,alongwithiostreamlibrary,goesintoan

//infiniteloopifyoumakeistreamaconstreference.There

//arenoerrormessages,onlyaninfiniteloop,involving

//thesingleparameterconstructor.Thiscanbequite

//disconcertingtothenaivestudent.

//

//Bottomline:ThefirstparamMUSTNOTbeconst.The

//secondoneiswritten,soitcannotbeconsteither.

istream&operator>>(istream&in_str,Rationaleright)

(

charch;

in_str>>right.n>>ch>>right.d;

if(ch!='/1)//properlydone,wewouldsetiostream

//state

{//tofailhereincaseoferror.

cout<<"badinputformatforoperator>>.Aborting!?'

<<endl;

exit(1);

)

normalize(right.n,right.d);

returninstr;

}

//This,liketheabovecase,alongwithg++iostream

//library,goesintoaninfiniteloopwhenyouattemptto

//makeostreamaconstreference.

//Therearenoerrormessages,onlyaninfiniteloop,

//involvingthesingleparameterconstructor.

//

//Bottomline:Thefirstparametershouldnotbeconst,the

//secondisreadonlyandshouldbeconst.

ostream&operator<<(ostream&out_strz

constRational&right)

(

out_str<<right.n<<'/'<<right.d;

returnout_str;

}一

//postcondition:returnvalueisgcdoftheabsolutevalues

//ofmandndependsonfunctionintabs(int);declaredin

//cstdlib

intgcd(intm,intn)

(

intt;

m=abs(m);//don'tcareaboutsigns.

n=abs(n);

if(n<m)//makem>=nsoalgorithmwillwork1

(

t=m;

m=n;

n=t;

)

intr;

r=m%n;

while(r!=0)

(

r=m%n;

m=n;

n=r;

)

returnm;

)

//postcondition:nandd(tobenumeratoranddenominator

//ofafraction)haveallcommonfactorsremoved,andd>0.

voidnormalize(int&n,int&d)

(

//removecommonfactors:

intg=gcd(n,d);

n=n/g;

d=d/g;

//fixthingssothatifthefractionis'negative,

//itisnthatcarriesthesign.Ifbothnanddare

//negativezeachismadepositive.

if(n>0&&d<0||n<0&&d<0)

(

n

溫馨提示

  • 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)論