//C++第一次作業(yè),老師試探C語言基礎(chǔ)
//輸入不多于20是個(gè)字符,遇到回車結(jié)束輸入,并判斷個(gè)數(shù),字符類型,并反序輸出。
//
#include <stdio.h>
?? int XiaoXie=0,ShuZi=0,DaXie=0,Other=0;
main(){
?? int i,n,m;
?? char a[100];
??? printf("最多輸入20個(gè)你想到的字符:\n");
??? for(i=0;i<20;i++){
???? a[i]=getchar();
???? if (a[i]=='\n')
?????? break;
?????? m=i+1;???????????? //回車前字符個(gè)數(shù)
???? }
?? printf("你輸入的字符:\n");
?? for(n=0;n<i;n++)
???? putchar(a[n]);
???? putchar('\n');
???? printf("反序:");
?? for(n=i-1;n>=0;n--){? //回車時(shí)i已經(jīng)計(jì)數(shù),所以'n=i-1'
???? putchar(a[n]);
//判斷字符類型,個(gè)數(shù):
???? if (a[n]>='0'&&a[n]<='9')
???????? ShuZi=ShuZi+1;
???? else if(a[n]>='a'&&a[n]<='z')
???????? XiaoXie=XiaoXie+1;
???? else if (a[n]>='A'&&a[n]<='Z')
???????? DaXie=DaXie+1;
???? else Other=Other+1;
???? }
???? printf("\n你輸入了%d個(gè)字符",m);
???? printf("其中:\n");
?????? printf("所輸入的小寫字母個(gè)數(shù)為:%d\n",XiaoXie);
?????? printf("所輸入的數(shù)字個(gè)數(shù)為:%d\n",ShuZi);
?????? printf("所輸入的大寫字母個(gè)數(shù)為:%d\n",DaXie);
?????? printf("其他字符的個(gè)數(shù)為:%d\n",Other);
}
實(shí)驗(yàn)2? 類與對(duì)象
1.實(shí)驗(yàn)?zāi)康?br />(1)學(xué)習(xí)類與對(duì)象的定義。
(2)掌握類與對(duì)象的使用方法。
(3)學(xué)習(xí)類和對(duì)象的聲明。
(4)學(xué)習(xí)數(shù)據(jù)成員與成員函數(shù)的訪問方式。
(5)理解構(gòu)造函數(shù)和析構(gòu)函數(shù)的定義與執(zhí)行過程。
(6)學(xué)會(huì)構(gòu)造函數(shù)的重載方法。
2.實(shí)驗(yàn)基本要求
(1)可以定義出一個(gè)類,并且在程序中創(chuàng)建一個(gè)該類的對(duì)象。
(2)實(shí)現(xiàn)類的定義,建立一個(gè)新的類。
(3)體現(xiàn)出構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用。
(4)重載構(gòu)造函數(shù)。
(5)為了提高對(duì)相關(guān)知識(shí)的綜合應(yīng)用能力,編寫一個(gè)較為復(fù)雜的類和對(duì)象的應(yīng)用程序。
3.實(shí)驗(yàn)基本步驟
(1) 建立一個(gè)源程序文件。
(2)在此文件中建立一個(gè)新的類,將新建的類命名為Rect。
class Rect
{
public:
? int Area_int();
? double Area_double();
? Rect(double l,double w);
? Rect(int l,int w);
? virtual ~Rect();
? int nLength;
?? int nWidth;
? double dLength;
? double dWidth;
};
(3)向Rect類中添加數(shù)據(jù)成員及成員函數(shù),并完善成員函數(shù)的功能。如設(shè)計(jì)一個(gè)Area_int()函數(shù),計(jì)算邊長為整型的長方形的面積;設(shè)計(jì)一個(gè)Area_double()函數(shù),計(jì)算邊長為double型的長方形的面積。
(4)重載構(gòu)造函數(shù)。一種構(gòu)造函數(shù)用整型變量記錄長方形的長和寬,另一種構(gòu)造函數(shù)用double型記錄。
(5)體現(xiàn)對(duì)象的構(gòu)造和析構(gòu)過程。例如,在構(gòu)造函數(shù)中用cout<<”I am the constructor!”<<endl;在析構(gòu)函數(shù)中輸出cout<<”I am the destructor”<<endl。
(6)在main()函數(shù)中定義兩個(gè)Rect類的對(duì)象,一個(gè)對(duì)象用實(shí)例實(shí)現(xiàn)(就像定義普通的變量一樣),另一個(gè)對(duì)象用指針實(shí)現(xiàn)(利用關(guān)鍵字new,給指針分配內(nèi)存空間)。并用不同的參數(shù),以調(diào)用不同的構(gòu)造函數(shù)體現(xiàn)構(gòu)造函數(shù)的重載。
(7)下面提供一個(gè)較為復(fù)雜的類與對(duì)象的應(yīng)用,請(qǐng)根據(jù)掌握情況進(jìn)行實(shí)驗(yàn)。定義一個(gè)類student,管理一個(gè)學(xué)生的基本信息,包括學(xué)生姓名、學(xué)號(hào)、英語成績、數(shù)學(xué)成績、程序設(shè)計(jì)語言成績、平均成績等數(shù)據(jù)成員,以及對(duì)這些數(shù)據(jù)成員的操作。
class student
{
private:
? char stu_name[10];
? charstu_no[10];
? float english_score;
? float math_score;
? float program_score;
? float avg_score;
public:
? student();
? void setname(char'newname);
? void setno(charG number);
? char getname();
? char getno();
? void setenglish(float e);
? void setmath(float m);
? void setprogram(float p);
? float getavg();
};
(8)在main()函數(shù)中,根據(jù)要求動(dòng)態(tài)分配一組學(xué)生的基本信息。從鍵盤輸入得到學(xué)生的基本信息,并輸出到顯示器上。
(9)設(shè)置一靜態(tài)成員記錄學(xué)生人數(shù)。
// (10)設(shè)計(jì)一友元函數(shù),輸出學(xué)生名單。
//第二次作業(yè)1
///////////////////////////////////
////計(jì)算機(jī)C041 袁建華 044599///////
//////////////////////////////////
#include <iostream.h>
class Rect {
public:
? int Area_int();
? double Area_double();
? Rect();
? Rect (int l,int w);
? Rect (double l,double w);
? virtual ~Rect();
int nLength;
int nWidth;
double dLength;
double dWidth;
};
//計(jì)算面積
int Rect::Area_int(){
return nLength*nWidth;
}
double Rect::Area_double(){
return dLength*dWidth;
}
//定義構(gòu)造函數(shù)
Rect::Rect(int l,int w){
?? nLength=l;
?? nWidth=w;
?? cout<<"I am the constructor!"<<endl;
}
Rect::Rect(double l,double w){
?? dLength=l;
?? dWidth=w;
?? cout<<"I am the constructor!"<<endl;
}
Rect::~Rect(){
cout<<"I am the destructor"<<endl;
}
void main(){
?Rect A1(123,321);
?cout<<"the int Area:"<<A1.Area_int()<<endl;
?Rect *P1=new Rect(0.123,0.321);?????? //動(dòng)態(tài)創(chuàng)建對(duì)象
?cout<<"the double Area:"<<P1->Area_double()<<endl;
}
/////第二次作業(yè)2
?//////////////////////////////
?//////////student.cpp/////////
?//////////////////////////////
//1.在main()函數(shù)中,根據(jù)要求動(dòng)態(tài)分配一組學(xué)生的基本信息。從鍵盤輸入得到學(xué)生的基本信息,并輸出到顯示器上。
//2.設(shè)置一靜態(tài)成員記錄學(xué)生人數(shù)。
//3.設(shè)計(jì)一友元函數(shù),輸出學(xué)生名單。
#include "iostream"
#include "string"
using namespace std;
class student{
private:
? int i;
? string stu_name;
? string stu_no;
? float english_score;
? float math_score;
? float program_score;
? float avg_score;
public:
student(){
??? }
? void setname();
? void setno();
? string getname();
? string getno();
? void setenglish();
? void setmath();
? void setprogram();
? float getavg();
// void friend list_stu(student &);????????? //聲明友元函數(shù)
};
//定義友元函數(shù)
/*
void list_stu(student &Stu[i]){
? cout>>"Name:">>Stu[i]->stu_name;
? cout>>"Number:">>Stu[i]-stu_no;
}*/
void student::setname(){? //通過一個(gè)數(shù)組接受學(xué)號(hào)
?string name;
?cout<<"Name:";
?cin>>name;
?stu_name=name;
}
void student::setno(){??? //通過一個(gè)數(shù)組接受一個(gè)學(xué)號(hào)
?string number;
?cout<<"Number:";
?cin>>number;
?stu_no=number;
}
string student::getname(){?? //返回一個(gè)名字
?return stu_name;
}
string student::getno(){???? //返回學(xué)號(hào)
?return stu_no;
}
void student::setenglish(){? //輸入英語成績
?float e;
?cout<<"English_score:";
?cin>>e;
?english_score=e;
}
void student::setmath(){?????? //輸入數(shù)學(xué)成績
?float m;
?cout<<"Math_score:";
?cin>>m;
?math_score=m;
}
void student::setprogram(){??? //輸入程序設(shè)計(jì)程序
?float p;
?cout<<"Program_score:";
?cin>>p;
?cout<<endl;
?program_score=p;
}
float student::getavg(){?????? //計(jì)算三科平均成績
?avg_score=(english_score+math_score+program_score)/3;
?return avg_score;
}
?
void main(){
?//?? int i;
?student *stu=new student();??? //動(dòng)態(tài)創(chuàng)建一組
??? stu->setname();
??? stu->setno();
??? stu->setenglish();
??? stu->setmath();
??? stu->setprogram();
?/* student Stu[10];
for(i=0;i<4;i++){
??? cout<<"第"<<i+1<<"個(gè)"<<endl;
?Stu[i].setname();
??? Stu[i].setno();
??? Stu[i].setenglish();
??? Stu[i].setmath();
??? Stu[i].setprogram();
??? }
?*/
/*for (i=0;i<10;i++){
?? cout<<"第"<<i+1<<"個(gè)"<<endl;
?cout<<"Name:"<<Stu[i].getname()<<endl;
??? cout<<"Number:"<<Stu[i].getno()<<endl;
?? // cout<<Stu[i].getenglish();
?? // cout<<Stu[i].getmath();
?? // cout<<Stu[i].getprogram();
?*/
}
//list_stu(Stu[1]);
?
posted on 2006-04-03 13:02
華劍緣 閱讀(413)
評(píng)論(0) 編輯 收藏 引用