长整数四则运算实验报告

长整数四则运算实验报告

ID:14753999

大小:637.00 KB

页数:20页

时间:2018-07-30

长整数四则运算实验报告_第1页
长整数四则运算实验报告_第2页
长整数四则运算实验报告_第3页
长整数四则运算实验报告_第4页
长整数四则运算实验报告_第5页
资源描述:

《长整数四则运算实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、“数据结构”课程设计报告长整数四则运算学生姓名:吴成杰徐文良指导教师:陈少军所在系:电子信息系所学专业:计算机科学与技术年级:2010计算机(1)班18目录第1章需求分析21.1选题要求21.2选题背景和意义21.3选题目标31.4组员分配任务3第2章概要分析42.1系统数据流图42.2原始数据42.3输出数据42.4对数据的处理52.5数据结构(存储方式)52.6模块分析5第3章详细设计6第4章系统说明书14第5章系统测试15项目总结19参考文献1918第1章需求分析1.1选题要求1、实现一个任意长度的整数进行四则运算的演示程序 (1)运算过程分步骤显示 (2)

2、完成含有加法和减法的四则运算 (3)完成含有乘法和除法的四则运算 (4)包含括号的四则运算2、2个人对应完成2个人各自的任务1.2选题背景和意义(1)选题背景操作系统老师曾经布置我们做一道斐波拉契数列和求30的阶乘,但是计算的结果很大,还不知道该做样的存储,老师告诉我们需要用高精度数的知识能将计算的结果存储起来,数据结构老师也曾经布置过一个实验题,是计算长整数的加法的,但是长整数的位数是固定的。于是我们试想计算任意长度的整数是不是能把所有的四则运算问题解决。(2)选题意义我们选的这个课题能计算任意的四则运算,比如:1234567+7654321=888888898

3、7654321-123456789=86419754123*456=5608884/42=2586-25*15+8*(9*2-144/12)=586-375+8*(18-12)=586-375+8*6=586-355+4818=211+48=2591.3选题目标实现一个任意长度的整数进行四则运算的演示程序 (1)运算过程分步骤显示 (2)完成含有加法和减法的四则运算 (3)完成含有乘法和除法的四则运算 (4)包含括号的四则运算1.4组员分配任务我们组有两个成员,分别为吴成杰和徐文良,一个负责写主函数、函数整体的框架和写转换函数函数和对输入的字符进行处理,一个负责写

4、出栈函数和写处理函数和拼接,程序出现错误,两个人一起在一起互相商量,修改。第2章概要分析2.1系统数据流图18YN输入长整数计算的表达式对表达式进行索引有乘除?先计算乘除,将结果返回根据索引的方向,计算加减将结果输出2.2原始数据(1)输入的长整数表达式为:123456+987654(2)输入的长整数表达式为:654789234-123456789(3)输入的长整数表达式为:31456*5062.3输出数据(1)输出数据的结果为:1111110(2)输出数据的结果为:531332445(3)输出数据的结果为:159167362.4对数据的处理18首先申请长度为20

5、0位的数组,将输入的长整数放在数组中,根据优先级的顺序,计算长整数的运算,并将结果放在200位的数组中,若出现溢位,则报错,否则输出。2.5数据结构(存储方式)为了实现长整数的加法,减法,乘法和除法,这几种运算都存在进位和借位以及移位等操作,因此选择双链表的结构体,考虑到数据的范围,使他只接受4个数字的整数,这样一个整数就分为若干段,每一段为4个数字,便于进位和借位以及位移的操作。2.6模块分析长整数的四则运算定义结构体转换函数处理函数出栈函数主函数第3章详细设计本系统分别用了三个结构体(字符串、操作符、操作数)和四个调用函数(transfer()、deal()、

6、pop()、main())来实现。18transfer()函数主要实现用户输入的操作数字符转化为对应的整形数据。deal()函数主要实现操作数与操作符相结合并计算结果。pop()函数主要通过调用deal()来实现计算并出栈。main()函数通过调用transter()、deal()、pop()函数实现了操作符+、—、*、/、()的优先级处理和计算结果。第一模块1.模块名称栈2.模块功能栈的分配3.、相关程序代码typedefstructSqStack{SElemType*base;//在栈构造之前和销毁之后,base的值为NULLSElemType*top;//栈

7、顶指针intstacksize;//当前已分配的存储空间,以元素为单位}SqStack;//顺序栈//构造一个空栈S。intInitStack(SqStack*S){//为栈底分配一个指定大小的存储空间(*S).base=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));if(!(*S).base)exit(0);//存储分配失败(*S).top=(*S).base;//栈底与栈顶相同表示一个空栈(*S).stacksize=STACK_INIT_SIZE;return1;intPush(SqStack*S

8、,SEle

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。