From 7a73162607544204032aa66cce755daf21edebda Mon Sep 17 00:00:00 2001 From: Matt Strapp Date: Tue, 24 May 2022 11:18:46 -0500 Subject: Graduate Signed-off-by: Matt Strapp --- ee1301/wk6/lab5/Bug.cpp | 12 ++++++ ee1301/wk6/lab5/Bug.hpp | 28 +++++++++++++ ee1301/wk6/lab5/momentum.cpp | 28 +++++++++++++ ee1301/wk6/lab5/strap012_lab5_w_1.cpp | 75 +++++++++++++++++++++++++++++++++++ ee1301/wk6/lab5/vectorArray.cpp | 43 ++++++++++++++++++++ ee1301/wk6/lab5/wUp.cpp | 27 +++++++++++++ ee1301/wk6/lab5/warmup.txt | 15 +++++++ 7 files changed, 228 insertions(+) create mode 100644 ee1301/wk6/lab5/Bug.cpp create mode 100644 ee1301/wk6/lab5/Bug.hpp create mode 100644 ee1301/wk6/lab5/momentum.cpp create mode 100644 ee1301/wk6/lab5/strap012_lab5_w_1.cpp create mode 100644 ee1301/wk6/lab5/vectorArray.cpp create mode 100644 ee1301/wk6/lab5/wUp.cpp create mode 100644 ee1301/wk6/lab5/warmup.txt (limited to 'ee1301/wk6/lab5') diff --git a/ee1301/wk6/lab5/Bug.cpp b/ee1301/wk6/lab5/Bug.cpp new file mode 100644 index 0000000..b4ef154 --- /dev/null +++ b/ee1301/wk6/lab5/Bug.cpp @@ -0,0 +1,12 @@ +#include "Bug.hpp" + +int main() { + Bug buggy(10); + buggy.display(); + buggy.move(); + buggy.display(); + buggy.turn(); + buggy.display(); + buggy.move(); + buggy.display(); +} diff --git a/ee1301/wk6/lab5/Bug.hpp b/ee1301/wk6/lab5/Bug.hpp new file mode 100644 index 0000000..cc704ab --- /dev/null +++ b/ee1301/wk6/lab5/Bug.hpp @@ -0,0 +1,28 @@ +#include + +#ifndef BUG_H + +#define BUG_H +class Bug { +private: + int position, dir; +public: + Bug() { + position=0; + dir=1; + } + Bug(int pos) { + position=pos; + dir=1; + } + void move() { + position+=dir; + } + void turn() { + dir*=-1; + } + void display() { + std::cout << "position = " << position << ", direction = " << dir << std::endl; + } +}; +#endif diff --git a/ee1301/wk6/lab5/momentum.cpp b/ee1301/wk6/lab5/momentum.cpp new file mode 100644 index 0000000..dfbaeee --- /dev/null +++ b/ee1301/wk6/lab5/momentum.cpp @@ -0,0 +1,28 @@ +#include + +double momentum (double velocity, double mass); + +int main() { + double velocity[3]; + double mass; + std::cout << "Please enter velocity (x y z) [m/s]: "; + std::cin >> velocity[0] >> velocity[1] >> velocity [2]; + std::cout << "Please enter mass [kg]: "; + std::cin >> mass; + + double* vector; + vector = new double[3]; + std::cout << "Momentum: <"; + for (int i=0; i<=2; i++) { + vector[i]=momentum(velocity[i], mass); + std::cout << vector[i]; + if ((i<2)) + std::cout << ","; + } + delete[] vector; + std::cout << ">" << std::endl; +} + +double momentum(double velocity, double mass) { + return velocity * mass; +} \ No newline at end of file diff --git a/ee1301/wk6/lab5/strap012_lab5_w_1.cpp b/ee1301/wk6/lab5/strap012_lab5_w_1.cpp new file mode 100644 index 0000000..9f5e285 --- /dev/null +++ b/ee1301/wk6/lab5/strap012_lab5_w_1.cpp @@ -0,0 +1,75 @@ +#include +//#include //Needed if using MinGW + +class DeckOfCards { +private: + int index=0, deck[52]; +public: + DeckOfCards(); + void shuffle(); + int dealCard(); +}; + +void showHand(int hand[], const int size); +int main() { + srand(time(NULL)); + const int size=4; //Size can be changed for larger hands + DeckOfCards deck; + int hand[size]; + for (int i=0; i<13; i++) { + for (int j=0; j1; i--) { + j = rand() % 50 + 1; + if (j < i) { + temp=deck[i]; deck[i]=deck[j]; deck[j]=temp; + } + } +} + +//Function to deal the card when asked by grabbing from the deck and shuffling if such card does not exist. +//Returns the card drawn from the deck +int DeckOfCards::dealCard() { + index++; + if (index>=52) { + index=0; + shuffle(); + } + return deck[index]; +} \ No newline at end of file diff --git a/ee1301/wk6/lab5/vectorArray.cpp b/ee1301/wk6/lab5/vectorArray.cpp new file mode 100644 index 0000000..92d23bd --- /dev/null +++ b/ee1301/wk6/lab5/vectorArray.cpp @@ -0,0 +1,43 @@ +#include + +double randVec(); +double momentum (double velocity); +int main() { + srand(time(NULL)); + double sum[3]={0,0,0}; + double* randVel; double* momArray; + randVel = new double[1000]; + momArray = new double[1000]; + for (int i=0; i<1000; i++) { + randVel[i]=randVec(); + momArray[i]=momentum(randVel[i]); + int j=i%3; + sum[j]+=momArray[i]; + } + std::cout << '<' << sum[0]/1000.0 << ',' << sum[1]/1000.0 << ',' << sum[2]/1000.0 << '>' << std::endl; + delete[] randVel; + delete[] momArray; +} + + +double randVec() { + double vector[3]; + for (int i=0; i<3; i++) { + if (rand()%2+1==1) { + vector[i]=rand()%100+1.0; + } else { + vector[i]=rand()%100*-1.0+1.0; + } + } + return *vector; +} + +double momentum(double velocity) { + double mass; + if (rand()%2+1==0) { + mass=rand()%10+1.0; + } else { + mass=rand()%10*-1.0+1.0; + } + return mass*velocity; +} \ No newline at end of file diff --git a/ee1301/wk6/lab5/wUp.cpp b/ee1301/wk6/lab5/wUp.cpp new file mode 100644 index 0000000..0cb3957 --- /dev/null +++ b/ee1301/wk6/lab5/wUp.cpp @@ -0,0 +1,27 @@ +#include +using namespace std; + +class Point +{ + public: +void showPoint( ); +Point( ); +Point(int newX, int newY) { + xlocation = newX; + ylocation = newY; +} +int xlocation; +int ylocation; +} ; + + +int main() { + int a(1); + int b(2); + int *p1; + p1 = &a; + Point *p2 = new Point(*p1, b); + *p1 = p2->ylocation; + p2->xlocation = 10; + cout << p2->xlocation << ' ' << *p1 << ' ' << b << ' ' << a << endl; +} \ No newline at end of file diff --git a/ee1301/wk6/lab5/warmup.txt b/ee1301/wk6/lab5/warmup.txt new file mode 100644 index 0000000..e18288c --- /dev/null +++ b/ee1301/wk6/lab5/warmup.txt @@ -0,0 +1,15 @@ +1) + a. Line 5 constructs the class with no values. + b. It'll work, but it might not work well. + c. No. + d. Point(int newX, int newY); +2) + a. This changes the value xlocation and ylocation in the Point class to 3 and 10 respectively. + This changes the default values. + b. The object p1 of the class Point is initialized with an xlocation of 3 and a ylocation of 6. + c. The declaration is incorrect. + d. Line 6 is a function of return type Point with no input. + e. Point p2; +3) + a. 10 2 2 2 + b. The array is not deleted (memory leak) -- cgit v1.2.3