/////////////////////////////////////////////////////////////// //头文件及函数声明 #include #include #include #include #include #include using namespace std; class XS; class JS; class stu; class subject ; int menu();//主菜单 int menu1();//学生选课端菜单 int menu2();//管理端菜单 template void ADD(T P);//增加功能函数模板 template void LOOK(T P) ;//查看功能函数模板 template void DELETE(T P);//删除功能函数模板 void xuanke(XS P,char nu[],char na[]);//选课功能函数 void tuixuan(XS P,char nu[],char na[]);//退选课程功能函数 void lookyixuan(XS P,char nu[],char na[]);//查看学生已选课程函数 void dayin(XS P,char nu[],char na[]);//打印学生选课情况函数 void tuichu(); //退出系统函数 void password();//密码检查功能函数 ///////////////////////////////////////////// //定义课程信息类 struct course {char cnum[10]; char cname[20]; char cteacher[20]; float credit; }; struct Course {course kecheng; Course *next; }; class subject {Course *head; //头指针 Course *p; //当前指针 public: subject(){head=p=NULL;} ; void Add(); void Delete(); //删除课程 int Search(char nu[]); //根据课程号查找课程 void ReadFile(); //从文件中读取课程信息 void WriteFile(); //向文件写入课程信息 void Display(); //在屏幕中输出全部课程信息 friend XS; friend JS; friend void xuanke(XS P,char nu[],char na[]); }; void subject::Add() {p=new Course; cout<<" \t 请输入课程号:";cin>>p->kecheng.cnum; if(Search(p->kecheng.cnum)==0) {cout<<" \t 请输入课程名:";cin>>p->kecheng.cname; cout<<" \t 请输入任课教师:";cin>>p->kecheng.cteacher; cout<<" \t 请输入课程学分:";cin>>p->kecheng.credit; p->next=head; //头插入建链表 head=p; cout<<"增加课程操作成功!"<