- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
简单事务处理。本程序模拟一个书店的销售账目。程序能够添加、修改书目,根据进货和销售数目更新库存数。
//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;
文档评论(0)