杭电_数据结构课程设计报告模板(内附C代码)

上传人:xmg****18 文档编号:121236472 上传时间:2020-02-19 格式:DOC 页数:84 大小:944.79KB
返回 下载 相关 举报
杭电_数据结构课程设计报告模板(内附C代码)_第1页
第1页 / 共84页
杭电_数据结构课程设计报告模板(内附C代码)_第2页
第2页 / 共84页
杭电_数据结构课程设计报告模板(内附C代码)_第3页
第3页 / 共84页
杭电_数据结构课程设计报告模板(内附C代码)_第4页
第4页 / 共84页
杭电_数据结构课程设计报告模板(内附C代码)_第5页
第5页 / 共84页
点击查看更多>>
资源描述

《杭电_数据结构课程设计报告模板(内附C代码)》由会员分享,可在线阅读,更多相关《杭电_数据结构课程设计报告模板(内附C代码)(84页珍藏版)》请在金锄头文库上搜索。

1、.专业整理.数据结构课程设计报告 学院专业: 软件工程 班 级: 学 号: 学生姓名: 指导老师: 彭伟民 日 期: 2016.01.01 目录1猴子吃桃子问题31.1需求分析31.2程序设计思想31.3程序源代码31.4程序运行结果52进制数转化问题52.1需求分析52.2程序设计思想62.3程序源代码62.4程序运行结果73长整数运算83.1需求分析83.2程序设计思想83.3程序源代码83.4程序运行结果124学生成绩管理系统134.1需求分析134.2程序设计思想134.3程序源代码144.4程序运行结果205哈夫曼编码应用225.1需求分析225.2程序设计思想225.3程序源代码2

2、35.4程序运行结果246学校超市选址问题266.1需求分析266.2程序设计思想266.3程序源代码266.4程序运行结果307学生成绩管理系统307.1需求分析307.2程序设计思想307.3程序源代码307.4程序运行结果368排序综合378.1需求分析378.2程序设计思想388.3程序源代码388.4程序运行结果469课程设计总结471 猴子吃桃子问题1.1 需求分析有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。用多种方法实现求出原来这群猴子共摘了多少个桃子。1.2 程序设计思想已知第十天只余下1个桃子,第一天开始每天都吃当前桃子一半再

3、多一个,那么就只需要从第十天开始倒推即可,用链表、数组、递推、常规方法都可以采用这种思路实现计算第一天桃子数量。1.3 程序源代码#includeusing namespace std;/有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。用多种方法实现求出原来这群猴子共摘了多少个桃子。/链表方法实现typedef structint *base;int *top;Stack;void InitStack(Stack &s)s.base=(int *)malloc(sizeof(int);if(s.base) s.top=s.base;elseprin

4、tf(空间分配错误!n);exit(0);/入栈void PushStack(Stack &s,int data) *s.top+=data;/出栈int PopStack(Stack &s) return *(-s.top);int main()int peach=0;void shuZu();int digui(int i,int j);int changgui();shuZu();peach=digui(1,1);cout递归方法实现结果:peach1)data=PopStack(s);/出栈一个元素保存在data中PushStack(s,2*(data+1);/再将2*(data+1)

5、入栈/最后栈中剩余的那个元素就是第1天摘的桃子数cout链表方法实现结果:PopStack(s)endl;cout常规方法实现结果:changgui()=0;i-)peachi=(peachi+1+1)*2;cout数组方法实现结果:peach0endl;int digui(int i,int j)/递归方法实现static int peach=i;static int day=j;if (day=10)return peach;else peach=(digui(peach,+day)+1)*2;return peach;int changgui()int peach = 1;for (in

6、t i = 1; i 10; i+)peach = (peach+1)*2;return peach;1.4 程序运行结果2 进制数转化问题2.1 需求分析任意给定一个M进制的数x ,请实现如下要求1) 求出此数x的10进制值(用MD表示)2) 实现对x向任意的一个非M进制的数的转换。3) 至少用两种或两种以上的方法实现上述要求(用栈解决,用数组解决,其它方法解决)2.2 程序设计思想假如N为输入的数,n为要转换为的进制,若要将十进制231转换为8进制数,过程如下;N N/n N%n231 28 728 3 43 0 3则输出为347,可以看出,首先得到的应该是7,然后才是4,最后是3,但是要

7、逆序显示,自然就类似压栈出栈的数据结构了。所以,只需要初始化栈后,将N%n不断的压入栈底,需要注意的是如果要转换为16进制,则需要对大于9的数字作字符处理。2.3 程序源代码#include #include #include #include void TransIntoDec(double M, int X) void TransIntoAny(int X); char *p = NULL; int len = 0; int i; int sum = 0; int by = 1; printf(十进制数为: ); p = (char*)malloc(32); itoa(X, p, 10);

8、 len = strlen(p); for(i = 0; i len; i+) by *= pow(M,len-i-1); by *= (*(p + i) - 0); sum += by; by = 1; printf(%dn, sum); TransIntoAny(sum);void TransIntoAny(int X) int r; int temp32; int i = 0; printf(请输入转化进制:n); scanf(%d, &r); while(X) tempi+ = X % r; X /= r; printf(经转化为: ); while(i) printf(%d, tem

9、p-i); printf(n);void main() int m; int x; int i; int length; char* p = NULL; printf(请输入数字及确定其进制:n); scanf(%d %d, &m, &x); p = (char*)malloc(32); itoa(x, p, 10); length = strlen(p); for(i = 0; i m) break; if(i = length) TransIntoDec(m, x); else printf(Input errorn); return; 2.4 程序运行结果 3 长整数运算3.1 需求分析

10、设计一个程序实现两个任意长的整数求和运算。提示:可利用双项循环链表实现长整数的存储,每个结点含一个整型变量。3.2 程序设计思想定义双链表的节点结构,每个节点存储一个4位的数,比如1,0031,0056存入链表后就是1,31,56三个节,输出的时候再补0输出,由此完成长整数加法或减法运算。3.3 程序源代码#include #include #include /以下是双链表的节点结构,每个节点存储一个4位的数,比如1,0031,0056存入链表后就是1,31,56三个节,输出的时候再补0输出!typedef struct node int n; struct node *next; struc

11、t node *prev; node;node *p;char num11024,num21024;int conv(char *a) int n=0,i; for(i=0;ai;+i) n*=10; n+=(ai-0); return n;int main() char c2; int i,f; node *q; p=(node*)malloc(sizeof(node); p-next=p-prev=0; q=p; num10=num20=,; printf(请输入第一个数字:n); scanf(%s,num1+1); for(i=strlen(num1);i=0;-i) if(num1i=,) num1i=0; q-nex

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号