69,369
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
#include<ctype.h>
#include <malloc.h>
//操作对象
typedef struct lendbook
{
unsigned int sno;
unsigned int bno;
struct lendbook *next;
}lendbooks;
lendbooks *head = NULL;
int n;//指示head返回
//链节创建函数
lendbooks *create(void)
{
lendbooks *s = NULL;
s = (lendbooks *)malloc(sizeof(struct lendbook));
printf("请输入学号\n");
scanf("%d",&(s->sno));
printf("请输入书号\n");
scanf("%d",&(s->bno));
s->next = NULL;
return s;
}
//插入节点
lendbooks *insert( void )
{
lendbooks *p1=head, *p2=head;
lendbooks *s=NULL;
s = create();
if( head = NULL)//判断有没有节点
{
head = s;
n =1;
return head;
}
else
if( s->sno < head->sno)//当只有一个节点且输入学号比节点中学号小时,前插
{
s->next = head;
head = s;
n = 1;
return head;
}
{
while((head->sno < s->sno)&& (p1->next))//不是上述两种情况时,后插
{
p2 = p1->next;
p1 = p2->next;
}
if (p1->next = NULL)
{
printf("插入失败");
}
s->next = p1;
p2->next = s;
return p2;
}
}
//借阅信息录入函数
lendbooks *save( void )
{
char ch;
lendbooks *p2 = NULL;
while( ch != 'q' )//输入字母q时退出
{
n = 0;
p2 = insert(); //利用插入函数构建链表
if( n = 1) //若满足条件,则p2指向链头
{
head = p2;
}
printf("是否退出?输入q退出,否则继续\n");
scanf("%c",&ch);
}
if(ch = 'q')
//最后一个节点的指针域为null
return head;
}
//删除节点
int del( void )
{
unsigned int sno;
lendbooks *p1=head;
lendbooks *p2=head;
printf("请输入你要删除的学生学号\n");
scanf("%u",&sno);
while((p1->sno != sno)&&(p1->next))
{
p2 = p1->next;
p1 = p2->next;
}
if( p1->next = NULL)
return 0;
p2->next = p1->next;
printf("你已经删除学号为%u的同学的借阅信息\n",(p1->sno));
return 0;
}
//查找节点,思考:两个函数功能相同,只是参数不同,能否何为一个函数?
int snofind(void)
{
lendbooks *p1=head;
lendbooks *p2=head;
unsigned int sno;
printf("请输入你要查找的学生的学号(\n");
scanf("%u",&sno);
while((p1->sno != sno)&&(p1->next))
{
p2 = p1->next;
p1 = p2->next;
}
if( p1->next = NULL)
{
printf("未找到");
return 0;
}
printf("你找到的同学的借阅信息如下\n");
printf("学号:%u\n",(p1->sno));
printf("借阅的书号为:%u\n",p1->bno);
return 0;
}
int bnofind( void )
{
unsigned int bno;
lendbooks *p1=head;
lendbooks *p2=head;
printf("请输查询的书号\n");
scanf("%u",&bno);
while((p1->bno!= bno)&&(p1->next))
{
p2 = p1->next;
p1 = p2->next;
}
if( p1->next = NULL)
{
printf("未找到\n");
return 0;
}
printf("你找到的同学的借阅信息如下\n");
printf("学号:%u\n",p1->sno);
printf("借阅的书号为:%u\n",p1->bno);
return 0;
}
//主函数
int main(void)
{ char ch,ch1;
printf("-------------欢迎进入超小型图书借阅情况管理系统--------------\n");
printf("请先输入图书借阅情况\n");
head = save();
while( 1 )
{
printf("请选择功能\n");
printf("1:图书借阅情况查询;\n");
printf("2:插入图书借阅情况;\n");
printf("3:删除图书借阅信息;\n");
printf("----------------当输入q时退出系统-----------------------\n");
printf("请输入你要选择的功能");
scanf("%c",&ch);
switch( ch )
{
case '1': printf("1:按学号查询;\n");
printf("2:按书号查询;\n");
printf("请输入你要选择的功能的序号;\n");
scanf("%c",&ch1);
switch( ch1 )
{
case '1': snofind();break;
case '2': bnofind();break;
default: printf("输入错误\n");break;
}
case '2': insert();break;
case '3': del();break;
case 'q': return 0;
default:printf("\n输入错误\n");break;
}
}
}
#include <stdio.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
#include<ctype.h>
#include <malloc.h>
//操作对象
typedef struct lendbook
{
unsigned int sno;
unsigned int bno;
struct lendbook *next;
}lendbooks;
lendbooks *head = NULL;
int n;//指示head返回
//链节创建函数
lendbooks *create(void)
{
lendbooks *s = NULL;
s = (lendbooks *)malloc(sizeof(struct lendbook));
printf("请输入学号\n");
scanf("%d",&(s->sno));
printf("请输入书号\n");
scanf("%d",&(s->bno));
s->next = NULL;
return s;
}
lendbooks *insert( void )
{
lendbooks *p1=head, *p2=head;
lendbooks *s=NULL;
s = create();
if( head == NULL)//============
{
head = s;
n =1;
return head;
}
else
if( s->sno < head->sno)
{
s->next = head;
head = s;
n = 1;
return head;
}
{
while((head->sno < s->sno)&& (p1->next))
{
p2 = p1->next;
p1 = p2->next;
}
if (p1->next == NULL)//=============
{
printf("插入失败");
}
s->next = p1;
p2->next = s;
return p2;
}
}
lendbooks *save( void )
{
char ch;
lendbooks *p2 = NULL;
while( ch != 'q' )
{
n = 0;
p2 = insert();
if( n == 1) //==============
{
head = p2;
}
printf("是否退出?输入q退出,否则继续\n");
scanf("%c",&ch);
}
if(ch == 'q')//================
//最后一个节点的指针域为null
return head;
//return 这里少了返回值,return head只是ch=='q'时候的情况,不等于的情况也需要返回一个值
}
//删除节点
int del( void )
{
unsigned int sno;
lendbooks *p1=head;
lendbooks *p2=head;
printf("请输入你要删除的学生学号\n");
scanf("%u",&sno);
while((p1->sno != sno)&&(p1->next))
{
p2 = p1->next;
p1 = p2->next;
}
if( p1->next == NULL)//=================
return 0;
p2->next = p1->next;
printf("你已经删除学号为%u的同学的借阅信息\n",(p1->sno));
return 0;
}
int snofind(void)
{
lendbooks *p1=head;
lendbooks *p2=head;
unsigned int sno;
printf("请输入你要查找的学生的学号(\n");
scanf("%u",&sno);
while((p1->sno != sno)&&(p1->next))
{
p2 = p1->next;
p1 = p2->next;
}
if( p1->next == NULL)//==============
{
printf("未找到");
return 0;
}
printf("你找到的同学的借阅信息如下\n");
printf("学号:%u\n",(p1->sno));
printf("借阅的书号为:%u\n",p1->bno);
return 0;
}
int bnofind( void )
{
unsigned int bno;
lendbooks *p1=head;
lendbooks *p2=head;
printf("请输查询的书号\n");
scanf("%u",&bno);
while((p1->bno!= bno)&&(p1->next))
{
p2 = p1->next;
p1 = p2->next;
}
if( p1->next == NULL)//===============
{
printf("未找到\n");
return 0;
}
printf("你找到的同学的借阅信息如下\n");
printf("学号:%u\n",p1->sno);
printf("借阅的书号为:%u\n",p1->bno);
return 0;
}
//主函数
int main(void)
{ char ch,ch1;
printf("-------------欢迎进入超小型图书借阅情况管理系统--------------\n");
printf("请先输入图书借阅情况\n");
head = save();
while( 1 )
{
printf("请选择功能\n");
printf("1:图书借阅情况查询;\n");
printf("2:插入图书借阅情况;\n");
printf("3:删除图书借阅信息;\n");
printf("----------------当输入q时退出系统-----------------------\n");
printf("请输入你要选择的功能");
scanf("%c",&ch);
switch( ch )
{
case '1': printf("1:按学号查询;\n");
printf("2:按书号查询;\n");
printf("请输入你要选择的功能的序号;\n");
scanf("%c",&ch1);
switch( ch1 )
{
case '1': snofind();break;
case '2': bnofind();break;
default: printf("输入错误\n");break;
}
case '2': insert();break;
case '3': del();break;
case 'q': return 0;
default:printf("\n输入错误\n");break;
}
}
}
#include <stdio.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
#include<ctype.h>
#include <malloc.h>
//操作对象
typedef struct lendbook
{
unsigned int sno;
unsigned int bno;
struct lendbook *next;
}lendbooks;
lendbooks *head = NULL;
int n;//指示head返回
//链节创建函数
lendbooks *create(void)
{
lendbooks *s = NULL;
s = (lendbooks *)malloc(sizeof(struct lendbook));
printf("请输入学号\n");
scanf("%d",&(s->sno));
printf("请输入书号\n");
scanf("%d",&(s->bno));
s->next = NULL;
return s;
}
lendbooks *insert( void )
{
lendbooks *p1=head, *p2=head;
lendbooks *s=NULL;
s = create();
if( head == NULL)//============
{
head = s;
n =1;
return head;
}
else
if( s->sno < head->sno)
{
s->next = head;
head = s;
n = 1;
return head;
}
{
while((head->sno < s->sno)&& (p1->next))
{
p2 = p1->next;
p1 = p2->next;
}
if (p1->next == NULL)//=============
{
printf("插入失败");
}
s->next = p1;
p2->next = s;
return p2;
}
}
lendbooks *save( void )
{
char ch;
lendbooks *p2 = NULL;
while( ch != 'q' )
{
n = 0;
p2 = insert();
if( n == 1) //==============
{
head = p2;
}
printf("是否退出?输入q退出,否则继续\n");
scanf("%c",&ch);
}
if(ch == 'q')//================
//最后一个节点的指针域为null
return head;
//return 这里少了返回值,return head只是ch=='q'时候的情况,不等于的情况也需要返回一个值
}
//删除节点
int del( void )
{
unsigned int sno;
lendbooks *p1=head;
lendbooks *p2=head;
printf("请输入你要删除的学生学号\n");
scanf("%u",&sno);
while((p1->sno != sno)&&(p1->next))
{
p2 = p1->next;
p1 = p2->next;
}
if( p1->next == NULL)//=================
return 0;
p2->next = p1->next;
printf("你已经删除学号为%u的同学的借阅信息\n",(p1->sno));
return 0;
}
int snofind(void)
{
lendbooks *p1=head;
lendbooks *p2=head;
unsigned int sno;
printf("请输入你要查找的学生的学号(\n");
scanf("%u",&sno);
while((p1->sno != sno)&&(p1->next))
{
p2 = p1->next;
p1 = p2->next;
}
if( p1->next == NULL)//==============
{
printf("未找到");
return 0;
}
printf("你找到的同学的借阅信息如下\n");
printf("学号:%u\n",(p1->sno));
printf("借阅的书号为:%u\n",p1->bno);
return 0;
}
int bnofind( void )
{
unsigned int bno;
lendbooks *p1=head;
lendbooks *p2=head;
printf("请输查询的书号\n");
scanf("%u",&bno);
while((p1->bno!= bno)&&(p1->next))
{
p2 = p1->next;
p1 = p2->next;
}
if( p1->next == NULL)//===============
{
printf("未找到\n");
return 0;
}
printf("你找到的同学的借阅信息如下\n");
printf("学号:%u\n",p1->sno);
printf("借阅的书号为:%u\n",p1->bno);
return 0;
}
//主函数
int main(void)
{ char ch,ch1;
printf("-------------欢迎进入超小型图书借阅情况管理系统--------------\n");
printf("请先输入图书借阅情况\n");
head = save();
while( 1 )
{
printf("请选择功能\n");
printf("1:图书借阅情况查询;\n");
printf("2:插入图书借阅情况;\n");
printf("3:删除图书借阅信息;\n");
printf("----------------当输入q时退出系统-----------------------\n");
printf("请输入你要选择的功能");
scanf("%c",&ch);
switch( ch )
{
case '1': printf("1:按学号查询;\n");
printf("2:按书号查询;\n");
printf("请输入你要选择的功能的序号;\n");
scanf("%c",&ch1);
switch( ch1 )
{
case '1': snofind();break;
case '2': bnofind();break;
default: printf("输入错误\n");break;
}
case '2': insert();break;
case '3': del();break;
case 'q': return 0;
default:printf("\n输入错误\n");break;
}
}
}