沈阳航空航天设计报告
沈阳航空航天大学
课 程 设 计 报 告
课程设计名称:C语言课程设计 课程设计题目:大整数加减法运算器
院(系):计算机学院 专 业:计算机科学与技术 班 级: 学 号: 姓 名: 指导教师: 安云哲 完成日期: 2014年3月6日
- 0 -
沈阳航空航天设计报告
目录
第一章 概要设计.............................................................................................. 1
1.1题目的内容与要求.........................................................................................2 1.2 总体结构......................................................................................................2 第二章 详细设计................................................................................................3
2.1 数据结构定义.............................................................................................3 2.2 生成链表函数模块.....................................................................................4 2.3 输出函数模块..............................................................................................5 2.4 转换函数模块..............................................................................................6 2.5 加法函数模块..............................................................................................7 2.6 减法函数模块.................................................................... .......................7 第三章调试分析.....................................................................................................8
第四章 使用说明与执行结果...............................................................................9
参考文献.................................................................................................................11
附录-源程序...........................................................................................................12
- 1 -
沈阳航空航天设计报告
第1章 概要设计
1.1题目的内容与要求
本次课程设计的内容是大整数加减法运算器运用c语言实现编译,运用了数据结构中链表存储的相关知识实现了大整数的加法,减法功能。 要求:
(1)大整数加减法运算器要求用链表存储整数,完成大整数的加法与减法运算。 (2)利用所学知识,设计相应的数据结构.
(3) 用已经实现的操作来组合新的操作,完成大整数加减法运算器的设计与编码。 (4) 熟练运用vc环境,掌握基本的调试方法。
1.2总体结构
本程序主要分为5个模块(功能模块图见图1.1):(1)生成链表函数 ,构造一个
空的只有头指针的双向循环链表(2)输出函数 输出以head为头节点的长整数。
3)转换函数设计思路: 将长整数的字符形式转化成数字形式,存放到双向循环链表中,先判断长整 数若为负,减去字符串的第一位,将数字部分存到双向循环链表中。 (4)加法函数 两个循环链表分别存有两个长整数,将两个长整数做和并输出结果。(5)减法函数 两个循环链表分别存有两个长整数, 用第一个长整数减第二个长整数并输出结果。
大整数加减法运算 链函函函输 表数数数出存转加减 函储换法法数 函模模模模数块块块 块模 块 图1.1 功能模块图
- 2 -
沈阳航空航天设计报告
第2章 详细设计
2.1 数据结构定义
Typedef struct long_int{ int data; int over; struct long_int *pro;struct long_int *next; }long_int,;
线形表的双向链表存储结构,每个节点只存储四位十进制数字,即不超过 9999 的非负整数。双向链表有头指针,它的 data 值存储长整数的符号,1 为正, -1 为负,0 代表长整数为 0;它的 over 值存储除头节点节点的个数。其他节点 的 data 值存储四位整数,over 存储该四位整数溢出 0—9999 范围的情况,一般 over>0 表示四位数超出 9999,over<0 表示四位数小于 0。
2.2 生成链表函数模块
建造一个空的只有头指针的双向循环链表,当头指针为空的时候则输出错误,无法进行运算,返回头指针。如图 2.2 所示。生成链表函数流程图
- 3 -