📄 课题参考4.txt
字号:
#define NULL 0
#define TYPE struct stu
#define LEN sizeof(struct stu)
struct stu /* 定义学生信息对应的结构体类型*/
{
int num;
char name[12];
struct stu*next;
};
TYPE*creat(int n) /*建立链表的函数*/
{
struct stu*head,*pf,*pb;
int i;
for(i=0;i<n;i++)
{
pb=(TYPE*)malloc(LEN);
printf("请输入第%d个学生的学号和姓名:",i+1);
scanf("%d%s",&pb->num,pb->name);
if(i==0)
pf=head=pb;
else
pf->next=pb;
pb->next=NULL;
pf=pb;
}
return(head);
}
TYPE*delete(TYPE*head,int num) /*删除指定结点的函数*/
{
TYPE*pf,*pb;
if(head==NULL)
{
printf("\n没有记录!\n");
goto end;
}
pb=head;
while(pb->num!=num&&pb->next!=NULL)
{
pf=pb;
pb=pb->next;
}
if(pb->num==num)
{
if(pb==head)
head=pb->next;
else
pf->next=pb->next;
printf("记录已经被删除!\n");
}
else
{
free(pb);
printf("该记录不存在!\n");
}
end:
return head;
}
TYPE*insert(TYPE*head,TYPE*pi) /*插入学生信息的函数*/
{
TYPE*pb,*pf;
pb=head;
if(head==NULL)
{
head=pi;
pi->next=NULL;
}
else
{
while((pi->num>pb->num)&&(pb->next!=NULL))
{
pf=pb;
pb=pb->next;
}
if(pi->num<=pb->num)
{
if(head==pb)
head=pi;
else
pf->next=pi;
pi->next=pb;
}
else
{
pb->next=pi;
pi->next=NULL;
}
}
return head;
}
void search(TYPE*head,int n)
{
TYPE*p;
int i;
p=head;
while(p->num!=n&&p->next!=NULL)
p=p->next;
if(p->num==n)
printf("该学生姓名为:%s",p->name);
if(p->num!=n&&p->next==NULL)
printf("该学生信息不存在!\n");
}
void print(TYPE*head) /*输出所有学生信息*/
{
printf("\n学生信息表内容如下:\n");
printf("学号\t\t姓名\n");
while(head!=NULL)
{
printf("%d\t\t%s\n",head->num,head->name);
head=head->next;
}
}
main()
{
TYPE*head,*pnum;
int n,num,t;
printf(" \n_******************************\n");
printf(" \n 欢迎进入学生成绩管理系统\n");
printf(" \n******************************\n");
printf("您要输入多少条记录?请输入:");
scanf("%d",&n);
head=creat(n);
print(head);
printf("1.删除 2.插入 3.查找\n请输入您想进行的操作:");
scanf("%d",&t);
if(t==1)
{ printf("请输入要删除的学生信息所对应的学号:");
scanf("%d",&num);
head=delete(head,num);
print(head);
}
else if(t==2)
{
printf("请输入要插入的学生信息的学号和姓名:");
pnum=(TYPE*)malloc(LEN);
scanf("%d%s",&pnum->num,pnum->name);
head=insert(head,pnum);
print(head);
}
else if(t==3)
{
printf("请输入要查找的学生的学号:");
scanf("%d",&n);
search(head,n);
getch();
}
else
printf("输入错误!");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -