数据结构课程设计-长整数加减运算
《数据结构课程设计-长整数加减运算》由会员分享,可在线阅读,更多相关《数据结构课程设计-长整数加减运算(6页珍藏版)》请在毕设资料网上搜索。
1、 课课 程程 设设 计计 报报 告告 课程名称课程名称 数据数据 结构结构 题题 目目 长整数长整数运算运算 学生姓名 班级/学号 一、一、 需求分析需求分析 设计一个实现任意长的整数间进行四则运算的程序,要求完成长整数的加 运算和减运算。长整数的长度没有限制,可以是任意长。正确处理好运算之后 的进位和借位。 (1) 输入:-*,*,*;-*,*,*,* /-表示“-”可选 (2) 输出:*,*,*,*是否继续计算(Y/N): (3) 功能:能正确进行相关数据的加减运算 (4) 测试数据: 0;0;输出“0” 2345,6789;7654,3211;输出“1,0000,0000” 1,0000
2、,0000,0000;-9999,9999;输出“9999,0000,0001” 1,0001,00001;-1,0001,0000;输出“0” 自选数据 二、二、 概要设计概要设计 1、 使用双向循环链表实现长整数的运算及存储,构造双向循环链表, 创建双向循环链表表示两个整数 2、 设计两整数相加的函数Add()Add(),addtwo(addtwo() ),其中Add()Add()调用 addtwo(addtwo() )函数,函数,addtwo(addtwo() )具体实现两个整数的加减操作,进位及借 位问题;设计显示函数Display()Display()及主函数main()main()
3、 三、三、 详细设计详细设计 1、 数据结构设计 双向循环链表的构造 typedef struct LinkNode int data; /记录每个节点的整数(小于) LinkNode *next, *pre; /记录下一个节点的地址和前一个节点的地址 linklist; 2、 创建两个长整数的链表 伪算法 void Creat(char a) /引入字符串,创立两个链表,分别表示两个整 数 int 记录字符串i;记录加数节点数j;记录被加数节点数s;标记字符串中的-号 记录字符串中的字符转化为整数的值k,使每个节点记录位l while(指针所指不是“;”)被加数字符数m自动加1 /m记录字符串中被加 数的字符数 n=m; while(执政没有指到结尾处) 总字符串n位数自动加1; /n记录字符串的总 字符数 if被加数不是负数 head0-data=(-1); /记录整数符号 w=1; else head0-data=1; for(i=m-1;i=w;i-) If指针所指为数字,而不是“,” /把字符转化为整数 k+=(ai-0)*sum(l); /sum()计算的乘方 l+; if(ai=,|i=w) 把整数存到双向循环链表中 s+; /节点数加 k=0; /重新初始化k和l l=0; head0-pre-data*=s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中设计图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 整数 加减 运算
