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

📄 menu3.cpp

📁 连接到数据库(sql和access)
💻 CPP
📖 第 1 页 / 共 3 页
字号:
#include "menu.h"

/*包含find、findmore、display、transport四个函数*/

/*-----------------------------------------------------------------*
 *函数:  find()                                                    *
 *参数:  整型,字符串,表结构指针                                    *
 *作用:  精确查找记录                                              *
 *返回: 表结构                                                    *
 *-----------------------------------------------------------------*/

sys find(int choice[3],char ch1[50],char ch2[50],sys *all)
{
	sys reply;
	int table=choice[1];
	int column=choice[2];//默认是查找第一列
	switch(table)
	{
	//从学生表中查找
	case 1:
		{
			STUDENT *p;
			p=all->studenthead->next;
			if(column==10)
			{
				while(p!=NULL&&strcmp(ch1,p->SP_NO)!=0)
				{
					p=p->next;
				}
				reply.studenthead=p;
				break;
			}
			if(column==11)
			{
				while(p!=NULL&&strcmp(ch1,p->CNO)!=0)
				{
					p=p->next;
				}
				reply.studenthead=p;
				break;
			}
			if(column==12)
			{
				while(p!=NULL&&strcmp(ch1,p->CH_NO)!=0)
				{
					p=p->next;
				}
				reply.studenthead=p;
				break;
			}
			while(p!=NULL&&strcmp(ch1,p->SNO)!=0)
			{
				
				p=p->next;
			}
			reply.studenthead=p;
			break;
			
		}
	//从教师表中查找
	case 2:
		{
			TEACHER *p;
			p=all->teacherhead->next;
			if(column==8)
			{
				while(p!=NULL&&strcmp(ch1,p->DNO)!=0)
				{
					p=p->next;
				}
				reply.teacherhead=p;
				break;
			}
			while(p!=NULL&&strcmp(ch1,p->TNO)!=0)
			{
				
				p=p->next;
			}
			reply.teacherhead=p;
			break;
		}
	//从课程表中查找
	case 3:
		{
			COURSE *p;
			p=all->coursehead->next;
			if(column==7)
			{
				while(p!=NULL&&strcmp(ch1,p->DNO)!=0)
				{
					p=p->next;
				}
				reply.coursehead=p;
				break;
			}
			while(p!=NULL&&strcmp(ch1,p->CO_NO)!=0)
			{
				
				p=p->next;
			}
			reply.coursehead=p;
			break;
		}
	//从专业表中查找
	case 4:
		{
			SPECIALITY *p;
			p=all->specialityhead->next;
			if(column==5)
			{
				while(p!=NULL&&strcmp(ch1,p->DNO)!=0)
				{
					p=p->next;
				}
				reply.specialityhead=p;
				break;
			}
			while(p!=NULL&&strcmp(ch1,p->SP_NO)!=0)
			{
				
				p=p->next;
			}
			reply.specialityhead=p;
			break;
		}
	//从院系表中查找
	case 5:
		{
			DEPARTMENT *p;
			p=all->departmenthead->next;
			while(p!=NULL&&strcmp(ch1,p->DNO)!=0)
			{
				
				p=p->next;
			}
			reply.departmenthead=p;
			
		}
	//从班级表中查找
	case 6:
		{
			CLASS *p;
			p=all->classhead->next;
			if(column==6)
			{
				while(p!=NULL&&strcmp(ch1,p->TNO)!=0)
				{
					p=p->next;
				}
				reply.classhead=p;
				break;
			}
			if(column==7)
			{
				while(p!=NULL&&strcmp(ch1,p->DNO)!=0)
				{
					p=p->next;
				}
				reply.classhead=p;
				break;
			}
			while(p!=NULL&&strcmp(ch1,p->CNO)!=0)
			{
				
				p=p->next;
			}
			reply.classhead=p;
			break;
		}
	//从教学计划表中查找
	case 7:
		{

			PROJECT *p;
			p=all->projecthead->next;
			if(column==1)
			{
				while(p!=NULL&&strcmp(ch1,p->SP_NO)!=0)
				{
					p=p->next;
				}
				reply.projecthead=p;
				break;
			}
			if(column==2)
			{
				while(p!=NULL&&strcmp(ch1,p->CO_NO)!=0)
				{
					p=p->next;
				}
				reply.projecthead=p;
				break;
			}
			while(p!=NULL&&!(strcmp(ch1,p->SP_NO)==0&&strcmp(ch2,p->CO_NO)==0))
			{
				p=p->next;
			}
			reply.projecthead=p;
			break;

		}
	//从入校报到表中查找
	case 8:
		{
			REGISTER *p;
			p=all->registerhead->next;
			if(column==2)
			{
				while(p!=NULL&&strcmp(ch1,p->DNO)!=0)
				{
					p=p->next;
				}
				reply.registerhead=p;
				break;
			}
			while(p!=NULL&&strcmp(ch1,p->RNO)!=0)
			{
				
				p=p->next;
			}
			reply.registerhead=p;
			break;
		}
	//从选修表中查找
	case 9:
		{
			SC *p;
			p=all->schead->next;
			if(column==1)
			{
				while(p!=NULL&&!(strcmp(ch1,p->SNO)==0))
				{
					p=p->next;
				}
				reply.schead=p;
				break;
			}
			if(column==2)
			{
				while(p!=NULL&&!(strcmp(ch1,p->CO_NO)==0))
				{
					p=p->next;
				}
				reply.schead=p;
				break;
			}
			if(column==5)
			{
				while(p!=NULL&&!(strcmp(ch1,p->TNO)==0))
				{
					p=p->next;
				}
				reply.schead=p;
				break;
			}
			while(p!=NULL&&!(strcmp(ch1,p->SNO)==0&&strcmp(ch2,p->CO_NO)==0))
			{
				p=p->next;
			}
			reply.schead=p;
			break;

		}
	//从讲授表中查找
	case 10:
		{
			TC *p;
			p=all->tchead->next;
			if(column==1)
			{
				while(p!=NULL&&!(strcmp(ch1,p->TNO)==0))
				{
					p=p->next;
				}
				reply.tchead=p;
				break;
			}
			if(column==2)
			{
				while(p!=NULL&&!(strcmp(ch1,p->CO_NO)==0))
				{
					p=p->next;
				}
				reply.tchead=p;
				break;
			}
			while(p!=NULL&&!(strcmp(ch1,p->TNO)==0&&strcmp(ch2,p->CO_NO)==0))
			{
				p=p->next;
			}
			reply.tchead=p;
			break;
		}
	//从参加活动表中查找
	case 11:
		{
			JOINACTIVITY *p;
			p=all->joinactivityhead->next;
			if(column==1)
			{
				while(p!=NULL&&!(strcmp(ch1,p->ANO)==0))
				{
					p=p->next;
				}
				reply.joinactivityhead=p;
				break;
			}
			if(column==4)
			{
				while(p!=NULL&&!(strcmp(ch1,p->SNO)==0))
				{
					p=p->next;
				}
				reply.joinactivityhead=p;
				break;
			}
			while(p!=NULL&&!(strcmp(ch1,p->ANO)==0&&strcmp(ch2,p->SNO)==0))
			{
				p=p->next;
			}
			reply.joinactivityhead=p;
			break;
		}
	//从登记表中查找
	case 12:
		{
			LOGON *p;
			p=all->logonhead->next;
			if(column==1)
			{
				while(p!=NULL&&!(strcmp(ch1,p->RNO)==0))
				{
					p=p->next;
				}
				reply.logonhead=p;
				break;
			}
			if(column==2)
			{
				while(p!=NULL&&!(strcmp(ch1,p->SNO)==0))
				{
					p=p->next;
				}
				reply.logonhead=p;
				break;
			}
			while(p!=NULL&&!(strcmp(ch1,p->RNO)==0&&strcmp(ch2,p->SNO)==0))
			{
				p=p->next;
			}
			reply.logonhead=p;
			break;

		}
	//从学校活动表中查找
	case 13:
		{
			ACTIVITY *p;
			p=all->activityhead->next;
			while(p!=NULL&&strcmp(ch1,p->ANO)!=0)
			{
				
				p=p->next;
			}
			reply.activityhead=p;
			break;
		}
	//从寝室表中查找
	case 14:
		{
			CHAMBER *p;
			p=all->chamberhead->next;
			while(p!=NULL&&strcmp(ch1,p->CH_NO)!=0)
			{
				
				p=p->next;
			}
			reply.chamberhead=p;
			break;
		}
	default:break;
	}
	return reply;

}

/*-----------------------------------------------------------------*
 *函数:  findmore()                                                *
 *参数:  整型,字符串,表结构指针、数组                              *
 *作用:  模糊查找记录                                              *
 *返回: 无                                                        *
 *-----------------------------------------------------------------*/

void findmore(int choice[3],char ch[50],sys *all,sys reply[100])
{
	int table=choice[1];
	int column=choice[2];
	int num=0;
	int step=0;
	char word[3];
	unsigned int i,j,length;
	switch(table)
	{
	//从学生表中查找
	case 1:
		{
			STUDENT *p;
			reply[0].studenthead=NULL;
			p=all->studenthead->next;
			if(column==11)
			{
				while(p!=NULL)
				{
					if(strcmp(ch,p->CNO)==0)
					{
						reply[num++].studenthead=p;
						reply[num].studenthead=NULL;
					}
					p=p->next;
				}
				break;
			}
			while(p!=NULL)
			{
				length=strlen(p->SN);
				step=0;
				for(i=0;i<length;i++)
				{
					for(j=0;j<strlen(ch);j++)
					{
						word[j]=p->SN[step+j];
					}
					word[j]='\0';
					if(strcmp(ch,word)==0)
					{
						reply[num++].studenthead=p;
						reply[num].studenthead=NULL;
						break;
					}
					step+=strlen(ch);
				}
				
				p=p->next;
			}
			break;
		}
	case 2:
		{
			TEACHER *p;
			reply[0].teacherhead=NULL;
			p=all->teacherhead->next;
			if(column==8)
			{
				while(p!=NULL)
				{
					if(strcmp(ch,p->DNO)==0)
					{
						reply[num++].teacherhead=p;
						reply[num].teacherhead=NULL;
					}
					p=p->next;
				}
				break;
			}

			while(p!=NULL)
			{
				length=strlen(p->TN);
				step=0;
				for(i=0;i<length;i++)
				{
					for(j=0;j<strlen(ch);j++)
					{
						word[j]=p->TN[step+j];
					}
					word[j]='\0';
					if(strcmp(ch,word)==0)
					{
						reply[num++].teacherhead=p;
						reply[num].teacherhead=NULL;
						break;
					}
					step+=strlen(ch);
				}
				
				p=p->next;
			}
			break;
		}
	case 4:
		{
			SPECIALITY *p;
			reply[0].specialityhead=NULL;
			p=all->specialityhead->next;
			if(column==5)
			{
				while(p!=NULL)
				{					
					if(strcmp(ch,p->DNO)==0)
					{
						reply[num++].specialityhead=p;
						reply[num].specialityhead=NULL;
					}
					p=p->next;
				}
			}
			break;
		}
	case 6:
		{
			CLASS *p;
			reply[0].classhead=NULL;
			p=all->classhead->next;
			if(column==7)
			{

⌨️ 快捷键说明

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