C++实现学生管理系统
实现功能有添加、显示、删除、查找、修改、清空的功能
源码
#include<iostream>
#include<string>
#define MAX 50
using namespace std;
struct Person//成员
{
string mName;
int mSex;
string mPhone;
};
struct AddrList//通讯录
{
Person pAddr[MAX];//通讯录指针,记录通讯录人数上限
int size;
};
void showMenu()//
{
cout << "1.添加成员" << endl;
cout << "2.显示成员" << endl;
cout << "3.删除成员" << endl;
cout << "4.查找成员" << endl;
cout << "5.修改成员" << endl;
cout << "6.清空成员" << endl;
cout << "0.退出程序" << endl;
}
void showNum(AddrList* book)
{
cout << "当前人数为:" << book->size << "/" << MAX << endl;
}
void addPerson(AddrList * book)
{
if (book->size == MAX)
{
cout << "通讯录已满" << endl;
system("pause");
system("cls");
return;
}
else
{
string name;
int sex=0;
string phone;
cout << "输入成员姓名: " << endl;
cin >> name;
book->pAddr[book->size].mName = name;
cout << "输入成员性别: (1为男性 2为女性)" << endl;
while(true)
{
cin >> sex;
if (sex == 1 || sex==2)
{
book->pAddr[book->size].mSex = sex; break;
}
else
{
cout << "输入错误" << endl;
}
}
cout << "输入成员号码: " << endl;
cin >> phone;
book->pAddr[book->size].mPhone = phone;
book->size++;
cout << "Input complete! " << endl;
system("pause");
system("cls");
}
}
void showPerson(AddrList * book)
{
if (book->size == 0)
{
cout << "通讯录为空! " << endl;
}
else
{
for (int i = 0; i < book->size; i++)
{
cout << "姓名:" << book->pAddr[i].mName << " "
<< "性别:" << (book->pAddr[i].mSex==1?"男":"女" )<< " "
<< "号码:" << book->pAddr[i].mPhone << endl;
}
}
system("pause");
system("cls");
}
int personExist(AddrList * book,string name)
{
for (int i = 0; i < book->size; i++)
{
if (book->pAddr[i].mName == name)
{
return i;
}
}
return -1;//遍历结束后仍未发现,则查找失败
}
void delePerson(AddrList * book)
{
cout << "输入删除人姓名" << endl;
string name;
cin >> name;
int ret = personExist(book, name);
if (ret != -1)
{
for (int i = ret; i < book->size; i++)
{
book->pAddr[i].mName = book->pAddr[i + 1].mName;
book->pAddr[i].mSex = book->pAddr[i + 1].mSex;
book->pAddr[i].mPhone = book->pAddr[i + 1].mPhone;
}
book->size--;
cout << "删除成功" << endl;
}
else
{
cout << "未查找到!" << endl;
}
system("pause");
system("cls");
}
void findPerson(AddrList * book)
{
cout << "输入查找人姓名" << endl;
string name;
cin >> name;
int ret = personExist(book, name);
if (ret != -1)
{
cout << "姓名:" << book->pAddr[ret].mName << " ";
cout << "姓别:" << (book->pAddr[ret].mSex==1?"男":"女") << " ";
cout << "号码:" << book->pAddr[ret].mPhone << endl;
}
else
{
cout << "查找不到用户" << endl;
}
system("pause");
system("cls");
}
void modifyPerson(AddrList * book)
{
cout << "输入修改用户名" << endl;
string name;
cin >> name;
int ret = personExist(book, name);
if (ret != -1)
{
cout << "修改姓名为:" << endl;
cin >> book->pAddr[ret].mName;
cout << "修改性别为:" << endl;
cin >> book->pAddr[ret].mSex;
cout << "修改号码为:" << endl;
cin >> book->pAddr[ret].mPhone;
cout << "修改完成!" << endl;
}
else
{
cout << "查找不到用户" << endl;
}
system("pause");
system("cls");
}
void clsPerson(AddrList * book)
{
/*int nowSize = book->size-1;
cout << nowSize << endl;
for (int i = nowSize; i >= 0; i--)
{
book->pAddr[i].mName = book->pAddr[i + 1].mName;
book->pAddr[i].mSex = book->pAddr[i + 1].mSex;
book->pAddr[i].mPhone = book->pAddr[i + 1].mPhone;
}*/
int choose = 0;
cout << "你确定吗?(1:删库跑路 2:算了)" << endl;
cin >> choose;
switch(choose)
{
case 1:break;
case 2: system("pause");
system("cls"); return;
}
book->size = 0;
cout << "清空完成!" << endl;
system("pause");
system("cls");
}
int main()
{
AddrList book;
book.size = 0;
int select=0;
while (true) //主程序循环
{
showNum(&book);
showMenu();
cin >> select;
switch (select)
{
case 0:
return 0;//退出循环
case 1:
addPerson(&book);
break;
case 2:
showPerson(&book);
break;
case 3:
delePerson(&book);
break;
case 4:
findPerson(&book);
break;
case 5:
modifyPerson(&book);
break;
case 6:
clsPerson(&book);
break;
}
}
system("pause");
}