远程网络教学系统(3)

2019-05-17 10:40

Node *p;

if(head==NULL)//链表为空的情况 return false;

if(head->id==nid) //删除的为第一个结点的情况 {

head=head->next; return true; }

p=head;

while(p->next) //删除的为第二个及以后结点的情况 {

if((p->next)->id==nid) {

p->next=(p->next)->next; return true; }

p=p->next; }

return false; }

void Link::linkClear() //清空链表 {

head=NULL; }

Node* Link::linkFind(int nid) //查找id值为nid的结点,返回该结点的指针 {

Node *p=head; //没找到符合条件的结点的话,返回的指针值为NULL

while(p) {

if(p->id==nid) break; else

p=p->next; }

return p; }

void Link::linkView() //显示链表数据 {

Node *p=head;

cout<

11

\上传时间\

while(p) {

cout<id<<\\\

p=p->next; } }

Node* Link::getHead() {

return head; }

//类S,用于包装Link类及菜单操作 class S {

private:

Link clink;//Link对象成员 bool k;//记录数据是否被修改 public: S();

void SClear(); void SInsert(); void SDelete(); void SFind(); void SModify(); void SView(); void SLoad(); void SSave();

void Exit();//退出程序

void showMenu();//显示菜单 void showMenu1(); void showMenu2(); void showMenu3();

void showTip();//显示操作提示

void doMenu(char n);//执行相应菜单项功能 };

S::S() {

Link();//调用成员对象的构造函数

SLoad();//从文件中读取数据,创建链表 k=false;//设置数据被修改

12

}

void S::SClear() {

clink.linkClear();

cout<<\登陆成功!\}

void S::SInsert() //插入记录 {

Node *p=new Node();

cout<<\请输入课程编号:\ cin>>p->id;

cout<<\请输入课程名称:\ cin>>p->name;

cout<<\请输入上传时间:\ cin>>p->outtime;

if(!clink.linkFind(p->id)) //判断编号是否存在 {

clink.linkInsert(p); k=true; } else

cout<<\课程编号为\的课件已存在,上传失败!\}

void S::SDelete() //删除课程记录 {

int i;

if(clink.linkIsEmpty())//链表为空的情况 cout<<\没有课程记录!\ else {

cout<<\请输入课程编号:\ cin>>i;

if(clink.linkDelete(i)) {

cout<<\成功删除编号为\的课程记录!\ k=true; } else

cout<<\没有找到编号为\的课程!\ } }

13

void S::SFind() //查找某编号的课程记录 {

int n; Node *p;

if(clink.linkIsEmpty())//链表为空的情况 cout<<\没有课程记录!\ else {

cout<<\请输入要查找课程的编号:\ cin>>n;

p=clink.linkFind(n);//获得找到的结点的指针 if(p) //指针值不为NULL时 {

cout<

cout<id<<\\\

}

else//指针值为NULL时

cout<<\没有找到编号为\的课程记录!\ } }

void S::SModify() //修改某编号的课程信息 {

int n; Node *p;

if(clink.linkIsEmpty())//链表为空的情况 cout<<\没有课程记录!\ else {

cout<<\请输入要修改课程的编号:\ cin>>n;

p=clink.linkFind(n);//获得找到的结点的指针 if(p) //指针值不为NULL时 { cout<<\原课程信息为:\ cout<

cout<id<<\\\

cout<<\请输入新的课程信息\ cout<<\请输入课程编号:\

14

cin>>p->id;

cout<<\请输入课程名称:\ cin>>p->name;

cout<<\请上传时间:\ cin>>p->outtime; }

else//指针值为NULL时

cout<<\没有找到编号为\的课程记录!\ } }

void S::SView() //显示所有的记录 {

if(clink.linkIsEmpty())

cout<<\没有课程记录!\ else

clink.linkView(); }

void S::SLoad() //从文件中读入数据,创建链表 {

Node *p; int nid;

ifstream infile(\ if(!infile)

cerr<<\错误:数据文件不能打开!\\n\ else

while(infile>>nid) //读取编号,直到读空 {

p=new Node(); p->id=nid;

infile>>p->name>>p->num>>p->mark>>p->firm>>p->outtime;//读取汽车信息

clink.linkInsert(p); }

infile.close(); //关闭文件 }

void S::SSave() //将数据保存到文件 {

Node *p=clink.getHead(); ofstream outfile(\ if(!outfile)

15


远程网络教学系统(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:315晚会策划

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: