URGENT HELP (FIRST-YEAR PROGRAMMING)

I don't know how to do this thing. Please copy and paste my code and try to fix it then resend it here fixed. I tried but I cannot do this for 6 days. Please show me the full code. I am new to this programming world, I hope you understand my state.

Thank you in advance!


THIS IS WHAT I HAVE TO HAVE AS AN OUTPUT

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Name Sorting
Enter the file name: names.txt
1. Sort names by surnames then first names
2. Sort names by first names then surnames
Enter your sorting choice: 1
-----------------------------------------------------
Surname First Name
-----------------------------------------------------
Adams Grace
Adams Hein
Adams Samantha
Babajide Pretty
chadwick billy
deWet Abel
Olivier Vreda
Venter Charlie
Name Sorting
-----------------------------------------------------
Enter the file name: names.txt
1. Sort names by surnames then first names
2. Sort names by first names then surnames
Enter your sorting choice: 2
-----------------------------------------------------
Surname First Name
-----------------------------------------------------
deWet Abel
chadwick billy
Venter Charlie
Adams Grace
Adams Hein
4
Babajide Pretty
Adams Samantha
Olivier Vreda






THE FOLLOWING IS MY CODE:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
#include <iostream>
#include <string>
#include <fstream>

using namespace std;

size_t readNames(string filename, string surnames[], string firstnames[]);
void sortSurnameFirst (string [], string[], size_t);
void displayNames (string [], string[], size_t);
void sortFirstNames (string [], string [], size_t);

int main()
{
int const SIZE = 1000;
size_t count = 0;
int choice;

string names[SIZE];
string surnames[SIZE];

ifstream inputFile;
    string filename;
    int number;

    cout << "Enter the file name: ";
    cin >> filename;

    inputFile.open(filename.c_str());

if(inputFile)
{

while(count <SIZE && inputFile>>surnames[count] >> names[count])
{
count ++;
}

inputFile.close();

cout << " 1. Sort names by surnames then first names "<<endl;
cout << " 2. Sort names by first names then by surnames "<<endl;
cout<< "Enter your sorting choice: " ;
cin >> choice;

if (choice == 1)
{
cout<< "The names are sorted by surnames then first names"<<endl;
sortSurnameFirst (surnames, names,count);
displayNames(surnames, names,count);
}

if (choice == 2)
{
cout<< "The names are sorted by first names then surnames"<<endl;
sortSurnameFirst (surnames, names,count);
displayNames(surnames, names,count);
}

}

else
{
cout << "The following file doesnt exist" << endl;
}



return 0;
}






void sortSurnameFirst (string surnames[], string names[], size_t size)
{
bool swap;
string sort ;
string temp;
do
{
swap = false;
for (size_t i =0; i < size ; i++)
{
if (surnames[i] > surnames[i++])
{
sort = surnames[i];
surnames[i] = surnames[i++];
surnames[i++] = sort ;
swap = true;


}


if ( surnames[i] == surnames[i++] )
{
if (names[i] > names[i++] )
{
temp= names[i];
names[i] = names[i++];
names[i++] = temp ;
sort = surnames[i];
surnames[i] = surnames[i++];
surnames[i++] = sort ;

swap = true;
}
}



}

}
while (swap);
}


void displayNames( string surnames[], string names[], size_t size )
{

for ( size_t i =0; i < (size - 1) ; i++)
{
cout << surnames[i]<<" " << names[i] << endl;
}
}


void sortFirstNames (string surnames[], string names[], size_t size)
{
bool swap;
string sort1, temp1;
do
{
swap = false;

for ( size_t i =0; i < size ; i++)
{
if ( names[i] >names[i++] )
{
sort1 = names[i];
names[i] = names[i++];
names[i++] = sort1 ;
swap = true;

}
if ( names[i] == names[i++] )
{
if (surnames[i] > surnames[i++] )
{
temp1 = surnames[i];
surnames[i] = surnames[i++];
surnames[i++] = temp1 ;
sort1 = names[i];
names[i] = names[i++];
names[i++] = sort1 ;
swap = true;
}
}



}

}while (swap);
}


Last edited on
Please copy and paste my code and try to fix it then resend it here fixed.

nah
Hello MasterKay,

Kiryu has given you a response that most here will give you if they were to respond.

I have shown you a place to start:
http://www.cplusplus.com/forum/beginner/214897/#msg999629 and
http://www.cplusplus.com/forum/beginner/214897/#msg999647
yet I see by your code that you have made no attempt to change anything. I will help you figure this program out, but you need to make some attempt to show that you are tying. If you want to have someone else write the program for you try a Google search on the parts of the program you do not understand.

Some parts of your program are good and will work others need a little work, but your sort functions need a total rework from what you have.

I see now that if the last names are the same you want to arrange them by first name. The concept of your sort function is good, but you are going about it the wrong way.

Do not work on the whole program at one time. Break it down into smaller pieces and when they work add more.

Hope that helps,

Andy

P.S. Changing the name of the topic does not elicit a better response.
Last edited on
May I add that you also don't tell us what the problem is so I'm not going to bother to also find the problem and solve it.
Topic archived. No new replies allowed.