#include<stdio.h>
#include<string.h>
#include<malloc.h>
#define E "%s%s%s%d"
#define F p->num,p->name,p->sex,&p->score
#define G " %s %-5s %s %4dn"
#define H i->num,i->name,i->sex,i->score
#define J "number name sex scoren"
struct student /*结构体定义*/
{char num[5];
char name[20];
char sex[2];
int score;
struct student *next;
};
int m=1;
struct student *creat() /*建立单向动态链表函数*/
{struct student *head;
struct student *p,*q;
head=p=q=(struct student *)malloc(sizeof(struct student));
printf("please input the information of students:n");
while(scanf(E,F),strcmp(p->num,"0")!=0)
{p=(struct student *)malloc(sizeof(struct student));
q->next=p;q=p;m++;}
q->next=NULL;
return(head);}
/*以下根据学生的姓名和学号进行操作*/
void stu_printf(struct student *p) /*输出全部学生信息函数*/
{struct student *i;
printf(J);
for(i=p;i!=NULL;i=i->next) printf(G,H);}
void stu_search(struct student *p,char *c) /*查询学生信息函数*/
{struct student *i;int n=0;
for(i=p;i!=NULL;i=i->next)
if(strcmp(i->num,c)==0||strcmp(i->name,c)==0)
{printf(J);printf(G,H);}
else n++;
if(n==m) printf("not foundn");}
void stu_correct(struct student *p,char *c) /*修改学生信息函数*/
{struct student *i;int n=0;
for(i=p;i!=NULL;i=i->next)
if(strcmp(i->num,c)==0||strcmp(i->name,c)==0)
scanf(E,i->num,i->name,i->sex,&i->score);
else n++;
if(n==m) printf("not foundn");
printf("n");
stu_printf(p);
}
void stu_delete(struct student *p,char *c) /*删除学生信息函数*/
{struct student *i,*j;int n=0;
for(i=p;i!=NULL;i=i->next)
if(strcmp(i->num,c)==0||strcmp(i->name,c)==0) break;
else n++;
if(n==m) printf("not foundn");
else {for(j=p;j->next!=i;j=j->next);
j->next=i->next;}
printf("n");
stu_printf(p);
}
void stu_new_down(struct student *p,char *c) /*插入学生信息函数*/
{struct student *i,*j;int n=0;
for(i=p;i!=NULL;i=i->next)
if(strcmp(i->num,c)==0||strcmp(i->name,c)==0) break;
else n++;
if(n==m) printf("not foundn");
else {j=(struct student *)malloc(sizeof(struct student));
j->next=i->next;i->next=j;
scanf(E,j->num,j->name,j->sex,&j->score);}
printf("n");
stu_printf(p);
}
main()
{char a[20];char x;int flag=1,q;
struct student *head;
void (*pt)(struct student *p,char *c); /*指向函数的指针变量*/
head=creat(); /*建立单向动态链表*/
while(flag)
{printf("please choose the operatian:n");
printf("1:searchn2:corretn3:deleten4:newn");
printf("choose:");
scanf("%d",&q);
switch(q) /*菜单*/
{case 1:pt=stu_search;break;
case 2:pt=stu_correct;break;
case 3:pt=stu_delete;break;
case 4:pt=stu_new_down;break;
default:printf("ERRORn");}
printf("please input the number or namen");
scanf("%s",a);
(*pt)(head,a);
printf("continue or not?(y/n)n"); /*循环的菜单*/
getchar();
x=getchar();
if(x=='n') flag=0;}
getchar();
getchar();
}
相关知识
c语言宠物管理系统,请用C语言编出一个简单的宠物管理系统。
c语言宠物店管理系统,宠物店信息管理系统的设计课程设计报告精选.doc
springboot179基于javaweb的流浪宠物管理系统的设计与实现
基于jsp的宠物领养与服务管理系统(源码+论文+部署讲解等)
基于SSM+Vue的宠物管理系统
基于java的宠物管理系统设计与实现
【网站项目】基于SSM的275宠物医院管理系统
基于RTT与LVGL的电子宠物表情系统源码(C语言)+项目说明.zip
基于flask+vue框架的宠物领养管理系统[开题+论文+程序]
RFID宠物溯源智能管理系统
网址: 请用C语言编出一个简单的宠物管理系统。 https://m.mcbbbk.com/newsview91410.html
上一篇: AI智能语音宠物语言识别APP下 |
下一篇: 什么app软件可以翻译仓鼠宠物的 |