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

📄 cwq.cpp

📁 课程学习中的实验 关于快速查找的例子。快速查找学号等
💻 CPP
字号:
#include <iostream>
#include <string>
#define NULL 0
#define LEN sizeof(struct student)
using namespace std;


struct student
{
	char name[10];
	char number[15];
	struct student * next;
};
int n;

struct student * xuesheng(void)
{
	struct student * p1, * p2, * head;
	n=0;
	p1=p2=(struct student * )malloc(LEN);
	cout<<"开始输入记录"<<endl;
	cout<<"请输入姓名"<<endl;
	cin>>p1->name;
	cout<<"请输入学号"<<endl;
	cin>>p1->number;
	head=NULL;
	while(p1->name!=0)
	{
		n=n+1;
		if(n==1) head=p1;
		else p2->next=p1;
		p2=p1;
			p1=(struct student * )malloc(LEN);
			cout<<"请输入姓名,以 !  退出"<<endl;
			cin>>p1->name;
			if(strcmp(p1->name,"!")==0) break;
			cout<<"请输入学号"<<endl;
			cin>>p1->number;
	}
	p2->next=NULL;
	return head;
}


struct student * search(struct student * head)
{
	struct student * p1;
	char nam[10];
	char nam1[10]=""; 
	int t=0;
	p1=head;
	cout<<endl;
	cout<<"     请输入要查询的信息"<<endl;
	cin>>nam;
	while(p1!=NULL)
	{
		strncpy(nam1,p1->name,strlen(nam));   //按输入姓名字符数截取每个姓名,和输入姓名比较
		if(strcmp(nam,nam1)==0)
		{
			cout<<"   学号: "<<p1->number<<"              姓名: "<<p1->name<<endl;
			t++;
			p1=p1->next;
		}
		else
			p1=p1->next;
	}
cout<<"    共搜索到 "<<t<<"   条信息"<<endl;
return head;
}


void main()
{
	struct student * h;
	while(1)
	{
		cout<<endl;
		cout<<"             1.增加记录"<<endl;
		cout<<"             2.查找记录"<<endl;
		cout<<"             3.退出"<<endl;
		int choose;
		cin>>choose;
		switch(choose)
		{case 1:
			h=xuesheng();
			break;
		case 2:
			search(h);
			break;
		case 3:
			exit(0);
		}
	}
}

⌨️ 快捷键说明

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