⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 我大一时候做的C++课程设计
💻 CPP
字号:
#include<iostream.h>
#include<string.h>
#include<stdlib.h>
class student							//学生类的声明
{
private:
	char name[20];
	int score;
	static int sum;						//静态私有成员,实现计数
public:
	student();
	void set_inf(char *n, int s);
	void print();
	int get_s();
	void set_sum();
};
int student::sum=0;						//静态私有成员的外部初始化

student::student()						//构造函数,实现计数的自增!!
{
	strcpy(name,"Null");
	score=0;
	sum++;
}

void student::print()
{cout << "姓名:\t" << name << "\t分数:\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()							//构造函数,实现计数的自增!!
{
	strcpy(name,"Null");
	strcpy(pro,"Null");
	sum++;
}

void teacher::print()
{cout << "姓名:\t" << name << "\t专业:" << 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)						//独立函数,计算老师和学生的总人数,形参类型为自定义类
{
	return (s.get_s()+t.get_s());
}

//////////////////////
//////////////////主函数////////////////////////////////////////

void main()
{
	cout << "************预定值************" << 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 << "学生有:\t"  << endl;
	for(int i=0; i<5; i++)				//输出学生信息
		s[i].print();
	cout <<"总数:" <<s[0].get_s() << endl;
	cout << endl;
	teacher t[2];
	t[0].set_inf("刘老师","计算机科学与技术");
	t[1].set_inf("沈老师","计算机科学与技术");
	cout << "老师有:" << endl;			//输出教师信息
	t[0].print();
	t[1].print();
	cout <<"总数:" <<t[0].get_s() << endl << endl;
	cout <<"老师和学生总人数为"<< jsSum(s[0],t[0]) << "人" <<  endl;		//调用自定义函数计算老师和学生的总人数
	cout << "*****************************" << endl<<endl;


/////////////用户增加数据/////////////////////
	char input;
	student *ps=NULL;					//自定义学生类型指针,用来接收动态申请的学生类型数组的首地址,初始化为NULL
	teacher *pt=NULL;					//自定义老师类型指针,用来接收动态申请的老师类型数组的首地址,初始化为NULL
	int snum=0;
	int tnum=0;
	ps=new student[snum];				//动态申请的学生类型数组
	if(ps==NULL)
	{
		cout << "内存不足,程序异常终止" << endl;
		exit(0);
	}
	pt=new teacher[tnum];				//动态申请的老师类型数组
	if(pt==NULL)
	{
		cout << "内存不足,程序异常终止" << endl;
		exit(0);
	}
	for(int temp=0; ;temp++)
	{
		cout << "是否增加数据, Y or N?" <<endl;
		cin >> input;
		if(input=='Y' || input=='y')
		{
			
			char name[20];			//存放输入的姓名
			int score;				//存放学生成绩
			char program[50];		//存放教师专业
			cout << "老师(t)还是学生(s)?" << endl;
			cin >> input;
			if(input=='T' || input=='t')
			{
				cout << "输入老师人数" << endl;
				cin >> tnum;
				
				for(int tp=0;tp<tnum;tp++)
				{
					cout << "输入姓名和专业:" << endl;
					cin >> name >> program;
					(*(pt+tp)).set_inf(name,program);		//指针类对象调用类的公有成员函数
					(*(pt+tp)).set_sum();
				}
			}
			if(input=='s' || input=='S')
			{
				cout << "输入学生人数" << endl;
				cin >> snum;
			
				for(int tp=0;tp<snum;tp++)
				{
					cout << "输入姓名和成绩:" << endl;
					cin >> name >> score;
					(*(ps+tp)).set_inf(name,score);
					(*(ps+tp)).set_sum();
				}
			}
		}
		else if(input=='n' || input=='N')
			break;
	
	}

	////////////输出所有信息,包含预定义和用户增加的数据
	cout << "**************************" << endl;
	cout << "学生有:\t"  << endl;
	for(i=0; i<5; i++)
		s[i].print();
	for(int tp=0;tp<snum;tp++)
		(*(ps+tp)).print();
	cout <<"总数:" <<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 <<"总数:" <<t[0].get_s() << endl << endl;
	cout <<"老师和学生总人数为"<< jsSum(s[0],t[0]) << "人" <<  endl;	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -