没有合适的资源?快使用搜索试试~ 我知道了~
数据结构课程设计(.docx
0 下载量 128 浏览量
2023-07-12
00:08:28
上传
评论
收藏 25KB DOCX 举报
温馨提示
试读
23页
数据结构课程设计(.docx
资源推荐
资源详情
资源评论
数据结构课程设计(
数据构造课程设计 (
一、设计目的
1.1 问题描述:
任意给定一个 M 进制的数 x,请实现如下要求:
1、对给字一个 M 进制的数据 x,求出此数 x 的 10 进制值(用 MD 表
示);2、实现对 x 向任意的一个非 M 进制的数的转换;
1.2 问题分析:
1、用串实现该问题:
⑴m,n,x 是定义的全局变量;
⑵Loop 循环是实现 M 进制数转换为 10 进制;
⑶trans()是实现 10 进制数转换为 n 进制数的函数;(4)voidmain()是
主函数,功能是给出测试的数据,并在特定条件下调用 trans()
函数。
2、用栈实现该问题:
⑴SeqStack 定义栈,top 为栈顶指针;
⑵intInitStack(SqStackinti;for(i=0;n>0;i++)
{if(n%m0;n--){printf(“%c“,str[n-1]);}}
voidmain()
{intm,n,x;charch;
printf(“geidingjingzhiM---“);scanf(“%d“,loop:
printf(“geidingyige%djinzhideshuX---“,m);fflush(stdin);//
一个 M 进制的数 X 转 10 进制 for(x=0;;){ch=getchar();
if(ch>=“0“}x=x*m+n;}
printf( “ zhuanhuacheng10jinzhideshuwei---%d\\n
“ ,x);printf( “ geidingyaozhuanhuachengdejinzhiN---
“);scanf(“%d“,
printf( “ zhuanhuacheng%djinzhihoudejieguo---
“,m);trans(x,m);printf(“\\n“);}
栈转换:
#include#include#defineStack_Size20typedefintElemType;// 挨
次栈存储类型 typedefstruct
{ElemTypeelem[Stack_Size];inttop;}SeqStack;
// 初 始 化 : 为 未 初 始 化 的 挨 次 栈 S 设 置 栈 顶 指 针
voidInitStack(SeqStack*S)
{S->top=-1;printf(“kongzhanS=()\\n“);}//判空栈:推断栈 S 是
否为空栈 intIsEmpty(SeqStack*S)
{if(S->top==-1)return1;elsereturn0;}//判栈满:推断栈 S 是否为
满栈 intIsFull(SeqStack*S)
{if(S->top==Stack_Size-1)return1;elsereturn0;}//进栈:向 S 栈
顶 压 入 一 个 数 据 元 素
intPush(SeqStack*S,ElemTypex){if(IsFull(S))return0;S->top++;S->
elem[S->top]=x;return1;}//出栈:弹出 S 的栈顶元素,并用 x 返回
intPop(SeqStack*S,ElemType*x){
if(IsEmpty(S))return0;*x=S->elem[S->top];S->top--;return1;}
//销毁栈 S
voidClearStack(SeqStack*S)
{free(S);printf(“zhanxiaohui\\n“);}
voidmain()
{charx[20];intMx;intM;
intm;intX=0;intt;inti,length;
SeqStack*S=(SeqStack*)malloc(sizeof(SeqStack));InitStack(S);
printf(“qingshurujinzhiheshu:“);scanf(“%d,%s“,t=1;
length=strlen(x);
for(i=0;i=“a“elseprintf(“%d“,m);}
printf(“\\n“);ClearStack(S);}
三、运行结果
1、2 进制的 111 的 10 进制值,转换成 3 进制的测试状况如下(栈实
现):
2、7 进制的 236 的 10 进制值,转换成 9 进制的测试状况如下(串实
现):
四、总结与展望
在这次课程设计中使我们明白在遇到一个大的程序,不知道该如何下
手时,只有找多方面的资料,加强思索力量。做这次数制转换的课程设计
是我知道了只有在细节方面需要娴熟运用栈、数组、串,这样才可以。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理
论学问是远远不够的,只有把所学的理论学问与实践相结合起来,从理论
中得出结论,才是真正的学问,才能提高自己的实际动手力量和独立思索
的力量。通过课程设计的训练,我进一步学习和把握了对程序的设计和编
写,从中体会到了数据构造的便利和奇妙。
扩展阅读:数据构造课程设计报告
数据构造课程设计试验报告
名目
1. 单 位 员 工 通 讯 录 治 理 系 统 ( 线 性 表 的 应 用 )
*********************22. 停 车 场 治 理 ( 栈 和 队 列 的 应 用 )
*******************************43.哈夫曼编码/译码系统(树应用)
******************************64.教学规划编制问题(图的应用)
*******************************85.药店的药品销售统计系统(排序应
用 **************************116. 最 小 生 成 树 问 题 ( ** )
**************************************137 . 总 结
*******************************************************158.源代
码*****************************************************1、单位员
工通讯录治理系统(线性表的应用)
[需求分析]
为某个单位建立一个员工通讯录治理系统,可以便利查询每一个员工
的办公室电话、手机号、及电子邮箱。其功能包括通讯录链表的建立、员
工通讯信息的查询、修改、插入与删除、以及整个通讯录表的输出。[问
题分析]
为建立单位员工通讯录系统,首先要实现员工信息的录入、保存等根
本操作。对于员工通讯录我们要存入要求的员工的各种信息等,对于已经
保存的信息,我们要可以对这些信息进展查询、修改、插入新信息、删除
信息、还有可以直接输出整个全部员工信息等。而这些操作对于我们来说
都是对建立的链表的根本操作,对于本次试验我采纳单向线性链表。[算
法设计]
首先我们要进展最根本的操作,即建立链表。链表的节点信息保存的
有员工编号、员工姓名、办公室电话号码、手机号码、员工邮箱这些信息。
而链表的结点信息保存的有员工信息以及其指针域。然后我们可以添加员
工信息,对于新的员工信息我们将其添加在链表的表尾,在添加之前我们
要进展一项操作,即遍历链表找到其尾指针,然后开拓一个结点并将其加
剩余22页未读,继续阅读
资源评论
matlab大师
- 粉丝: 2442
- 资源: 9万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功