#include #include #include "CPstring.h" #include "vector.h" // file: getinfo.cc // author Dietolf Ramm; date: 11/5/96 // simple info storage and retrieval system using lines of text // stored in vectors of strings const string SENTINEL = "quit"; void LoadCode(Vector & info, int & numLines) // postcondition: info contains a information from file for later search { string filename, s; cout << "Enter name of input file: "; getline(cin, filename); ifstream input; input.open(filename); while (getline(input, s)) { if (numLines >= info.Length()) { info.SetSize(2*info.Length()); cout << "vector doubled" << endl; } info[numLines] = s; numLines++; } cout << numLines << " lines read." << endl; } void Find(const Vector & info, int numLines, string request) // precondtion: info contains a information from file for search // numlines contains the number of lines of data this consists of // postcondition: lines containing request as a substring are printed { int k; for (k = 0; k < numLines; k++) { if ( info[k].Contains(request) ) cout << info[k] << endl; } } int main() { Vector info(50); int lines = 0; string request; LoadCode(info, lines); cout << "Enter search string: " ; getline(cin, request); while (request != SENTINEL) { Find(info, lines, request); cout << "Enter search string: " ; getline(cin, request); } return 0; } Sample output: getinfo Enter name of input file: /u/dr/a./nums vector doubled vector doubled vector doubled vector doubled 644 lines read. Enter search string: Hartmut Ramm 706-896-3444 Hartmut Ramm, P.O.Box 156, Young Harris, GA 30582-0156 Enter search string: 660-6905 660-6905 Karl Ramm, OIT, karl@oit.duke.edu Enter search string: Clinton Enter search string: Dean 704-251-6446 Dean (& Sue) Brock, brock@cs.unca.edu, h:704-251-9059 681-8294 Charles Byrd, Assoc Dean Acad Affairs, A&S, 111 Allen 684-4510 William H Chafe, Dean Of The Faculty, 114 Allen Bldg, Box 90046 Fax 684-8503, chafe@asdean.duke.edu 681-3267 Leigh Deneef, Assoc Dean, Graduate School 660-5389 Earl Dowell, Dean, School of Engineering, DAC 660-5389 Sue Hicks, Engineering, Dean's Office 684-8080 Katheryn Johnson, Dean Gillis' office, 114 Allen 684-6217 Norman C Keul, Assistant Dean, Director Pre-Major Advising Center, Box 90697, nkeul@pmac.duke.edu 684-5237 Thomas Mann, Asst. Dean for Admin., 104 Allen 684-6761 Melissa J Mills,Asst Dean,Computing,114 Old Chem,Box 90226, Fax: 684-8503,Melissa@ASDean.Duke.Edu 684-3465 Helen S. Moss, Sr. Admin. Asst. to Dean of Trinity, 104 Allen 684-6536 Mary Nijhout, Dean for Computer Science, 04 Allen, Box 90051 684-5080 Susan Ross,AssocDean,A&S Development,106 Allen,Box 90046, SRoss@ASDean.Duke.edu 660-5387 Marion L Shepard, Associate Dean, Engineering, 305 Teer 660-5387 Connie Simmons, Dean's Office, Teer Engineering 681-1901 William G Slebos, Asst Dean Management Services, Arts & Sciences, Box 90046, Fax: 684-8503 wslebos@acpub.duke.edu 286-5602 State Farm Insurance, Dean Richards 684-3465 Richard White, Dean, Arts & Science and Trinity College, 104 Allen 684-3465 Lee Willard,Asst Dean Acad Affrs,104 Allen, LWillard@ASDean.Duke.Edu 489-2800 684-6033 O. Dean Wilson, Tel-Com, 684-2200 684-5585 Ellen W. Wittig, Assoc. Dean, Trinity College/A&S, Rosalind (Roz) Kaplan Enter search string: quit