Great Deal! Get Instant $10 FREE in Account on First Order + 10% Cashback on Every Order Order Now

Adsız Assignment 71 (300 Points) PART I Question 1 In this question, you will read words from a file and place them into an array of type string. 1-...

1 answer below »
Adsız
Assignment    71    
(300    Points)    
    
PART    I    
    
Question    1    
    
In    this    question,    you    will    read    words    from    a    file    and    place    them    into    an    a
ay    of    type    
string.    
1- Make    a    data    text    file    “words.txt”    –    that    contains    one    word    on    each    line.    Use    at    
least    20    words.    
2- Now    write    a    program    that    reads    the    words    in    the    file    into    an    a
ay    of    strings    
(a    repeated    word    should    not    be    inserted    into    the    a
ay    –    your    program    
should    not    allow    that    and    you    should    make    sure    your    data    file    has    duplicate    
words    to    test    this    functionality).    Make    your    a
ay    size    enough    to    hold    1000    
words.    To    read    the    words    into    the    a
ay,    you    should    make    a    function    that    
takes    a    string    a
ay,    a        data    size    integer    (dsize)    by    reference    and    an    ifstream    –    
please    look    at    the    example    we    did    in    class.        
3- Declare    your    a
ay    and    file    streams    in    main    and    call    the    function    that    reads    
the    data    into    the    a
ay.    
4- Write    a    printA
ay    function    that    takes    a    string    a
ay,    the    dsize    and    an    
ostream    object    so    that    you    could    print    to    the    console    or    to    an    output    file.    
5- Print    your    a
ay    from    main    by    calling    the    printA
ay    function    –    once    to    the    
console    and    once    to    a    file    “wordsoutput.txt”.    
6- Use    the    selectionSort    Algorithm    that    we    covered    in    class    to    sort    the    a
ay.    
7- Repeat    #5    and    make    sure    the    a
ay    is    sorted.    
8- Find    the    maximum    string    and    the    minimum    string    in    the    a
ay    (remember    
a
ays    are    compared    based    on    the    ASCII    value).    
9- Write    a    function    that    takes    a    string    and    converts    every    character    of    it    to    
uppercase.    Now    call    that    function    from    a    function    that    you    pass    the    a
ay    and    
dsize    to,    to    uppercase    all    words    in    the    a
ay    (convert    all    words    in    the    a
ay    to    
uppercase    letter)    and    call    that    from    main    passing    your    a
ay    to    that    function.    
Print    the    a
ay.    
    
Question    2    
    
A. In    this    question,    you    will    read    two    data    files    that    include    integers    into    two    
different    a
ays    –    the    same    way    we    did    in    class    (but    we    are    doing    to    a
ays    
here).    Duplicates    are    ok.    
    
1- After    you    read    the    data    into    the    a
ay    (use    one    function    that    takes    an    int    
a
ay    and    a    dsize    by    reference    just    like    we    did    in    class,    and    call    that    from    
main    to    fill    both    a
ays).    
                                                                                                                                                                                                                                
1    All    numbers    in    this    assignment    should    be    formatted    to    2    decimal    points.    
2- Include    a    printA
ay    function    so    that    you    could    print    the    two    a
ays.    Use    
a
ay    size    1000.    
3- Use    a    sort    algorithm    to    sort    both    a
ays.    
4- Now    write    a    compareOrder    function    that    takes    two    a
ays    and    their    data    
sizes.    If    the    data    size    is    the    same    and    every    element    in    the    first    a
ay    is    equal    
to    element    in    the    same    co
esponding    position    in    the    second    a
ay    (both    
sorted)    –    then    the    a
ays    are    equal    (return    0).    If    the    very    first    element    that    is    
different    is    larger    in    one    a
ay    than    the    other    a
ay    then    the    first    a
ay    is    
larger    (return    1)    otherwise    (return    -1).    If    the    dsizes    are    different,    the    longer    
a
ay    is    larger    (return    1    if    a
ay1    is    larger    than    a
ay    2    and    -1    otherwise).    
5- Call    the    compareOrder    function    from    main    passing    your    two    a
ays    and    their    
co
esponding    dsizes    and    give    appropriate    messages.    (Please    see    Hint    -    
equired).    
6- Now    write    a    compareSum    to    compare    the    two    a
ays    based    on    the    sum    of    
their    elements    –    follow    the    same    theme    of    returning    0,1    or    -1    –    and    call    from    
main    with    appropriate    messaging    (please    see    Hint    -    required).    
    
B. Make    a    new    program.    Copy    all    your    code    and    it    change    it    so    that    it    uses    a    
vector    instead    of    an    a
ay.    You    don’t    have    to    use    a    preset    size    for    the    vector.    
    
Hint:    Instead    of    calling    compareOrder    and    CompareSum    and    including    logic    code    for    
messaging    in    main    (ugly),    write    a    void    wrapper    function    compare    that    would    take    a    
compare    type,    the    a
ays    and    their    dsizes    and    will    call    the    appropriate    compare    
function    with    the    a
ays    and    the    dsizes    and    produce    the    appropriate    messaging).    
    
    
Part    II    
    
Your     task     is     to     read     a     file     that     consists     of     credit     card     accounts,     calculate     interest    
charges,    update    the    balance    and    write    the    information    to    a    new    file.    
    
Tasks    
A.     Open    a    text    file    and    type    at    least    ten    records    (each    full    record    of    an    account    
should     be     on     a     separate     line) 2 .     Each     record     will     consist     of     the     following     items    
separated    by    spaces:    
    
1- Credit    Card    (16    digits    –    no    dashes    or    spaces    –    you    should    consider    these    as    
characters    because    you    will    not    do    any    arithmetic    operations    on    credit    card    
numbers).    You    should    use    a    string    variable    for    credit    card    number.    
2- First    Name.    
3- Last    Name.    
4- Interest    Rate    (between    11.4%    and    24.9%)    
                                                                                                                                                                                                                                
2    Please    don’t    use    TextEdit    on    the    Mac    to    create    your    text    data.    Download    Sublime    
and    use    that    as    your    text    editor    –    otherwise,    you    may    have    problems.    
5- Balance    from    Previous    statement.    
6- Cu
ent    charges.    
    
Save    the    file    as    “balances.txt”3.    
    
B.     Now    write    a    C++    program    that    would    read    each    record,    calculate    the    interest    
charges    on    the    previous    balance    for    the    cu
ent    period    (one    month),    add    the    cu
ent    
charges,    calculate     the    new    balance    and    write    out     the    same    record     format    with    the    
newly     calculated     balance     (and     0     cu
ent     charges     of     course).     Name     the     file    
“newbalance.txt”.     You     should     use     a     function     that     returns     a     double     to     make     the    
calculation    of     the    new    balance.    Your     function    should     take    parameters    of          (interest    
ate,    previous    balance,     and    cu
ent     charges)    and     return    new    balance.    Please    don’t    
forget    to    divide    the    interest    rate    by    12    to    get    the    monthly    rate.    
    
C.    Run    your    program.    Paste    your    code    into    a    word    document,    take    screen    shots    (no    
phone     pictures)     of     the     output.     Please     upload     the    word     document     along    with     your    
“balance.txt”    and    “newbalance.txt”    files    to    BB.    
    
Part    III    
    

1- Write     a     struct     or     a     class     PersonType     which     will     have    
firstName,    lastName,    eID    (as    an    int),    salary,    and    title    
    
2- Write    a    struct    or    a    class    CompanyType    that    will    have    an    cID,    
Name,    City,    State    and    Employee    as    an    a
ay    of    PersonType    –    
let    us    limit    our    exercise    to    companies    of    size    1000    or    less    –    
and    the    number    of    employees    as    members.    
    
3- Hide     all     variables     for     EmployeeType     and     CompanyType     –    
except    the    a
ay    in    CompamyType.    
    
4- Write    parameterized    constructors     for    each    struct/class    –    a    
person    can    be    instantiated    by    all    its    attributes    except    salary    
and     title.     A     company     can     be     instantiated     by     ID,     name     and    
cu
ent     number     of     employees     (start    with     0     at     the     time     of    
instantiation).    
    
5- Write    appropriate    getters    and    setters    for    each.    To    return    a    
list     of     the     employees     of     the     company,     you     obviously     can’t    
eturn    an    a
ay.    But    if    you    use    a    vector    you    could.    Ignore    that    
particular     getter     –     and     I     will     do     that     part     with     you     on    
                                                                                                                                                                                                                                
3    Please    make    sure    your    cursor    is    at    the    end    of    the    last    record    not    at    the    beginning    of    
a    new    line.    
Thursday.    
    
    
6- Add     a     void     method     hire     to     CompanyType     that     takes     as    
parameter     a     PersonType,     salary,     title.     The    method     should    
add    an    employee    to    the    a
ay    of    employees    of    that    company,    
and    set    the    salary    and    title    of    that    Person.    
7- Add     a     method     to     Employee     called     giveRaise     with     a    
percentage.    
    
8- In    main()    –        
    
a. Make    a    data    file    that    includes    employees,    and    another    
one     that     includes     companies,     load     them     in,     and    
Instantiate     a     the     Companies     and     Persons     –    making    
sure    that    an    employee    works    for    an    existing    company    
in     the     company     file     –     if     an     employee     works     for     a    
company    that    does    not    exist    in    the    company    file,    you    
need    to    add    the    company    –    your    logic    should    be    able    
to    do    this.    
. Declare    a    an    a
ay    or    a    vector    of    CompanyType    and    
add    all    companies    to    the    a
ay    or    vector.    
c. Loop     through     companies     and     print     each     company    
followed    by    the    employees    working    in    the    company.    
d. Print    the    avg    salary    per    company.    
e. Print    the    total    avg    salary    across    companies.    
f. Assume     each     company    will     give     a     raise     that     ranges    
etween    3%-5%.    Assign    such    a    raise    to    each    company    
andomly     and     then     give     its     employees     a     raise,     and    
edo    parts    d    and    e.    
g. Sort    all    employees    of    all    companies    by    salary    
h. Sort    all    companies    by    the    avg    of    their    salaries.    
i. Write     a     method     or     methods     to     have     an     employee    
move    from    one    company    to    another.    
    



    
    
    
    
    
    
    
    
Submission    
    
1- Submit    your    cpp    files    pasted    in    a    word    document.    Paste    the    code    not    an    
image.    
2- Submit    the    data    files    you    used    separately    as    files    not    pasted    in    the    word    
document.    
3- Include    a    screenshot    of    every    output    for    each    case.    No    screenshots    =    
ZERO.    You    must    paste    the    screenshot    with    the    appropriate    question    in    
the    word    document    –    I    will    not    accept    image    files.    You    need    to    follow    
instructions    of    how    to    submit.    
4- For    Question    2    of    Part    I,    please    make    different    sets    of    two    data    files    to    
test    your    code    for    all    cases.
Answered Same Day May 05, 2021

Solution

Kashish answered on May 06 2021
153 Votes
Part-1 Question-1
*Question 1
In this question, you will read words from a file and place them into an a
ay of type string.
1- Make a data text file “words.txt†– that contains one word on each line. Use at least 20 words.
2- Now write a program that reads the words in the file into an a
ay of strings (a repeated word should not be inserted into the a
ay – your program should not allow that and you should make sure your data file has duplicate words to test this functionality). Make your a
ay size enough to hold 1000 words. To read the words into the a
ay, you should make a function that takes a string a
ay, a data size integer (dsize) by reference and an ifstream – please look at the example we did in class.
3- Declare your a
ay and file streams in main and call the function that reads the data into the a
ay.
4- Write a printA
ay function that takes a string a
ay, the dsize and an ostream object so that you could print to the console or to an output file.
5- Print your a
ay from main by calling the printA
ay function – once to the console and once to a file “wordsoutput.txtâ€.
6- Use the selectionSort Algorithm that we covered in class to sort the a
ay.
7- Repeat #5 and make sure the a
ay is sorted.
8- Find the maximum string and the minimum string in the a
ay (remember a
ays are compared based on the ASCII value).
9- Write a function that takes a string and converts every character of it to uppercase. Now call that function from a function that you pass the a
ay and dsize to, to uppercase all words in the a
ay (convert all words in the a
ay to uppercase letter) and call that from main passing your a
ay to that function. Print the a
ay.

*
*******************************************************************
#include#include#includeusing namespace std;
int const ARRAY_SZ = 50;
void toUpperString(string &s){
for(int i=0;i s[i]=toupper(s[i]);
}
}
string getMin(string const a[], int const dsize){
string min = a[0];
for(int i=1;i if (a[i] min = a[i];
}
}
return min;
}
string getMax(string const a[], int const dsize){
string max = a[0];
for(int i=0;i if (a[i]>max){
max = a[i];
}
}
return max;
}
ool openifile(string filename, ifstream &fin){
fin.open(filename.c_str());
if(!fin){ cout
"E
or opening input file.."
endl; return false;}
return true;
}
ool openofile(string filename, ofstream &fout){
fout.open(filename.c_str());
if(!fout){ cout
"E
or opening output file.."
endl; return false;}
return true;
}
ool found(string words[],string word,int dsize){
for(int i=0;i if(words[i]==word)
return true;
}
return false;
}
void readWords(string words[],int &dsize,ifstream &fin){
int i=0;
while(!fin.eof()){
string word;
fin
word;
if (found(words,word,i)){
cout
word
" already exists in the a
ay - skipping"
endl;
continue;
}
words[i] = word;
i++;
}
dsize = i;
}
void printWordsA
ay(string words[],int const dsize, ostream &out){
for(int i=0;i out
words[i]
endl;
}
}
void swap(string &a, string &b){
string temp;
temp = a;
a=b;
b=temp;
}
void selectionSort(string a[],int dsize){

int i;
for(i=0;i int locmin = i;
for(int j=i+1;j if(a[j] locmin=j;
}

if(locmin!=i){
swap(a[locmin],a[i]);
}
}
}
void toUpperStringA
ay(string words[],int dsize){
for(int i=0;i toUpperString(words[i]);
}
}
int main(){

string words[ARRAY_SZ];
int dsize=0;
string ifilename = "words.txt";
string ofilename = "wordsoutput2.txt";
ifstream fin;
ofstream fout;
if(!openifile(ifilename,fin)){ exit(1);}
readWords(words,dsize,fin);
cout
dsize
" words have been read into the a
ay.."
endl;
if(!openofile(ofilename,fout)){exit(1);}
printWordsA
ay(words,dsize,cout);
printWordsA
ay(words,dsize,fout);
selectionSort(words,dsize);
cout
"==================="
endl;
printWordsA
ay(words,dsize,cout);
cout
"MinWord="
getMin(words,dsize)
'\t'
"MaxWord="
getMax(words,dsize)
endl;
toUpperStringA
ay(words,dsize);
cout
"==============="
endl;
printWordsA
ay(words,dsize,cout);

return 0;
}
Part-1 Question-2
*
Question 2

In this question, you will read two data files that include integers into two different a
ays – the same way we did in class (but we are doing to a
ays here). Duplicates are ok.

1- After you read the data into the a
ay (use one function that takes an int a
ay and a dsize by reference just like we did in class, and call that from main to fill both a
ays).
2- Include a printA
ay function so that you could print the two a
ays. Use a
ay size 1000.
3- Use a sort algorithm to sort both a
ays.
4- Now write a compareOrder function that takes two a
ays and their data sizes. If the data size is the same and every element in the first a
ay is equal to element in the same co
esponding position in the second a
ay (both sorted) – then the a
ays are equal (return 0). If the very first element that is different is larger in one a
ay than the other a
ay then the first a
ay is larger (return 1) otherwise (return -1). If the dsizes are different, the longer a
ay is larger (return 1 if a
ay1 is larger than a
ay 2 and -1 otherwise).
5- Call the compareOrder function from main passing your two a
ays and their co
esponding dsizes and give appropriate messages. (Please see Hint - required).
6- Now write a compareSum to compare the two a
ays based on the sum of their elements – follow the same theme of returning 0,1 or -1 – and call from main with appropriate messaging (please see Hint - required).

Hint: Instead of calling compareOrder and CompareSum and including logic code for messaging in main (ugly), write a void wrapper function compare that would take a compare type, the a
ays and their dsizes and will call the appropriate compare function with the a
ays and the dsizes and produce the appropriate messaging).


*
#include#include#includeusing namespace std;
int const ARRAY_SZ = 1000;
ool openofile(string filename, ofstream &fout){
...
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here