晚上喝麦片吃胖吗:[急!]关于c语言编程的一道作业题

来源:百度文库 编辑:高考问答 时间:2024/04/29 10:11:49
要求:学生健康情况登记表有如下字段:姓名SName,学号SNo,性别SSex,年龄SAge,健康情况Health。编写程序模拟SQL Delete语句。
本人正在调试中的程序代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define OK 1
#define ERROR 0
#define INFO "%s,%d,%s,%d,%s"
#define DB_INIT_LEN 3
////////////////////////////////////////////////////////////
int DB_Len=3;
struct Stu{
char SName[20];
long int SNo;
char SSex[10];
int SAge;
char Health[10];
} stu[DB_INIT_LEN]={{"li lin",10001,"M",12,"g"},
{"zhang",10002,"F",21,"g"},
{"lee",10003,"F",22,"well"}};
struct SQL{
char Order1[10];
char Order2[10];
char Title[10];
char Order3[10];
char Variable[10];
char Requ[20];
}a;
////////////////////////////////////////////////////////////
void Del_Data(int i){
for(i;i<=DB_Len-1;i++)
stu[i]=stu[i+1];
DB_Len-=1;
}//Del_Data
/**********************************************************/
int SQL_Check(struct SQL a){
if(!strcmp("delete",a.Order1)){
printf("Error!\n");
exit(ERROR);
}
if(!strcmp("from",a.Order2)){
printf("Error!\n");
exit(ERROR);
}
if(!strcmp("stu",a.Title)){
printf("Error!\n");
exit(ERROR);
}
if(!strcmp("where",a.Order3)){
printf("Error!\n");
exit(ERROR);
}
if(!strcmp("SName",a.Variable)) return 1;
if(!strcmp("SNo",a.Variable)) return 2;
if(!strcmp("SSex",a.Variable)) return 3;
if(!strcmp("SAge",a.Variable)) return 4;
if(!strcmp("Health",a.Variable))return 5;
else return 0;
}//SQL_Check
////////////////////////////////////////////////////////////
void main(){
int temp;
printf("Name\tNO.\tSex\tAge\tHealth\n");
for(int i=0;i<DB_Len;i++){
printf("%s\t%ld\t%s\t%d\t%s\n",stu[i].SName,stu[i].SNo,stu[i].SSex,stu[i].SAge,stu[i].Health);
}
printf("\n");
printf("order1:");
scanf("%s",a.Order1);
printf("order2:");
scanf("%s",a.Order2);
printf("title:");
scanf("%s",a.Title);
printf("order3:");
scanf("%s",a.Order3);
printf("variable:");
scanf("%s",a.Variable);
printf("requ:");
scanf("%s",a.Requ);
// scanf("%s%s%s%s=%s",&a.Order1,&a.Title,&a.Order2,&a.Variable,&a.Requ);
temp=SQL_Check(a);
if(temp!=0){
if(temp==1) if(stu[i].SName==a.Requ) Del_Data(i);
if(temp==2) if(stu[i].SNo==long int(a.Requ)) Del_Data(i);
if(temp==3) if(stu[i].SSex==a.Requ) Del_Data(i);
if(temp==4) if(stu[i].SAge==int(a.Requ)) Del_Data(i);
if(temp==5) if(stu[i].Health==a.Requ) Del_Data(i);
else printf("xx\n");
}
for(i=0;i<DB_Len;i++){
printf("Name\tNO.\tSex\tAge\tHealth\n");
printf("%s\t%ld\t%s\t%d\t%s\n",stu[i].SName,stu[i].SNo,stu[i].SSex,stu[i].SAge,stu[i].Health);
}
}//main
请各位大虾指教!谢谢!