第七章作业
2015-06-16 20:22
483 查看
第一题:
第二题:
第三题:
第四题:
第五题:
第六题:
#include<iostream> #include"math.h" using namespace std; void Rec() { int a, b, c; float area , s ; cout << "输入三角形三条边:" << endl; cin >> a >> b >> c; s = (a + b + c) / 2; area = sqrt(s * (s-a) * (s-b) * (s-c)); if((a+b<=c) || (b+c<=a) || (c+a<=b)) { cerr << "ERROR" << endl; } cout << "这个三角形的面积是:" << area << endl; } int main() { Rec(); return 0; }
第二题:
#include <iostream> #include <iomanip> using namespace std; int main() { float a[5]; cout<<"input data:"; int i=0; for( i=0;i<5;i++) { cin>>a[i]; } cout << setiosflags(ios::fixed) << setprecision(2); for(i=0;i<5;i++) { cout<<setw(10)<<a[i]<<endl; } return 0; }
第三题:
#include <iostream> #include <iomanip> using namespace std; int main() { for(int n=1;n<8;n++) { cout << setw(20-n) << setfill(' ') << " " << setw(2*n-1) << setfill('B') << "B" << endl; } return 0; }
第四题:
#include <iostream> #include <fstream> using namespace std; //fun1函数从键盘输入20个整数,分别存放在两个磁盘文件中 void fun1() { int a[10]; ofstream outfile1("f1.dat"),outfile2("f2.dat"); //分别定义两个文件流对象 if(!outfile1) //检查打开f1.dat是否成功 { cerr<<"open f1.dat error!"<<endl; exit(1); } if(!outfile2) //检查打开f2.dat是否成功 { cerr<<"open f2.dat error!"<<endl; exit(1); } cout<<"enter 10 integer numbers:"<<endl; for(int i=0;i<10;i++) //输入10个数存放到f1.dat文件中 { cin>>a[i]; outfile1<<a[i]<<" "; } cout<<"enter 10 integer numbers:"<<endl; for(int j=0;j<10;j++) //输入10个数存放到f2.dat文件中 { cin>>a[j]; outfile2<<a[j]<<" "; } outfile1.close(); //关闭f1.dat文件 outfile2.close(); //关闭f2.dat文件 } //从f1,dat读入10个数,然后存放到f2.dat文件原有数据的后面 void fun2() { ifstream infile("f1.dat"); //f1.dat作为输入文件 if(!infile) { cerr<<"open f1.dat error!"<<endl; exit(1); } ofstream outfile("f2.dat",ios::app); //f2.dat作为输出文件,文件指针指向文件尾,向它写入的数据放在原来数据的后面 if(!outfile) { cerr<<"open f2.dat error!"<<endl; exit(1); } int a; for(int i=0;i<10;i++) { infile>>a; //磁盘文件f2.dat读入一个整数 outfile<<a<<" "; //将该数存放到f2.dat中 } infile.close(); outfile.close(); //从f2.dat中读入20个整数,将它们按从小到大的顺序存放到f2.dat void fun3() { ifstream infile("f2.dat"); //定义输入文件流infile,以输入方式打开f2.dat if(!infile) { cerr<<"open f2.dat error!"<<endl; exit(1); } int a[20]; int i,j,t; for(i=0;i<20;i++) infile>>a[i]; //从磁盘文件f2.dat读入20个数放在数组a中 for(i=0;i<19;i++) //用起泡法对20个数排序 for(j=0;j<19-i;j++) if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;} infile.close(); //关闭输入文件f2.dat ofstream outfile("f2.dat",ios::out); // f2.dat作为输出文件,文件中原有内容删除 if(!outfile) { cerr<<"open f2.dat error!"<<endl; exit(1); } cout<<"data in f2.dat:"<<endl; for( i=0;i<20;i++) { outfile<<a[i]<<" "; //向f2.dat输出已排序的20个数 cout<<a[i]<<" "; } //同时输出到显示器 cout<<endl; outfile.close(); } int main() { fun1(); //分别调用3个函数 fun2(); fun3(); return 0; }
第五题:
#include <iostream> #include <fstream> using namespace std; struct staff {int num; char name[20]; int age; double pay; }; int main() {staff staf[7]={3898,"Fan",34,1200,3899,"Wang",23,6740,2448,"Chen",54,778, 3000,"Du",45,4763,3301,"Ling",39,6555},staf1; fstream iofile("staff.dat",ios::in|ios::out|ios::binary); if(!iofile) {cerr<<"open error!"<<endl; abort(); } int i,m,num; cout<<"Five staff :"<<endl; for(i=0;i<5;i++) {cout<<staf[i].num<<" "<<staf[i].name<<" "<<staf[i].age<<" "<<staf[i].pay<<endl; iofile.write((char *)&staf[i],sizeof(staf[i]));} cout<<"please input data you want insert:"<<endl; for(i=0;i<2;i++) {cin>>staf1.num>>staf1.name>>staf1.age>>staf1.pay; iofile.seekp(0,ios::end); iofile.write((char *)&staf1,sizeof(staf1));} iofile.seekg(0,ios::beg); for(i=0;i<7;i++) {iofile.read((char *)&staf[i],sizeof(staf[i])); cout<<staf[i].num<<" "<<staf[i].name<<" "<<staf[i].age<<" "<<staf[i].pay<<endl; } bool find; cout<<"enter number you want search,enter 0 to stop."; cin>>num; while(num) {find=false; iofile.seekg(0,ios::beg); for(i=0;i<7;i++) {iofile.read((char *)&staf[i],sizeof(staf[i])); if(num==staf[i].num) {m=iofile.tellg(); cout<<num<<" is No."<<m/sizeof(staf1)<<endl; cout<<staf[i].num<<" "<<staf[i].name<<" "<<staf[i].age<<" "<<staf[i].pay<<endl; find=true; break; } } if(!find) cout<<"can't find "<<num<<endl; cout<<"enter number you want search,enter 0 to stop."; cin>>num; } iofile.close(); return 0; }
第六题:
#include <iostream> #include <strstream> using namespace std; struct student { int num; char name[20]; double score; }; int main() { student stud[3]={1001,"Li",78,1002,"Wang",89.5,1004,"Fun",90},stud1[3]; char c[50]; int i; ostrstream strout(c,50); for(i=0;i<3;i++) { strout<<stud[i].num<<" "<<stud[i].name<<" "<<stud[i].score<<" "; } strout<<ends; cout<<"array c:"<<endl<<c<<endl<<endl; istrstream strin(c,50); for(i=0;i<3;i++) { strin>>stud1[i].num>>stud1[i].name>>stud1[i].score; } cout<<"data from array c to array stud1:"<<endl; for(i=0;i<3;i++) { cout<<stud1[i].num<<" "<<stud1[i].name<<" "<<stud1[i].score<<endl; } cout<<endl; return 0; }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++编写简单的打靶游戏
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解
- C++中拷贝构造函数的应用详解
- C++中引用(&)的用法与应用实例分析
- C++使用CriticalSection实现线程同步实例
- C++智能指针实例详解
- 解析C++ 浮点数的格式化输出