博文

汇编 分支程序设计(2006-11-13 10:00:00)

摘要:实验内容: 在内存Score缓冲区中存放有100个学生的成绩数据,为无符号字节数。假设学生成绩在[90,100]区间为优秀,在[80,90)区间为良好,在[70,80)区间为一般,在[60,70)区间为及格,在[0,60)区间为不及格,要求统计出不及格,及格,一般,良好和优秀的人数,分别送入Notpassed,Passed,Good,Better和Best字节单元。 1. 用普通的跳转语句实现上述功能。 2. 用地址表法和转移表实现。 ******************************************* DATASEG SEGMENT NOTPASSED DB 0 PASSED DB 0 GOOD DB 0 BETTER DB 0 BEST DB 0  SCORE DB 90,80,75,30,64,95 DUP(70)DATASEG ENDS CODESEG SEGMENT ASSUME DS:DATASEG,CS:CODESEGSTART: MOV AX,DATASEG MOV DS,AX  MOV BX,0 MOV CX,100AGAIN: CMP SCORE[BX],90         JB NEXT                 INC BEST                    ;if >= 90 , Best! JMP DONENEXT: CMP SCORE[BX],80            ;If got here, ......

阅读全文(3164) | 评论:0

汇编循环程序设计(2006-11-13 09:58:00)

摘要:实验内容: 在内存Score缓冲区中存放有100个学生的成绩数据,为无符号字节数。设计程序完成如下功能: ①根据用户输入的一个2位十进制数,作为查找对象,在该数组中查找,若找到则显示“Y”,若没找到则显示“N”。 ②根据用户输入的一个2位十六进制数,作为查找对象,在该数组中查找,若找到则显示“Y”,若没找到则显示“N”。 ************************************************************************ (1) DATASEG SEGMENT SCORE DB 90,80,75,30,64,95 DUP(70)  ;数据段DATASEG ENDS CODESEG SEGMENT ASSUME DS:DATASEG,CS:CODESEGSTART: MOV AX,DATASEG MOV DS,AX  MOV AH,1    ;读入第一个数字a INT 21H SUB AL,30H MOV CL,10 MUL CL MOV BL,AL  MOV AH,1    ;读入第二个数字b INT 21H SUB AL,30H  ADD AL,BL   ;得到a*10+b    MOV AH,2    ;Ready to print char MOV BX,0 MOV CX,100AGAIN: CMP SCORE[BX],AL JE FOUND INC BX LOOP AGAIN  MOV DL,'N'  ;Not found, print 'N' JMP DONEFOUND: MOV DL,'Y'  ;Wow, Found it! print 'Y'DONE: INT 21H   MOV AH,4CH INT 21HCODESEG ......

阅读全文(4358) | 评论:1

kruskal 算法实现(2006-11-13 09:53:00)

摘要://kruskal 算法实现; #include"graph2.h"datagraph g2,g1;struct node{//定义结构体;  int weight;     };struct enode{ int v1,v2; int weight; int key;};enode edge[100];node pp[100];int keys[100];int n;int nweight;int ecount1=0,ncount,ecount=0,ecount3=0;//初始化; void change_weight(int weight1,int weight2)//改变节点的权值; {  for(int k=1;k<=n-ncount;k++)  if(pp[keys[k]].weight==weight1||pp[keys[k]].weight==weight2)  pp[keys[k]].weight=n; } void get_tree()//生成树函数; { int min,min1,min2; while(ecount!=ncount-1) {  int m=1000;  for(int i=1;i<=ecount1;i++)  if(edge[i].weight<m&&edge[i].key==0)//选择权值最小的边;   {m=edge[i].weight;min=i;}  visite_gnode(g2,edge[min].v1,1);   min1=edge[min].v1;  visite_gnode(g2,edge[min].v2,1);   min2=edge[min].v2;  Wait();  if(pp[min1].weight!=pp[min2].weight)  {    &nb......

阅读全文(1953) | 评论:0

设计程序以实现构造哈夫曼树的哈夫曼算法(2006-11-13 09:52:00)

摘要://数据结构课程设计、//设计程序以实现构造哈夫曼树的哈夫曼算法。//要求:使用实验工具的有关功能;要能有演示过程;求解出所构造的哈夫曼//树的带权路径长度。 #include"btreint.h" int count=0;//数据的个数;bitre data[50];//存储数组 void delete_min()//获得最小元素、{ for(int i=1;i<=count-2;i++) data[i]=data[i+2];} int tree_insert(bitre t)//插入新的节点; {   if(t->data>=data[count]->data){data[++count]=t;return 0;} else{int m; for(int j=1;j<=count;j++) if(data[j]->data>=t->data){m=j;break;} for(int k=count;k>=m;k--) data[k+1]=data[k]; data[m]=t; count++;} } int num=0;get_long(bitre t)//求解huffman树的带权路径长度; { if(t!=NULL){ if(t->rchild!=NULL&&t->lchild!=NULL) { visite_bnode(t,1); num=num+t->data; get_long(t->lchild); get_long(t->rchild); }}}void main(){       cout<<endl<<endl<<endl<<endl;    cout<<"          ***********************......

阅读全文(5794) | 评论:8

课程设计哈夫曼树文件的压缩(2006-11-13 09:43:00)

摘要://课程设计哈夫曼树文件的压缩#include<iostream>#include<fstream>#include<string>#include<iomanip>#include"stdio.h"using namespace std;string remfile[6000];//存放原文件字符的数组;int remcount=0;//记录元素个数;float  bitecount=0;//记录二进制码的个数;/****************************************************************/struct huffchar{//存放读入字符的类; int count;//字符出现的个数;    char data;//字符;};int count=1;//记录huff数组中字符实际出现的个数; huffchar huff[1000];//类的对象;   /****************************************************************//*文件读入部分和统计字符出现的频率*/bool char_judge(char c)//判断字符出现的函数;{  for(int i=1;i<=count;i++)   if(huff[i].data==c){huff[i].count++;return true;}//如果出现过,出现的频数加1;   return false; } void char_add(char c)//添加新出现的字符;{ huff[count].data=c; huff[count++].count++;//个数增加,}   //文件的读取void read_file_count(){ char c; ifstream infile; infile.open("huffman.txt");//打开huffman.txt文件;  if(!infile)//检查文件是否打开。 {  cerr&l......

阅读全文(3323) | 评论:1

C#心得(2006-11-10 10:48:00)

摘要:以前不了解C#,但是学习后知道还是很好学的,它和我学过的C++十分相似,使我上手很快,那我就介绍一下我的学习过程.  起初我看的是一本C#基础教程,认为很简单,只是很浏览的看;但是后来的编程中发现有些细节还是没看到,如类型的长度,以及一些类权限的定义如internal,abstact等把握的不好.  C#中添加了一些参数声明:如ref,out等挺好的.其余的循环等都是蛮好学的. 第二步是在VS2005上编写自己的代码.为什么选择VS2005呢是因为它的代码提示功能和自动纠错功能我感到很好.如果有兴趣的话建议在那里编程.从编程中找到自己的不足,自己应该加强哪方面的学习,可以说受益菲浅. 以上是我学习的方法,其实我也是刚学的C#,没太多的经验可谈,只是将自己的想法说出来,和大家一起探讨学习C#的最佳方式.渴盼和大家一起交流.......

阅读全文(2131) | 评论:0