学生信息管理系统C++代码.docx
《学生信息管理系统C++代码.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统C++代码.docx(18页珍藏版)》请在冰豆网上搜索。
学生信息管理系统C++代码
1.程序执行后的部分效果
1。
1项目主菜单效果图
1。
2初始化信息,第一次对信息的录入
1.3添加学生信息
1。
4删除某学生信息
1.5修改某学生信息
1。
6查询某学生信息
1.7显示全部学生信息
源代码:
/*把StudentData。
cpp(源代码)和student。
txt(数据存放处)放在同一个文件夹下*/
#include〈iostream〉
#include
#include〈fstream〉
#include#include〈iomanip>
usingnamespacestd;
//最多提供50个学生的数据,可根据需要进行更改
constintMAX=50;
intcount=0;//用来统计学生人数
classStudent
{
public:
voidSet();//初始化信息,第一次对信息的录入
voidAdd();//添加学生信息
//从磁盘读取数据以便进行数据的操作,方便再重写进磁盘
friendvoidRead(stringno[],stringname[],stringsex[],stringspecial[],stringclas[]);
intJudge(stringnum);//判断num是否在学生信息数据库中(注意它有一个参数,并且有一个int型的返回值)
voidDelete();//删除某学生信息
voidChange();//修改某学生信息
voidSearch();//查询某学生信息
voidDisplay();//显示全部学生信息
private:
stringm_no;
stringm_name;
stringm_sex;//m_指的是成员变量(member)
stringm_special;
stringm_clas;
};
voidStudent:
:
Set()
{
stringno,name,sex,special,clas;
ofstreamoutfile(”student.txt”);//打开文件
if(!
outfile)
{
cerr〈〈”openerror"〈exit
(1);//退出程序
}
cout<〈"当学号输入为0时,停止输入!
”〈〈endl;
cout〈〈”请依次输入学生的学号,姓名,性别,专业,班级:
"<〈endl;
for(inti=0;i{
cout<〈”第”〈"<cin>〉no;
if(no=="0")break;//当输入的学号是0时,停止录入
cin〉〉name>〉sex>>special〉〉clas;
count++;
m_no=no;
outfile<m_name=name;
outfile〈〈m_name<〈”\t”;
m_sex=sex;
outfile〈〈m_sex〈〈”\t”;
m_special=special;
outfile<m_clas=clas;
outfile<〈m_clas<〈endl;
}
outfile.close();
}
//添加学生信息
voidStudent:
:
Add()
{
stringno,name,sex,special,clas;
//以追加的方式录入信息,直接将信息追加到以前文件的末尾
ofstreamoutfile(”student。
txt",ios:
:
app);
if(!
outfile)
{
cerr<<"openerror"〈exit
(1);
}
count++;//添加一个学生信息,当然count要+1
cout<<"请依次输入要添加的学生学号,姓名,性别,专业,班级:
”<cin〉〉no〉>name〉〉sex〉〉special〉〉clas;
m_no=no;
outfile<m_name=name;
outfile〈m_sex=sex;
outfile<〈m_sex〈〈"\t”;
m_special=special;
outfile〈〈m_special〈<”\t";
m_clas=clas;
outfile〈〈m_clas〈〈endl;
outfile.close();
cout<<"已添加成功!
"〈〈endl;
}
//从磁盘读取数据
voidRead(stringno[],stringname[],stringsex[],stringspecial[],stringclas[])
{
ifstreaminfile(”student。
txt”,ios:
:
in);
if(!
infile)
{
cerr<〈”openerror”〈〈endl;
exit
(1);
}
for(inti=0;i〈count;i++)//只读取存放在数组中但不对其进行相关操作
{
infile〉〉no[i]>〉name[i]〉>sex[i]>〉special[i]>〉clas[i];
}
infile.close();
}
//判断某学号的学生是否在数据库中
intStudent:
:
Judge(stringnum)
{
stringno[MAX],name[MAX],sex[MAX],special[MAX],clas[MAX];
Read(no,name,sex,special,clas);//调用Read()函数,获取数据,以便等下进行相关数据的判断
for(inti=0;i〈count;i++)
{
if(num==no[i])
{
returni;//如果存在,返回其下标
break;
}
}
return—1;//否则,返回-1
}
//删除某学生信息
voidStudent:
:
Delete()
{
stringnum,no[MAX],name[MAX],sex[MAX],special[MAX],clas[MAX];
Read(no,name,sex,special,clas);//读取学生所有数据,
cout<<”请输入你要删除的学生学号:
";
cin>>num;
intk=Judge(num);//定义一个k来接收Judge()的返回值,等下用来判断该num是否存在
if(k!
=-1)//如果k不等于-1,表示要删除的学生存在
{
ofstreamoutfile(”student。
txt”);
if(!
outfile)
{
cerr〈〈”openerror”<〈endl;
exit
(1);
}
for(inti=0;i〈count;i++)
{
if(i!
=k)//把下标不等于K(即除了要删的学生外)其余的数据重新写入磁盘保存
{
outfile〈〈no[i]〈〈"\t”;
outfile<〈name[i]〈〈”\t”;
outfile〈outfile〈〈special[i]<〈”\t”;
outfile<}
}
outfile.close();
count——;//删除一个学生,人数-1
cout<<”删除成功!
"〈〈endl;
}
else
cout〈<”该数据库没有此学生!
”<〈endl;
}
voidStudent:
:
Change()
{
stringnum,no[MAX],name[MAX],sex[MAX],special[MAX],clas[MAX];
cout〈〈”请输入你要修改的学生学号:
";
cin〉〉num;
intk=Judge(num);
if(k!
=—1)
{
Read(no,name,sex,special,clas);//读取学生所有数据,
cout〈〈”请依次输入修改后的学生学号,姓名,性别,专业,班级:
”<〈endl;
cin〉>no[k]〉〉name[k]〉〉sex[k]〉>special[k]>>clas[k];//把下标是k的学生进行修改
ofstreamoutfile("student。
txt”,ios:
:
out);
if(!
outfile)
{
cerr<<”openerror"<〈endl;
exit
(1);
}
for(inti=0;i〈count;i++)//改完后,回写进磁盘保存
{
outfile〈outfile〈〈name[i]〈<”\t”;
outfile〈〈sex[i]〈〈"\t”;
outfile〈〈special[i]〈<"\t”;
outfile〈〈clas[i]〈〈endl;
}
outfile。
close();
cout〈〈”修改成功!
”〈}
else
cout<〈"该数据库没有此学生!
”<}
voidStudent:
:
Search()
{
stringnum,no[MAX],name[MAX],sex[MAX],special[MAX],clas[MAX];
Read(no,name,sex,special,clas);
cout<〈"请输入你要查找的学生学号”;
cin〉〉num;
intk=Judge(num);
if(k!
=—1)//找到该学生就打印出其信息
{
cout〈<”学号\t姓名\t性别\t专业\t班级”<cout<cout<〈name[k]〈〈"\t”;
cout<〈sex[k]〈<"\t";
cout〈〈special[k]〈<"\t”;
cout<〈clas[k]〈}
else
cout〈<"该数据库没有此学生!
”〈〈endl;
}
//显示学生的所有信息
voidStudent:
:
Display()
{
stringno[MAX],name[MAX],sex[MAX],special[MAX],clas[MAX];
Read(no,name,sex,special,clas);//先读取
cout〈〈”学号\t姓名\t性别\t专业\t班级"〈〈endl;
for(inti=0;i〈count;i++)//后打印
{
cout〈cout〈〈name[i]〈〈"\t";
cout〈〈sex[i]<〈"\t”;
cout〈cout〈}
}
intmain()
{
intchoice=—1;
Students;
while(choice!
=0)//除非你选择退出,否则一直循环
{
cout〈<”\n\t\t\t——学生信息管理系统——\n\n”;
cout〈〈”\t\t\t|1。
录入学生信息|\n";
cout〈<”\t\t\t|2。
添加一个信息|\n";
cout〈<"\t\t\t|3。
删除一个信息|\n”;
cout〈〈"\t\t\t|4.修改学生信息|\n”;
cout〈<”\t\t\t|5.查询学生信息|\n";
cout<〈”\t\t\t|6。
显示学生信息|\n”;
cout〈〈”\t\t\t|0。
退出系统|\n";
cout〈〈”请选择所需要的操作:
”;
cin>>choice;
switch(choice)
{
case1:
s。
Set();
break;
case2:
s。
Add();
break;
case3:
s。
Delete();
break;
case4:
s。
Change();
break;
case5:
s.Search();
break;
case6:
s。
Display();
break;
case0:
break;
default:
cout〈〈"你的选择有误!
请重新选择!
"〈〈endl;
break;
}
}
return0;
}