个人资金账户管理实验报告.docx
- 文档编号:11339501
- 上传时间:2023-02-28
- 格式:DOCX
- 页数:12
- 大小:217.65KB
个人资金账户管理实验报告.docx
《个人资金账户管理实验报告.docx》由会员分享,可在线阅读,更多相关《个人资金账户管理实验报告.docx(12页珍藏版)》请在冰豆网上搜索。
个人资金账户管理实验报告
程序设计与实践
实验报告
实验一:
个人资金账户管理
姓名:
****
学号:
***********
班级:
*********
实验时间:
****/**/**-****/**/**
一:
实验名称:
个人资金账户管理
二:
实验环境:
一台安装有VC6.0程序的电脑。
三:
实验目的
(1)培养和锻炼对具有一定复杂度和规模的问题的分析与求解能力。
(2)掌握程序设计的综合方法,能综合应用各种数据类型实现较复杂数据的存储。
(3)培养良好的C程序设计风格与代码规范意识。
四:
实验内容:
用C语言编程,实现对个人资金帐户的管理。
五:
实验步骤:
(实验设计,关键代码。
实验结果需截图)
1、总体程序框图
2、各模块程序流程图
1)、主函数(程序流程图及运行界面)
主函数程序流程图
简要说明:
该功能主要是给用户显示一个功能菜单界面。
主函数运行界面
2)、录入资金信息(源代码及运行界面)
程序代码
voidaddNewLog()
{
FILE*tfp;
intm=0;
charch[2];
structLogDatalog[MAX];
if((tfp=fopen("cashbox.dat","ab+"))==NULL)
{
printf("不能打开文件!
\n");
exit(0);
}
while(!
feof(tfp))/*统计记录的条数*/
if(fread(&log[m],LEN,1,tfp)==1)
m++;
fclose(tfp);
if((tfp=fopen("cashbox.dat","wb"))==NULL)
{
printf("不能打开文件!
\n");
exit(0);
}
for(inti=0;i fwrite(&log[i],LEN,1,tfp);/*向指定的磁盘文件写入信息*/ printf("是否添加账户资金信息(Y/N): "); scanf("%s",ch); while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0) { printf("请输入以下信息...\n\n"); printf("日期(格式: <2000-01-01>): "); scanf("%s",&log[m].logdate); printf("说明: "); scanf("%s",&log[m].lognote); printf("费用(收入为+,支出为-): "); scanf("%lf",&log[m].charge); log[m].logid=m+1; if(m==0) { log[m].balance=0; log[m].balance=log[m].balance+log[m].charge; } elseif(m>0) log[m].balance=log[m-1].balance+log[m].charge; if(fwrite(&log[m],LEN,1,tfp)! =1) printf("保存失败! "); else { printf("该记录保存成功! \n"); m++; } printf("是否继续添加(Y/N): "); scanf("%s",ch); } fclose(tfp); } 运行界面 3)、显示资金信息(源代码及运行界面) 程序代码 voidlistLog() { FILE*tfp; structLogDatalog[MAX]; inti,n,m=0; if((tfp=fopen("cashbox.dat","ab+"))==NULL) { printf("不能打开文件! \n"); exit(0); } while(! feof(tfp)) if(fread(&log[m],LEN,1,tfp)==1) m++; fclose(tfp); printf("请选择: \n1、查询全部\n2、查询余额\n您的选择是: "); scanf("%d",&n); switch(n) { case1: printf("编号\t\t日期\t\t说明\t\t费用\t\t余额\n"); for(i=0;i printf("%2d%21s%15s%15.0lf%15.0lf\n",log[i].logid,log[i].logdate,log[i].lognote,log[i].charge,log[i].balance); system("pause"); break; case2: printf("编号\t\t日期\t\t说明\t\t费用\t\t余额\n"); printf("%2d%21s%15s%15.0lf%15.0lf\n",log[m-1].logid,log[m-1].logdate,log[m-1].lognote,log[m].charge,log[m-1].balance); system("pause"); break; } } 运行界面 3)、修改资金信息(源代码及运行界面) 程序代码 voidupdateLog() { FILE*tfp; charch[2]; structLogDatalog[MAX]; intt,n,m=0; if((tfp=fopen("cashbox.dat","a+"))==NULL) { printf("不能打开文件! \n"); exit(0); } while(! feof(tfp)) if(fread(&log[m],LEN,1,tfp)==1) m++; fclose(tfp); if(m==0) { printf("没有找到该记录! \n"); return; } else { printf("请输入你要修改的记录的ID: "); scanf("%d",&n); } for(inti=0;i if(n==log[i].logid) t=i; if(t==m) { printf("没有找到该记录! \n"); return; } printf("编号\t\t日期\t\t说明\t\t费用\t\t余额\n"); printf("%2d%21s%15s%15.0lf%15.0lf\n",log[t].logid,log[t].logdate,log[t].lognote,log[t].charge,log[t].balance); printf("是否对该记录进行修改(Y/N): "); scanf("%s",ch); if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0) { printf("请输入以下信息...\n\n"); printf("日期(格式: <2000-01-01>): "); scanf("%s",&log[t].logdate); printf("说明: "); scanf("%s",&log[t].lognote); printf("费用(收入为+,支出为-): "); scanf("%lf",&log[t].charge); log[t].balance=log[t-1].balance+log[t].charge; if((tfp=fopen("cashbox.dat","w"))==NULL) { printf("不能打开文件! \n"); exit(0); } for(intj=0;j { log[j].balance=log[j-1].balance+log[j].charge; if(fwrite(&log[j],LEN,1,tfp)! =1) { printf("不能保存! \n"); fclose(tfp); return; } else printf("该记录修改成功! \n"); } fclose(tfp); } system("pause"); fclose(tfp); } 运行界面(修改、修改后) 六: 实验小结: 此次课程设计,将上学期课本上所学的内容应用到本次实践当中,使我更加清楚的理解并掌握了C语言部分内容,通过一些错误使我更加深刻的认识到C语言程序的严谨性。 此次实践内容的难点是“修改函数”与其他函数之间的相互影响,记录内容被修改后,其他函数的相关内容也要相应的随之改变,由于缺乏实践经验,在编程中感觉此处有些难度。 幸运的是,在老师的指导之下,明白了,其他函数中相应更改的内容,要在写入文件前,将内容修改,然后再写入文件。 于是问题得以解决。 由于目前知识水平的限制,仅仅是完成了各功能的实现,然而代码编写的还不够优化,看起来有些繁杂。 代码的质量有待于改进。 (专业文档资料素材和资料部分来自网络,供参考。 可复制、编制,期待你的好评与关注)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 个人 资金 账户 管理 实验 报告