完成学生学籍管理系统,实现以下功能。 (1)增加数据。用户可以输入多个学生的学籍信息。 (2)更新数据。用户可以通过输入学号对数据进行修改。。(3)查询数据。用户可以通过输入学号查询学生信息。“(4)删除数据。可以删除指定学号的学生学籍信息。.(5)显示数据。可以显示所有未删除的学生信息。”
请问你写过多少程序?自己能把思路写出来?
参考代码如下:
#include <stdio.h>
#include <map>
#include <string>
using namespace std;
int main()
{
map<string,string> mapStudents; //存储所有学生
map<string,string>::iterator it = mapStudents.begin();
while(true)
{
printf("1.增加学生\n");
printf("2.更新学生信息\n");
printf("3.显示某学生信息\n");
printf("4.删除学生\n");
printf("5.显示全部学生信息\n");
printf("0.退出系统\n");
printf("请输入您的操作:\n");
int cmd ;
scanf("%d",&cmd);
char xh[20] ={0}; //学号
char name[20] = {0}; //姓名
switch(cmd)
{
case 0:
return 0;
case 1:
while(true)
{
printf("请输入学生学号和姓名:");
scanf("%s %s",xh,name);
//查询学号是否已经存在
it = mapStudents.find(xh);
if (it == mapStudents.end())
{
mapStudents.insert(pair<string,string>(xh,name));
break;
}else
printf("您输入的学号已存在,请重新输入\n");
}
break;
case 2:
while(true)
{
printf("请输入学生学号:");
scanf("%s",xh);
//查询学号是否已经存在
it = mapStudents.find(xh);
if (it == mapStudents.end())
{
printf("您输入的学号不存在,请重新输入\n");
}else
{
printf("请输入修改后的姓名\n");
scanf("%s",name);
mapStudents.erase(it);
mapStudents.insert(pair<string,string>(xh,name));
break;
}
}
break;
case 3:
while(true)
{
printf("请输入学生学号:");
scanf("%s",xh);
//查询学号是否已经存在
it = mapStudents.find(xh);
if (it == mapStudents.end())
{
printf("您输入的学号不存在,请重新输入\n");
}else
{
printf("学生姓名:%s\n",it->second.c_str());
break;
}
}
break;
case 4:
while(true)
{
printf("请输入学生学号:");
scanf("%s",xh);
//查询学号是否已经存在
it = mapStudents.find(xh);
if (it == mapStudents.end())
{
printf("您输入的学号不存在,请重新输入\n");
}else
{
mapStudents.erase(it);
break;
}
}
break;
case 5:
if (mapStudents.size() == 0)
{
printf("当前系统内没有学生信息\n");
}else
{
for (it = mapStudents.begin(); it != mapStudents.end(); it++)
{
printf(" >>%s %s\n",it->first.c_str(),it->second.c_str());
}
}
break;
default:
break;
}
}
return 0;
}