物品库存管理课程设计报告(3)

2019-02-20 23:40

紫金学院 Visual C++课程设计 2012级 计科、网络、软件

{

cout<<\输入客户代码: \ cin>>code;

strcpy(name1,\ }

ifstream file( \客户资料.txt\ ofstream temp( \ if( !file ||!temp) {

cout<<\无法打开文件\\n\ getch(); exit(1); }

file.seekg(0);

temp.seekp(0);

customer p2;

file.read(reinterpret_cast (&p2),sizeof(customer)); while( !file.eof() ) {

if( (strcmp(name1,p2.customer_name)==0) || (code==p2.customer_code)) {

file.read(reinterpret_cast (&p2),sizeof(customer)); } else {

temp.write(reinterpret_cast(&p2),sizeof(customer));//将未删除的文件写入temp中

file.read(reinterpret_cast (&p2),sizeof(customer)); } }

file.close(); temp.close();

ifstream temp1(\

ofstream file1(\客户资料.txt\ temp1.seekg(0); file1.seekp(0);

temp1.read( reinterpret_cast (&p2),sizeof(customer) ); while( !temp1.eof() )//将temp文件中的内容写回file1 {

file1.write( reinterpret_cast (&p2),sizeof(customer) ); temp1.read( reinterpret_cast (&p2),sizeof(customer) ); }

temp1.close(); file1.close(); }

10

紫金学院 Visual C++课程设计 2012级 计科、网络、软件

5. 课程设计中遇到的问题及解决方法 问题1: 怎么设置按任意见键继续。

解决办法:通过百度知道,getch()那么就是按下就起效,按下的字符不可见,而getchar()就是按了以后还要再敲回车才会起效,并且按下的字符是可见的。 if(!outfile) { cout<<\错误,不能打开文件\ getch(); exit(1); }

问题2: 怎样解决如果初始储存器中含有数据对程序的影响问题?

解决办法:在实际操作中,可能会因错误而输入错误的字符,这时可能会对程序的正常运行造成影响,所以必须刷新输入流清除储存器中的数据,经过翻阅C语言方面的资料发现使用以下函数就可实现。

inline istream & Flush(istream & stream) { stream.clear(); int chars_to_skip=stream.rdbuf()->in_avail(); return stream.ignore(chars_to_skip); }

问题3: 怎样做到商品品种以品种代码的顺序存放?

解决办法: 一开始我想到用文件的形式存放,那么文件的读写就非常频繁,而且要使用大量的临时文件。所以后来就考虑到可以使用链表的形式存放数据,在程序开始运行时读取固定文件中的数据,程序运行时全部数据都在内存进行操作。在程序运行结束前再将链表中的数据存放在原来的文件中,供下次运行程序时读取。只要将文件读取这部分程序调试好,在调试程序时就不用每次都从键盘输入数据了,可以节省大量的时间。

问题4:为保证程序界面的美观,如何清屏?

解决办法:在前没有使用system(\函数之前,界面上总是会出现上一步骤遗留下来的文字,于是我去图书馆查阅了有关方面的书籍和文献,后来发现利用网络资源,使用函数system(\即可。 case 1: //添加商品品种 system(\清屏 p=new CItem; p->SetItem(); pn=new CNode; pn->InputData(p); list.Insert(pn); system(\ break;

问题5:以什么方式打开文件?

解决办法:给出的参考源程序中有很多文件的打开方式,一开始我很不理解他们的具体含义。经过查阅教材,知道了:以in方式打开的文件,只能从文件中读取数据;以out方式打开的文件,只能将数据写入文件中;ate方式不能单独使用,out|ate的作用是在文件打开时,将文件指针移到文件的结尾处,文件中原来的内容不变,向文件中写入的数据增加到文件中;明确以binary方式

11

紫金学院 Visual C++课程设计 2012级 计科、网络、软件

打开的文件,才是二进制文件,它总是与读或写方式同时使用。

void customer::add() //加入客户资料 { ofstream file( \客户资料.txt\ if(!file) { cout<<\错误,无法打开文件\ getch(); exit(1); } customer p2; p2.getdata(); //从键盘输入客户资料 //将该客户的资料传到文件中 file.write(reinterpret_cast (&p2),sizeof(customer));//reinterpret_cast将其他类型的数据转换为字符指针 }

6. 课程设计中所改变的功能模块 课程设计中所增加的功能模块

根据对程序的需求分析,我增加了客户类,其中包括:添加、删除、查询和显示这四个模块。 7. 课程设计结果

物品库存管理系统首页

1.添加物品品种

12

紫金学院 Visual C++课程设计 2012级 计科、网络、软件

2.显示商品品种

3.查询商品

5.商品出库

6.商品进库

13

紫金学院 Visual C++课程设计 2012级 计科、网络、软件

7.添加客户

9.查询客户

10.显示客户

8. 还存在的不足之处

功能:没有能够实现将客户类与品种和品牌类联系起来,虽然添加了客户类,但还是独立的个体。 实现方法:文件的读取。

9. 对课程设计的感想和心得体会

在自己设计的过程中,学到了很多东西。一开始,完全没有信心。我想,我只是掌握了C++的基本知识,要我自己编写程序,这怎么可能,在我看来仿佛不可思议。但是,我也深知,这是我必须做的,也是我必须要跨过去的一个坎。

所以我从一开始,就试图把每一句程序都看懂,不明白的地方就找资料解决。当一步一步完成程序设计要求时候,将一个个模块实现的时候,我体会到什么是豁然开朗,什么是茅塞顿开。这是过程给予的快乐,是一切都无法替代的。

在设计的过程中,有时候会找不到头绪。想过放弃,想过去别人那里求助。但是,当坚持下来,最终发现当自己解决自己的问题的时候,是对自己莫大的肯定。

程序设计,让我知道,没什么是不可以的。只要放心思进去,胜利就在不远处等着我们。

14

紫金学院 Visual C++课程设计 2012级 计科、网络、软件

15


物品库存管理课程设计报告(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:“党员义工服务月活动”启动仪式主持稿

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: