Making a List For My Program

Basically, I have to make a list that shows a user's distance travelled every thirty minutes. The list will stop once the distance equals the user's input.

I have everything required to do this, but I don't know how to go about it.

The list needs to be in this format (this is assuming that the user inputed 8 as their MPH and 32 as their distance):

TIME---------------------------DISTANCE
30-------------------------------4
60-------------------------------8
90-------------------------------12
120------------------------------16
150------------------------------20
180------------------------------24
210------------------------------28
240------------------------------32

The time will always go by thirty; that's always the same. The distance will go until it matches the user's inputted miles.


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
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
/*******************/
/* INCLUDE SECTION */
/*******************/
#include <apstring.cpp>			// USED FOR apstring CLASS
#include <conio.h>			// USED FOR GETCH()
#include <iocolors.h>                   // USED FOR makeWindows CLASS
#include <iostream.h>			// BASIC INPUT/OUTPUT

void main ()
{

   /*********************/
   /* VARIABLE SECTION  */
   /*********************/
   int MPH;                  	//MILES PER HOUR
   int count;                   //FOR LOOP COUNTER TO RUN PROGRAM
   int miles;			//TOTAL MILES TO DESTINATION
   apstring name;               //USER'S NAME
   int runProgram;              //NUMBER OF TIMES TO RUN PROGRAM
   int distance;	        //DISTANCE TRAVELED EVERY 30 MINS

   /****************************/
   /* USER DECRIPTION SECTION  */
   /****************************/
   makeWindows (15, 10, 65, 17, BLACK, CYAN, BLACK);
   gotoxy (22, 1);
   cout << "PROGRAM ELEVEN";
   gotoxy (8, 4);
	cout << "This program will keep track of speed";
   gotoxy (8, 5);
   cout << " over a distance inputed by a user.";
   gotoxy (13, 7);
	cout << " Press ENTER to continue...";
   getch ();

   /*****************/
   /* INPUT SECTION */
   /*****************/

   /***************************************/
   /* INPUT HOW MANY TIMES TO RUN PROGRAM */
   /***************************************/
   makeWindows (15, 10, 65, 17, BLACK, CYAN, BLACK);
   gotoxy (10, 7);
   txtcolor (RED);
   cout << "NUMBER must be a positive value!!";
   txtcolor (WHITE);
   gotoxy (5, 4);
   cout << "Input #TIMES to run the program: ";
   txtcolor (YELLOW);
   cin >> runProgram;

   /********************************************/
   /* LOOP TO ERROR CHECK TIMES TO RUN PROGRAM */
   /********************************************/
   while (runProgram<=0)
   {
      /*****************/
      /* ERROR MESSAGE */
      /*****************/
      makeWindows (15, 10, 65, 17, RED);
      gotoxy (22, 3);
      cout << "ERROR";
      gotoxy (10, 5);
      txtcolor (YELLOW);
      cout << "#TIMES ";
      txtcolor (WHITE);
      cout << "must be a POSITIVE number!";
      gotoxy (12, 7);
      cout << "Press ENTER to continue...";
      getch();

   	/********************************/
   	/* RE-INPUT #TIMES PROGRAM RUNS */
   	/********************************/
    	makeWindows (15, 10, 65, 17, BLACK, CYAN, BLACK);
      gotoxy (10, 7);
   	txtcolor (RED);
   	cout << "NUMBER must be a positive value!!";
   	txtcolor (WHITE);
   	gotoxy (5, 4);
   	cout << "Re-input #TIMES to run the program: ";
   	txtcolor (YELLOW);
   	cin >> runProgram;
   }

   /******************************************/
   /* FOR LOOP TO RUN PROGRAM MORE THAN ONCE */
   /******************************************/
   for (count = 1; count <= runProgram; count++)
   {
   	/*********************/
   	/* INPUT USER'S NAME */
   	/*********************/
   	makeWindows (15, 10, 65, 17, BLACK, CYAN, BLACK);
      gotoxy (20, 2);
      cout << "INPUT NAME ";
   	gotoxy (10, 7);
   	txtcolor (WHITE);
   	gotoxy (5, 4);
   	cout << "Input your NAME: ";
      cin >> name;

        /***************/
   	/* INPUT MILES */
   	/***************/
   	makeWindows (15, 10, 65, 17, BLACK, CYAN, BLACK);
      gotoxy (20, 2);
      txtcolor (YELLOW);
      cout << "INPUT MILES ";
   	gotoxy (10, 7);
   	txtcolor (WHITE);
   	gotoxy (5, 4);
   	cout << "Input the miles you intend to travel: ";
      cin >> miles;

        /*****************************/
   	/* LOOP TO ERROR CHECK MILES */
   	/*****************************/
   	while (miles<=0)
   		{
   		/*****************/
      		/* ERROR MESSAGE */
      		/*****************/
      		makeWindows (15, 10, 65, 17, RED);
      		gotoxy (22, 3);
      		cout << "ERROR";
      		gotoxy (13, 5);
      		txtcolor (YELLOW);
      		cout << "   MILES ";
      		txtcolor (WHITE);
      		cout << "   is too low!";
      		gotoxy (15, 7);
      		cout << "Press ENTER to continue...";
      		getch();

      		/******************/
      		/* RE-INPUT MONEY */
      		/******************/
      		makeWindows (15, 10, 65, 17, BLACK, CYAN, BLACK);
      		gotoxy (20, 2);
      		txtcolor (YELLOW);
      		cout << "INPUT MILES ";
   			gotoxy (10, 7);
   			txtcolor (WHITE);
   			gotoxy (5, 4);
   			cout << "Input the miles you intend to travel: ";
      		cin >> miles;
   		}

        /***************/
   	/* INPUT MPH  */
   	/***************/
   	makeWindows (15, 10, 65, 17, BLACK, CYAN, BLACK);
      gotoxy (20, 2);
      txtcolor (YELLOW);
      cout << "INPUT MPH ";
   	gotoxy (10, 7);
   	txtcolor (WHITE);
   	gotoxy (5, 4);
   	cout << "Input the speed you will be traveling: ";
      cin >> MPH;

      /*****************************/
   	/* LOOP TO ERROR CHECK MPH   */
   	/*****************************/
   	while (MPH<=0)
   		{
   		/*****************/
      		/* ERROR MESSAGE */
      		/*****************/
      		makeWindows (15, 10, 65, 17, RED);
      		gotoxy (22, 3);
      		cout << "ERROR";
      		gotoxy (13, 5);
      		txtcolor (YELLOW);
      		cout << "   MPH ";
      		txtcolor (WHITE);
      		cout << "   is too low!";
      		gotoxy (15, 7);
      		cout << "Press ENTER to continue...";
      		getch();

      		/****************/
      		/* RE-INPUT MPH */
      		/****************/
   		makeWindows (15, 10, 65, 17, BLACK, CYAN, BLACK);
      		gotoxy (20, 2);
      		txtcolor (YELLOW);
      		cout << "INPUT MPH ";
   			gotoxy (10, 7);
   			txtcolor (WHITE);
   			gotoxy (5, 4);
   			cout << "Input the speed you will be traveling at: ";
      		cin >> MPH;
         }
      /****************/
      /* CALCULATIONS */
      /****************/
      distance = miles / MPH / 2;

      /*******************/
      /* OUTPUT DISTANCE */
      /*******************/
      makeWindows (15, 10, 65, 17, BLACK, CYAN, BLACK);
      gotoxy (1, 2);
      txtcolor (YELLOW);
      cout << "You will be travelling ";
   	cout << distance;
      cout << " mile(s) every 30 minutes";
      getch();

      /********/
      /* LIST */
      /********/






    }
}


(Please ignore the ios.colors and make windows stuff. Those are just to make the program look nice.)

So if anyone could tell me how to make a list for my program, that would be spectacular.
Last edited on
> Please ignore the ios.colors and make windows stuff. Those are just to make the program look nice.
Then edit your post and remove those lines, so we can see the code that is related to your question.
http://www.eelis.net/iso-c++/testcase.xhtml


some things
- the header is 'iostream' no 'iostream.h' (since 1998)
- main must return int
- don't include *.cpp, link them through your project
http://www.cplusplus.com/forum/beginner/34484/#msg186410
http://www.cplusplus.com/forum/beginner/34484/#msg186414
http://www.cplusplus.com/forum/general/113904/
Yeah I'm using an old compiler/workbook.

Thanks for the bits of advice, but that doesn't help with the bigger problem here.
Are you just stuck on formatting?

There's setw in <iomanip> that lets you set the width of an output.
http://www.cplusplus.com/reference/iomanip/setw/

The first advice from almost every veteran member will be to get a newer compiler and more up-to-date workbook because we will be getting an official C++14 standard in a few months. If you are using a book/compiler that uses iostream.h then you are pre-C++98 I believe.

The reason ne555 pointed that out is because any code we show you will be C++11 standard compliant and if your compiler is running pre-C++98 code our code will likely not work for you.The other reason is that your code breaks rules that would make it not even compile under the current standard. Also, with an outdated compiler, you won't be viable for any team or company as most use newer standards.

All that said, I'll post code from a previous example I did that does similar to what you want. Bolded the parts that are from iomanip that wildblue referenced above.
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
#include <iostream>
#include <string>
#include <vector>
#include <fstream>
#include <iomanip>

using namespace std;

struct Spells{
      string name;
      int cost = 0;
	  friend ostream &operator<< (ostream &out, Spells &cSpells);
	  friend istream &operator>> (istream &in, Spells &cSpells);
};

ostream &operator<< (ostream &out, Spells &cSpells)
{
	out << setw(20) << left << cSpells.name << " :: " << setw(20) << right << cSpells.cost << endl;
	return out;
}

istream &operator>> (istream &in, Spells &cSpells)
{
	getline(in, cSpells.name);
	in >> cSpells.cost;
	in.ignore(1, '\n');
	return in;
}

int main(int argc, char **argv)
{
      vector<Spells> spellList;
      
      Spells data;
      ifstream spellFile("spells");
      if(!spellFile){
		  cout << "Can't open file.\n";
	  }
      
      while(spellFile >> data)
      {
		  spellList.push_back(data);
      }
      
      cout << setw(22) << left << "Spell Name" << setw(22) << right << "Cost in Gold" << endl;
      cout << setw(44) << setfill('=') << "" << setfill(' ') << endl;
      
      for (unsigned count = 0; count < spellList.size() - 1; count++)
      {
		  cout << spellList[count];
	  }
	  
      spellFile.close();
      
      return 0;
}
Spell Name                      Cost in Gold
============================================
Thunder              ::                  100
Fire                 ::                  100
Ice                  ::                  100
Water                ::                  100
Heal                 ::                  100
Thunder II           ::                  500
Fire II              ::                  500
Ice II               ::                  500
Water II             ::                  500
Heal II              ::                  500
Thunder III          ::                 1000
Fire III             ::                 1000
Ice III              ::                 1000
Water III            ::                 1000
Heal III             ::                 1000
Ultima               ::                 2000
Last edited on
closed account (j3Rz8vqX)
I don't know how to go about it
An example:
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
#include <iostream>
#include <windows.h>
using namespace std;
bool flush()
{
    cin.clear();
    cin.ignore(1000,'\n');
    return true;
}
bool repo(int x = 0, int y = 0)
{
    static HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
    static COORD coord;
    coord.X = x;
    coord.Y = y;
    SetConsoleCursorPosition(handle,coord);
    return true;
}
bool cls(int x=0, int y=0, int lines = 50)
{
    repo(x,y);
    for(int i=0;i<lines;++i)
    {
        for(int j=0;j<lines;++j)
            cout<<' ';
        cout<<'\n';
    }
    repo(x,y);
    return true;
}
int main()
{
    const string prompt = "Press ENTER to continue...";
    const int time = 30;
    string name;
    int program, miles, mph;

    cout << "PROGRAM ELEVEN\n";
    cout << "This program will keep track of speed\nover a distance inputed by a user.\n";
    cout<<prompt;
    cin.get();

    while(cls() && cout<<"Run the program how many times: " && (cin>>program || true) && flush() && program<=0);

    for(int i=0;i<program;++i)
    {
        cls();
        cout << "INPUT NAME \nInput your NAME: ";
        getline(cin,name);

        while(cls() && cout << "INPUT MPH \nInput the speed you will be traveling: " && (cin>>mph||true) && flush() && mph<=0);
        while(cls() && cout << "INPUT MILES \nInput the miles you intend to travel: " && (cin>>miles||true) && flush() && miles<=0);

        cls();
        cout<<"TIME\t\t\t\t\tDistance\n";
        for( float i, sum=i=(float)mph/2;sum<=miles;sum+=i)
            cout<<time*(sum/i)<<"\t\t\t\t\t"<<sum<<'\n';
        cout<<prompt;
        cin.get();
    }
    cout<<"Press <enter> to exit program: ";
    cin.get();
    return 0;
}
TIME                                    Distance
30                                      4
60                                      8
90                                      12
120                                     16
150                                     20
180                                     24
210                                     28
240                                     32
Press ENTER to continue...

Edit#1(requirements): c++98 && windows
Edit#2: Simply demonstrating a printing of the list.
Last edited on
@Dput
Problem is his compiler and workbook is pre-C++98 as it allows iostream.h and void main(){} without error. So no using namespace std;, but your code should compile if it is C++98 standard compliant. Just add .h to iostream and remove using namespace std.
Last edited on
1
2
while(cls() && cout << "INPUT MPH \nInput the speed you will be traveling: " && (cin>>mph||true) && flush() && mph<=0);
while(cls() && cout << "INPUT MILES \nInput the miles you intend to travel: " && (cin>>miles||true) && flush() && miles<=0);
that looks awful.


> Simply demonstrating a printing of the list.
I don't see a list anywhere, you are processing online


> (requirements): c++98 && windows
or just don't clear the screen...
An example:


Dput, you're a saint.
I'm going to try to put that code in, and I'll tell you if it works ASAP.
Topic archived. No new replies allowed.