- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
简单事务处理。本程序模拟一个书店的销售账目。程序能够添加、修改书目,根据进货和销售数目更新库存数。
//ex11_18.h
#ifndef EX11_18_H
#define EX11_18_H
#includeiostream
#includefstream
using namespace std;
struct bookData //账目结构
{ int TP ; //书号
char bookName[40] ; //书名
long balance ; //库存量
};
void Initial( const char * fileDat ); //账目文件初始化
void Append( const char * fileDat ); //入库
void Sale( const char * fileDat ) ; //销售
void Inquire( const char * fileDat) ; //查询
void CreateTxt( const char * fileDat) ; //建立文本文件
int endMark( bookData book ); //判断空标志记录,即判断文件结束
#endif
//ex11_18.cpp
//建立主菜单,选择操作。
#include ex11_18.h
const char * fileDat = d:\\booksFile.dat; //账目数据文件名
int main()
{ char choice ;
while (1)
{ cout ********** 书库管理**********\n请输入操作选择\n
1 :入库\t
2 :售出\t
3 :查询\t
4 :建立文本\t
0 :初始化\t
Q :退出\n ;
cin choice ;
switch ( choice )
{ case 1 : Append(fileDat) ; break ;
case 2 : Sale(fileDat) ; break ;
case 3 : Inquire(fileDat) ; break;
case 4 : CreateTxt(fileDat) ; break ;
case 0 : Initial(fileDat) ; break ;
case q:
case Q: cout 退出系统\n ; return 0;
default : cout 输入错误,请再输入\n ;
}
}
}
//Initial.cpp
//初始化账目文件。建立只有一个标志记录的空文件。
#include ex11_18.h
const bookData mark = { 0, noName\0, 0 }; //空记录
void Initial(const char * fileDat )
{ fstream fdat(fileDat, ios::out|ios::binary); //以写方式打开,建立新文件
cout若帐目文件存在,将删除原有数据,要做文件初始化吗?(Y/N)\n;
char answer;
cinanswer;
if( answer==Y||answer==y)
{ fdat.seekp( 0, ios::beg ) ; //写指针移到文件头
fdat.write( (char*) mark, sizeof( bookData ) ) ; //写入空标志
cout文件已经初始化。\n;
}
else
{ cout取消操作\n;
}
fdat.close(); //关闭文件
}
//Append.cpp
//入库操作。如果是新书目,在文件末尾追加一条记录,如果是已有书目,则增加库存量。
#include ex11_18.h
const bookData mark = { 0, noName\0, 0 }; //空记录
void Append(const char * fileDat)
{ char choice ;
bookData book ;
int key ;
long num ;
fstream fdat(fileDat, ios::in|ios::out|ios::binary); //以读/写方式打开文件
if( !fdat ) //文件不存在
{ cout账目文件不存在,请做初始化操作。\n;
return;
您可能关注的文档
最近下载
- 绿色工厂培训课件.pptx VIP
- 8+新能源项目预收购(转让)协议.docx VIP
- SL∕T 617-2021 水利水电工程项目建议书编制规程.pdf
- 2025年高考化学河北卷及答案(新课标卷).docx VIP
- 天津《温拌沥青混合料超薄罩面技术规程》DBT 29-210-2022.pdf
- 2010年考研英语二真题答案及解析.pdf VIP
- 2024浙江嘉兴市海盐县交通投资集团有限公司第二轮招聘12人笔试模拟试题及答案解析.docx VIP
- 消毒剂消毒效果及储存效期验证方案.docx VIP
- 电工仪表及测量第一章 测量与电工仪表的基本知识.ppt VIP
- 浙江省计算机二级办公软件高级应用技术真题.doc VIP
文档评论(0)