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