bibi!
作为目前正在学习前端的小白 看到增删改查就只能想到js里面的语法
这可不妙 还是得好好扎实一下c语言的基础
bobo!
学期末的c语言上机作业:
编写测试函数main()中的代码,定义学生数据,创建空表,向表中插入5个学生的信息,查询这5个学生的信息是否已经存在于表中上,然后再删除表中的3条信息,再次检查5个学生的信息哪些在表中哪些不在表中
!!!知识点
1. 数组指针和指针数组区别:
数组指针:
静态分配存储空间(不是临时存储空间,不会释放空间)
int (*p)[10];
动态分配存储空间
int *p;
p = new int[10];
指针数组:
定义一个数组,里面的成员都是指针类型
*p,*q,*r,... int *p[10];
2. 结构体的定义和声明
第一种: 比较麻烦
struct 结构体名 {
成员列表
};
struct Student{
char *name; //姓名
int num; //学号
char sex; //性别
float score; //成绩
};
// 此时定义变量 st1 st2 关键字struct不能省略
struct Student stu1, stu2;
第二种:
struct stu{
char *name; //姓名
int num; //学号
char sex; //性别
float score; //成绩
} stu1, stu2;
struct{ //没有写 stu
char *name; //姓名
int num; //学号
char sex; //性别
float score; //成绩
} stu1;
3. 学会调用函数
数据结构的学习
主函数(需要学习掌握同学书写的代码)
#include <stdio.h>
#include <stdlib.h>
#include"list.c"
//遍历函数
void print(SqList L) {
int i;
for(i=0; i<L.length;i++)
{
printf("%d %s %d\n",L.elem[i].id,L.elem[i].name,L.elem[i].score);
}
printf("表的长度为%d\n",L.length);
}
int main()
{
SqList L;
ElemType e;
int i;
//int id,score,i;
//char name[10];
InitList_Sq(&L);
//printf("成功创建新的表\n");
//printf("表的长度为%d\n",L.length);
printf("向表中依次输入5个学生的数据:\n");
i = 1;
for(i=1;i<=5;i++)
{
printf("第%d个学生的数据:",i);
scanf("%d %s %d",&e.id,e.name,&e.score);
//printf("%d %s %d",e.id,e.name,e.score);
if(ListInsert_Sq(&L,i,e))
printf("插入成功\n");
else
{
printf("插入失败\n");
i--; //纭繚鎻掑叆5涓鐢熸暟鎹?
}
print(L);
}
//查询数据是否在表中
int k=1;
while(k==1)
{
printf("输入正确的数据进行查询:");
scanf("%d %s %d",&e.id,e.name,&e.score);
//printf("%d %s %d\n",e.id,e.name,e.score);
LocateElem_Sq(&L,e,compare);
if(LocateElem_Sq(&L,e,compare)!=0)
printf("查询到在表中第%d位\n",LocateElem_Sq(&L,e,compare));
else
printf("表中无此数据,请确认输入是否完全正确\n");
printf("是否继续查询:1是 2否\n");
scanf("%d",&k);
}
printf("删除数据\n");
int m;
for(i=0;i<3;i++)
{
printf("删除第几位的数据:\n");
scanf("%d",&m);
if(ListDelete_Sq(&L,m,&e))
printf("删除成功,此时表为:\n");
else
{
printf("删除失败\n");
i--; // 确保删除三个数据
}
print(L);
}
printf("查询5个学生数据哪些在表中\n");
for(i=1;i<=5;i++)
{
printf("请输入第%d个学生的数据\n",i);
scanf("%d %s %d",&e.id,e.name,&e.score);
if(LocateElem_Sq(&L,e,compare)!=0)
printf("该学生数据在表中\n");
else
printf("该学生数据不在表中\n");
}
return 0;
}