1 #include<iostream>
2 #include<string>
3 using namespace std;
4 //-----------------
5 class GNumber
6 {
7 char chuan[50];
8 public:
9 void set();
10 friend int search (GNumber& str);
11 };
12 //-------------------
13 int search(GNumber& s)
14 {
15 int num=0; //定义num用于整数个数的统计
16 for(int i=0;i<50;i++)
17 { string str1=""; //新建一个用于储存整数的字符串
18
19 if(s.chuan[i]>='0'&&s.chuan[i]<='9') //用以判断是否为数字
20 for(int j=i;;j++) // 判断其后是否有连续数字,若有,则储存
21 {
22 if(s.chuan[j]<'0'||s.chuan[j]>'9') //若不是数字,则跳过非数字区域,并跳出判断后一个是否是数字的循环体
23 { i=j;break;}
24 str1=str1+s.chuan[j];
25 } //若是数字,则储存起来
26
27 if(str1!=""&&str1.length()>0) //判断是否是“整数”
28 {
29 cout<<str1<<endl;
30 num++; //统计整数个数
31 }
32 }
33 return num; //返回统计的个数,调用即可返回
34 }
35 //-----------------
36 void GNumber::set()
37 {
38 for (int i=0;(chuan[i]=cin.get())!='\n';i++) //调用cin 类的get这样一个成员函数,当输入的不是回车的时候执行空操作;否则终止循环
39 ;
40 }
41 //----------------------
42 void main()
43 {
44 GNumber s1;
45 cout<<"please input a string:"<<endl;
46 s1.set();
47 cout<<endl;
48 cout<<"有下列数字:\n";
49 int num=search(s1); //将查找统计出来的整数个数赋值给main函数中的变量 num;
50 cout<<"共计"<<num<<"个\n";
51 system("pause");
52 }
1 #include<iostream>
2 #include<iomanip>
3 using namespace std;
4 //======================================定义类
5 class TDarray
6 {
7 int a[3][4]; //定义成员数据
8 public:
9 void set(); //成员函数,用于输入
10 friend void change(TDarray& b,TDarray& c); // 用于交换
11 friend void output(const TDarray& b); // 用于输出
12 };
13 //==========================================
14 void TDarray::set() //循环输入二维数组
15 {
16 for (int i=0;i<3;i++)
17 for(int j=0;j<4;j++)
18 cin>>a[i][j];
19 }
20 //=========================================
21 void change(TDarray& b,TDarray& c)
22 {
23 for (int i=0;i<3;i++)
24 {
25 for(int j=0;j<4;j++)
26 c.a[i][(j+1)%4]=b.a[i][j]; //通过取余可以将 数字轮换
27 }
28
29 }
30 //===========================================
31 void output(const TDarray& b) //输出
32 {
33 for (int i=0;i<3;i++)
34 {
35 for(int j=0;j<4;j++)
36 cout<<setw(4)<<b.a[i][j];
37 cout<<endl;
38 }
39 }
40 //===========================================
41 void main()
42 {
43 cout<<"Please input 12 numbers:\n"; //提醒用户输入数据
44 TDarray num;
45 TDarray c;
46 num.set(); //通过成员函数设置成员数据
47 cout<<"The former one is:\n"; //先输出原先的数组
48 output(num);
49 change(num,c); //做转换
50 cout<<"The latter one is:\n"; //输出转换过后的数组
51 output(c);
52 }
53 //----------------------------------
54 #include<iostream>
55 #include<string>
56 #include<sstream>
57 using std::string;//using std::string
58 #define ostream std::ostream//#define ostream std::ostream
59 #define istream std::istream//#define istream std::istream
60 #define cout std::cout
61 #define cin std::cin
62 class GNumber
63 {
64 private:
65 string str;
66 int *a; //Use the pointer is much faster than the vector
67 int n; //for record the number of integer
68 public:
69 GNumber(){a=new int[100];n=0;}; //define the constructor to allocate the space for a;
70 ~GNumber(){delete[]a;}; //define a destructor to delete the space that new create
71 void stoi();
72 friend ostream&operator<<(ostream&,const GNumber&);//(ostream&,const GNumber&)
73 friend istream&operator>>(istream&,GNumber&);//(istream&,GNumber&)
74 };
75 void GNumber::stoi()
76 {
77 int i;
78 for(int i=0;i<str.size();i++)
79 if(str[i]>'9'||str[i]<'0')
80 str[i]=' ';
81 std::istringstream sin(str);//std::istreamstream sin(str);
82 for(;sin>>a[n];n++);
83 n--; //the n must be minus 1 because When finished entering,n have been plus one
84 }
85 ostream&operator<<(ostream&out,const GNumber&number)
86 {
87 out<<"The number of integers is:"<<number.n<<'\n';
88 for(int i=0;i<number.n;i++)
89 out<<number.a[i]<<" ";
90 out<<'\n';
91 return out;
92 }
93 istream&operator>>(istream&input,GNumber&number)
94 {
95 cout<<"please input the string without space:"<<std::endl;
96 input>>number.str;
97 return input;
98 }
99 int main()
100 {
101 GNumber number;
102 cin>>number;
103 number.stoi();
104 cout<<number;
105 system("pause");
106 return 0;
107 }
108 //-------------------
109 #include<iostream>
110 using std::cin;
111 using std::cout; //using the Standard namespace of cin and cout
112 #define ostream std::ostream //define ostream to replace std::ostream
113 #define istream std::istream
114 class TDarray
115 {
116 public:
117 int **a; //Defined 2D pointer//二级指针用的漂亮,int **a;
118 public:
119 TDarray(); //Define a constructor to allocate space to the 2D pointer//TDarray();~TDarray();
120 ~TDarray(); //Defined destructor to delete the 2D pointer space
121 void tdarray(); //Defined function "tdarray" to convert//void tdarray();
122 friend ostream&operator<<(ostream&,const TDarray&); //overloading ostream to output//friend ostream& operator<<(ostream&,TDarray&)
123 friend istream&operator>>(istream&,TDarray&); //overloading istream to input//friend istream& operator>>(istream&,TDarray&)
124
125 };
126 TDarray::TDarray()
127 {
128 a=new int*[3]; //allocated to the 2D pointer three lines of 1D pointer Dynamically //a=new int*[3];a[i]=new int[4]
129 for (int i=0;i<3;i++)
130 a[i]=new int[4]; //using for statement to allocated to each row four space dynamically
131 }
132 TDarray::~TDarray()
133 {
134 for (int i=0;i<3;i++)
135 delete[]a[i]; //using for statement to delete the space of each row、//两次delete
136 delete a; //delete the space of 2D pointer
137 cout<<"have delete the memory now"<<'\n'; //using the message to ensure that the destructor is executed
138 }
139
140 void TDarray::tdarray()
141 {
142 for(int i=0;i<3;i++) //using for to convert each line
143 {
144 int temp=a[i][3]; //Create a temporary variable to store the last element of each row
145 for(int j=3;j>0;j--)
146 a[i][j]=a[i][j-1]; //let each element be equal to its previous element
147 a[i][0]=temp; //make the first element be equal to the temporary variable
148 }
149 }
150 istream&operator>>(istream&input,TDarray&array)
151 {
152 for(int i=0;i<3;i++)
153 for(int j=0;j<4;j++)
154 input>>array.a[i][j];
155 return input; //return input to make sure cin can continuous input
156 }
157 ostream&operator<<(ostream&out,const TDarray&array)
158 {
159 for(int i=0;i<3;i++)
160 {
161 for(int j=0;j<4;j++)
162 out<<array.a[i][j]<<" ";
163 out<<'\n';
164 }
165 return out; //return out to make sure cout can continuous output
166 }
167 int main()
168 {
169 //freopen("tdarray.txt","r",stdin); //Text input instead of keyboard input
170 TDarray array; //define the object of TDarray
171 cin>>array; //input the array
172 cout<<array; //output the array
173 array.tdarray(); //using the function to cover
174 cout<<array<<array; //output the array covered//不错,输出两个矩阵,还按照矩阵的形式
175 system("pause");
176 return 0; //the main function must return 0 to pass in c++standard
177 }
178 //-------------------
179 //定义一个结构体变量(包括年、月、日)编写程序。要求输入年、月、日,
180 //程序能计算输出该日在本年中是第几天。(注意闰年问题),写一个函数days,实现上面的计算。由主函数将年、月、日传递给函数days,
181 //计算出该日在本学年中是第几天,并将结果传回主函数输出。(上次作业的改进版本,用类实现,请看老师的PPT)
182 #include<iostream>
183 using namespace std;
184 class Days
185 {
186 public:
187 int riqi(int &year,int &month, int&day);
188 }Days1;
189 int Days::riqi(int &year,int &month, int&day)
190 {
191 int change;//判断是否是闰年
192 if(year%4==0&&year%100!=0||year%400==0)
193 change=1;
194 else
195 change=2;
196 int num1[12]={31,28,31,30,31,30,31,31,30,31,30,31};//数组内的元素为各月天数
197 int num2[12]={31,29,31,30,31,30,31,31,30,31,30,31};
198 int i,sum=0;//初始化,i全局变量
199 switch(change)
200 {
201 case 1:
202 {
203 for(i=0;i<month-1;i++)
204 sum=sum+num1[i];
205 sum=sum+day;
206 }
207 case 2:
208 {
209 for(i=0;i<month-1;i++)
210 sum=sum+num2[i];
211 sum=sum+day;
212 }
213 }
214
215 return sum;
216 }
217 int main()
218 {
219 int a,b,c;
220 cout<<"请输入年,月,日"<<endl;
221 cin>>a>>b>>c;
222 int z=Days1.riqi(a,b,c);
223 cout<<"该日在本年中是第"<<z<<"天"<<endl;
224 return 1;
225 }
226 //----------------
227 #include<iostream>
228 #include<cmath>
229 using namespace std;
230 class Point
231 {
232 protected:
233 double x;
234 double y;
235 public:
236 void Set(double ix,double iy)
237 {
238 x=ix;
239 y=iy;
240 }
241 void change()
242 {
243
244 x=x+5;
245 y=y+6;
246 }
247
248 double xOffset()
249 {
250 return x;
251 }
252 double yOffset()
253 {
254 return y;
255 }
256 double angle()
257 {
258 return (180/3.14159)*atan2(y,x);//特别重要
259 }
260 double radius()
261 {
262 return sqrt(x*x+y*y);
263 }
264 };
265 int main()
266 {
267 Point p;//定义对象
268 double x,y;
269 cout<<"Enter x and y"<<endl;
270 cin>>x>>y;
271 p.Set(x,y);//访问成员函数
272 p.change();
273 cout<<"angle="<<p.angle()
274 <<",radius="<<p.radius()<<",x offset="<< p.xOffset()
275 <<", y offset="<<p.yOffset()<<endl;
276 system("pause");
277 return 1;//要有返回值
278 }
279
280 //-----------------------------
281 #include<iostream>
282 #include<iomanip>
283 using namespace std;
284 class Date
285 {
286 int year,month,day;
287 public:
288 void add(int &y,int &m,int &d);
289 void print();
290 };
291 void Date::add(int &y,int &m,int &d)//定义类的成员函数,要有预操作符
292 {
293 year=y;
294 month=m;
295 day=d;
296 int change;//判断是否是闰年
297 if(year%4==0&&year%100!=0||year%400==0)
298 change=1;
299 else
300 change=2;
301 int num[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
302 if(change==1)
303 num[2]=29;
304 if(day<=num[month]-1)//判断是否大于该月总天数
305 day=day+1;
306 else
307 {
308 day=1;
309 month++;
310 if(month>12)
311 {
312 month=1;
313 year++;
314 }//判断原时期是否是12月最后一天
315
316 }
317 }
318 //--------------------------------------------
319 void Date:: print()
320 {
321 cout<<"该日期加一天后变为"<<endl;
322 cout<<"按日,月,年的顺序输出"<<endl;
323 cout<<setfill('0');//设置日期格式
324 cout<<setw(2)<<day<<'-'<<setw(2)<<month<<'-'<<setw(4)<<year<<endl;
325
326 }
327 //-----------------------------------------
328 int main()
329 {
330 Date s;
331 cout<<"请输入年,月,日"<<endl;
332 int y,m,d;
333 cin>>y>>m>>d;
334 s.add(y,m,d);
335 s.print();
336 return 1;
337 }
338
339
340
341
342
343
344