数据的增删改查

这篇博客详细介绍了如何在教学系统中进行数据的增删改查操作,包括INSERT INTO用于录入数据,UPDATE SET用于修改数据,DELETE FROM用于删除数据,以及SELECT * FROM用于查询数据。具体操作示例包括学生信息的录入、修改、删除和查询,涉及学号、姓名、性别、班级和联系电话等字段。
摘要由CSDN通过智能技术生成

数据的增删改查

学院教学系统中需要存储学生的基本情况,信息包括:学号、姓名、性别(1代表男,0代表女)、班级、联系电话。该文件名为SICE.dat。且每个学生的信息的完整的,即不存在某个数据没有的情况。

需求分析:

1.向该系统中录入一批数据,要求录入格式为:

INSERT INTO SICE VALUES(XX,XX,XX,XX,XX)    (注:每个XX中只包含数字、英文字母)

2.按照某个条件,修改已录入的数据

UPDATESICESETCOLUMN1=XXWHERECOLUMN2=YY (注:COLUMN1、COLUMN2分别是学号、姓名、性别、班级、联系电话中的任意一个,涉及到中文的录入可能造成的乱码,建议采用英文形式,即sno、name、gender、class、phone;XX是修改后的值;YY是某个查询条件)

3.按照某个条件,对已有的数据进行删除

DELETE FROM SICEWHERE COLUMN = YY  (说明同2)

4.按照某个条件,对已有数据进行查询

SELECT * FROM SICEWHERE COLUMN= YY (说明同2;* 代表所有的信息)

 

例如:

1.一开始,SICE.dat文件中没有任何数据。即是个空文件。

 

2.录入数据

INSERT INTO SICE VALUES(07001,zhangsan,1,CS171,13012345678)

INSERT INTO SICE VALUES(07006,lisi,1,CS172,13023456789)

INSERT INTO SICE VALUES(07003,wangwu,0,CS171,13034567890)

录入后,SICE.dat文件中就有了如下数据

学号

姓名

性别

班级

联系电话

07001

zhangsan

1

CS171

13012345678

07006

lisi

1

CS172

13023456789

07003

wangwu

0

CS171

13034567890

 

3.修改数据

UPDATESICESETclass=CS173WHEREgender=1

修改后,SICE.dat文件中就有了如下数据

学号

姓名

性别

班级

联系电话

07001

zhangsan

1

CS173

13012345678

07006

lisi

1

CS173

13023456789

07003

wangwu

0

CS171

13034567890

 

4.删除数据

DELETE FROM SICEWHERE name= lisi

删除后,SICE.dat文件中就有了如下数据

学号

姓名

性别

班级

联系电话

07001

zhangsan

1

CS173

13012345678

07003

wangwu

0

CS171

13034567890

 

5.查询数据

SELECT * FROM SICEWHERE class= CS171

 

假设SICE.dat文件中有如下数据

学号

姓名

性别

班级

联系电话

07001

zhangsan

1

CS171

13012345678

07006

lisi

1

CS172

13023456789

07003

wangwu

0

CS171

13034567890

07010

zhaoliu

1

CS173

13045678901

07030

qianqi

0

CS174

13056789012

07090

sunba

0

CS171

13067890123

07008

zhoujiu

1

CS171

13078901234

 

查询结果如下

学号

姓名

性别

班级

联系电话

07001

zhangsan

1

CS171

13012345678

07003

wangwu

0

CS171

13034567890

07090

sunba

0

CS171

13067890123

07008

zhoujiu

1

CS171

13078901234

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct student
{
    char sno[6];
    char name[20];
    char gender[2];
    char cla[6];
    char phone[12];
    struct student *next;
};
typedef struct student stu;
void wrfi(stu *head)
{
    FILE *wr;
    head=head->next;
    if((wr=fopen("C:\\SICE.dat","wb+"))==NULL)
    {
        printf("Can not open this file!\n");
        exit(0);
    }
    while(head!=NULL)
    {
        fprintf(wr,"%5s%20s",head->sno,head->name);
        fprintf(wr,"%3s%8s%20s\n",head->gender,head->cla,head->phone);
        head=head->next;
    }
    fclose(wr);
}
stu *iput(stu *head)
{
    char sno[6];
    char name[20];
    char gender[2];
    char cla[6];
    char phone[12];
    stu *s;
    stu *r;
    head=(stu *)malloc(sizeof(stu));
    r=head;
    int op=1;
    while(op)
    {
        printf("Insert into SICE values\n");
        scanf("%s",sno);
        getchar();
        scanf("%s",name);
        getchar();
        scanf("%s",gender);
        getchar();
        scanf("%s",cla);
        getchar();
        scanf("%s",phone);
        getchar();
        s=(stu *)malloc(sizeof(stu));
        strcpy(s->sno,sno);
        strcpy(s->name,name);
        strcpy(s->gender,gender);
        strcpy(s->cla,cla);
        strcpy(s->phone,phone);
        r->next=s;
        r=s;
        printf("Input 1 to continue or input 0 to finish:");
        scanf("%d",&op);
    }
    r->next='\0';
    return head;
    wrfi(head);
}
stu *chge(stu *head)
{
    stu *ch;
    ch=head->next;
    char id[7]= {"sno"},nam[7]= {"name"},gen[7]= {"gender"},cl[7]= {"class"},pho[7]= {"phone"};
    char cp[7],cq[7];
    char cd[20],co[20];
    printf("Update SICE set  ");
    scanf("%s",cp);
    getchar();
    scanf("%s",cd);
    printf("where  ");
    scanf("%s",cq);
    getchar();
    scanf("%s",co);
    if(strcmp(cq,id)==0)
    {
        if(strcmp(cp,id)==0)
        {
            while(ch!=NULL)
            {
                if(strcmp(ch->sno,co)==0)
                {
                    strcpy(ch->sno,cd);
                }
                ch=ch->next;
            }
        }
        if(strcmp(cp,nam)==0)
        {
            while(ch!=NULL)
            {
                if(strcmp(ch->sno,co)==0)
                {
                    strcpy(ch->name,cd);
                }
                ch=ch->next;
            }
        }
        if(strcmp(cp,gen)==0)
        {
            while(ch!=NULL)
            {
                if(strcmp(ch->sno,co)==0)
                {
                    strcpy(ch->gender,cd);
                }
                ch=ch->next;
            }
        }
        if(strcmp(cp,cl)==0)
        {
            while(ch!=NULL)
            {
                if(strcmp(ch->sno,co)==0)
                {
                    strcpy(ch->cla,cd);
                }
                ch=ch->next;
            }
        }
        if(strcmp(cp,pho)==0)
        {
            while(ch!=NULL)
            {
                if(strcmp(ch->sno,co)==0)
                {
                    strcpy(ch->phone,cd);
                }
                ch=ch->next;
            }
        }
    }
    if(strcmp(cq,nam)==0)
    {
        if(strcmp(cp,id)==0)
        {
            while(ch!=NULL)
            {
                if(strcmp(ch->name,co)==0)
                {
                    strcpy(ch->sno,cd);
                }
                ch=ch->next;
            }
        }
        if(strcmp(cp,nam)==0)
        {
            while(ch!=NULL)
            {
                if(strcmp(ch->name,co)==0)
                {
                    strcpy(ch->name,cd);
                }
                ch=ch->next;
            }
        }
        if(strcmp(cp,gen)==0)
        {
            while(ch!=NULL)
            {
                if(strcmp(ch->name,co)==0)
                {
                    strcpy(ch->gender,cd);
                }
                ch=ch->next;
            }
        }
        if(strcmp(cp,cl)==0)
        {
            while(ch!=NULL)
            {
                if(strcmp(ch->name,co)==0)
                {
                    strcpy(ch->cla,cd);
                }
                ch=ch->next;
            }
        }
        if(strcmp(cp,pho)==0)
        {
            while(ch!=NULL)
            {
                if(strcmp(ch->name,co)==0)
                {
                    strcpy(ch->phone,cd);
                }
                ch=ch->next;
            }
        }
    }
    if(strcmp(cq,gen)==0)
    {
        if(strcmp(cp,id)==0)
        {
            while(ch!=NULL)
            {
                if(strcmp(ch->gender,co)==0)
                {
                    strcpy(ch->sno,cd);
                }
                ch=ch->next;
            }
        }
        if(strcmp(cp,nam)==0)
        {
            while(ch!=NULL)
            {
                if(strcmp(ch->gender,co)==0)
                {
                    strcpy(ch->name,cd);
                }
                ch=ch->next;
            }
        }
        if(strcmp(cp,gen)==0)
        {
            while(ch!=NULL)
            {
                if(strcmp(ch->gender,co)==0)
                {
                    strcpy(ch->gender,cd);
                }
                ch=ch->next;
            }
        }
        if(strcmp(cp,cl)==0)
        {
            while(ch!=NULL)
            {
                if(strcmp(ch->gender,co)==0)
                {
                    strcpy(ch->cla,cd);
                }
                ch=ch->next;
            }
        }
        if(strcmp(cp,pho)==0)
        {
            while(ch!=NULL)
            {
                if(strcmp(ch->gender,co)==0)
                {
                    strcpy(ch->phone,cd);
                }
                ch=ch->next;
            }
        }
    }
    if(strcmp(cq,cl)==0)
    {
        if(strcmp(cp,id)==0)
        {
            while(ch!=NULL)
            {
                if(strcmp(ch->cla,co)==0)
                {
                    strcpy(ch->sno,cd);
                }
                ch=ch->next;
            }
        }
        if(strcmp(cp,nam)==0)
        {
            while(ch!=NULL)
            {
                if(strcmp(ch->cla,co)==0)
                {
                    strcpy(ch->name,cd);
                }
                ch=ch->next;
            }
        }
        if(strcmp(cp,gen)==0)
        {
            while(ch!=NULL)
            {
                if(strcmp(ch->cla,co)==0)
                {
                    strcpy(ch->gender,cd);
                }
                ch=ch->next;
            }
        }
        if(strcmp(cp,cl)==0)
        {
            while(ch!=NULL)
            {
                if(strcmp(ch->cla,co)==0)
                {
                    strcpy(ch->cla,cd);
                }
                ch=ch->next;
            }
        }
        if(strcmp(cp,pho)==0)
        {
            while(ch!=NULL)
            {
                if(strcmp(ch->cla,co)==0)
                {
                    strcpy(ch->phone,cd);
                }
                ch=ch->next;
            }
        }
    }
    if(strcmp(cq,pho)==0)
    {
        if(strcmp(cp,id)==0)
        {
            while(ch!=NULL)
            {
                if(strcmp(ch->phone,co)==0)
                {
                    strcpy(ch->sno,cd);
                }
                ch=ch->next;
            }
        }
        if(strcmp(cp,nam)==0)
        {
            while(ch!=NULL)
            {
                if(strcmp(ch->phone,co)==0)
                {
                    strcpy(ch->name,cd);
                }
                ch=ch->next;
            }
        }
        if(strcmp(cp,gen)==0)
        {
            while(ch!=NULL)
            {
                if(strcmp(ch->phone,co)==0)
                {
                    strcpy(ch->gender,cd);
                }
                ch=ch->next;
            }
        }
        if(strcmp(cp,cl)==0)
        {
            while(ch!=NULL)
            {
                if(strcmp(ch->phone,co)==0)
                {
                    strcpy(ch->cla,cd);
                }
                ch=ch->next;
            }
        }
        if(strcmp(cp,pho)==0)
        {
            while(ch!=NULL)
            {
                if(strcmp(ch->phone,co)==0)
                {
                    strcpy(ch->phone,cd);
                }
                ch=ch->next;
            }
        }
    }
    stu *c7;
    c7=head->next;
    while(c7!=NULL)
    {
        printf("%5s",c7->sno);
        printf("%20s",c7->name);
        printf("%3s",c7->gender);
        printf("%8s",c7->cla);
        printf("%20s\n",c7->phone);
        c7=c7->next;

    }
    wrfi(head);
    return (head);
}
stu *dele(stu *head)
{
    char des[7]= {"sno"},den[7]= {"name"},deg[7]= {"gender"},dec[7]= {"class"},dep[7]= {"phone"};
    stu *p1,*p2;
    p1=head->next;
    char dp[7],dc[20];
    printf("DELETE FROM SICE WHERE   ");
    scanf("%s",dp);
    getchar();
    scanf("%s",dc);
    if(strcmp(dp,des)==0)
    {

        while(p1!=NULL)
        {
            if(strcmp(p1->sno,dc)!=0)
            {
                p2=p1;
                p1=p1->next;
            }
            else
            {
                p2->next=p1->next;
                p1=p1->next;

            }
        }
    }
    if(strcmp(dp,den)==0)
    {

        while(p1!=NULL)
        {
            if(strcmp(p1->name,dc)!=0)
            {
                p2=p1;
                p1=p1->next;
            }
            else
            {
                p2->next=p1->next;
                p1=p1->next;

            }
        }
    }
    if(strcmp(dp,deg)==0)
    {

        while(p1!=NULL)
        {
            if(strcmp(p1->gender,dc)!=0)
            {
                p2=p1;
                p1=p1->next;
            }
            else
            {
                p2->next=p1->next;
                p1=p1->next;

            }
        }
    }
    if(strcmp(dp,dec)==0)
    {
        while(p1!=NULL)
        {
            if(strcmp(p1->cla,dc)!=0)
            {
                p2=p1;
                p1=p1->next;
            }
            else
            {
                p2->next=p1->next;
                p1=p1->next;

            }
        }
    }
    if(strcmp(dp,dep)==0)
    {

        while(p1!=NULL)
        {
            if(strcmp(p1->phone,dc)!=0)
            {
                p2=p1;
                p1=p1->next;
            }
            else
            {
                p2->next=p1->next;
                p1=p1->next;

            }
        }
    }
    stu *d7;
    d7=head->next;
    while(d7!=NULL)
    {
        printf("%5s",d7->sno);
        printf("%20s",d7->name);
        printf("%3s",d7->gender);
        printf("%8s",d7->cla);
        printf("%20s\n",d7->phone);
        d7=d7->next;
    }
    wrfi(head);
    return(head);
}
stu*find(stu *head)
{

    char fis[7]= {"sno"},fin[7]= {"name"},fig[7]= {"gender"},fic[7]= {"class"},fip[7]= {"phone"};
    stu *f1;
    f1=head->next;
    char fp[7],fc[20];
    printf("SELETE FROM SICE WHERE");
    scanf("%s",fp);
    getchar();
    scanf("%s",fc);
    if(strcmp(fp,fis)==0)
    {

        while(f1!=NULL)
        {
            if(strcmp(f1->sno,fc)!=0)
            {
                f1=f1->next;
            }
            else
            {
                printf("%5s",f1->sno);
                printf("%15s",f1->name);
                printf("%3s",f1->gender);
                printf("%8s",f1->cla);
                printf("%15s\n",f1->phone);
                f1=f1->next;

            }
        }
    }
    if(strcmp(fp,fin)==0)
    {

        while(f1!=NULL)
        {
            if(strcmp(f1->name,fc)!=0)
            {
                f1=f1->next;
            }
            else
            {
                printf("%5s",f1->sno);
                printf("%15s",f1->name);
                printf("%3s",f1->gender);
                printf("%8s",f1->cla);
                printf("%15s\n",f1->phone);
                f1=f1->next;

            }
        }
    }
    if(strcmp(fp,fig)==0)
    {

        while(f1!=NULL)
        {
            if(strcmp(f1->gender,fc)!=0)
            {
                f1=f1->next;
            }
            else
            {
                printf("%5s",f1->sno);
                printf("%15s",f1->name);
                printf("%3s",f1->gender);
                printf("%8s",f1->cla);
                printf("%15s\n",f1->phone);
                f1=f1->next;

            }
        }
    }
    if(strcmp(fp,fic)==0)
    {

        while(f1!=NULL)
        {
            if(strcmp(f1->cla,fc)!=0)
            {
                f1=f1->next;
            }
            else
            {
                printf("%5s",f1->sno);
                printf("%15s",f1->name);
                printf("%3s",f1->gender);
                printf("%8s",f1->cla);
                printf("%15s\n",f1->phone);
                f1=f1->next;

            }
        }
    }
    if(strcmp(fp,fip)==0)
    {

        while(f1!=NULL)
        {
            if(strcmp(f1->phone,fc)!=0)
            {
                f1=f1->next;
            }
            else
            {
                printf("%5s",f1->sno);
                printf("%15s",f1->name);
                printf("%3s",f1->gender);
                printf("%8s",f1->cla);
                printf("%15s\n",f1->phone);
                f1=f1->next;

            }
        }
    }
    return head;
}
int main()
{
    stu *head;
    head=NULL;
    int op;
    printf("Please input 1 to continue:\n");
    scanf("%d",&op);
    while(op)
    {
        printf("\t\t0.exit\n");
        printf("\t\t1.input the record\n");
        printf("\t\t2.change the record\n");
        printf("\t\t3.delete the record\n");
        printf("\t\t4.find the record\n");
        printf("Please enter your choice:\n");
        scanf("%d",&op);
        switch(op)
        {
        case 0:
            return 0;
        case 1:
            head=iput(head);
            break;
        case 2:
            head=chge(head);
            break;
        case 3:
            head=dele(head);
            break;
        case 4:
            find(head);
            break;
        }
    }
    return 0;
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值