can't control the table alignment

hi,
i want the function to display all accounts deposit list to work properly,
what i mean is that the table coming has its contents here and there .
i want to align them properly.
program in comment
thanks in advance
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
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
//***************************************************************
//                   HEADER FILES USED IN PROJECT
//****************************************************************

#include<iostream>
#include<fstream>
#include<ctype.h>
#include<iomanip>
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<conio.h>
#include<string>

using namespace std;
int c=0;


//****************************************************************
//                   CLASS USED IN PROJECT
//****************************************************************


class account
{
	int acno;
	char name[50];
	int deposit;
	char type;
public:
	void create_account();	//function to get data from user
	void show_account() const;	//function to show data on screen
	void modify();	//function to add new data
	void dep(int);	//function to accept amount and add to balance amount
	void draw(int);	//function to accept amount and subtract from balance amount
	void report() const;	//function to show data in tabular format
	int retacno() const;	//function to return account number
	int retdeposit() const;	//function to return balance amount
	char rettype() const;	//function to return type of account
};         //class ends here

void account::create_account()
{
    

std::cout<<"===============================================================";
	std::cout<<"\t\t\t    *****NEW ACCOUNT*****\n";
	std::cout<<"==========================================================";
	std::cout<<"\nEnter The 5-Digit Account No. :";
	std::cin>>acno;
	std::cout<<"\nEnter The Name Of The Account Holder : ";
	std::cin.ignore();
	std::cin.getline(name,50);
	again:
	std::cout<<"\nEnter Type Of The Account (C/S) : ";
	type=getche();
	type=toupper(type);
	if((type=='C')||(type=='S'))  {}
	else
    {
        cout<<"\n Incorrect Account Type, Enter Again  ";
        goto again;
    }

	std::cout<<"\n\nEnter The Initial amount : ";
	std::cin>>deposit;
	std::cout<<"\n\n\nAccount Created..";
}

void account::show_account() const
{
	std::cout<<"\nAccount No. : "<<acno;
	std::cout<<"\nAccount Holder Name : ";
	std::cout<<name;
	std::cout<<"\nType of Account : "<<type;
	std::cout<<"\nBalance amount : "<<deposit;
}


void account::modify()
{
	std::cout<<"\nAccount No. : "<<acno;
	std::cout<<"\nModify Account Holder Name : ";
	std::cin.ignore();
	std::cin.getline(name,50);
	std::cout<<"\nModify Type of Account (S for saving,C for current): ";
	again:
	type=getche();
	type=toupper(type);
	if((type=='C')||(type=='S'))  {}
	else
    {
        cout<<"\n Incorrect Account Type, Enter Again      ";
        goto again;
    }
	std::cout<<"\nModify Balance amount : ";
	std::cin>>deposit;
}


void account::dep(int x)
{
	deposit+=x;
}

void account::draw(int x)
{
	deposit-=x;
}

void account::report() const
{
    cout.setf(ios::fixed);
    cout.setf(ios::left);
	std::cout<<std::setw(5)<<acno<<std::setw(9)<<" "<<name;
	std::cout<<std::setw(1)<<"                       "<<type;
	std::cout<<std::setw(1)<<"                       "<<deposit<<endl;
}


int account::retacno() const
{
	return acno;
}

int account::retdeposit() const
{
	return deposit;
}

char account::rettype() const
{
	return type;
}


//****************************************************************
//    	function declaration
//****************************************************************
int write_account();	//function to write record in binary file
void display_sp(int);	//function to display account details given by user
int modify_account(int);	//function to modify record of file
int delete_account(int);	//function to delete record of file
void display_all();		//function to display all account details
void deposit_withdraw(int, int);//function to desposit/withdraw
void intro();	//introductory screen function
void about();   //about the program

//****************************************************************
//    	THE MAIN FUNCTION OF PROGRAM
//****************************************************************


int main()
{
             SetConsoleTitle(“Bank Management System – Designed By ALOK RAJAWAT”);
	char ch;
	int num;

	if(::c==0)
        intro();
    ::c+=1000;
	do
	{
		system("cls");
		std::cout<<"\n\n\n\tMAIN MENU";
		std::cout<<"\n\n\t1. NEW ACCOUNT";
		std::cout<<"\n\n\t2. DEPOSIT AMOUNT";
		std::cout<<"\n\n\t3. WITHDRAW AMOUNT";
		std::cout<<"\n\n\t4. BALANCE ENQUIRY";
		std::cout<<"\n\n\t5. ALL ACCOUNT HOLDER LIST";
		std::cout<<"\n\n\t6. CLOSE AN ACCOUNT";
		std::cout<<"\n\n\t7. MODIFY AN ACCOUNT";
   	             std::cout<<"\n\n\t8. ABOUT";
		std::cout<<"\n\n\t9. EXIT";
		std::cout<<"\n\n\tSelect Your Option (1-9) ";
		ch=getche();
		system("cls");
		switch(ch)
		{
		case '1':
		    int z;
			z=write_account();
			if(z==1000)
                    write_account();
            if(z==-1000)
			        main();
			        break;
		case '2':
		    std::cout<<"===============================================================";
		    std::cout<<"\t\t\t    *****DEPOSIT MONEY*****\n";
		    std::cout<<"===============================================================";
			std::cout<<"\n\n\tEnter The account No. : "; std::cin>>num;
			deposit_withdraw(num, 1);
			break;
		case '3':
		    std::cout<<"================================================================";
		    std::cout<<"\t\t\t    *****CASH WITHDRAWAL*****\n";
		    std::cout<<"================================================================";
			std::cout<<"\n\n\tEnter The account No. : "; std::cin>>num;
			deposit_withdraw(num, 2);
			break;
		case '4':
		    std::cout<<"================================================================";
		    std::cout<<"\t\t\t    *****BALANCE ENQUIRY*****\n";
		    std::cout<<"================================================================";
			std::cout<<"\n\n\tEnter The account No. : "; std::cin>>num;
			display_sp(num);
			break;
		case '5':
			display_all();
			break;
		case '6':
		    std::cout<<"================================================================";
		    std::cout<<"\t\t\t    *****CLOSE ACCOUNT*****\n";
		    std::cout<<"================================================================";
			std::cout<<"\n\n\tEnter The account No. : "; std::cin>>num;
			delete_account(num);
			break;
        case '7':
            std::cout<<"================================================================";
            std::cout<<"\t\t\t    *****ACCOUNT MODIFICATION*****\n";
            std::cout<<"================================================================";
			std::cout<<"\n\n\tEnter The account No. : "; std::cin>>num;
			modify_account(num);
			break;
        case '8':
            about();
            break;
		case '9':
		    std::cout<<"================================================================";
		    std::cout<<"================================================================";
		    std::cout<<"================================================================";
			std::cout<<"\n\t Thanks for using my program.";
			std::cout<<"\n\t Hope You Liked It.\n";
			std::cout<<"\n\t DESIGNED BY    :   ALOK RAJAWAT";
			std::cout<<"\n\t SCHOOL         :   KENDRIYA VIDYALAY AKKULAM";
			std::cout<<"\n\t DESIGNED IN    :   CODE::BLOCKS\n\n";
			std::cout<<"==========================================================";
			std::cout<<"==========================================================";
			std::cout<<"==========================================================";
			std::cout<<"\n\n\n\n\tPress Enter To Exit........";
			getchar();   exit(1);
			break;
		 default :std::cout<<"\a";
		}
		std::cin.ignore();
		std::cin.get();
	}while(ch!='8');
	return 0;
}
Last edited on
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
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
//****************************************************************
//    	function to write in file
//****************************************************************

int write_account()
{
	account ac;
	ofstream outFile;
	outFile.open("account.dat",ios::binary|ios::app);
	ac.create_account();
	outFile.write(reinterpret_cast<char *> (&ac), sizeof(account));
	outFile.close();
	int cho;
	std::cout<<"\n\n\t\tDo You Want To Create Another Account(Y/N)?";
	cho=getche();
	cho=toupper(cho);
	std::cout<<endl;
	if(cho=='Y')
    {
        return (1000);
        cho='E';
    }
    if(cho=='N')
        {
            return (-1000);
            cho='E';
        }
}

//****************************************************************
//    	function to read specific record from file
//****************************************************************

void display_sp(int n)
{
	account ac;
	bool flag=false;
	ifstream inFile;
	inFile.open("account.dat",ios::binary);
	if(!inFile)
	{
		std::cout<<"File could not be open !! Press any Key...";
		return;
	}
	std::cout<<"\nBALANCE DETAILS\n";

    	while(inFile.read(reinterpret_cast<char *> (&ac), sizeof(account)))
	{
		if(ac.retacno()==n)
		{
			ac.show_account();
			flag=true;
		}
	}
	inFile.close();
	if(flag==false)
		std::cout<<"\n\nAccount number does not exist";
}


//****************************************************************
//    	function to modify record of file
//****************************************************************

int modify_account(int n)
{
	bool found=false;
	account ac;
	fstream File;
	File.open("account.dat",ios::binary|ios::in|ios::out);
	if(!File)
	{
		std::cout<<"File could not be open !! Press any Key...";
		return 0;
	}
	while(!File.eof() && found==false)
	{
		File.read(reinterpret_cast<char *> (&ac), sizeof(account));
		if(ac.retacno()==n)
		{
			ac.show_account();
			std::cout<<"\n\nEnter The New Details of account"<<endl;
			ac.modify();
			int pos=(-1)*static_cast<int>(sizeof(account));
			File.seekp(pos,ios::cur);
			File.write(reinterpret_cast<char *> (&ac), sizeof(account));
			std::cout<<"\n\n\t Record Updated";
			found=true;
		  }
	}
	File.close();
	if(found==false)
		std::cout<<"\n\n Record Not Found ";
}

//****************************************************************
//    	function to delete record of file
//****************************************************************


int delete_account(int n)
{
	account ac;
	ifstream inFile;
	ofstream outFile;
	inFile.open("account.dat",ios::binary);
	if(!inFile)
	{
		std::cout<<"File could not be open !! Press any Key...";
		return 0;
	}
	outFile.open("Temp.dat",ios::binary);
	inFile.seekg(0,ios::beg);
	while(inFile.read(reinterpret_cast<char *> (&ac), sizeof(account)))
	{
		if(ac.retacno()!=n)
		{
			outFile.write(reinterpret_cast<char *> (&ac), sizeof(account));
		}
	};
	inFile.close();
	outFile.close();
	remove("account.dat");
	rename("Temp.dat","account.dat");
	std::cout<<"\n\n\tRecord Deleted ..";

}

//****************************************************************
//    	function to display all accounts deposit list
//****************************************************************

void display_all()
{
	account ac;
	ifstream inFile;
	inFile.open("account.dat",ios::binary);
	if(!inFile)
	{
		std::cout<<"File could not be open !! Press any Key...";
		return;
	}
	std::cout<<"==========================================================";
	std::cout<<"\n\t\tACCOUNT HOLDER LIST\n\n";
	std::cout<<"==========================================================";
	std::cout<<"A/c no.       NAME                        Type                    Balance\n";
	std::cout<<"==========================================================";
	while(inFile.read(reinterpret_cast<char *> (&ac), sizeof(account)))
	{
		ac.report();
	}
	inFile.close();
}

//****************************************************************
//    	function to deposit and withdraw amounts
//****************************************************************

void deposit_withdraw(int n, int option)
{
	int amt;
	bool found=false;
	account ac;
	fstream File;
	File.open("account.dat", ios::binary|ios::in|ios::out);
	if(!File)
	{
		std::cout<<"File could not be open !! Press any Key...";
		return;
	}
	while(!File.eof() && found==false)
	{
		File.read(reinterpret_cast<char *> (&ac), sizeof(account));
		if(ac.retacno()==n)
		{
			ac.show_account();
			if(option==1)
			{
				std::cout<<"\n\n\tTO DEPOSITE AMOUNT ";
				std::cout<<"\n\nEnter The amount to be deposited";
				std::cin>>amt;
				ac.dep(amt);
			}
			if(option==2)
			{
				std::cout<<"\n\n\tTO WITHDRAW AMOUNT ";
				std::cout<<"\n\nEnter The amount to be withdraw";
				std::cin>>amt;
				int bal=ac.retdeposit()-amt;
				if((bal<500 && ac.rettype()=='S') || (bal<1000 && ac.rettype()=='C'))
					std::cout<<"Insufficience balance";
				else
					ac.draw(amt);
			}
			int pos=(-1)*static_cast<int>(sizeof(ac));
			File.seekp(pos,ios::cur);
			File.write(reinterpret_cast<char *> (&ac), sizeof(account));
			std::cout<<"\n\n\t Record Updated";
			found=true;
	       }
         }
	File.close();
	if(found==false)
		std::cout<<"\n\n Record Not Found ";
}


//****************************************************************
//    	INTRODUCTION FUNCTION
//****************************************************************


void intro()
{
	std::cout<<"\n\n\n\t\t********** BANK MANAGEMENT SYSTEM **********\n\n\n\n";
   std::cout<<"\t        ______________________________________________\n";
   std::cout<<"\t        |                                            |";
	std::cout<<"\n\t\t|          DESIGNED BY : ALOK RAJAWAT        |\n";
	 std::cout<<"\t        |                                            |";
	std::cout<<"\n\t\t|     SCHOOL : KENDRIYA VIDYALAYA AKKULAM    |\n";
	 std::cout<<"\t        |                                            |";
	std::cout<<"\n\t\t|           WRITTEN IN CODE::BLOCKS          |\n";
   std::cout<<"\t        |____________________________________________|\n";
	std::cin.get();
}

//***************************************************************
//    			ABOUT
//***************************************************************

void about()
  {
    std::cout<<"================================================================";
    std::cout<<"\n\t\t\t  BANK MANAGEMENT SYSTEM\n\n";
    std::cout<<"================================================================";
    std::cout<<"(WRITTEN IN CODE::BLOCKS)\n";
    std::cout<<"================================================================";
    std::cout<<"\n\n  This Program Can Be Used For The Following: ";
    std::cout<<"\n  1. Creating A New Bank Account";
    std::cout<<"\n  2. Modify Existing Account";
    std::cout<<"\n  3. Close Existing Account";
    std::cout<<"\n  4. Depositing Money";
    std::cout<<"\n  5. Withdrawing Money";
    std::cout<<"\n  6. Balance Enquiry";
    std::cout<<"\n  7. Get Details Of All Accounts\n";
    std::cout<<"================================================================";
    std::cout<<"\n\t Press Enter To Return.......";
    getchar();
    main();

  }

//***************************************************************
//    			END OF PROJECT
//***************************************************************
plz someone reply
Next time only post the code that is relevant to your problem. I assume this would be the display_all function()? If you want neat columns you'll have to mess around with setw (http://www.cplusplus.com/reference/iomanip/setw/ ) on your output.
Also, I noticed at the very end of last code you posted (line 249) you're calling main(). Don't do that.
Last edited on
@booradley60
->next time i will do that only.

-> the page you gave does not exist and i've already tried playing w/ setw() but doesn't worked in this...

->i'm calling main() just to return to the main body of the program. but can you explain the problem in it?

thanks for replying
the page you gave does not exist

If you look at the URL, it's obviously just that the closing bracket, ), is being appended. The page has exactly the URL that
booradley said:

http://www.cplusplus.com/reference/iomanip/setw/

i'm calling main() just to return to the main body of the program. but can you explain the problem in it?
The problem is that it's not legal in C++. If it's working on your compiler then that's an extension that the people who wrote your compiler decided to add, but it's not legal as per the C++ standard.
but I've tried calling main in 4 versions of borland, 2 versions of C::B and Dev c++, it went fine.....
but still my problem goes unresolved...
anyone?
but I've tried calling main in 4 versions of borland, 2 versions of C::B and Dev c++, it went fine.....

Undefined behaviour is undefined. The fact remains that it is not legal C++.

Last edited on
1) Don't call main(). Ever. For any reason.

2) Don't post all day moaning about someone not fixing the problem.

3) Your problem was already solved. http://www.cplusplus.com/reference/iomanip/setw/

4) Don't ignore help from grey wolf.
Last edited on
Topic archived. No new replies allowed.