11_96.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. ifstream file("MyFrd.dat");
  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. file.read((char *)&one,sizeof(one));
  68. while(file)
  69. {
  70. if(comp(one.getname(),sname)==1)
  71. one.disp();
  72. file.read((char*)&one,sizeof(one));
  73. };
  74. file.close();
  75. }
  76. void func4()
  77. {
  78. fstream outapp("MyFrd.dat",ios::app);
  79.     MyFriend one;
  80. cout<<"添加数据:";
  81. one.getdata();
  82. outapp.write((char*)&one,sizeof(one));
  83. outapp.close();
  84. }
  85. int comp(char s1[],char s2[])
  86. {
  87. int i=0;
  88. while(s1[i]!='' && s2[i]!='' && s1[i]==s2[i])
  89. i++;
  90. if(s1[i]=='' || s2[i]=='')
  91. return 1;
  92.     else
  93. return 0;
  94. }
  95. void main()
  96. {
  97. int sel;
  98. do
  99. {
  100. cout<<"选择(1:输入数据 2:输出数据 3:按姓名查询 4:添加数据 其它退出):";
  101. cin>>sel;
  102. switch(sel)
  103. {
  104.          case 1:func1();break;
  105.          case 2:func2();break;
  106.  case 3:func3();break;
  107.  case 4:func4();break;
  108. }
  109. }while(sel==1||sel==2||sel==3||sel==4);
  110. }