- 2
- 0
- 约1.06万字
- 约 30页
- 2020-09-13 发布于天津
- 举报
程序设计报告
(2010 / 2011 学年 第一学期)
题 目: 大整数阶乘
专
业
计算机科学与技术
学
生
姓
名
张赛
班
级
学
号
指
导
教
师
杨涛
指
导
单
位
计算机学院
日
期
2010.9.30
项 分 评
秀
好 良
等 中
差
评
现
度 态 习 学
分
细
况 情 实 匕匕 厶冃 功 题 谍
性 R 二 理 合
则
告 报
简 短 评 语
名 年
师
教
月
日
■-
评分等级
□
备注
隼 中 良
大整数阶乘
课题内容和要求
1、系统的基本功能及要求
( 1)写一个类 BigInteger ,并有如下成员函数 operator+/ operator-/
,即整数的四则运算并重载运算符。
(2)用该大整数计算n的阶乘并显示出来。(n€ [1,100])
注:为了简化,可不考虑负数,则遇上形如“ 2-4 ”这样的表达式需要报错
2、程序执行过程
(1 )系统从键盘读入自然数 n,直到输入了合法的 n为止。
(2)输出运算的结果, 为便于观察结果, 每输出四位中间插入空格, 格式如下 (例如, n=12): 12!= 4790 0160 0
(3)询问用户是否继续进行, 用户选择 “是”,直到输入合法为止, 转( 1 ) ,否则退出程序。
3、算法要求及提示
因为n较大时,n!的结果将超出长整形的保存范围,因此结果不能用 long int 型的变量来保存。本算法要求用链表来存储。
链表的每一个节点存储结果的一位数字,因此结果的输出实际上是链表的 遍历问题,同时要先考虑用多少位来表示大整数。
4、其他要求
( 1)输入时具备一定的容错性判断,如输入的不是数字,或输入的数超过范围 等等。
( 2)变量、函数命名符合规范。
( 3)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参 数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。
(4)程序的层次清晰,可读性强。
二、 需求分析
1)课题要求已说明结果不能用 long int 型的变量来保存,要求用链表来存储。 ,首先要定义一个节点类,在这里定义一个双向节点类。
2)定义一个 BigInteger 大整数类,使其能够存放大数阶乘,并实现其的四则运算。
3)对输入整数的合法性进行检查,必须考虑用户各种输入情况。
三.概要设计
1.使用单链表存储数据,结点类定义如下: class Node
{
int data;
Node* next;// 指向大数的高位
Node* pre;// 指向大数的低位
friend class BigInteger;
};
使用大整数类来进行大整数四则算法的重载, 在主函数中通过定义大整数对象 调用,大整数类定义如下:
class BigInteger// 定义大整数类
{
public:
Node *head,*head1;
int n,temp,i,jinwei;
加法运算重载声明 减法运算重载声明 乘法运算重载声明 除法运算重载声明BigInteger();// 无参构造函数 ~BigInteger();// 析构函数 void jiecheng();// 阶乘函数 void operator +( BigInteger p1);// void operator -( BigInteger p1);// void operator *( BigInteger p1);//
加法运算重载声明 减法运算重载声明 乘法运算重载声明 除法运算重载声明
void operator /( BigInteger p1);// };
算法设计说明:
因为n较大时,n!的结果将超出长整形的保存范围,因此结果不能用 long int 型的变量来保存。本算法数据用单链表来存储。
链表的每一个节点存储结果的一位数字, 因此结果的输出实际上是链表的遍历问 题,同时要先考虑用多少位来表示大整数。
首先申请一个结点类并赋数据域初值 1,然后遍历单链表逐个的数据域与 i (1 到n)相乘;
乘完后重新遍历,对每个结点的数据域处理,若小于 10 则跳过; 否则,判断下一结点是否存在,若存在则该数据域除 10 取余,下一结点的数据 域加上该数据域除 10 的结果,若不存在则申请新结点空间,处理同上; 全部乘完并处理完后, 遍历单链表并输出各自的数据域即可, 注意每四个输出一 个空格。
4、流程图
四?详细设计
1.阶乘函数作为Biglnteger类中的函数,在主函数通过定义大整数类对象调用,
阶乘函数的定义如下:
void Big In teger::jieche ng()
Node *cur,*cc;
Node *head=new Node;//存放第一个节点,值为1
head-data=1;
h
您可能关注的文档
最近下载
- 《赋得古原草送别》古诗原文及鉴赏.pdf VIP
- Q_GDW 10450-2021 隔离开关和接地开关状态评价导则.docx VIP
- 2025年高职提招数学考试题及答案详解.doc VIP
- 2025年高考数学专项复习:解三角形(两大易错点+九大题型)(学生版+解析,新高考专用).pdf VIP
- 小型旋耕机设计.doc VIP
- EPC项目设计相关强制性技术标准的执行.docx VIP
- 2025年江苏航空职业技术学院单招《英语》测试卷含答案详解(培优A卷).docx VIP
- Q-GDW10460-2025 电容式电压互感器、耦合电容器状态评价导则.pdf VIP
- 胆汁淤积性肝病中医诊疗指南-公示稿.pdf VIP
- 不同因素对UHPC流动性和力学性能的影响及机理分析.pdf VIP
原创力文档

文档评论(0)