注册 登录
编程论坛 C++教室

谁帮我解释一下这几个代码

yu497272290 发布于 2014-09-11 13:05, 542 次点击
帮我打一下注释吧?
详细点
这样我自己再研究一下
最好注释有这个函数的用法等等
谢谢了
1、流式IO(一)
编写C++程序完成以下功能:
(1)使用ofstream 向一个文本文件中输出各种类型的数据,并打开文件观察结果:
整数、无符号整型、长整型、浮点型、字符串、……
(2)用十进制、八进制、十六进制方式向文本文件中输出整数;
(3)使用控制符和成员函数来控制输出的格式:
set() precision() ...
程序代码:
#include<iostream>
#include<fstream>
#include<string>
#include<stdlib.h>
using namespace std;

main()
{
      int x,j,i=1;
      char a;
      int s[50];
      
      ofstream output("print.txt");            //创建文件
      
      cout<<"Please enter end with #."<<endl;
      cin>>a;
      
      while(a!='#')
      {
                   output.write((char*)&a,sizeof(a)); //写入文件
                   cin>>a;
      }
      
      cout<<"Enter integers,end with 0."<<endl;
      cin>>x;
      output<<endl<<"十进制为:"<<endl;
      while(x!=0)
      {
                 s[i]=x;
                 output<<x<<" ";
                 cin>>x;
                 i+=1;
      }
      
      output<<endl<<"八进制为:"<<endl;
      for(j=0;j<i;j++)
      {
            output<<oct<<s[j]<<" ";
      }
      output<<endl<<"十六进制为:"<<endl;
      for(j=0;j<i;j++)
      {
            output<<hex<<s[j]<<" ";
      }
      output.close();                    //关闭文件
      system("pause");            
}

3、流式IO(三)
编写C++程序完成以下功能:
(1)输入一个文本文件名;
(2)打开文件名,在该文件的每一行前面加上一个行号,保存在另外一个文本文件中。
程序代码:
#include<iostream>
#include<fstream>
#include<string>
#include<stdlib.h>
using namespace std;

main()
{
      int i=1;
      string s;
      
      ifstream input("in.txt");                       //输入文件和输出文件
      ofstream output("out.txt");
      
      if(!input)
      {
            cout<<"error:cannot open input file"<<endl;
      }      
      else
           while(getline(input,s))
           {
                                  cout<<s<<endl;
                                  output<<"("<<i<<")"<<s<<endl;//添加行号
                                  i+=1;
           }
           
      system("pause");
}


1、电话本
        编写C++程序完成以下功能:
(1)实现简单电话本功能,用姓名来搜索电话号码;
(2)用户输入姓名,程序查找并输出结果;
(3)用户可以通过输入,添加姓名和电话号码;
(4)用户可以删除姓名和电话号码;
(5)电话本可以保存在指定文件中;
(6)电话可被从指定文件中读入到内存。


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

/*void addPhone(string n,phone *ptr,int len);
void deletePhone(string n,phone *ptr,int len);
phone* searchPhone(string n,phone *ptr,int len);
*/

class phone
{
      private:
              string name;
              string number;
              
      public:
                        
             phone(){};
             string getname(){return name;}
             string getnumber(){return number;}
             void setname(string n){name=n;}
             void setnumber(string a){number=a;}
            
            
             };
            
int input(phone ptr[])
{    int i=0,a,a1;
     string n,n1;
     ifstream fin("input.txt");
     while(!fin.eof())
     {
         getline(fin,n,' ');
         getline(fin,n1,' ');   
        ptr[i].setname(n);
     ptr[i].setnumber(n1);
     i++;}
     return i;}
void output(phone ptr[],int len)
{    ofstream fout("output.txt");
     fout<<"电话本程序输出测试:"<<endl;
     for(int i=0;i<len;i++)
         fout<<"姓名:"<<ptr[i].getname()<<endl<<"电话:"<<ptr[i].getnumber()<<endl;
}
void coutput(phone ptr[],int len)
{ for(int i=0;i<len;i++)
         cout<<"姓名:"<<ptr[i].getname()<<endl<<"电话:"<<ptr[i].getnumber()<<endl;}

phone * searchPhone(string n,phone* ptr,int len)
{for(int i=0;i<len;i++)
   if(n==(ptr+i)->getname())
     //cout<<"the number of"<<n<<"is"<<(ptr+i)->getnumber>>endl;
     {return (ptr+i); break;}
     return NULL;
     }

void addPhone(string n,phone *ptr,int len)
{   string a;
     
ptr[len].setname(n);

 cout<<"请输入该联系人的电话号码:"<<endl;

 cin>>a;

 ptr[len].setnumber(a);

 ++len;
cout<<"该联系人已经创建."<<endl;}

void deletePhone(string n,phone *ptr,int len)
{phone *p=searchPhone(n,ptr,len);
  int m=p-ptr;
  for(int i=1;i<=len-m-1;i++)
    ptr[m+i-1]=ptr[m+i];
    cout<<"该联系人已经删除"<<endl;
   

 }

int main()
{int len=0,a;

 phone ptr[100];

 phone * px;

 cout<<"********************************电话本程序************************************"<<endl<<endl<<"是否需要文件读取联系人信息?"<<endl<<"   1.需要。2。不需要(手动输入):"<<endl;

 cin>>a;

 if(a==1)

 {len=input(ptr);

 cout<<"文件读取成功!"<<endl<<endl;}

 cout<<"********************请输入你想执行的操作(输入操作前号码)********************"<<endl;

 cout<<"*         1.添加联系人。                      2.删除联系人。                 *"<<endl;

 cout<<"*         3.查找联系人。                      4.文件输出                     *"<<endl;

 cout<<"*         5.屏幕输出。                        6.结束程序。                   *"<<endl;

 cout<<"******************************************************************************"<<endl;

 cin>>a;

 while(a!=6)

 {      
            if(a==1)
            {       string n;
                    cout<<"请输入你想添加的联系人的姓名:";
                    cin>>n;
                    addPhone(n,ptr,len);
                    len++;}
            if(a==2)
            {
                    string n;
                    cout<<"请输入你想删除的联系人的姓名:";
                    cin>>n;
                    deletePhone(n,ptr,len);
                    len--;}
                  
             if(a==3)
             {
                     string n;
                     cout<<"请输入你想查找的联系人的姓名:";
                     cin>>n;
                     px=searchPhone(n,ptr,len);
                     if(px!=NULL)
                     cout<<"该联系人的号码是:"<<px->getnumber()<<endl;
                     if(px==NULL)
                     cout<<"无此联系人"<<endl;
                     px=NULL;
                     }  
             if(a==4)
             {output(ptr,len);
             cout<<"文件已输出到output.txt"<<endl;}
             if(a==5)
             {coutput(ptr,len);}
              
         cout<<endl;
         cout<<"********************请输入你想执行的操作(输入操作前号码)********************"<<endl;
         cout<<"*         1.添加联系人。                      2.删除联系人。                 *"<<endl;
         cout<<"*         3.查找联系人。                      4.文件输出                     *"<<endl;
         cout<<"*         5.屏幕输出。                        6.结束程序。                   *"<<endl;
         cout<<"******************************************************************************"<<endl;
         cin>>a;            
               }

 
   cout<<"谢谢你的使用。"<<endl;
   system("pause");
   return 0;   
    }
4 回复
#2
yuccn2014-09-11 13:10
#3
wp2319572014-09-11 13:34
在保证程序能够正确运行的前提下   一句一句代码看呗   也不是多么高深的代码
#4
stop12042014-09-11 19:28
懒得看了.
程序代码:

main()
{
      int x,j,i=1;
      char a;
      int s[50];
      
      ofstream output("print.txt");            //打开文件 "print.txt"  
      
      cout<<"Please enter end with #."<<endl;  //输入字符  '#' 字符退出
      cin>>a;                                  //字符 (非字符串)
      
      while(a!='#')                             //'#' 字符即退出
      {
                   output.write((char*)&a,sizeof(a)); //写入字符地址与长度, (长度就是固定的 1 )
                   cin>>a;                           //重复输入并写鈤文件.
      }
      
      cout<<"Enter integers,end with 0."<<endl;    //输入整数    输入0退出
      cin>>x;
      output<<endl<<"十进制为:"<<endl;
      while(x!=0)
      {
                 s[i]=x;                     //整数数据存入s
                 output<<x<<" ";             //并写入文件
                 cin>>x;
                 i+=1;
      }
      
      output<<endl<<"八进制为:"<<endl;
      for(j=0;j<i;j++)
      {
            output<<oct<<s[j]<<" ";
      }
      output<<endl<<"十六进制为:"<<endl;
      for(j=0;j<i;j++)
      {
            output<<hex<<s[j]<<" ";
      }
      output.close();                    //关闭文件
      system("pause");                   //暂停
}
#5
llwwzz2014-09-14 16:25
自己拿一张白纸,它定义一个变量你写一个表,,,你花30分钟绝对能看懂,要是还看不懂,,你还是先去学习语法把
1