学生信息管理系统C++代码.docx
《学生信息管理系统C++代码.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统C++代码.docx(15页珍藏版)》请在冰豆网上搜索。
学生信息管理系统C++代码
1.程序执行后的部分效果
1.1项目主菜单效果图
1.2初始化信息,第一次对信息的录入
1.3添加学生信息
1.4删除某学生信息
1.5修改某学生信息
1.6查询某学生信息
1.7显示全部学生信息
源代码:
/*把StudentData.cpp(源代码)和student.txt(数据存放处)放在同一个文件夹下*/
#include
#include
#include
#include
#include
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时,停止输入!
"<cout<<"请依次输入学生的学号,姓名,性别,专业,班级:
"<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_sex=sex;
outfile<m_special=special;
outfile<m_clas=clas;
outfile<}
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_special=special;
outfile<m_clas=clas;
outfile<outfile.close();
cout<<"已添加成功!
"<}
//从磁盘读取数据
voidRead(stringno[],stringname[],stringsex[],stringspecial[],stringclas[])
{
ifstreaminfile("student.txt",ios:
:
in);
if(!
infile)
{
cerr<<"openerror"<exit
(1);
}
for(inti=0;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{
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"<exit
(1);
}
for(inti=0;i{
if(i!
=k)//把下标不等于K(即除了要删的学生外)其余的数据重新写入磁盘保存
{
outfile<outfile<outfile<outfile<outfile<}
}
outfile.close();
count--;//删除一个学生,人数-1
cout<<"删除成功!
"<}
else
cout<<"该数据库没有此学生!
"<}
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<<"请依次输入修改后的学生学号,姓名,性别,专业,班级:
"<cin>>no[k]>>name[k]>>sex[k]>>special[k]>>clas[k];//把下标是k的学生进行修改
ofstreamoutfile("student.txt",ios:
:
out);
if(!
outfile)
{
cerr<<"openerror"<exit
(1);
}
for(inti=0;i{
outfile<outfile<outfile<outfile<outfile<}
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<cout<cout<cout<}
else
cout<<"该数据库没有此学生!
"<}
//显示学生的所有信息
voidStudent:
:
Display()
{
stringno[MAX],name[MAX],sex[MAX],special[MAX],clas[MAX];
Read(no,name,sex,special,clas);//先读取
cout<<"学号\t姓名\t性别\t专业\t班级"<for(inti=0;i{
cout<cout<cout<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<<"你的选择有误!
请重新选择!
"<break;
}
}
return0;
}