diff options
Diffstat (limited to 'ee1301/wk5')
-rw-r--r-- | ee1301/wk5/lab4/arrayCat.cpp | 23 | ||||
-rw-r--r-- | ee1301/wk5/lab4/partner3.cpp | 63 | ||||
-rw-r--r-- | ee1301/wk5/lab4/strap012_lab4_w_2.cpp | 54 | ||||
-rw-r--r-- | ee1301/wk5/lab4/swappy.cpp | 24 | ||||
-rw-r--r-- | ee1301/wk5/lab4/time1.cpp | 24 | ||||
-rw-r--r-- | ee1301/wk5/lab4/time2.cpp | 36 |
6 files changed, 224 insertions, 0 deletions
diff --git a/ee1301/wk5/lab4/arrayCat.cpp b/ee1301/wk5/lab4/arrayCat.cpp new file mode 100644 index 0000000..1dbcb01 --- /dev/null +++ b/ee1301/wk5/lab4/arrayCat.cpp @@ -0,0 +1,23 @@ +#include <iostream> +using namespace std; +void append (char first[], int l1, char second[], int l2, char result[200]); + +int main () { + char first[] = {'I', ' ', 'a', 'm', ' '}; + char second[] = {'i', 'r', 'o', 'n', 'm', 'a', 'n', '\0'}; + char result[200]; + append(first, 5, second, 8, result); + cout << result << endl; +} + +void append (char first[],int l1, char second[],int l2, char result[200]) { + int length=0; + for (int i=0; i<l1; i++) { + result[length]=first[i]; + length++; + } + for (int i=0; i<l2; i++) { + result[length]=second[i]; + length++; + } +} diff --git a/ee1301/wk5/lab4/partner3.cpp b/ee1301/wk5/lab4/partner3.cpp new file mode 100644 index 0000000..fdddd69 --- /dev/null +++ b/ee1301/wk5/lab4/partner3.cpp @@ -0,0 +1,63 @@ +#include <iostream> + +using namespace std; + +string requestName(); +double requestHeight(string fullName); +int requestNumberOfPartners(); +void NotinMain(string array1[], double array2[], int numberOfPartners); + +int main() +{ + int numberOfPartners = requestNumberOfPartners(); + string fullName[100]; //fullName1, fullName2; + double height[100]; //height1, height2; + + // fullName[0] = requestName(); + // height[0] = requestHeight(fullName[0]); + for (int i=0; i<numberOfPartners; i++) { + fullName[i] = requestName(); + height[i] = requestHeight(fullName[i]); + } + NotinMain(fullName, height, numberOfPartners); +} + +string requestName() +{ + string name; + cout << "Please enter full name: "; + getline(cin, name); + return name; +} + +double requestHeight(string fullName) +{ + double height; + cout << "Please enter " << fullName << "'s height: "; + cin >> height; + cin.ignore(2, '\n'); // gets rid of \n in the buffer + + return height; +} + +int requestNumberOfPartners() +{ + int numberOfPartners; + cout << "How many partners are there? "; + cin >> numberOfPartners; + cin.ignore(2, '\n'); + + return numberOfPartners; +} + +void NotinMain(string array1[100], double array2[100], int numberOfPartners) { + double heightTotal=0; + cout << "If " << array1[0]; + for (int i=1; i<numberOfPartners-1; i++) { + cout << ", " << array1[i]; + heightTotal += array2[i]; + } + cout << " and " << array1[numberOfPartners-1] + << " form a human tower, their combined height will be " + << (array2[0] + heightTotal + array2[numberOfPartners-1]) << endl; + } diff --git a/ee1301/wk5/lab4/strap012_lab4_w_2.cpp b/ee1301/wk5/lab4/strap012_lab4_w_2.cpp new file mode 100644 index 0000000..1574abc --- /dev/null +++ b/ee1301/wk5/lab4/strap012_lab4_w_2.cpp @@ -0,0 +1,54 @@ +#include <iostream> +using namespace std; + +void bsort(int list[], int length); +void swap (int &a, int &b); +void printArray (int list[], int length); +void makeArray (int list[], int length); +const int n=50; + +int main () { +int list[n]; +makeArray(list,n); +bsort(list, n); +printArray(list, n); +} + +//This function makes the array used for the rest of the program. +void makeArray(int list[], int length) { + int temp=100; + for (int i=0; i<n; i++) { + list[i]=temp; + temp--; + } +} + +//This function is the algorithm. +void bsort(int list[], int length) { + for (int i=0; i<n; i++) { + for (int j=0; j<n-1; j++) { + if (list[j]>list[j+1]) { + //This is so the bubble can happen + swap(list[j], list[j+1]); + } + } + } +} + +//This function simply swaps two values so the bubbling can commence +void swap (int &a, int &b) { + int temp; + temp=a; a=b; b=temp; +} + +//This function prints the array at 5 per line. +void printArray (int list[], int length) { + int k=0; + for (int j=0; j<(n/10)*2; j++) { + for (int i=0; i<5; i++) { + cout << list[k] << " "; + k++; + } + cout << endl; + } +} diff --git a/ee1301/wk5/lab4/swappy.cpp b/ee1301/wk5/lab4/swappy.cpp new file mode 100644 index 0000000..b697ff5 --- /dev/null +++ b/ee1301/wk5/lab4/swappy.cpp @@ -0,0 +1,24 @@ +#include <iostream> +using namespace std; + +void swap (int &a, int &b); +int main(int argc, char* argv[]) { + if (argc !=2) { + cout << "Incorrect number of arguments! USAGE:" << endl + << " swappy <string>" << endl;; + return 3; + } + int i; + for (i=0; i<10000; i++) { + if (argv[1][i]=='\0') { + break; + } + } + swap(argv[1][0],argv[1][(i-1)]); + cout << argv[1] << endl; + +} +void swap (char &a, char &b) { + char temp; + temp=a; a=b; b=temp; +} diff --git a/ee1301/wk5/lab4/time1.cpp b/ee1301/wk5/lab4/time1.cpp new file mode 100644 index 0000000..75c0aab --- /dev/null +++ b/ee1301/wk5/lab4/time1.cpp @@ -0,0 +1,24 @@ +#include <iostream> +#include <string> + +using namespace std; + +int timeToMinutes(int hours, int mins); +int main() { + int hours, minutes; + char colon, cont = 'y'; + do { + cout << "Enter a time duration (hh:mm) "; + cin >> hours >> colon >> minutes; + cout << "Total minutes: " << timeToMinutes(hours, minutes) << endl; + do { + cout << "Continue? (y/n):"; + cin >> cont; + } while ( !( !(cont!='n') != !(cont!='y') ) ); + //The last logic is a XNOR gate of magic, please do not touch + } while ((cont=='y')); +} + +int timeToMinutes(int hours, int mins) { + return mins + hours * 60; +} diff --git a/ee1301/wk5/lab4/time2.cpp b/ee1301/wk5/lab4/time2.cpp new file mode 100644 index 0000000..e79cd82 --- /dev/null +++ b/ee1301/wk5/lab4/time2.cpp @@ -0,0 +1,36 @@ +#include <iostream> +#include <string> + +using namespace std; + +void minutesToTime(int minute_value, int& hours, int& mins); +int main() { + int hours, mins; + char cont = 'y'; + do { + cout << "Enter a number of minutes: "; + cin >> mins; + minutesToTime(mins, hours, mins); + cout << hours << ":"; + if (mins<10) { + cout << '0' << mins << endl; + } else { + cout << mins << endl; + } + do { + cout << "Continue? (y/n):"; + cin >> cont; + } while ( !( !(cont!='n') != !(cont!='y') ) ); + //The last logic is a XNOR gate of magic, touching will disturb the magic + } while ((cont=='y')); +} + +void minutesToTime(int minute_value, int& hours, int& mins) { + mins=minute_value%60; + hours=0; + for (int i=minute_value/60; i>0; i--) { + hours++; + if (hours>12) + hours=1; + } +} |