数据结构课程设计实验报告空白模板.docx
- 文档编号:2706941
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:17
- 大小:402.11KB
数据结构课程设计实验报告空白模板.docx
《数据结构课程设计实验报告空白模板.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计实验报告空白模板.docx(17页珍藏版)》请在冰点文库上搜索。
数据结构课程设计实验报告空白模板
本科学生设计性实验报告
数据结构课程设计
项目组长杨南如(儒)学号_
专业软件工程班级_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文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 实验 报告 空白 模板