c/c++语言开发共享C++结构体案例练习分享

先来说一下结构体的一些例子包含创建结构体和初始化操作#include<iostream>#include<string>using namespace std;struct u

先来说一下结构体的一些例子

包含创建结构体和初始化操作

#include<iostream>  #include<string>  using namespace std;    struct user {  	char name[20];  	char sex[5];  	int age;    };    struct student {  	string name;  	int age;  	int score;    }stu;//第三种      int main() {    	struct user u1;  	strcpy_s(u1.name,"肥学");  	u1.age = 12;  	strcpy_s(u1.sex,"男");  	  	cout << "name:" << u1.name << "age:" << u1.age << "sex:" << u1.sex << endl;  	struct student s;  	s.name = "鸣人";  	s.age = 20;  	s.score = 80;  	cout << "name:" <<s.name << " age:" << s.age << " sex:" << s.score << endl;    	struct student s2={ "pte",20,56 };  	cout << "name:" << s2.name << " age:" << s2.age << " sex:" << s2.score << endl;    	struct user u2 = { "pter","男",20 };  	cout << "name:" << u2.name << " age:" << u2.age << " sex:" << u2.sex << endl;  }  

结构体的的一些操作

#include<iostream>  #include<string>    using namespace std;    struct friend{  	string name;  	int age;  	string sex;  };      struct user {  	string name;  	int age;  	string sex;  	struct friend f;  };      void addfriend(user* u) {  	friend f = { "fei",20,"men" };  	u->f = f;    }    void addf2(user& u) {  	friend f = { "xue",20,"men" };  	u.f = f;    }    int main() {  	//结构体数组  	/*user arru[5];  	arru[0] = { "pter",20,"men" };    	cout << arru[0].name << endl;*/  	//结构体指针  	/*  	user u = { "pter",20,"men" };  	user *p = &u;  	cout << p->name << endl;*/    	//嵌套结构体  	/*  	user u;  	friend f = { "pter",20,"men" };  	u = { "hello",20,"men",f };  	cout << u.name << "  " << u.f.name << endl;*/    	//***结构体做函数的参数***  	//地址传递  	cout << "地址传递" << endl;  	user u = { "pter",20,"men" };  	cout << "myname:" << u.name << "   fname:" << u.f.name << endl;  	addfriend(&u);  	cout << "myname:" << u.name << "   fname:" << u.f.name << endl;    	//引用传递  	cout << "引用传递" << endl;  	user u2 = { "ppt",20,"men" };  	cout << "myname:" << u2.name << "   fname:" << u2.f.name << endl;  	addf2(u2);  	cout << "myname:" << u2.name << "   fname:" << u2.f.name << endl;        }  

结构体的const

#include<iostream>  #include<string>  using namespace std;      struct user {  	const string name;//感觉像java  private  	const int age;  	const string sex;  };    void printinfo(const user* u) {  	  	cout << u->name<<"  " << u->age <<"  " <<u->sex << endl;  }    int main() {    	user u = { "肥学",20,"男" };  	printinfo(&u);    }  

案例练习

给每位老师分配几位学生

#include<iostream>  #include<string>  #include<ctime>  using namespace std;    typedef struct student {  	string name;  	int age;  	string sex;  }s;    typedef struct teacher {  	string name;  	int age;  	string sex;  	s sarray[5];  }t;    void assignment(t* tarray,int len) {  	for (int i = 0; i < len; i++) {  		cout << "请输入老师姓名:" ;  		cin >> tarray[i].name;  		cout << "请输入年龄:";  		cin >> tarray[i].age;  		cout << "请输入性别:";  		cin >> tarray[i].sex;  		for (int s = 0; s < 2; s++) {//为了操作方便就输入两位学生信息  			cout << "请输入学生姓名:";  			cin >> tarray[i].sarray[s].name;  			//cout << "请输入学生年龄:";  			//cin >> tarray[i].sarray[s].age;  			tarray[i].sarray[s].age = rand() % 18 + 8;  			cout << "请输入学生性别:";  			cin >> tarray[i].sarray[s].sex;  		}    	}    }    void printinfo(t* tarray,int tnum) {  	cout << "信息展示:n" << endl;  	for (int i = 0; i < tnum; i++) {  		cout << "老师姓名:"<<tarray[i].name<<endl;  		for (int j = 0; j < 2; j++) {  			cout << "    学生姓名:" << tarray[i].sarray[j].name << endl;  			cout << "    学生姓名:" << tarray[i].sarray[j].age << endl;  			cout << "    学生姓名:" << tarray[i].sarray[j].sex << endl;  		}    	}    }    int main() {  	//随机种子  	srand((unsigned int )time (null));    	t tarray[3];  	int tnum = sizeof(tarray) / sizeof(tarray[0]);  	assignment(tarray,tnum);  	printinfo(tarray, tnum);  }  

案例练习2

对每个员工的工资进赋值,然后对工资排序输出

#include<iostream>  #include<string>  #include<ctime>  using namespace std;    struct staff {  	string name;  	int salary;    };    void initstaff(staff* sarray,int len) {  	string nameseed = "abcde";  	for (int i = 0; i < len; i++) {  		int r = rand() % 10000 + 3000;  		string n = "user_";  		string name = n + nameseed[i];  		staff s = {name,r };  		sarray[i] = s;  	}    }    void printinfo(staff* sarray, int len) {    	for (int i = 0; i < len; i++) {  		cout << "姓名:" << sarray[i].name << "  工资:" << sarray[i].salary << endl;  	}  }    void sortsalary(staff* sarray,int len) {  	for (int i = len-1; i >0; i--) {  		for (int j = len-1; j >= len-i; j--) {  			staff maxsalary;  			if (sarray[j].salary > sarray[j - 1].salary) {  				maxsalary = sarray[j];  				sarray[j] = sarray[j - 1];  				sarray[j - 1] = maxsalary;  			}  		}  	}  }        int main() {  	srand((unsigned int)time(null));  	staff sarray[5];  	int snum = (sizeof(sarray)) / sizeof(sarray[0]);  	initstaff(sarray, snum);  	printinfo(sarray, snum);  	sortsalary(sarray, snum);  	cout << "nn按工资排序后:n" << endl;  	printinfo(sarray, snum);    }  

到此这篇关于c++结构体案例练习分享的文章就介绍到这了,更多相关c++结构体内容请搜索<计算机技术网(www.ctvol.com)!!>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<计算机技术网(www.ctvol.com)!!>!

需要了解更多c/c++开发分享C++结构体案例练习分享,都可以关注C/C++技术分享栏目—计算机技术网(www.ctvol.com)!

www.ctvol.com true Article c/c++语言开发共享C++结构体案例练习分享

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/1081774.html

(0)
上一篇 2022年4月24日 上午7:16
下一篇 2022年4月24日 上午7:20

精彩推荐