资源描述
银行账目管理系统说明书
一:需求分析
经过和银行工作人员交流了解:伴随银行业务推陈出新和这些业务为用户带来便利,使银行吸引了越来越多用户,一切全部使银行帐目标管理越来越关键。
银行帐目管理系统是针对银行帐目标日常管理而设计。银行操作系统不仅要求操作方便而且要求界面简练,它需要实现帐目管理,用户查询和查询统计等多个功效。其中帐目管理又包含了开户、销户、存款、取款和修改信息功效。用户能够经过不一样方法来查询需要信息。
经过该系统设计实现,使银行部门愈加好地进行业务管理,为用户提供更佳优质服务。
二:组员分工
杨修丽 :界面和类实现中信息录入,删除和查询。
何 颖 :菜单和类实现中设置输入格式和信息修改。
姜佳宁 :类定义和对文件输入,修改。
三:系统总框图
银行管理系统
用户信息录入
用户信息修改
用户信息删除
用户信息查询
退出系统
四:运行环境
Microsoft Visual C++。
五:每个模块设计分析
1.类定义:
class astronaut
{
private:
int maxnum;
int sno;
int capital;
float rate;
char name[5];
char sex[2];
char pnum[10];
char folk[2];
char telephone[10];
char address[30];
char time[2];
public:
astronaut();
~astronaut();
void enter();
void display();
void setsno(int temp);
int getsno();
char *getname();
void change();
void read();
void write();
};
2.类实现:
astronaut::astronaut()
{}
astronaut::~astronaut()
{}
int astronaut::getsno()
{
return sno;
}
char *astronaut::getname()
{
return name;
}
void astronaut::setsno(int temp)
{
sno=temp;
}
void astronaut::enter()
{
//对信息输入
}
void astronaut::display()
{
cout<<setw(4)<<sno<<setw(4)<<name<<setw(4)<<sex<<setw(4)<<folk<<setw(8)<<pnum<<setw(8)<<
telephone<<setw(8)<<address<<setw(4)<<capital<<setw(4)<<rate<<setw(4)<<time<<endl;
}
void astronaut::change()
{
//对信息修改
}
3.对文件管理:
astronaut information;
void menu()
{
cout<<"请选择操作(0——4) "<<endl;
cout<<" "<<endl;
}
void read()
{
ifstream afile("astronaut.txt",ios::nocreate);
afile.read((char*)&information,sizeof information);
}
void write()
{
ofstream bfile("astronaut.txt",ios::app);
bfile.write((char*)&information,sizeof information);
}
void input(void)
{
char ch;
information.enter();
write();
cout<<"你还要输入下一位用户信息吗(Y/N)!"<<endl;
cin>>ch;
if(ch=='Y'||ch=='y')
{
input();
}
}
void change()
{
//对文件信息修改
}
void omit()//删除函数
{
//对文件信息删除
}
void output()
{
//对文件查询
}
4.界面实现:
void select()//选择菜单函数
{
利用switch语句进行编写从0到4各个出口,假如输入不是0到4数,则default:
default :
menu();
cout<<"输入无效请重新输入(0——4)"<<endl;
break;
}
void main()
{
cout<<"姓名: 杨修丽 学号:131038 班级:电子091班 "<<endl;
cout<<" "<<endl;
cout<<"姓名: 何 颖 学号:131009 班级:电子091班 "<<endl;
cout<<" "<<endl;
cout<<"姓名: 姜佳宁 学号:131012 班级:电子091班 "<<endl;
cout<<" "<<endl;
cout<<"课程设计名称:银行用户信息管理系统"<<endl;
cout<<" "<<endl;
cout<<"操作步骤:"<<endl;
cout<<" "<<endl;
cout<<" 输入“1”——用户信息录入"<<endl;
cout<<" "<<endl;
cout<<" 输入“2”——用户信息修改"<<endl;
cout<<" "<<endl;
cout<<" 输入“3”——用户信息删除"<<endl;
cout<<" "<<endl;
cout<<" 输入“4”——用户信息查询"<<endl;
cout<<" "<<endl;
cout<<" 输入“0”——退出系统"<<endl;
cout<<" "<<endl;
menu();
select();
}
六:列出全部定义函数及说明
class astronaut //银行用户信息类
{
private:
int maxnum;
int sno;
int capital;
float rate;
char name[5];
char sex[2];
char pnum[10];
char folk[2];
char telephone[10];
char address[30];
char time[2];
public:
astronaut();
~astronaut();
void enter();
void display();
void setsno(int temp);
int getsno();
char *getname();
void change();
void read();
void write();
};
astronaut::astronaut() //结构函数,函数体为空
{}
astronaut::~astronaut() //析构函数 ,函数体为空
{}
int astronaut::getsno() //返回用户帐号
{
return sno;
}
char *astronaut::getname() //返回用户姓名
{
return name;
}
void astronaut::setsno(int temp) //设置用户姓名
{
sno=temp;
}
void astronaut::enter() //将信息传入文件
{
ifstream tfile("max.txt",ios::binary|ios::nocreate); // ifstream默认以输入//方法打开文件,而ofstream默认以输出方法打开文件。比如:
//ifstream file2("c:pdos.def");是以输入方法打开文件。
//ofstream file3("c:x.123");是以输出方法打开文件。
if(tfile) //假如tfile不为空
{
tfile.read((char *)&maxnum,sizeof maxnum);
}
else
{
maxnum=1;
}
tfile.close();
sno=maxnum++;
ofstream ofile("max.txt");
ofile.write((char*)&maxnum,sizeof maxnum);
tfile.close();
cout<<"输入用户信息"<<endl;
cout<<"用户姓名:"<<endl;
cin>>name;
cout<<"性别(男——A,女——B):"<<endl;
cin>>sex;
while(strcmp(sex,"A")!=0&&strcmp(sex,"B")!=0) //设置用户性别,不是AB则错误。
{
cout<<"错误请重新输入!"<<endl;
cin>>sex;
}
cout<<"居民身份证号码:"<<endl;
cin>>pnum;
cout<<"民族:"<<endl;
cin>>folk;
cout<<"联络电话:"<<endl;
cin>>telephone;
cout<<"家庭住址:"<<endl;
cin>>address;
cout<<"本金"<<endl;
cin>>capital;
cout<<"利率"<<endl;
cin>>rate;
cout<<"存款日期"<<endl;
cin>>time;
cout<<"到期日期"<<endl;
cin>>time;
}
void astronaut::display() //设置用户信息怎样显示
{ //set(4),则表示以后面设置变量占地地方小于4时等于4,大于时是本身大小。
cout<<setw(4)<<sno<<setw(4)<<name<<setw(4)<<sex<<setw(4)<<folk<<setw(8)<<pnum<<setw(8)<<
telephone<<setw(8)<<address<<setw(4)<<capital<<setw(4)<<rate<<setw(4)<<time<<endl;
}
void astronaut::change() 对用户信息修改
{
cout<<"请输入要修改用户信息:"<<endl;
cout<<"姓名是不是要改写(Y/N)"<<endl;
char ch;
cin>>ch;
if(ch=='Y'||ch=='y')
{
cout<<"请输入新姓名:"<<endl;
cin>>name;
}
cout<<"性别(男——A,女——B):"<<endl;
cin>>sex;
if (strcmp(sex,"A")!=0&&strcmp(sex,"B")!=0)
{
cout<<"错误请重新输入!:"<<endl;
cin>>sex;
}
cout<<"居民身份证号码:"<<endl;
cin>>pnum;
cout<<"民族:"<<endl;
cin>>folk;
cout<<"联络电话:"<<endl;
cin>>telephone;
cout<<"家庭住址:"<<endl;
cin>>address;
cout<<"本金"<<endl;
cin>>capital;
cout<<"利率"<<endl;
cin>>rate;
cout<<"存款日期"<<endl;
cin>>time;
cout<<"到期日期"<<endl;
cin>>time;
cout<<"你刚刚输入用户信息以下:"<<endl;
display();
}
void menu() //菜单项
{
cout<<"请选择操作(0——4) "<<endl;
cout<<" "<<endl;
}
void read() //对文件读
{
ifstream afile("astronaut.txt",ios::nocreate);
afile.read((char*)&information,sizeof information);
}
void write() //对文件中用户写入
{
ofstream bfile("astronaut.txt",ios::app);
bfile.write((char*)&information,sizeof information);
}
void input(void) //对文件中用户输入
{
char ch;
information.enter();
write();
cout<<"你还要输入下一位用户信息吗(Y/N)!"<<endl;
cin>>ch;
if(ch=='Y'||ch=='y')
{
input();
}
}
void change() //对文件中用户修改
{
int ch,p=0,l=0;
cout<<"请输入你要修改用户号码:"<<endl;
cin>>ch;
ifstream efile("astronaut.txt",ios::nocreate);
while(efile.good())
{
efile.seekg(sizeof(information)*p);
if(efile.read((char *) &information,sizeof information))
{
if(ch==information.getsno())
{
information.display();
ch=0;
information.change();
ofstream ffile("astronaut.txt",ios::nocreate|ios::in);
ffile.seekp(sizeof(information)*p);
ffile.write((char *) &information,sizeof information);
ffile.close();
l++;
return;
}
}
p++;
}
efile.close();
if(l!=1)
cout<<"没有你所要修改用户信息!"<<endl;
}
void omit() //对文件中用户删除
{
int ch;
cout<<"请输入要删除用户号码:"<<endl;
cin>>ch;
ifstream out("astronaut.txt",ios::nocreate);
ofstream in("astronaut1.txt",ios::trunc);
while(out)
{
if(out.read((char*)&information,sizeof information))
if(ch!=information.getsno())
{
in.write((char*)&information,sizeof information);
}
}
in.close();
out.close();
ofstream gfile("astronaut.txt",ios::trunc);
gfile.close();
ifstream ifile("astronaut1.txt",ios::nocreate);
ofstream hfile("astronaut.txt",ios::trunc);
while(ifile)
{
if(ifile.read((char*)&information,sizeof information))
hfile.write((char *)&information,sizeof information);
}
ifile.close();
hfile.close();
}
void output() //查询
{
int i=0;
ifstream cfile("astronaut.txt",ios::nocreate);
while(cfile)
{
if( cfile.read((char *)&information,sizeof information))
{
information.display();
i++;
}
}
if(i!=0)
cout<<"一共有"<<i<<"个用户信息"<<endl;
else
cout<<"还没有输入用户信息"<<endl;
}
void select() //选择菜单函数
{
int ch;
do{
cin>>ch;
switch(ch)
{
case 1:
input();
menu();
break;
case 2:
change();
menu();
break;
case 3:
omit();
menu();
break;
case 4:
output();
menu();
break;
case 5:
output();
menu();
break;
case 0:
exit(0);
menu();
break;
default :
menu();
cout<<"输入无效请重新输入(0——5)"<<endl;
break;
}
}while(1);
}
void main() //主函数,界面
{
cout<<"姓名: 杨修丽 学号:131038 班级:电子091班 "<<endl;
cout<<" "<<endl;
cout<<"姓名: 何 颖 学号:131009 班级:电子091班 "<<endl;
cout<<" "<<endl;
cout<<"姓名: 姜佳宁 学号:131012 班级:电子091班 "<<endl;
cout<<" "<<endl;
cout<<"课程设计名称:银行用户信息管理系统"<<endl;
cout<<" "<<endl;
cout<<"操作步骤:"<<endl;
cout<<" "<<endl;
cout<<" 输入“1”——用户信息录入"<<endl;
cout<<" "<<endl;
cout<<" 输入“2”——用户信息修改"<<endl;
cout<<" "<<endl;
cout<<" 输入“3”——用户信息删除"<<endl;
cout<<" "<<endl;
cout<<" 输入“4”——用户信息查询"<<endl;
cout<<" "<<endl;
cout<<" 输入“0”——退出系统"<<endl;
cout<<" "<<endl;
menu();
select();
}
七:使用说明(操作手册)
八:程序源代码:
#include<iostream.h>
#include<string.h>
class astronaut
{
private:
int maxnum;
int sno;
int capital;
float rate;
char name[5];
char sex[2];
char pnum[10];
char folk[2];
char telephone[10];
char address[30];
char time[2];
public:
astronaut();
~astronaut();
void enter();
void display();
void setsno(int temp);
int getsno();
char *getname();
void change();
void read();
void write();
};
#include<iostream.h>
#include<iomanip.h>
#include<string.h>
#include<fstream.h>
#include<stdio.h>
astronaut::astronaut()
{}
astronaut::~astronaut()
{}
int astronaut::getsno()
{
return sno;
}
char *astronaut::getname()
{
return name;
}
void astronaut::setsno(int temp)
{
sno=temp;
}
void astronaut::enter()
{
ifstream tfile("max.txt",ios::binary|ios::nocreate);
if(tfile)
{
tfile.read((char *)&maxnum,sizeof maxnum);
}
else
{
maxnum=1;
}
tfile.close();
sno=maxnum++;
ofstream ofile("max.txt");
ofile.write((char*)&maxnum,sizeof maxnum);
tfile.close();
cout<<"输入用户信息"<<endl;
cout<<"用户姓名:"<<endl;
cin>>name;
cout<<"性别(男——A,女——B):"<<endl;
cin>>sex;
while(strcmp(sex,"A")!=0&&strcmp(sex,"B")!=0)
{
cout<<"错误请重新输入!"<<endl;
cin>>sex;
}
cout<<"居民身份证号码:"<<endl;
cin>>pnum;
cout<<"民族:"<<endl;
cin>>folk;
cout<<"联络电话:"<<endl;
cin>>telephone;
cout<<"家庭住址:"<<endl;
cin>>address;
cout<<"本金"<<endl;
cin>>capital;
cout<<"利率"<<endl;
cin>>rate;
cout<<"存款日期"<<endl;
cin>>time;
cout<<"到期日期"<<endl;
cin>>time;
}
void astronaut::display()
{
cout<<setw(4)<<sno<<setw(4)<<name<<setw(4)<<sex<<setw(4)<<folk<<setw(8)<<pnum<<setw(8)<<
telephone<<setw(8)<<address<<setw(4)<<capital<<setw(4)<<rate<<setw(4)<<time<<endl;
}
void astronaut::change()
{
cout<<"请输入要修改用户信息:"<<endl;
cout<<"姓名是不是要改写(Y/N)"<<endl;
char ch;
cin>>ch;
if(ch=='Y'||ch=='y')
{
cout<<"请输入新姓名:"<<endl;
cin>>name;
}
cout<<"性别(男——A,女——B):"<<endl;
cin>>sex;
if (strcmp(sex,"A")!=0&&strcmp(sex,"B")!=0)
{
cout<<"错误请重新输入!:"<<endl;
cin>>sex;
}
cout<<"居民身份证号码:"<<endl;
cin>>pnum;
cout<<"民族:"<<endl;
cin>>folk;
cout<<"联络电话:"<<endl;
cin>>telephone;
cout<<"家庭住址:"<<endl;
cin>>address;
cout<<"本金"<<endl;
cin>>capital;
cout<<"利率"<<endl;
cin>>rate;
cout<<"存款日期"<<endl;
cin>>time;
cout<<"到期日期"<<endl;
cin>>time;
cout<<"你刚刚输入用户信息以下:"<<endl;
display();
}
#include<iostream.h>
#include<fstream.h>
#include<string.h>
#include<iomanip.h>
#include<stdlib.h>
astronaut information;
void menu()
{
cout<<"请选择操作(0——4) "<<endl;
cout<<" "<<endl;
}
void read()
{
ifstream afile("astronaut.txt",ios::nocreate);
afile.read((char*)&information,sizeof information);
}
void write()
{
ofstream bfile("astronaut.txt",ios::app);
bfile.write((char*)&information,sizeof information);
}
void input(void)
{
char ch;
information.enter();
write();
cout<<"你还要输入下一位用户信息吗(Y/N)!"<<endl;
cin>>ch;
if(ch=='Y'||ch=='y')
{
input();
}
}
void change()
{
int ch,p=0,l=0;
cout<<"请输入你要修改用户号码:"<<endl;
cin>>ch;
ifstream efile("astronaut.txt",ios::nocreate);
while(efile.good())
{
efile.seekg(sizeof(information)*p);
if(efile.read((char *) &information,sizeof information))
{
if(ch==information.getsno())
{
information.display();
ch=0;
information.change();
ofstream ffile("astronaut.txt",ios::nocreate|ios::in);
ffile.seekp(sizeof(information)*p);
ffile.write((char *) &information,sizeof information);
ffile.close();
l++;
return;
}
}
p++;
}
efile.close();
if(l!=1)
cout<<"没有你所要修改用户信息!"<<endl;
}
void omit()//删除函数
{
int ch;
cout<<"请输入要删除用户号码:"<<endl;
cin>>ch;
ifstream out("astronaut.txt",ios::nocreate);
ofstream in("astronaut1.txt",ios::trunc);
while(out)
{
if(out.read((char*)&information,sizeof information))
if(ch!=information.getsno())
{
in.write((char*)&information,sizeof information);
}
}
in.close();
out.close();
ofstream gfile("astronaut.txt",ios::trunc);
gfile.close();
ifstream ifile("astronaut1.txt",ios::nocreate);
ofstream hfile("astronaut.txt",ios::trunc);
while(ifile)
{
if(ifile.read((char*)&information,sizeof information))
hfile.write((char *)&information,sizeof information);
}
ifile.close();
hfile.close();
}
void output()
{
int i=0;
ifstream cfile("astronaut.txt",ios::nocreate);
while(cfile)
{
if( cfile.read((char *)&information,sizeof information))
{
information.display();
i++;
}
}
if(i!=0)
cout<<"一共有"<<i<<"个用户信息"<<endl;
else
cout<<"还没有输入用户信息"<<endl;
}
void select()//选择菜单函数
{
int ch;
do{
cin>>ch;
switch(ch)
{
case 1:
input();
menu();
break;
case 2:
change();
menu();
break;
case 3:
omit();
menu();
break;
case 4:
output();
menu();
break;
case 5:
output();
menu();
break;
case 0:
exit(0);
menu();
break;
default :
menu();
cout<<"输入无效请重新输入(0——5)"<<endl;
break;
}
}while(1);
}
void main()
{
cout<<"姓名: 杨修丽 学号:131038 班级:电子091班 "<<endl;
cout<<" "<<endl;
cout<<"姓名: 何 颖 学号:131009 班级:电子091班 "<<endl;
cout<<" "<<endl;
cout<<"姓名: 姜佳宁 学号:131012 班级:电子091班 "<<endl;
cout<<" "<<endl;
cout<<"课程设计名称:银行用户信息管理系统"<<endl;
cout<<" "<<endl;
cout<<"操作步骤:"<<endl;
cout<<" "<<endl;
cout<<" 输入“1”——用户信息录入"<<endl;
cout<<" "<<endl;
cout<<" 输入“2”——用户信息修改"<<endl;
cout<<" "<<endl;
cout<<" 输入“3”——用户信息删除"<<endl;
cout<<" "<<endl;
cout<<" 输入“4”——用户信息查询"<<endl;
cout<<" "<<endl;
cout<<" 输入“0”——退出系统"<<endl;
cout<<" "<<endl;
menu();
select();
}
九:结束语:
经过此次课程设计,我们学到了很多东西,不仅巩固和提升了对C++类定义和实现和文件输入输出应用,也对她们概念有了一个全新了解,而且让我明白一个程序编写是大家努力共同结果,不是一个人就能做好,也使我们小组同学愈加团结,同时,对C++了解也更深刻,编程时千万要小心,不能因为括号或分号直接错误而造成运行不过去。
因为这是我们第一次做这么大程序,所以在所难免会有程序不妥之处,还有部分功效没有立即编写,有些功效还有待我们改善,这全部是我们需要努力学习和研究地方。
十:参考文件
C++程序设计,刘娜娜,北京航空航天大学出版社;
C++程序设计基础,吴文虎,清华
展开阅读全文