c++课程设计数制转换问题进制转换.docx
- 文档编号:29868499
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:8
- 大小:312.37KB
c++课程设计数制转换问题进制转换.docx
《c++课程设计数制转换问题进制转换.docx》由会员分享,可在线阅读,更多相关《c++课程设计数制转换问题进制转换.docx(8页珍藏版)》请在冰豆网上搜索。
c++课程设计数制转换问题进制转换
信息科学与技术学院
《数据结构》课程设计报告
题目名称:
数制转换问题
专业班级:
计双一班
学生姓名:
王帅
学生学号:
2013708007
指导教师:
高攀
完成日期:
2014、6、19
目录
1课程设计的目的1
1.1课程设计的目的1
1.2课程设计的题目1
1.3题目要求1
2概要设计2
2.1存储结构2
2.2基本操作2
3详细设计3
3.1系统功能设计3
3.2流程图3
4测试4
4.1初始界面4
4.2退出功能4
4.3用栈进行转换为其他进制5
4.4直接输入10进制5
4.5数组法6
4.6输入错误6
5课程设计总结7
6参考书目8
1课程设计的目的
1.1课程设计的目的
各进制之间的数值进制转换问题
1.2课程设计的题目
数制转换问题
1.3题目要求
任意给定一个M进制的数x,实现如下要求
1)求出此数x的10进制值(用MD表示)
2)实现对x向任意的一个非M进制的数的转换。
3)至少用两种或两种以上的方法实现上述要求(用栈解决,用数组解决,其它方法解决)。
2概要设计
2.1存储结构
栈
typedefstruct{
int*base;
int*top;
intstacksize;
}SqStack;
一位数组
Chara[50],c[50];
2.2基本操作
选择用栈或者数组来转换进制,1是栈,2是数组,0是退出。
之后先输入要输入数字的进制,在输入数字。
并将其直接转换为10进制。
再输入要转换数字的类型,并将数字转换为该类型。
如果输入的数字进制为10进制,则要输入要转换的进制并直接进行进制转换。
3详细设计
3.1系统功能设计
intInitStack(SqStack&S)//构造一个空栈
intGetTop(SqStackS,char&e)//若栈不为空,则用e返回S的栈顶元素,并返回0,否则返回1
intPush(SqStack&S,chare)//插入元素e为新的栈顶元素
intDestroyStack(SqStack&S)//销毁栈S,栈S不再存在
voidMD(intx,intd)//将10进制转换为d进制
floatMD2(intm,charc[])//将m进制转换为10进制
floatMD2(intm)//MD2函数的重载
3.2流程图
图3.1流程图
4测试
4.1初始界面
图4.1初始界面
4.2退出功能
图4.2推出功能
4.3用栈进行转换为其他进制
4.4直接输入10进制
图4.4直接输入10进制
4.5数组法
图4.5数组法
4.6输入错误
图4.6输入错误
5课程设计总结
通过这次课程设计,我收获到很多,平时在做作业时,因为题形与结构都是很简单的,并且每一章的内容都是可以直接抄的,所以在做题时没有遇到过很麻烦的问题,而这次不同了,一个课题拿到手时,给我的感觉是无从下手,而且要求很多,使得题目要求更大了.
我将整个程序分块完成的.将整个大的程序分为两个函数来实现,一个函数来把其他进制数字转换为10进制,另一个函数把10进制数字转换为其它进制.在调试时分别进行调试,使得调试更方便些.在编写各个函数只是按着题目要求的去完成,发现了很多自己欠缺的地方,又一次将程序整体进行调试.最后把程序完善了许多.
在编写程序是我参考了<<数据结构(C语言版)>>与《C++程序设计(第二版)》里面的信息。
运用函数语句,做出来程序.后来又根据函数改造出来栈类型的程序。
用栈来操作的时候发现开始时做的函数法有不少地方不适用栈,所以就改了一部分,添加了几个变量,减少了一个函数的形参。
还有栈的录入与输出挺麻烦,但也只有这些而已,将书中抄来的栈函数改了几个变量类型。
后来我干脆就直接将两个程序合并为一个,因为两个函数函数名相同,有一个完全一样,所以就重载一个函数,另一个不变。
6参考书目
[1]谭浩强,《C++程序设计》,北京,清华大学出版社,2011年.
[2]严蔚敏、李冬梅、吴伟民,《数据结构(C语言版)》,北京,人民邮电出版社,2011.2(2013.7重印)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 课程设计 数制 转换 问题