新手求助

qq93464 2017-12-27 03:02:08
#include<fstream>
#include<iomanip>
#include<iostream>
#include<stdlib.h>
using namespace std;
class tongxunlu
{
private:
string name;
string city;
string phone;
string sex;
tongxunlu *next;

public:
tongxunlu()//定义一个析构函数,用于链表的基本操作.
{
next=NULL;
}
void setname()//输入名字
{
cin>>name;
}
string getname()//得到名字返回值,用于链表的基本操作
{
return name;
}
void setcity()//输入城市
{
cin>>city;
}
string getcity()//得到城市返回值,用于链表的基本操作
{
return city;
}
void setphone()//输入电话
{
cin>>phone;
}
string getphone()//得到电话返回值,用于链表的基本操作
{
return phone;
}
void setsex()//输入性别
{
cin>>sex;
}
string getsex()//得到性别返回值,用于链表的基本操作
{
return sex;
}
void setnext(tongxunlu *txl)
{
next=txl;
}
void baocun()
{
tongxunlu *p;
tongxunlu *head=new tongxunlu();
p=head;
ofstream ofile; //定义输出文件
ofile.open("d:\\myfile.txt"); //作为输出文件打开
ofile<<p->getcity() <<p->getname() <<p->getphone() <<p->getsex() ; //标题写入文件
ofile.close();
//关闭文件
}
tongxunlu* getnext()
{
return next;
}
~tongxunlu(){};
};

int main()
{
int n;
tongxunlu*head=new tongxunlu();//利用自定义的函数创造头结点.
cout<<"请输入相应的数字来设置通讯录\n";
cout<<"0.退出通讯录\n";
cout<<"1.设置通讯录\n";
cout<<"2.增加一个联系人\n";
cout<<"3.删除一个联系人\n";
cout<<"4.查找一个联系人\n";
cout<<"5.修改联系人信息\n";
cout<<"请输入\n";
int num;
cin>>num;
while(num)
{
switch(num)//利用switch case 语句 完成通讯录的基本构架
{
case 1:
{
cout<<"请输入要增加联系人的数目";
int i;
tongxunlu *tongxunlulu[100];//定义一个指针数组,用于循环操作。
cin>>n;
for(i=0;i<n;i++)
{
tongxunlulu[i]=new tongxunlu();//利用new 循环开辟内存。
cout<<"请输入联系人所在城市\n";
tongxunlulu[i]->setcity() ;
cout<<"请输入联系人姓名\n";
tongxunlulu[i]->setname() ;
cout<<"请输入联系人电话号码\n";
tongxunlulu[i]->setphone() ;
cout<<"请输入联系人性别\n";
tongxunlulu[i]->setsex() ;
tongxunlulu[i]->setnext(head->getnext());// n个指针每个指向下一个next
head->setnext(tongxunlulu[i]);
tongxunlulu[i]->baocun() ;//将链表创建起来
}
cout<<"已经增加了"<<n<<"个联系人";
break;
}
case 2:
{
tongxunlu *p=new tongxunlu();//定义一个新的指针同时申请内存,用于完成插入操作.
if(head=NULL)
{
cout<<"通讯录为空,请设置通讯录信息\n";
cout<<"请输入联系人所在城市\n";
p->setcity() ;
cout<<"请输入联系人名字\n";
p->setname() ;
cout<<"请输入联系人手机号码\n";
p->setphone() ;
cout<<"请输入联系人性别\n";
p->setsex() ;
cout<<"已成功增加一个联系人\n";
}
else
{
cout<<"通讯录已存在"<<n<<"个联系人\n";
cout<<"现在开始增加联系人\n";
cout<<"请输入联系人所在城市\n";
p->setcity() ;
cout<<"请输入联系人名字\n";
p->setname() ;
cout<<"请输入联系人手机号码\n";
p->setphone() ;
cout<<"请输入联系人性别\n";
p->setsex() ;
p->setnext(head->getnext());//使插入的这个p指针指向下一个next
head->setnext(p);//使头指针指向p指针完成插入操作
}
break;
}
case 3:
{
tongxunlu*p;
tongxunlu*q;//定义两个指针,一个用于保存当前节点检查的地址,一个用于保存检查过节点的地址
p=head;
cout<<"请选择要删除联系人的信息\n";
cout<<"可通过以下两种种方式删除某联系人信息\n";
cout<<"1.姓名\n";
cout<<"2.电话号码\n";
int xuhao;
cin>>xuhao;
if(xuhao==1)//用输入姓名的方式进行查询
{
if(head->getnext()==NULL)
{
cout<<"通讯录为空无法完成删除操作\n";
}
else
{
cout<<"请输入要查找的联系人姓名\n";
string name;
cin>>name;
while(p->getname()!=name)//输入的name与存储的name进行比较
{ //如果不对,则下移一个节点继续进行比较
q=p;
p=p->getnext() ;
}
if(p->getnext()==NULL)//如果直到移到表尾仍未找到,则说明通讯录无此人
{
cout<<"查无此人,请重新核对相关信息\n";
}
else
{
q->setnext(p->getnext());
p->~tongxunlu();
cout<<"学号为"<<name<<"的学生已经完成删除\n";
}
}
}
if(xuhao==2)//用输入电话的方式进行查询
{
if(head->getnext()==NULL)
{
cout<<"通讯录为空无法完成删除操作\n"<<endl;;
}
else
{
cout<<"要寻找的联系人电话号码\n"<<endl;;
string phone;
cin>>phone;
while(p->getphone()!=phone)
{
q=p;
p=p->getnext();
}
if(p->getnext()==NULL)
{
cout<<"查无此人,请重新核对相关信息\n"<<endl;;
}
else
{
q->setnext(p->getnext());
p->~tongxunlu();
cout<<"学号为"<<phone<<"的学生已经完成删除\n"<<endl;;
}
}
}
}
break;

case 4:
{
tongxunlu*p=head->getnext();//定义一个指针用于保存检查过节点的地址
if(head->getnext()==NULL)//如果头指针未指向下一节点,说明链表为空.
{
cout<<"通讯录为空,无法查找\n";
}
cout<<"请输入需要查找的联系人相关信息\n"<<endl;
cout<<"1.姓名\n"<<endl;
cout<<"2.电话号码\n"<<endl;
int number;
cin>>number;
if(number==1)//通过姓名方式进行查找
{
cout<<"请输入要查找联系人姓名\n";
string name;
cin>>name;
while(p)
{
if(p->getname()==name)//开始检查,如果核对成功则停止,否则继续下移到后一个节点。
break;
p=p->getnext();
}
if(p==NULL)//如果后移到最后一个节点仍未找到姓名,则说明通讯录未储存此人.
cout<<"该联系人不存在\n";
else
{
cout<<"修改姓名\n"<<endl;
p->setname();
cout<<"修改地址\n"<<endl;
p->setcity();
cout<<"修改电话号码\n"<<endl;
p->setphone();
cout<<"修改性别\n"<<endl;
p->setsex() ;
cout<<"修改完毕\n"<<endl;
}
if(number==2)//用核对电话的方式进行查找
{
cout<<"请输入要查找联系人姓名\n";
string phone;
cin>>phone;
while(p)
{
if(p->getphone()==phone)//开始检查,如果核对成功则停止,否则继续下移到后一个节点。
break;
p=p->getnext();
}
if(p==NULL)//如果后移到最后一个节点仍未找到电话号码,则说明通讯录未储存此人.
cout<<"该联系人不存在";
else
{
cout<<"修改姓名\n"<<endl;
p->setname();
cout<<"修改地址\n"<<endl;
p->setcity();
cout<<"修改电话号码\n"<<endl;
p->setphone();
cout<<"修改性别\n"<<endl;
p->setsex() ;
cout<<"修改完毕\n"<<endl;
}

}


}
break;
}
case 5:
{
tongxunlu *p=head->getnext();//定义一个指针用于保存检查过节点的地址.
cout<<"请输入要修改的联系人信息\n";
cout<<"可通过两种方式查找\n";
cout<<"1.姓名\n";
cout<<"2.电话号码\n";
int numm;
cin>>numm;
if(numm==1)//通过姓名方式进行核对
{
cout<<"请输入要查找联系人姓名\n";
string name;
cin>>name;
while(p)
{
if(p->getname()==name)//与存储的名字进行比较
break;
p=p->getnext();
}
if(p==NULL)
cout<<"该联系人不存在\n";
else
{
cout<<"修改姓名\n"<<endl;
p->setname();
cout<<"修改地址\n"<<endl;
p->setcity();
cout<<"修改电话号码\n"<<endl;
p->setphone();
cout<<"修改性别\n"<<endl;
p->setsex() ;
cout<<"修改完毕\n"<<endl;
}
}
if(numm==2)//通过电话进行查询
{
cout<<"请输入要查找联系人电话\n";
string phone;
cin>>phone;
while(p)
{
if(p->getphone()==phone)//与存储的电话进行比较
break;
p=p->getnext();
}
if(p==NULL)//如果指针p指向表尾,则说明,无此人
cout<<"该联系人不存在\n";
}
else
{
cout<<"修改姓名\n"<<endl;
p->setname();
cout<<"修改地址\n"<<endl;
p->setcity();
cout<<"修改电话号码\n"<<endl;
p->setphone();
cout<<"修改性别\n"<<endl;
p->setsex() ;
cout<<"修改完毕\n"<<endl;
break;
}

}


}
cout<<"请输入相应的数字来设置通讯录\n";
cout<<"0.退出通讯录\n";
cout<<"1.设置通讯录\n";
cout<<"2.增加一个联系人\n";
cout<<"3.删除一个联系人\n";
cout<<"4.查找一个联系人\n";
cout<<"5.修改联系人信息\n";
cout<<"请输入\n";
cin>>num;
//每一次完成操作都循环菜单
}
}




就是在case1设置通讯录的时候怎么调用baocun函数将设置的联系人信息保存在文件里








...全文
439 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
StaroForgin 2018-03-08
  • 打赏
  • 举报
回复
代码短点好不
pxw_ps 2018-02-09
  • 打赏
  • 举报
回复
以后有问题就问明确点,别一上来就贴一堆代码,没多少人愿意没头没脑的对着你代码看的,不知道问题在哪就阐述现象,分析原因,讲清楚要实现的效果以及想法,另外,记得结贴给分,不然结帖率低也不好
leetow2006 2018-01-06
  • 打赏
  • 举报
回复
写这么长的代码,应该不是新手了
  • 打赏
  • 举报
回复
你的代码贴的太长无语了,没有几个人愿意看。
赵4老师 2017-12-28
  • 打赏
  • 举报
回复
数据结构对单链表进行数据排序 http://bbs.csdn.net/topics/392201633
新手求助RBF神经网络数据预测问题-数据.xls 本程序用前六个数据预测下一数据,前200组数据用于训练,用后80组数据进行预测,可预测结果为一个值,请大家指教: 源程序为: clc clear close all %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %每五个数据整合, x=xlsread; n=length m=5; sum=0; j=1; x1=zeros); for k=1:m:n     for i=k:         sum=sum x;     end     x1=sum;     j=j 1;     sum=0; end j t=1:; figure plot;%,'d-m' hold on; grid on title; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %归一化处理 [x2,mint,maxt] = premnmx figure plot;%,'d-m' hold on; grid on title; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %输入数据 for k=1:1:200     p_train=[x2 x2 x2 x2 x2 x2]; 5*6     t_train=x2; 5*1 end     p_train=p_train'; %6*195     t_train=t_train'; %1*195 for z=1:1:81     p_test=[x2 x2 x2 x2 x2 x2];     t_test=x2; end      p_test=p_test';      t_test=t_test'; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %建立 RBF 网络                      goal = 0.0001;                     % 训练误差的平方和 spread = 0.01;                     % 此值越大,需要的神经元就越少 MN = size;              % 最大神经元数 DF = 1;                            % 显示间隔 net = newrb; data_out=sim p_mse=mse figure plot hold on plot title; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %预测并作图 y=sim y_mse=mse figure plot; hold on; plot title; legend;
新手求助RBF神经网络数据预测问题-历史开奖数据.xlsx 本程序用前六个数据预测下一数据,前200组数据用于训练,用后80组数据进行预测,可预测结果为一个值,请大家指教: 源程序为: clc clear close all %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %每五个数据整合, x=xlsread; n=length m=5; sum=0; j=1; x1=zeros); for k=1:m:n     for i=k:         sum=sum x;     end     x1=sum;     j=j 1;     sum=0; end j t=1:; figure plot;%,'d-m' hold on; grid on title; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %归一化处理 [x2,mint,maxt] = premnmx figure plot;%,'d-m' hold on; grid on title; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %输入数据 for k=1:1:200     p_train=[x2 x2 x2 x2 x2 x2]; 5*6     t_train=x2; 5*1 end     p_train=p_train'; %6*195     t_train=t_train'; %1*195 for z=1:1:81     p_test=[x2 x2 x2 x2 x2 x2];     t_test=x2; end      p_test=p_test';      t_test=t_test'; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %建立 RBF 网络                      goal = 0.0001;                     % 训练误差的平方和 spread = 0.01;                     % 此值越大,需要的神经元就越少 MN = size;              % 最大神经元数 DF = 1;                            % 显示间隔 net = newrb; data_out=sim p_mse=mse figure plot hold on plot title; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %预测并作图 y=sim y_mse=mse figure plot; hold on; plot title; legend;

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧