C++问题,酷派大神f1帮忙改下错吧

求c++大神,帮我改正如下程序。。并指明错误原因。。程序如下题如图。。_百度知道
提问者采纳
&&for(i=1;i&k;i++)&{&&for(m=0,j=i;j&k+i;j++)&&{&&&if(&j&&k&)&//取当前位置i&到结尾&k&&&{&&&&cout&&N[j];&&&&}&&&else&&&&//否则从头取&&&&{&&&&cout&&N[m];&&&&m=m+1;&&&&}&&}&&cout&&&}这部分修改一下就好了,已测试通过
崇拜您,不过原本那样为啥不行啊?。。。
if(N[j]!='\0')
//这里意思是判断只要不是结束符,就会cout&& N[j] ; 而j超过k之后的数据是不确定的!!!所有会有问题
cout&&N[j];
提问者评价
其他类似问题
按默认排序
其他1条回答
我遇到这样的问题,我都是多申请几个变量。
您能帮我看看嘛。。
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁跪求大神帮忙改c++程序!_c++吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:145,933贴子:
跪求大神帮忙改c++程序!收藏
一个银行卡管理系统,但有一个小BUG,就是不能保存余额。跪求大神指导!!!!!不胜感激!!!!!
//----------------"Card.h"-----------------#include"vector.h"#include"Record.h"#include&iostream&#include&string&#ifndef CARD_H#define CARD_H//extern vector&Card&class Card{private:char type[10];//卡的种类名//余额vector&Record&public:Card(Card& c){strcpy(type,c.type);balance=c.records=c.}Card& operator=(Card& c){strcpy(type,c.type);balance=c.records=c.return *}double getBalance(){}Card(){}Card(char* type,double init_balance){strcpy(this-&type,type);this-&balance=init_}void display(){cout&&type&&"\t余额:"&&balance&&}void listRecord(){//vector&Record&::cout&&"
时间\t\t收支情况\t余额\n";for(int i=0;i&records.getSize();i++){records[i].show();}}void pay(){do{cout&&"请输入收支金额[正数为收入,负数为支出]:";cin&&if(-payment&balance && payment&0){cout&&"余额不足!"&&}}while(-payment&balance && payment&0);this-&balance+=cout&&Record r(payment,balance);records.push_back(r);cout&&"@1 "&&records.getSize();string s=payment&0?"收入":"支出";payment=payment&0?payment:-cout&&"你成功"&&s&&"了"&&payment&&"元\n";}};#endif
数据库,或者你随便建个文件保存一下不就好了
//----------------"Card.h"-----------------对不起啊,没换行,重发一遍,一共是4个文件#include"vector.h"#include"Record.h"#include&iostream&#include&string&#ifndef CARD_H#define CARD_Hclass Card{
private:char type[10];//卡的种类名//余额
vector&Record&public:Card(Card& c){ strcpy(type,c.type);balance=c.records=c.}Card& operator=(Card& c){strcpy(type,c.type);balance=c.records=c.return *}double getBalance(){}Card(){}Card(char* type,double init_balance){strcpy(this-&type,type);this-&balance=init_}void display(){cout&&type&&"\t余额:"&&balance&&}void listRecord(){ cout&&"
时间\t\t收支情况\t余额\n";for(int i=0;i&records.getSize();i++){records[i].show();}}void pay(){do{cout&&"请输入收支金额[正数为收入,负数为支出]:";cin&&if(-payment&balance && payment&0){cout&&"余额不足!"&&}}while(-payment&balance && payment&0);this-&balance+=cout&&Record r(payment,balance);records.push_back(r);
string s=payment&0?"收入":"支出";payment=payment&0?payment:-cout&&"你成功"&&s&&"了"&&payment&&"元\n";}};#endif
//---------------Record.h-------------#include&iostream&#include&atltime.h&#ifndef RECORD_H#define RECORD_Hclass Record{private:CTpublic:Record(){}Record(double payment,double balance):payment(payment),balance(balance){time=CTime::GetCurrentTime();}void show(){cout&&time.GetYear()&&'/'&&time.GetMonth()&&'/'&&time.GetDay()&&'\t';cout&&(payment&0?"+ ":" ")&&payment&&"\t\t";cout&&balance&&}Record(Record& r){time=r.payment=r.balance=r.}Record& operator=(Record& r){time=r.payment=r.balance=r.return *}};#endif
//-------vector.h--------自己乱写的vector,会不会是他的问题啊??#ifndef VECTOR_H#define VECTOR_Hconst int MAX=15;template &class T&class vector{private:T data[MAX];//vector的大小public:vector(){size=0;}vector(vector& v){for(int i=0;i&i++){data[i]=v.data[i];}size=v.}vector& operator=(vector& v){for(int i=0;i&i++){data[i]=v.data[i];}size=v.return *}int getSize(){}void push_back(T& t){data[size++]=t;}T operator[](int i){return data[i];}};#endif
//----------main.cpp------------#include&iostream&#include"vector.h"#include&string&#include&fstream&#include"Card.h"void chooseCard();vector&Card&int currC//此数据保存要操作的Card的下标,不是序号void showCard(){int i=1;for(int it=0;it&cards.getSize();it++){cout&&'\t'&&i&&'.';cards[it].display();i++;}if(1==i)cout&&"\t[你还未添加银行卡!]\n";}void addCard(){cout&&"输入银行卡名称[如:建设银行]:";char name[10];cin&&char* type=cout&&"输入初始金额:";cin&&Card card(type,balance);cards.push_back(card);cout&&"添加成功!\n";}void delCard(){chooseCard();//功能未实现}void operateCard(){chooseCard();cards[currCard].pay();}void showRecord(){chooseCard();cards[currCard].listRecord();}void chooseCard(){do{cout&&"输入要操作的编号:";cin&&if(index&0 || index&cards.getSize()){cout&&"输入有误!\n";}}while(index&0 || index&cards.getSize());currCard=index-1;}void main(){cout&&"欢迎使用银行卡管理系统!\n";ifstream fin("data.dat",ios::in | ios::binary);if(fin) fin.read( (char*)& cards,sizeof cards);fin.close();do{cout&&"你的银行卡如下:\n";
showCard();cout&&" 1.添加银行卡\n";cout&&" 2.删除银行卡\n";cout&&" 3.存/取款操作\n";cout&&" 4.查看记录\n";cout&&" 5.退出并保存\n";cout&&"请选择:";cin&&switch(index){case 1:addCard();case 2:delCard();case 3:operateCard();case 4:showRecord();case 5:default:cout&&"你的输入有误!\n";}}while(index!=5);ofstream fout("data.dat",ios::out | ios::binary| ios::trunc);fout.write((char*) &cards,sizeof cards);fout.close();}
登录百度帐号我的游戏推荐游戏
后查看最近玩过的游戏
为兴趣而生,贴吧更懂你。或数据结构单链表的实现代码(C++) 求大神帮我改一下,错误的地方标出来。_百度知道
提问者采纳
我晕。。。访问受限,直接贴出来
给我个邮箱吧
收到了吗?
收到了,我帮你改了一下,可以实现了,但是不知道这代码是你自己写的吗,怎么那么多语法错误。。。要是别人改,肯定崩溃了。。。不懂再问
成员函数大部分是我照着书抄的,主函数是自己写的。你能在原来的代码上帮我把错误位置标出来吗。。。。
你自己看看就知道了
提问者评价
谢谢你帮我大忙了
其他类似问题
单链表的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C++程序问题,下面编译没问题,但是运行貌似错误很严重,但我又查不出,求大神指点改正,但改动别太大啊_百度知道
C++程序问题,下面编译没问题,但是运行貌似错误很严重,但我又查不出,求大神指点改正,但改动别太大啊
#include &iostream&#include &fstream&#include &string&#include &list&#include &conio.h&class Sales_Item{ friend class Sales_Spublic: Sales_Item(const string &book=&&,double sales_price=0){}};class Sales_Shop{public: Sales_Shop(list&Sales_Item& slist):sales_list(&slist){} void menu(); void sales_reload(); void sales_add(); void sales_delete(); void sales_search(); void sales_show(); void sales_print();private: list&Sales_Item& *sales_};int main(){ list&Sales_Item& Sales_Shop Shop(slist); while(1) {
Shop.menu();
Shop.sales_reload();
Shop.sales_add();
Shop.sales_delete();
Shop.sales_search();
Shop.sales_show();
Shop.sales_print();
return 0;}void Sales_Shop::sales_reload(){ sales_list-&clear();}void Sales_Shop::sales_add(){ cout&&&请输入商品名称:&&& cin&& cout&&&请输入商品价格:&&& cin&& sales_list-&push_back(Sales_Item(name,price));}void Sales_Shop::sales_delete(){ cout&&&请输入要删除商品的名称:&&& cin&& list&Sales_Item&::iterator it=sales_list-&begin(); while(it!=sales_list-&end()) {
if(name==it-&name)
sales_list-&erase(it);
cout&&&删除成功&&&
++ } cout&&&删除失败,不存在要删除商品的信息&&&}void Sales_Shop::sales_search(){ cout&&&请输入要查找商品的名称:&&& cin&& list&Sales_Item&::iterator it=sales_list-&begin(); while(it!=sales_list-&end()) {
if(name==it-&name)
cout&&&商品已找到&&&
cout&&&商品名称:\t&&&it-&name&&&\t商品价格:\t&&&it-&price&&
++ } cout&&&查找失败,不存在要查找商品的信息&&&}void Sales_Shop::sales_show(){ list&Sales_Item&::iterator it=sales_list-&begin(); while(it!=sales_list-&end()) {
cout&&&商品名称:\t&&&it-&name&&&\t商品价格:\t&&&it-&price&&
++ }}void Sales_Shop::sales_print(){ ofstream outfile(&file.txt&); list&Sales_Item&::iterator it=sales_list-&begin(); while(it!=sales_list-&end()) {
outfile&&&商品名称:\t&&&it-&name&&&\t商品价格:\t&&&it-&害触哆锻馨蹬鹅拳珐哗price&&
++ } outfile.close();}void Sales_Shop::menu(){ cout&&&1.商品重载2.商品增加3.商品删除4.商品查找5.商品显示6.商品打印&&&}
提问者采纳
已经调试OK了,代码如下。主要改动两处:1、把你的类Sales_Item换成结构体,就是个结构体不需要用友元类,多此一举。2、把list&Sales_Item& *sales_list指针去掉,直接用对象// rrrr.cpp : 定义控制台应用程序的入口点。//#include &stdafx.h&#include &iostream&#include &fstream&#include &string&#include &list&#include &conio.h&struct Sales_Item{};class Sales_Shop{public: //Sales_Shop(list&Sales_Item& slist):sales_list(&slist){} void menu(); void sales_reload(); void sales_add(); void sales_delete(); void sales_search(); void sales_show(); void sales_print();private: list&Sales_Item& sales_};int main(){ //list&Sales_Item& Sales_Shop Shop/*(slist)*/; while(1) {
Shop.menu();
Shop.sales_reload();
Shop.sales_add();
Shop.sales_delete();
Shop.sales_search();
Shop.sales_show();
Shop.sales_print();
} } return 0;}void Sales_Shop::sales_reload(){ sales_list.clear(); //sales_list.erase();}void Sales_Shop::sales_add(){ Sales_Item saleI cout&&&请输入商品名称:&&& cin&&saleItem. cout&&&请输入商品价格:&&& cin&&saleItem. sales_list.push_back(saleItem);}void Sales_Shop::sales_delete(){ cout&&&请输入要删除商品的名称:&&& cin&& list&Sales_Item&::iterator it=sales_list.begin(); while(it!=sales_list.end()) {
if(name==it-&name)
sales_list.erase(it);
cout&&&删除成功&&&
++ } cout&&&删除失败,不存在要删除商品的信息&&&}void Sales_Shop::sales_search(){ cout&&&请输入要查找商品的名称:&&& cin&& list&Sales_Item&::iterator it=sales_list.begin(); while(it!=sales_list.end()) {
if(name==it-&name)
cout&&&商品已找到&&&
cout&&&商品名称:\t&&&it-&name&&&\t商品价格:\t&&&it-&price&&
++ } cout&&&查找失败,不存在要查找商品的信息&&&}void Sales_Shop::sales_show(){ list&Sales_Item&::iterator it=sales_list.begin(); while(it!=sales_list.end()) {
cout&&&商品名称:\t&&&it-&name&&&\t商品价格:\t&&&it-&price&&
++ }}void Sales_Shop::sales_print(){ ofstream outfile(&file.txt&); list&Sales_Item&::iterator it=sales_list.begin(); while(it!=sales_list.end()) {
outfile&&&商品名称:\t&&&it-&name&&&\t商品价格:\t&&&it-&price&&
++ } outfile.close();}void Sales_Shop::menu(){ cout&&&1.商品重载2.商品增加3.商品删除4.商品查找5.商品显示6.害触哆锻馨蹬鹅拳珐哗商品打印&&&}
提问者评价
按照你说的,真的成功了,好开心,谢谢你!
其他类似问题
按默认排序
其他3条回答
1、Sales_Item(const string &book=&&,害触哆锻馨蹬鹅拳珐哗double sales_price=0){} //函数参数写的不对 2、void Sales_Shop::sales_reload(){ sales_list-&clear();//清空之前要判断指针是否为空,否则则不清空}
为sales_list这个指针分配内存空间
不能一步步调试吗?
其他类似问题
您可能关注的推广回答者:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁求助 写一个c++程序错误多多请大神帮忙改写_计算机吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:66,523贴子:
求助 写一个c++程序错误多多请大神帮忙改写收藏
class Fraction { public: void print(); void printX(); //输出函数,当分式作为参数时输出:// 1/4应写作(1/4),即要加一个括号Fraction(); Fraction(int n,int d); Fraction(Fraction &other);// 拷贝构造函数virtual ~Fraction();
void Simplify();
// 分式简化运算,如将18/(-4)化为(-9)/2Fraction operator +(Fraction& other); // 分式加法运算Fraction operator -(Fraction& other);Fraction operator *(Fraction &other);Fraction operator /(Fraction &other); bool IsInteger();
// 判断分式是否表示一个整数(即分母是否为1)bool IsNegative();
// 判断分式是否表示一个负数private:};
Fraction::Fraction() {
Fraction(0,1); }
Fraction::~Fraction() { }
Fraction::Fraction(int n, int d) {
numerator=n; denominator=d; Simplify(); }
Fraction Fraction::operator +(Fraction &other) {
F ret.numerator=(this-&numerator*other.denominator+this-&denominator*other.numerator);
ret.denominator=this-&denominator*other. ret.Simplify();
Fraction Fraction::operator *(Fraction &other) {
ret.numerator=this-&numerator*other. ret.denominator=this-&denominator*other. ret.Simplify();
Fraction::Fraction(Fraction &other) {
this-&numerator=other. this-&denominator=other. }
void Fraction::Simplify(){
if(denominator&0) { numerator=- denominator=-
} int a=abs(numerator),b=abs(denominator); while(a!=0&&b!=0) a&b?b-=a:a-=b; int k=((a==0) ? b : a); numerator=numerator/k; denominator=denominator/k; }
Fraction Fraction::operator -(Fraction &other) {
F ret.numerator=(this-&numerator*other.denominator-this-&denominator*other.numerator);
ret.denominator=this-&denominator*other. ret.Simplify();
Fraction Fraction::operator /(Fraction &other) {
ret.numerator=this-&numerator*other. ret.denominator=this-&denominator*other. ret.Simplify();
void Fraction::print() {
if(denominator!=1 && denominator!=-1) cout&&numerator&&"/"&&
else if(denominator==1)
else cout&&-
bool Fraction::IsNegative() {
if (numerator&0)
}bool Fraction::IsInteger() {
if (denominator==1)
void Fraction::printX() {
if(IsInteger()) { if(numerator==1)
if(numerator==-1) {
cout&&"-";
} print();
else { cout&&"("; print(); cout&&")";
class FractionEquation { public: FractionEquation();
FractionEquation(int a,int b,int c,int d,int e,int f); //含6个参数的构造函数 virtual ~FractionEquation(); Fraction Count(); //计算方程的根,结果为“分式” void print(); Ax+B=C
void printAnswer(); //输出方程的根x=根private:
Fraction numA; //参数A的值(分式)Fraction numB; Fraction numC; };
FractionEquation::FractionEquation() { }
FractionEquation::~FractionEquation() { }
FractionEquation::FractionEquation(int a, int b, int c, int d, int e, int f):numA(b,a),numB(d,c),numC(f,e) { }
void FractionEquation::print() {
numA.printX();
if (!(numB.IsNegative()))
//如果B是正数(即d/c&=0)cout&&"x+";
cout&&"x";
numB.print();
cout&&"="; numC.print(); }
Fraction FractionEquation::Count() {
ret=(numC-numB)/numA;
void FractionEquation::printAnswer() {
Fraction ans=Count(); cout&&"x="; ans.print(); }
void DrawWarn() {
cout&&endl && cout&&"\t┏━━━━━━━━━━━━━━━━━━━━━┓"&&cout&&"\t┃
请先输入参数 !
┃"&&cout&&"\t┗━━━━━━━━━━━━━━━━━━━━━┛"&& }
void DrawMenu() {
system("cls"); cout&&endl &&endlcout&&"\t┏━━━━━━━━━━━━━━━━━━━━━┓"&&cout&&"\t┃
请选择操作
┃"&&cout&&"\t┣━━━━━━━━━━━━━━━━━━━━━┫"&& cout&&"\t┃
1.输入参数
┃"&& cout&&"\t┣━━━━━━━━━━━━━━━━━━━━━┫"&& cout&&"\t┃
2.输出结果
┃"&&cout&&"\t┣━━━━━━━━━━━━━━━━━━━━━┫"&& cout&&"\t┃
┃"&&cout&&"\t┗━━━━━━━━━━━━━━━━━━━━━┛"&&} main() {
int a,b,c,d,e,f;
bool beContinue= //表示是否继续,用户选了“退出”,则为false,退出程序bool beInited= //表示方程是否被初始化,若没有被初始化,则不允许“输出结果”。while(beContinue) { DrawMenu(); while(1) { ch=getch();
if(ch&='3' && ch&='0')
DrawMenu();
} switch(ch) { case '1': system("cls"); cout&&endl &&endl &&cout&&"\t方程为:(b/a)x+d/c=f/e"&& cout&&"\t请依次输入[a b c d e f]:"&& a=0; while(a==0)
{ cout&&"\ta="; cin&&a; if(a==0) cout&&"\t分母不能为0!请重新输入!"&&}
}cout&&"\tb="; cin&&b; c=0; while(c==0)
{ cout&&"\tc="; cin&&c; if(c==0) }
cout&&"\td="; cin&&d; e=0; while(e==0){
cout&&"\te="; cin&&e; if(e==0) cout&&"\t分母不能为0!请重新输入!"&& }
cout&&"\tf="; cin&&f; beInited=
case '2': { system("cls");if(beInited){ FractionEquation fa(a,b,c,d,e,f);cout&&endl &&endl &&
cout&&"\t方程为:"&&endl &&"\t "; fa.print(); cout&&
cout&&"\t解得:"&&endl &&"\t ";
fa.printAnswer(); cout&& cout&&"\t"; getch(); } else { DrawWarn(); getch();
case '0': beContinue= cout&&endl &&"\t";
return 1; }
登录百度帐号我的游戏推荐游戏
后查看最近玩过的游戏
为兴趣而生,贴吧更懂你。或}

我要回帖

更多关于 酷派大神f2问题 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信