| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 369 人关注过本帖
标题:向文件写东西。
取消只看楼主 加入收藏
linw1225
Rank: 3Rank: 3
来 自:福建
等 级:论坛游侠
帖 子:110
专家分:145
注 册:2011-4-7
结帖率:100%
收藏
 问题点数:0 回复次数:1 
向文件写东西。
代码如下:

#include<iostream>
#include<fstream>
#include<string>
#include<stdlib.h>
using namespace std;




class Student  //定义学生类
{
    private:
        char number[20];  //学号
        char name[20];    //姓名
        float score_math;  //数学成绩
        float score_english;  //英语成绩
        float score_computer;  //计算机成绩
    public:
        Student();  //构造函数
        ~Student(); //析构函数

        void Input();  //函数设置学生信息的内容
        void Display();     //显示学生信息
};

Student::Student()
{ }

Student::~Student()
{ }

void Student::Input()
{
    char number_in[20];
    char name_in[20];
    float score_math_in;
    float score_english_in;
    float score_computer_in;

    cout<<"学号:";
    cin>>number_in[20];
    cout<<"姓名:";
    cin>>name_in[20];
    cout<<"数学成绩:";
    cin>>score_math_in;
    cout<<"英语成绩:";
    cin>>score_english_in;
    cout<<"计算机成绩:";
    cin>>score_computer_in;

    strcpy(number,number_in);
    strcpy(name,name_in);
    score_math=score_math_in;
    score_english=score_english_in;
    score_computer=score_computer_in;
}

void Student::Display()
{
    cout<<"学号:"<<number<<" 姓名"<<name<<endl;
    cout<<"数学成绩:"<<score_math<<" 英语成绩:"<<score_english<<" 计算机成绩:"<<score_computer<<endl;
}



class Select
{
    private:
        Student st;
        Student *stu;
    public:
        Select();
        ~Select();

        void Entering();
        void Add();
        void Seek();
        void Alter();
        void Omit();
        void Statistics();
        void Show();

        friend void Menu();
};

Select::Select()
{ }

Select::~Select()
{ }



void Select::Entering()
{
    int count;
    int flag_Entering=0;

   
    fstream s;

    do
    {
        cout<<"请输入要录入的学生人数:";
        cin>>count;

        if(count>0)
            flag_Entering=1;
        else
        {
            cout<<"输入错误!请重新输入:";
            cin>>count;
        }
    }while(flag_Entering==0);

    cout<<endl;

    stu=new Student[count];

    s.open("student.txt",ios::out|ios::app);

    for(int i=0;i<count;i++)
    {
        cout<<"请输入第"<<i+1<<"位学生信息:"<<endl;
        (stu+i)->Input();
        s.write( reinterpret_cast<char *>(stu+i) , sizeof(Student) );
        delete[](stu+i);
    }
    s.clear();
    s.close();
   
}


void Select::Add()
{}

void Select::Seek()
{}

void Select::Alter()
{}

void Select::Omit()
{}

void Select::Statistics()
{}

void Select::Show()
{}

void Menu()
{
    Select sel;
    char choose;
    int flag=0;
    int flag1=0;
    int choose_return;
   
    cout<<"               *----------------------------*"<<endl;
    cout<<"               *       1、录入学生信息      *"<<endl;
    cout<<"               *       2、添加学生信息      *"<<endl;
    cout<<"               *       3、查找学生信息      *"<<endl;
    cout<<"               *       4、修改学生信息      *"<<endl;
    cout<<"               *       5、删除学生信息      *"<<endl;
    cout<<"               *       6、统计学生信息      *"<<endl;
    cout<<"               *       7、显示全部信息      *"<<endl;
    cout<<"               *       8、退出管理系统      *"<<endl;
    cout<<"               *----------------------------*"<<endl;
   

     do                     
     {
         cout<<"请选择(1-8):";
         cin>>choose;
         
         if(choose>'0'&& choose<='8')
             flag=1;
         else
         {
             cout<<endl<<endl<<"  指令错误!请重新输入! "<<endl;
             cout<<"请选择(1-8):";
             cin>>choose;
         }
     }while(flag==0);

    switch(choose)
    {
         case '1':
             sel.Entering();
             break;
         case '2':
             sel.Add();
             break;
         case '3':
             sel.Seek();
             break;
         case '4':
             sel.Alter();
             break;
         case '5':
             sel.Omit();
             break;
         case '6':
             sel.Statistics();
             break;
         case '7':
             sel.Show();
            break;
         case '8':
             cout<<endl<<"           欢迎使用!"<<endl;
            break;
            
    }

    do                     
    {
         cout<<"是否进行其他操作?  1、Yes  2、No"<<endl;
         cout<<"请选择(1-2):";
         cin>>choose_return;
         
         if( (choose_return==1) || (choose_return==2 ) )
         {
             flag1=1;
         }

         else
         {
             cout<<endl<<"  指令错误!请重新输入! "<<endl;
             cout<<"请选择(1-2):";
             cin>>choose_return;
         }
    }while(flag1==0);

    if(choose_return==1)
        Menu();
    else
    {
        cout<<endl;
        cout<<"         ********************"<<endl;
        cout<<"         *---- 欢迎使用!----*"<<endl;
        cout<<"         ********************"<<endl;
        exit(0);
    }
}

int main()
{
    cout<<"               ******************************"<<endl;
    cout<<"               *      学生信息管理系统      *"<<endl;
    Menu();
    return 0;
}

这段代码调试没错,但是运行有问题。
目前就写了一个录入的函数。
就是 比如先输入1个学生的信息完之后,会提示是否继续输入,选择继续输入,比如这时候输入2个学生,这时候问题就出来了。
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: include 英语成绩 private 计算机 public 
2011-07-11 13:35
linw1225
Rank: 3Rank: 3
来 自:福建
等 级:论坛游侠
帖 子:110
专家分:145
注 册:2011-4-7
收藏
得分:0 
貌似是Entering();函数里面的delete[](stu+i);出现错误,请大家看看。

Einmal ist keinmal
2011-07-11 19:47
快速回复:向文件写东西。
数据加载中...
 
   



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

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