二工大程序设计与实践 个人资金账户管理Word文档下载推荐.docx
- 文档编号:20247682
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:8
- 大小:16.28KB
二工大程序设计与实践 个人资金账户管理Word文档下载推荐.docx
《二工大程序设计与实践 个人资金账户管理Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《二工大程序设计与实践 个人资金账户管理Word文档下载推荐.docx(8页珍藏版)》请在冰豆网上搜索。
①资金账户的信息统一放在随机文件中,该随机文件包括的数据项有记录ID、发生日期、发生事件、发生金额(正的表示收入,负的表示支出)和金额。
每发生一笔收支,文件要增加一条记录,并计算一次余额。
②程序实现3个功能,包括:
(1),能创建资金账户文件并添加收入或支出信息记录;
(2),能显示所有记录,得知资金账户的收支流水账;
(3),能查询最后一条记录,获知账户最后的余额。
账户文件名命名为cashbox.dat,文件部分内容如下;
③增加修改资金账户的功能。
输入一个记录ID,如果文件中已存在该记录,则输入新的记录信息并更新资金账户文件中相应记录的信息。
要求定义和调用函数UpdateLog(),其功能是修改资金账户记录。
LongIDCreateDateNoteChargeBalance
12006-06-01alimony500.00500.00
22006-06-08shopping-300.00200.00
32006-06-15shopping-60.00140.00
42006-06-20workingpay200.00340.00
52006-08-01scholarship1000.001340.00
五:
实验步骤:
(实验设计,关键代码。
实验结果需截图)
1.实验设计
主函数:
给用户显示一个功能菜单界面,通过输入操作序号,调用函数以实现对用户账号进行各种操作。
主程序界面:
(略)
主程序代码:
intmain(void)
{
FILE*fp;
intchoice;
if((fp=fopen("
cashbox.dat"
"
ab+"
))==NULL){
printf("
cannotopenfilecashbox.dat!
\n"
);
exit(0);
}
size=sizeof(structLogData);
while((choice=inputchoice())!
=0){
switch(choice){
case1:
fp=fopen("
AddNewLog(fp);
break;
case2:
ListAllLog(fp);
case3:
QueryLastLog(fp);
case4:
rb+"
Updatelog(fp);
case5:
Deletelog(fp);
default:
InputError."
if(fclose(fp)){
printf("
Cannotclosethefile!
);
return0;
增加用户账户文件:
(源代码)
voidAddNewLog(FILE*cfptr)
structLogDatalog,lastlog;
longlogcount;
Inputlogdate(format:
2006-01-01):
"
scanf("
%s"
log.logdate);
Inputlognote:
log.lognote);
InputCharge:
Income+andexpend-:
%lf"
&
log.charge);
logcount=getLogcount(cfptr);
if(logcount>
0){
fseek(cfptr,size*(logcount-1),SEEK_SET);
fread(&
lastlog,size,1,cfptr);
log.logid=lastlog.logid+1;
log.balance=log.charge+lastlog.balance;
else{
log.logid=1;
log.balance=log.charge;
rewind(cfptr);
getch();
fwrite(&
log,sizeof(structLogData),1,cfptr);
fclose(cfptr);
列出账户记录:
voidListAllLog(FILE*cfptr)
structLogDatalog;
0)
{fseek(cfptr,0L,SEEK_SET);
log,size,1,cfptr);
logIDlogdatelognotechargebalance\n"
while(!
feof(cfptr)){
%6ld%-11s%-15s%10.2lf%10.2lf\n"
log.logid,log.logdate,log.lognote,log.charge,log.balance);
};
else
nologsinfile!
Pressanykeytocontinue..."
查看最后一条账户记录(源代码):
voidQueryLastLog(FILE*cfptr)
Thelastlogis:
logid:
%-6ld\nlogdate:
%-11s\nlognote:
%-15s\n"
log.logid,log.logdate,log.lognote);
charge:
%-10.2lf\nbalance:
%-10.2lf\n"
log.charge,log.balance);
增加修改资金账户(源代码)
voidUpdatelog(FILE*cfptr)
structLogDatalog[1000],*plog=log,newlog;
longlogcount,logid,i,index=-1;
InputLogID:
%ld"
logid);
fread(plog,size,logcount,cfptr);
for(i=0;
i<
logcount;
i++)
if(logid==log[i].logid)
logidlogdatelognotechargebalance\n"
log[i].logid,log[i].logdate,log[i].lognote,log[i].charge,log[i].balance);
index=i;
if(index>
=0)
newlog.logdate);
newlog.lognote);
newlog.charge);
if(strcmp(log[index].lognote,newlog.lognote)!
strcpy(log[index].lognote,newlog.lognote);
if(strcmp(log[index].logdate,newlog.logdate)!
strcpy(log[index].logdate,newlog.logdate);
if(newlog.charge!
=log[index].charge)
newlog.balance=log[index].balance-log[index].charge+newlog.charge;
log[index].charge=newlog.charge;
log[index].balance=newlog.balance;
for(i=index+1;
log[i].balance=log[i-1].balance+log[i].charge;
fwrite(plog,size,logcount,cfptr);
{printf("
Errorlogidandtryanother!
删除账户资金记录(源代码):
voidDeletelog(FILE*cfptr)
FILE*fp1;
structLogDatalog[1000],*plog=log;
for(i=index;
=logcount-1;
log[i].logid=i+1;
strcpy(log[i].logdate,log[i+1].logdate);
strcpy(log[i].lognote,log[i+1].lognote);
log[i].charge=log[i+1].charge;
logidlogdatelognotechargebalance\n"
logcount-1;
fp1=fopen("
wb+"
rewind(fp1);
fwrite(plog,size,logcount-1,fp1);
fclose(fp1);
六:
实验小结:
略。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二工大程序设计与实践 个人资金账户管理 二工大 程序设计 实践 个人 资金 账户 管理