| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 365 人关注过本帖
标题:帮助修改一下程序
只看楼主 加入收藏
drcaibao
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-1-2
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
帮助修改一下程序
1.编写一个“修改”程序

2.菜单中增加一个“删除”选项,再写“删除”程序

因为本人刚接触C++,把它想做为参考,好心人帮个忙

w.h***********************************
#include<iostream.h>
#include<fstream.h>
#include<stdlib.h>
#include<string.h>
struct bookData
 { int TP ;  char Name[40] ; char sex[40]; int age; char dz[40];} ;
void Append(fstream);
void Sale(fstream) ;
void Inquire(fstream) ;
void CreateTxt(fstream) ;


**************************************************#include "w.h"
void main()
{ int choice ;
  fstream iof( "d:\\booksFile.dat" , ios::binary|ios::in|ios::out ) ;
  if ( !iof )  { cerr << "文件不能打开" << endl ;  return ;  }
  while (1)
  { cout << "\n****************************** 学生信息管理系统 ******************************\n\n请键入操作选择\n\n"
        << "1 :添加学生信息    \t 2 :修改学生信息 \t \n3 :查询学生信息 \t 4 :建立新的文本 \t 0 :退出\n" ;
    cin >> choice ;
    switch ( choice )
    { case 1 : Append(iof) ; break ;      case 2 : Sale(iof) ; break ;
       case 3 : Inquire(iof) ; break;        case 4 : CreateTxt(iof) ; break ;
       case 0 : cout << " 退出系统\n" ; return ;
       default : cout << "输入错误,请再输入\n" ;
    }
  }
  iof.close() ;        // 关闭文件
}



//************************添加******************************************************
void Append( fstream f )
{ int choice ;    bookData book ;    int key ;    long num ;
  f.seekp( 0, ios::end ) ;        // 读指针移到文件末尾
  long posEnd = f.tellp() ;        // 记录文件尾位置
  cout << "********** 添加学生信息 **********\n" ;
  while (1)
  { cout << "请键入操作选择 \n 1:添加 \t  0:返回 \n" ;
    cin >> choice ;
    switch ( choice )
     { case 1:    // 追加新记录
        { cout << "学号(TP) , 姓名 , 性别 , 年龄 , 地址:\n ? " ;     cin >> book.TP;
           cout << " ? " ;       cin >> book.Name ;
           cout << " ? " ;        cin >> book.sex ;
            cout << " ? " ;        cin >> book.age ;
            cout << " ? " ;        cin >> book.dz ;
           f.write( (char *) & book , sizeof( bookData ) ) ;    // 写入文件
           break ;
       };
   
   case 0 :  return ;
   }
  }
}
//********************修改**********************************************************



   


//**********************查询********************************************************

void Inquire(fstream f)
{ int choice ;    bookData book ;    int key ;
  f.seekg( 0, ios::end ) ;    // 读指针移到文件末尾
  long posEnd = f.tellg() ;    // 记录文件尾位置
  cout << "********** 查询 **********\n" ;
  while (1)
    { cout << "请键入操作选择\n 1:按学号查询\t  2:浏览 0:返回\n" ;
      cin >> choice ;
      switch ( choice )
      { case 1:        // 按学号检索
          { f.seekg( 0, ios::beg );
             cout << "学号(TP):\n? " ;      cin >> key ;
            do  { f.read((char *) & book , sizeof(bookData)) ;
         }  while ( book.TP != key && f.tellg() != posEnd ) ;
        if ( book.TP == key )
             cout<<book.TP << '\t' << book.Name << '\t'<< book.sex << '\t' << book.age << '\t' << book.dz <<endl;
          else { cout << "编号错误\n" ;    continue; }
      break ;
   };

   case 2:
     { f.seekg( 0, ios::beg );
        do  { f.read((char *) & book , sizeof(bookData)) ;
     cout<<book.TP << '\t' << book.Name << '\t'<< book.sex << '\t' << book.age << '\t' << book.dz <<endl;
    } while ( book.TP != key && f.tellp() != posEnd ) ;
         break ;
      }
      case 0 :  return ;
    }
  }
}



//*********************建立文本*********************************************************
  void CreateTxt(fstream f)
{ fstream ftxt("d:\\booksFile.txt" , ios::out) ;    // 写方式打开文本文件
  bookData book ;
  f.seekg( 0, ios::end ) ;
  long posEnd = f.tellg() ;        // 记录二进制文件末尾位置
  f.seekg( 0, ios::beg ) ;        // 移动读指针到文件头
  cout << "********** 建立文本文件 **********\n" ;
  do
{  f.read((char *) & book , sizeof(bookData)) ;   // 从二进制文件读记录   
   // 把记录写入文本文件:
  ftxt << book.TP << '\t' << book.Name << '\t' << book.sex << '\t' << book.age << '\t' << book.dz << endl;
} while ( f.tellg() != posEnd ) ;
  ftxt.close() ;
cout << "文本文件已建立,要浏览文件吗?( Y/N ) \n" ;
  char answer , s[80];
  cin >> answer ;
  if ( answer=='Y' || answer=='y' )
  { ftxt.open( "d:\\booksFile.txt" , ios::in ) ;    // 重用流打开文件
    while( !ftxt.eof() )            // 按行显示文本文件
      { ftxt.getline( s, 80 ) ;
         cout << s << endl ;   
      }
  }
  ftxt.close() ;        // 关闭文本文件
}
搜索更多相关主题的帖子: void include 
2013-01-02 16:08
StarFall
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:193
专家分:553
注 册:2012-10-1
收藏
得分:10 
刚接触就参考这个吗..

去追寻更高的技术领域。永不停止。
2013-01-03 08:09
liqingqinger
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:69
专家分:163
注 册:2013-1-2
收藏
得分:10 
回复 楼主 drcaibao
亲 你乜是软件专业滴?、布科学 我们还没学文件输入输出流 我用的编译环境是TOUBOC3 我有看一下 木杂懂 你弄出来了乜指导指导指导我吧 我把你那个拿去运行了哈 大部分都是输入输出流那里的问题 我是新手 轻喷

求布喷。。。
我是菜鸟。。。。。
2013-01-03 10:50
快速回复:帮助修改一下程序
数据加载中...
 
   



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

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