博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c语言宠物管理系统,请用C语言编出一个简单的宠物管理系统。
阅读量:6912 次
发布时间:2019-06-27

本文共 2606 字,大约阅读时间需要 8 分钟。

匿名用户

1级

2008-08-11 回答

#include

#include

#include

#define E "%s%s%s%d"

#define F p->num,p->name,p->sex,&p->score

#define G " %s %-5s %s %4d\n"

#define H i->num,i->name,i->sex,i->score

#define J "number name sex score\n"

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 found\n");}

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 found\n");

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 found\n");

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 found\n");

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:search\n2:corret\n3:delete\n4:new\n");

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("ERROR\n");}

printf("please input the number or name\n");

scanf("%s",a);

(*pt)(head,a);

printf("continue or not?(y/n)\n"); /*循环的菜单*/

getchar();

x=getchar();

if(x=='n') flag=0;}

getchar();

getchar();

}

转载地址:http://iincl.baihongyu.com/

你可能感兴趣的文章
【机器学习实战】第14章 利用SVD简化数据
查看>>
ASP.NET Core优化MD5加密
查看>>
flexible伸缩盒模型
查看>>
第二天作业
查看>>
Zabbix 源码编译安装
查看>>
Djang简介
查看>>
两表通过字段关联进行级联删除。
查看>>
Kickstart无人值守安装[转载]
查看>>
消息队列一:为什么需要消息队列(MQ)?
查看>>
最基本springMVC,响应页面请求
查看>>
Sencha-概念-Environment Detection(环境检测)(官网文档翻译12)
查看>>
jsp学习-分页功能的实现
查看>>
第三章 熟悉常用的HDFS操作
查看>>
23种C++设计模式:Factory 模式
查看>>
Tomcat在webapps下部署多个项目
查看>>
截取字符串一之substr
查看>>
hibernate.cfg.xml配置文件对关联关系的书写技巧!
查看>>
【ORACLE】使用中注意事项(二)
查看>>
复选框单选框与文字对齐问题的研究与解决
查看>>
linux 常用命令-配置登陆方式
查看>>