篇一:SQL查询显示行号、随机查询、取指定行数据
查询结果:
3、取指定行数据
我们这里需要的不是主键编号在某一取值范围内的数据,而是行号在指定范围内,还是上面的
Row_Number()函数。
篇二:电话号码查询系统
#include<iostream> #include<string> #include<iomanip> using namespace std; struct XINXI { char name[20];char addr[20]; char num[20];bool pel; } p[100]; static int i=0; int key2; int key;
void creat() //输入个人信息 { cout<<"请依次输入姓名(汉语拼音形式)、地址、电话:"<<endl; cout<<"请输入第"<<i+1<<"个数据:";cin>>p[i].name>>p[i].addr>>p[i].num;i++;}
void xianshi() //显示输入的信息 {int a=0; cout<<"输入的个人信息为"<<endl; for(a;a<i;a++) {if(!p[a].pel){ cout<<"第"<<a+1<<"个数据:"<<"姓名:"<<" "<<p[a].name; cout<<""<<"地址:"<<" "<<p[a].addr; cout<<""<<"电话:"<<" "<<p[a].num<<endl;} } }
void xianshi2(int t) { if((!p[t].pel)&&(t<i)){ cout<<"姓名:"<<" "<<p[t].name; cout<<""<<"地址:"<<" "<<p[t].addr; cout<<""<<"电话:"<<" "<<p[t].num<<endl;
}}
int hash1(char name[20]) //求姓名的关键字{ int i = 1;
key2=(int)name[0]; while(name[i]!=NULL) {
key2+=(int)name[i]; i++; }
return key2; }
int hash2(char num[11]) { int i = 1; key=(int)num[0];while(num[i]!=NULL) {
key+=(int)num[i]; i++; } return key; }
void CreatHash1(int ht[])探测法处理冲突 { int k;
for(int a=0;a<i;a++) {k=hash1(p[a].name)%100; int m;if (ht[k] == 0) ht[k] =k+1; else if(ht[k]!=0){ m = (k+1) % 100; if (ht[m] == 0) ht[m] =k+1;else{
//建立姓名散列表,并且用线性 //没有发生冲突,直接存入 //线性探测处理冲突
for(int r=1;r<=100;r++) {m= (m+r) % 100; if (ht[m] == 0) { ht[m] =k+1; break;}else if (m == k)cout<<"溢出"<<endl; } } } } }
void CreatHash2(int ht[]) 线性探测法处理冲突 { int k;
for(int a=0;a<i;a++) {k=hash1(p[a].num)%100; int m;if (ht[k] == 0) ht[k] =k+1; else if(ht[k]!=0){ m = (k+1) % 100; if (ht[m] == 0) ht[m] =k+1;else{ for(int r=1;r<=100;r++) {m= (m+r) % 100; if (ht[m] == 0) { ht[m] =k+1; break;}else if (m == k)cout<<"溢出"<<endl;
//建立电话号码散列表,并且用 //没有发生冲突,直接存入 //线性探测处理冲突
} } } } }
void Search1 ( int ht[],int k) { int i,j;
j =k %100; i =j;while (ht[i]!=0) {if (ht[i] == j+1) {//发生冲突,比较若干次查找成功 cout<<"查找成功!!"<<endl;
cout<<"查到的相关信息为:"; for(int a=0;a<100;a++) { if(ht[i]==hash1(p[a].name)%100+1) xianshi2(a); } break;}i= (i+1) % 100; //向后探测一个位置if (i==j) break; } if(ht[i]==0)cout<<"查找失败!!"<<endl; }
void Search2 ( int ht[],int k) { int i,j;
j =k %100; i =j;
if(ht[i]==0)cout<<"查找失败!!"<<endl;
while (ht[i]!=0) {if (ht[i] == j+1) {//发生冲突,比较若干次查找成功 cout<<"查找成功!!"<<endl;
cout<<"查到的相关信息为:"; for(int a=0;a<100;a++) { if(ht[i]==hash1(p[a].num)%100+1) xianshi2(a); } break;}i= (i+1) % 100; //向后探测一个位置if (i==j) break; } if(ht[i]==0)cout<<"查找失败!!"<<endl; }
void shuzu1(int ht[]) { int x;int e=0;for (x=0; x<100; x++){ cout<<ht[x]<<setw(5); e++;}if(e%6==0) cout<<endl; }
void sanlie1(int ht[]) { cout<<"按姓名散列结果为:"<<endl; //显示按姓名建立的散列表 int x;int i;int j=100; for (x=0;x<100;x++) { for(i=0;i<100;i++){ if((ht[x]==hash1(p[i].name)%100+1)&&(i!=j)) {xianshi2(i);j=i; break;}}
篇三:简单个人电话号码查询系统
/**********************************************************/
/*人们在日常生活中经常需要查找某个人或某个单位的电话号码, */
/*本程序将实现一个简单的个人电话号码查询系统,根据用户输入*/
/*的信息(例如姓名等)进行快速查询。 */
/**********************************************************/
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
int x=0;
char a;
int j=1;
struct TeleNumber//电话号码类
{
char name[10];//姓名
int phoneNumber; //固定电话号码
int mobileNumber; //移动电话号码
char email[10];//电子邮箱
int s;
TeleNumber * Next; //下一指针
void ReadFile(istream & in); //读取数据文件
void input();//数据输入函数
void display();//数据显示函数
} ;
void TeleNumber::ReadFile(istream & in) //从文件把数据读入到程序 {
in>>name>>phoneNumber>>mobileNumber>>email; //将文件信息读到相关变量里面 }
void TeleNumber::input()//信息输入
{
cout<<"请输入姓名"<<endl;
cin>>name;
cout<<"请输入固定电话号码"<<endl;
cin>>phoneNumber;
cout<<"请输入移动电话号码"<<endl;
cin>>mobileNumber;
cout<<"请输入电子邮箱"<<endl;
cin>>email;
s=j++; //记录插入的人的信息的数量
}
void TeleNumber::display()//信息输出
{
cout<<"姓名:"<<name<<'\t'<<"固定号码:"<<phoneNumber<<'\t'
<<"移动电话号码:"<<mobileNumber<<'\t'<<"电子邮箱:"<<email<<endl;
}
class TeleMessage//功能类
{
public:
TeleMessage();//构造数据结构
~TeleMessage(); //释放单链表析构函数
void Save(); //数据保存到文件
TeleNumber * Search(char *); //信息查找
void Sort(); //排序
void Insert();//插入
void Remove();//删除
void Change();//更改
void Show(); //显示
void Swap(TeleNumber *,TeleNumber *); //两个TeleNumber对象交换数据域 private:
TeleNumber * End,* Head;
ifstream in;//定义读,写文件对象
ofstream out;
};
TeleMessage::TeleMessage() //构造函数初始化
{
Head=new TeleNumber; //头插法建立单链表
Head->Next=new TeleNumber;
End=Head->Next;
in.open("TeleNumber.text"); //打开外存文件,看是否有数据存在
if(!in)
cout<<"电话系统中没有任何号码,请输入号码"<<endl;
else
{
while(!in.eof()) //如果有,则打开,并将数据读取到程序
{
End->ReadFile(in);
if(End->name[0]=='\0')break; //如果名字为空
End->Next=new TeleNumber; //为下一个指针分配内存 End=End->Next; //指针下移
}
in.close();//in对象关闭
cout<<"读取电话号码系统成功!"<<endl;
}
cout<<"输入任意字母继续"<<endl;
cin>>a;
TeleMessage::~TeleMessage() //析构函数释放单链表
{
TeleNumber * temp; //定义一个当前的指针
while(Head->Next!=End)
{
temp=Head->Next;
Head=Head->Next;
delete temp; //逐个释放内存空间
}
delete Head,End;//删除头尾指针
}
void TeleMessage::Save() //保存文件
{
out.open("TeleNumber.txt"); //建立外存文件TeleNumber.txt for(TeleNumber *p=Head->Next;p!=End;p=p->Next)
out<<p->name<<"\t"<<p->phoneNumber<<"\t"<<p->mobileNumber<<"\t"<<p->email<<endl; //将数据存到外存文件里
out.close();
cout<<"保存成功!"<<endl;
}
void TeleMessage::Swap(TeleNumber *p1,TeleNumber *p2) //两个类对象数据域进行交换 {
TeleNumber * temp=new TeleNumber; //定义一个中转指针 strcpy(temp->name,p1->name);//将当前要交换指针中间的一个的name值赋值给中间变量
strcpy(temp->email,p1->email);
temp->mobileNumber=p1->mobileNumber;
temp->phoneNumber=p1->phoneNumber;
temp->s=p1->s;
strcpy(p1->name,p2->name);
strcpy(p1->email,p2->email);
p1->mobileNumber=p2->mobileNumber;
p1->phoneNumber=p2->phoneNumber;
p1->s=p2->s;
strcpy(p2->name,temp->name);
strcpy(p2->email,temp->email);
p2->mobileNumber=temp->mobileNumber;
p2->phoneNumber=temp->phoneNumber;
p2->s=temp->s; //将p1,p2的各个成员变量交换
}
void TeleMessage::Sort()//起泡排序
TeleNumber *p=NULL,*q=NULL;
int exchange=j-1;//要排序的电话号码的条数 int bound; //
int i;
while(exchange)
{
bound=exchange;
exchange=0;
for(p=Head->Next,i=1;i<bound;i++,p=p->Next)
if(p->mobileNumber>p->Next->mobileNumber)
{
Swap(p,p->Next); //调用交换函数 exchange=p->s;
}
}
Show();
}
void TeleMessage::Insert() //插入
{
End->input();//从单链表尾部插入
End->Next=new TeleNumber;
End=End->Next;
cout<<endl<<"插入成功"<<endl;
}
void TeleMessage::Remove() //删除
{
char name[20];
TeleNumber * p=new TeleNumber,*temp=NULL;
cout<<"请输入要删除人的姓名:"<<endl;
cin>>name;
p->Next=Search(name); //先进行查找,找到所要删除的结点
if(Search(name))
{
temp=p->Next;
p->Next=p->Next->Next; //摘链
delete temp;
cout<<"\t\t删除成功!"<<endl;
}
else
{
cout<<"\t\t没有找到!"<<endl;
}
}
TeleNumber * TeleMessage::Search(char * name)
{
for(TeleNumber *p=Head->Next;p!=End;p=p->Next)
if(!strcmp(p->name,name))
{
if(x==4)
{
p->display();
return p;
}
else
return p;
}
if(x==4)
cout<<"查无此人"<<endl;
return 0;
}
void TeleMessage::Change() //修改信息
{
char name[20];
cout<<"请输入要修改的人的姓名:";
cin>>name;
if(Search(name))
{
cout<<"\t\t已找到个人的信息,请输入新的信息!"<<endl;Search(name)->input();
cout<<"修改成功!"<<endl;
}
else
{
cout<<"\t\t没有找到!"<<endl;
}
}
void TeleMessage::Show()
{
for(TeleNumber * p=Head->Next;p!=End;p=p->Next)p->display();
}
int main()
{
bool flag=true;
TeleMessage tele;
《开户银行联行号》
由:免费论文网互联网用户整理提供,链接地址:
http://m.csmayi.cn/meiwen/44869.html
转载请保留,谢谢!
- 上一篇:蔬菜销售工作总结
- 下一篇:蔬菜工作总结