1、 int age; int tag; num=t.getnum(); name=t.getname(); sex=t.getsex(); age=t.getage(); tag=t.gettag(); os num namesex age tag operator.istream& operator( istream& is, Student& char name50; isnumnamesexagetag; t.setnum(num); t.setname(name); t.setsex(sex); t.setage(age); t.settag(); return is ;void Act
2、:add() Student s,s1; ofstream file(std.txt,ios:app);/追加!不同于ate!打开一个输出文件用于在文件尾添加数据 while(1) couts; cinage; s.setnum(num); s.setname(name); s.setsex(sex); s.setage(age); s.settag(); file学生信息添加成功n是否继续输入学生信息:(Y/N)c; if(c=n|c=N) break; file.close();display() top=-1; Student s1000,s1;/sn,n不能太大! ifstream f
3、ile(); /fstream file(d:std.txt,ios_base:out); /file.read(char*)&s,sizeof(s); / file.read(reinterpret_cast(&s),sizeof(s); files1; if(!file.eof()/安排位置要注意,以防多输出随机数据 top+;tt第top+1个学生信息:(学号、姓名、性别、年龄、标识符)ntts1 stop=s1;query() int c2; Student* s;/一个临时的指针 coutc2; switch(c2) case 1:请输入要查询的学生的学号: long num;num
4、; s=querybynum(num); if(s=NULL) cout在文件中不含有该生信息. else coutsetw(10)display(); break; case 2:请输入要查询的学生的姓名: char name50;name; s=querybyname(name); default:输入有误!请重新输入!n/根据指定学号进行查找Student *Act:querybynum(long num) int top=-1; Student s; /cout while(! file /couts.getnum()hejooun stdtop=s; file.close (); f
5、or(int i=0;iyn; if(yn=Y|yn= cout s-setnum(num); 学生的姓名是否需被修改?请输入学生的新姓名:setname(name);学生的性别是否需被修改?请输入学生的新性别:sex;setsex(sex);学生的年龄是否需被修改?请输入学生的新年龄:setage(age);学生信息修改完毕,修改后的信息如下:nnn /file*s/error! /老师,文件的输出,修改后的数据该如何输出,指针不是很会用诶 / if(stdi.gettag()=0)/只有没删除的才存盘! file file.close(); del() Student s,*p=NULL;
6、 int k=0,i;请输入要删除学生的学号: int top=-1; while(! top+; stdtop=s; for(int i=0; if(stdi.getnum()=num) k=i; break; if(k0)输入有误! for( i=k;top; stdi=stdi+1; top-; ofstream file( for(i=0; filediplay();是否继续删除?(y/n): if(yn=#endif/*_ACT_H*/二、#ifndef _HEADER_H#define _HEADER_H#includestringfstreamiomanip#endif/*_HE
7、ADER_H*/三、 学生信息管理系统 for std_head#ifndef _STD_H#define _STD_Hheader.hclass Student/定义标志位0:未删除;1:已删除 void setnum(long n); void setname(char name); void setsex(char sex); void setage(int age); void settag();/此处不用参数,写在具体的函数体内,不需要用户知道 long getnum(); char* getname();/一定不能写成 char getname() char getsex(); i
8、nt getage(); int gettag(); /void add(long num,char name,char sex,int age);void Student:setnum(long n) /this-num=n;/this指针存在于类的成员函数中,指向被调用函数所在的类实例的地址。 num=n;setname(char name) strcpy(this-name,name); /strcpy(name,nam);/!setsex(char sex) this-sex=sex;/只是因为参数跟类成员变量重名了,得加thissetage(int age)age=age;settag()tag=0;long Student:getnum() return num;char *Student:getname() return name;char Student:getsex() return sex;int Student:getage() return age;gettag() return tag;numnamesetw(11)ageui.hint main() Ui a; a.menu(); return 0;
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2