课程设计赫夫曼编码系统设计

上传人:1888****888 文档编号:38361707 上传时间:2021-11-06 格式:DOC 页数:32 大小:312.02KB
返回 下载 相关 举报
课程设计赫夫曼编码系统设计_第1页
第1页 / 共32页
课程设计赫夫曼编码系统设计_第2页
第2页 / 共32页
课程设计赫夫曼编码系统设计_第3页
第3页 / 共32页
点击查看更多>>
资源描述
数据结构数据结构课程设计报告课程设计报告课程名称课程名称 :赫夫曼编码系统姓姓 名名 : 学学 号号 : 专专 业业 : 班班 级级 : 指导教师指导教师 : 二二一二年一二年 十二月十二月 1 / 32目录目录 Contents1.课程小组课程小组 -21.1.小组成员及分工-22.设计目的和要求设计目的和要求-23.需求分析需求分析 -24.设计说明设计说明 -24.1.文件编码(加密) -24.2.文件解码(解密) -35.详细设计详细设计 -35.1.程序主体结构-35.2.主要算法说明-35.2.1.Huffman树-35.2.2.Huffman编码-55.2.3.字符权重计算-65.2.4.字符解码-96.实验结果实验结果-106.1.实验结果说明 -106.2.程序运行截图 -117.设计体会设计体会-128.参考文献参考文献-139.附:程序代码附:程序代码 -13 2 / 321. 课程小组课程小组1.1.小组成员及分工小组成员及分工2. 设计目的和要求设计目的和要求通过课程设计,让学生进一步熟悉与巩固数据结构中常用算法,加深体会利用数据结构的算法解决实际问题的能力,培养学生进行复杂程序设计的技能,提高学生的思维能力、并促进其综合应用能力、分析能力和团队合作能力的提高。3. 需求分析需求分析随着网络信息科技的不断高速发展,网络上的问题也不断显露出来,特别是人们特别关注的安全隐私问题,所以文件的传输安全性要特别地亟待解决和提高。本次的课程设计以赫夫曼编码为题,设计出赫夫曼文件编码系统,旨在对文件中的内容进行分析、统计、处理,进而按照赫夫曼编码的理论,对文件进行简单加密。特别是,不同的文本文件有不同的字符处理形式,所以因此每一个文本都会有一个相应的密钥,用于对文本的解码。4. 设计说明设计说明本次编写的程序按着对文件的编码(加密)和解码(解密)的两大步骤展开。4.1.文件编码(加密)文件编码(加密)首先选择文件编码程序。进入程序后,会要求操作人员选择将要编码的文件,并将其导入到程序中,程序正确导入文件后将会对文件从开始至结束扫描一遍,对文件中的字符进行统计,在最后计算出每个字符出现的频率,并将频率换算成每个字符相应的权重。然后根据得到的字符权重,构造赫夫曼树并因此完成赫夫曼编码(至此,文件的导入分析过程已完成) 。然后让操作人员选择对文件进行编码。此时,程序将会继续打开文件,继续扫描一遍,并在扫描的过程中将扫描到得字符根据刚才编好的赫夫曼编码进行对照,将对应的赫夫曼编码写入另一个文件(即加密的文件) ,所以,如果用户代开加密的文件即看到里面全是二进制代码,并不能分析出里面究竟是什么内容。 (至此,加密的文件应经生成) 。最后,因为每个文件中的内容不同,所以每个文件的赫夫曼编码也不同,而赫夫曼编 3 / 32码是根据字符的权重生成的,所以每个文件都对应一个字符权重系列(即密钥) ,如果失去这个密钥,即使对文件进行了加密,也不同解密文件的内容,即文件加密失效,所以在生成加密文件后,一定要导出文件的字符权重(即密钥) ,以待之后的解码使用。 (至此,文件的加密工作应经全部完成) 。4.2.文件解码(解密)文件解码(解密)文件的解码程序是一步完成的,即要求操作者首先将之前生成的字符权重(即密钥)导入程序,程序根据获取到得字符权重,调用赫夫曼编码子程序,进行赫夫曼编码。然后程序会提示操作者将加密后的文件导入程序中,程序会根据在程序中获取到的二进制编码与赫夫曼编码进行对照识别,显示出对应的字符,因此,文件的解密工作完成。5. 详细设计详细设计5.1.程序主体结构程序主体结构程序主体结构分为文件编码与文件解码两个子程序。文件编码后分别导出编码后文件与文件密钥。文件解码需导入编码文件与文件密钥,然后显示文本内容。5.2.主要算法说明主要算法说明5.2.1.Huffman 树树/HuffmanTree list: list 为赫夫曼树.typedef struct char data; /存放字符数据 int weight; /存放字符权重int parent, lchild, rchild; /分别为根、左子树、右子树HuffmanTree;/Static info: info 为存放字符权重的数组指针. typedef structchar data; /存放字符数据int weight; /存放字符权重Static;/int codeSize: codeSize 为字符种类个数. 4 / 32void CreatHuffmanTree(HuffmanTree *&list, Static *info, int codeSize)int i, j, limit; int lnode, rnode; int value1, value2;HuffmanTree *ptr;limit = codeSize * 2 - 1;/limit 为赫夫曼树结点个数if (list = (HuffmanTree *)malloc(sizeof(HuffmanTree) * limit) = NULL)printf( 内存不足, 操作失败!n);exit(0);/*初始化赫夫曼树各结点信息*/ for(i=0, ptr=list; idata = infoi.data;ptr-weight = infoi.weight;ptr-parent = ptr-lchild = ptr-rchild = -1;for(; idata = 0;ptr-weight = 0;ptr-parent = ptr-lchild = ptr-rchild = -1;/*开始建立赫夫曼树*/ for(i=codeSize; ilimit; +i) value1 = value2 = 32767; lnode = rnode = -1;/此部分函数功能为选择权值最小的两个结点 for(j=0; ji; +j) if (listj.parent = -1) if (listj.weight value1) value2 = value1;rnode = lnode; value1 = listj.weight; 5 / 32lnode = j; else if (listj.weight value2) value2 = listj.weight;rnode = j;/此部分函数功能为选择出的结点建立关系 listlnode.parent = i;listrnode.parent = i; listi.weight = listlnode.weight + listrnode.weight; listi.lchild = lnode;listi.rchild = rnode;5.2.2.Huffman 编码编码void CreatHuffmanCode(HuffmanTree *list, HuffmanCode &code, int codeSize)int i, start;int flag1, flag2; char *tempCode;if (code = (char *)malloc(sizeof(char *) * codeSize) = NULL)printf( 内存不足, 操作失败!n);exit(0);if (tempCode = (char *)malloc(sizeof(char) * codeSize) = NULL)printf( 内存不足, 操作失败!n);exit(0);tempCodecodeSize-1 = 0;/*从叶子结点到根结点逆向求编码*/for(i=0; idata = ch;ptr-number = 1;ptr-next = characterList.next;characterList.next = ptr;+typeNumber;elsewhile (current != NULL) & (current-data != ch)previous = current;current = current-next;if (current != NULL)+(current-number);+characterNumber;elseif (ptr = (Data *)malloc(sizeof(Data) = NULL)printf( 内存不足, 操作失败!n);exit(0);ptr-data = ch;ptr-number = 1;ptr-next = current;previous-next = ptr;+typeNumber;+characterNumber;fclose(fp);codeSize = typeNumber;info = (Static *)malloc(sizeof(Static) * codeSize); 9 / 32current = characterList.next;/将统计好的字符权重信息存入权重文件中for (int i=0; idata;infoi.weight = (int)(current-number * 100.0 / characterNumber);current = current-next;5.2.4.字符解码字符解码/此代码用于比较查找赫夫曼编码bool CompareData(char *tempCode, int &position)for (position = 0; position codeSize; +position)if (strcmp(tempCode, codeposition) = 0)return true;return false;void DisplayContext()InportCharacterWeight();CreatHuffmanTree(list, info, codeSize);CreatHuffmanCode(list, code, codeSize);InportFileCoding();FILE *fp;int position;int end;char *tempCode;char ch;fp = fopen(fileName, rb); 10 / 32if (tempCode = (char *)malloc(sizeof(char) * codeSize) = NULL)printf( 内存不足, 操作失败!n);exit(0);end = 0;/*此部分为解码过程*/printf(n 文件内容为:nn );while (ch = fgetc(fp) != EOF)tempCodeend = ch;+end;tempCodeend = 0;if (CompareData(tempCode, position)printf(%c, infoposition.data);end = 0;printf(nn 按任意键结束!);getch();6. 实验结果实验结果6.1.实验结果说明实验结果说明经过多次对本程序的实验,此次编译完成的程序可以对简单的文本文件进行加密和解密,因为限于对文件的基本操作不是太完全清楚,只是匆匆查阅了一些关于 C 语言文件操作部分的资料,所以这也是文件操作方面的一个瑕疵。所以综上,次此的程序只能进行简单的加密与解密操作。 11 / 326.2.程序运行截图程序运行截图(图 1:赫夫曼加密程序主体窗口)(图 2:赫夫曼文件编码程序窗口)(图 3:用于测试的文本 原始文本内内容)(图 4:导出文件编码后,在创建的编码文件中生成的二进制数) 12 / 32(图 5:导出的文本密钥(即字符权重) )(图 6:赫夫曼文件译码程序窗口)(图 7:将之前生成的编码文件与密钥导入进来后显示出原来的文本内容)7. 设计体会设计体会进过此次的实验,让我对树结构及最优二叉树概念与操作的理解。在此次选择赫夫曼编码操作的时候,本打算用赫夫曼编码的程序对文件进行压缩存储,可是限于不知道怎样将生成的赫夫曼编码进行 bit 级别的存储(只知道进行 Byte 级别的存储) ,所以压缩存储的想法失败了,之后根据赫夫曼编码的结构及生成的文件,不得不让我想到了文件的加密与解密,于是按着这个思路来设计了本文件加密解密系统。在设计的时候,曾准备根据网上之前对 26 个英文字符的使用统计来事先对字符权重进行分配(这样加密的文件可解密性增加了) ,而且考虑到文件中不仅有 26 个英文字母,如果对各种字符的使用频率进行统计,这个事先工作的负担会很重,所以之后编写了自动统计文本字符的频率程序,这样工作量会减小很多(而且文件的可解密性大大减小,但是也带来了记录密钥的不方便) 。 13 / 32总体感觉程序还行,就是代码的简洁性还是有点差,条理还是不那么清晰。8. 参考文献参考文献1严蔚敏、吴伟明.数据结构.清华大学出版社.1997.42Thomas H.Cormen、Charles E.Leiserson .算法导论.机械工业出版社.2006.99. 附:程序代码附:程序代码#include#include#include#include/赫夫曼树结构typedef struct char data; int weight; int parent, lchild, rchild;HuffmanTree; /字符权重结构typedef structchar data;int weight;Static;/统计字符时所用到的链表结构typedef struct nodechar data;int number;struct node *next;Data;/赫夫曼代码结构typedef char* HuffmanCode; 14 / 32/创建赫夫曼树void CreatHuffmanTree(HuffmanTree *&list, Static *info, int codeSize);/创建赫夫曼代码void CreatHuffmanCode(HuffmanTree *list, HuffmanCode &code, int codeSize);/从文件中读取数据并计算各字符出现频率void DataCount(Static *&info);/文件编码程序void FileEncoding();/创建文件编码void CreatFileCoding();/导出编码后文件void ExportFileEncoding(HuffmanTree *list, HuffmanCode code, int codeSize);/导出文件中字符权重void ExportCharacterWeight();/文件译码程序void FileDecoding();/导入编码后的文件void InportFileCoding();/导入文件中字符权重void InportCharacterWeight();/显示译码后的文件内容void DisplayContext();bool CompareData(char *tempCode, int &position);void Bound(char character, int size);/赫夫曼树HuffmanTree *list;/赫夫曼代码HuffmanCode code;/字符权重信息Static *info;/字符种数int codeSize;/文件名char fileName30;int main()char choice; 15 / 32while (true)system(CLS);printf( 赫夫曼编码加密程序n);Bound(-, 25);printf( 1. 文 件 编 码 n);printf( 2. 文 件 译 码 n);printf( 0. 退 出 程 序 n);Bound(-, 25);printf( 请选择: );fflush(stdin);choice = getchar();switch (choice)case 1:FileEncoding();break;case 2:FileDecoding();break;case 0:printf(n);system(PAUSE);return 0;break;default:printf(n 您的输入有误, 按任意键后请从新输入!);getch();break;void CreatHuffmanTree(HuffmanTree *&list, Static *info, int codeSize)int i, j, limit; int lnode, rnode; int value1, value2;HuffmanTree *ptr; 16 / 32limit = codeSize * 2 - 1;if (list = (HuffmanTree *)malloc(sizeof(HuffmanTree) * limit) = NULL)printf( 内存不足, 操作失败!n);exit(0); for(i=0, ptr=list; idata = infoi.data;ptr-weight = infoi.weight;ptr-parent = ptr-lchild = ptr-rchild = -1;for(; idata = 0;ptr-weight = 0;ptr-parent = ptr-lchild = ptr-rchild = -1; for(i=codeSize; ilimit; +i) value1 = value2 = 32767; lnode = rnode = -1; for(j=0; ji; +j) if (listj.parent = -1) if (listj.weight value1) value2 = value1;rnode = lnode; value1 = listj.weight;lnode = j; else if (listj.weight value2) value2 = listj.weight;rnode = j; 17 / 32 listlnode.parent = i;listrnode.parent = i; listi.weight = listlnode.weight + listrnode.weight; listi.lchild = lnode;listi.rchild = rnode;void CreatHuffmanCode(HuffmanTree *list, HuffmanCode &code, int codeSize)int i, start;int flag1, flag2; char *tempCode;if (code = (char *)malloc(sizeof(char *) * codeSize) = NULL)printf( 内存不足, 操作失败!n);exit(0);if (tempCode = (char *)malloc(sizeof(char) * codeSize) = NULL)printf( 内存不足, 操作失败!n);exit(0);tempCodecodeSize-1 = 0;for(i=0; idata = ch;ptr-number = 1;ptr-next = characterList.next;characterList.next = ptr;+typeNumber;elsewhile (current != NULL) & (current-data != ch)previous = current;current = current-next;if (current != NULL)+(current-number);+characterNumber;else 20 / 32if (ptr = (Data *)malloc(sizeof(Data) = NULL)printf( 内存不足, 操作失败!n);exit(0);ptr-data = ch;ptr-number = 1;ptr-next = current;previous-next = ptr;+typeNumber;+characterNumber;fclose(fp);codeSize = typeNumber;info = (Static *)malloc(sizeof(Static) * codeSize);current = characterList.next;for (int i=0; idata;infoi.weight = (int)(current-number * 100.0 / characterNumber);current = current-next;void FileEncoding()char choice;while (true)system(CLS);printf( 文件编码程序n);Bound(-, 25);printf( 1. 创 建 文 件 编 码 n);printf( 2. 导 出 文 件 编 码 n); 21 / 32printf( 3. 导 出 文 件 密 钥 n);printf( 0. 返 回 主 菜 单 n);Bound(-, 25);printf( 请选择: );fflush(stdin);choice = getchar();switch (choice)case 1:CreatFileCoding();break;case 2:ExportFileEncoding(list, code, codeSize);break;case 3:ExportCharacterWeight();break;case 0:return;default:printf(n 您的输入有误, 按任意键后请从新输入!);getch();break;void CreatFileCoding()DataCount(info);CreatHuffmanTree(list, info, codeSize);CreatHuffmanCode(list, code, codeSize);printf(n 创建文件编码成功! 按任意键继续!);getch();void ExportFileEncoding(HuffmanTree *list, HuffmanCode code, int codeSize)int i;char ch;char outFileName30;FILE *inFile, *outFile; 22 / 32system(CLS);inFile = fopen(fileName, rb);printf(n 请创建导出文件名: );fflush(stdin);gets(outFileName);if (outFile = fopen(outFileName, wb) = NULL)printf( 输出文件创建失败!n);exit(0);while (ch = fgetc(inFile) != EOF)for(i=0; icodeSize; +i)if (listi.data = ch)fputs(codei, outFile);break;fcloseall();printf(n 导出文件成功! 按任意键继续!);getch();void ExportCharacterWeight()char outFileName30;FILE *fp;system(CLS);printf(n 请创建导出文件名: );fflush(stdin);gets(outFileName); 23 / 32if (fp = fopen(outFileName, wb) = NULL)printf( 输出文件创建失败!n);exit(0);for(int i=0; idata = data;ptr-number = weight;ptr-next = characterList.next;characterList.next = ptr;+characterNumber;fclose(fp);codeSize = characterNumber;if (info = (Static *)malloc(sizeof(Static) * codeSize) = NULL)printf( 内存不足, 操作失败!n);exit(0);ptr = characterList.next;for (int i=codeSize-1; i=0; -i)infoi.data = ptr-data;infoi.weight = ptr-number;ptr = ptr-next;printf(n 文件导入成功! 下一步.n);bool CompareData(char *tempCode, int &position)for (position = 0; position codeSize; +position)if (strcmp(tempCode, codeposition) = 0)return true; 27 / 32return false;void DisplayContext()InportCharacterWeight();CreatHuffmanTree(list, info, codeSize);CreatHuffmanCode(list, code, codeSize);InportFileCoding();FILE *fp;int position;int end;char *tempCode;char ch;fp = fopen(fileName, rb);if (tempCode = (char *)malloc(sizeof(char) * codeSize) = NULL)printf( 内存不足, 操作失败!n);exit(0);end = 0;printf(n 文件内容为:nn );while (ch = fgetc(fp) != EOF)tempCodeend = ch;+end;tempCodeend = 0;if (CompareData(tempCode, position)printf(%c, infoposition.data);end = 0; 28 / 32printf(nn 按任意键结束!);getch();void Bound(char character, int size)while (size-)putchar(character);putchar(n);g an employment tribunal claimEmployment tribunals sort out disagreements between employers and employees.You may need to make a claim to an employment tribunal if:you dont agree with the disciplinary action your employer has taken against youyour employer dismisses you and you think that you have been dismissed unfairly.For more information about dismissal and unfair dismissal, see Dismissal.You can make a claim to an employment tribunal, even if you havent appealed against the disciplinary action your employer has taken against you. However, if you win your case, the tribunal may reduce any compensation awarded to you as a result of your failure to appeal.Remember that in most cases you must make an application to an employment tribunal within three months of the date when the event you are complaining about happened. If your application is received after this time limit, the tribunal will not usually accept it.If you are worried about how the time limits apply to you, take advice from one of the organisations listed under Further help.Employment tribunals are less formal than some other courts, but it is still a legal process and you will need to give evidence under an oath or affirmation.Most people find making a claim to an employment tribunal challenging. If you are thinking about making a claim to an employment tribunal, you should get help straight away from one of the organisations listed under Further help.If you are being represented by a solicitor at the tribunal, they may ask you to sign an agreement where you pay their fee out of your compensation if you win the case. This is known as a damages-based agreement. In England and Wales, your solicitor cant charge you more than 35% of your compensation if you win the case.If you are thinking about signing up for a damages-based agreement, you should make sure youre clear about the terms of the agreement. It might be best to get advice from an experienced adviser, for example, at a Citizens Advice Bureau. To find your nearest CAB, including those that give advice by e-mail, click on nearest CAB.For more information about making a claim to an employment tribunal, see Employment tribunals.The (lack of) air up there Watch mCayman Islands-based Webb, the head of Fifas anti-racism 29 / 32taskforce, is in London for the Football Associations 150th anniversary celebrations and will attend Citys Premier League match at Chelsea on Sunday.I am going to be at the match tomorrow and I have asked to meet Yaya Toure, he told BBC Sport.For me its about how he felt and I would like to speak to him first to find out what his experience was.Uefa has opened disciplinary proceedings against CSKA for the racist behaviour of their fans during Citys 2-1 win.Michel Platini, president of European footballs governing body, has also ordered an immediate investigation into the referees actions.CSKA said they were surprised and disappointed by Toures complaint. In a statement the Russian side added: We found no racist insults from fans of CSKA.Age has reached the end of the beginning of a word. May be guilty in his seems to passing a lot of different life became the appearance of the same day; May be back in the past, to oneself the paranoid weird belief disillusionment, these days, my mind has been very messy, in my mind constantly. Always feel oneself should go to do something, or write something. Twenty years of life trajectory deeply shallow, suddenly feel something, do it.一字开头的年龄已经到了尾声。或许是愧疚于自己似乎把转瞬即逝的很多个不同的日子过成了同一天的样子;或许是追溯过去,对自己那些近乎偏执的怪异信念的醒悟,这些天以来,思绪一直很凌乱,在脑海中不断纠缠。总觉得自己自己似乎应该去做点什么,或者写点什么。二十年的人生轨迹深深浅浅,突然就感觉到有些事情,非做不可了。The end of our life, and can meet many things really do?而穷尽我们的一生,又能遇到多少事情是真正地非做不可?During my childhood, think lucky money and new clothes are necessary for New Year, but as the advance of the age, will be more and more found that those things are optional; Junior high school, thought to have a crush on just means that the real growth, but over the past three years later, his writing of alumni in peace, suddenly found that isnt really grow up, it seems is not so important; Then in high school, think dont want to give vent to out your inner voice can be in the high school children of the feelings in a period, but was eventually infarction when graduation party in the throat, later again stood on the pitch he has sweat profusely, looked at his thrown a basketball hoops, suddenly found himself has already cant remember his appearance.童年时,觉得压岁钱和新衣服是过年必备,但是随着年龄的推进,会越来越发现,那些东西根本就可有可无;初中时,以为要有一场暗恋才意味着真正的成长,但三年过去后,自己心平气和的写同学录的时候,突然就发现是不是真正的成长了,好像并没有那么重要了;然后到了高中,觉得非要吐露出自己的心声才能为高中生涯里的懵懂情愫划上一个句点,但毕业晚会的时候最终还是被梗塞在了咽喉,后来再次站在他曾经挥汗如雨的球场,看着他投过篮球的球框时,突然间发现自己已经想不起他的容颜。Originally, this world, can produce a chemical reaction to an event, in addition to resolutely, have to do, and time. 30 / 32原来,这个世界上,对某个事件能产生化学反应的,除了非做不可的坚决,还有,时间。A persons time, your ideas are always special to clear. Want, want, line is clear, as if nothing could shake his. Also once seemed to be determined to do something, but more often is he backed out at last. Dislike his cowardice, finally found that there are a lot of love, there are a lot of miss, like shadow really have been doomed. Those who do, just green years oneself give oneself an arm injection, or is a self-righteous spiritual.一个人的时候,自己的想法总是特别地清晰。想要的,不想要的,界限明确,好像没有什么可以撼动自己。也曾经好像已经下定了决心去做某件事,但更多的时候是最后又打起了退堂鼓。嫌恶过自己的怯懦,最终却发现有很多缘分,有很多错过,好像冥冥之中真的已经注定。那些曾经所谓的非做不可,只是青葱年华里自己给自己注射的一支强心剂,或者说,是自以为是的精神寄托罢了。At the moment, the sky is dark, the air is fresh factor after just rained. Suddenly thought of blue plaid shirt; Those were broken into various shapes of stationery; From the corner at the beginning of deep friendship; Have declared the end of the encounter that havent start planning. Those years, those days of do, finally, like youth, will end in our life.此刻,天空是阴暗的,空气里有着刚下过雨之后的清新因子。突然想到那件蓝格子衬衫;那些被折成各种各样形状的信纸;那段从街角深巷伊始的友谊;还有那场还没有开始就宣告了终结的邂逅计划那些年那些天的非做不可,终于和青春一样,都将在我们的人生中谢幕。Baumgartner the disappointing news: Mission aborted. r plays an important role in this mission. Starting at the ground, conditions have to be very calm - winds less than 2 mph, with no precipitation or humidity and limited cloud cover. The balloon, with capsule attached, will move through the lower level of the atmosphere (the troposphere) where our day-to-day weather lives. It will climb higher than the tip of Mount Everest (5.5 miles/8.85 kilometers), drifting even higher than the cruising altitude of commercial airliners (5.6 miles/9.17 kilometers) and into the stratosphere. As he crosses the boundary layer (called the tropopause),e can expect a lot of turbulence.The supersonic descent could happen as early as Sunda.The weatheThe balloon will slowly drift to the edge of space at 120,000 feet ( Then, I would assume, he will slowly step out onto something resembling an Olympic diving platform.Below, the Earth becomes the concrete bottom of a swimming pool that he wants to land on, but not too hard. Still, hell be traveling fast, so despite the distance, it will not be like 31 / 32diving into the deep end of a pool. It will be like he is diving into the shallow end. Skydiver preps for the big jumpWhen he jumps, he is expected to reach the speed of sound - 690 mph (1,110 kph) - in less than 40 seconds. Like hitting the top of the water, he will begin to slow as he approaches the more dense air closer to Earth. But this will not be enough to stop him completely.If he goes too fast or spins out of control, he has a stabilization parachute that can be deployed to slow him down. His team hopes its not needed. Instead, he plans to deploy his 270-square-foot (25-square-meter) main chute at an altitude of around 5,000 feet (1,524 meters).In order to deploy this chute successfully, he will have to slow to 172 mph (277 kph). He will have a reserve parachute that will open automatically if he loses consciousness at mach speeds.Even if everything goes as planned, it wont. Baumgartner still will free fall at a speed that would cause you and me to pass out, and no parachute is guaranteed to work higher than 25,000 feet (7,620 meters).cause there
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 任务书类


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!