?? main.cpp
字號(hào):
#include<iostream.h>
#include<string.h>
#include<stdlib.h>
class student //學(xué)生類的聲明
{
private:
char name[20];
int score;
static int sum; //靜態(tài)私有成員,實(shí)現(xiàn)計(jì)數(shù)
public:
student();
void set_inf(char *n, int s);
void print();
int get_s();
void set_sum();
};
int student::sum=0; //靜態(tài)私有成員的外部初始化
student::student() //構(gòu)造函數(shù),實(shí)現(xiàn)計(jì)數(shù)的自增!!
{
strcpy(name,"Null");
score=0;
sum++;
}
void student::print()
{cout << "姓名:\t" << name << "\t分?jǐn)?shù):\t" << score << endl;}
void student::set_inf(char *n, int s)
{
strcpy(name,n);
score=s;
}
int student::get_s() {return sum;}
void student::set_sum() {sum++;}
class teacher //教師類的聲明
{
private:
char name[20];
char pro[30];
static int sum;
public:
teacher();
void set_inf(char *n, char *p);
void print();
int get_s();
void set_sum();
};
int teacher::sum=0;
teacher::teacher() //構(gòu)造函數(shù),實(shí)現(xiàn)計(jì)數(shù)的自增!!
{
strcpy(name,"Null");
strcpy(pro,"Null");
sum++;
}
void teacher::print()
{cout << "姓名:\t" << name << "\t專業(yè):" << pro << endl;}
void teacher::set_inf(char *n, char *p)
{
strcpy(name,n);
strcpy(pro,p);
}
int teacher::get_s() {return sum;}
void teacher::set_sum(){sum++;}
int jsSum(student s, teacher t) //獨(dú)立函數(shù),計(jì)算老師和學(xué)生的總?cè)藬?shù),形參類型為自定義類
{
return (s.get_s()+t.get_s());
}
//////////////////////
//////////////////主函數(shù)////////////////////////////////////////
void main()
{
cout << "************預(yù)定值************" << endl;
student s[5];
s[0].set_inf("Han",80);
s[1].set_inf("Li",90);
s[2].set_inf("Wang",70);
s[3].set_inf("zhang",79);
s[4].set_inf("hu",83);
cout << "學(xué)生有:\t" << endl;
for(int i=0; i<5; i++) //輸出學(xué)生信息
s[i].print();
cout <<"總數(shù):" <<s[0].get_s() << endl;
cout << endl;
teacher t[2];
t[0].set_inf("劉老師","計(jì)算機(jī)科學(xué)與技術(shù)");
t[1].set_inf("沈老師","計(jì)算機(jī)科學(xué)與技術(shù)");
cout << "老師有:" << endl; //輸出教師信息
t[0].print();
t[1].print();
cout <<"總數(shù):" <<t[0].get_s() << endl << endl;
cout <<"老師和學(xué)生總?cè)藬?shù)為"<< jsSum(s[0],t[0]) << "人" << endl; //調(diào)用自定義函數(shù)計(jì)算老師和學(xué)生的總?cè)藬?shù)
cout << "*****************************" << endl<<endl;
/////////////用戶增加數(shù)據(jù)/////////////////////
char input;
student *ps=NULL; //自定義學(xué)生類型指針,用來(lái)接收動(dòng)態(tài)申請(qǐng)的學(xué)生類型數(shù)組的首地址,初始化為NULL
teacher *pt=NULL; //自定義老師類型指針,用來(lái)接收動(dòng)態(tài)申請(qǐng)的老師類型數(shù)組的首地址,初始化為NULL
int snum=0;
int tnum=0;
ps=new student[snum]; //動(dòng)態(tài)申請(qǐng)的學(xué)生類型數(shù)組
if(ps==NULL)
{
cout << "內(nèi)存不足,程序異常終止" << endl;
exit(0);
}
pt=new teacher[tnum]; //動(dòng)態(tài)申請(qǐng)的老師類型數(shù)組
if(pt==NULL)
{
cout << "內(nèi)存不足,程序異常終止" << endl;
exit(0);
}
for(int temp=0; ;temp++)
{
cout << "是否增加數(shù)據(jù), Y or N?" <<endl;
cin >> input;
if(input=='Y' || input=='y')
{
char name[20]; //存放輸入的姓名
int score; //存放學(xué)生成績(jī)
char program[50]; //存放教師專業(yè)
cout << "老師(t)還是學(xué)生(s)?" << endl;
cin >> input;
if(input=='T' || input=='t')
{
cout << "輸入老師人數(shù)" << endl;
cin >> tnum;
for(int tp=0;tp<tnum;tp++)
{
cout << "輸入姓名和專業(yè):" << endl;
cin >> name >> program;
(*(pt+tp)).set_inf(name,program); //指針類對(duì)象調(diào)用類的公有成員函數(shù)
(*(pt+tp)).set_sum();
}
}
if(input=='s' || input=='S')
{
cout << "輸入學(xué)生人數(shù)" << endl;
cin >> snum;
for(int tp=0;tp<snum;tp++)
{
cout << "輸入姓名和成績(jī):" << endl;
cin >> name >> score;
(*(ps+tp)).set_inf(name,score);
(*(ps+tp)).set_sum();
}
}
}
else if(input=='n' || input=='N')
break;
}
////////////輸出所有信息,包含預(yù)定義和用戶增加的數(shù)據(jù)
cout << "**************************" << endl;
cout << "學(xué)生有:\t" << endl;
for(i=0; i<5; i++)
s[i].print();
for(int tp=0;tp<snum;tp++)
(*(ps+tp)).print();
cout <<"總數(shù):" <<s[0].get_s() << endl;
cout << endl;
cout << "老師有:" << endl;
for( i=0; i<2; i++)
t[i].print();
for(tp=0;tp<tnum;tp++)
(*(pt+tp)).print();
cout <<"總數(shù):" <<t[0].get_s() << endl << endl;
cout <<"老師和學(xué)生總?cè)藬?shù)為"<< jsSum(s[0],t[0]) << "人" << endl;
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -