版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
C++面向對象程序設計-教學要求課程總體目標學習、了解當前軟件系統(tǒng)開發(fā)與維護的主流軟件技術,掌握面向對象程序語言的封裝、繼承和多態(tài)的程序實現(xiàn)方法。培養(yǎng)面向對象的程序思維方法、分析方法和編程能力,能夠應用C++的類、繼承、多態(tài)、STL等面向對象的技術和方法對客觀世界的問題域進行系統(tǒng)建模和軟件設計。理解面向對象程序設計的本質,為以后深入學習Web程序設計等課程打下良好的基礎,同時也為面向對象編程技術在專業(yè)中的應用打下良好的基礎。C++面向對象程序設計-教學要求課程基本要求掌握用C++進行面向對象編程的方法,能夠運用C++編寫求解簡單應用問題的面向對象程序;掌握C++對C非面向對象的語言擴展。如常量、引用、范圍for、自動類型推斷、lamada函數(shù)、移動函數(shù)、文件管理、智能指針等。掌握類與封裝、對象、繼承、多態(tài)等面向對象的語言特征和概念,及其在C++中的實現(xiàn)技術和方法;理解類與對象、構造函數(shù)、析構函數(shù),類型轉換、重載函數(shù)、虛函數(shù)、仿函數(shù)、抽象類等面向對象程序設計中的重要概念及其實現(xiàn)方法;掌握面向對象的異常處理機制及C++中的編程方法;掌握函數(shù)模版、類模版及簡單元編程的實現(xiàn)方法,能夠運用C++STL庫設計程序;理解程序、進程和線程的關系,能夠編寫簡單的多線程程序。主要參考書教材《C++程序設計教程》(第3版)--清華大學出版社,錢能教參(選1即可,推薦1)《C++Primer中文版》(第5版)
--電子工業(yè)出版社,StanleyB.Lippman著,王剛,楊巨峰譯2.《C++程序設計語言》(第4版)--
BjarneStroustrup著3.《深度探索C++14》——Petergottschling著吳野譯教學目標:了解C++和C語言程序的關系,理解面向對象和面向過程程序的主要區(qū)別,掌握面向對象程序設計語言的基本特征,能夠搭建C++程序開發(fā)環(huán)境,掌握C++輸入輸出流并能運用它編寫簡易的C++程序。教學重點:面向對象程序語言的基本特征,C++輸入輸出流的概念及應用。教學難點:輸入輸出流的程序實現(xiàn)和數(shù)據(jù)格式控制問題。字符串輸入程序設計的常見問題及解決方法。第1章C++與面向對象程序設計概述第1章C++與面向對象程序設計概述本章主要講述:面向對象與面向過程程序的結構差異面向對象程序語言的基本特征C++標準的演化C++程序的數(shù)據(jù)輸入/輸出VC++2022程序實現(xiàn)方法本章要點1、面向過程與面向對象程序設計的主要思想2、面向對象程序語言的主要特點3、掌握cin和cout的用法4、用cin輸入數(shù)據(jù)主要問題和解決方法1.1面向對象程序設計概述 1.1.1面向過程程序設計主要采用結構化程序設計語言編程,因此也常稱為結構化程序設計(1)結構化程序設計的基本內(nèi)容結構的類型順利、分支、循環(huán)結構化程序設計思想利用過程或函數(shù)來抽象和模擬客觀現(xiàn)實。1.1面向對象程序設計概述(2)結構化程序設計的方法重點放在如何實現(xiàn)細節(jié)過程方面,將數(shù)據(jù)與函數(shù)分開。形式:主模塊+若干個子模塊
(如C:main()+子函數(shù))。特點:
自頂向下,逐步求精——功能分解。缺點:效率低,是手工作坊式的編程。1.1面向對象程序設計概述自頂向下,逐步求精——軟件基本結構模型示例1.1面向對象程序設計概述全局變量局部變量函數(shù)A函數(shù)體只有函數(shù)A才能訪問(3)結構化程序設計的問題——數(shù)據(jù)同算法分離。即程序數(shù)據(jù)和操作數(shù)據(jù)的函數(shù)是分離的。局部變量函數(shù)B函數(shù)體面向過程程序結構主函數(shù)全局變題可被任何函數(shù)訪問只有函數(shù)B才能訪問1.1面向對象程序設計概述structPerson{ charname[10]; charaddr[20]; charphone[11];}Personp[100]; intn=0;
voidInputData(){} voidSearchAddr(char*name){……} voidSearchPhone(char*name){……} voidPrintData(){……}Voidmain(){ …… //調(diào)用前面編寫的函數(shù),完成通信錄數(shù)據(jù)處理
……} (4)結構化程序設計的案例——個人通信錄程序1.定義數(shù)據(jù)結構2.定義全局數(shù)據(jù)3.定義操作數(shù)據(jù)的函數(shù)4.主函數(shù)控制程序流程1.1面向對象程序設計概述大型程序中,有很多全局數(shù)據(jù)和全局函數(shù),這導致了函數(shù)和數(shù)據(jù)之間數(shù)目巨大的潛在連接!如:WindowsVista的代碼行數(shù)達到了5000萬行若全局數(shù)據(jù)有所改動,可能會導致所有訪問這個數(shù)據(jù)若的全部函數(shù)的重寫,程序維護困難!全局數(shù)據(jù)全局數(shù)據(jù)全局數(shù)據(jù)函數(shù)函數(shù)函數(shù)函數(shù)(5)結構化程序設計范型面向過程程序設計語言的基本結構包括()。分支順序組合循環(huán)ABCD提交多選題1分1.1面向對象程序設計概述1.1.2面向對象程序設計(1)面向對象程序設計的觀點①現(xiàn)實世辦是由各種實體(對象)所組成,每種對象都有自己的內(nèi)部狀態(tài)和運動規(guī)律;②不同對象之間的相互聯(lián)系;③對象之間相互作用就構成了各種不同的系統(tǒng),進而構成整個客觀世界.用軟件對象來描述模仿現(xiàn)實中的對象及其關系,進處理現(xiàn)實問題。對應解決上面三個問題:①用軟件對象表示客觀對象;②用軟件對象之間的關系表示客觀對象之間的關系;
③用軟件表示客觀對象之間的交流與驅動。ClassCat&classRatClassDog1.1面向對象程序設計概述1.1.2.面向對象程序設計(2)面向對象觀點的實現(xiàn)方法①將數(shù)據(jù)和操作數(shù)據(jù)的過程(函數(shù))綁在一起,形成一個相互依存、不可分離的整體(即對象),仿真出現(xiàn)實對象;②通過繼承,對象成員,對象依賴等語言機制來描述客觀事物之間諸如父子關系,汽車與其組成部件的包含關系,某人與他的寵物狗之間的依賴關系……③通過對象之間的消息傳遞機制表示客觀事物之間的交流與驅動關系ClassCat&classRatClassDog1.1.2.面向對象程序設計(3)面向對象程序設計基本概念對象客觀存在的實體稱為對象屬性描述對象的特征的數(shù)據(jù)行為對象自身的行為,對現(xiàn)實世界某些信息的應.消息對象之間通過傳遞消息相互影響,消息可簡單理解為傳遞給被調(diào)用函數(shù)的實參。屬性行為對象由屬性和行為構成(4)程序范型對比:貓狗的結構化程序structDog{charname[10],owner[10];inthigh;};Cattom;voidsetDogName(Dog*dog,charname[10])
{strcpy(dog->name,name);}voidsetCatName(Cat*cat,charname[10]){strcpy(cat->name,name);}voidGrowth(Dog*dog,inth1,Cat*cat,inth2){dog->high=h1;cat->high=h2;}voidSetOwner(Cat*cat,charw1[],Dog*dog,charw2[]){strcpy(cat->owner,w1);strcpy(dog->owner,w1);}char*getDogOwner(Dogdog){returndog.owner;};intgetCatHeight(){returntom.high;}intmain(intargc,_TCHAR*argv[]){Dogdog1,dog2,dog3;strcpy(,"joo");setDogName(&dog1,"joo");SetOwner(&tom,"zhang",dog1,"wang");Growth(&dog1,10,&tom,5);printf("%s%s",getDogOwner(dog1),);printf("%d",getCatHeight());return0;}structCat{charname[10],owner[10];inthigh;};如果修改high或name的類型,可能引起全程中大量的代碼修改!structDog{private:charname[10],owner[10];inthigh;public:voidsetDogName(charName[10]){strcpy_s(name,name);}voidGrowth(inth){high+=h;}voidsetOwner(charOwner[10]){strcpy_s(owner,Owner);}char*getName(){returnname;}……};structCat{charname[10],owner[10];floathigh;public:voidsetCatName(…){……}voidGrowth(inth){……;}voidsetOwner(……}char*getName(){……}char*getOwner(){……}floatgetHigh(){returnhigh;}};Cattom;intmain(intargc,_TCHAR*argv[]){Dogdog1,dog2,dog3;dog1.setDogName("joo");dog2.setOwner("john");dog1.Growth(2);//Dog1.hight=9;error……printf("%d",tom.getHigh());return0;}(5)程序范型對比:貓狗的OOP程序如果修改high或name的類型,可能只需修改Dog內(nèi)部的函數(shù)!1.1.2.面向對象程序設計structPerson{ private:charname[10];charaddr[20];charphone[11];public:voidInitData(){……}voidSearchAddr(char*name){……}; voidSearchPhone(char*name){……}; };(6)面向對象的通信錄程序的類形式在++中,struct的功能被擴展了,在struct中不僅可以定義數(shù)據(jù),還可以定義函數(shù)。數(shù)據(jù)與函數(shù)構成了一個整體。其中的private和public是訪問權限。1.1.2.面向對象程序設計將客觀事物的屬性和行為抽象成數(shù)據(jù)和操作數(shù)據(jù)的函數(shù),并把它們組合成一個不可分割的整體(即對象)的方法能夠實現(xiàn)對客觀世界的真實模擬,反映出世界的本來面目。從客觀世界中抽象出一個個對象,對象之間能夠傳遞消息
.數(shù)據(jù)成員函數(shù)成員函數(shù)數(shù)據(jù)成員函數(shù)成員函數(shù)數(shù)據(jù)成員函數(shù)成員函數(shù)對象1對象2對象3消息消息消息(7)面向對象的程序范型1.1.3面向對象程序設計語言的特征本節(jié)主要介紹類與對象的基本概念,以及面向對象程序設計的主要特征
1、抽象(abstract)畢加索畫牛的過程:最終的抽象僅用幾筆簡單的線條卻讓人一看便知是牛,此即抽象!1.1.3面向對象程序設計語言的特征1、抽象(abstract)抽象是指有意忽略問題的某些細節(jié)和與當前目標無關的方面,以便把問題的本質表達得更清楚。抽象描述了一個對象的基本特征,可以將該對象與所有其他類型的對象區(qū)分開來,因此需要為對象定義出清晰的邊界概念。抽象關注一個對象的外部視圖(邊界外部),用來分離對象的基本行為和實現(xiàn)(邊界內(nèi)部)??梢岳斫鉃槌橄箨P注接口(對象邊界外部),即可觀察到的行為;而封裝則關注這些行為的實現(xiàn)(邊界內(nèi)部)。抽象的結果是形成對應客觀事物的抽象數(shù)據(jù)類型,簡稱ADT(AbstractDataType)LightOn()Off()Brighten()Dim()類型名稱接口電燈抽象:忽略燈泡的形狀、大小、品牌、內(nèi)部實現(xiàn)細節(jié),所有的燈都具有開、關、調(diào)節(jié)明、暗的按鈕,這就是燈的接口和功能,用類Ligh就它們組織在一起,就形成了燈的ADT類型。抽象結果并未實現(xiàn)內(nèi)部函數(shù)2、封裝(encapsulation)(1)封裝是對ADT的具體實現(xiàn)。它將抽象出的特征(用數(shù)據(jù)表示)和行為(用函數(shù)表示)捆綁成一個整體,并且編碼實現(xiàn)抽象所設計的接口功能。(2)封裝形成接口與實現(xiàn)的分離。從外面看只能看到對象的外部特性,即能夠受理哪些信息,具有哪些處理能力,可供其它對象調(diào)用,稱為接口;對象的內(nèi)部,即處理能力的執(zhí)行細節(jié)和內(nèi)部狀態(tài),稱為實現(xiàn),對外是不可見的。(3)信息隱藏。從對象外面不能直接使用對象的處理能力,也不能直接修改其內(nèi)部狀態(tài),對象的內(nèi)部狀態(tài)只能由其自身改變。1.1.3面向對象程序設計語言的特征1.1.3面向對象程序設計語言的特征(4)封裝的實現(xiàn)方式classclassname{ public:
//publicmembers //friendfunction private:
//privatemembers};Public成員1Public成員2Public成員nPrivate一個Class定義了一種抽象的數(shù)據(jù)類型,用戶只能訪問Public成員,不能直接訪問Private成員直接訪問private是禁止的邊界(5)封裝的優(yōu)點1.降低部件間的耦合度,提高部件的獨立性2.具有隱藏性和安全性(如銀行的帳戶)3.易于維護(由于數(shù)據(jù)獨立,易于發(fā)現(xiàn)問題)4.封裝將對象的使用者與設計者分開,使用者只需要通過接口訪問對象,不必須了解對象的內(nèi)部細節(jié),能夠有效地實現(xiàn)軟件復用。(6)封裝的缺點可能需要更多的輸入輸出函數(shù)。1.1.3面向對象程序設計語言的特征3、繼承(1)基本概念某類(派生類)對象可以繼承另外一類對象(基類)的特征和功能。(2)實現(xiàn)方式:派生類復制了基類的數(shù)據(jù)和函數(shù)(3)繼承的特性類間具有共享特征(包括數(shù)據(jù)和程序代碼的共享):遺傳類間具有細微差別或新增部分(包括非共享的程序代碼和數(shù)據(jù)):變異類間有層次結構(同人類通過繼承構成了家簇關系一樣)1.1.3面向對象程序設計語言的特征狗爺狗兒子狗孫子(4)繼承的類型從繼承源上劃分:單繼承(一個派生類只有一個基類)、多繼承(一個派生類有多個基類)從繼承內(nèi)容上劃分:取代繼承、包含繼承、受限繼承、特化繼承。(5)繼承的作用:實現(xiàn)軟件的可重用性實現(xiàn)軟件的獨立性增加軟件的可維護性1.1.3面向對象程序設計語言的特征單繼承多繼承(6)繼承的層次結構彈屏討論:E具有哪些成員?ABECDa:intgetA():intc:intgetC():intsetB():voidb:intgetB():intsetB():voidinheritance(“is-a”relation)e:intgetE():intsetB():voidd:intgetD():int1.1.3面向對象程序設計語言的特征4、多態(tài)(polymorphism)概念對象根據(jù)所接受的消息而做出動作,同樣的消息為不同的對象接受時可導致完全不同的行動,該現(xiàn)象稱為多態(tài)性。簡單的說:單接口,多實現(xiàn)。作用方便軟件功能的擴展舉例
f(動物*P){p->run();}1.1.3面向對象程序設計語言的特征雞狗貓豬動物當獵人的槍聲響起時,不同動物開始run(),它們不同的奔跑方式就是多態(tài)F即為多態(tài)函數(shù),當傳遞狗對象給p時,執(zhí)行狗.run()傳遞貓對象給p時,執(zhí)行貓.run()……1.2C++語言概述1.2.1C++簡史1.面向對象語言概況最早最成熟的領域萌芽于60年代(Simula),成熟于80年代70年代,純面向對象語言,smalltalk常見面向對象的語言Java:純面向對象的語言Python,RC++,ObjectPascal,Efficl1.2.1C++語言簡史2、C++簡史C++起源20世紀80年代,AT&TBell實驗室BjarneStroustrupC++發(fā)展B→C→帶類的C→C++→標準C++→托管C++C++標準的修訂1.2.1C++語言簡史3.傳統(tǒng)C++與標準C++6次主要訂:1985年,1990年,1998年,2011年(C++11)、2014年、2017年、2020年1998年確定的版本為標準C++,之前的稱傳統(tǒng)C++。標準C++包括傳統(tǒng)C++的全部功能,且更龐大、全面.h和無擴展名的頭文件:傳統(tǒng)C++為.h頭文件,如iostream.h、fstream.h、string.h;標準C++對應的頭文件為iostream、fstream、string。1.2.2C++的特點C++在對C語言進行擴展的同時,保留了C語言的原有特征和優(yōu)點,具有以下特征:兼容C語言,支持面向過程程序設計擴展了C,支持面向對象的程序設計豐富的運算符和數(shù)據(jù)類型高效性靈活性可移植性強1.2.3C++程序的結構1、C++程序的構成聲明部分主函數(shù)部分函數(shù)定義2、C++程序文件頭文件:.h.hpp源文件:.cpp3、程序結構的一個例程如下1.2.3C++程序的結構1.2.3C++程序的結構對例程的補充:C++的注釋///*……*/C++的函數(shù)需要先聲明,然后才能調(diào)用1.2.4標準C++程序設計1.標準C++程序設計的概念ANSI/ISO標準化委員會1998年完成的C++98標準,人們稱之為標準C++,按此版本及之后的規(guī)范進行編程均稱之為標準C++程序設計。而以此前C++規(guī)范進行編程,則被稱為傳統(tǒng)C++程序設計。C++98VSC++11、C++98稱得上最經(jīng)典,目前應用仍然廣泛。C++11注入了當前OOP語言的許多新特征,如類型自動推斷、范圍for,lamada函數(shù)、移動函數(shù),構造函數(shù)繼承,類內(nèi)初始值列表,為程序設計帶來了許多方便,與JAVA等語言的某些程序特征更為接近和溶恰,是當前C++編程的首選!C++14、C++17及C++20對C++11在C++11基礎上進行了逐步修改,但本質上的變化不大。1.2.4標準C++程序設計2.標準C++與傳統(tǒng)C++的編程差異(1)系統(tǒng)庫函數(shù)頭文件區(qū)別傳統(tǒng)C++為.h頭文。如iostream.h、fstream.h、string.h,stdio.h、math.h標準C++為同名無.h文件:iostream、fstream、string,cstdio、cmath(2)命名空間限定傳統(tǒng)C++的庫函數(shù):直接調(diào)用函數(shù)就行了。標準C++中的任何內(nèi)容(C庫函數(shù)除外)則用“std::”前綴限定,函數(shù)全名是“std::x”x可以是函數(shù)、常量、數(shù)據(jù)結構、系統(tǒng)變量等內(nèi)容。1.2.4標準C++程序設計3.標準C++程序和傳統(tǒng)C++程序對比庫函數(shù)頭文件差異庫函數(shù)引用差異1.2.4標準C++程序設計4.標準庫的引用用std::限定標準庫中的標識符(如std::cin)用usingstd::x將標準庫中的x引用程序后,然后在程序中直接用x用usingnamespacestd;一次性引入包含標準庫頭文件中的全部標識,然后在程序中直接應用。如例1-3所示1.2.4標準C++程序設計//Eg1-3.cpp#include<iostream>#include<cstdio>#include<cmath>usingnamespacestd;voidmain(){intx;
cout<<"輸入數(shù)字:";
scanf("%d",&x);boolprime=true;for(inti=2;(i<=sqrt(x))&′i++) if(x%i==0)prime=false;if(prime)
cout<<x<<"是素數(shù)!"<<endl;else
cout<<x<<"不是素數(shù)!"<<endl;}若輸入:a?1.3數(shù)據(jù)輸入與輸出本節(jié)主要介紹C++程序中數(shù)據(jù)輸入輸出的方法,是C++程序設計的基礎。應該掌握流的概念iostreamcincout數(shù)據(jù)輸入常見問題及解決方法1.3.1數(shù)據(jù)類型C++基本類型int,char,long,wchar_t,char16_t,char32_t實型float,double,longdouble邏輯類型和空類型bool,void自定義類型struct,class,union,enum,指針,數(shù)組STL中的類型vector,string,list,stack,map,set……C++11:longlong1.3.2流的概念1、C及C++中的流概念I/O(input/output,輸入/輸出)數(shù)據(jù)是一些從源設備到目標設備的字節(jié)序列,稱為字節(jié)流。除了圖像、聲音數(shù)據(jù)外,字節(jié)流通常代表的都是字符,因此在多數(shù)情況下的流(stream)是從源設備到目標設備的字符序列,A8bctyx1234源設備目標設備字符序列從源設備連續(xù)不斷地流向目標設備,最后按先流出先到達的有序方式匯聚在目標設備中,如同河流一樣,故此叫流。1.3.2流的概念輸入流:istream輸入流(inputstream)是指從輸入設備流向內(nèi)存的字節(jié)序列。輸出流:ostream輸出流(outputstream)是指從內(nèi)存流向輸出設備的字節(jié)序列。C++中的輸入輸入流iostream:istream,ostreamcin輸入流對象,C++已將其與鍵盤關聯(lián)cout輸出流對象,C++已將其與顯示器關聯(lián)內(nèi)存cin輸入流cout輸出流1.3.3cin和提取運算符>>1、cin的用途cin是iostream中用istream定義的一個輸入流對象對象,定義類似于,它被默認關聯(lián)到了標準輸入設備(鍵盤):
istreamcin;在C++程序,主要用cin從鍵盤輸入數(shù)據(jù)到內(nèi)存變量中,當然也可以使用scanf函數(shù),但cin更簡單。2、cin的用法輸入單個變量的值cin>>x;輸入多個變量的值cin>>x1>>x2>>x3>>x4……>>xn
其中x,x1……x2可是以內(nèi)置數(shù)據(jù)類型如int,char,float,double等。1.3.3cin和提取運算符>>3、用cin時的注意事項在一條cin語句中同時為多個變量輸入數(shù)據(jù)。各輸入數(shù)據(jù)之間用一個或多個空白(包括空格、回車、Tab)作為間隔符,全部數(shù)據(jù)輸入完成后,按Enter鍵結束。
在>>后面只能出現(xiàn)變量名,下面的語句是錯誤的。cin>>"x=">>x; //錯誤,>>后面含有字符串"x="cin>>12>>x; //錯誤,>>后面含有常數(shù)12cin>>'x'>>x; 1.3.3cin和提取運算符>>cin具有自動識別數(shù)據(jù)類型的能力提取運算>>將根據(jù)它后面的變量的類型從輸入流中為它們提取對應的數(shù)據(jù)。比如:cin>>x;假設輸入數(shù)據(jù)2,提取運算符>>將根據(jù)其后的x的類型決定輸入的2到底是數(shù)字還是字符。若x是char類型,則2就是字符;若x是int,float之類的類型,則2就是一個數(shù)字。再如,若輸入34,若x是char類型,則只有字符3被存儲到x中,4將繼續(xù)保存在流中;若x是int或float,則34就會存儲x中。
1.3.3cin和提取運算符>>數(shù)值型數(shù)據(jù)的輸入在讀取數(shù)值型數(shù)據(jù)時,提取運算符>>首先略掉數(shù)據(jù)前面的所有空白符號,如果遇到正、負號或數(shù)字,就開始讀入,包括浮點型數(shù)據(jù)的小數(shù)點,并在遇到空白符或其他非數(shù)字字符時停止。例如:intx1;doublex2;charx3;cin>>x1>>x2>>x3;假如輸入“35.4A”并按Enter鍵,x1是35;x2是.4;x3是'A'1.3.3cin和提取運算符>>4、輸入數(shù)據(jù)案例分析【例1-4】假設有變量定義語句如下:inta,b;doublez;charch;下面的語句說明數(shù)據(jù)輸入的含義。語句 輸入 內(nèi)存變量的值
1 cin>>ch; A ch='A'2 cin>>ch; AB ch='A',而'B'被保留在輸入流中等待被讀取
3 cin>>a; 32 a=324 cin>>a; 32.23 a=32,.23留在輸入流中等待被讀取
5 cin>>z; 76.21 z=76.216 cin>>z; 65 z=65.07 cin>>a>>ch>>z 23B3.2 a=23,ch='B',Z=3.28 cin>>a>>ch>>z 23B3.2 a=23,ch='B',Z=3.29cin>>a>>b>>z 2332 a=23,b=32,等待輸入下一個數(shù)據(jù)存入z10 cin>>a>>z 23.224 a=2,z=3.2,24被保留在輸入流中等待被讀取11 cin>>a>>ch 132 a=132,計算機等待輸入ch的值12 cin>>ch>>a 132 ch='1',a=321.3.4cout和插入運算符<<1、cout的用途cout(讀作see-out)是iostream庫中用ostream定義的一個輸出流對象,類似于:ostreamcout;cout已被C++默認關聯(lián)到顯示器,用于在屏幕上輸入數(shù)據(jù)。在C++程序中,也可使用C語言的sprintf輸出數(shù)據(jù),但cout更簡單。2、cout的用法cout<<x;其中x可是以內(nèi)置數(shù)據(jù)類型如int,char,float等。下面關于cin>>的說法錯誤的是()cin默認關聯(lián)的標準輸入是鍵盤cin具有類型誤別能力cin可以向表達式輸入數(shù)據(jù)cin只能夠向內(nèi)存變量輸入數(shù)據(jù)ABCD提交單選題1分1.3.4cout和插入運算符<<3.輸出字符類型的數(shù)據(jù)對于字符變量和字符串變量,cout將把變量的值輸出到顯示屏幕上。對于字符常量和字符串常量,cout將把它們原樣輸出在屏幕上【例1-5】cout輸出字符數(shù)據(jù)。//Eg1-5.cpp#include<iostream.h>voidmain(){ charch1='c'; charch2[]="HellowC++!"; cout<<ch1; cout<<ch2; cout<<"C"; cout<<"Helloweveryone!";}1.3.4cout和插入運算符<<4.連續(xù)輸出cout能夠同時輸出多個數(shù)據(jù),用法如下:cout<<x1<<x2<<x3<<…;例:cout<<ch1<<ch2<<"C"<<"Helloweveryone!";與C一樣,在C++中也可以將一條命令寫在多行上。比如,上面的語句也可寫成下面的形式:cout<<ch1 <<ch2 <<"C" <<"Helloweveryone!";1.3.4cout和插入運算符<<3、輸出換行在cout語句中換行可用:“\n”或endl【例1-6】在例1-5的輸出語句中增加換行符。//Eg1-6.cpp#include<iostream.h>voidmain(){ charch1='c'; charch2[]="HellowC++!";
std::cout<<ch1<<std::endl;
std::cout<<ch2<<"\n";
std::cout<<"C"<<endl;
std::cout<<"Helloweveryone!\n"; }1.3.4cout和插入運算符<<4、輸出數(shù)據(jù)間隔符在連續(xù)輸入多個數(shù)據(jù)時,應注意在數(shù)據(jù)之加插入間隔符。如intx1=23;floatx2=34.1;doublex3=67.12;cout<<x1<<x2<<x3<<900;其中的cout語句將在屏幕上輸出,2334.167.12900誰知道這是個什么數(shù)據(jù)呢?1.3.5輸出格式控制符1.設置浮點數(shù)的精度
setprecision(n)//最后一有效位將對其右邊數(shù)字4合5入cout<<setprecision(3)<<3.14126<<""<<2.4576<<endl;輸出:3.142.462.設置輸出域寬和對齊方式setw(n)3.設置對齊方式Setiosflags(longf);resetiosflags(longf);1.3.5輸出格式控制符【例1-7】用setiosflags和
resetiosflags設置
和取消輸出數(shù)據(jù)的對齊方式。//Eg1-7.cpp#include<iostream> #include<iomanip> voidmain(){ std::cout<<“123456781234567812345678”<<std::endl; std::cout<<setiosflags(ios::left)<<setw(8) <<456<<setw(8)<<123<<std::endl; std::cout<<resetiosflags(ios::left)<<setw(8)<<123<<std::endl; }1.3.5輸出格式控制符4.輸出填充字符(用指定字符填充空白)——補充內(nèi)容std::cout.fill(ch);std::cout<<std::setfill(ch);【例】用fill和setfill設置輸出填充字符。//ch1-fill.cpp#include<iostream> #include<iomanip> voidmain(){ std::cout<<"123456781234567812345678"<<std::endl; std::cout<<std::setw(8)<<123<<std::setw(8)<<456<<std::setw(8)<<789<<std::endl; std::cout.fill('@'); std::cout<<std::setw(8)<<123<<std::setw(8)<<456<<std::setw(8)<<789<<std::endl; std::cout<<std::setfill('^'); std::cout<<std::setw(8)<<123<<std::setw(8)<<456<<std::setw(8)<<789<<std::endl;}1.3.6數(shù)制基數(shù)數(shù)制基數(shù)操縱符(在iostream頭文件中定義)hex:16進制oct:8進制,dec:10進制不同進制的常量表示0x/0X 16制常量0 表示八進制常量0b/0B 表示二進制C++14單引號
對數(shù)字進行分位表示C++14輸入不同進制的數(shù)據(jù)在cin輸入流中先插入數(shù)制操縱符,再輸入數(shù)據(jù)輸出不同進制的數(shù)據(jù)在cout輸出流中先插入數(shù)制操縱符,再輸出數(shù)據(jù)注意數(shù)制基數(shù)設置后將一致有效,直到下一次設置新數(shù)制基數(shù)才取消。1.3.6數(shù)制基數(shù)【例1-8】
數(shù)字常量的進制控制和千分位間隔表示。//Eg1-8#include<iostream>usingnamespacestd;voidmain(){intx1=23;intx2=023;intx3=0x23;intx4=0b11011101; //C++14intx5=6'123'456'789; //C++14intx6=0b101‘111’001‘111; //C++14cout<<"x1="<<x1<<"\tx2="<<x2<<"\tx3="<<x3<<"\n"<<"x4="<<x4<<"\tx5="<<x5<<"\tx6="<<x6<<endl;getchar();}
1.4.6數(shù)制基數(shù)//Eg1-9.cpp不同進制數(shù)據(jù)的輸入輸出及轉換#include<iostream>usingnamespacestd;voidmain(){intx=34;cout<<hex<<17<<""<<x<<""<<18<<endl;cout<<17<<""<<oct<<x<<""<<18<<endl;cout<<dec<<17<<""<<x<<""<<18<<endl;intx1,x2,x3,x4;cout<<"輸入x1(oct),x2(oct),x3(hex),x4(dec):"<<endl;cin>>oct>>x1; //八進制數(shù)cin>>x2; //八進制數(shù)cin>>hex>>x3; //輸入十六進制數(shù)cin>>dec>>x4; //輸入十進制數(shù)cout<<"x1="<<x1<<"\tx2="<<x2<<"\tx3="<<x3<<"\tx4="<<x4<<endl;}Intx;cin>>oct>>x;下面的輸入數(shù)據(jù)正確的是()“2”a296ABCD提交單選題1分1.3.7string與字符串輸入/輸出1.string類型概述string是標準模板庫(STL)中提供的字符串類型,可以像int、char等基本數(shù)據(jù)類型一樣定義string類型的對象,以及用“>、<、>=、<=、<>、=、+=”等運算符進行各種字符運算。2.String的定義及初始化stringc;/定義空字符串c,stringc1("thisisastring");//定義字符串c1,用指定字符串初始化stringc2=c1; //定義字符串c2,用c1初始化它strings[10];//定義能夠保存10個字符串的數(shù)組,相當于char[][];strings(5,’c’);//定義s,用5個’c’,即“ccccc”初始化;1.3.7string與字符串輸入/輸出3.string類型的賦值string類型的賦值操作與int等基本類型的賦值操作相同,不必用strcpy函數(shù)。例如, strings1,s2,s3[3];//定義string對象及數(shù)組
//string對象數(shù)組定義與初始化 stringname[3]={"tom","jerry","duck"}; s1="thisisastring!";//string賦值 s2=s1; s3[0]=s1;//string數(shù)組元素訪問 s3[1]="stringarr";1.3.7string與字符串輸入/輸出4.string類型的連接“+、+=”可以連接兩個string類型對象,例如: strings1("Iamboy"),s3; strings2="icomefromchina!"; s3=s1+","+s2;//s3:Iamboy,icomefromchina! s1+=","+s2;//s1:Iamboy,icomefromchina!1.3.7string與字符串輸入/輸出5.string類型的輸入輸出和大小比較string類型可以用cin和cout直接輸入或輸出;用“>、>=、==、<、<=、!=、”進行大小比較,比較的是兩個string對象對應位置字符的Ascii碼。//Eg1-10.cpp#include<iostream>#include<string>usingnamespacestd;intmain(){ strings1,s2,big; cout<<"輸入兩個字符串:"<<endl; cin>>s1>>s2; cout<<"參加比較的兩個字符串是:"<<s1<<","<<s2<<endl; if(s1>s2)big=s1; elseif(s1==s2)big="same"; elsebig=s2; cout<<"大字符串是:"<<big<<endl; return0;}1.3.8數(shù)據(jù)輸入的典型問題1.輸入數(shù)據(jù)類型不匹配引發(fā)的問題即使程序完全正確,但輸入數(shù)據(jù)有問題,程序也可能出現(xiàn)運行錯誤,甚至無法正常運行。//Eg1-11.cpp#include<iostream>usingnamespacestd;voidmain(){ inta,b; doublez; charch; cin>>ch; cin>>a>>b; cin>>z; cout<<"ch="<<ch<<"\ta="<<a<<"\tb="<<b<<"\tz="<<z<<endl;}AB32498.7//VC6.0鍵盤輸入,將產(chǎn)生下面的錯誤輸出ch=Aa=-858993460b=-858993460 z=-9.25596e+61錯誤原因:輸入類型不對的數(shù)據(jù),cin會設置輸入失效位,并關閉輸入流!影響后續(xù)輸入語句的執(zhí)行!cin依次從輸入流讀數(shù)據(jù),A被提取給ch后,B將被提取給a,因類型不對,導到C++關閉輸入流!因而a\b\z都是未初始化的值!1.2.8數(shù)據(jù)輸入的典型問題2.為變量輸入空白字符的問題cin輸入數(shù)據(jù)時,空白作為數(shù)據(jù)之間的間隔,無法輸入可用cin的get或getline成員函數(shù)輸入charc1,c2;intn;std::cin>>c1>>c2>>n;若輸入:X5則X將存入c1,5被存入c2,n沒有輸入值1.3.8數(shù)據(jù)輸入的典型問題(1)get輸入空白字符get輸入流函數(shù)完成單個空白字符(包括空格、回車換行等、Tab等)的輸入,get函數(shù)的用法如下:std::cin.get(charvarChar);例如:charc1,c2;intn;std::cin.get(c1); std::cin.get(c2); std::cin>>n;若輸入13,則C1為1,C2為空白,C2為31.3.8數(shù)據(jù)輸入的典型問題(2)getline輸入包括空白字符的長字符串getline函數(shù)一次讀取一行字符,其用法如下std::cin.getline(char*c,intn,char='\n’);功能:為字符數(shù)組c輸入一行可包括空白的字符串
結束方式1:為c讀取了n個字符;
結束方式2:讀取到了指定的結束符,默認為回車符【例1-12】getline讀取一行輸入存入字符串中
#include<iostream>voidmain(){ chars1[100]; std::cout<<"usegetlineinputchar:"; std::cin.getline(s1,50); std::cout<<s1<<std::endl;}常見問題3:前一條getline輸入過多符號【例1-13】從鍵盤為兩個字符串輸入數(shù)據(jù),字符串中可能包括空白字符。//Eg1-13.cpp#include<iostream>usingnamespacestd;voidmain(){ chars1[100]; chars2[10]; cout<<"usegetlineinputs1:"; cin.getline(s1,11); cout<<"inputs2:"<<endl; // cin.clear(); // cin.ignore(1024,'\n'); cin.getline(s2,6); cout<<"s1="<<s1<<endl; cout<<"s2="<<s2<<endl; }輸入字符超過getline設置的字符長度,getline會設置輸入失效位,并關閉輸入流!影響后續(xù)輸入語句的執(zhí)行!解決辦法:清理設置輸入流有效,忽略多余符號。用注釋掉的語句!常見問題3:getline沒有讀數(shù)據(jù)【例1-14】設計一個程序,從鍵盤輸入學生的學號和姓名,外國學生的姓名由firstname和secondname組成,兩者之間用空白作間隔。#include<iostream>#include<string>usingnamespacestd;voidmain(){intSno;charname[10];cout<<"inputSno:";cin>>Sno;//L1cout<<"inputname:";//getchar();cin.getline(name,10);//L2cout<<"Sno:"<<Sno<<endl;cout<<"name:"<<name<<endl;}緊接在讀取數(shù)字等類型的cin語句后,getline會讀取其前一條語句留在輸入法中的”\n”而結束解決方法:“吃掉\n”,比如用getchar();1.4編程實作——VC++2022編程簡介1、.NET平臺主要功能.NET是基于因特網(wǎng)和Web的,它獨立于任何語言或平臺,對于程序開發(fā)的語言不作限制,開發(fā)者可以使用多種.NET兼容語言的任意組合創(chuàng)建.NET程序,這就允許在同一軟件項目中,多個程序員分別使用自己精通的.NET語言編寫程序代碼。1.4編程實作——VC++2022編程簡介1、VisualC++VisualC++是微軟公司對C++的一個特定實現(xiàn),支持C和C++程序設計,并在其中添加了微軟公司的語言擴展。
VisualC++是一個集成開發(fā)環(huán)境,具有編輯、編譯、調(diào)試、鏈接、裝配和執(zhí)行C++程序的功能。能夠編制基于控制臺和Windows平臺的C++程序。2、VisualC++版本
VisualC++6.0VisualC++.NET1.4編程實作——VC++2022編程簡介3、Visual托管程序設計窗體程序設計FCL和CLRC#、J#、VC++、VisualBasic多語言混合程序設計垃圾回收1、VisualC++2022簡介
visualstudio2022中的編譯器之一支持標準C++和托管C++程序設計托管C++采用新語法支持MFC和窗體程序設計1.4編程實作——VC++2022編程簡介【例1-15】某次考試成績?nèi)缦?,編寫程序計算每位同學的平均分。要求成績從鍵盤輸入,程序輸出結果的形式與下面相同,但要輸出每位同學的平均分。
語文
數(shù)學
政治
化學
英語
平均分學生167 76878976學生278 87789087程序設計思路:設計一個二維數(shù)組s保存學生的成績和平均分;設計一個讀入學生成績表的函數(shù)ReadData,該函數(shù)將學生成績讀入數(shù)組s的前5列中;設計一個計算平均成績的函數(shù)AveScore,該函數(shù)計算每位同學的平均成績,并將計算結果放入s數(shù)組的第6列;設計一個輸出數(shù)據(jù)的函數(shù)OutData,該函數(shù)將s數(shù)組的數(shù)據(jù)按指定格式輸出。1.4編程實作——VC++2022編程簡介<1>選擇“開始|所有程序|VisualStduio2022”菜單命令,啟動VC++2022。<2>選擇“文件|新建|項目”菜單命令,彈出“新建”對話框,如圖1-11所示。<3>在“新建”對話框的“位置”標簽后面,單擊“瀏覽…”,選擇要保存源程序的目錄。<4>在“名稱”對話框中的輸入項目名稱“Eg1-22”。然后單擊“確定”按鈕,然后單擊彈出對話框中的“完成”按鈕,進入VisualC++的編程序環(huán)境,1.5編程實作——VC++2022編程簡介/Eg1-15.cpp#include<iostream>#include<iomanip> //setw在此頭文件中定義usingnamespacestd;#defineStuNum5 //StuNum代表學生人數(shù)voidReadData(doubles[][6],intn); //這3行是函數(shù)聲明voidAveScore(doubles[][6],intn);voidOutData(doubles[][6],intn);voidmain(){doubles[StuNum][6]; //定義保存學生成績的數(shù)組ReadData(s,2); //讀入學生成績AveScore(s,2); //計算各學生的平均分OutData(s,2); //輸出學生成績表}1.4編程實作——VC++2022編程簡介voidReadData(doubles[][6],intn){for(inti=0;i<n;i++){cout<<"輸入學生"<<i+1<<"的5科成績:";//提示輸入學生成績for(intj=0;j<5;j++) //輸入學生的5科成績cin>>s[i][j];}}voidAveScore(doubles[][6],intn){for(inti=0;i<n;i++){doublesum=0;for(intj=0;j<5;j++)sum=sum+s[i][j];s[i][5]=sum/5.0;}} 1.4編程實作——VC++2022編程簡介voidOutData(doubles[][6],intn){ //在屏幕上輸出科目名稱cout<<setw(17)<<"語文"<<setw(8)<<"數(shù)學"<<setw(8)<<"政治"<<setw(8)<<"化學"<<setw(8)<<"英語"<<setw(8)<<"平均分"<<endl;for(inti=0;i<n;i++){cout<<setw(8)<<"學生"<<i+1;for(intj=0;j<6;j++)cout<<setw(8)<<s[i][j];cout<<endl;}}
1.4編程實作——VC++2022編程簡介TheEnd謝謝大家!第2章C++基礎
教學目標:掌握C++語言中的基本概念和非面向對象的語言機制,了解C++新語言標準與新語言特點,具備應用C++新語言特性編寫C++程序的基本能力。教學重點:C++的數(shù)據(jù)類型、類型推斷、類型轉換、常量、引用、指針、函數(shù)原型、默認參數(shù)、函數(shù)重載、內(nèi)聯(lián)函數(shù)、Lamada、范圍for、名字空間及其應用、變量、文件。教學難點:
常量與指針、引用結合應用,智能指針、Lamada函數(shù)、文件、類型轉換、函數(shù)參數(shù)、移動函數(shù)、靜態(tài)變量的作用域與生存期。2.1C++語言對C語言的數(shù)據(jù)類型擴展和類型定義1、C數(shù)據(jù)類型在C++中繼續(xù)可用2、C++對C的struct、enum、union進行了擴展C:結構名、枚舉、聯(lián)合不是類型structsome_struct{……};structsome_structstruct_var;typedefstructsome_structstruct_type;C++:結構名、聯(lián)合名為類型structsome_struct{……};some_struct
struct_var;C++允許在struct、union內(nèi)部設置函數(shù)
下面程序.c錯誤,.cpp無錯誤#include<stdio.h>#include<stdlib.h>struct
A{ intx; voidsetX(inta){x=a;}};intmain(){ Aa[10]; for(inti=0;i<10;i++) { a[i].setX(i); } for(inti=0;i<10;i++) { printf("a[%d]=%d\t",i,a[i]); }}2.1C++語言對C語言的數(shù)據(jù)類型擴展和類型定義3、enum和enumclassenumcolor{black,white,red,blue,yellow}; //C,C++98/03enumclasscolor1{black1,white1,red1,blue1,yellow1}; //C++11boolblack=false; //L1,錯誤,不能通過編譯boolblack1=false; //L2,正確enum是C語言中不限作用域的枚舉,稱為枚舉(enumeration)enumclass是C++11標準enum的補充,稱為枚舉器(enumerator)區(qū)別:enum的作用域不受定義它的“{}”限制,在上一級作用域內(nèi)仍然有效。因此,color定義的black標識在語句l1處仍然有效,再定義black就屬于重定義錯誤了。enumclass的作用域局限在定義它的“{}”中。因此,語句l2定義black1時并不會與color1中的枚舉常量black1發(fā)生沖突,因為black1的作用域被限定在定義它的“{}”中,不會延伸到語句l2處2.2C++程序變量設計的基本思想1.面向過程與面向對象程序變量設計思想的主要區(qū)別“程序=數(shù)據(jù)結構+算法”程序設計基本方法:①定義程序要用到的數(shù)據(jù)結構和全局變量;②定義操作數(shù)據(jù)和全局變量的若干函數(shù),定義函數(shù)時,也是先定義好要使用的所有局部變量才開始編寫函數(shù)執(zhí)行代碼;③在主程序(主函數(shù))中組織執(zhí)行流程,按次序調(diào)用各函數(shù),進行全局變量的運算和修改,實現(xiàn)程序功能。面向過程程序設計的基本思想structA{…
};intx,y,z;
intf1(…){
inti,j,k;
for(i=0;i<n;i++){x+=10;
……}}intf1(…){…}voidmain(){
inta,b,c;structAs;f1(a,b,c);
……f2(s);}1.先定義數(shù)據(jù)結構和全部變量2.再定義函數(shù),函數(shù)也是先定義變量,再寫操行語句主要問題:1.全局變量生存期長,耗占內(nèi)存時間長2.全局變量可能與局部變量沖突3.在編寫大程序后部分代碼量,查找最前面的全局變量定義較難。2.2C++程序變量設計的基本思想1.面向過程與面向對象程序變量設計思想的主要區(qū)別“盡量減小變量的作用域范圍,少用(甚至不用)全局變量,變量應就近定義,就近使用”。面向對象程序設計語言允許在任何語句位置定義變量。包括for、while、do-while循環(huán)語句內(nèi)部以及switch和if等復合句中都可以定義變量。面向對象程序變量的基本思想【例2-2】在C++中,在for循環(huán)內(nèi)部定義局部變量。//Eg2-2.cpp#include<iostream>usingnamespacestd;voidmain(){intn=1;for(inti=1;i<=10;i++){intk;n=n*i;}//i、k作用域結束
inti=0;}//n作用域結束1.變量就近定義,就近使用2.隨用隨定義優(yōu)點:1.對象通常較大(數(shù)據(jù)成員多),減少全局變量可減少其對內(nèi)存的長期耗占2.減少了與局部變量的沖突3.變量隨用隨定義,寫大程序時不須找最前面的全局。1.左值和右值
intx,y;
定義了變量的左、右兩個值左值代表變量名對應的內(nèi)存區(qū)域,是“能夠放在賦值語句左邊的值”變量:x(指x對應的內(nèi)存區(qū)域)右值指變量對應內(nèi)存區(qū)域中的值,是“放在賦值語句右邊的值”常量:2,-3,表達式:7+34.7變量:x(指在x對應內(nèi)存區(qū)域中存放的值)有變量的表達式:x+7+y2.3左值、右值和斷言89內(nèi)存區(qū)域xyx=x+1“=”左邊的x是其左值,即x對應的內(nèi)存單元,右邊的x指其右值82.3左值、右值和斷言2.斷言assert是一種檢測錯誤的宏,可以用來對表達式的結果進行判斷,如果為假,就會退出程序。在軟件開發(fā)階段運用斷言進行測試非常有效,能夠快速找到錯誤并進行修改【例2-3】在C++中,用斷言檢查平方根函數(shù)的參數(shù)必須大于0。//Eg2-3.cpp#include<iostream>#include<cassert>#include<cmath>usingnamespacestd;doublesqrtd(doublex){assert(x>=0.0);returnsqrt(x);}intmain(){cout<<sqrtd(-6.0)<<endl;return0;}編譯并運行程序,將產(chǎn)生下面的輸出Assertionfailed:x>=0.0,fileF:\cprogram\ui\abc.cpp,line8abnormalprogramtermination2.4指針本節(jié)要掌握的內(nèi)容C++的指針new、delete指針與常量之間的關系0指針、void指針、智能指針智能指針2.4.1指針概述1、C++內(nèi)存分配方式靜態(tài)分配(靜態(tài)變量)編譯器在處理源代碼時為變量分配內(nèi)存,其效率較高,但缺少靈活性(要求程序執(zhí)行之前就知道變量所需的內(nèi)存類型和數(shù)量)動態(tài)分配(動態(tài)變量)程序執(zhí)行時調(diào)用運行時刻庫函數(shù)來分配變量的內(nèi)存。兩者的區(qū)別靜態(tài)變量是有名字的變量,可以通過名字對它所代表的內(nèi)存進行操作;動態(tài)變量是沒有名字的內(nèi)存變量,只能通過指針進行操作。靜態(tài)變量的分配和釋放由編譯器自動處理,動態(tài)變量的分配與釋放必須由程序員控制。2.4.1指針概念的回顧2、動態(tài)內(nèi)存分配指針對類型T,T*是“到T的指針”,即一個類型為T*的變量,能存一個類型T的對象的地址charc;……c=‘a(chǎn)’;charp*p=&c;pc?????‘a(chǎn)’?&c*P內(nèi)存??局部變量與指針在堆棧中的分配#include<iostream>usingnamespacestd;voidmain(intargc,char
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年蓄水池施工勞務合同范本
- 廢紙采購合同2024年
- 工業(yè)商品交易合同范例
- 房屋買賣合同協(xié)議書撰寫指南
- 2024年門衛(wèi)值班人員聘用合同協(xié)議
- 個人借款延期還款協(xié)議書范例
- 工廠土地轉讓合同樣本
- 產(chǎn)品加工項目合作協(xié)議書范本
- 2024年勞務合同與勞務協(xié)議書
- 合同范本編寫指南
- 2024城市公共設施適老化設施服務要求與評價
- 專題05 狼(含答案與解析)-備戰(zhàn)2024年中考語文之文言文對比閱讀(全國版)
- 小學語文分層作業(yè)設計案例一等獎
- 2023年10月云南昆明市西山區(qū)碧雞街道社區(qū)青年人才招考筆試歷年典型考題及考點剖析附答案詳解
- 中等職業(yè)學?!禖AD制圖》課程標準
- 2023-2024學年全國初中八年級上語文人教版期中考卷(含答案解析)
- 中國心力衰竭基層診療與管理指南(實踐版2024)解讀
- JT-T-325-2018營運客運類型劃分及等級評定
- TD/T 1012-2016 土地整治項目規(guī)劃設計規(guī)范(正式版)
- GB/T 43922-2024在役聚乙烯燃氣管道檢驗與評價
- DZ∕T 0273-2015 地質資料匯交規(guī)范(正式版)
評論
0/150
提交評論