IT认知实习报告代码Word文件下载.docx
《IT认知实习报告代码Word文件下载.docx》由会员分享,可在线阅读,更多相关《IT认知实习报告代码Word文件下载.docx(24页珍藏版)》请在冰点文库上搜索。
8.save()和load();
将学生信息保存到文件中,并在需要的时候调用该文件将其中的学生信息显示出来
9.“=”“<
<
”“>
>
”符号的重载:
在各个函数处理数据过程中对这些的调用处理
函数源代码:
此函数源代码在VisualC++6.0环境下编译通过。
具体如下:
#include"
iostream.h"
conio.h"
iomanip.h"
stdio.h"
string.h"
stdlib.h"
fstream.h"
classstudent//定义学生类
{
private:
//定义学生类的私有成员
charname[20];
//名字
charsex[5];
//性别
intnumber;
//学号
intscore[3];
//分数
inttotal;
//总分
intaverage;
//平均分
public:
//公有成员
student();
//学生构造函数,用于学生数据的初始化及保存学生数据
voidadd();
//添加学生信息函数
voidoutput();
//输出学生信息函数
voidfind();
//查找学生数据函数
voidmodify();
//修改学生信息函数
voiddeleted();
//删除学生信息函数
voidsort();
//排序函数
voidsave();
//保存学生信息并写入文件函数
voidload();
//打开写有学生信息的文件的函数
student&
operator=(student&
T);
//重载“=”符号
friendistream&
operator>
(istream&
scin,student&
s1);
//重载“>
”符号
friendostream&
operator<
(ostream&
scout,student&
s2);
};
studentstu[100];
intn=0;
voidstudent:
:
add()//添加函数
{
charflag='
Y'
;
while(toupper(flag)=='
)
{
cin>
stu[n];
n++;
cout<
"
要继续添加吗(y/n)"
flag;
if(toupper(flag)!
='
{
if(toupper(flag)=='
N'
{
break;
}
else
cout<
错误,请重输:
cin>
}
}
}
output()//输出函数
if(n!
=0)
---------------------------------------------------------------------------\n"
numbernamesexmathC++Englishtotalaverage\n"
---------------------------------------------------------------------------\n"
for(intt=0;
t<
n;
t++)
cout<
stu[t];
getch();
find()//查找函数
intf3=0;
charn1[20];
studenttemp;
cout<
输入你要查找的人的姓名:
"
cin>
n1;
for(intj=0;
j<
j++)
if(strcmp(stu[j].name,n1)==0)
temp=stu[j];
f3=1;
if(f3==0)
对不起,没有你要查找的学生成绩"
endl;
else
temp.number<
temp.name<
temp.sex<
temp.score[0]
<
temp.score[1]<
temp.score[2]<
temp.total<
temp.average<
modify()//修改函数
intf4=0;
intt;
charn2[50];
输入你要修改的人的姓名:
n2;
if(strcmp(stu[j].name,n2)==0)
t=j;
f4=1;
if(f4==0)
对不起,没有你要修改的学生成绩"
请输入学号:
stu[t].number;
姓名:
stu[t].name;
性别:
stu[t].sex;
数学成绩:
stu[t].score[0];
C++成绩:
stu[t].score[1];
英语成绩:
stu[t].score[2];
stu[t].total=stu[t].score[0]+stu[t].score[1]+stu[t].score[2];
stu[t].average=stu[t].total/3;
修改成功!
deleted()//删除函数
charn3[20];
boolf5=0;
charc;
do{
请输入您要删除的学生姓名:
n3;
for(inti=0;
i<
i++)
if(strcmp(n3,stu[i].name)==0)
f5=1;
n--;
do{
stu[i]=stu[i+1];
i++;
}while(i<
=n);
if(f5==0)
您要求删除的对象本来就不存在!
要继续删除吗?
(y/n)"
c;
if(toupper(c)!
&
toupper(c)!
输入指令错误!
请重新输入Y或N!
cin>
}while(toupper(c)=='
);
sort()//排序函数
inti,j,k;
students3;
for(i=0;
(n-1);
k=i;
for(j=i+1;
if(stu[j].average>
stu[i].average)
k=j;
if(k!
=i)
s3=stu[i];
stu[i]=stu[k];
stu[k]=s3;
\n\n排序成功!
\n\n"
save()//保存函数
charfilename1[20];
请输入文件名:
filename1;
ofstreamfout(filename1,ios:
app);
if(!
fout)cout<
文件不能打开!
fout<
'
'
stu[i].name<
stu[i].sex<
stu[i].number<
stu[i].score[0]<
stu[i].score[1]<
stu[i].score[2]<
stu[i].total<
stu[i].average<
保存成功!
fout.close();
load()//读取函数
charfilename2[20];
请输入你要读取的文件名:
filename2;
ifstreamfin(filename2,ios:
in);
fin)cout<
文件打不开!
i++,n=i-1)
if(fin.eof())break;
fin>
stu[i].name>
stu[i].sex>
stu[i].number
>
stu[i].score[0]>
stu[i].score[1]>
stu[i].score[2]>
stu[i].total>
stu[i].average;
文件已读取成功!
fin.close();
student&
student:
operator=(student&
T)//重载=
strcpy(name,T.name);
strcpy(sex,T.sex);
number=T.number;
for(inti=0;
3;
i++)score[i]=T.score[i];
total=T.total;
average=T.average;
return(*this);
ostream&
s2)//重载<
setw(6)<
s2.number<
setw(10)<
s2.name<
setw(8)<
s2.sex<
s2.score[0]
<
s2.score[1]<
s2.score[2]<
s2.total<
s2.average<
returnscout;
istream&
scin,student&
s1)//重载>
\t学号:
scin>
s1.number;
\t姓名:
s1.name;
\t性别:
s1.sex;
\t数学成绩:
s1.score[0];
\tC++成绩:
s1.score[1];
\t英语成绩:
s1.score[2];
s1.total=s1.score[0]+s1.score[1]+s1.score[2];
s1.average=s1.total/3;
returnscin;
student:
student()//构造函数
strcpy(name,"
strcpy(sex,"
number=0;
i++)score[i]=0;
total=0;
average=0;
voidmenu()//菜单函数
\n\n\n学生成绩管理系统主菜单"
\n\n\n1.添加学生信息"
2.输出学生信息"
3.查找学生信息"
4.修改学生信息"
5.删除学生信息"
6.学生信息排序"
7.保存数据"
8.读出数据"
9.退出系统"
\n\n请选择(1~9)并按回车键确认:
intmain()//主函数
intchoose;
students;
menu();
choose;
switch(choose)
case1:
s.add();
break;
case2:
s.output();
case3:
s.find();
case4:
s.modify();
case5:
s.deleted();
case6:
s.sort();
case7:
s.save();
case8:
s.load();
case9:
choose=0;
break;
default:
}while(choose!
=0);
}
IT认知实验心得:
在学习C++以前,我认为C++只是在C语言的基础上的一种延伸,认为只要学过C语言,就可以用C语言的那种设计思想来学习C++、设计C++程序。
正是由于抱了这种错误的思想,使我在一开始学习C++的时候遇到了很大的困难,我没有办法体会面向对象的设计思想,我在学习这门课的时候老是想着实现这个函数功能的具体过程,而没太注意对象分类的重要性。
随着课程学习的深入,我感觉到了利用类和对象、继承、封装等一系列知识可以把我们程序中很多繁杂、重复的部分省略掉,还可以解决一些利用面向过程的设计思想无法解决的问题,我自己也试着编写一些小的C++程序,当然在这个过程中遇到了很多困难,其中调试带来的困难让我无法忘记,在调试程序的同时,我也总结出来了一些调试的小技巧,让我在C语言课程设计中也受用匪浅。
在学习这门课的过程中,我感受到了自己亲自动手编程序、调程序的重要性,我们要熟悉C++的语法、体会调试的思想,最好的一个手段就是自己动手编程、调试,这会比我们一味的看书效果好得多。
另外,我还感觉到一个好的程序编出来需要很多人的团结合作。
我在检查自己编写的程序是否有BUG未被找出的时候,我会让我的同学作为一个程序使用者来找出未发现的BUG并提出改进意见,这让我们的工作更加高效。
很高兴能够了解到C++的神奇魅力和面向对象程序设计的独特思想,它为我今后的程序设计奠定了基础。
感谢老师对我们的悉心教授!