11_95.cpp
上传用户:zipjojo
上传日期:2009-07-20
资源大小:70k
文件大小:2k
源码类别:

文章/文档

开发平台:

C/C++

  1. #include<iostream.h>
  2. #include<fstream.h>
  3. #include<iomanip.h>
  4. static int n=0;
  5. int comp(char*,char*);
  6. class MyFriend
  7. {
  8. unsigned int age;
  9. char name[12];
  10. char TelNo[12];
  11. public:
  12. void getdata()
  13. {
  14. cout<<"(年龄 姓名 电话):";
  15. cin>>age>>name>>TelNo;
  16. }
  17. void disp()
  18. {
  19. cout<<setiosflags(ios::left)
  20.  <<setw(6)<<age<<setw(10)<<name<<setw(7)<<TelNo<<endl;
  21. }
  22. char *getname()
  23. {
  24. return name;
  25. }
  26. };
  27. void func1()
  28. {
  29. ofstream output("MyFrd.dat");
  30. MyFriend s;
  31. cout<<"输入数据"<<endl;
  32. cout<<"我的朋友人数:";
  33. cin>>n;
  34. for(int i=0;i<n;i++)
  35. {
  36. cout<<"第"<<i+1<<"个我的朋友";
  37. s.getdata();
  38. output.write((char *)&s,sizeof(s));
  39. };
  40. output.close();
  41. }
  42. void func2()
  43. {
  44. ifstream input("MyFrd.dat");
  45. MyFriend s;
  46. cout<<"输入数据"<<endl;
  47. cout<<setiosflags(ios::left)
  48. <<setw(6)<<"年龄"<<setw(10)<<"姓名"<<setw(7)<<"电话"<<endl;
  49. input.read((char *)&s,sizeof(s));
  50. while(input)
  51. {
  52. s.disp();
  53. input.read((char*)&s,sizeof(s));
  54. };
  55. input.close();
  56. }
  57. void func3()
  58. {
  59. char sname[10];
  60. fstream file("MyFrd.dat",ios::in);
  61. MyFriend one;
  62. file.seekg(0);
  63. cout<<"输入要查询的姓名(可只输入姓氏):";
  64. cin>>sname;
  65. cout<<"输出查询结果:"<<endl;
  66. cout<<setw(6)<<"年龄"<<setw(10)<<"姓名"<<setw(6)<<"电话"<<endl;
  67.     for(int i=0;i<n;i++)
  68. {
  69. file.read((char *)&one,sizeof(MyFriend));
  70. if(comp(one.getname(),sname)==1)
  71. one.disp();
  72. }
  73. file.close();
  74. }
  75. int comp(char s1[],char s2[])
  76. {
  77. int i=0;
  78. while(s1[i]!='' && s2[i]!='' && s1[i]==s2[i])
  79. i++;
  80. if(s1[i]=='' || s2[i]=='')
  81. return 1;
  82.     else
  83. return 0;
  84. }
  85. void main()
  86. {
  87. int sel;
  88. do
  89. {
  90. cout<<"选择(1:输入数据 2:输出数据 3:按姓名查询 其它退出):";
  91. cin>>sel;
  92. switch(sel)
  93. {
  94.          case 1:func1();break;
  95.          case 2:func2();break;
  96.  case 3:func3();break;
  97. }
  98. }while(sel==1||sel==2||sel==3);
  99. }