c++文件流概要1.ppt

c文件流概要1

void set_score(float sc) {score=sc;} void set_name(char *fname) {name=fname;} void set_id(int iid) {id=iid;} protected: char *name; int id; float score;}; int Read(char* sfile, student *stu) { char name[20]; int id; float sc; ifstream infile(sfile,ios::in); if(! infile) {cerrOpen file sfile errorendl; exit(1); } char title[80]; infile.getline(title,80); int i=0; while(!infile.eof()) { infilenameidsc; stu[i].set_name(name); stu[i].set_score(sc); stu[i].set_id(id); i++; } return i;} void main() { student stu[10]; char sfile[80]; cout输入打开文件名:endl; cinsfile; int counts=Read(sfile,stu); for(int i=0;icounts;i++) coutstu[i].get_name()stu[i].get_id() stu[i].get_score()endl; } 一名为”student.txt”的学生数据文件保存在e:\,格式如下: 姓名 学号 分数 John 012478 98 Peter 021455 89 ….. 请从文件中读取数据, (1)建立单链表 (2)将链表数据在计算机屏幕输出 (3)将链表数据写入另一个文件”student.dat”中 #include iostream.h #include fstream.h #include string.h class student{ public: student() //初始化对象,将新建的结点插入在链首 { next=head; //新建结点的next指针指向原链表表头 head=this; //表头指针移动到新建的结点 totalNumber++; //结点个数加1 } void SetName(char *pname) { strcpy(name,pname); } void SetNumber(char *Pcode) { strcpy(Number,Pcode); } void SetGrade(float gr) { grade=gr; } char * GetName() { return name; } char *GetNumber() { return Number; } float GetGrade() { return grade; } void display() {coutname Number gradeendl; } student* GetNext() { return next; } static student *GetHead() { return head; } static int GettotalNumber() {return totalNumber; } protected: char name[15]; char Number[10]; float grade; private: student *next; static student *head; static int totalNumber; }; student * student::head=NULL; int student::totalNumber=0; void ShowStudent() { student *ptemp; ptemp=student::GetHead(); //得到链表的表头 while(ptemp-GetNext()!=NULL) { ptemp-display(); //调用对象的成员函数实现输出 ptemp=ptemp-GetNext(); //临时指针指向下一个结点 } } void

文档评论(0)

1亿VIP精品文档

相关文档