C++学生管理系统课程设计-源代码(共11页).doc
《C++学生管理系统课程设计-源代码(共11页).doc》由会员分享,可在线阅读,更多相关《C++学生管理系统课程设计-源代码(共11页).doc(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上/=/student.h 定义了抽象类Person,派生了student(及为信息类)、定义了节点类Node、定义了链表类List/=#ifndef STUDATA_H#define STUDATA_H#include /=int GetID();class List;/-class Person /抽象类protected:int ID; /学号char Name15; /姓名public:virtual bool operator(Person&)=0; /=(Person&)=0; /=运算符重载;/-class Student:public Person /学
2、生类int Score4; /成绩void SwapData(Student*); /交换数据public:Student(int =0,char* =NULL,int* =NULL); /构造函数bool operator(Person&); /=(Person&); /=运算符重载friend ofstream&operator(ofstream&,Student*); /(ifstream&,Student*); /运算符重载从文件输入 friend ostream_withassign& operator(ostream_withassign&,Student*); /(istream
3、_withassign&,Student*); /运算符重载从键盘输入friend class List;/-class Node /结点类Student *Stup; /指向学生对象指针Node *Prev,*Next; /指向前后结点指针public:Node(); /构造函数Node(Student*); /构造函数Node(Node&); /拷贝构造函数Node(); /析构函数friend class List;/-class ListNode *Head,*Tail; /链表头尾指针void InitList(); /初始化函数public:List(); /构造函数List();
4、 /析构函数void ClearList(); /清空链表Node *FindID(int&); /根据学号寻找学生所在结点 指针型函数void Insert(Node*); /插入一个学生Node *CreateNode(Student*); /建立一个学生结点 指针型函数void Add(); /增加一个学生void Update(); /修改学生成绩void Delete(); /删除一个学生void Query(); /查找一个学生void SortID(); /按学号排序void SortScore(); /按学生总成绩排序void SaveBin(); /以二进制形式保存数据voi
5、d PrintList(); /显示链表void PrintTitle(); /显示标题void PrintOne(Student*); /显示一个学生数据;#endif/=/student.cpp的实现/=#include #include #include #include student.h/=Student:Student(int id,char *name,int *score) /构造函数ID=id;if(name!=NULL)strcpy(Name,name);if(score!=NULL)for(int i=0;i=3;i+)Scorei=scorei;bool Student
6、:operator(Person& per) Student &stu=(Student&)per; return (Score3=(Person& per) return (!operator=stu.Score3)void Student:SwapData(Student* stup) /学生数据交换 this指针指向调用成员函数的对象 Student t=*this; *this=*stup; *stup=t;ifstream& operator(ifstream& in,Student* stup) /运算符重载从文件输入in.read(char*)stup,sizeof(Studen
7、t); /从相应的流中提取sizeof(Student)个字节,并把它们放入stup所指的缓冲区中return in;ofstream& operator(ofstream& out,Student* stup) /(istream_withassign& in,Student *stup) /运算符重载从标准文件输入int i;coutInput Name,Score1-Score3endl;coutstup-Name;stup-Score3=0;for(i=0;i3;i+)coutScoreistup-Scorei;stup-Score3+=stup-Scorei;return in; /
8、输入流对象in返回的到调用处ostream_withassign& operator(ostream_withassign& out,Student *stup) /运算符重载输出至标准文件 outIDsetw(8)Namesetw(8) Score0setw(10)Score1setw(10) Score2setw(10)Score3endl; outendl;return out; /输处流对象out返回的调用处/*int i;outIDtNamet ;for (i=0;i4;i+)outScoreit;outendl;return out;*/=/node.cpp的实现/=#includ
9、e#includestudent.h/-Node:Node()Stup=NULL;Prev=Next=NULL;Node:Node(Student *stup)/默认的构造函数,完成建立一个空节点Stup=stup;Prev=Next=NULL;Node:Node(Node &node) /复制构造函数的实现OKStup=node.Stup;Prev=node.Prev;Next=node.Next;Node:Node() /释放空间delete Stup; /=/list.cpp的实现/=#include #include #include student.h/=List:List() /构
10、造函数Head=Tail=new Node(); /建立链表头结点 Head-Next=NULL;Head-Prev=NULL;InitList(); /从文件读取数据 在下面调用此函数List:List() /析构函数ClearList(); /在下面调用此函数delete Head; /释放空间void List:InitList() /从文件读取数据 ifstream inStudent;ofstream outStudent;inStudent.open(gx.dat,ios:binary); /打开学生文件if(!inStudent) /文件不存在,建立该文件inStudent.cl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 学生 管理 系统 课程设计 源代码 11
限制150内