活期储蓄帐目管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构课程设计
题目:活期储蓄帐目管理系统
班级:
学生:
学号:
一,设计要求:
活期储蓄处理中,储户开户、销户、存入、支出聚会频繁,系统设计条件:
1)能较量迅速地找到储户的帐户,以呈现存款、取款记账;
2)能较量简单,迅速地呈现插入和删除,以呈现开户和销户的需求。
二,主要思路:
银行业务员-----具有的权限包括:登录系统、填写存取款信息、打印存取款单、按储户要求查询其储蓄信息。运行控制本系统的运行控制流程为:银行业务员申请进入本系统,输入储户用户名、密码,通过验证后,进行存取款或者存款单、取款单的打印,以及用户信息的查询。本系统各模块的运行时间均控制在1—2 秒内。由于系统采用消息驱动方式,将有效地提高计算机的利用率。9 本系统中创建的数据库Banksystem 包含的表:(customername,customerid,bankname,yewuyuanid,cunkuancount,qukuancount, shengyucount,ratevalue,shouxucount) (bankname,yewuyuanid) time(cunkuandate,qukuandate) 数据库Banksystem 的物理结构采用顺序结构。[说明各个数据结构与访问这些数据结构的各个程序之间的对应关系。] [程序1] [程序2] [……] [程序m] [数据结构1] √ [数据结构2] √ √ ┇[数据结构n] √ √ 输出信息可能原因处理方法***不能为空***项忘记填写按照要求填写***项***不能重复***项数据库已有相应记录按照要求填写***项数据库连接不上等类似的提示信息数据库服务器关闭或者网络不通检查数据库服务器是否关闭,如关闭则启动,否则检查网络配置10 本系统定期备份数据库,以便在系统出现故障时能够及时恢复。
a.后备技术采用后备技术,当原始系统数据万一丢失时启用副本,周期性地把磁盘信息记录到磁带上去。
b.恢复及再启动技术使用的恢复再启动技术,使软件从故障点恢复执行或使软件从头开始重新运行的方法。为了系统维护的方便而在程序内部设计中作出的安排,包括在程序中专门安排用于系统的检查与维护的检测点和专用模块。本系统严格按照软件产品设计规范的步骤进行开发,并重复考虑软件的可维护性,详细编写各阶段的文档资料,并在程序设计过程中做出大量详细的注释。
三,源程序设计:
#include
#include
#include
#include
#define file "temp.txt" //数据存储的文件名
struct user //用户类型定义(账号,姓名,身份证号,余额)
{
int id;
char name[20];
char person_num[19];
double money;
};
void add() //添加用户资料
{
printf("%30s\n","***添加用户***");
printf("---------------------------------------------\n\n");
struct user getuser();
int count(); //函数目的:计算文件中的记录数目以生成自动账号
FILE *fp;
int number;
struct user temp;
if((fp=fopen(file,"ab"))==NULL)
{
printf("cannot open file!\n");
exit(1);
}
temp=getuser(); //读取用户名
number=count();
temp.id=number+1; //生成自动账号
fwrite(&temp,sizeof(struct user),1,fp);
printf("添加用户成功!\n");
fclose(fp);
}
int count() //函数目的:计算文件中的记录总数
{
FILE *fp;
int num;
struct user temp;
num=0;
if((fp=fopen(file,"rb"))==NULL)
{
printf("cannot open file!\n");
exit(1);
}
while(fread(&temp,sizeof(struct user),1,fp))
{
num++;
}
fclose(fp);
return num;
}
struct user getuser()
{
void getname(char *name);
void getperson_num(char *person_num);
struct user temp;
printf("请输入用户姓名(字符数<20): "); //读取相关开户信息
getname();
printf("请输入用户身份证号码: ");
getperson_num(temp.person_num);
printf("输入开户金额:");
do{ //判断开户金额(>=100) scanf("%lf",&temp.money);
fflush(stdin);
if((temp.money)<100.0)
printf("开户金额不能小于100\n");
else
break;
printf("重新输入开户金额:");
}while(1);
return temp;
}
void getname(char *name) //函数功能:读取用户姓名(字符数<20)