⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 a project of bank.cpp

📁 For about Banking system. I copy from CodeProject.com.
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	float t_balance ;
	while (file.read((char *) this, sizeof(initial)))
	{
		if (accno == t_accno)
		{
			t_balance = balance ;
			break ;
		}
	}
	file.close() ;
	return t_balance ;
}


//**********************************************************
// THIS FUNCTION RETURN 1 IF THE GIVEN ACCOUNT NO. FOUND
// IN THE FILE INITIAL.DAT
//**********************************************************

int initial :: found_account(int t_accno)
{
	fstream file ;
	file.open("INITIAL.DAT", ios::in) ;
	file.seekg(0,ios::beg) ;
	int found=0 ;
	while (file.read((char *) this, sizeof(initial)))
	{
		if (accno == t_accno)
		{
			found = 1 ;
			break ;
		}
	}
	file.close() ;
	return found ;
}


//**********************************************************
// THIS FUNCTION DRAWS THE BOX FOR THE LIST OF ACCOUNTS
//**********************************************************

void initial :: box_for_list()
{
	shape s ;
	s.box(2,1,79,25,218) ;
	s.line_hor(3,78,3,196) ;
	s.line_hor(3,78,5,196) ;
	s.line_hor(3,78,23,196) ;
	textbackground(WHITE) ;
	gotoxy(3,4) ;
	for (int i=1; i<=76; i++) cprintf(" ") ;
	textbackground(BLACK) ;
	textcolor(RED) ; textbackground(WHITE) ;
	gotoxy(4,4) ;
	cprintf("ACCOUNT NO.          NAME OF PERSON                  BALANCE") ;
	textcolor(YELLOW) ; textbackground(BLACK) ;
	int d1, m1, y1 ;
	struct date d;
	getdate(&d);
	d1 = d.da_day ;
	m1 = d.da_mon ;
	y1 = d.da_year ;
	gotoxy(4,2) ;
	cout <<"Date: " <<d1 <<"/" <<m1 <<"/" <<y1 ;
}


//**********************************************************
// THIS FUNCTION DISPLAYS THE LIST OF ACCOUNTS IN FILE
// INITIAL.DAT
//**********************************************************

void initial :: display_list(void)
{
	clrscr() ;
	box_for_list() ;
	int row=6, flag ;
	fstream file ;
	file.open("INITIAL.DAT", ios::in) ;
	while (file.read((char *) this, sizeof(initial)))
	{
		flag = 0 ;
		delay(10) ;
		gotoxy(7,row) ;
		cout <<accno ;
		gotoxy(25,row) ;
		cout <<name ;
		gotoxy(57,row) ;
		cout <<balance ;
		row++ ;
		if (row == 23)
		{
			flag = 1 ;
			row = 6 ;
			gotoxy(4,24) ;
			cout <<"Press any key to continue..." ;
			getch() ;
			clrscr() ;
			box_for_list() ;
		}
	}
	file.close() ;
	if (!flag)
	{
		gotoxy(4,24) ;
		cout <<"Press any key to continue..." ;
		getch() ;
	}
}


//**********************************************************
// THIS FUNCTION ADDS THE GIVEN DATA INTO THE FILE
// INITIAL.DAT
//**********************************************************

void initial :: add_to_file(int t_accno, char t_name[30], char t_address[60], float t_balance)
{
	accno = t_accno ;
	strcpy(name,t_name) ;
	strcpy(address,t_address) ;
	balance = t_balance ;
	fstream file ;
	file.open("INITIAL.DAT", ios::out | ios::app) ;
	file.write((char *) this, sizeof(initial)) ;
	file.close() ;
}


//**********************************************************
// THIS FUNCTION DELETES RECORD FOR THE GIVEN ACOUNT NO.
// FROM THE FILE INITIAL.DAT
//**********************************************************

void initial :: delete_account(int t_accno)
{
	fstream file ;
	file.open("INITIAL.DAT", ios::in) ;
	fstream temp ;
	temp.open("temp.dat", ios::out) ;
	file.seekg(0,ios::beg) ;
	while ( !file.eof() )
	{
		file.read((char *) this, sizeof(initial)) ;
		if ( file.eof() )
			break ;
		if ( accno != t_accno )
			temp.write((char *) this, sizeof(initial)) ;
	}
	file.close() ;
	temp.close() ;
	file.open("INITIAL.DAT", ios::out) ;
	temp.open("temp.dat", ios::in) ;
	temp.seekg(0,ios::beg) ;
	while ( !temp.eof() )
	{
		temp.read((char *) this, sizeof(initial)) ;
		if ( temp.eof() )
			break ;
		file.write((char *) this, sizeof(initial)) ;
	}
	file.close() ;
	temp.close() ;
}


//**********************************************************
// THIS FUNCTION UPDATE BALANCE FOR THE GIVEN ACOUNT NO.
// IN THE FILE INITIAL.DAT
//**********************************************************

void initial :: update_balance(int t_accno, float t_balance)
{
	int recno ;
	recno = recordno(t_accno) ;
	fstream file ;
	file.open("INITIAL.DAT", ios::out | ios::ate) ;
	balance = t_balance ;
	int location ;
	location = (recno-1) * sizeof(initial) ;
	file.seekp(location) ;
	file.write((char *) this, sizeof(initial)) ;
	file.close() ;
}


//**********************************************************
// THIS FUNCTION MODIFIES THE RECORD FOR THE GIVEN DATA
// IN THE FILE INITIAL.DAT
//**********************************************************

void initial :: modify_account(int t_accno, char t_name[30], char t_address[60])
{
	int recno ;
	recno = recordno(t_accno) ;
	fstream file ;
	file.open("INITIAL.DAT", ios::out | ios::ate) ;
	strcpy(name,t_name) ;
	strcpy(address,t_address) ;
	int location ;
	location = (recno-1) * sizeof(initial) ;
	file.seekp(location) ;
	file.write((char *) this, sizeof(initial)) ;
	file.close() ;
}


//**********************************************************
// THIS FUNCTION GIVE THE DATA TO MODIFY THE RECORD IN THE
// FILE INITIAL.DAT
//**********************************************************

void initial :: modify(void)
{
	clrscr() ;
	char t_acc[10] ;
	int t, t_accno ;
	gotoxy(71,1) ;
	cout <<"<0>=Exit" ;
	gotoxy(5,5) ;
	cout <<"Enter the account no. " ;
	gets(t_acc) ;
	t = atoi(t_acc) ;
	t_accno = t ;
	if (t_accno == 0)
		return ;
	clrscr() ;
	if (!found_account(t_accno))
	{
		gotoxy(5,5) ;
		cout <<"\7Account not found" ;
		getch() ;
		return ;
	}
	shape s ;
	s.box(2,2,79,24,218) ;
	s.line_hor(3,78,4,196) ;
	s.line_hor(3,78,22,196) ;
	gotoxy(71,1) ;
	cout <<"<0>=Exit" ;
	textbackground(BLUE) ;
	gotoxy(3,3) ;
	for (int i=1; i<=76; i++) cprintf(" ") ;
	textbackground(BLACK) ;
	textcolor(RED+BLINK) ; textbackground(BLUE) ;
	gotoxy(30,3) ;
	cprintf("MODIFY ACCOUNT SCREEN") ;
	textcolor(YELLOW) ; textbackground(BLACK) ;
	int d1, m1, y1 ;
	struct date d;
	getdate(&d);
	d1 = d.da_day ;
	m1 = d.da_mon ;
	y1 = d.da_year ;
	gotoxy(62,5) ;
	cout <<"Date: "<<d1 <<"/" <<m1 <<"/" <<y1 ;
	char ch ;
	display(t_accno) ;
	account a ;
	do
	{
		a.clear(5,13) ;
		gotoxy(5,13) ;
		cout <<"Modify this account (y/n): " ;
		ch = getche() ;
		if (ch == '0')
			return ;
		ch = toupper(ch) ;
	} while (ch != 'N' && ch != 'Y') ;
	if (ch == 'N')
		return ;
	int modified=0, valid ;
	char t_name[30], t_address[60] ;
	gotoxy(5,15) ;
	cout <<"Name    : " ;
	gotoxy(5,16) ;
	cout <<"Address : " ;
	do
	{
		a.clear(15,15) ;
		a.clear(5,23) ;
		gotoxy(5,23) ;
		cout <<"ENTER NAME " ;
		valid = 1 ;
		gotoxy(15,15) ;
		gets(t_name) ;
		strupr(t_name) ;
		if (t_name[0] == '0')
			return ;
		if (strlen(t_name) > 25)
		{
			valid = 0 ;
			gotoxy(5,23) ;
			cprintf("\7NAME SHOULD NOT GREATER THAN 25") ;
			getch() ;
		}
	} while (!valid) ;
	if (strlen(t_name) > 0)
		modified = 1 ;
	do
	{
		a.clear(15,16) ;
		a.clear(5,23) ;
		gotoxy(5,23) ;
		cout <<"ENTER ADDRESS " ;
		valid = 1 ;
		gotoxy(15,16) ;
		gets(t_address) ;
		strupr(t_address) ;
		if (t_address[0] == '0')
			return ;
		if (strlen(t_address) > 55)
		{
			valid = 0 ;
			gotoxy(5,23) ;
			cprintf("\7SHOULD NOT BLANK OR GREATER THAN 55") ;
			getch() ;
		}
	} while (!valid) ;
	if (strlen(t_address) > 0)
		modified = 1 ;
	if (!modified)
		return ;
	a.clear(5,23) ;
	do
	{
		a.clear(5,18) ;
		gotoxy(5,18) ;
		cout <<"Do you want to save changes (y/n): " ;
		ch = getche() ;
		if (ch == '0')
			return ;
		ch = toupper(ch) ;
	} while (ch != 'N' && ch != 'Y') ;
	if (ch == 'N')
		return ;
	modify_account(t_accno,t_name,t_address) ;
	gotoxy(5,21) ;
	cout <<"\7Record Modified" ;
	gotoxy(5,23) ;
	cout <<"Press any key to continue..." ;
	getch() ;
}


//**********************************************************
// THIS FUNCTION CLEAR THE GIVEN ROW AND COLUMNS
//**********************************************************

void account :: clear(int col, int row)
{
	for (int i=col; i<=78; i++)
	{
		gotoxy(i,row) ;
		cout <<" " ;
	}
}


//**********************************************************
// THIS FUNCTION ADDS THE GIVEN DATA INTO THE FILE
// BANKING.DAT
//**********************************************************

void account :: add_to_file(int t_accno, int d1, int m1, int y1, char t_tran, char t_type[10], float t_interest, float t_amount, float t_balance)
{
	fstream file ;
	file.open("BANKING.DAT", ios::app) ;
	accno = t_accno ;
	dd = d1 ;
	mm = m1 ;
	yy = y1 ;
	tran = t_tran ;
	strcpy(type,t_type) ;
	interest = t_interest ;
	amount = t_amount ;
	balance = t_balance ;
	file.write((char *) this, sizeof(account)) ;
	file.close() ;
}


//**********************************************************
// THIS FUNCTION DELETES THE RECORD FOR GIVIN ACCOUNT NO.
// FROM FILE BANKING.DAT
//**********************************************************

void account :: delete_account(int t_accno)
{
	fstream file ;
	file.open("BANKING.DAT", ios::in) ;
	fstream temp ;
	temp.open("temp.dat", ios::out) ;
	file.seekg(0,ios::beg) ;
	while ( !file.eof() )
	{
		file.read((char *) this, sizeof(account)) ;
		if ( file.eof() )
			break ;
		if ( accno != t_accno )
			temp.write((char *) this, sizeof(account)) ;
	}
	file.close() ;
	temp.close() ;
	file.open("BANKING.DAT", ios::out) ;
	temp.open("temp.dat", ios::in) ;
	temp.seekg(0,ios::beg) ;
	while ( !temp.eof() )
	{
		temp.read((char *) this, sizeof(account)) ;
		if ( temp.eof() )
			break ;
		file.write((char *) this, sizeof(account)) ;
	}
	file.close() ;
	temp.close() ;
}


//**********************************************************
// THIS FUNCTION ACCEPTS THE DATA TO ADD RECORDS IN THE
// FILE BANKING.DAT
//**********************************************************

void account :: new_account(void)
{
	char ch ;
	int i, valid ;
	clrscr() ;
	initial ini ;
	shape s ;
	s.box(2,2,79,24,218) ;
	s.line_hor(3,78,4,196) ;
	s.line_hor(3,78,22,196) ;
	gotoxy(71,1) ;
	cout <<"<0>=Exit" ;
	textbackground(BLUE) ;
	gotoxy(3,3) ;
	for (i=1; i<=76; i++) cprintf(" ") ;
	textbackground(BLACK) ;
	textcolor(RED+BLINK) ; textbackground(BLUE) ;
	gotoxy(32,3) ;
	cprintf("OPEN NEW ACCOUNT") ;
	textcolor(YELLOW) ; textbackground(BLACK) ;

	int d1, m1, y1 ;
	struct date d;
	getdate(&d);
	d1 = d.da_day ;
	m1 = d.da_mon ;
	y1 = d.da_year ;
	int t_accno ;
	t_accno = ini.last_accno() ;
	t_accno++ ;
	if (t_accno == 1)
	{
		ini.add_to_file(t_accno,"abc","xyz",1.1) ;
		ini.delete_account(t_accno) ;
		add_to_file(t_accno,1,1,1997,'D',"INITIAL",1.1,1.1,1.1) ;
		delete_account(t_accno) ;
	}
	char t_name[30], t[10], t_address[60] ;
	float t_bal=0.0, t_balance=0.0 ;

	gotoxy(5,6) ;
	cout <<"Date : "<<d1 <<"/" <<m1 <<"/" <<y1 ;
	gotoxy(5,8) ;
	cout <<"Account no. # " <<t_accno ;
	gotoxy(5,10) ;
	cout <<"Name    : " ;
	gotoxy(5,11) ;
	cout <<"Address : " ;
	gotoxy(5,12) ;
	cout <<"Name of Verifying person : " ;
	gotoxy(5,14) ;
	cout <<"Initial Deposit : " ;
	do
	{
		clear(15,10) ;
		clear(5,23) ;
		gotoxy(5,23) ;
		cout <<"ENTER NAME OF THE PERSON" ;
		valid = 1 ;
		gotoxy(15,10) ;
		gets(t_name) ;
		strupr(t_name) ;
		if (t_name[0] == '0')
			return ;
		if (strlen(t_name) == 0 || strlen(t_name) > 25)
		{
			valid = 0 ;
			gotoxy(5,23) ;
			cprintf("\7NAME SHOULD NOT BLANK OR GREATER THAN 25") ;
			getch() ;
		}
	} while (!valid) ;
	do
	{
		clear(15,11) ;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -