}
intmain(void)
{
inta[]={8,2,5,4,7,6,9,3,0,1};
print(a);
sort(a,10);
print(a);
return0;
}
2、#include
usingnamespacestd;
classCar;
classState{
public:
virtualvoidforward(Car&car)=0;
virtualvoidback(Car&car)=0;
virtualvoidturnleft(Car&car)=0;
virtualvoidturnright(Car&car)=0;
virtualvoiddisplay()=0;
};
classCar{
private:
intx;
inty;
State*curstate;
classNorth:
publicState{
voidforward(Car&car){
car.y+=1;
}
voidback(Car&car){
car.y-=1;
}
voidturnleft(Car&car){
car.curstate=newWest;
}
voidturnright(Car&car){
car.curstate=newEast;
}
voiddisplay(){
cout<<"curstate:
North"<}
};
classSouth:
publicState{
voidforward(Car&car){
car.y-=1;
}
voidback(Car&car){
car.y+=1;
}
voidturnleft(Car&car){
car.curstate=newEast;
}
voidturnright(Car&car){
car.curstate=newWest;
}
voiddisplay(){
cout<<"curstate:
South"<}
};
classWest:
publicState{
voidforward(Car&car){
car.x-=1;
}
voidback(Car&car){
car.x+=1;
}
voidturnleft(Car&car){
car.curstate=newSouth;
}
voidturnright(Car&car){
car.curstate=newNorth;
}
voiddisplay(){
cout<<"curstate:
West"<}
};
classEast:
publicState{
voidforward(Car&car){
car.x+=1;
}
voidback(Car&car){
car.x-=1;
}
voidturnleft(Car&car){
car.curstate=newNorth;
}
voidturnright(Car&car){
car.curstate=newSouth;
}
voiddisplay(){
cout<<"curstate:
East"<public:
Car():
curstate(newNorth),x
(2),y
(2){}
voidforward(){
curstate->forward(*this);
}
voidback(){
curstate->back(*this);
}
voidturnleft(){
curstate->turnleft(*this);
}
voidturnright(){
curstate->turnright(*this);
}
voiddisplay(){
curstate->display();
}
voidgetPos()const{
cout<<"position:
<"<"<}
};
intmain(void)
{
Carcar;
car.getPos();
car.display();
car.forward();
car.turnleft();
car.forward();
car.turnright();
car.forward();
car.turnright();
car.forward();
car.forward();
car.forward();
car.display();
car.getPos();
return0;
}
3、
#include
usingnamespacestd;
template
classCompare{
private:
Tmax;
Tmin;
public:
Compare(Ta,Tb){
if(a>b){
max=a;
min=b;
}
elseif(a
max=b;
min=a;
}else{
max=a;
min=a;
}
}
~Compare(){
cout<<"max:
"<cout<<"min:
"<}
};
intmain(void)
{
Compare(2,3);
Compare(4.2,3.5);
return0;
}
4、
Student.h
----------------------------------------------------------------------------------------------------------------
#ifndef__STUDENT_H__
#define__STUDENT_H__
#include
#include
#include"file.h"
usingnamespacestd;
classStudent{
private:
string_id;
string_name;
double_score;
Student*next;
public:
Student():
next(NULL){}
Student(stringid,stringname,doublescore);
voidsetInfo(stringid,stringname,doublescore);
friendostream&operator<<(ostream&os,Student&s);
friendboolcomp(constStudent&,constStudent&);
friendclassList;
friendclassFile;
};
#endif
student.cpp
----------------------------------------------------------------------------------------------------------------
#include"student.h"
Student:
:
Student(stringid,stringname,doublescore){
_id=id;
_name=name;
_score=score;
next=NULL;
}
voidStudent:
:
setInfo(stringid,stringname,doublescore){
_id=id;
_name=name;
_score=score;
}
ostream&operator<<(ostream&os,Student&s){
os<<"name:
"<<<"id:
"<<<"score:
"<returnos;
}
file.h
----------------------------------------------------------------------------------------------------------------
#ifndef__FILE_H__
#define__FILE_H__
#include
#include
#include"student.h"
classStudent;
usingnamespacestd;
classFile{
public:
File();
~File();
voidgetInfo();
voidsortForId();
voidwriteAfterSort();
voidprint();
private:
fstreamrwfile;
listslist;
};
#endif
file.cpp
---------------------------------------------------------------------------------------------------------------------
#include"file.h"
File:
:
File(){
rwfile.open("studentinfo.txt");
if(!
rwfile){
throw-1;
}
}
File:
:
~File(){
rwfile.close();
}
voidFile:
:
getInfo(){
while(!
rwfile.eof())
{
stringnon;
Studenttmp;
rwfile>>tmp._id>>tmp._name>>tmp._score;
rwfile>>non;
if(rwfile)
slist.push_back(tmp);
}
}
voidFile:
:
print(){
list:
:
iteratoriter=slist.begin();
for(iter;iter!
=slist.end();iter++){
cout<<(*iter)._id<<(*iter)._name<<(*iter)._score<}
}
boolcomp(constStudent&a,constStudent&b){
return(a._id}
voidFile:
:
sortForId(){
slist.sort(comp);
}
voidFile:
:
writeAfterSort(){
rwfile.close();
rwfile.open("studentinfo.txt");
list:
:
iteratoriter=slist.begin();
for(iter;iter!
=slist.end();iter++){
rwfile<<(*iter)._id<<""\
<<(*iter)._name<<""\
<<(*iter)._score<<""<}
}
main.cpp----------------------------------------------------------------------------------------------------------------
#include"student.h"
#include"file.h"
#include
intmain(void)
{
Filefile;
file.getInfo();
file.print();
file.sortForId();
file.print();
file.writeAfterSort();
return0;
}