Question: Write DvcScheduleV1.cpp to read and parse more than 100,000 line ignore the duplicated sections (by checking the classcode- term with the section number), and find
Write DvcScheduleV1.cpp to read and parse more than 100,000 line ignore the duplicated sections (by checking the classcode- term with the section number), and find each subject code in the file. Output each code to the console screen, in alphabetical order, with the number of classes offered under that code. Use your DynamicArray template. Do NOT use any STL containers, and do NOT modify your H except to make corrections.
Note -- the dvc-schedule.txt file may contain duplicate entries. The combination of a term and section number is supposed to be unique. A duplicate entry is when the same term and section number pair appear in more than one record. Do NOT count duplicates -- skip them. That means to count a duplicate entry only once, ignoring all others. You'll need some way to track what's been counted so that you don't count the same section for the same semester more than once. When you are done processing the input file, output HOW MANY DUPLICATES you found and skipped in the input file.
I have most of the main file. I just need the sorting and output
//DynamicArray.h
#ifndef DynamicArray.h
#define DynamicArray.h
template
class DynamicArray
{
T* value;
int cap;
T dummy;
public:
DynamicArray(int cap = 2);
~DynamicArray();
DynamicArray(const DynamicArray
DynamicArray
T& operator[](int index);
T operator[](int index) const;
int capacity() const { return cap; }
void capacity(int cap);
};
template
DynamicArray
{
dummy = T();
this->cap = cap;
value = new T[cap];
for (int i = 0; i < cap; i++)
{
value[i] = T();
}
}
template
DynamicArray
{
delete[] value;
}
template
DynamicArray
{
this->cap = original.cap;
this->value = new T[cap];
for (int i = 0; i < cap; i++)
{
value[i] = original.value[i];
}
}
template
DynamicArray
{
if (this != &original)
{
delete[] value;
this->cap = original.cap;
this->value = new T[cap];
for (int i = 0; i < cap; i++)
{
value[i] = original.value[i];
}
}
return *this;
}
template
T& DynamicArray
{
if (index < 0) return dummy;
if (index >= cap) capacity(2 * index);
return value[index];
}
template
T DynamicArray
{
if (index < 0 || index >= cap)
{
return dummy;
}
return value[index];
}
template
void DynamicArray
{
if (cap < 0)
{
return;
}
T* temp = new T[cap];
int limit = (cap < this->cap) ? cap : this->cap;
for (int i = 0; i < limit; i++)
{
temp[i] = value[i];
}
for (int i = limit; i < cap; i++)
{
temp[i] = T();
}
delete[] value;
value = temp;
this->cap = cap;
}
#endif
What is written so far in main:
#define _CRT_SECURE_NO_WARNINGS #include
// Structures struct subject { string subjectCode; int count; };
int main() { DynamicArray
ifstream fin; fin.open("dvc-schedule.txt"); try { if (!fin.good()) cout << "I/O error. File can't find! "; } catch(const char* error) { cout << error << endl; }
while (fin.good()){ string line; getline(fin, line); strcpy(buf, line.c_str());
if (buf[0] == 0) continue;
const string term(token = strtok(buf, tab)); const string section((token = strtok(0, tab)) ? token : ""); const string course((token = strtok(0, tab)) ? token : ""); const string instructor((token = strtok(0, tab)) ? token : ""); const string whenWhere((token = strtok(0, tab)) ? token : ""); if (course.find('-') == string::npos) continue; const string subjectCode(course.begin(), course.begin() + course.find('-')); string classCode = term + "." + section;
int i = 0; for (i = 0; i < classIndex; i++) { if(nonDuplicateClasses[i] == classCode) break; }
if(i == classIndex) { nonDuplicateClasses[classIndex++] = classCode; } else { duplicates++; continue; }
int s = 0; for(s = 0; s < subjectIndex; s++) { if(subjectCount[s].subjectCode == subjectCode) { subjectCount[s].count++; break; } }
if(s == subjectIndex) subjectCount[subjectIndex++] = {subjectCode, 1}; count++; } }
The .txt file:
Spring 2022 1461 ADJUS-120 Jordan NOT AVAILABLE Spring 2022 1462 ADJUS-120 McLeran NOT AVAILABLE Spring 2022 1484 ADJUS-120 Weaver NOT AVAILABLE Spring 2022 5458 ADJUS-120 Morrissey NOT AVAILABLE Spring 2022 9038 ADJUS-120 Noonan NOT AVAILABLE Spring 2022 1464 ADJUS-121 Morrissey NOT AVAILABLE Spring 2022 1466 ADJUS-121 McLeran NOT AVAILABLE Spring 2022 5558 ADJUS-122 Morrissey NOT AVAILABLE Spring 2022 5467 ADJUS-124 Morrissey NOT AVAILABLE Spring 2022 2244 ADJUS-125 Martin NOT AVAILABLE Spring 2022 8477 ADJUS-130 Jordan NOT AVAILABLE Spring 2022 5628 ADJUS-139 Verbis NOT AVAILABLE Spring 2022 2774 ADJUS-203 Kimmel-Lake NOT AVAILABLE Spring 2022 5513 ADJUS-221 Sinsel NOT AVAILABLE Spring 2022 5512 ADJUS-222 Morrissey NOT AVAILABLE Spring 2022 2670 ADJUS-230 Harrison NOT AVAILABLE Spring 2022 5280 ADJUS-250 Lehman NOT AVAILABLE Spring 2022 8113 ADJUS-270 Godinez NOT AVAILABLE Spring 2022 1547 ADJUS-284 Weaver NOT AVAILABLE Spring 2022 7617 ADJUS-295 Brooks NOT AVAILABLE Spring 2022 7257 ADJUS-296 Brooks NOT AVAILABLE Spring 2022 8061 ADS-102 Ignatowski NOT AVAILABLE Spring 2022 8131 ADS-151 Mickles NOT AVAILABLE Spring 2022 8140 ADS-152 Ignatowski NOT AVAILABLE Spring 2022 8018 ADS-170 Ignatowski NOT AVAILABLE Spring 2022 5492 ADS-171 Peterson NOT AVAILABLE Spring 2022 5493 ADS-172 Peterson NOT AVAILABLE Spring 2022 1483 ANTHR-115 Johnson NOT AVAILABLE Spring 2022 1486 ANTHR-115 Johnson NOT AVAILABLE Spring 2022 3012 ANTHR-120 Eastland NOT AVAILABLE Spring 2022 3064 ANTHR-120 Eastland NOT AVAILABLE Spring 2022 8586 ANTHR-120 Eastland NOT AVAILABLE Spring 2022 1495 ANTHR-125 Bazua NOT AVAILABLE Spring 2022 1403 ANTHR-130 Bazua NOT AVAILABLE Spring 2022 1443 ANTHR-130 Bazua NOT AVAILABLE Spring 2022 5032 ANTHR-130 Nakama NOT AVAILABLE Spring 2022 9052 ANTHR-130 Hasten NOT AVAILABLE Spring 2022 1477 ANTHR-140 Cusimano NOT AVAILABLE Spring 2022 1485 ANTHR-140 Mercer NOT AVAILABLE Spring 2022 1490 ANTHR-140 Mercer NOT AVAILABLE Spring 2022 1499 ANTHR-140 Johnson NOT AVAILABLE Spring 2022 3837 ANTHR-140 Hui NOT AVAILABLE Spring 2022 5045 ANTHR-140 Nakama NOT AVAILABLE Spring 2022 5211 ANTHR-140 Hui NOT AVAILABLE Spring 2022 5375 ANTHR-140 Hui NOT AVAILABLE Spring 2022 6862 ANTHR-140 Hui NOT AVAILABLE Spring 2022 5850 ANTHR-140 Johnson NOT AVAILABLE Spring 2022 8462 ANTHR-140 Johnson NOT AVAILABLE Spring 2022 9205 ANTHR-140 Graver NOT AVAILABLE Spring 2022 9206 ANTHR-140 Smithson NOT AVAILABLE Spring 2022 1767 ANTHR-141L Mercer NOT AVAILABLE Spring 2022 2860 ANTHR-141L Mercer NOT AVAILABLE Spring 2022 2952 ANTHR-141L Mercer NOT AVAILABLE Spring 2022 3189 ANTHR-141L Cusimano NOT AVAILABLE Spring 2022 8464 ANTHR-141L Mercer NOT AVAILABLE Spring 2022 8466 ANTHR-141L Cusimano NOT AVAILABLE Spring 2022 8484 ANTHR-141L Cusimano NOT AVAILABLE
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
