学生信息管理系统(面向对象设计c++)_第1页
学生信息管理系统(面向对象设计c++)_第2页
学生信息管理系统(面向对象设计c++)_第3页
学生信息管理系统(面向对象设计c++)_第4页
学生信息管理系统(面向对象设计c++)_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/*2014/05/27学生信息管理系统源码(面向对象设计c+)for act_head*/一、#ifndef _ACT_H#define _ACT_H#includestd.husing namespace std;class Actprivate:int top;/数组下表指示器Student std1000;public:void add();void display();void del();void query();Student *querybynum(long num);Student *querybyname(char name);void modif();ostream& operator( ostream& os, Student& t ) long num;string name;/!/char name50;/error!char sex,c=y;int age;int tag; num=t.getnum();name=t.getname(); sex=t.getsex();age=t.getage();tag=t.gettag();os num name sex age tag operator.istream& operator( istream& is, Student& t ) long num;char name50;char sex,c=y;int age;int tag; isnumnamesexagetag; t.setnum(num);t.setname(name);t.setsex(sex);t.setage(age);t.settag(); return is ;void Act:add()Student s,s1;long num;char name50;char sex,c=y;int age;int tag;ofstream file(std.txt,ios:app);/追加!不同于ate!打开一个输出文件用于在文件尾添加数据while(1)couts;cinnumnamesexage; s.setnum(num);s.setname(name);s.setsex(sex);s.setage(age);s.settag();files;cout学生信息添加成功n;coutc;if(c=n|c=N)break;file.close();void Act:display()top=-1;Student s1000,s1;/sn,n不能太大!ifstream file(std.txt);/fstream file(d:std.txt,ios_base:out);while(1)/file.read(char*)&s,sizeof(s);/file.read(reinterpret_cast(&s),sizeof(s); files1;if(!file.eof()break;/安排位置要注意,以防多输出随机数据top+;couttt第top+1个学生信息:(学号、姓名、性别、年龄、标识符)nendl;couttts1endl;stop=s1; file.close();void Act:query()int c2;Student* s;/一个临时的指针cout1 按学号来查询:endl;cout2 按姓名来查询:endl;coutc2;switch(c2)case 1:coutnum;s=querybynum(num);if(s=NULL)cout在文件中不含有该生信息.endl;elsecoutsetw(10)学号setw(10)姓名setw(10)性别setw(10)年龄endl;cout-tdisplay();break;case 2:coutname;s=querybyname(name);if(s=NULL)cout在文件中不含有该生信息.endl;elsecoutsetw(10)学号setw(10)姓名setw(10)性别setw(10)年龄endl;cout-tdisplay();break;default:cout输入有误!请重新输入!n;break;/根据指定学号进行查找Student *Act:querybynum(long num)int top=-1;Student s;/couthehes;while(!file.eof()/file.read(char*)&s,sizeof(s); files; top+;/couts.getnum()hejooun;stdtop=s; file.close ();/coutheheendl;for(int i=0;is;if(!file)break;top+;stdtop=s; file.close();for(int i=0;i=top;i+)if(strcmp(stdi.getname(),name)=0&stdi.gettag()=0)return &stdi;return NULL;/找不到,返回一个NULL值void Act:modif()long num;char name50;char sex;int age;Student* s;char yn;/y or n cout请输入要修改学生的学号: num;s=querybynum(num);if(s=NULL)cout在数据库中不含有该生信息.endl;elsecout学生的学号是否需被修改?(y/n)yn;if(yn=Y|yn=y)cout请输入学生的新学号:num;s-setnum(num);cout学生的姓名是否需被修改?(y/n)yn;if(yn=Y|yn=y)cout请输入学生的新姓名:name;s-setname(name);cout学生的性别是否需被修改?(y/n)yn;if(yn=Y|yn=y)cout请输入学生的新性别:sex;s-setsex(sex);cout学生的年龄是否需被修改?(y/n)yn;if(yn=Y|yn=y)cout请输入学生的新年龄:age;s-setage(age);cout学生信息修改完毕,修改后的信息如下:nnn;coutsetw(10)学号setw(10)姓名setw(10)性别setw(10)年龄endl;cout-tdisplay();/file*s/error!/老师,文件的输出,修改后的数据该如何输出,指针不是很会用诶 ofstream file(std.txt); for(int i=0;i=top;i+)/if(stdi.gettag()=0)/只有没删除的才存盘!filestdi;file.close();void Act:del()long num;Student s,*p=NULL;int k=0,i;char yn;ifstream file(std.txt);while(1)coutnum;int top=-1;while(!file.eof() files;top+;stdtop=s; file.close ();for(int i=0;i=top;i+)if(stdi.getnum()=num)k=i;break;if(k0)cout输入有误!n;elsefor( i=k;itop;i+)stdi=stdi+1;top-;ofstream file(std.txt);for(i=0;itop;i+) filestdi;cout删除成功!n;/for(i=0;idiplay();file.close();coutyn;if(yn=n|yn=N)break;#endif/*_ACT_H*/二、#ifndef _HEADER_H#define _HEADER_H#include#include#include#include#endif/*_HEADER_H*/三、/*2014/05/27学生信息管理系统for std_head*/#ifndef _STD_H#define _STD_H#includeheader.husing namespace std;class Studentprivate:long num;char name50;char sex;int age;int tag;/定义标志位0:未删除;1:已删除public: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();int getage();int gettag();void display();/void add(long num,char name,char sex,int age);void del();void Student:setnum(long n)/this-num=n;/this指针存在于类的成员函数中,指向被调用函数所在的类实例的地址。num=n;void Student:setname(char name)strcpy(this-name,name);/strcpy(name,nam);/!void Student:setsex(char sex)this-sex=sex;/只是因为参数跟类成员变量重名了,得加thisvoid Student:setage(int age)this-age=age;void Student:settag()this-tag=0;long Student:getnum()return num;char *Student:getname()return name;/!char Student:getsex()return sex;int Student:getage()return age;int Student:gettag()return tag;void Student:display()coutsetw(10)numsetw(10)namesetw(10)sexsetw(11)ageendl;cout-tnum=num;strcpy(this-name,name);this-sex=sex;this-age=age;this-tag=0;*/void Student:del()this-tag=1;#endif/*_STD_H*/四、/*2014/05/27学生信息管理系统for std_head*/#ifndef _UI_H#define _UI_H#includeheader.h#includeact.hclass Uipublic:void menu();private:int c;void Ui:menu() int c;Act db;while(1)coutnn;coutt* 欢迎进入济南大学学生信息管理系统 *endl;coutt* 添加学生信息,请按1 *endl;coutt* 显示学生信息,请按2 *endl;coutt* 查询学生信息,请按3 *endl;coutt* 修改学生信息,请按4 *endl;coutt* 删除学生信息,请按5 *endl;coutt* 退出系统,请按0 *endl;cout请选择您要进行的操作:c;switch(c)getchar();case 1:db.add();break;case 2:db.display();break;case 3:db.query();break;case 4:db.modif();break;case 5:db.del();break

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论