| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 665 人关注过本帖
标题:逻辑错误,不知道该怎么改,求大侠帮帮忙
只看楼主 加入收藏
a632034079
Rank: 2
等 级:论坛游民
帖 子:115
专家分:34
注 册:2009-10-3
结帖率:86.11%
收藏
已结贴  问题点数:20 回复次数:4 
逻辑错误,不知道该怎么改,求大侠帮帮忙
这个程序有逻辑错误,我想大概出在string上,但是我却不知道该怎么改………………请高手帮帮忙………………程序有什么不好的地方或者哪里逻辑不对你请明言,谢谢了!!!



#include <iostream>
#include <stdio.h>
#include <string.h>
#include "student.h"

using namespace std;

void student::SetStuInfo(string No,string Name,int Age)
{
    stuNo=No;
    stuName=Name;
    stuAge=Age;
}

void student::DisplayAll()
{
    printf("XH : %s\n",stuNo);
    printf("XM : %s\n",stuName);
    cout << "NL : " << stuAge << endl;
}

int main()
{
    student a;
    a.SetStuInfo("5","liuce",21);
    a.DisplayAll();
    system("pause");
    return 0;
}
---------------------------头文件-------------------------------
#include <iostream>
#include <string.h>
using namespace std;

class student
{
private:
    string stuNo;
    string stuName;
    int stuAge;
public:
    void SetStuInfo(string No,string Name,int Age);
    void DisplayAll();
};
搜索更多相关主题的帖子: 逻辑 
2010-08-04 08:55
a632034079
Rank: 2
等 级:论坛游民
帖 子:115
专家分:34
注 册:2009-10-3
收藏
得分:0 
斑竹在吗???
2010-08-04 09:09
hzh512
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:234
专家分:1333
注 册:2009-6-5
收藏
得分:20 
头文件重复包含。
这样建工程:
//---------------------------student.h-------------------------------
#include <iostream>
#include <string.h>
using namespace std;

class student
{
private:
    string stuNo;
    string stuName;
    int stuAge;
public:
    void SetStuInfo(string No,string Name,int Age);
    void DisplayAll();
};


// -------------------student.cpp---------
#include "student.h"

using namespace std;

void student::SetStuInfo(string No,string Name,int Age)
{
    stuNo=No;
    stuName=Name;
    stuAge=Age;
}

void student::DisplayAll()
{
    printf("XH : %s\n",stuNo);
    printf("XM : %s\n",stuName);
    cout << "NL : " << stuAge << endl;
}

// ---------------main.cpp-----
#include "student.h"

int main()
{
    student a;
    a.SetStuInfo("5","liuce",21);
    a.DisplayAll();
    system("pause");
    return 0;
}

编程=用几种语言在某个或几个平台上通过抽象思维运用一系列算法来解决现实中问题的手段
2010-08-04 10:11
a632034079
Rank: 2
等 级:论坛游民
帖 子:115
专家分:34
注 册:2009-10-3
收藏
得分:0 
以下是引用hzh512在2010-8-4 10:11:07的发言:

头文件重复包含。
这样建工程:
//---------------------------student.h-------------------------------
#include <iostream>
#include <string.h>
using namespace std;

class student
{
private:
    string stuNo;
    string stuName;
    int stuAge;
public:
    void SetStuInfo(string No,string Name,int Age);
    void DisplayAll();
};


// -------------------student.cpp---------
#include "student.h"

using namespace std;

void student::SetStuInfo(string No,string Name,int Age)
{
    stuNo=No;
    stuName=Name;
    stuAge=Age;
}

void student::DisplayAll()
{
    printf("XH : %s\n",stuNo);
    printf("XM : %s\n",stuName);
    cout << "NL : " << stuAge << endl;
}

// ---------------main.cpp-----
#include "student.h"

int main()
{
    student a;
    a.SetStuInfo("5","liuce",21);
    a.DisplayAll();
    system("pause");
    return 0;
}



xie  xie  l
2010-08-05 07:45
hzh512
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:234
专家分:1333
注 册:2009-6-5
收藏
得分:0 
再补充一下

为了避免同一个文件被include多次

1   #ifndef方式
2   #pragma once方式

在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。
    方式一:
    #ifndef __SOMEFILE_H__
    #define __SOMEFILE_H__
    ... ... // 一些声明语句
    #endif
    方式二:
    #pragma once
    ... ... // 一些声明语句

    #ifndef的方式依赖于宏名字不能冲突,这不光可以保证同一个文件不会被包含多次,也能保证内容完全相同的两个文件不会被不小心同时包含。当然,缺点就是如果不同头文件的宏名不小心“撞车”,可能就会导致头文件明明存在,编译器却硬说找不到声明的状况

    #pragma once则由编译器提供保证:同一个文件不会被包含多次。注意这里所说的“同一个文件”是指物理上的一个文件,而不是指内容相同的两个文件。带来的好处是,你不必再费劲想个宏名了,当然也就不会出现宏名碰撞引发的奇怪问题。对应的缺点就是如果某个头文件有多份拷贝,本方法不能保证他们不被重复包含。当然,相比宏名碰撞引发的“找不到声明”的问题,重复包含更容易被发现并修正。

   方式一由语言支持所以移植性好,方式二 可以避免名字冲突

编程=用几种语言在某个或几个平台上通过抽象思维运用一系列算法来解决现实中问题的手段
2010-08-07 15:57
快速回复:逻辑错误,不知道该怎么改,求大侠帮帮忙
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015028 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved