题目:
这个练习让您编写处理数组和结构的函数,下面是程序的框架,请提供其中描述的函数,以完成该程序
#include <iostream>
using namespace std;
const int SLEN = 30;
struct student {
char fullname[SLEN];
char hobby[SLEN];
int ooplevel;
};
int getinfo(student pa[], int n);
void display1(student st);
void display2(const student* ps);
void display3(const student pa[], int n);
int main()
{
cout << "Enter class size: ";
int class_size;
cin >> class_size;
while (cin.get() != '\n')
continue;
student* ptr_stu = new student[class_size];
int entered = getinfo(ptr_stu, class_size);
for (int i = 0; i < entered; i++)
{
display1(ptr_stu[i]);
display2(&ptr_stu[i]);
}
display3(ptr_stu, entered);
delete[] ptr_stu;
cout << "done\n";
return 0;
}
getinfo():有两个参数:一个指向学生结构数组的第一个元素的指针,一个表示数组元素数的int。该函数请求并存储关于学生的数据。在填充数组或为学生名称加上空行时,它终止输入。该函数返回实际填充的数组元素数
display1():将学生结构作为参数并显示其内容
display2():将学生结构的地址作为参数,并显示结构的内容
display3():将学生结构数组的第一个元素的地址和数组元素的数量作为参数,并显示结构的内容
源代码:
#include <iostream>
using namespace std;
const int SLEN = 30;
struct student {
char fullname[SLEN]; //姓名
char hobby[SLEN]; //爱好
int oplevel; //学习成绩
};
int getinfo(student pa[], int n);
void display1(student st);
void display2(const student* ps);
void display3(const student pa[], int n);
int main()
{
cout << "请输入学生数量: ";
int class_size;
cin >> class_size;
while (cin.get() != '\n')
continue;
student* ptr_stu = new student[class_size];
int entered = getinfo(ptr_stu, class_size);
for (int i = 0; i < entered; i++)
{
display1(ptr_stu[i]);
display2(&ptr_stu[i]);
}
display3(ptr_stu, entered);
delete[] ptr_stu;
cout << "done\n";
return 0;
}
int getinfo(student pa[], int n)
{
for (int i = 0; i < n; i++)
{
cout << "请输入学生姓名: ";
if (cin.getline(pa[i].fullname,SLEN) && pa[i].fullname[0] == '\0')
return i;
cout << "请输入学生兴趣爱好:";
cin.getline(pa[i].hobby, SLEN);
cout << "请输入学生成绩: ";
(cin >> pa[i].oplevel).get();
}
}
void display1(student st)
{
cout << "学生姓名: " << st.fullname << " 学生兴趣爱好: " << st.hobby << " 学生成绩: " << st.oplevel << endl;
}
void display2(const student* ps)
{
cout << "学生姓名: " << ps->fullname << " 学生兴趣爱好: " << ps->hobby << " 学生成绩: " << ps->oplevel << endl;
}
void display3(const student pa[], int n)
{
for (int i = 0; i < n; i++)
{
cout << "学生姓名: " << pa[i].fullname << " 学生兴趣爱好: " << pa[i].hobby << " 学生成绩: " << pa[i].oplevel << endl;
}
}
演示效果:
如果朋友你感觉文章的内容对你有帮助,可以点赞,关注文章和专栏以及关注我哈,嘿嘿嘿我会定期更新文章的,谢谢朋友你的支持哈