数据结构课程设计实验报告空白模板Word格式文档下载.docx
《数据结构课程设计实验报告空白模板Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计实验报告空白模板Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。
杨南如(儒)测试员:
肖杰文档员:
李伟
软件环境:
MicrosoftVisualC++6.0
1、实验任务与目的(简单介绍实验内容,说明实验任务和目的)
实现活期储蓄账目管理系统,实现储户开户、销户、存入、支出等活动:
(1)采用交互式方式工作;
(2)可实现迅速插入和删除,以实现储户开户和销户的需要;
(3)可实现迅速查找到储户的帐户,以实现存款、取款记账、查询账户余额、账户交易记录;
(4)排序显示所有账户信息;
(5)程序运行时从input.txt文件中读入所以账户信息,发生交易后更新账户信息文件,同时将交易信息存储至文件output.txt。
——————————————————————————————————————
2、实验思路(详细描述解决问题的整体思路、涉及的算法思想及数据结构等)
(1)选择并构造数据结构;
(2)使用与特定数据结构相应的算法来实现具体功能;
(3)对文件读写结构化数据;
(4)对程序设计语言的灵活运用。
二、实验结果与分析
1、程序结构(程序结构图,主要函数的功能描述,算法实现的细节等)
一、添加用户信息
voidadd()//添加用户资料
{
out<
<
"
***添加用户***"
endl;
---------------------------------------------"
structusergetuser();
intcount();
//函数目的:
计算文件中的记录数目以生成自动账号
voidshow();
FILE*fp;
intnumber;
structusertemp;
if((fp=fopen(file,"
ab"
))==NULL)
{
out<
cannotopenfile!
printf("
\n"
);
exit
(1);
}
temp=getuser();
//读取用户名
number=count();
temp.id=number+1;
//生成自动账号
fwrite(&
temp,sizeof(structuser),1,fp);
添加用户成功!
你的账号为:
;
show();
fclose(fp);
}
二、按照姓名查询账户余额
voidselect_name()//按照姓名查询账户余额
voidgetname(char*name);
***按照姓名查询账户余额***"
账号"
"
用户姓名"
"
身份证号码"
存款余额"
FILE*fp;
charname[20];
rb"
printf("
输入要查询的姓名:
//调用读取用户名函数
getname(name);
while(fread(&
temp,sizeof(structuser),1,fp))
//循环读取每一条记录判断是否为要查看的记录
if(strcmp(temp.name,name)==0)
{
out<
temp.id<
temp.name<
temp.person_num<
temp.money<
}
三、按照账号查询账户余额
voidselect_id()//按照账号查询账户余额
***按照编号查询账户余额***"
编号"
inti,maxnum;
maxnum=count();
in>
>
i;
if(i<
1||i>
maxnum)
你要查询的账号不存在!
return;
while(fread(&
temp,sizeof(structuser),1,fp))
if(temp.id==i)
四、显示用户资料
voiddisplay()//显示用户资料
***用户资料显示***"
五、函数功能:
按账号存款
voidsave_money()//函数功能:
***用户存款业务***"
inti,num,mark;
structuser*temp;
num=count();
//根据记录数申请空间
temp=(structuser*)malloc(num*sizeof(structuser));
for(i=0;
i<
num;
i++)//将文件内容存入数组
fread(&
temp[i],sizeof(structuser),1,fp);
mark;
if(mark<
1||mark>
num)
你要存款账号不存在!
wb"
))==NULL)//写方式打开文件,覆盖原文件中的内容
i++)
if(temp[i].id==mark)
doublemoney=0;
in>
money;
if(money<
=0)
{
out<
只能为正数!
money=0;
}
temp[i].money+=money;
//修改该用户的信息
fwrite(&
free(temp);
你存款业务已办妥!
六、销户
voiddel()//销户
***注销账户***"
"
temp,sizeof(structuser),1,fp))//循环读取每一条记录判断是否为要查看的记录
if(temp.id==i&
&
temp.money==0.00)//余额为0
{temp.id=-1;
//算无效帐户
printf("
NO.%d%15s%15s%.2f\n"
temp.id,temp.name,temp.person_num,temp.money);
//保存修改
程序主要代码说明如上所示。
:
2测试设计与数据(设计充足合理的测试用例,说明测试策略)
A
一、(正常数据处理情况)办理开户业务:
选择“1”分别输入用户姓名、用户身份证号、用户储存金额。
二、选择以姓名的方式查看账户信息:
输入“2”和“杨南儒”:
三、选择以账号随机序号的方式查看账户信息:
输入“3”和“2”:
四、选择显示用户信息,输入“4”
五、选择存款,输入“5”“1”(一号账户)“200”(存入金额):
对已经办好存款业务的账户进行查询,结果显示已经存入200元:
六、选择取款业务输入“6”“1”“600”(表示选择取款业务,并且取款的对象为1号账户,取出600元):
B、当开户的时候存款少于100的情况:
一、开户:
二、出现错误提示:
C、账户号由1开始自加,如现在进行第四次开户:
提示账号为4:
,如下图所示
对账户输入的证件号无限制:
显示所有账户信息:
(如下图所示)
3、实验分析与探讨(对测试现象和观察结果进行分析,探讨算法,提出见解)
4、实验结论(算法设计是否得到实现,测试结果表明程序是否成功解决问题等)
6、实验总结(成败得失,实验关键,算法改进,程序改善,自我评价)
指导老师评语:
得分:
签名:
年月日