忙乎了一个星期,终于把这点小玩意弄完了,累死洒家了。 跟大一上学期写的那个C语言课程设计相比,完美多了。但是还是花费了很大的精力,其实困扰我的是如何对文件数据进行操作,试了N种方式,修改了无数遍的代码。不想再用那种没技术含量的直接从内存读写了。虽然现在用不到对大数据的处理,但是还是要看远点。这个课程设计就当是练手了。
上面的都是些废话,说下这个课程设计的主要特色:
1.多文件
之前是6个文件写的,后合并成了3个。最开始的时候就是直接用多文件写的,不像某些人单文件写完,无耻的拆成了多文件。在这鄙视一小下。(*^__^*)
2.直接对文件操作
当数据量特别大的时候,如果把文件信息读入内存,会把内存撑爆的。所以直接对文件操作很重要。
3.输入密码时会以加密形式显示
不会直接在屏幕上显示密码
存在的不足:
1.信息未加密
文件内的信息都是以明文的形式写成的,在验收课程设计的时候老师也提到了。这个可以对数据进行加密。
2.各种小的bug
代码如下:
1.头文件 bank.h
/*
* bank_h
* by skymoon
*/
#ifndef BANK_H
#define BANK_H
#include
#include//清屏函数
#include//c语言头文件
#include//判断字符是否是数字或字符的isalnum头文件
#include//从控制台读取字符库函数的getch的头文件
#include//MessageBox需要的头部文件
#include//字符串函数头文件
#include//文件流操作
#include
#include
#include
using namespace std;
//账户
class person
{
public:
person();//默认构造
person(string nid ,string nname,string npwd,double nmoney);//构造函数
void display();//显示
double money;//余额
void idinput();
void save();
void save_new();
void pwdinput();
bool seach(string s,int i);
void yzpwd();
void xiugaipwd();
string id; //账户
string name;//姓名
string pwd;//密码
};
class sys
{
public:
void show1();
void show2();
void show3();
bool seach(string s);
void showtime();
};
#endif
2.类的实现 bank.cpp
/*
* bank.cpp
* by skymoon
*/
#include"bank.h"
void person::display()
{
cout<
cout<
cout<
cout<
}
person::person()
{
id="";
name="";
pwd="";
money=0.0;
};
person::person(string nid ,string nname,string npwd,double nmoney )
{
id=nid;
name=nname;
pwd=npwd;
money=nmoney;
};
void person::yzpwd()
{
string s;
cout<
cout<
char a[7];
int i=0,flg=0;
for(i=0;i<6;i++)
{
a[i]=getch();
if(a[i]'9')
flg=1;
if(a[i]=='\b')<