c++学生信息管理系统.docx
《c++学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《c++学生信息管理系统.docx(14页珍藏版)》请在冰点文库上搜索。
![c++学生信息管理系统.docx](https://file1.bingdoc.com/fileroot1/2023-4/29/928beab2-80a1-4f56-b840-3df178a7b1ec/928beab2-80a1-4f56-b840-3df178a7b1ec1.gif)
c++学生信息管理系统
实验报告
课程名称面向对象程序设计
专业班级软件1142
姓名严露露
学号1104431206
电气与信息学院
和谐勤奋求是创新
实验教学考核和成绩评定办法
1.课内实验考核成绩,严格按照该课程教学大纲中明确规定的比重执行。
实验成绩不合格者,不能参加课程考试,待补做合格后方能参加考试。
2.单独设立的实验课考核按百分制评分,考核内容应包括基本理论、实验原理和实验。
3.实验考核内容包括:
1)实验预习;2)实验过程(包括实验操作、实验记录和实验态度、表现);3)实验报告;权重分别为0.2、0.4、0.4;原则上根据上述三个方面进行综合评定。
学生未取得1)和2)项成绩时,第3)项成绩无效。
4.实验指导教师应严格按照考核内容分项给出评定成绩,并及时批改实验报告,给出综合成绩,反馈实验中出现的问题。
实验成绩在教师手册中有记载。
实验报告主要内容
一.实验目的
二.实验仪器及设备
三.实验原理
四.实验步骤
五.实验记录及原始记录
六.数据处理及结论
七.实验体会(可选项)
注:
1.为了节省纸张,保护环境,便于保管实验报告,统一采用A4纸,实验报告建议双面打印(正文采用宋体五号字)或手写,右侧装订。
2.实验类别指验证、演示、综合、设计、创新(研究)、操作六种类型实验。
3.验证性实验:
是指为了使学生巩固课程基本理论知识而开设的强调演示和证明,注重实验结果(事实、概念或理论)的实验。
4.综合性实验:
是指实验内容涉及本课程的综合知识或本课程相关的课程知识的实验。
5.设计性实验:
是指给定实验目的、要求和实验条件,由学生自行设计实验方案并加以实现的实验。
实验题目
面向对象综合编程
实验室
电信机房
实验时间
年月日
实验类别
验证
同组人数
1
成绩
指导教师签字:
一、实验目的
二、实验内容
三、编程分析及运行结果
四、解决方法及难点
五、实验体会
【实验目的】
1.理解面向对象的设计思想,掌握编程方法。
2.利用面向对象系统分析与设计方法,对问题进行准确分析,设计一个适当的对象模型,进行编程。
3.设计合理的类结构与程序结构实现程序功能,用C++语言编写程序,进行测试,观察结果。
【实验内容】
设计一个小型学生信息或者成绩管理系统,对成绩可以进行录入、增加、删除、查询等功能。
【编程分析及运行结果】
#include
#include
#include
classStudent
{private:
intnum;
charname[10];
charsex;
intage;
charbri[20],tel[20],add[20],email[30];
public:
Student(){};
friendvoidDaolu();
friendvoidLiulan();
friendvoidChaxun();
friendvoidXiugai();
friendvoidShanchu();
~Student(){};
};
Studentstu[80];
voidDaolu()
{ofstreamout;
out.open("stu.txt",ios:
:
ate);
intm=1;
for(inti=0;i<=79&&m==1;i++)
{cout<<"请输入该学生学号:
";cin>>stu[i].num;cin.get();
cout<<"输入该学生姓名:
";cin.getline(stu[i].name,10);
cout<<"输入该学生性别:
";cin>>stu[i].sex;
cout<<"输入该学生年龄:
";cin>>stu[i].age;cin.get();
cout<<"输入该学生出生年月日:
";cin.getline(stu[i].bri,20);
cout<<"输入该学生地址:
";cin.getline(stu[i].add,20);
cout<<"输入该学生电话:
";cin.getline(stu[i].tel,20);
cout<<"输入该学生e-mail地址:
";cin.getline(stu[i].email,30);
out.write((char*)&stu[i],sizeof(stu[i]));
cout<<"是否继续输入?
是按1,否按0:
";cin>>m;
}
out.close();
}
voidLiulan()
{ifstreamin;
in.open("stu.txt");
if(!
in)cout<<"Can'topenfile!
"<inti=0;
while(!
in.eof())
{
in.read((char*)&stu[i],sizeof(stu[i]));
if(stu[i].num!
=0)
{cout<<"学生学号:
"<"<"<"<"<"<"<"<i++;}
}
in.close();
}
voidChaxun()
{ifstreamin;
in.open("stu.txt");
if(!
in)cout<<"Can'topenfile!
"<inti=0,x,n=0;
while(!
in.eof())
{in.read((char*)&stu[i],sizeof(stu[i]));i++;}
do
{
cout<<"按学生学号查询请按1:
"<"<cout<<"请输入需要查询的方式:
";cin>>x;
if(x==1)
{intm;cout<<"请输入查询的学生的学号:
";cin>>m;
for(intj=0;j<=i;j++)
if(stu[j].num==m)
{cout<<"学生学号:
"<"<"<"<"<"<"<"<n=1;}
if(n==0)cout<<"无该学号学生的信息!
"<}
else
{chara[10];cout<<"请输入查询的学生的姓名:
";cin.get();cin.getline(a,10);
for(intj=0;j<=i;j++)
if(strcmp(stu[j].name,a)==0)
{cout<<"学生学号:
"<"<"<"<"<"<"<"<n=1;}
if(n==0)cout<<"无该学生的信息!
"<}
cout<<"是否继续查询?
是按1,否按0:
";cin>>x;
}while(x==1);
in.close();
}
voidXiugai()
{ifstreamin;
in.open("stu.txt");
if(!
in)cout<<"Can'topenfile!
"<inti=0,x,n,c,j;
while(!
in.eof())
{in.read((char*)&stu[i],sizeof(stu[i]));i++;}
in.close();
do
{cout<<"请输入需要修改的学生的学号:
";cin>>x;
for(j=0;j<=i-1;j++)
if(stu[j].num==x)
{cout<<"学生学号:
"<"<"<"<"<"<"<"<n=1;
do
{cout<<"修改该学生学号请按1:
"<"<"<"<"<"<"<"<";
cin>>c;
switch(c)
{case1:
cout<<"请输入正确的学号:
";cin>>stu[j].num;break;
case2:
cout<<"请输入正确的姓名:
";cin.get();cin.getline(stu[j].name,10);break;
case3:
cout<<"请输入正确的性别:
";cin>>stu[j].sex;break;
case4:
cout<<"请输入正确的年龄:
";cin>>stu[j].age;break;
case5:
cout<<"请输入正确的出生年月日:
";cin.get();cin.getline(stu[j].bri,20);break;
case6:
cout<<"请输入正确的地址:
";cin.get();cin.getline(stu[j].add,20);break;
case7:
cout<<"请输入正确的电话:
";cin.get();cin.getline(stu[j].tel,20);break;
case8:
cout<<"请输入正确的e-mail地址:
";cin.get();cin.getline(stu[j].email,30);break;
}
cout<是按1,否按0:
";cin>>c;
}while(c==1);
}
if(n==0)cout<<"无该学号学生的信息!
"<cout<是按1,否按0:
";cin>>x;
}while(x==1);
ofstreamout;
out.open("stu.txt",ios:
:
out);
for(j=0;j<=i-1;j++)
out.write((char*)&stu[j],sizeof(stu[j]));
out.close();
}
voidShanchu()
{ifstreamin;
intn=1;
do
{in.open("stu.txt");
if(!
in)cout<<"Can'topenfile!
"<inti=0,j,a,x;
while(!
in.eof())
{in.read((char*)&stu[i],sizeof(stu[i]));i++;}
in.close();
cout<<"请输入需要删除的学生的学号:
";cin>>x;
for(j=0;j<=i-1;j++)
if(stu[j].num==x)a=j;
ofstreamout;
out.open("stu.txt",ios:
:
out);
for(j=0;j<=a-1;j++)out.write((char*)&stu[j],sizeof(stu[j]));
for(j=a+1;j<=i-1;j++)out.write((char*)&stu[j],sizeof(stu[j]));
out.close();
cout<<"是否继续删除?
是按1,否按0:
";cin>>n;
}while(n==1);
}
voidmain()
{cout<<"欢迎来到学生信息管理系统!
"<intk;
do
{cout<<"录入学生信息请按1"<cout<<"请输入需要执行的操作:
";
cin>>k;
switch(k)
{case1:
Daolu();break;
case2:
Liulan();break;
case3:
Chaxun();break;
case4:
Xiugai();break;
case5:
Shanchu();break;
case6:
cout<<"谢谢使用!
"<}
}while(k!
=6);
}
运行结果:
【解决方法及难点】
难点:
对文件的内容的读写,以及类的实际应用。
解决方法:
向老师寻求帮助
【实验体会】
理解如何设计一个学生管理系统,通过这次的实验学会了如何使类在文件中的应用,掌握了c++的基本编程方法,设计思想。