| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3687 人关注过本帖
标题:求助 成绩查询代码
只看楼主 加入收藏
ID不见了
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2016-5-10
结帖率:83.33%
收藏
已结贴  问题点数:20 回复次数:3 
求助 成绩查询代码
这是成绩管理系统的按学号成绩查询板块,为什么第二次查询的时候显示不出来信息?
程序代码:
void lookup_num()           //按学号查询
{
    char a;
    ifstream ist(filename.c_str());
    if(!ist)
    {
        cout<<"读取信息失败"<<endl;
        exit (0);
    }
    string line;
    string num1;
    string num;
    string oo="学号:";
    while(1)
    {
        cout<<"请输入要查询学生的学号:";
        cin>>num1;
        num=oo+num1;
        while(!ist.eof())
        {
            getline(ist,line);
            if(strstr(line.c_str(),num.c_str())!=NULL)
            {
                cout<<"该学生信息为:"<<line<<endl;
            }
        }
        cout<<"是否继续  1.继续查找    2.返回主菜单"<<endl;
        cin>>a;
        system("cls");
        if(a=='1') continue;
        if(a=='2') break;
    }
    a='0';
    ist.close();
}

搜索更多相关主题的帖子: 成绩查询 管理系统 信息 
2016-06-24 17:36
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:20 
你可以每次都打印出num1的值,看看对不对?

btw:
while(!ist.eof()) 总能看到这种幼稚的错误,难道是书上教的?我怀疑是,否则不可能这么多人犯同样的错
2016-06-24 18:42
ID不见了
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2016-5-10
收藏
得分:0 
回复 2楼 rjsp
num1打印是没有错的,不知道为什么会这样。。。   还有while(!ist.eof())为什么错了。。。
2016-06-26 12:47
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
我只改了一下你已有的代码
逻辑上的问题,比如输入1,找到“学号:123”,就是你的问题了

程序代码:
#include <iostream>
#include <string>
#include <fstream>
using namespace std;

int main( void )
{
    const string filename = "a.txt";

    ifstream ist(filename.c_str());
    if( !ist )
    {
        cerr << "读取信息失败\n";
        return 1;
    }

    for( string num; cout<<"请输入要查询学生的学号:", cin>>num; )
    {
        ist.clear();
        ist.seekg( 0 );

        for( string line; getline(ist,line); )
        {
            if( line.find("学号:"+num) != string::npos )
                cout << "该学生信息为:" << line << endl;
        }

        cout << "是否继续  1.继续查找    2.返回主菜单" << endl;
        char yn;
        cin >> yn;
        if( yn != '1' )
            break;
    }

    return 0;
}

2016-06-27 08:21
快速回复:求助 成绩查询代码
数据加载中...
 
   



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

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