⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 课题参考4.txt

📁 C语言课题参考资料 C语言课题参考资料
💻 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 + -