[求助]实现取款,file与链表的操作(主要用文件操作)
是这样的,这个学期学了C语言(TC2.0),但是我们学的都是最基础的东西,设计我做不动,只能做一般的算法实现
文件操作这块几乎没怎么学到,做了两天了,做不动了,只好求大家帮忙给予详细的讲解
现在我被要求做一个程序,实现ATM自动取款的过程
在一个文本文件中保存卡号、密码、余额三个信息
验证了卡号、密码后提供查余额、改密码、取款三中功能
但是现在刚做了欢迎界面,做到输入卡号和密码就不得不停下了,因为不知道该用什么来和文本文件互访呢?计划卡号10位,一个空格后是6位的密码,再一个空格后是余额
不知道变量和文本文件以及数组该如何连接并修改?
请热心的朋友给予帮助和演示
谢谢
----------------解决方案--------------------------------------------------------
你还是看看file这个指针的用法吧
----------------解决方案--------------------------------------------------------
其实重点就是核对卡号密码,将文本里的每个帐户的3条记录读取出来转存到链表,当用户输入卡号的时候,从表头开始扫描直到找到相应的卡号,再匹配密码,如果正确就可以进行3个操作。操作的数据和链表数据对应,因为文本信息不能直接改变,如果最后还需要将每个卡号的3条信息,尤其是余额继续存入文本的时候,需要将链表的数据重新写入新的文本,实现的代码不难。LZ设计的时卡号,密码,余额都用空格格开,那么读取到链表的时候空格出错情况很多
----------------解决方案--------------------------------------------------------
csv文件自动在两个不同的数据中加入了逗号,和你加空格的思想一样,在设计的时候密码里面可能有空格,这个由点难处理,还有文档可能有空行,可能3个数据里有空数据,总之,读取转存的原理不难,代码也不难,关键是出错情况的处理,如果可以不考虑错误处理就别考虑了,太复杂。前段时间正好做了个csv解析的程序
----------------解决方案--------------------------------------------------------
感谢上面这位朋友的帮助
FILE指针和链表以及文件操作,我们讲的时候几乎没怎么讲到,就讲了最初级的运算、循环等
但是突然做设计,真的忙不来
谁能帮忙实现下并附解释吗?
----------------解决方案--------------------------------------------------------
我再给你提示下,账户信息你自己写在文本中了,现在我们考虑简单点假设你的账户信息都是正确的。程序流程:
定义一个结构体其中包括卡号,密码,余额以及链表指针4个数据。首先打开文本,我建议用fread()函数逐个字符读取。如果想理解简单点,可以分步实现,现把文本中的账户信息读取出来转存到一个缓冲数组。读取过程为:读取第一行记录,10个字符代表卡号,存入结构体的卡号。。。读取完第一行信息后进入第2次循环。文本信息换行标志'\n',文本结束标志为eof,把所有的信息都存入了缓冲数组。接下来就是建立链表,把缓冲数组的数据放入链表,这样就建立了账户信息的链表用来扫描用户输入信息的正确与否。操作的时候直接对链表的余额数据进行修改,分别写3个函数,这样就完成了操作。最后的结果再根据链表的数据写入新的文本。总体设计时这样的。
效率不高,容易理解。好点的办法可以不用缓冲数组,直接写入链表,节省很多内存。
----------------解决方案--------------------------------------------------------