- 11
- 0
- 约3.86千字
- 约 6页
- 2019-03-17 发布于江苏
- 举报
题目:数制转换问题
需求分析
将十进制数N转换成八进制数是计算机实现计算的基本问题,解决方案很多,其中最简单的方法是除8取余法。
本方案采用顺序栈的方式模拟整个过程。其原理如下:
例子:(1348)10=(2504)8
N N div 8 N mod 8
1348 168 4
168 21 0
21 2 5
2 0 2
从中可以看出,最先产生的余数4是转换加过的最低位,这正好符合栈的“后进先出”的特性。
功能:从键盘输入任意一个非负十进制整数,输出与其等值的八进制数;若输入一个负数,则显示输入错误,请重新输入。
测试数据:(1348)10=(2504)8 ,(0)10=(0)8,(-1234)10 输入数据错误。
概要设计
定义顺序栈类型,由键盘输入非负十进制整数N,执行以下循环操作:N%8入栈,N=N/8,直至N=0。
主要函数由建立空栈Initsqstack()、入栈Push()、出栈Pop()和main()函数组成。
过程中函数调用关系图如下:
详细设计
数据类型定义
struct Sqstack{
int *bottom;
int *top;
int maxsize;
};
系统主要子程序详细设计
A.建立空栈
int Initsqstack (Sqstack s
原创力文档

文档评论(0)