- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序设计与实践
实验报告
实验二:个人资金账户管理
:实验名称:随机数及其应用
二:实验环境 : 一台安装有 C 语言编译器的电脑
实验目的
实验目的
培养和锻炼对具有一定复杂度和规模的问题的分析与求解能力。
掌握程序设计的综合方法, 能综合应用各种数据类型实现较复杂数据的存储
培养良好的 C 程序设计风格与代码规范意识。
四:实验内容:
用 c 语言编写代码,并对程序进行调试、改错,使之符合如下具体功能。
资金账户的信息统一放在随机文件中,该随机文件包括的数据项有记录 ID 、
发生日期、发生事件、发生金额(正的表示收入,负的表示支出)和金额。每发 生一笔收支,文件要增加一条记录,并计算一次余额。 ,
程序实现 3 个功能,包括: (1) ,能创建资金账户文件并添加收入或支出信息 记录; (2) ,能显示所有记录,得知资金账户的收支流水账; (3) ,能查询最后一 条记录,获知账户最后的余额。账户文件名命名为 cashbox.dat ,文件部分内容 如下;
增加修改资金账户的功能。输入一个记录 ID, 如果文件中已存在该记录,则 输入新的记录信息并更新资金账户文件中相应记录的信息。 要求定义和调用函数 Update Log(), 其功能是修改资金账户记录。
LongID
CreateDateNote
Charge
Balance
1
2006-06-01 alimony
500.00
500.00
2
2006-06-08 shopping
-300.00
200.00
2006-06-15 shopping -60.00 140.00
2006-06-20 workingpay 200.00 340.00
2006-08-01 scholarship 1000.00 1340.00
五:实验步骤:
(实验设计,关键代码。实验结果需截图)
1. 实验设计
主函数: 给用户显示一个功能菜单界面 , 通过输入操作序号,调用 函数以实现对用户账号进行各种操作。
主程序界面:
(略)
主程序代码:
int main(void)
{
FILE *fp;int choice;
if((fp=fopen(cashbox.dat, ab+)) == NULL){
printf(can not open file cashbox.dat!\n);
exit(0);
size = sizeof(struct LogData);
while((choice=inputchoice())!=0){ switch(choice){
case 1:
fp=fopen(cashbox.dat, ab+);
AddNewLog(fp);break;
case 2:
fp=fopen(cashbox.dat, ab+);
ListAllLog(fp);break;
case 3:
fp=fopen(cashbox.dat, ab+);
QueryLastLog(fp);break;
case 4:
fp=fopen(cashbox.dat, rb+);
Updatelog(fp);break;
case 5:
fp=fopen(cashbox.dat, rb+);
Deletelog(fp);break;
default:
printf(Input Error.);break;
if(fclose(fp)){
printf( Can not close the file!\n );
exit(0);
}
return 0;
}
增加用户账户文件:(源代码)
void AddNewLog(FILE *cfptr)
{
struct LogData log,lastlog;
long logcount;
printf(Input logdate(format:2006-01-01):);
scanf(%s,log.logdate);
printf(Input lognote:);
scanf(%s,log.lognote);
printf(Input Charge:Income+ and expend-:);
scanf(%lf,log.charge);
logcount=getLogcount(cfptr);
if(logcount0){
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
您可能关注的文档
最近下载
- 黄燕铭荐阅二:公司研究基本框架.pdf VIP
- 下学期高一生物人教版必修2:6.3.2隔离在物种形成中的作用(16张PPT)(含音频+视频).pptx VIP
- 聊天的时候对方撤回消息,一招让你照样能看.pdf VIP
- 煤制甲醇主要危害分析及安全生产策略.docx VIP
- 绿色化工技术在化学工程与工艺中的应用研究.docx VIP
- 高一化学(必修一)离子反应练习题(含答案解析).docx VIP
- 改性壳聚糖对染料废水的脱色研究 毕业论文.doc VIP
- 铝合金门窗方案设计ppt模板.pptx
- 有机改性硅藻土对染料废水中典型染料的吸附特性与机制研究.docx
- 杰美康 JAND系列高压伺服驱动器用户手册.pdf VIP
原创力文档


文档评论(0)