C++作业,很简单,给个200分!

[复制链接]
查看11 | 回复0 | 2009-12-14 15:00:59 | 显示全部楼层 |阅读模式
//class CNode.h#ifndef __CNODE_H__#define __CNODE_H__#include using namespace std;struct stData
//出生年月结构{ int m_nYear; int m_nMonth; int m_nDay;};struct stResult
//五门课成绩结构{ double m_dSubject_1;
//自己改成绩的名称 double m_dSubject_2; double m_dSubject_3; double m_dSubject_4; double m_dSubject_5;};struct stStudent//声明学生信息的结构{ string m_strNumber;
//学生学号 string m_strName;
//姓名 char m_chSex;
//性别 struct stData m_stData;
//出生年月 string m_strAppearance;
//政治面貌 struct stResult m_stResult;
//五门课成绩};typedef class CNode{ private:struct stStudent m_stStudent;
CNode* m_Next; public:CNode();
//构造函数~CNode();
//析构函数void SetNodeData();
//设置结点内容的函数成员stStudent GetNodeData();
//获取结点内容的函数成员void SetNodeNext(CNode* _Next);
//设置结点Next指针的函数成员void ShowNodeData();
//输出结点内容的函数成员CNode* GetNodeNext();
//获取结点Next指针的函数成员}LinkNode;#endif//class CLinkList#ifndef __CLINKLIST_H__#define __CLINKLIST_H__ #include "CNode.h"typedef class CLinkList{ private:LinkNode* m_Head;
//链表的头指针LinkNode m_Node;
//链表的头结点 public:CLinkList();
//构造函数~CLinkList();
//析构函数void CreateList();
//初始化链表的函数成员LinkNode* GetListNode(int _nIndex);//按位置查找指定位结点的成员函数void InsertList(int _nIndex);
//插入结点的成员函数void DeleteList(int _nIndex);
//删除某一结点的成员函数LinkNode* GetHeadList();
//获取头指针的成员函数void SetListData(int _nIndex); //设置链表中某一结点的值的成员函数 void ShowListData(int _nIndex);//这个是现实链表中某一结点值的函数成员void DestroyList(int _nIndex);
//销毁某一位置以后链表的成员函数void ShowList();
//显示链表的成员函数}LinkList;#endif//class CLinkList#include "CLinkList.h"#include "CNode.h"CLinkList::CLinkList()
{ cout SetNodeData();
//设置链表中结点的内容
cout > nTemp;if ('0' == nTemp)
{ break;}pNode->SetNodeNext(pTemp);
//让链尾的Next指向新建的结点 pNode = pTemp;
//将结尾元素向后移 }cout GetNodeNext();
//定义一个临时的结点指针,初始化指向头结点 int Temp = 0;
//定义一个临时的变量,用来标记已检查结点的个数的 if(-1 == _nIndex)
//返回头结点(即头指针) {return m_Head; } if(_nIndex GetNodeNext();
//临时结点向后移动++Temp; }return pNode;
//没找到结点就返回NULL}void CLinkList::ShowListData(int _nIndex);void CLinkList::InsertList(int _nIndex)
//插入结点的函数成员{cout SetNodeData();
//设置插入结点的内容pTemp->SetNodeNext(pNode->GetNodeNext());pNode->SetNodeNext(pTemp); }void CLinkList::DeleteList(int _nIndex){ cout GetNodeNext();
//把pTemp指向要删除的结点 pNode->SetNodeNext(pTemp->GetNodeNext());//把pNode指向要删除的结点的后一个结点 delete pTemp;
//删除结点 pTemp = NULL; }LinkNode* CLinkList::GetHeadList(){ cout SetNodeData();
//修改内容}void CLinkList::ShowListData(int _nIndex){ cout ShowNodeData();
//返回想要得到位置的结点内容}void CLinkList::DestroyList(int _nIndex)
{ cout GetNodeNext(); //定义一个结点指针,指向要销毁位置的结点while(pTemp->GetNodeNext() != NULL)
//销毁动作的结束条件或初始条件 {pTemp->SetNodeNext(pNode->GetNodeNext()); //把需要销毁的位置的前结点的Next指向销毁位置的下一个结点delete pNode;
//销毁结点pNode = pTemp->GetNodeNext();
//把pNode重新指向要销毁位置的结点
}} void CLinkList::ShowList(){ cout GetNodeNext();
//定义一个结点类指针,指向第0位的结点 if(NULL == pTemp) {cout ShowNodeData();++nTemp;if(0 == nTemp % 5 && nTemp != 0)
//控制每行只能输出5个结点的内容{ cout GetNodeNext(); }}//class CNode#include "CNode.h"CNode::CNode()
//构造函数 { //m_stStudent = {0};
m_Next = NULL;}CNode::~CNode()
//析构函数{}void CNode::SetNodeData(){char* pNumber = new char[30];
//用来接收字符串的临时变量 char* pName = new char[30]; char* pAppearance = new char[30];cout >pNumber; m_stStudent.m_strNumber = pNumber; cout > pName; m_stStudent.m_strName = pName; cout > m_stStudent.m_chSex;cout > m_stStudent.m_stData.m_nYear; cout > m_stStudent.m_stData.m_nMonth; cout > m_stStudent.m_stData.m_nDay; cout > pAppearance; m_stStudent.m_strAppearance = pAppearance; cout > m_stStudent.m_stResult.m_dSubject_1; cout > m_stStudent.m_stResult.m_dSubject_2; cout > m_stStudent.m_stResult.m_dSubject_3; cout > m_stStudent.m_stResult.m_dSubject_4; cout > m_stStudent.m_stResult.m_dSubject_5; delete []pNumber;
//释放内存 pNumber = NULL;
//指针置空 delete []pName;
//释放内存 pName = NULL;delete []pAppearance;
//释放内存 pAppearance = NULL; }stStudent CNode::GetNodeData()//返回结点内容(即学生信息){ return m_stStudent;}void CNode::SetNodeNext(CNode* _Next){ m_Next = _Next;}void CNode::ShowNodeData(){ const char* pNumber = m_stStudent.m_strNumber.c_str();
//用来接收字符串的临时变量 const char* pName = m_stStudent.m_strNumber.c_str(); const char* pAppearance = m_stStudent.m_strAppearance.c_str(); cout CreateList();
//初始化链表的函数成员 pList->ShowList(); cout GetListNode(3);
//按位置查找指定位结点的成员函数的测试 if(pNode) {cout InsertList(0);
//插入结点的成员函数的测试 pList->ShowList(); cout DeleteList(0);
//删除某一结点的成员函数的测试 pList->ShowList(); cout GetHeadList();
//获取头指针的成员函数的测试
if(pNode) {cout SetListData(3);
//设置链表中某一结点的值的成员函数的测试 pList->ShowList(); cout ShowListData(3) ="; pList->ShowListData(3);
//获取链中某一结点值的成员函数的测试 cout DestroyList(3);
//销毁第3位置以后链表的成员函数的测试 pList->ShowList(); cout DestroyList(0);
//销毁第0位置以后链表的成员函数的测试 pList->ShowList(); cout << endl; delete pList;
//释放内存 pList = NULL;
//指针置空}似乎好多人都要这个程序,,。。。你自己改下里面的变量的名字吧 , 发在这里, 就算我改过来, 一样会有人copy的,,但求采纳,不求加分,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行