一:需求分析
通过与银行工作人员交流了解:随着银行业务的推陈出新以及这些业务为客户带来的便利,使银行吸引了越来越多的客户,一切都使银行帐目的治理越来越重要。 银行帐目治理系统是针对银行帐目的日常治理而设计。银行操作系统不仅要求操作方便而且要求界面简洁,它需要实现帐目治理,用户查询和查询统计等几个功能。其中帐目治理又包含了开户、销户、存款、取款和修改信息的功能。用户能够通过不同的方式来查询需要的信息。 通过该系统的设计实现,使银行部门更好地进行业务治理,为客户提供更佳优质的服务。 二:组员分工
杨修丽 :界面以及类的实现中的信息录入,删除和查询。 何 颖 :菜单和类的实现中的设置输入格式和信息的修改。 姜佳宁 :类的定义和对文件的输入,修改。 三:系统总框图
银行治理系统 用户信息录入 四:运行环境
用户信息修改 用户信息删除 用户信息查询 退出系统 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< //对信息的修改 } 3.对文件的治理: astronaut information; void menu() { cout<<\"请选择操作(0——4) \"< ifstream afile(\"astronaut.txt\ afile.read((char*)&information,sizeof information); } void write() { ofstream bfile(\"astronaut.txt\ bfile.write((char*)&information,sizeof information); } void input(void) { char ch; information.enter(); write(); cout<<\"你还要输入下一位用户的信息吗(Y/N)!\"< 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)\"< cout<<\"姓名: 杨修丽 学号:2009131038 班级:电子091班 \"< 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\// 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<<\"输入用户信息\"< cout<<\"性别(男——A,女——B):\"< while(strcmp(sex,\"A\")!=0&&strcmp(sex,\"B\")!=0) //设置用户性别,不是AB则错误。 { cout<<\"错误请重新输入!\"< cout<<\"居民身份证号码:\"< cout<<\"民族:\"< cout<<\"联系 :\"< cout<<\"家庭住址:\"< cout<<\"本金\"< cout<<\"利率\"< cout<<\"存款日期\"< cout<<\"到期日期\"< void astronaut::display() //设置用户信息如何显示 { //set(4),则表示此后面设置的变量占地地点不大于4时等于4,大于时是本身大小。 cout< cout<<\"请输入要修改用户的信息:\"< if(ch=='Y'||ch=='y') { cout<<\"请输入新姓名:\"< cout<<\"性别(男——A,女——B):\"< if (strcmp(sex,\"A\")!=0&&strcmp(sex,\"B\")!=0) { cout<<\"错误请重新输入!:\"< cout<<\"居民身份证号码:\"< cout<<\"民族:\"< cout<<\"联系 :\"< cout<<\"家庭住址:\"< cout<<\"本金\"< cout<<\"利率\"< cout<<\"存款日期\"< cout<<\"到期日期\"< cout<<\"你刚刚输入的用户信息如下:\"< void menu() //菜单项 { cout<<\"请选择操作(0——4) \"< ifstream afile(\"astronaut.txt\ afile.read((char*)&information,sizeof information); } void write() //对文件中用户的写入 { ofstream bfile(\"astronaut.txt\ bfile.write((char*)&information,sizeof information); } void input(void) //对文件中用户的输入 { char ch; information.enter(); write(); cout<<\"你还要输入下一位用户的信息吗(Y/N)!\"< if(ch=='Y'||ch=='y') { input(); } } void change() //对文件中用户的修改 { int ch,p=0,l=0; cout<<\"请输入你要修改的用户的号码:\"< ifstream efile(\"astronaut.txt\ 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\ ffile.seekp(sizeof(information)*p); ffile.write((char *) &information,sizeof information); ffile.close(); l++; return; } } p++; } efile.close(); if(l!=1) cout<<\"没有你所要修改的用户信息!\"< int ch; cout<<\"请输入要删除的用户的号码:\"< ifstream out(\"astronaut.txt\ ofstream in(\"astronaut1.txt\ 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\ gfile.close(); ifstream ifile(\"astronaut1.txt\ ofstream hfile(\"astronaut.txt\ 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\ while(cfile) { if( cfile.read((char *)&information,sizeof information)) { information.display(); i++; } } if(i!=0) cout<<\"一共有\"<cout<<\"还没有输入用户信息\"< 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)\"< void main() //主函数,界面 { cout<<\"姓名: 杨修丽 学号:2009131038 班级:电子091班 \"< 八:程序源代码: #include 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 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\ 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<<\"输入用户信息\"< cout<<\"性别(男——A,女——B):\"< while(strcmp(sex,\"A\")!=0&&strcmp(sex,\"B\")!=0) { cout<<\"错误请重新输入!\"< cout<<\"居民身份证号码:\"< cout<<\"民族:\"< cout<<\"联系 :\"< cout<<\"家庭住址:\"< cout<<\"本金\"< cout<<\"利率\"< cout<<\"存款日期\"< cout<<\"到期日期\"< } void astronaut::display() { cout< cout<<\"请输入要修改用户的信息:\"< if(ch=='Y'||ch=='y') { cout<<\"请输入新姓名:\"< cout<<\"性别(男——A,女——B):\"< if (strcmp(sex,\"A\")!=0&&strcmp(sex,\"B\")!=0) { cout<<\"错误请重新输入!:\"< cout<<\"居民身份证号码:\"< cout<<\"民族:\"< cout<<\"联系 :\"< cout<<\"家庭住址:\"< cout<<\"本金\"< cout<<\"利率\"< cout<<\"存款日期\"< cout<<\"到期日期\"< cout<<\"你刚刚输入的用户信息如下:\"< #include cout<<\"请选择操作(0——4) \"< ifstream afile(\"astronaut.txt\ afile.read((char*)&information,sizeof information); } void write() { ofstream bfile(\"astronaut.txt\ bfile.write((char*)&information,sizeof information); } void input(void) { char ch; information.enter(); write(); cout<<\"你还要输入下一位用户的信息吗(Y/N)!\"< if(ch=='Y'||ch=='y') { input(); } } void change() { int ch,p=0,l=0; cout<<\"请输入你要修改的用户的号码:\"< ifstream efile(\"astronaut.txt\ 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\ ffile.seekp(sizeof(information)*p); ffile.write((char *) &information,sizeof information); ffile.close(); l++; return; } } p++; } efile.close(); if(l!=1) cout<<\"没有你所要修改的用户信息!\"< int ch; cout<<\"请输入要删除的用户的号码:\"< ifstream out(\"astronaut.txt\ ofstream in(\"astronaut1.txt\ 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\ gfile.close(); ifstream ifile(\"astronaut1.txt\ ofstream hfile(\"astronaut.txt\ 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\ while(cfile) { if( cfile.read((char *)&information,sizeof information)) { information.display(); i++; } } if(i!=0) cout<<\"一共有\"<cout<<\"还没有输入用户信息\"< 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)\"< void main() { cout<<\"姓名: 杨修丽 学号:2009131038 班级:电子091班 \"< 九:终止语: 通过本次课程设计,我们学到了专门多东西,不仅巩固和提高了对C++的类的定义和实现以及文件的输入输出的应用,也对他们的概念有了一个全新的明白得,而且让我明白一个程序的编写是大伙儿努力共同的结果,不是一个人就能做好的,也使我们的小组同学更加的团结,同时,对C++的明白得也更深刻,编程时千万要小心,不能因为括号或者分号直截了当的错误而导致运行只是去。 因为这是我们第一次做这么大的程序,因此在所难免的会有程序的不当之处,还有一些功能没有及时的编写,有些功能还有待我们改进,这差不多上我们需要努力学习和研究的地点。 十:参考文献 C++程序设计,刘娜娜,北京航空航天大学出版社; C++程序设计基础,吴文虎,清华大学出版社。 因篇幅问题不能全部显示,请点此查看更多更全内容