网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
01月28日漏签0天
数据结构吧 关注:104,554贴子:883,612
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 4回复贴,共1页
<<返回数据结构吧
>0< 加载中...

希望大家能帮我看看这个程序……万分感谢……

  • 只看楼主
  • 收藏

  • 回复
  • 小道_小妖
  • 单链表
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include<iostream.h>
#include<string.h>
#include<stdlib.h>
#define OK 1;
#define ERROR 0;
/////////////////////////////////////////////////
typedef struct
{
char StdId[10];
char Name[10];
}STD_DATA;
typedef struct
{
STD_DATA data;
struct STD_NODE *pNext;
}STD_NODE;
typedef struct
{
char ClassId[5];
char ClassName[10];
}CLASS_DATA;
typedef struct
{
CLASS_DATA data;
struct CLASS_NODE *pNext;
STD_NODE *pStdHead;
}CLASS_NODE,*PCLASS_NODE;
///////////////////////////////////////////////////////
CLASS_NODE *NewClassNode(void)
{
CLASS_NODE *_pClassNode;
_pClassNode=(CLASS_NODE *)malloc(sizeof(CLASS_NODE));
ClassNodeInit(_pClassNode);
return _pClassNode;
}
void ClassNodeInit(CLASS_NODE *_pClassNode)
{
strcpy(_pClassNode->data.ClassId,"");
    strcpy(_pClassNode->data.ClassName,"");
    _pClassNode->pStdHead=NULL;
_pClassNode->pNext=NULL;
}
void ClassNodeCopy(CLASS_NODE *_pTargetClassNode,CLASS_NODE *_pSourceClassNode)
{
strcpy(_pTargetClassNode->data.ClassId,_pSourceClassNode->data.ClassId);
    strcpy(_pTargetClassNode->data.ClassName,_pSourceClassNode->data.ClassName);
}
int ClassNodeInsertByNode(PCLASS_NODE *_pClassLinkHead,CLASS_NODE *_pNewClassNode)
{
CLASS_NODE *_p1,*_p2,*_pMyClassNode;
_p1=(*_pClassLinkHead);
    _pNewClassNode=NewClassNode();
ClassNodeCopy(_pMyClassNode,_pNewClassNode);
if((*_pClassLinkHead)==NULL)
{
(*_pClassLinkHead)=_pMyClassNode;
}
else
{
while((strcmp(_pMyClassNode->data.ClassId,_p1->data.ClassId)>0)&&(_p1->pNext!=NULL))
{
_p2=_p1;
_p1=_p1->pNext;
}
if(strcmp(_pMyClassNode->data.ClassId,_p1->data.ClassId)<0)
{
if((*_pClassLinkHead)==_p1)
{
(*_pClassLinkHead)=_pMyClassNode;
_pMyClassNode->pNext=_p1;
}
else
{
_p2->pNext=_pMyClassNode;
_pMyClassNode->pNext=_p1;
}
}
else if(strcmp(_pMyClassNode->data.ClassId,_p1->data.ClassId)==0)
{
free(_pMyClassNode);
return 0;
}
else if(_p1->pNext==NULL)
{
_p1->pNext=_pMyClassNode;
}
}
return 1;
}
int ClassNodeAppend(PCLASS_NODE *_pClassLinkHead,CLASS_NODE *_pNewClassNode)
{
CLASS_NODE *_p1,*_p2,*_pMyClassNode;
_p1=(*pClassLinkHead);
_pMyClassNode=NewClassNode();
ClassNodeCopy(_pMyClassNode,_pNewClassNode);
if((*_pClassLinkHead)==NULL)
{
(*_pClassLinkHead)=_pMyClassNode;



  • 小道_小妖
  • 单链表
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
}
else
{
while(_p1->pNext!=NULL)
{
if(strcmp(_pMyClassNode->data.ClassId,_p1->data.ClassId)==0)
{
free(_pMyClassNode);
return 0;
}
else
{
_p2=_p1;
_p1=_p1->pNext;
}
}
_p2->pNext=_pMyClassNode;
_pMyClassNode->pNext=_p1;
return 1;
}
}
int ClassNodeDelete(PCLASS_NODE *_pClassLinnkHead,char *_cClassId)
{
CLASS_NODE *_p1,*_p2;
_p1=(*_pClassLinkHead);
_p2=_p1;
while((strcmp(_p1->data.ClassId,_cClassId)!=0)&&(_p1!=NULL)
{
_p2=_p1;
_p1=_p1->pNext;
}
if(_p1!=NULL)
{
_p2->pNext=_p1->pNext;
StdLinkDelete(_p1->pStdHead);
if(_p1==(*_pClassLinkHead))
{
(*_pClassLinkHead)=_p1->pNext;
}
free(_p1);
return OK;
}
else   return ERROR;
}
void ClassLinkDelete(PCLASS_NODE *_pClassLinkHead)
{
CLASS_NODE *_p1,*_p2;
_p1=(*_pClassLinkHead);
while(_p1!=NULL)
{
_p2=_p1->pNext;
StdLinkDelete(_p1->pStdHead);
free(_p1);
_p1=_p2;
}
(*_pClassLinkHead)=NULL;
}
CLASS_NODE * GetClassNodeByClassId(PCLASS_NODE *_pClassLinkHead,char *_cClassId)
{
CLASS_NODE *_p1;
_p1=(*_pClassLinkHead);
while(_p1!==NULL)
{
if(strcmp(_p1->data.ClassId,_cClassId)==0)
{
break;
}
_p1=_p1->pNext;
}
return _p1;
}
////////////////////////////////////////////////////////////////////////////
STD_NODE *NewStdNode(void)
{
STD_NODE *_pStdNode;
_pStdNode=(STD_NODE *)malloc(sizeof(STD_NODE));
StdNodeInit(_pStdNode);
return _pStdNode;
}
void StdNodeInit(STD_NODE *_pStdNode)
{
strcpy(_pStdNode->data.StdId,"");
strcpy(_pStdNode->data.Name,"");
_pStdNode->pNext=NULL;
}
void StdNodeCopy(STD_NODE *_pTargetStNode,STD_NODE _SourceStdNode)
{
strcpy(_pTargetStNode->data.StdId,_SourceStdNode.data.StdId);
strcpy(_pTargetStNode->data.Name,_SourceStdNode.data.Name);
}
int StdNodeInsertByNode(CLASS_NODE *_pClassNode,STD_NODE _NewStdNode)
{
STD_NODE *_p1,*_p2,*_pMyStdNode;
_p1=_pClassNode->pStdHead;
_pMyStdNode=NewStdNode();
StdNodeCopy(_pMyStdNode,_NewStdNode);
if(_pClassNode->pStdHead==NULL)
{
_pClassNode->pStdHead=_pMyStdNode;
}
else
{
while((strcmp(_pMyStdNode->data.StdId,_p1->data.StdId)>0)
{
_p2=_p1;
_p1=_p1->pNext;
}
if((strcmp(_pMyStdNode->data.StdId,_p1->data.StdId)<0)
{
if(_pClassNode->pStdHead==_p1)
{
_pClassNode->pStdHead=_pMyStdNode;
_pMyStdNode->pNext=_p1;
}
else
{
_p2->pNext=_pMyStdNode;



2026-01-28 06:09:06
广告
不感兴趣
开通SVIP免广告
  • 小道_小妖
  • 单链表
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
_pMyStdNode->pNext=_p1;
}
}
else if((strcmp(_pMyStdNode->data.StdId,_p1->data.StdId)==0)
{
free(_pMyStdNode);
return 0;
}
else if(_p1->pNext==NULL)
{
_p1->pNext=_pMyStdNode;
}
}
return 1;
}
int StdNodeInsertByClassId(CLASS_NODE *_pClassLinkHead,char *_cClassId,STD_NODE _StdNode)
{
CLASS_NODE *_p1;
_p1=GetClassNodeByClassId(_pClassLinkHead,_cClassId);
if(_p1!=NULL)
{
return StdNodeInsertByNode(_p1,_StdNode):
}
else
{
return ERROR;
}
}
int StdNodeUpdateByNode(CLASS_NODE *_pClassNode,STD_NODE _NewStdNode)
{
STD_NODE *_p1,*_p2;
_p1=_pClassNode->pStdHead;
while((strcmp(_NewStdNode.data.StdId,_p1->data.StdId)>0 && (_p1->pNext!=NULL)
{
_p2=_p1;
_p1=_p1->pNext;
}
if((strcmp(_NewStdNode.data.StdId,_p1->data.StdId)==0)
    {
StdNodeCopy(_p1,_NewStdNode);
return 1;
}
else
{
return 0;
}
}
int StdNodeUpdateByClassId(CLASS_NODE *_pClassLinkHead,char *_cClassId,STD_NODE _StdNOde)
{
CLASS_NODE *_p1;
_p1=GetClassNodeByClassId(_pClassLinkHead,_cClassId);
if(_p1!=NULL)
{
return StdNodeUpdateByNode(_p1,_StdNode):
}
else
{
return ERROR;
}
}
int StdNodeDelete(CLASS_NODE *_pClassLinkHead,char *_cClassId,char *_cStdId)
{
STD_NODE *_pStdNode1,*_pStdNode2;
CLASS_NODE *_pClassNode;
if(_cClassId[0]==NULL||_cCstdId[0]==NULL)
{
return ERROR;
}
_pClassNode=GetClassNodeByClassId(_pClassLinkHead,_cClassId);
_pStdNode1=GetClassNodeByClassId(_pClassNode,_cStdId);
if(_pStdNode1!=NULL)
{
SorceLinkDelete(_pStdNode->_pSorceHead);
if(_pStdNode1==_pClassNode->pStdHead)
{
_pClassNode->pStdHead=_pStdNode1->pNext;
}
else
{
_pStdNode2=_pClassNode->pStdHead;
while(_pStdNode2->pNext!=_pStdNode1)
{
_pstdNode2=_pStdNode2->pNext;
}
_pStdNode2->pNext=_pStdNode1->pNext;
}
free(_pStdNode1);
return OK;
}
else  return ERROR;
}
void StdLinkDelete(STD_NODE *_pStdHead)
{
STD_NODE *_p1,*_p2;
_p1=_pStdHead;
while(_p1!=NULL)
{
_p2=_p1->pNext;
free(_p1);
_p1=_p2;
}
}
STD_NODE *GetStdNodeByClassId_StdId(CLASS_NODE *_pClassLinkHead.char *_cClassId,char *_StdId)
{
STD_NODE *_p1;
CLASS_NODE *_pClassNode;
if(_cClassId[0]==NULL||_cStdId[0]==NULL)
{
return ERROR;
}
_pClassNode=GetClassNodeByClassId(_pClassLinkHead,_cClassId);
return GetStdNodeByStdId(_pClassNode,_cStdId);
}
STD_NODE *GetStdByStdId(CLASS_NODE *_pClassNodeCurrent,char *_cStdId)
{
STD_NODE *_p1;
if(_pClassNodeCurrent==NULL)
{
return NULL;
}
_p1=_pClassNodeCurrent->pStdHead;
while(_p1!=NULL)
{
if(strcmp(_p1->data.StdId,_cStdId)==0)
{
break;
}
_p1=_p1->pNext;
}
return _p1;
}
程序很长……大致的内容是一个学生管理系统,用链表的方式来编写的,是从一本书上看来的代码,书名是《数据结构实践指导教程》。我自己看程序的时候,觉得逻辑上还都比较正确,但是在VC6.0的环境下编译出了很多错。都是说STD_NODE的定义问题,和一些数据项调用时候的问题。但是我在打这段代码的时候,系统遇到->和.这样的符号都会自动给出提示,我觉得这就不应该有问题,但是还是出现了很多错……太郁闷了……
希望大家都能帮我看看问题出在哪里……真的太感谢了……是课设……要交……很急……我又不想随便在网上找个代码胡弄老师,所以真的希望大家能帮我看看……


快试试吧,
可以对自己使用挽尊卡咯~
◆
◆
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你完全是偷懒,让我们干苦力活啊
你自己认真检查哪里错了不就完了,
我觉得会回答你这种问题的都是闲得蛋疼,
要不然脑子秀逗了~


  • ohoh0082
  • 单链表
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
拿去悬赏解决啊


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 4回复贴,共1页
<<返回数据结构吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示