效果实现:
题目分析:
- 键盘输入提示的数字就可以弹出对应的功能。
- 需要设计每个功能模块。
代码分析:
- 设计一个学生信息结构体。
- 设计一个学生信息数据库结构体。
- 菜单界面显示函数。
- 添加学生信息函数。
- 显示学生信息函数。
- 在主函数中利用while和switch的框架,让这个系统循环使用。
代码实现:
# include <iostream>
# include <string>
# define MAX 1000
using namespace std;
//学生信息结构体
struct Person
{
string Name;
int Age;
string Class;
};
//学生信息数据库结构体
struct Address_Books
{
struct Person Person_Array[MAX]; //存储学生信息,方便操作
int A_Size; //记录学生信息个数
};
//菜单界面显示
void Show_Person()
{
cout << "======学生信息管理系统======" << endl;
cout << "***1.添加学生信息***********" << endl;
cout << "***2.查看学生信息***********" << endl;
cout << "***3.退出学生信息管理系统***" << endl;
cout << "============================" << endl;
}
//添加学生信息
void Add_Person(Address_Books* abs)
{
if (abs->A_Size == MAX)
{
cout << "当前学生已满!" << endl;
return;
}
else
{
string name; //添加姓名
cout << "请输入姓名:";
cin >> name;
abs->Person_Array[abs->A_Size].Name = name;
int age = 0; //添加年龄
cout << "请输入年龄:";
cin >> age;
abs->Person_Array[abs->A_Size].Age = age;
string clas; //添加班级
cout << "请输入班级:";
cin >> clas;
abs->Person_Array[abs->A_Size].Class = clas;
abs->A_Size++;
//cout << "添加成功!" << endl;
}
}
//显示学生信息
void Show_Person(Address_Books* abs)
{
if (abs->A_Size == 0)
{
cout << "当前记录为空!" << endl;
}
else
{
for (int i = 0; i < abs->A_Size; i++)
{
cout << "姓名:" << abs->Person_Array[i].Name << '\t'
<< "年龄:" << abs->Person_Array[i].Age << '\t'
<< "班级:" << abs->Person_Array[i].Class << endl;
}
}
}
int main()
{
Address_Books abs; //创建存储结构体变量
abs.A_Size = 0; //当前学生人数为0
int select = 0;
Show_Person();
while (true)
{
cout << "请选择:" << endl;
cin >> select;
switch (select)
{
case 1: //添加学生信息
Add_Person(&abs);
break;
case 2: //2.查看学生信息
Show_Person(&abs);
break;
case 3: //3.退出学生信息管理系统
cout << "欢迎下次使用!" << endl;
system("pause");
return 0;
break;
}
}
system("pause");
return 0;
}
注意:做这类题目需要多练习,主函数里的整体框架,以及各个功能函数的逻辑实现。这里的实现的功能还是比较少的,后面我会发布完整的通讯录管理系统,包含增删改查等等。
好啦,今天的程序就到此结束,欢迎大家在评论区留言~