⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hashtext.cpp

📁 哈希表 哈希表 哈希表 哈希表 哈希表 哈希表 哈希表
💻 CPP
字号:
#include <iostream.h>
#include <stdio.h>
#include <string.h>
typedef int KeyType;
#include "DataType.h"
#include "HashTable.h"

int maxline ;

/////////////////////////////////////////////////////////////
/////        求姓名的ASCLL码实现       					 ////
/////函数名: : getvalue ()      			   			 ////
/////////////////////////////////////////////////////////////

int  getvalue(int i)
{
	int sum=0,num,strl,j;
	char name[20];
//姓名ASCLL码求和函数
	cout<<"请输入你要存储的用户的第"<<i+1<<"姓名"<<endl;
	
	cin>>name;
	
	strl=strlen(name);
	for(j=0;j<strl;j++)   
	{	
		num=(int)name[j];
		if(num>64&&num<91||num>96&&num<123) //排除空格
			sum=num+sum;
    }
	return sum;
}

/////////////////////////////////////////////////////
/////        主函数实现       					 ////
/////////////////////////////////////////////////////

void main()
{
	int i,j,strl,sum=0,num;
	int c[30];
	cout<<"请输入你要存储的用户的姓名个数"<<endl;
	cin>>maxline;
	for(i=0;i<maxline;i++)
		c[i]=getvalue(i);//得到保存有姓名的ASCLL值的数组的指针


//定义哈希表长(int)maxline*1.7(初始化)
	HashTable myHashTable((int)maxline*1.7);
	DataType *a,item;
	a=new DataType[maxline];//动态申请文件中姓名个数多个的数组空间

//将保存有姓名的ASCLL值的数组的值付给a[i].key
	for(i=0;i<maxline;i++)
	{
		a[i].key=c[i];
	}

//将姓名的ASCLL码插入哈希表中
	for(i=0;i<maxline;i++)
	{
		myHashTable.Insert(a[i]); 
	}

//输出姓名ASCLL码在哈希表中的位置
	cout<<"数据在哈希表中的位置是:"<<endl;
	for(i=0;i<maxline;i++)
	{
		j=myHashTable.Find(a[i]);
		if(j>=0)//这里与书上不同
		{
			item=myHashTable.GetValue(j);
			cout<<"j="<<j<<" ht[]="<<item.key<<endl;
		}
	}

//查找的语句
	cout<<"请输入你要查找的姓名:"<<endl;
	char b[20];
	cin>>b;                                                   //不接收空格,而当作字符结束
//计算用户输入的姓名的ASCLL码值
	strl=strlen(b);
	for(j=0;j<strl;j++)   
	{	
		num=(int)b[j];
		if(num>64&&num<91||num>96&&num<123) //排除空格,符号等非字母元素
		sum=num+sum;
	}
//判断是否在
	int k=myHashTable.IsIn(sum); 
	if(k==1) cout<<"你输入的姓名在用户表文件中!"<<endl;
	else cout<<"你输入的姓名不在用户表文件中!"<<endl;
	cout<<"谢谢你的使用,本程序将退出!"<<endl;

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -