⑴ 面向對象編程方法的要點
沒有什麼要點,別瞎想。自己多寫寫,等你寫一萬行以上了,感覺自然來。看書沒用,多動手。
⑵ 面向對象程序設計期末大作業題目(C語言)
面向對象程序設計
期末大作業題目
第1題:設計一個學生學籍管理系統
學生信息包括:姓名、學號、性別和英語、數學、程序設計、體育成績。
從鍵盤輸入數據,建立數據文件student.dat。
實現對學生或學號查詢,顯示信息。
對所有學生,按照班級計算平均成績。
分別按照英語、數學、程序設計和體育成績排序生成結果文件。
程序清單:
第2題:自定義一個示意性的復數類
自定義一個示意性的復數類型complex,其中含有若干個成員函數,使用該類可以完成復數的加法以及對復數的輸出。請完成類定義並編制主函數,說明complex類對象,對定義的各成員函數進行調用。class complex{ double real; //復數實部 double imag; //復數虛部public: complex(); //無參構造函數 complex(double r, double i); //兩參構造函數 complex addCom(complex c2);
//調用者對象與對象c2相加,返回complex類對象 void outCom ();
//輸出調用者對象的有關數據(各分量) }; 進一步,在類中添加對復數進行其他基本運算(如,復數減、乘、除、取模等)的相應成員函數,並通過主函數處的調用來驗證各函數的使用正確性。
程序清單:
第3題:設計一個模擬電信計費程序
假設電信計費標准:固定電話長途話費0.02元/秒,固定電話本地話費0.06元/分,無線電話長途話費1.00元/分,無線電話本地話費0.60元/分,無線電話接聽話費0.50元/分。
源數據文件中存放:電話號碼,電信服務類別,通話時間(秒)。
生成固定長途電話文件:長途電話號碼和通話時間。
生成固定本地電話文件:本地電話號碼和通話時間。
生成無線長途電話文件:長途電話號碼和通話時間。
生成無線本地電話文件:本地電話號碼和通話時間。
生成無線接聽電話文件:接聽電話號碼和通話時間。
生成統計電信費用文件:電話號碼、累計電信費用。
程序清單:
第4題:設計一個保留字(或關鍵字)的統計程序
建立保留字文件;
從源數據文件(C或C++語言程序)中,讀取字元或字元串,與保留字文件中的保留字進行匹配比較,並統計計數。
輸出兩張表文件:保留字計數,掃描程序的次數,非保留字計數。
程序清單:
程序清單:
第5題:設計一個數據文件處理程序
源數據文件中含有字元和數字,從中讀取數值數據(將連續的數字字元看成一個數值數據),和讀取的單詞(將連續的字母字元看成一個單詞)分別存放在不同的文件中,並且排序後輸出顯示。
例如:源數據文件old.dat包括:asjjk 12rtr 345 dasdd9&k32*dfasfkjk##dasfdf897,
則生成的數據文件new1.data包括:12 345 9 32 897
單詞文件new2.dat包括:asjjk rtr dasdd k dfasfkjk dasfdf
程序清單:
第6題:設計一個超長整數類
定義並實現超長整數類doublelong,要求如下:
64位數據長度,有符號
支持+、-、*、/運算
支持+=、-=、/=運算
支持cin>>和cout<<操作
你給多少錢?1500,全部幫你做下來,成交不?
⑶ 面向對象程序設計的重要概念有哪些
面向對象就是一種開發軟體的方法,核心是對象.
1.什麼是對象?
對象是一個在時間和空間上存在的事物。比如你電腦屏幕上顯示的一個字元、一個人、一隻狗、一個程序、一個int等等,他們都在時間上和空間上存在。
2.什麼是類?
簡單的說類是一組對象,這組對象共享相同的行為和屬性以及相同的結構(就是定義類的結梗?
3.什麼是封裝?
封裝這個術語有兩層含義:
第一層含義是指的是將數據和處理使用這些數據的函數放在同一個結構里;
第二層含義指的是將一個對象或者一個模塊的復雜的、易變的部分隱藏起來,提供一個簡單的、固定的對外借口。
4.什麼是繼承?
繼承是一種層次結構,這種層次結構描述了「是一種」關系(如:玫瑰是一種花)或者實現了某種程度的代碼重用.
5.什麼是組合?
組合是一種層次結構,這種層次結構描述了「有」關系,包括物理的和邏輯的.比如人有手,有腳,這就是物理的組合;你有一塊錢,這是邏輯的組合,因為錢不是你的組成部分。
6.什麼是多態?
多態指的是一個名字,可以代表一些不同的對象,只要這些對象有共同的基類即可,這樣有這個名字所代表的對象可以以不同的方式來響應同一個消息了。
如:
class Person {
public:
virtual void speek() = 0;
virtual ~Person() {}
};
class Chinese : public Person {
public:
void speek() {
std::cout << "你好" << std::endl;
}
};
class English : public Person {
public:
void speek() {
std::cout << "Hello" << std::endl;
}
};
void go(Person &s) {//這里的s可以代表Chinese、English的對象
s.speek();
}
int main() {
Chinese c;
English e;
go(c);
go(e);
std::cin.get();
}
好了,其他的不講了。有疑問的可以...
建議看一下國外的計算機教材。
其實還有很多啊。。。 自己找本國外教材看看,不是那麼枯燥的。。。
⑷ C語言的重要內容是什麼
清華譚浩強編《c語言程序設計》一書中語言最重要的知識點是:運算符、數據類型、常量與變數、字元串、函數、指針等。
在這本書中,保留了《C程序設計》一書的特點:體系合理、邏輯清楚、例題豐富、通俗易懂。同時又根據C語言新標準的規定,對該書進行了改寫,使之符合當前的需要。
(4)c面向對象程序設計復習重點擴展閱讀:
C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著跨平台的特性,以一個標准規格寫出的C語言程序可在包括類似嵌入式處理器以及超級計算機等作業平台的許多計算機平台上進行編譯。
⑸ 《C++程序設計》中簡述面向對象方法的出發點和基本原則
1.編程模型
所有計算機均由兩種元素組成:代碼和數據.精確的說,有些程序是圍繞著"什麼正在發生"而編寫,有些則是圍繞"誰正在受影響"而編寫的.
第一種編程方式叫做"面向過程的模型",按這種模型編寫的程序以一系列的線性步驟(代碼)為特徵,可被理解為作用於數據的代碼.如 C 等過程化語言.
第二種編程方式叫做"面向對象的模型",按這種模型編寫的程序圍繞著程序的數據(對象)和針對該對象而嚴格定義的介面來組織程序,它的特點是數據控制代碼的訪問.通過把控制權轉移到數據上,面向對象的模型在組織方式上有:抽象,封裝,繼承和多態的好處.
2.抽象
面向對象程序設計的基本要素是抽象,程序員通過抽象來管理復雜性.
管理抽象的有效方法是使用層次式的分類特性,這種方法允許用戶根據物理含義分解一個復雜的系統,把它劃分成更容易管理的塊.例如,一個計算機系統是一個獨立的對象.而在計算機系統內部由幾個子系統組成:顯示器,鍵盤,硬碟驅動器,DVD-ROM,軟盤,音響等,這些子系統每個又由專門的部件組成.關鍵是需要使用層次抽象來管理計算機系統(或其他任何復雜系統)的復雜性.
面向對象程序設計的本質:這些抽象的對象可以被看作具體的實體,這些實體對用來告訴我們作什麼的消息進行響應.
/* (我的理解)
*計算機是一個實體,我要輸入字元,顯示器顯示出來,那麼
*計算機(對象).輸入(鍵盤屬性).顯示(顯示方法)
*使用分層來引用,操作.而不用管計算機內部如何處理.
*只要有計算機對象,它就能響應我的操作,而我敲鍵盤,
*計算機對象就把這個消息傳給屏幕,屏幕顯示.
*/
計算機對象包含了它所有的屬性,以及操作,這就是面向對象程序設計的三大原則之一:封裝.
3.封裝
封裝是一種把代碼和代碼所操作的數據捆綁在一起,使這兩者不受外界干擾和誤用的機制.封裝可被理解為一種用做保護的包裝器,以防止代碼和數據被包裝器外部所定義的其他代碼任意訪問.對包裝器內部代碼與數據的訪問通過一個明確定義的介面來控制.封裝代碼的好處是每個人都知道怎樣訪問代碼,進而無需考慮實現細節就能直接使用它,同時不用擔心不可預料的副作用.
在JAVA中,最基本的封裝單元是類,一個類定義著將由一組對象所共享的行為(數據和代碼).一個類的每個對象均包含它所定義的結構與行為,這些對象就好象是一個模子鑄造出來的.所以對象也叫做類的實例.
在定義一個類時,需要指定構成該類的代碼與數據.特別是,類所定義的對象叫做成員變數或實例變數.操作數據的代碼叫做成員方法.方法定義怎樣使用成員變數,這意味著類的行為和介面要由操作實例數據的方法來定義.
由於類的用途是封裝復雜性,所以類的內部有隱藏實現復雜性的機制.所以JAVA中提供了私有和公有的訪問模式,類的公有介面代表外部的用戶應該知道或可以知道的每件東西.私有的方法數據只能通過該類的成員代碼來訪問.這就可以確保不會發生不希望的事情.
4.繼承
繼承是指一個對象從另一個對象中獲得屬性的過程.是面向對象程序設計的三大原則之二,它支持按層次分類的概念.例如,波斯貓是貓的一種,貓又是哺乳動物的一種,哺乳動物又是動物的一種.如果不使用層次的概念,每個對象需要明確定義各自的全部特徵.通過層次分類方式,一個對象只需要在它的類中定義是它成為唯一的 各個屬性,然後從父類中繼承它的通用屬性.因此,正是由於繼承機制,才使得一個對象可以成為一個通用類的一個特定實例.一個深度繼承的子類將繼承它在類層次中的每個祖先的所有屬性.
繼承與封裝可以互相作用.如果一個給定的類封裝了某些屬性,它的任何子類將會含有同樣得屬性,另加各個子類所有得屬性.這是面向對象程序在復雜性上呈線性而非幾何增長的一個重要概念.新的子類繼承其所有祖先的所有屬性.子類和系統中的其他代碼不會產生無法預料的交互作用.
5.多態
多態是指一個方法只能有一個名稱,但可以有許多形態,也就是程序中可以定義多個同名的方法,用"一個介面,多個方法"來描述.可以通過方法的參數和類型引用.
6.封裝,繼承,多態的組合使用
在由封裝,繼承,多態所組成的環境中,程序員可以編寫出比面向過程模型更健壯,更具擴展性的程序.經過仔細設計的類層次結構是重用代碼的基礎.封裝能讓程序員不必修改公有介面的代碼即可實現程序的移植.多態能使程序員開發出簡潔,易懂,易修改的代碼.例如:汽車
從繼承的角度看,駕駛員都依靠繼承性來駕駛不同類型(子類)的汽車,無論這輛車是轎車還是卡車,是賓士牌還是菲亞特牌,駕駛員都能找到方向盤,手剎,換檔器.經過一段時間駕駛後,都能知道手動檔與自動檔之間的差別,因為他們實際上都知道這兩者的共同超類:傳動裝置.
從封裝的角度看,駕駛員總是看到封裝好的特性.剎車隱藏了許多復雜性,其外觀如此簡單,用腳就能操作它.發動機,手剎,輪胎大小的實現對與剎車類的定義沒有影響.
從多態的角度看,剎車系統有正鎖反鎖之分,駕駛員只用腳踩剎車停車,同樣的介面可以用來控制若干種不同的實現(正鎖或反鎖).
這樣各個獨立的構件才被轉換為汽車這個對象的.同樣,通過使用面向對象的設計原則,程序員可以把一個復雜程序的各個構件組合在一起,形成一個一致,健壯,可維護的程序