游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2280|回复: 4

c++新手请大家帮忙看个程序,好人一生平安

[复制链接]

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2009-6-17 08:48:00 | 显示全部楼层 |阅读模式
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
extern int n=0;
class Student
{
public:
Student() {}
Student(string na,int n):name(na),num(n {}  //有参的构造函数
string name;
int num;

};

//********************新建学生信息***************************//
void Newlist()
{
Student stu[20];  
cout < <"请输入学生人数";
cin>>n;
ofstream outfile("stu.txt",ios:ut); //定义文件流对象,打开磁盘文件"stu.txt"
ofstream outfile2("num.txt",ios::out);
if(! outfile)                          //如果打开失败,outfile返回0值
{
cerr < <"打开失败" < <endl;
abort();
}
cout < <"请按照姓名,学号来输入信息" < <endl;
for(int i=0;i <n;i++)
{
cin>>stu.name>>stu.num;
outfile < <stu.name < <' ' < <stu.num < <endl;//向磁盘文件输出数据

        }
outfile2 < <n;
outfile.close();  //关闭磁盘文件
outfile2.close();
cout < <"学生信息已经建立";

}
//********************增加学生信息***************************//
void InsertList()
{
    Student stu1;
int m;
ofstream outfile("stu.txt",ios::app);
fstream outfile2("num.txt",ios::in|ios::out);
if(! outfile)
{
cerr < <"打开失败" < <endl;
abort();
}
cout < <"请依次输入学生的姓名,学号" < <endl;
cin>>stu1.name>>stu1.num;
outfile < <stu1.name < <' ' < <stu1.num < <endl;
outfile2>>m;                                  //疑惑行!!!!!!!!!!!!!!!
m=1+m;                                      //疑惑行!!!!!!!!!!!!!!!
outfile2 < <m;                                //疑惑行!!!!!!!!!!!!!!!
outfile.close();
outfile2.close();
cout < <"添加成功" < <endl;
}

void main()
{
Student stu[20];                        
int c;
do
{
cout < <"\n-------------------------------成绩管理系统-----------------------------------\n\n" < <endl;
cout < <"0 新建学生信息" < <endl;
cout < <"-------------------------------------------------" < <endl;
cout < <" 1增加学生信息  " < <endl;
cout < <" 请输入您的选择(0--1):" < <endl;
cin>>c;
switch(c)
{
case 0:Newlist();break;              //新建学生信息
case 1:InsertList();break;            //增加学生信息
}
}while(c!=0&&c!=1);
cout < <"谢谢使用!" < <endl;
}

我想做一个学生信息程序,这些代码是其中的一部分,然后我想把创建的学生信息放到“stu.txt”中,然后再把"stu.txt"中已经统计的人数放入"num.txt"中。。。。但是当我运行“增加学生信息”代码时, “num.txt”中的数不跟着增长,求大神们帮我看看程序。。。我就是想在“//疑惑行!!!!!!!!!!!!!!!”中实现添加,但是总不成功。。。帮忙看看

0

主题

33

帖子

37

积分

注册会员

Rank: 2

积分
37
发表于 2009-6-17 10:45:00 | 显示全部楼层

Re:c++新手请大家帮忙看个程序,好人一生平安

参考下面的吧,是读写同时进行的问题。

http://www.devdiv.net/thread-1169-1-1.html
http://topic.csdn.net/u/20080108/02/9ac48d60-6065-462a-b339-bcddd87c2048.html?seed=1382185062

0

主题

33

帖子

37

积分

注册会员

Rank: 2

积分
37
发表于 2009-6-17 10:58:00 | 显示全部楼层

Re:c++新手请大家帮忙看个程序,好人一生平安

就你这个例子而言,要正确得到结果的话可以像下面一样加2句话:
    cout << "请依次输入学生的姓名,学号" << endl;
    cin >> stu1.name >> stu1.num;
    outfile << stu1.name << ' ' << stu1.num << endl;
    outfile2 >> m;                                  //疑惑行
    outfile2.clear();                               // Add 1
    outfile2.seekp(0, ios::beg);                    // Add 2
    m = 1 + m;                                      //疑惑行
    outfile2 << m;                                  //疑惑行
    outfile.close();
    outfile2.close();
    cout << "添加成功" << endl;

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2009-6-17 11:39:00 | 显示全部楼层

Re: Re:c++新手请大家帮忙看个程序,好人一生平安

snowrabbit: Re:c++新手请大家帮忙看个程序,好人一生平安

参考下面的吧,是读写同时进行的问题。

http://www.devdiv.net/thread-1169-1-1.html
http://topic.csd...


谢谢,谢谢,问题已经解决

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2009-6-17 11:48:00 | 显示全部楼层

Re: Re:c++新手请大家帮忙看个程序,好人一生平安

snowrabbit: Re:c++新手请大家帮忙看个程序,好人一生平安

就你这个例子而言,要正确得到结果的话可以像下面一样加2句话:
    cout << "请依次输入学生的...


貌似你那个也是不行的。。。。
最终我根据2楼的地址倒腾了半天解决了
改成下面这个样子了
        //********************增加学生信息***************************//
void InsertList()
{
    Student stu1;
        int z,m=0;
        ofstream outfile("stu.txt",ios::app);
        fstream outfile2("num.txt",ios::in);
        if(! outfile)
        {
                cerr<<"打开失败"<<endl;
                abort();
        }
        cout<<"请依次输入学生的姓名,学号,语文成绩,数学成绩,英语成绩"<<endl;
        cin>>stu1.name>>stu1.num>>stu1.csco>>stu1.msco>>stu1.esco;
        outfile<<stu1.name<<' '<<stu1.num<<' '<<stu1.csco<<' '<<stu1.msco<<' '<<stu1.esco<<endl;
        outfile2>>m;
        m=1+m;
        outfile.close();
        outfile2.close();
        fstream outfile3("num.txt",ios:ut);
        outfile3<<m;
        outfile3.close();
        cout<<"添加成功"<<endl;
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-19 23:23

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表