Advertisement
Guest User

Untitled

a guest
Nov 19th, 2017
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.85 KB | None | 0 0
  1.  
  2. #include<iostream>
  3. #include<iomanip>
  4. #include<cstdlib>
  5. #include<ctime>
  6. #include<fstream>
  7. using namespace std;
  8.  
  9. class Array
  10. {
  11. public:
  12. Array();
  13. void load();
  14. void printData();
  15. void reverse();
  16. void asort();
  17. void dsort();
  18. void calcavg();
  19. void savefile(char[]);
  20. void retrieve(char[]);
  21. void add(Array, Array);
  22. void sub(Array, Array);
  23.  
  24. private:
  25. int numbers[10];
  26. };
  27.  
  28. Array::Array()
  29. {
  30. for (int i = 0; i < 10; i++)
  31. numbers[i] = 0;
  32. }
  33. void Array::load()
  34. {
  35. for (int i = 0; i < 10; i++)
  36. numbers[i] = (rand()%100)+1;//1 to 100
  37. //cout <<"First array"<< n1[i] << endl;
  38. }
  39. void Array::printData()
  40. {
  41. for (int i = 0; i < 10; i++)
  42. cout << numbers[i] << endl;
  43. cout << endl << endl << endl;
  44. }
  45. void Array::reverse()
  46. {
  47. int dummy[10];
  48. for (int i = 0; i < 10; i++)
  49. {
  50. dummy[i] = numbers[i];
  51. }
  52. cout << endl;
  53. for (int i = 0; i < 10; i++)
  54. {
  55. int n = 9 - i;
  56. numbers[i] = dummy[n];
  57. }
  58. printData();
  59.  
  60. }
  61. void Array::asort()
  62. {
  63.  
  64. for (int j = 0; j < 10; j++)
  65. for (int i = 0; i <9; i++)//change i max to 9
  66. if (numbers[i] > numbers[i+1])
  67. {
  68. int temp = numbers[i];
  69. numbers[i] = numbers[i + 1];
  70. numbers[i + 1] = temp;
  71. }
  72. printData();
  73.  
  74. }
  75. void Array::dsort()
  76. {
  77. int temp;
  78. for (int j = 0; j < 10; j++)
  79. for (int i = 0; i < 10; i++)
  80. if (numbers[i] < numbers[i + 1])
  81. {
  82. temp = numbers[i];
  83. numbers[i] = numbers[i + 1];
  84. numbers[i + 1] = temp;
  85. }
  86. printData();
  87.  
  88.  
  89. }
  90. void Array::calcavg()
  91. {
  92. int max = numbers[0];
  93. for (int i = 1; i < 10; i++)
  94. if (numbers[i] > max)
  95. max = numbers[i];
  96.  
  97. int min = numbers[0];
  98. for (int i = 1; i < 10; i++)//dont need the braces on this for loop since if is technically 1 statement
  99. if (numbers[i] < min)
  100. min = numbers[i];
  101.  
  102. int sum = 0;
  103. for (int i = 0; i < 10; i++)
  104. sum += numbers[i];
  105.  
  106. int avg = (sum - max - min) / 8; //wants the lowest and highest numbers to be excluded from avg
  107. cout << "Average is" << endl << avg << endl << endl;
  108. }
  109. void Array::savefile(char d[])
  110. {
  111. ofstream outfile(d, ios::out);
  112. for (int i = 0; i < 10; i++)
  113. {
  114. outfile << numbers[i] << endl;
  115. }
  116. outfile.close();
  117. }
  118. void Array::retrieve(char d[])
  119. {
  120. ifstream infile(d, ios::in);//after file is received we print array again
  121. for (int i = 0; i < 10; i++)
  122. {
  123. infile >> numbers[i];
  124.  
  125. }
  126. infile.close();
  127. cout << "Printing Array 1" << endl;
  128. printData();
  129. }
  130. void Array::add(Array a, Array b)
  131. {
  132. for (int i = 0; i < 10; i++)
  133. numbers[i] = a.numbers[i] + b.numbers[i];
  134. cout << "Sum array (Descending order of A+B)" << endl;
  135. printData();
  136. }
  137. void Array::sub(Array a, Array b)
  138. {
  139. for (int i = 0; i < 10; i++)
  140. numbers[i] = a.numbers[i] - b.numbers[i];
  141. cout << "Difference array (Descending order of A-B)" << endl;
  142. printData();
  143. }
  144.  
  145. int main()
  146. {
  147. srand(time(NULL));
  148. Array a,b,sum,difference;
  149. char d[20];
  150. char e[20];
  151. a.load();
  152. cout << "Array A:" << endl;
  153. a.printData();
  154. cout << "Array B:" << endl;
  155. b.load();
  156. b.printData();
  157. cout << "Reverse of A" << endl;
  158. a.reverse();
  159. cout << "Reverse of B" << endl;
  160. b.reverse();
  161. cout << "Ascending Order of A" << endl;
  162. a.asort();
  163. cout << "Descending Order of A" << endl;
  164. a.dsort();
  165. a.calcavg();
  166. cout << "Enter name for text file A" << endl;
  167. cin >> d;
  168. cout << "Enter name for text file B" << endl;
  169. cin >> e;
  170. a.savefile(d);
  171. b.savefile(e);
  172. a.retrieve(d);
  173. b.retrieve(e);
  174. sum.add(a, b);
  175. cout << "Reverse of sum" << endl;
  176. sum.reverse();
  177. difference.sub(a, b);
  178. cout << "Reverse of difference" << endl;
  179. difference.reverse();
  180. system("PAUSE");
  181. }
  182. //Array A :
  183. //1
  184. //51
  185. //2
  186. //40
  187. //93
  188. //28
  189. //23
  190. //15
  191. //35
  192. //67
  193. //
  194. //
  195. //
  196. //Array B :
  197. //21
  198. //21
  199. //89
  200. //48
  201. //75
  202. //17
  203. //72
  204. //61
  205. //46
  206. //8
  207. //
  208. //
  209. //
  210. //Reverse of A
  211. //
  212. //67
  213. //35
  214. //15
  215. //23
  216. //28
  217. //93
  218. //40
  219. //2
  220. //51
  221. //1
  222. //
  223. //
  224. //
  225. //Reverse of B
  226. //
  227. //8
  228. //46
  229. //61
  230. //72
  231. //17
  232. //75
  233. //48
  234. //89
  235. //21
  236. //21
  237. //
  238. //
  239. //
  240. //Ascending Order of A
  241. //1
  242. //2
  243. //15
  244. //23
  245. //28
  246. //35
  247. //40
  248. //51
  249. //67
  250. //93
  251. //
  252. //
  253. //
  254. //Descending Order of A
  255. //93
  256. //67
  257. //51
  258. //40
  259. //35
  260. //28
  261. //23
  262. //15
  263. //2
  264. //1
  265. //
  266. //
  267. //
  268. //Average is
  269. //32
  270. //
  271. //Enter name for text file A
  272. //Array1.txt
  273. //Enter name for text file B
  274. //Array2.txt
  275. //Printing Array 1
  276. //93
  277. //67
  278. //51
  279. //40
  280. //35
  281. //28
  282. //23
  283. //15
  284. //2
  285. //1
  286. //
  287. //
  288. //
  289. //Printing Array 1
  290. //8
  291. //46
  292. //61
  293. //72
  294. //17
  295. //75
  296. //48
  297. //89
  298. //21
  299. //21
  300. //
  301. //
  302. //
  303. //Sum array(Descending order of A + B)
  304. //101
  305. //113
  306. //112
  307. //112
  308. //52
  309. //103
  310. //71
  311. //104
  312. //23
  313. //22
  314. //
  315. //
  316. //
  317. //Reverse of sum
  318. //
  319. //22
  320. //23
  321. //104
  322. //71
  323. //103
  324. //52
  325. //112
  326. //112
  327. //113
  328. //101
  329. //
  330. //
  331. //
  332. //Difference array(Descending order of A - B)
  333. //85
  334. //21
  335. //- 10
  336. //- 32
  337. //18
  338. //- 47
  339. //- 25
  340. //- 74
  341. //- 19
  342. //- 20
  343. //
  344. //
  345. //
  346. //Reverse of difference
  347. //
  348. //- 20
  349. //- 19
  350. //- 74
  351. //- 25
  352. //- 47
  353. //18
  354. //- 32
  355. //- 10
  356. //21
  357. //85
  358. //
  359. //
  360. //
  361. //Press any key to continue . . .
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement