📄 main.cpp
字号:
Find[1]=1;
Find[2]=10;
if(find(Find,temp[0],temp[0],all).studenthead!=NULL)
{
printf("\n该%s被%s表引用,不能删除,请重新输入!\n\n",row_txt[n][1],b_txt[Find[1]]);
flag=1;
}
Find[1]=7;
Find[2]=1;
if(find(Find,temp[0],temp[0],all).projecthead!=NULL)
{
printf("\n该%s被%s表引用,不能删除,请重新输入!\n\n",row_txt[n][1],b_txt[Find[1]]);
flag=1;
}
Find[1]=n;
delete_sys(n,find(Find,temp[0],temp[0],all),all);
break;
}
case 5:
{
Find[1]=2;
Find[2]=8;
if(find(Find,temp[0],temp[0],all).teacherhead!=NULL)
{
printf("\n该%s被%s表引用,不能删除,请重新输入!\n\n",row_txt[n][1],b_txt[Find[1]]);
flag=1;
}
Find[1]=3;
Find[2]=7;
if(find(Find,temp[0],temp[0],all).coursehead!=NULL)
{
printf("\n该%s被%s表引用,不能删除,请重新输入!\n\n",row_txt[n][1],b_txt[Find[1]]);
flag=1;
}
Find[1]=4;
Find[2]=5;
if(find(Find,temp[0],temp[0],all).specialityhead!=NULL)
{
printf("\n该%s被%s表引用,不能删除,请重新输入!\n\n",row_txt[n][1],b_txt[Find[1]]);
flag=1;
}
Find[1]=6;
Find[2]=7;
if(find(Find,temp[0],temp[0],all).classhead!=NULL)
{
printf("\n该%s被%s表引用,不能删除,请重新输入!\n\n",row_txt[n][1],b_txt[Find[1]]);
flag=1;
}
Find[1]=8;
Find[2]=2;
if(find(Find,temp[0],temp[0],all).registerhead!=NULL)
{
printf("\n该%s被%s表引用,不能删除,请重新输入!\n\n",row_txt[n][1],b_txt[Find[1]]);
flag=1;
}
Find[1]=n;
delete_sys(n,find(Find,temp[0],temp[0],all),all);
break;
}
case 6:
{
Find[1]=1;
Find[2]=11;
if(find(Find,temp[0],temp[0],all).studenthead!=NULL)
{
printf("\n该%s被%s表引用,不能删除,请重新输入!\n\n",row_txt[n][1],b_txt[Find[1]]);
flag=1;
}
Find[1]=n;
delete_sys(n,find(Find,temp[0],temp[0],all),all);
break;
}
case 7:
{
Find[1]=n;
delete_sys(n,find(Find,temp[0],temp[1],all),all);
sprintf(between," %s=%s%s%s AND ",row_num[n][1],ch1,temp[0],ch1);
sprintf(temp[0]," %s=%s%s%s",row_num[n][2],ch1,temp[1],ch1);
strcat(between,temp[0]);
break;
}
case 8:
{
Find[1]=12;
Find[2]=1;
if(find(Find,temp[0],temp[0],all).logonhead!=NULL)
{
printf("\n该%s被%s表引用,不能删除,请重新输入!\n\n",row_txt[n][1],b_txt[Find[1]]);
flag=1;
}
Find[1]=n;
delete_sys(n,find(Find,temp[0],temp[0],all),all);
break;
}
case 9:
{
Find[1]=n;
delete_sys(n,find(Find,temp[0],temp[1],all),all);
sprintf(between," %s=%s%s%s AND ",row_num[n][1],ch1,temp[0],ch1);
sprintf(temp[0]," %s=%s%s%s",row_num[n][2],ch1,temp[1],ch1);
strcat(between,temp[0]);
break;
}
case 10:
{
Find[1]=n;
delete_sys(n,find(Find,temp[0],temp[1],all),all);
sprintf(between," %s=%s%s%s AND ",row_num[n][1],ch1,temp[0],ch1);
sprintf(temp[0]," %s=%s%s%s",row_num[n][2],ch1,temp[1],ch1);
strcat(between,temp[0]);
break;
}
case 11:
{
Find[1]=n;
delete_sys(n,find(Find,temp[0],temp[1],all),all);
sprintf(between," %s=%s%s%s AND ",row_num[n][1],ch1,temp[0],ch1);
sprintf(temp[0]," %s=%s%s%s",row_num[n][4],ch1,temp[1],ch1);
strcat(between,temp[0]);
break;
}
case 12:
{
Find[1]=n;
delete_sys(n,find(Find,temp[0],temp[1],all),all);
sprintf(between," %s=%s%s%s AND ",row_num[n][1],ch1,temp[0],ch1);
sprintf(temp[0]," %s=%s%s%s",row_num[n][2],ch1,temp[1],ch1);
strcat(between,temp[0]);
break;
}
case 13:
{
Find[1]=11;
Find[2]=1;
if(find(Find,temp[0],temp[0],all).joinactivityhead!=NULL)
{
printf("\n该%s被%s表引用,不能删除,请重新输入!\n\n",row_txt[n][1],b_txt[Find[1]]);
flag=1;
}
Find[1]=n;
delete_sys(n,find(Find,temp[0],temp[0],all),all);
break;
}
case 14:
{
Find[1]=1;
Find[2]=12;
if(find(Find,temp[0],temp[0],all).studenthead!=NULL)
{
printf("\n该%s被%s表引用,不能删除,请重新输入!\n\n",row_txt[n][1],b_txt[Find[1]]);
flag=1;
}
Find[1]=n;
//在链表中删除数据
delete_sys(n,find(Find,temp[0],temp[0],all),all);
break;
}
default:break;
}
if(flag==0)
{
printf("\n稍等……\n");
//删除数据库中记录
if(n==7||n==9||n==10||n==11||n==12)
{
sprintf(cmd,"DELETE FROM %s WHERE %s",row_num[n][0],between);
}
else
{
sprintf(cmd,"DELETE FROM %s WHERE %s=%s%s%s",row_num[n][0],row_num[n][1],ch1,temp[0],ch1);
}
ExecuteSQL(cmd);
printf("成功删除1条记录!\n\n");
}
sprintf(between,"\0");
flag=0;
system("pause");
break;
}
case 3:
{
for(i=2;i<=m;i++)
{
//不显示主键
if(n==11&&i==m)
break;
if(i==2&&(n==7||n==9||n==10||n==12))
continue;
printf("%d.%s ",i,row_txt[n][i]);
}
do
{
printf("\n\n请选择:");
i=Force();
}while(i<2||i>m);
j[1]=n;
j[2]=2;
Find[1]=n;
Find[2]=0;
//修改链表
//记录主键
tmp=Input(j,1,all);
strcpy(between,tmp.str1);
if(n==7||n==9||n==10||n==12)
{
sprintf(between," %s=%s%s%s AND ",row_num[n][1],ch1,tmp.str1,ch1);
sprintf(temp[1]," %s=%s%s%s",row_num[n][2],ch1,tmp.str2,ch1);
strcat(between,temp[1]);
strcpy(temp[0],tmp.str1);
strcpy(temp[1],tmp.str2);
}
if(n==11)
{
sprintf(between," %s=%s%s%s AND ",row_num[n][1],ch1,tmp.str1,ch1);
sprintf(temp[1]," %s=%s%s%s",row_num[n][4],ch1,tmp.str2,ch1);
strcat(between,temp[1]);
strcpy(temp[0],tmp.str1);
strcpy(temp[1],tmp.str2);
}
//其他属性
tmp=Input(j,i,all);
strcpy(temp[2],tmp.str1);
//修改学生表
if(n==1)
{
receive.studenthead=find(Find,between,between,all).studenthead;
switch(i)
{
case 2:strcpy(receive.studenthead->SN,tmp.str1);break;
case 3:strcpy(receive.studenthead->S_SEX,tmp.str1);break;
case 4:strcpy(receive.studenthead->S_BIRTHDAY,tmp.str1);break;
case 5:strcpy(receive.studenthead->S_DATE,tmp.str1);break;
case 6:strcpy(receive.studenthead->S_SCHOOL,tmp.str1);break;
case 7:receive.studenthead->S_GRADE=atoi(tmp.str1);break;
case 8:strcpy(receive.studenthead->S_PHONE,tmp.str1);break;
case 9:strcpy(receive.studenthead->S_ADDRESS,tmp.str1);break;
case 10:strcpy(receive.studenthead->SP_NO,tmp.str1);break;
case 11:strcpy(receive.studenthead->CNO,tmp.str1);break;
case 12:strcpy(receive.studenthead->CH_NO,tmp.str1);break;
default:break;
}
}
//修改教师表
if(n==2)
{
receive.teacherhead=find(Find,between,between,all).teacherhead;
switch(i)
{
case 2:strcpy(receive.teacherhead->TN,tmp.str1);break;
case 3:strcpy(receive.teacherhead->T_SEX,tmp.str1);break;
case 4:strcpy(receive.teacherhead->T_PROF,tmp.str1);break;
case 5:strcpy(receive.teacherhead->T_BIRTHDAY,tmp.str1);break;
case 6:strcpy(receive.teacherhead->T_DATE,tmp.str1);break;
case 7:receive.teacherhead->T_SALARY=atoi(tmp.str1);break;
case 8:strcpy(receive.teacherhead->DNO,tmp.str1);break;
default:break;
}
}
//修改课程表
if(n==3)
{
receive.coursehead=find(Find,between,between,all).coursehead;
switch(i)
{
case 2:strcpy(receive.coursehead->CO_N,tmp.str1);break;
case 3:receive.coursehead->CO_T_TIME=atoi(tmp.str1);break;
case 4:receive.coursehead->CO_E_TIME=atoi(tmp.str1);break;
case 5:receive.coursehead->CO_S=atoi(tmp.str1);break;
case 6:strcpy(receive.coursehead->CO_BOOK,tmp.str1);break;
case 7:strcpy(receive.coursehead->DNO,tmp.str1);break;
default:break;
}
}
//修改专业表
if(n==4)
{
receive.specialityhead=find(Find,between,between,all).specialityhead;
switch(i)
{
case 2:strcpy(receive.specialityhead->SP_N,tmp.str1);break;
case 3:strcpy(receive.specialityhead->SP_DATE,tmp.str1);break;
case 4:receive.specialityhead->SP_NUM=atoi(tmp.str1);break;
case 5:strcpy(receive.specialityhead->DNO,tmp.str1);break;
default:break;
}
}
//修改院系表
if(n==5)
{
receive.departmenthead=find(Find,between,between,all).departmenthead;
switch(i)
{
case 2:strcpy(receive.departmenthead->DN,tmp.str1);break;
case 3:strcpy(receive.departmenthead->D_DATE,tmp.str1);break;
case 4:strcpy(receive.departmenthead->D_HEAD,tmp.str1);break;
case 5:strcpy(receive.departmenthead->D_ADDRESS,tmp.str1);break;
case 6:strcpy(receive.departmenthead->D_PHONE,tmp.str1);break;
default:break;
}
}
//修改班级表
if(n==6)
{
receive.classhead=find(Find,between,between,all).classhead;
switch(i)
{
case 2:strcpy(receive.classhead->CN,tmp.str1);break;
case 3:strcpy(receive.classhead->C_DATE,tmp.str1);break;
case 4:strcpy(receive.classhead->C_CLASSROOM,tmp.str1);break;
case 5:receive.classhead->C_NUM=atoi(tmp.str1);break;
case 6:strcpy(receive.classhead->TNO,tmp.str1);break;
case 7:strcpy(receive.classhead->DNO,tmp.str1);break;
default:break;
}
}
//修改教学计划表
if(n==7)
{
receive.projecthead=find(Find,temp[0],temp[1],all).projecthead;
switch(i)
{
case 3:strcpy(receive.projecthead->CLASS,tmp.str1);break;
default:break;
}
}
//修改入校报到表
if(n==8)
{
receive.registerhead=find(Find,between,between,all).registerhead;
switch(i)
{
case 2:strcpy(receive.registerhead->DNO,tmp.str1);break;
case 3:receive.registerhead->R_COST=atoi(tmp.str1);break;
default:break;
}
}
//修改选修表
if(n==9)
{
receive.schead=find(Find,temp[0],temp[1],all).schead;
switch(i)
{
case 3:strcpy(receive.schead->SC_CLASS,tmp.str1);break;
case 4:receive.schead->SC_GRADE=atoi(tmp.str1);break;
case 5:strcpy(receive.schead->TNO,tmp.str1);break;
case 6:strcpy(receive.schead->SC_DATE,tmp.str1);break;
default:break;
}
}
//修改讲授表
if(n==10)
{
receive.tchead=find(Find,temp[0],temp[1],all).tchead;
switch(i)
{
case 3:strcpy(receive.tchead->TC_T_DATETIME,tmp.str1);break;
case 4:strcpy(receive.tchead->TC_T_ADDRESS,tmp.str1);break;
case 5:strcpy(receive.tchead->TC_E_DATETIME,tmp.str1);break;
case 6:strcpy(receive.tchead->TC_E_ADDRESS,tmp.str1);break;
default:break;
}
}
//修改参加活动表
if(n==11)
{
receive.joinactivityhead=find(Find,temp[0],temp[1],all).joinactivityhead;
switch(i)
{
case 2:receive.joinactivityhead->J_GRADE=atoi(tmp.str1);break;
case 3:strcpy(receive.joinactivityhead->J_OTHER,tmp.str1);break;
default:break;
}
}
//修改登记表
if(n==12)
{
receive.logonhead=find(Find,temp[0],temp[1],all).logonhead;
switch(i)
{
case 3:strcpy(receive.logonhead->L_DATE,tmp.str1);break;
default:break;
}
}
//修改学校活动表
if(n==13)
{
receive.activityhead=find(Find,between,between,all).activityhead;
switch(i)
{
case 2:strcpy(receive.activityhead->AN,tmp.str1);break;
case 3:strcpy(receive.activityhead->A_DATE,tmp.str1);break;
default:break;
}
}
//修改寝室表
if(n==14)
{
receive.chamberhead=find(Find,between,between,all).chamberhead;
switch(i)
{
case 2:strcpy(receive.chamberhead->CH_ADDRESS,tmp.str1);break;
case 3:receive.chamberhead->CH_NUM=atoi(tmp.str1);break;
default:break;
}
}
printf("\n稍等……\n");
//修改数据库中记录
if(n==7||n==9||n==10||n==11||n==12)
{
sprintf(cmd,"UPDATE %s SET %s=%s%s%s WHERE %s",row_num[n][0],row_num[n][i],ch1,temp[2],ch1,between);
}
else
{
sprintf(cmd,"UPDATE %s SET %s=%s%s%s WHERE %s=%s%s%s",row_num[n][0],row_num[n][i],ch1,temp[2],ch1,row_num[n][1],ch1,between,ch1);
}
ExecuteSQL(cmd);
printf("成功修改1条记录!\n\n");
sprintf(between,"\0");
system("pause");
break;
}
default:;
}
}while(quit!=1);
}
/*-----------------------------------------------------------------*
*函数: SelectTABLE() *
*参数: 整型,字符串,表结构指针 *
*作用: 从表中读取数据 *
*返回: 无 *
*-----------------------------------------------------------------*/
void SelectTABLE(int choice,char select[50],sys *all)
{
int i=1;
_variant_t var;
_ConnectionPtr pConn("ADODB.Connection");
pConn->ConnectionTimeout=5;
//建立.udl文件后打开可得到
try
{
pConn->Open(db[0],"","",adConnectUnspecified);
_RecordsetPtr pRs("ADODB.Recordset");
pRs->Open(select,_variant_t(pConn,true),adOpenStatic,adLockOptimistic,adCmdText);
switch(choice)
{
//从学生表中读取数据
case 1:
{
STUDENT *p,*q;
q=all->studenthead;
while(!pRs->EndOfFile)
{
i=1;
p=(STUDENT *)malloc(sizeof(STUDENT));
p->next=NULL;
var=pRs->GetCollect(row_num[choice][i]);
i++;
if(var.vt!=VT_NULL)//判断表中的属性值是否为NULL
{
sprintf(p->SNO,"%s",(char *)_bstr_t(var));
}
var=pRs->GetCollect(row_num[choice][i]);
i++;
if(var.vt!=VT_NULL)
{
sprintf(p->SN,"%s",(char *)_bstr_t(var));
}
var=pRs->GetCollect(row_num[choice][i]);
i++;
if(var.vt!=VT_NULL)
{
sprintf(p->S_SEX,"%s",(char *)_bstr_t(var));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -