数据结构课程设计实验报告空白模板.docx

上传人:b****8 文档编号:9651986 上传时间:2023-02-05 格式:DOCX 页数:17 大小:402.11KB
下载 相关 举报
数据结构课程设计实验报告空白模板.docx_第1页
第1页 / 共17页
数据结构课程设计实验报告空白模板.docx_第2页
第2页 / 共17页
数据结构课程设计实验报告空白模板.docx_第3页
第3页 / 共17页
数据结构课程设计实验报告空白模板.docx_第4页
第4页 / 共17页
数据结构课程设计实验报告空白模板.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

数据结构课程设计实验报告空白模板.docx

《数据结构课程设计实验报告空白模板.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计实验报告空白模板.docx(17页珍藏版)》请在冰豆网上搜索。

数据结构课程设计实验报告空白模板.docx

数据结构课程设计实验报告空白模板

 

 

本科学生设计性实验报告

 

数据结构课程设计

 

项目组长杨南如(儒)学号_

专业软件工程班级_10软件5班

成员肖杰学号:

李伟学号:

实验项目名称__活期储蓄帐目管理系统

指导教师及职称_蒋娜_讲师__

开课学期2011至2012学年第二学期

一、实验设计方案

实验名称:

活期储蓄帐目管理系统

实验时间:

2012/3/13

实验场地:

W101

成员角色:

程序员:

杨南如(儒)测试员:

肖杰文档员:

李伟

软件环境:

MicrosoftVisualC++6.0

1、实验任务与目的(简单介绍实验内容,说明实验任务和目的)

实现活期储蓄账目管理系统,实现储户开户、销户、存入、支出等活动:

(1)采用交互式方式工作;

(2)可实现迅速插入和删除,以实现储户开户和销户的需要;

(3)可实现迅速查找到储户的帐户,以实现存款、取款记账、查询账户余额、账户交易记录;

(4)排序显示所有账户信息;

(5)程序运行时从input.txt文件中读入所以账户信息,发生交易后更新账户信息文件,同时将交易信息存储至文件output.txt。

 

——————————————————————————————————————

2、实验思路(详细描述解决问题的整体思路、涉及的算法思想及数据结构等)

(1)选择并构造数据结构;

(2)使用与特定数据结构相应的算法来实现具体功能;

(3)对文件读写结构化数据;

(4)对程序设计语言的灵活运用。

 

二、实验结果与分析

1、程序结构(程序结构图,主要函数的功能描述,算法实现的细节等)

一、添加用户信息

voidadd()//添加用户资料

{

out<<"***添加用户***"<

out<<"---------------------------------------------"<

structusergetuser();

intcount();//函数目的:

计算文件中的记录数目以生成自动账号

voidshow();

FILE*fp;

intnumber;

structusertemp;

if((fp=fopen(file,"ab"))==NULL)

{

out<<"cannotopenfile!

"<

printf("cannotopenfile!

\n");

exit

(1);

}

temp=getuser();//读取用户名

number=count();

temp.id=number+1;//生成自动账号

fwrite(&temp,sizeof(structuser),1,fp);

out<<"添加用户成功!

"<

out<<"你的账号为:

";

show();

fclose(fp);

}

二、按照姓名查询账户余额

voidselect_name()//按照姓名查询账户余额

{

voidgetname(char*name);

out<<"***按照姓名查询账户余额***"<

out<<"账号"<<""<<"用户姓名"<<"    "<<"身份证号码"<<""<<"存款余额"<

out<<"---------------------------------------------"<

FILE*fp;

structusertemp;

charname[20];

if((fp=fopen(file,"rb"))==NULL)

{

out<<"cannotopenfile!

"<

printf("cannotopenfile!

\n");

exit

(1);

}

printf("输入要查询的姓名:

");//调用读取用户名函数

getname(name);

while(fread(&temp,sizeof(structuser),1,fp))

//循环读取每一条记录判断是否为要查看的记录

if(strcmp(temp.name,name)==0)

{

out<

}

fclose(fp);

}

三、按照账号查询账户余额

voidselect_id()//按照账号查询账户余额

{

intcount();

out<<"***按照编号查询账户余额***"<

out<<"编号"<<""<<"用户姓名"<<""<<"身份证号码"<<""<<"存款余额"<

out<<"---------------------------------------------"<

FILE*fp;

structusertemp;

inti,maxnum;

if((fp=fopen(file,"rb"))==NULL)

{

printf("cannotopenfile!

\n");

exit

(1);

}

maxnum=count();

in>>i;

if(i<1||i>maxnum)

{

out<<"你要查询的账号不存在!

";

return;

}

while(fread(&temp,sizeof(structuser),1,fp))

//循环读取每一条记录判断是否为要查看的记录

if(temp.id==i)

{

out<

}

fclose(fp);

}

四、显示用户资料

voiddisplay()//显示用户资料

{

out<<"***用户资料显示***"<

out<<"账号"<<""<<"用户姓名"<<""<<"身份证号码"<<""<<"存款余额"<

out<<"---------------------------------------------"<

FILE*fp;

structusertemp;

if((fp=fopen(file,"rb"))==NULL)

{

out<<"cannotopenfile!

"<

printf("cannotopenfile!

\n");

exit

(1);

}

while(fread(&temp,sizeof(structuser),1,fp))

{

out<

}

fclose(fp);

}

五、函数功能:

按账号存款

voidsave_money()//函数功能:

按账号存款

{

out<<"***用户存款业务***"<

out<<"---------------------------------------------"<

intcount();

FILE*fp;

inti,num,mark;

structuser*temp;

num=count();//根据记录数申请空间

temp=(structuser*)malloc(num*sizeof(structuser));

if((fp=fopen(file,"rb"))==NULL)

{

out<<"cannotopenfile!

"<

printf("cannotopenfile!

\n");

exit

(1);

}

for(i=0;i

fread(&temp[i],sizeof(structuser),1,fp);

fclose(fp);

in>>mark;

if(mark<1||mark>num)

{

out<<"你要存款账号不存在!

"<

return;

}

if((fp=fopen(file,"wb"))==NULL)//写方式打开文件,覆盖原文件中的内容

{

out<<"cannotopenfile!

"<

printf("cannotopenfile!

\n");

exit

(1);

}

for(i=0;i

{

if(temp[i].id==mark)

{

doublemoney=0;

in>>money;

if(money<=0)

{

out<<"只能为正数!

"<

money=0;

}

temp[i].money+=money;//修改该用户的信息

}

fwrite(&temp[i],sizeof(structuser),1,fp);

}

fclose(fp);

free(temp);

out<<"你存款业务已办妥!

"<

}

六、销户

voiddel()//销户

{

intcount();

out<<"***注销账户***"<

out<<"账号"<<""<<"用户姓名"<<""<<"身份证号码"<<""<<"存款余额"<

out<<"---------------------------------------------"<

FILE*fp;

structusertemp;

inti,maxnum;

if((fp=fopen(file,"rb"))==NULL)

{

printf("cannotopenfile!

\n");

exit

(1);

}

maxnum=count();

in>>i;

if(i<1||i>maxnum)

{

out<<"你要查询的账号不存在!

"<

return;

}

while(fread(&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);

fwrite(&temp,sizeof(structuser),1,fp);//保存修改

}

fclose(fp);

}

程序主要代码说明如上所示。

:

 

——————————————————————————————————————

2测试设计与数据(设计充足合理的测试用例,说明测试策略)

A

一、(正常数据处理情况)办理开户业务:

选择“1”分别输入用户姓名、用户身份证号、用户储存金额。

二、选择以姓名的方式查看账户信息:

输入“2”和“杨南儒”:

三、选择以账号随机序号的方式查看账户信息:

输入“3”和“2”:

四、选择显示用户信息,输入“4”

五、选择存款,输入“5”“1”(一号账户)“200”(存入金额):

对已经办好存款业务的账户进行查询,结果显示已经存入200元:

六、选择取款业务输入“6”“1”“600”(表示选择取款业务,并且取款的对象为1号账户,取出600元):

B、当开户的时候存款少于100的情况:

一、开户:

二、出现错误提示:

C、账户号由1开始自加,如现在进行第四次开户:

提示账号为4:

,如下图所示

对账户输入的证件号无限制:

显示所有账户信息:

(如下图所示)

 

——————————————————————————————————————

3、实验分析与探讨(对测试现象和观察结果进行分析,探讨算法,提出见解)

 

——————————————————————————————————————

4、实验结论(算法设计是否得到实现,测试结果表明程序是否成功解决问题等)

 

——————————————————————————————————————

6、实验总结(成败得失,实验关键,算法改进,程序改善,自我评价)

 

指导老师评语:

 

得分:

签名:

年月日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 卡通动漫

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1