第一篇:武漢大學(xué)c++第一次上機(jī)試題
實(shí)驗(yàn)一 開發(fā)環(huán)境與簡單C++程序
一.實(shí)驗(yàn)?zāi)康?.熟悉VC++開發(fā)環(huán)境,能夠使用開發(fā)環(huán)境提供的工具創(chuàng)建項(xiàng)目,編輯源程序,編譯、運(yùn)行程序。
2.熟悉常見的編譯錯誤及其改正方法。
3.掌握利用VC++ 調(diào)試工具對程序進(jìn)行調(diào)試的步驟、方法。
4.掌握C++語法組成要素及其定義。
5.C++程序的控制。
6.培養(yǎng)良好的編程習(xí)慣
二.知識要點(diǎn)
1.C++程序的開發(fā)流程。
2.C++的基本數(shù)據(jù)類型
3.標(biāo)準(zhǔn)C++關(guān)鍵字的作用、標(biāo)識符定義、運(yùn)算符的優(yōu)先級別及結(jié)合方向。
4.標(biāo)準(zhǔn)C++程序的流程控制方式。
三.實(shí)驗(yàn)內(nèi)容
㈠Visual C++集成開發(fā)環(huán)境應(yīng)用實(shí)習(xí)
⒈ 創(chuàng)建應(yīng)用程序Mysdi使用資源編輯器編輯圖標(biāo)、工具欄、快捷鍵、串表和版本信息。⒉ 創(chuàng)建一個名為mydlg的對話框應(yīng)用程序,并修改程序的大小圖標(biāo)、修改版本號等。⒊課本P22 1-20
㈡C++語言基礎(chǔ)實(shí)習(xí)
⒈ 從鍵盤輸入一個字符序列,編程統(tǒng)計其中的數(shù)字個數(shù)和英文字母個數(shù),輸入的字符序列以“#”作為結(jié)束符。
⒉ 編寫一段程序,當(dāng)用戶輸入一個6位數(shù)據(jù)時,程序可以將其分離為單獨(dú)的數(shù)字,分離結(jié)果之間用3個空格分開。(應(yīng)用求模運(yùn)算符和整型除法)
⒊ 采用指針方法將一個數(shù)組中的所有元素顛倒順序,結(jié)果仍然放在原來的數(shù)組中,要求使用最少的輔助存儲單元。
⒋ 使用結(jié)構(gòu)變量表示每個學(xué)生的信息:姓名、學(xué)號、三門課的成績和平均成績。編寫一個冒泡排序函數(shù),根據(jù)學(xué)生的平均成績排序。從鍵盤上輸入10個學(xué)生的數(shù)據(jù),在主函數(shù)中調(diào)用排序函數(shù)輸出每個學(xué)生的姓名和三門課的成績以及平均成績。
⒌ 編寫一段程序,確定員工的工資總額。每位員工在一周內(nèi)工作40小時以內(nèi),是按正規(guī)工作時間付酬,超出40小時,是正規(guī)工作時間報酬的1.5倍。假定已經(jīng)有了公司員工的花名冊、每位員工在上個星期的工作時間以及每位員工的小時報酬。在程序中應(yīng)將每位員工的信息輸入,計算顯示員工的應(yīng)得工資。(練習(xí)使用嵌套的if/else語句和switch語句)
四.實(shí)驗(yàn)要求
1.新建MFC Appwizard項(xiàng)目,完成“Visual C++集成開發(fā)環(huán)境應(yīng)用實(shí)習(xí)”部分的內(nèi)容。
2.新建Win32 Console Application項(xiàng)目完成“C++語言基礎(chǔ)”部分的內(nèi)容,每個實(shí)驗(yàn)內(nèi)容在一個項(xiàng)目中完成。
3.對“C++語言基礎(chǔ)實(shí)習(xí)”的程序進(jìn)行單步運(yùn)行,查看運(yùn)行過程中變量值的變化情況;在程序中設(shè)置斷點(diǎn),將程序運(yùn)行到斷點(diǎn)處,觀察所有變量的值與預(yù)期值是否一致。
4.代碼書寫規(guī)范。具體要求,①每一行代碼只寫一條語句;②每一行代碼有縮進(jìn);③加注釋;④變量名要見名知義。
第二篇:C++上機(jī)實(shí)驗(yàn)報告
第二次上機(jī)實(shí)驗(yàn)報告
姓名:王小寧
班級:
學(xué)號:
031012 1234
第一題:
題目:
編寫一個類,聲明一個數(shù)據(jù)成員和一個靜態(tài)數(shù)據(jù)成員,其構(gòu)造函數(shù)初始化數(shù)據(jù)成員,并把靜態(tài)數(shù)據(jù)成員加1,其析構(gòu)函數(shù)把靜態(tài)數(shù)據(jù)成員減1.(1)編寫一個應(yīng)用程序,創(chuàng)建該類的3個對象,然后顯示其數(shù)據(jù)成員和靜態(tài)數(shù)據(jù)成員,再析構(gòu)每個對象,并顯示它們對靜態(tài)數(shù)據(jù)成員的影響。
(2)修改該類,增加靜態(tài)成員函數(shù)并訪問靜態(tài)數(shù)據(jù)成員,并聲明靜態(tài)數(shù)據(jù)成員為保護(hù)成員。體會靜態(tài)成員函數(shù)的使用,靜態(tài)成員之間與非靜態(tài)成員之間互訪問題。
編程思想:
首先,定義一個類,其中含有兩個類的私有變量,一個靜態(tài)數(shù)據(jù)變量,定義構(gòu)造函數(shù),將初值賦給兩個私有變量,并將靜態(tài)數(shù)據(jù)變量加1,并顯示.定義一個析構(gòu)函數(shù),并通過析構(gòu)函數(shù)將靜態(tài)成員變量減1.并顯示。
修改以上的類,增加一個靜態(tài)成員函數(shù)并通過靜態(tài)成員函數(shù)來訪問靜態(tài)成員變量。在主函數(shù)中利用一個指向函數(shù)的指針指向這個靜態(tài)成員函數(shù),并通過這個指針來訪問類中的靜態(tài)數(shù)據(jù)。代碼實(shí)現(xiàn):
代碼1:
#include
static int count;
A(int a=0,int b=0)
{
X=a;
Y=b;
count++;
cout<<“startcount=”< count--; cout<<“overcount=”< int GetX(){return X;} int GetY(){return Y;} private: int X,Y;};int A::count=0;int main(){ int *countp=&A::count;A z(2,3);cout<<“x=”< cout<<“x=”< 問題及心得: 在這次試驗(yàn)中,我理解了靜態(tài)變量與普通變量之間的差異與聯(lián)系。在實(shí)驗(yàn)過程中因未初靜態(tài)變量始化而無法通過編譯,并且注意到靜態(tài)變量一定要在類外初始化。 題目2: 創(chuàng)建一個Person類,該類中有字符數(shù)組,表示姓名、街道地址、市、省和郵政編碼。其功能有修改姓名、顯示數(shù)據(jù)信息。要求其功能函數(shù)的原型放在類定義中,構(gòu)造函數(shù)初始化每個成員,顯示信息函數(shù)要求把對象中的完整信息打印出來。其中數(shù)據(jù)成員為保護(hù)的,函數(shù)為公有的。 編程思想: 創(chuàng)建一個PERSON類,定義姓名、街道地址、市、省和郵政編碼分別為CHAR型的指針?biāo)接行妥兞?。在定義公有型的構(gòu)造函數(shù),并在構(gòu)造函數(shù)中申請動態(tài)內(nèi)存來保存初始化的內(nèi)容,并用相應(yīng)的私有性的指針變量指向,再利用復(fù)制函數(shù)則指針中將會存放入輸入內(nèi)容。定義公有的析構(gòu)函數(shù)釋放動態(tài)申請的空間。定義一個公有的改變函數(shù)改變其中一個變量,方法與構(gòu)造函數(shù)相似。 代碼實(shí)現(xiàn): #include private: char *name;char *street;char *pro;char *city;char *code; public: Person(char *aname,char *astreet,char *apro,char *acity,char *acode){ name=new char[strlen(aname)+1]; strcpy(name,aname); street=new char[strlen(astreet)+1]; strcpy(street,astreet); pro=new char[strlen(apro)+1]; strcpy(pro,apro); city=new char[strlen(acity)+1]; strcpy(city,acity); code=new char[strlen(acode)+1]; strcpy(code,acode); cout<<“constructor”< delete[] name; delete[] street; delete[] pro; delete[] city; delete[] code; cout<<“destructor”< delete[] name; name=new char[strlen(aname)+1]; strcpy(name,aname);} void show(){ cout<<“姓名:”< cout<<“街道地址:”< cout<<“省份:”< cout<<“城市:”< cout<<“郵政編碼:”< 運(yùn)行結(jié)果: 實(shí)驗(yàn)心得: 通過這個實(shí)驗(yàn),我們學(xué)會了對類的私有的字符數(shù)組變量的初始化。利用指針動態(tài)分配空間。 C++上機(jī)實(shí)驗(yàn)報告 實(shí)驗(yàn)名稱:實(shí)驗(yàn) 專業(yè)班級: 姓 名: 學(xué) 號: 實(shí)驗(yàn)日期: 11 實(shí)驗(yàn) 目錄 1.實(shí)驗(yàn)?zāi)康?/p> 2.實(shí)驗(yàn)內(nèi)容 3.程序代碼 4.調(diào)試結(jié)果 5.實(shí)驗(yàn)心得 1.實(shí)驗(yàn)?zāi)康?實(shí)驗(yàn)10(1)進(jìn)一步了解運(yùn)算符重載的概念和使用方法;(2)掌握幾種常用的運(yùn)算符重載的方法;(3)了解轉(zhuǎn)換構(gòu)造函數(shù)的使用方法; (4)了解在Visual C++6.0環(huán)境下進(jìn)行運(yùn)算符重載要注意的問題。實(shí)驗(yàn)11(1)了解繼承在面向?qū)ο蟪绦蛟O(shè)計中的重要作用;(2)進(jìn)一步理解繼承和派生的概念; (3)掌握通過繼承派生出一個新的類的方法;(4)了解虛基類的作用和用法。 2.實(shí)驗(yàn)內(nèi)容 實(shí)驗(yàn)10 事先編好程序,上機(jī)進(jìn)行調(diào)試和運(yùn)行程序,分析結(jié)果。(1)聲明一個復(fù)數(shù)類Complex,重載運(yùn)算符“+”,“-”,“*”,“/”,使之能用于復(fù)數(shù)的加,減,乘,除,運(yùn)算符重載函數(shù)作為Complex類成員的函數(shù)。編程序,分別求兩個復(fù)數(shù)之和,差,積和商。(2)聲明一個復(fù)數(shù)類Complex,重載運(yùn)算符“+”,使之能用于復(fù)數(shù)的加法運(yùn)算。參加運(yùn)算的兩個運(yùn)算量可以都是類對象,也可以其中有一個是整數(shù),順序任意。 運(yùn)行程序,分別求兩個復(fù)數(shù)之和,整數(shù)和復(fù)數(shù)之和,(3)有兩個矩陣a和b,均為2行3列。求兩個矩陣之和。重載運(yùn)算符“+”,使之能用于兩個矩陣相加 (4)聲明一個Teacher(教師)類和一個Student(學(xué)生)類,二者有一部分?jǐn)?shù)據(jù)成員是相同的,例如num(號碼),name(名字),sex(性別)。編寫程序,將一個Student對象(學(xué)生)轉(zhuǎn)換為Teacher(教師)類,只將以上三個相同的數(shù)據(jù)成員移植過去。可以設(shè)想為:一位學(xué)生大學(xué)畢業(yè)了,留校擔(dān)任教師,他原有的部分?jǐn)?shù)據(jù)對現(xiàn)在的教師身份來說任然是有用的,應(yīng)當(dāng)保留并成為其教師的數(shù)據(jù)的一部分。 實(shí)驗(yàn)11 事先編寫好程序,上機(jī)調(diào)試和運(yùn)行程序,分析結(jié)果。 (1)將教材第11章例11.1的程序片段補(bǔ)充和改寫成一個完整的、正確的程序,用公用繼承方式。在程序中應(yīng)當(dāng)包括輸入數(shù)據(jù)的函數(shù),在程序運(yùn)行時輸入num,name,sex,age,addr的值,程序應(yīng)輸出以上5個數(shù)據(jù)的值。 (2)將教材第11章例11.3的程序修改、補(bǔ)充,寫成一個完整、正確的程序,用保護(hù)繼承方式。在程序中應(yīng)包括輸入數(shù)據(jù)的函數(shù)。(3)修改上面第(2)題的程序,改為用公用繼承方式。上機(jī)調(diào)試程序,使之能夠正確運(yùn)行并得到正確的結(jié)果。 對這兩種繼承方式做比較分析,考慮在什么情況下二者不能互相替換。 (4)分別聲明Teacher(教師)類和Cadre(干部)類,采用多 重繼承方式由這兩個類派生出新類Teacher-Cadre(教師兼干部)。要求: Ⅰ.在兩個基類中都包含姓名、年齡、性別、地址、電話等數(shù)據(jù)成員。 Ⅱ.在Teacher類中還包含數(shù)據(jù)成員title(職稱),在Cadre類中還包含數(shù)據(jù)成員post(職務(wù))。在Teacher-Cadre類中還包含數(shù)據(jù)成員wages(工資)。 Ⅲ.在基類中的姓名、年齡、性別、地址、電話等數(shù)據(jù)成員用相同的名字,在引用這些數(shù)據(jù)成員時,指定作用域。Ⅴ.在類體中聲明成員函數(shù),在類外定義成員函數(shù)。 Ⅵ.在派生類Teacher-Cadre的成員函數(shù)show中調(diào)用Teacher類中的display函數(shù),輸出性命、年齡、性別、職稱、地址、電話,然后再用cout語句輸出職務(wù)與工資。 3.程序代碼 實(shí)驗(yàn)10(1) #include Complex Complex::operator +(Complex &c2){Complex c;c.real=real+c2.real;c.imag=imag+c2.imag;return c;} Complex Complex::operator-(Complex &c2){Complex c;c.real=real-c2.real;c.imag=imag-c2.imag;return c;} Complex Complex::operator*(Complex &c2){Complex c;c.real=real*c2.real-imag*c2.imag;c.imag=imag*c2.real+real*c2.imag;return c;} Complex Complex::operator/(Complex &c2){Complex c;c.real=(real*c2.real+imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);c.imag=(imag*c2.real-real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);return c;} void Complex::display(){cout<<“(”< (2) #include double real; double imag;}; Complex Complex::operator+(Complex &c){return Complex(real+c.real,imag+c.imag);} Complex Complex::operator+(int &i){return Complex(real+i,imag);} void Complex::display(){cout<<“(”< Complex operator+(int &i,Complex &c){return Complex(i+c.real,c.imag);} int main(){Complex c1(3,4),c2(5,-10),c3;int i=5;c3=c1+c2;cout<<“c1+c2=”;c3.display();c3=i+c1;cout<<“i+c1=”;c3.display();c3=c1+i;cout<<“c1+i=”;c3.display();return 0;}(3) #include int mat[2][3];}; Matrix::Matrix(){for(int i=0;i<2;i++)for(int j=0;j<3;j++)mat[i][j]=0;} Matrix operator+(Matrix &a,Matrix &b){Matrix c;for(int i=0;i<2;i++)for(int j=0;j<3;j++){c.mat[i][j]=a.mat[i][j]+b.mat[i][j];} return c;} void Matrix::input(){cout<<“input value of matrix:”< void Matrix::display(){for(int i=0;i<2;i++){for(int j=0;j<3;j++){cout< #include int num; char name[20]; char sex; float score;}; Student::Student(int n,char nam[],char s,float sco){num=n;strcpy(name,nam);sex=s;score=sco;} class Teacher {public: Teacher(){} Teacher(Student&);Teacher(int n,char nam[],char sex,float pay);void display();private: int num; char name[20]; char sex; float pay;}; Teacher::Teacher(int n,char nam[],char s,float p} {num=n;strcpy(name,nam);sex=s;pay=p;} Teaxher::Teacher(Student& stud){num=stud.get_num();strcpy(name,stud.get_name());sex=stud.get.sex();pay=1500;} void Teacher::display(){cout<<“num:”< #include void get_value() {cin>>num>>name>>sex;} void display() {cout<<”num:“< cout<<”sex:“< int num; char name[10];char sex;}; class Student1:public Student {public: void get_value_1(){get_value();cin>>age>>addr;} void display_1(){cout<<”age:“< char addr[30];}; int main(){Student1 stud1;stud1.get_value_1();stud1.display();stud1.display_1();return 0;}(2) #include void display();protected: int num; char name[10]; char sex;}; void Student::get_value(){cin>>num>>name>>sex;} void Student::display(){cout<<”num:“< class Student1:protected Student {public: void get_value_1();void display1();private: int age;char addr[30];}; void Student1::get_value_1(){get_value();cin>>age>>addr;} void Student1::display1(){cout<<”num:“< int main(){Student1 stud1;stud1.get_value_1();stud1.display1();return 0;}(3) #include int num; char name[10]; char sex;}; void Student::get_value(){cin>>num>>name>>sex;} void Student::display(){cout<<”num:“< class Student1:public Student {public: void get_value_1();void display1();private: int age; char addr[30];}; void Student1::get_value_1(){get_value();cin>>age>>addr;} void Student1::display1(){cout<<”num:“< int main(){Student1 stud1;stud1.get_value_1();stud1.display1();return 0;}(4) #include Teacher(int,char[],char);void display();private: int num;char name[20];char sex;}; Teacher::Teacher(int n,char nam[],char s){num=n;strcpy(name,nam);sex=s;} void Teacher::display(){cout<<”num:”< class BirthDate {public: BirthDate(int,int,int);void display();void change(int,int,int);private: int year;int month;int day;}; BirthDate::BirthDate(int y,int m,int d){year=y;month=m;day=d;} Void BithDate::display(){cout<<”birthday:”< void BirthDate::change(int y,int m,int d){year=y;month=m;day=d;} class Professor:public Teacher {public: Professor(int,char[],char,int,int,int,float);void display();void change(int,int,int);private: float area;BirthDate birthday;} Professor::Professor(int n,char name[20],char s,int y,int m,int d,float a): Teacher(n,name,s),birthday(y,m,d),area(a){} void Professor::display(){Teacher::display();birthday.display();cout<<”area:”< Int main(){Professor profl(3012,”Zhang”,’f’,1949,10,1,125.4);cout< 4.調(diào)試結(jié)果 實(shí)驗(yàn)10(1)c1+c2=(8,-6i)c1-c2=(-2,14i)c1*c2=(55,-10i)c1/c2=(-0.2,0.4)(2)c1+c2=(8,-6i)i+c1=(8,4i)c1+i=(8,4i) (3) input value of Matrix:11 22 33 44 55 66 input value of Matrix:12 13 14 15 16 17 Matrix a: 11 22 33 44 55 66 Matrix b: 12 13 14 15 16 17 Matrix c=Matrix a + Matrix b : 23 25 47 59 71 83 (4)student1 : num :20010 name:Wang sex:m score;89.5 Teacher2: num:20010 name:Wang sex:m pay:1500 實(shí)驗(yàn)11(1) 10101 Li M 20 Beijing num:10101 name:Li sex:M age:20 address:Beijing (2) 10101 Li M 20 Beijing num:10101 name:Li sex:M age:20 address:Beijing (3) 10101 Li M 20 Beijing num:10101 name:Li sex:M age:20 address:Beijing (4)The original data: num:3012 name:Zhang sex:f area:125.4 The new data: num:3012 name:Zhang sex:f birthday:6/1/1950 area:125.4 5.實(shí)驗(yàn)心得 這一次上機(jī)實(shí)驗(yàn),除了了解到了運(yùn)算符重載的概念和用法,掌握幾種常用的運(yùn)算符重載的方法,了解轉(zhuǎn)換構(gòu)造函數(shù)的使用方法,同時也能了解虛基類的用法,理解繼承與派生的概念。 但是,最主要的,我覺得,是通過這一次的上機(jī)實(shí)驗(yàn),我了解到,有的實(shí)驗(yàn)本身是沒有程序錯誤的,但是,也會由于實(shí)驗(yàn)環(huán)境的影響而不能正常運(yùn)行。換句話說,有的程序并不能在Visaul C++的環(huán)境下運(yùn)行,而不是程序自身的問題。所以,對于沒辦法調(diào)試成功的程序,我們也不能一味的認(rèn)為程序有錯誤,要學(xué)會理性的判斷程序的對錯,再下結(jié)論。 C++程序?qū)嶒?yàn)報告 實(shí)驗(yàn)五繼承與派生 實(shí)驗(yàn)?zāi)康?/p> 1.學(xué)習(xí)定義和使用類的繼承關(guān)系,定義派生類 2.熟悉不同繼承方式下對基類成員的訪問控制 3.學(xué)習(xí)利用虛基類解決二義性問題 實(shí)驗(yàn)要求 1.定義一個基類Animal,有私有整型成員變量age,構(gòu)造其派生類dog,在其成員函數(shù)SetAge(int n)中直接給age賦值,看看會有什么問題,把a(bǔ)ge改為公有成員變量,還會有問題嗎?編程嘗試。 2.定義一個基類BaseClass,有整型變量Number,構(gòu)造其派生類DerivedClass,觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行情況。 3.定義一個車(vehicle)基類,具有Maxspeed、Weight等成員,Run、Stop等成員函數(shù),由此派生出自行車(bicycle)類、汽車(motorcar)類。自行車(bicycle)類有高度(Height)等屬性,汽車(motorcar)類有座位數(shù)(SeatNun)等屬性。從bicycle和motorcar派生出摩托車(motorbicycle)類,在繼承過程中,注意把vehicle設(shè)置為虛基類。如果不把vehicle設(shè)置為虛基類,會有什么問題?編程嘗試。實(shí)驗(yàn)內(nèi)容及實(shí)驗(yàn)步驟 1.編寫程序定義基類Animal,成員變量age定義為私有的。構(gòu)造派生類dog,在其成員函數(shù)SetAge(int n)中直接對age賦值時,會出現(xiàn)類似以下的錯誤提示: error C2248 : ‘a(chǎn)ge’ : cannot access private member declared in class ‘Animal’ error C2248 : ‘a(chǎn)ge’ : cannot access private member declared in class ‘Animal’ 把a(bǔ)ge改為公有成員變量后重新編譯就可以了。程序名:lab7_1.cpp。錯誤代碼: #include class Animal { private: int age;public: Animal(){};}; class dog:public Animal { public: void SetAge(int n){ age=n;};}; int main(){ dog one;one.SetAge(23);return 0;} 運(yùn)行結(jié)果: 正確代碼: #include class Animal { public: int age;public: Animal(){};}; class dog:public Animal { public: void SetAge(int n){ age=n;};}; int main(){ dog one;one.SetAge(23);return 0;} 運(yùn)行結(jié)果: 2.編寫程序定義一個基類BaseClass,構(gòu)造其派生類DerivedClass,在構(gòu)造函數(shù)和析構(gòu)函數(shù)中用cout輸出提示信息,觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行情況。程序名:lab7_2.cpp。 源代碼: #include cout<<“基類構(gòu)造函數(shù)調(diào)用”< cout<<“基類析構(gòu)函數(shù)調(diào)用”< class DerivedClass:public BaseClass { private: int b;public: DerivedClass(){ };cout<<“派生類構(gòu)造函數(shù)調(diào)用”< cout<<“派生類析構(gòu)函數(shù)調(diào)用”< int main(){ DerivedClass one; return 0;} 運(yùn)行結(jié)果: 3.用debug功能跟蹤程序lab7_2的執(zhí)行過程,觀察基類和派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行情況。 DEBUG: 4.編寫程序定義一個車(vehicle)基類,由此派生出自行車(bicycle)類、汽車(motorcar)類,注意把vehicle派生為虛基類。再從bicycle和motorcar派生出摩托車(motorcycle)類,在main()函數(shù)中測試這個類。程序名:lab7_3.cpp。 編譯成功后,把vehicle設(shè)置為非虛基類,再編譯一次,此時系統(tǒng)報錯,無法編譯成功。這是因?yàn)槿舨话裿ehicle設(shè)置為虛基類,會出現(xiàn)二義性錯誤,程序不能成功編譯。源代碼: #include class Vehicle { public: Vehicle(){};int a;void set(){ cout<<“Vehicle調(diào)用”< class Mortorcar:virtual public Vehicle { public: Mortorcar(){};int b;void set(){ cout<<“Mortorcar調(diào)用”< class Bicycle:virtual public Vehicle { public: Bicycle(){};int c;void set(){ cout<<“Bicycle調(diào)用”< class Mortorcycle:public Mortorcar,public Bicycle { public: Mortorcycle(){};int d;void set(){ cout<<“Mortorcycle調(diào)用”< int main(){ Mortorcycle one;one.a =1;one.b=2;one.set();return 0;} 運(yùn)行結(jié)果: 錯誤情況: 思考題 1.如何在已有的類的基礎(chǔ)上設(shè)計新的類? 派生一個新的類。 2.基類和派生類對象的構(gòu)造順序是怎樣的? 先調(diào)用基類的構(gòu)造函數(shù)在調(diào)用派生類的構(gòu)造函數(shù)。3.如何利用虛基類解決二義性問題? 將共同的基類設(shè)置為虛基類,這時從不同的路徑繼承過來的同名數(shù)據(jù)成員在內(nèi)存中就只有一個副本,同一個函數(shù)名也只有一個映射。 2006年武漢大學(xué)地理信息系統(tǒng)試題 一、名詞解釋 1、分布式數(shù)據(jù)庫; 2、地理信息流; 3、窗坐標(biāo)索引; 4、對象-關(guān)系管理模式; 5、多邊形統(tǒng)計疊置分析; 二、簡答題: 1、地理系統(tǒng)可以用S={Q,R}來表示,試描述其含義; 2、在GIS中,如何描述空間位置數(shù)據(jù)? 3、傳統(tǒng)關(guān)系數(shù)據(jù)庫在存儲地理數(shù)據(jù)方面存在哪些局限?目前關(guān)系數(shù)據(jù)庫領(lǐng)域有哪些發(fā)展? 4、四叉樹數(shù)據(jù)結(jié)構(gòu)的定義?線性四叉樹的編碼方法?在GIS中有何應(yīng)用? 5、數(shù)據(jù)編輯和修改中有哪些錯誤?試舉出不少于8種例子; 6、空間數(shù)據(jù)格式轉(zhuǎn)換的主要內(nèi)容是什么? 有哪些信息損失? 7、分布式空間數(shù)據(jù)共享的方法與原理?8、DCOM技術(shù)解決了WebGIS中的哪些問題? 三、分析題 1、在數(shù)據(jù)結(jié)構(gòu)方面,無拓?fù)涞氖噶繑?shù)據(jù)結(jié)構(gòu),拓?fù)涫噶繑?shù)據(jù)結(jié)構(gòu)和面向?qū)ο髷?shù)據(jù)結(jié)構(gòu)各自是如何定義的? 試給出他們的分析與評價. 2、分析格網(wǎng)GIS與網(wǎng)絡(luò)GIS的技術(shù)區(qū)別; 四、論述題 GIS的數(shù)據(jù)具有多源性,海量性,異構(gòu)性等特點(diǎn),據(jù)此論述數(shù)據(jù)存儲與數(shù)據(jù)網(wǎng)絡(luò)傳輸?shù)牟呗耘c技術(shù)的協(xié)調(diào). 2008 年攻讀碩士學(xué)位研究生入學(xué)考試試題 科目名稱: 地理信息系統(tǒng)基礎(chǔ)科目代碼930 一、名詞解釋(6*5 分) 1.智能地理信息系統(tǒng) 2.鄰接矩陣 3.標(biāo)識編碼 4.有向賦權(quán)圖 5.空間位置特征 6.空間數(shù)據(jù)的不確定性 二.簡答題(5*16 分) 1.企業(yè)可以完成自身應(yīng)用?,F(xiàn)在要求能過通過網(wǎng)絡(luò)平臺發(fā)布信息。需要哪種網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)?分為哪幾種類型? 2.要解決多源數(shù)據(jù)的空間參考系不一致的問題,可以采用哪些方法? 3.理圖層數(shù)據(jù)過大,會影響系統(tǒng)效率。采用何種索引可以解決該問題?與目標(biāo)索引什么關(guān)系? 4.緩沖區(qū)多邊形是怎么建立的?緩沖區(qū)分析與緩沖區(qū)查詢有什么區(qū)別? 5.GIS 互操作需要解決主要問題?有哪些解決方法? 三.分析題。(20 分) 土地管理部門利用 GIS 給土地分類圖進(jìn)行面積統(tǒng)計時,發(fā)現(xiàn)統(tǒng)計結(jié)果不一致。請分析可能影響統(tǒng)計結(jié)果的因素。 四.論述題。(20 空間分析模型有哪些?并論述它們在開發(fā) GIS 應(yīng)用中的作用。 一.有十個題,共84分。(下面排列不按順序) 1.空間元數(shù)據(jù)定義,作用。 2.DEM的幾種形式,優(yōu)缺點(diǎn)! 3.為什么說GIS是分布式? 4.密度數(shù)據(jù)的三種分類分級的方法? 5.兩幅地圖用了GIS的哪個功能?一個是底圖,一個是專題地圖。 6.時空模型有哪三種?各自特征。 7.泰森多邊形的特點(diǎn) 8.地理信息系統(tǒng)的組成9.道格拉斯普克法 二.1.柵格數(shù)據(jù)編碼,用線性四叉樹編圖上的柵格圖象。(跟胡朋書上的圖差不多?。?/p> 2.多邊形拓?fù)潢P(guān)系的自動建立。不要求考慮島的情況。(胡朋書上也有) 三.學(xué)?;A(chǔ)信息查詢系統(tǒng)。分了好幾個小問題。 2005年各校GIS專業(yè)研究生入學(xué)考試試題集錦 核心提示: 中科院遙感所 中科院遙感所 一、填空題 1.數(shù)據(jù)建模的三個步驟: 2.空間分析的三種類型: 3.矢量對象按其維數(shù)分為五類:分別判斷集中對象是人為、還是自然空間對象。 4.GIS的硬件的四個組成部分 5.地圖投影按幾何畸變分為三種類型:高斯投影為 哪種投影。 6.數(shù)據(jù)庫的類型 填空題就記得這么多了。 二、簡答題 1.簡述地理信息的組成部分。 2.元數(shù)據(jù)的概念和作用。 3.關(guān)于空間分析 三、論述題 1、為測定區(qū)域的水土分布情況,在區(qū)域內(nèi)布設(shè)100個觀測點(diǎn),問如何布設(shè)?如何根據(jù)這100個觀測值,分析區(qū)域的水土分布情況。(大意就是這樣) 2、給出遙感數(shù)據(jù)的行程編碼,你能將數(shù)據(jù)還原為原來的形式。并轉(zhuǎn)換為二維的Morton碼,然后求第5行第6列的Morton碼是多少? 3、數(shù)據(jù)質(zhì)量的各個要素和內(nèi)容? 4、地理信息系統(tǒng)開發(fā)的步驟? 北大試題(全) 1。TIN,webgis,GEOCODING,LBS,場模型,掃描矢量化,元胞自動機(jī),空間 掘 1??臻g關(guān)系及類型特點(diǎn) 2。2DGIS,3DGIS 3。RS數(shù)據(jù)集捎贕IS 的作用 4。擴(kuò)展SQL語言對地理空間操作以及對GIS開發(fā)的意義和其關(guān)鍵技術(shù) 5??臻g誤差來源以及其控制方法 6。疊加分析以及其應(yīng)用 3分析城市居民就醫(yī)方便程度,用GIS分析其過程。 中山GIS,專業(yè)選考C 編成題: 1.編程實(shí)現(xiàn)給定系數(shù)的方程組的解。 2.一只螞蟻,在空間范圍(MaxX,MinX-MaxY,MinY)的幾何中心上。螞蟻隨機(jī)向8各方向行走,每步前進(jìn)一個單元長度。當(dāng)螞蟻下一步即將跨出所在平面范圍時,須重新選取隨機(jī)方向行走。假設(shè)螞蟻每秒鐘前進(jìn)8步,編程模擬螞蟻24小時以后所在的位置。 3.這道題說不大清楚,大意是進(jìn)行數(shù)據(jù)壓縮的。即將一個鏈表數(shù)據(jù)結(jié)構(gòu)去掉地4n個點(diǎn),然后將余下的數(shù)據(jù)重新構(gòu)建一個鏈表。 4.論述C語言進(jìn)行信息系統(tǒng)開發(fā)的方法、過程、作用、難點(diǎn)及解決辦法。 2005河海大學(xué) 元數(shù)據(jù)空間數(shù)據(jù)編碼投影轉(zhuǎn)換 數(shù)據(jù)壓縮時空數(shù)據(jù)庫DTM 1:地理空間數(shù)據(jù)的基本特征 2:GIS的基本構(gòu)成3:spaghtti數(shù)據(jù)與拓?fù)鋽?shù)據(jù)的異同 4:ArcGis的產(chǎn)品內(nèi)容及每一個產(chǎn)品的重要功能 5:GIS項(xiàng)目的系統(tǒng)設(shè)計步驟 6:GIS基本數(shù)據(jù)結(jié)構(gòu),及優(yōu)缺點(diǎn) 7:GIS與MIS,CAD的異同點(diǎn) 8:游程編碼,四*樹編碼?根據(jù)圖 9:結(jié)合道路拆遷利用GIS進(jìn)行面積的計算的步驟幾所需數(shù)據(jù) 10:當(dāng)前GIS的發(fā)展趨勢 看看這些題目才知道原來考研的專業(yè)課是這么種類型的題目阿,福州大學(xué)GIS試題----福州大學(xué)2004年招收碩士/博士研究生入學(xué)考試試卷 招生學(xué)院 空間信息中心招生專業(yè) 地圖學(xué)與地理信息系統(tǒng)` 地圖制圖學(xué)與地理信息工程 考試科目 地理信息系統(tǒng)與搖感導(dǎo)論科目編號 447 1名詞解釋(每題6分,共36分) 1.1 大氣窗口 1.2 空間拓?fù)浞治?/p> 1..3 空間濾波 1.4 統(tǒng)一建模語言(UML) 1.5 遙感影像的分辨率 1.6 網(wǎng)絡(luò)地理信息服務(wù) 2簡答題(共64分) 2.1 敘述一種有代表性的GIS商業(yè)化軟件的基本情況和主要功能。(12分) 2.2 專業(yè)應(yīng)用分析模型(如數(shù)值分析模型,探索性空間統(tǒng)計分析模型,解析模型)與GIS集成的主要方式及特點(diǎn)。(10分) 2.3 主要的遙感動態(tài)監(jiān)測(變化檢測,Change Detection)方法,各自的優(yōu)缺點(diǎn)及應(yīng)用條件(至少兩種)。(14分) 2.4 簡要敘述現(xiàn)代GIS軟件工程中的核心工作流(主要步驟)及主要工作內(nèi)容(16分) 2.5 請簡述地球信息科學(xué)(Geoinfomation Science)和數(shù)字地球(Digital Earth)研究計劃的主要內(nèi)容及其在科學(xué)工程和國民經(jīng)濟(jì)建設(shè)中的重要地位和作用。(12) 3論述題(每題25分,共50分) 3.1 現(xiàn)有兩張同一地區(qū),不同專題的紙質(zhì)底圖(如土地利用現(xiàn)狀圖和森林資源種類分布(林相)圖)。它們成圖的時間不同,采用的比例尺不一,地圖投影分屬3度和6度分帶,但同屬高斯投影體系,部分地圖要素定義相同,如耕地,有林地,居民點(diǎn)等。目標(biāo)是以老圖為基礎(chǔ),用新圖更新部分的圖斑。試設(shè)計一個算法(或流程),使兩次放置原圖在數(shù)字化儀平臺上,兩次所采集的數(shù)據(jù)仍屬于同一坐標(biāo)系,并進(jìn)行疊置操作實(shí)現(xiàn)部分要素更新。(請寫出必要的公式和圖示) 3.2 請分別說明空間數(shù)據(jù)中柵格數(shù)據(jù)和矢量數(shù)據(jù)的各自特點(diǎn),數(shù)據(jù)結(jié)構(gòu)比較和相互轉(zhuǎn)換算法?,F(xiàn)以分類結(jié)果影像為原始數(shù)據(jù),基于現(xiàn)有遙感和GIS基礎(chǔ)軟件平臺,論述遙感分類數(shù)據(jù)進(jìn)行矢量化建庫(是一個有特殊要求的柵格轉(zhuǎn)矢量的過程)的基本流程步驟,特點(diǎn)及關(guān)鍵技術(shù)。(請寫出必要的公式和圖標(biāo))第三篇:C++上機(jī)實(shí)驗(yàn)報告
第四篇:C++上機(jī)實(shí)驗(yàn)報告5(定稿)
第五篇:武漢大學(xué)地理信息系統(tǒng)試題