学生选修课管理系统 C++课程设计.docx
《学生选修课管理系统 C++课程设计.docx》由会员分享,可在线阅读,更多相关《学生选修课管理系统 C++课程设计.docx(53页珍藏版)》请在冰豆网上搜索。
学生选修课管理系统C++课程设计
#include
#include
#include
#include
#include
//usingnamespacestd;
constintcount=3;
classsituaction;
classstudent
{public:
intsno;
charsname[20];
charsex[3];
intage;
chardepart[20];
charclassno[20];
charlianx[40];
//public:
friendvoidsselect();
friendvoidsupdate();
friendvoidsdelet();
friendvoidsaccount();
friendvoidsdisplay();
friendistream&operator>>(istream&in,student&stu)
{
in>>stu.sno>>stu.sname>>stu.sex>>stu.age>>stu.depart>>stu.classno>>stu.lianx;
returnin;
}
friendostream&operator<<(ostream&out,student&stu)
{
out<returnout;
}
friendvoidxkadd();
friendvoidsadd();
};
voidsadd()
{while
(1)
{
intflag1=0;
students;
cout<<"请输入要添加的学生的学号、姓名、性别、年龄、系别、班级、联系方式"<cin>>s;
ifstreamin("e:
\\studentfile.txt");
if(!
in)
{
cout<<"打开学生信息文件失败!
"<return;
}
studentstu;
in.read((char*)&stu,sizeof(student));
while(!
in.eof())
{if(s.sno==stu.sno){flag1=1;break;}
in.read((char*)&stu,sizeof(student));
}
in.close();
if(flag1==1)cout<<"该学生已经在文件中存在不允许添加!
"<else
{ofstreamout("e:
\\studentfile.txt",ios:
:
app);
out.write((char*)&s,sizeof(student));
out.close();
}
system("pause");
break;
}
}
voidsselect()
{while
(1)
{system("cls");
cout<<"***********请选择要查询的类别:
*************"<cout<<"***********按学生学号请按1:
*************"<cout<<"***********按学生姓名请按2:
*************"<cout<<"***********按学生系别请按3:
*************"<cout<<"***********按学生班级请按4:
*************"<cout<<"***********返回上一级界面请按5:
*************"<intsn;
cin>>sn;
while(sn>5||sn<1)
{
cout<<"选择的数据无效,请重新输入:
"<cin>>sn;
}
cout<ifstreamin("e:
\\studentfile.txt");
if(!
in)
{cout<<"打开学生信息文件失败!
"<return;
}
intflag=0;
switch(sn)
{
case1:
{
intno;
cout<<"请输入要查询的学生的学号"<cin>>no;
studentstu;
in.read((char*)&stu,sizeof(student));
while(!
in.eof())
{if(no==stu.sno){cout<in.read((char*)&stu,sizeof(student));
}
break;
}
case2:
{
charname[20];
cout<<"请输入要查询的学生的姓名"<cin>>name;
studentstu;
in.read((char*)&stu,sizeof(student));
while(!
in.eof())
{if(strcpy(name,stu.sname)==0){cout<in.read((char*)&stu,sizeof(student));
}
break;
}
case3:
{
chardep[20];
cout<<"请输入要查询的学生的系别"<cin>>dep;
studentstu;
in.read((char*)&stu,sizeof(student));
while(!
in.eof())
{if(strcmp(dep,stu.depart)==0){cout<in.read((char*)&stu,sizeof(student));
}
break;
}
case4:
{
charclno[20];
cout<<"请输入要查询的学生的班级"<cin>>clno;
studentstu;
in.read((char*)&stu,sizeof(student));
while(!
in.eof())
{if(strcmp(clno,stu.classno)==0){cout<in.read((char*)&stu,sizeof(student));
}
break;
}
case5:
return;
}
in.close();
if(flag==0)cout<<"要查询的学生在文件不存在!
"<system("pause");
}
}
voidsupdate()
{while
(1)
{system("cls");
cout<<"***********请选择按下列类别查询后修改:
*************"<cout<<"***********按学生学号请按1:
*************"<cout<<"***********按学生姓名请按2:
*************"<cout<<"***********按学生系别请按3:
*************"<cout<<"***********按学生班级请按4:
*************"<cout<<"***********返回上一级界面请按5:
*************"<intsn;
cin>>sn;
while(sn>5||sn<1)
{
cout<<"选择的数据无效,请重新输入:
"<cin>>sn;
}
cout<fstreamin("e:
\\studentfile.txt",ios:
:
in|ios:
:
out);
if(!
in)
{cout<<"打开学生信息文件失败!
"<return;
}
intflag=0;
switch(sn)
{
case1:
{
intno;
cout<<"请输入要查询的学生的学号"<cin>>no;
studentstu;
inti=0;
in.seekg(i*sizeof(student),ios:
:
beg);
in.read((char*)&stu,sizeof(student));
while(!
in.eof())
{if(no==stu.sno)
{cout<cout<<"请输入要修改的学生的学号、姓名、性别、年龄、系别、班级、联系方式"<cin>>stu;
in.seekp(i*sizeof(student),ios:
:
beg);
in.write((char*)&stu,sizeof(student));
flag=1;
}
i++;
in.seekg(i*sizeof(student),ios:
:
beg);
in.read((char*)&stu,sizeof(student));
}
break;
}
case2:
case3:
case4:
case5:
return;
}
in.close();
if(flag==0)cout<<"要修改的学生在文件不存在!
"<system("pause");
}
}
voidsdelet()
{while
(1)
{system("cls");
cout<<"***********请选择按下列类别查询后删除:
*************"<cout<<"***********按学生学号请按1:
*************"<cout<<"***********按学生姓名请按2:
*************"<cout<<"***********按学生系别请按3:
*************"<cout<<"***********按学生班级请按4:
*************"<cout<<"***********返回上一级界面请按5:
*************"<intsn;
cin>>sn;
while(sn>5||sn<1)
{
cout<<"选择的数据无效,请重新输入:
"<cin>>sn;
}
cout<studentstu[20];
intflag=0;
switch(sn)
{
case1:
{ifstreamin("e:
\\studentfile.txt");
if(!
in)
{cout<<"打开学生信息文件失败!
"<return;
}
intn=0;
in.read((char*)&stu[n],sizeof(student));
while(!
in.eof())
{n++;
in.read((char*)&stu[n],sizeof(student));
}
in.close();
intno;
cout<<"请输入要删除的学生的学号"<cin>>no;
for(inti=0;i{if(no==stu[i].sno)
{cout<cout<<"是否要删除该学生的信息!
"<charch;
cin>>ch;
if(ch='Y'||ch=='y')
{
for(intj=i;jstu[j]=stu[j+1];
n--;
}
flag=1;
}
}
if(flag==0)cout<<"要修改的学生在文件不存在!
"<else
{
ofstreamout("e:
\\studentfile.txt");
if(!
out)
{cout<<"打开学生信息文件失败!
"<return;
}
for(intk=0;k{out.seekp(k*sizeof(student),ios:
:
beg);
out.write((char*)&stu[k],sizeof(student));
}
out.close();
}
break;
}
case2:
case3:
case4:
case5:
return;
}
system("pause");
}
}
voidsaccount()
{ifstreamifs("e:
\\studentfile.txt");
if(!
ifs)
{
cout<<"打开文件失败!
";
system("pause");
return;
}
inti=0;
students;
ifs.read((char*)&s,sizeof(student));
while(!
ifs.eof())
{
i++;
ifs.read((char*)&s,sizeof(student));
}
ifs.close();
cout<<"学生:
"<
ifs.close();
system("pause");
}
voidsdisplay()
{ifstreamin("e:
\\studentfile.txt",ios:
:
in);
if(!
in)
{
cout<<"打开学生信息文件失败!
"<return;
}
studentstu;
in.read((char*)&stu,sizeof(student));
while(!
in.eof())
{cout<in.read((char*)&stu,sizeof(student));
}
in.close();
system("pause");
}
classcourse
{public:
intcno;
charcname[20];
charcxz[10];
intzxs;
intxf;
charkcxq[10];
intxxrs;
//public:
friendvoidcadd();
friendvoidcselect();
friendvoidcupdate();
friendvoidcdelet();
friendvoidcaccount();
friendvoidcdisplay();
friendistream&operator>>(istream&in,course&cou)
{
in>>o>>ame>>cou.cxz>>cou.zxs>>cou.xf>>cou.kcxq>>cou.xxrs;
returnin;
}
friendostream&operator<<(ostream&out,course&cou)
{out<returnout;
}
friendvoidxkadd();
};
voidcadd()
{intflag1=0;
coursec;
cout<<"请输入要添加的课程的课程代码、课程名称、课程性质、总学时、学分、开课学期、选修人数"<cin>>c;
ifstreamin("e:
\\coursefile.txt");
if(!
in)
{
cout<<"打开课程信息文件失败!
"<return;
}
coursecou;
in.read((char*)&cou,sizeof(course));
while(!
in.eof())
{if(o==o){flag1=1;break;}
in.read((char*)&cou,sizeof(course));
}
in.close();
if(flag1==1)cout<<"该课程已经在文件中存在不允许添加!
"<else
{ofstreamout("e:
\\coursefile.txt",ios:
:
app);
out.write((char*)&c,sizeof(course));
out.close();
}
system("pause");
}
voidcselect()
{while
(1)
{system("cls");
cout<<"***********请选择要查询的类别:
*************"<cout<<"***********按课程编号请按1:
*************"<cout<<"***********按课程名称请按2:
*************"<cout<<"***********返回上一级界面请按3:
*************"<intsn;
cin>>sn;
while(sn>3||sn<1)
{
cout<<"选择的数据无效,请重新输入:
"<cin>>sn;
}
cout<ifstreamin("e:
\\coursefile.txt");
if(!
in)
{cout<<"打开课程信息文件失败!
"<return;
}
intflag=0;
switch(sn)
{
case1:
{
intno;
cout<<"请输入要查询的课程的编号"<cin>>no;
courseke;
in.read((char*)&ke,sizeof(course));
while(!
in.eof())
{if(no==o){cout<in.read((char*)&ke,sizeof(course));
//if(no==ke.char*)&ke,sizeof(course));
}
break;
}
case2:
{
charname[25];
cout<<"请输入要查询的课程的名称"<cin>>name;
courseke;
in.read((char*)&ke,sizeof(course));
while(!
in.eof())
{if(strcpy(name,ame)==0){cout<in.read((char*)&ke,sizeof(course));
}
break;
}
case3:
return;
}
in.close();
if(flag==0)cout<<"要查询的课程在文件不存在!
"<system("pause");
}
}
voidcupdate()
{while
(1)
{system("cls");
cout<<"***********请选择按下列类别查询后修改:
*************"<cout<<"***********按课程编号请按1:
*************"<cout<<"***********按课程名称请按2:
*************"<cout<<"***********按课程性质请按3:
*************"<cout<<"***********按课程学分请按4:
*************"<cout<<"***********返回上一级界面请按5:
*************"<intsn;
cin>>sn;
while(sn>5||sn<1)
{
cout<<"选择的数据无效,请重新输入:
"<cin>>sn;
}
cout<fstreamin("e:
\\studentfile.txt",ios:
:
in|ios:
:
out);
if(!
in)
{cout<<"打开课程信息文件失败!
"<return;
}
intflag=0;
switch(sn)
{
case1:
{
intno;
cout<<"请输入要查询的课程的编号"<cin>>no;
coursek;
inti=0;
in.seekg(i*sizeof(course),ios:
:
beg);
in.read((char*)&k,sizeof(course));
while(!
in.eof())
{if(no==o)
{cout<cout<<"请输入要修改的课程的编号,名称,性质,学分"<cin>>k;
in.seekp(i*sizeof(course),ios:
:
beg);
in.write((char*)&k,sizeof(course));