题目1:建立一个学生档案的结构体数组,输入并输出学生信息。
字段名如下表一所示。
序号 |
字段名 |
数据类型 |
长度 |
字段含义 |
1 |
num |
int |
4 |
学号 |
2 |
name |
char数组 |
20 |
姓名 |
3 |
score |
int数组 |
2 |
二门学科成绩 |
主要程序:
#include
#include
using namespace std;
struct student
{
int num;
char name[20];
int score[2];
};
int main()
{
student stu[3];
for(int i=0;i<3;i++)
{
cout<<"请输入学号、姓名、成绩和成绩:";
cin>>stu[i].num>>stu[i].name>>stu[i].score[0]>>stu[i].score[1];
}
cout<
运行结果:
题目2:(此题为第1题目的提高版)建立一个学生档案的结构体数组,输入并输出学生信息。
要求:(1) 将第一题中的学生人数改成由键盘随机输入;
(2)输入学生信息模块改成由函数student Input(student &stud,int m)调用完成;
(3)输出学生信息模块改成由函数void Output(student stud)调用完成;
思考并抽问:
第(1)个要求对改进程序有什么好处?
第(2)和第(3)个要求对改进程序有什么好处?
函数student Input(student &stud,int m)的参数有二个,如果省掉最后一个参数可以吗?为什么第一个参数要加&?
你觉得此程序还有哪些可以改进的地方?
主要程序:
#include
#include
using namespace std;
struct student
{
int num;
char name[20];
int score[2];
};
student Input(student &stu,int m)
{
cout<<"请输入第"<>stu.num>>stu.name>>stu.score[0]>>stu.score[1];
return stu;
}
void Output(student stu)
{
cout<>n;
for(int i=0;i
运行结果:
题目3:编写一个函数output,输入一个学生各门课的成绩并求全班的平均成绩。设计一个程序,输入本班同学的成绩,假定学生信息有学号、姓名及2门课的成绩。要求使用结构体数组作函数参数。
主要程序:
#include
#include
#include
using namespace std;
struct student
{
char num[10];
char name[20];
int score[2];
};
void Input(student stu[],int n)
{
int i,j;
for(i=0;i>stu[i].num;
cout<<"请输入第"<>stu[i].name;
cout<<"请输入第"<>stu[i].score[j];
}
}
void Output(student stu[],int n)
{
int i,j;
cout<>n;
Input(stu,n);
Output(stu,n);
aver=average(stu,n);
cout<<"全班平均分为:"<
运行结果:
题目4:为全班同学建立一个通讯录(用结构体数组实现),包括学号、姓名、家庭住址、电话号码、手机号码及E-mail地址,并完成数据的输入和输出。
主要程序:
#include
#include
#include
using namespace std;
#define N 4
struct address_list
{
char num[10];
char name[20];
char addr[80];
int phonenum;
char mobilenum[20];
char email[30];
};
void Input(address_list stu[],int n)
{
int i;
for(i=0;i>stu[i].num;
cout<<"请输入第"<>stu[i].name;
cout<<"请输入第"<>stu[i].addr;
cout<<"请输入第"<>stu[i].phonenum;
cout<<"请输入第"<>stu[i].mobilenum;
cout<<"请输入第"<>stu[i].email;
}
}
void Output(address_list stu[],int n)
{
int i;
cout<
运行结果: