题目简介:
分析:
1.定义一个结构体
typedef struct student {
int id;
string name;
int age;
char gender;
}stu;
用struct定义一个结构体,包括学生的学号、姓名、年龄、性别,将这个结构体命名为stu。
2.定义结构体数组
stu stuin[100];
int num = 0; //存放学生总人数
定义一个名为stuin的结构体数组,里面有100个元素,可以保留100个学生的信息。记num(num为全局变量)为已经存在数组的学生数,初始化为0。
3.添加学生
void add(stu* student)//添加学生信息
{
int i;
int tmp;
int addr = num; //学生总人数
for (i = addr; i < sizeof(stuin) / sizeof(stuin[0]); i++)
{
cout<<"请输入学号:"<<endl;
cin>> student[i].id;
cout<<"请输入姓名:"<<endl;
cin >> student[i].name;
cout<<"请输入年龄:"<<endl;
cin>> student[i].age;
cout<<"请输入性别:"<<endl;
cin>>student[i].gender;
num++; //记录总人数
cout<<"是否继续录入? 0表示继续 1表示退出"<<endl;
cin>> tmp;
cout << endl;
if (tmp)break;
}
}
4.查找学生
void select(stu*student) { //查找学生
cout<<"请输入要查找学生的学号:" << endl;
int id;
cin >> id;
bool flag = true;
for (int i = 0; i < num; i++) {
if (student[i].id == id) {
flag = false;
cout << "该学生的信息如下:" << endl;
cout << "姓名:" << student[i].name << endl;
cout << "年龄:" << student[i].age << endl;
cout << "性别:" << student[i].gender << endl;
break;
}
}
if (flag)cout << "查无此人" << endl;
}
5.修改学生
void refactor( stu* student) {//修改学生信息
cout << "请输入要修改学生的学号:" << endl;
int id;
cin >> id;
for (int i = 0; i < num; i++) {
if (student[i].id == id) {
int answer;
cout << "您要修改什么信息?(1、学号,2、姓名,3、年龄,4、性别,5、退出)" << endl;
cin >> answer;
switch (answer) {
case 1:
cout << "学号不能修改" << endl;
break;
case 2: {
cout << "您要修改为:" << endl;
string new_name;
cin >> new_name;
&student[i].name;
student[i].name = new_name;
break;
}
case 3: {
cout << "您要修改为:" << endl;
int new_age;
cin >> new_age;
&student[i].age;
student[i].age = new_age;
break;
}
case 4: {
cout << "您要修改为:" << endl;
char new_gender;
cin >> new_gender;
&student[i].gender;
student[i].gender = new_gender;
break;
}
default:
break;
}
}
}
}
6.删除学生
void del(stu* student) {//删除学生
int id;
int i, j;
cout<<"请输入要删除学生的学号:"<<endl;
cin >> id;
for (i = 0; i < num; i++)
{
if (student[i].id==id)
{
printf("成功删除以下学生信息:");
cout << "学号:" << student[i].id << endl;
cout << "姓名:" << student[i].name << endl;
cout << "年龄:" << student[i].age << endl;
cout << "性别:" << student[i].gender << endl;
for (j = i; j < num - 1; j++)
{
student[j] = student[j + 1];
}
num--; //减去总数量
break;
}
}
if (i == num + 1)
cout<<"没有找到该学号.\n";
}
7.显示所有学生的信息
void print(stu*student)//显示所有学生信息
{
int i;
cout << "--------------------------------------------------" << endl;
for (i = 0; i < num; i++)
{
cout<<"学号:" <<student[i].id<<endl;
cout << "姓名:" << student[i].name<<endl;
cout<<"年龄:"<< student[i].age<<endl;
cout << "性别:" <<student[i].gender<<endl;
cout << endl;
}
cout << "--------------------------------------------------" << endl;
}
8.主函数调试
int main() {
add(stuin);
select(stuin);
refactor(stuin);
del(stuin);
print(stuin);
system("pause");
}
代码与运行截图
感谢您看到这里,如果您觉得这篇文章对您有用的话,希望能点个免费的赞支持一下。