當前位置:首頁 » 課程大全 » 面向對象課程設計心得體會

面向對象課程設計心得體會

發布時間: 2021-02-03 23:34:17

⑴ c++面向對象程序設計心得

請教通過的前輩,有什麼參考書籍或者心得,或者其他的經驗發來參考。不求捷徑《C 面向對象程序設計》是比較的基礎,但學語法並不是最重要的,更重要是

⑵ 中國人民大學網路教育學院 《面向對象程序設計》結課設計

面向對象程序設計內容為三部分:可運行exe文件,源代碼,開發文檔。

主要採用C+語言編寫,基礎功能必須實現,其它部分功能為加分項,可根據個人能力自行選擇。

運行文件:在制定環境下運行,並實現數據保存,修改,重命名等功能。

源代碼:運行文件的代碼組成部分。

開發文檔:程序運行環境,開發過程,及程序可實現功能詳解,最後課程建議等。

注意:1、編寫時資料庫的連接2、提交文件為壓縮文件3、文件小於10M。

⑶ 就如何利用面向對象的軟體開發方法來開發軟體,談自己的心得體會,3000字

隨著計算機世界的高速發展,軟體事業的增強,軟體在我們生活中的運用隨處都是,但軟體業也因此興起,但作為IT業內人士則考慮的不是這些問題,而是如何用一個好的軟體開發方法去開發好一個軟體。現在,在眾多的軟體開發方法中,選擇了面向對象的的方法來談談我的個人見解。為什麼要選它呢,因為這種方法在現在是最常用的一種,大多數的開發商都採用了面向對象的方法。
談到面向對象,這方面的文章非常多。但是,明確地給出對象的定義或說明對象的定義的非常少——至少我現在還沒有發現。其初,「面向對象」是專指在程序設計中採用封裝、繼承、抽象等設計方法。可是,這個定義顯然不能再適合現在情況。面向對象的思想已經涉及到軟體開發的各個方面。如,面向對象的分析(OOA,Object Oriented Analysis),面向對象的設計(OOD,Object Oriented Design)、以及我們經常說的面向對象的編程實現(OOP,Object Oriented Programming)。許多有關面向對象的文章都只是講述在面向對象的開發中所需要注意的問題或所採用的比較好的設計方法。看這些文章只有真正懂得什麼是對象,什麼是面向對象,才能最大程度地對自己有所裨益。這一點,恐怕對初學者甚至是從事相關工作多年的人員也會對它們的概念模糊不清。
面向對象是當前計算機界關心的重點,它是90年代軟體開發方法的主流。面向對象的概念和應用已超越了程序設計和軟體開發,擴展到很寬的范圍。如資料庫系統、互動式界面、應用結構、應用平台、分布式系統、網路管理結構、CAD技術、人工智慧等領域。
不論採用哪種方法來開發軟體,分析的過程都是提取系統需求的過程。分析工作主要包括3項內容,這就是理解,表達和驗證。首先,系統分析員通過用戶及領域專家的充分交流,力求完全理解用戶需求和該應用鄰域中的關鍵性的背景知識,並用某種無二義性的方式把這種理解表達成文檔資料。分析過程得出的最重要的文檔資料是軟體需求規格說明(在面向對象分析中,主要由對象模型,動態模型和功能模型組成)。
由於問題復雜,而且人與人之間的交流帶有隨意性和非形式化的特點,上述理解過程通常不能一次就達到理解的效果。因此,還必須進一步驗證軟體需求規格說明的正確性,完整性和有效性,如果發現了問題則進行修正。顯然,需求分析過程是系統分析員與用戶及領域專家反復交流和多次修正的過程。也就是說,理解和驗證的過程通常交替進行,反復迭代,而且往往需要利用原型系統作為輔助工具。
面向對象分析(OOA)的關鍵是識別出問題域內的類與對象,並分析它們相互間的關系,最終建立起問題域的簡潔,精確,可理解的正確模型。在用面向對象觀點建立起的3種模型中,對象模型是最基本,最重要,最核心的。
下面我們來看看面向對象的開發方法。
一 .首相讓我們來了解什麼是面向對象:
(1)對象:對象是人們要進行研究的任何事物,從最簡單的整數到復雜的飛機等均可看作對象,它不僅能表示具體的事物,還能表示抽象的規則、計劃或事件。
(2)對象的狀態和行為。
對象具有狀態,一個對象用數據值來描述它的狀態。
對象還有操作,用於改變對象的狀態,對象及其操作就是對象的行為。
對象實現了數據和操作的結合,使數據和操作封裝於對象的統一體中
(3)類:具有相同或相似性質的對象的抽象就是類。因此,對象的抽象是類,類的具體化就是對象,也可以說類的實例是對象。
類具有屬性,它是對象的狀態的抽象,用數據結構來描述類的屬性。
類具有操作,它是對象的行為的抽象,用操作名和實現該操作的方法來描述。
(4)類的結構:在客觀世界中有若干類,這些類之間有一定的結構關系。通常有兩種主要的結構關系,即一般--具體結構關系,整體--部分結構關系。
①一般——具體結構稱為分類結構,也可以說是「或」關系,或者是「is a」關系。
②整體——部分結構稱為組裝結構,它們之間的關系是一種「與」關系,或者是「has a」關系。
(5)消息和方法:對象之間進行通信的結構叫做消息。在對象的操作中,當一個消息發送給某個對象時,消息包含接收對象去執行某種操作的信息。發送一條消息至少要包括說明接受消息的對象名、發送給該對象的消息名(即對象名、方法名)。一般還要對參數加以說明,參數可以是認識該消息的對象所知道的變數名,或者是所有對象都知道的全局變數名。
二. 下面讓我們來認識一下面向對象的特徵和幾大要素:
(1)對象唯一性。(2)分類性。(3)繼承性。(4)多態性(多形性)
面向對象的要素:(1)抽象。 (2)封裝性(信息隱藏)。(3)共享性
三. 面向對象和基於對象的區別:
很多人沒有區分「面向對象」和「基於對象」兩個不同的概念。面向對象的三大特點(封裝,繼承,多態)卻一不可。通常「基於對象」是使用對象,但是無法利用現有的對象模板產生新的對象類型,繼而產生新的對象,也就是說「基於對象」沒有繼承的特點。而「多態」表示為父類類型的子類對象實例,沒有了繼承的概念也就無從談論「多態」。現在的很多流行技術都是基於對象的,它們使用一些封裝好的對象,調用對象的方法,設置對象的屬性。但是它們無法讓程序員派生新對象類型。他們只能使用現有對象的方法和屬性。所以當你判斷一個新的技術是否是面向對象的時候,通常可以使用後兩個特性來加以判斷。「面向對象」和「基於對象」 都實現了「封裝」的概念,但是面向對象實現了「繼承和多態」,而「基於對象」沒有實現這些,的確很饒口。
從事面向對象編程的人按照分工來說,可以分為「類庫的創建者」和「類庫的使用者」。使用類庫的人並不都是具備了面向對象思想的人,通常知道如何繼承和派生新對象就可以使用類庫了,然而我們的思維並沒有真正的轉過來,使用類庫只是在形式上是面向對象,而實質上只是庫函數的一種擴展。
面向對象是一種思想,是我們考慮事情的方法,通常表現為我們是將問題的解決按照過程方式來解決呢,還是將問題抽象為一個對象來解決它。很多情況下,我們會不知不覺的按照過程方式來解決它,而不是考慮將要解決問題抽象為對象去解決它。有些人打著面向對象的幌子,干著過程編程的勾當。
在對面向對象方法學有了一定的理解後,我們可以知道,面向對象方法學的出發點和根本原則,是盡量可能模擬人類習慣的思維方式,使開發軟體的方法與過程盡可能接近人類認識世界解決問題的方法與過程,也就是使描述問題的問題空間(也稱為問題域)與實現解決的解空間(也稱為求解域)在結構上盡可能一致。
四 .面向對象方法學和傳統方法學較之有了很大的優點:
1.它與人習慣的思維方法一致。
傳統的程序設計技術是面向過程的設計方法,這種方法以計算為中心,把數據和過程作為相互獨立的部分,數據代表問題空間中的客體,程序代碼則用於處理這些數據。而面向對象的方法學是以對象為核心,用這種技術開發出的軟體系統由對象組成的。
2.穩定性好。
傳統的軟體開發方法以計演算法為核心,開發過程基於功能分析和功能分解,所以它很不穩定。而面向對象的方法學是基於構造問題鄰域的對象模型,以對象為中心構造軟體系統,它的基本做法是對象模擬問題鄰域中的實體,以對象間的聯系刻畫實體間的聯系。由於現實世界中的實體是相對穩定的,因此,以對象為中心構造的軟體系統也是比較穩定的。
3.可重用性好。
傳統的軟體重用技術是利用標准函數庫,也就是試圖用標准函數庫中的函數作為「預製件」來建造新的軟體系統,但是,標准函數缺乏必要的「柔性」,不能適應不同應用場合的不同需要,並不時理想的可重用的軟體成分。而在實際開發一個新的軟體系統時,通常多數函數是開發者自己編寫的,甚至絕大多數的函數都是新編的。
面向對象的軟體技術在利用可用的軟體成分構造新的軟體系統時,有很大的靈活性。它有兩種方法可以重復使用一個對象類:一種方法是創建該類的實例,從而直接使用它,另一種方法是從它派生出一個滿足當前需要的新類。它所實現的重用性是自然的和准確的,不像傳統的方法是刻意的。
4.較易開發大型軟體產品。
在開發大型軟體產品時,組織開發人員的方法不恰當往往是出現問題的主要原因。用面向對象方法學時,構成軟體系統的每一個對象就像一個微型程序,有自己的數據,操作,功能和用途,因此,可以把一個大型軟體產品分解成一系列本質上相互獨立的向產品來處理,故它比較容易開發大型軟體。
5.可維護性好。
用傳統的方法和面向過程語言開發出來的軟體很難維護,然而面向對象的方法由於存在下面幾種原因故維護性好。
因素:面向對象的軟體穩定性比較好。
面向對象的軟體比較容易修改。
面向對象的軟體比較容易理解。
面向對象的軟體易於測試和調試。

最後:
目前,面向對象開發方法的研究已日趨成熟,國際上已,有不少面向對象產品出現。我相信這種方法在不斷地完善下不僅現在適用,就算再將來,它也會被相當多的開發商使用的。

⑷ 面向對象程序設計(教務管理系統開發)實訓報告體會與感想,

我只能告訴你題目為「很好,很強大」,希望你見字取意,有感而發。

⑸ 《面向對象程序設計》課程設計

#include<iostream.h>
#include<string.h>
#include<fstream.h>
class stu
{
char name[20];
double math,chinese,english,average,sum;
public:
stu()
{
}
stu(char n[20],double ma,double chin,double eng)
{
strcpy(name,n);
math=ma;
chinese=chin;
english=eng;
}
double getsum()
{
sum=chinese+english+math;
return sum;
}
double getaver()
{
average=getsum()/3;
return average;
}
friend void main();
};
void main()
{
cout<<"請選擇您需要的操作!"<<endl;
cout<<"操作:"<<endl;
cout<<"(0)數據錄入"<<endl;
cout<<"(1)增加人員"<<endl;
cout<<"(2)刪除人員"<<endl;
cout<<"(3)修改數據"<<endl;
cout<<"查詢:"<<endl;
cout<<"(4)按總成績查詢"<<endl;
cout<<"(5)按姓名查詢"<<endl;
cout<<"(6)輸出所有學生的數據"<<endl;
cout<<"成績名詞"<<endl;
cout<<"(7)按總分查詢排名"<<endl;
cout<<"(8)按語文查詢排名"<<endl;
cout<<"(9)按數學查詢排名"<<endl;
cout<<"(y)按英語查詢排名"<<endl;
cout<<"選擇相關操作請輸入相對的括弧里的阿拉伯數字!"<<endl;
char p;char w;
stu *s[50];
ofstream *file[50];
int i=0;
int j=0;
bool flag2=0;
do
{
cin>>p;
if((p>='0'&&p<='10'))
flag2=1;
else
cout<<"指令錯誤!請重新輸入:"<<endl;
}while(flag2==0);
do
{
switch(p)
{
case '0':
{
char c;
char name[20];double math,chinese,english;
do{
cout<<"請輸入姓名"<<endl;
cin>>name;
cout<<"請輸入數學成績:"<<endl;
cin>>math;
cout<<"請輸入語文成績:"<<endl;
cin>>chinese;
cout<<"請輸入外語成績:"<<endl;
cin>>english;
file[j]=new ofstream("d:\\document",ios::ate);
*file[j]<<"姓名"<<name<<"數學成績"<<math<<"語文成績"<<chinese<<"外語成績"<<english<<endl;
j++;
s[i]=new stu(name, math, chinese, english);
i++;
cout<<"數據錄入成功,想繼續錄入嗎(y/n)"<<endl;
cin>>c;
flag2=0;
do
{
if(c!='y'&&c!='n')
{
cout<<"指令錯誤!請重新輸入!"<<endl;
cin>>c;
}
else
flag2=1;
}while(flag2==0);
}while(c=='y');
break;
}
case '4':
{
double t;char c;
do
{
int flag1=0;
cout<<"請輸入你要查詢學生的總成績"<<endl;
cin>>t;
for(int q=0;q<i;q++)
{
if(s[q]->getsum()==t)
{
flag1=1;
cout<<"您要查詢的學生是:"<<(*s[q]).name<<endl;
}
}
if(flag1==0)
cout<<"對不起!您要查詢的學生不存在!"<<endl;
cout<<"您想繼續查詢嗎?(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令錯誤!請重新輸入!"<<endl;
cin>>c;
}
}
while(c=='y');
break;
}

case '5':
{
char n[20];int j=0;char c;
do{
int flag=0;
cout<<"請輸入你要查詢的學生姓名"<<endl;
cin>>n;
for(int j=0;j<i;j++)
{
if(strcmp(n,(*s[j]).name)==0)
{
flag=1;
cout<<"您要查詢的學生是:"<<(*s[j]).name<<endl;
cout<<(*s[j]).name<<"的總成績成績是"<<(*s[j]).getsum()<<endl<<"平均成績是:"<<(*s[j]).getaver()<<endl;
}
}
if(flag==0)
cout<<"對不起!您要查詢的學生不存在!"<<endl;
cout<<"您想繼續查詢嗎?(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令錯誤!請重新輸入!"<<endl;
cin>>c;
}
}
while(c=='y');
break;
} 還有一部分。。

⑹ 通過學習c 面向對象程序設計有什麼體會學到了哪些東西

不是C++才面向對象的嗎?C好像沒有面象對象吧~~~

熱點內容
武漢大學學生會輔導員寄語 發布:2021-03-16 21:44:16 瀏覽:612
七年級學生作文輔導學案 發布:2021-03-16 21:42:09 瀏覽:1
不屑弟高考成績 發布:2021-03-16 21:40:59 瀏覽:754
大學畢業證會有成績單 發布:2021-03-16 21:40:07 瀏覽:756
2017信陽學院輔導員招聘名單 發布:2021-03-16 21:40:02 瀏覽:800
查詢重慶2018中考成績查詢 發布:2021-03-16 21:39:58 瀏覽:21
結業考試成績怎麼查詢 發布:2021-03-16 21:28:40 瀏覽:679
14中醫醫師資格筆試考試成績查分 發布:2021-03-16 21:28:39 瀏覽:655
名著賞析課程標准 發布:2021-03-16 21:27:57 瀏覽:881
北京大學商業領袖高端培訓課程 發布:2021-03-16 21:27:41 瀏覽:919