哪位高手帮忙?关于一个C程序的设计

来源:百度知道 编辑:UC知道 时间:2024/05/17 13:31:49
最近老师布置了一道数据结构的课程设计题目,没有思路,望哪位高手指点一二。
题目要求,通过一个双向循环链表来实现一个任意位数的运算器(+,-,*,没有/),一个节点存放一位数,通过读取文件获得数据源(同样一个文件放一位数)。
急啊!谁能帮帮我?
运算器
问题描述:加减乘运算器。
要 求:使用给定文件进行输入输出,必须采用双向链表实现任意位数的正负整数或小数的加法、减法和乘法运算。每个结点存储一位数字。算出的结果若是小数,整数部分的高位若为0要去掉,小数部分的低位若为0要去掉,若0085.56700,最后结果应为85.567。
文件说明:给定的文件a*.txt为第一个数,b*.txt为第二个数,要求加法产生的结果存储在add*.txt中,减法产生的结果存储在sub*.txt中,乘法产生的结果存储在mul*.txt中,*为对应的一组数据,
下面第2个朋友提供的程序未能实现负数和小数,哪位高手再来帮忙把它完善一下.谢谢了.

首先定义结构体数组建立链表,然后FOR循环读取数据源的同时赋值,再开始计算,计算应该不难吧,先*后- +,可以先侦察符号,然后按运算先后顺序逐渐消除符号,运算所得的结果往下一个位置存储,同时改变指针值。
我的建议:可以将一个数以及它后面的符号存放到同一个接点,最后一个数无符号表示算式结束,再FOR循环首先侦察*,将该数马上乘以下一个数放在一起...再做- +
比如————
数据源:1+2*3+4*5*7-8+9
存储:[1+][2*][3+][4*][5*] [7-] [8+] [9 ]
——>:[1+] [6+] [20*][7-] [8+] [9 ]
——>:[1+] [6+] [140-][8+] [9 ]
——>:[1+] [6+] [132+][9 ]
——>: [148 ]
输出:148

12.14---说明:
本程序只实现了+运算,其-和*运算可按同理进行.
(本程序经过测试,运行完全正确)不过,还没有实现负数进行的加法!调试了2个小时,累了,改天再写,睡觉~~@_@~~
需要手工在程序目录下建立2个文件,如1.txt和2.txt,然后分别在这文件里写入一些数字如12213123,等等,输出文件为结果文件.运行结果可以查看该目录下的结果文件.

===========
12.15---
今天继续写减法函数.
减法比加法更加复杂了,(乘法会更比减法复杂,除法就根本没的写了,不知道有多复杂,)已经写成功了,等代码优化后再传上来
===========
****不得不说,这个问题确实是个好程序,值得一编写,哎,大概又费了几亿个脑细胞了 -_-|||
#include<stdio.h>
#include<iostream.h>

//--------------