1-1
定义变量
struct node{
int book_number;//
书号
char book_name[25];//
书名
char press[50];//
出版社
char author[20];//
作者
int price;//
价格
char publication_date[20];//
出版日期
int number;//
馆藏数量
struct node * next;
};
struct node * head = NULL;//
在此定义一个全局变量
head,
其它函数就不需要再返回
head;
但这样
做,程序中的函数的可用性就不是太高
int Total = 0; //
记录图书总数
1-2
函数的定义
void Creat();//
录入图书信息
struct node* Insert(struct node* p,struct node* head0);//
void Delete();//
删除图书信息
插入图书信息
void change();//
修改图书信息
void write();//
保存图书信息
struct node * read();//
读取图书信息
void amend(struct node * p);//
辅助修改选项
void Print();//
遍历图书信息
void Print_by_one(struct node * p);//
单项遍历
void Main_menu();//
登陆界面
void Administrator_menu0();//
第一次进入系统的管理员菜单
void Administrator_menu1();//
第
n
次进入系统的管理员菜单
void Student_menu();//
学生菜单
void mainFind();//
查找菜单
void Find();//
精确查找图书
void Find0();//
模糊查找图书
int str(char a[],char b[]);//
模糊查找函数
void Find_booknumber();//
按书号查找
void Find_booknumber0();//
按书号模糊查找
void Find_bookname();//
按书名查找
void Find_bookname0();//
按书名模糊查找
void Find_author(); //
按作者查找
void Find_author0(); //
按作者模糊查找
void Find_press(); //
按出版社查找
void Find_press0(); //
按出版社模糊查找
char *transform(char str[] ,int n);//
将整数转化为字符存入字符数组返回
void Sorting_order();//
排序
void Sorting_help(struct node* p1,struct node* p2);//
辅助排序
void Sorting_booknumber();//
按书号排序
void Sorting_price();//
按价格排序
void Sorting_publication_date();//
按出版日期排序
void Sorting_number();//
按馆藏数量排序
#define S 123 //
学生密码
#define A 123456//
管理员密码
int T = 0;//
选择菜单
1-3
信息的录入
void Creat()//
录入图书信息
{
{
struct node *tail,*p;
int book_number;//
书号
char choice;
printf("
该操作将清除书库中所有书目的信息!
printf("\n\t\t\t
你想继续操作吗
?(Y/N)\n"); while(1)
{
printf("
请选择:
"); if(scanf("%c",&choice))
{
getchar();
if(choice == 'Y'||choice ==
'y'){ system("cls");
break;
}
else if(choice == 'N'||choice == 'n')
{
system("cls"); return;
}
else{
printf("
请按要求输入!
\n"); continue;
}
}
else
printf("
输入的不是字母,请按照要求重新输入!
\n"); continue;
}
}
printf("\t\t\t
提示:请输入你要输入的数据,当书号为数字
'0'
时结束!
\n\n"); printf("
请输入书
号
:");
scanf("%d",&book_number);
getchar();//
吸收回车符,清空缓冲区,这样才能正常执行清屏操作
while(book_number != 0)
{
p = (struct node *)malloc(sizeof(struct node));
printf("
请输入书名
:"); scanf("%s",p->book_name);getchar();
printf("
请输入作者
:"); scanf("%s",p->author);getchar();
printf("
请输入出版社
:"); scanf("%s",p->press);getchar();
\n");
printf("
请输入价格
:"); scanf("%d",&p->price);getchar();
printf("
请输入出版时间
:"); scanf("%s",p->publication_date);getchar();
printf("
请输入馆藏数量
:");
scanf("%d",&p->number);getchar();
putchar('\n');
p->book_number = book_number;
p->next = NULL;
if(head == NULL)
{
head = tail = p;
}
else tail->next = p; tail = p;
}
Total++;
printf("
请输入书号
:");
scanf("%d",&book_number);
}
printf("\t\t\t\t
图书信息录入成功!
\n\n");
}
1-4
按编号查询
void Find_booknumber()//
按书号查找
{
int book_number;
struct node *p1,*p2;
printf("
请输入你要查找的图书书号:
");
scanf("%d",&book_number);
printf("\t\t\n
你要找的书为:
\n");
printf("\t\t ------------------------------------------------------------ \n");
printf("\t\t|
书号
|
书名
|
作者
|
出版社
|
价格
|
出版时间
|
馆藏数量
|\n");
printf("\t\t ------------------------------------------------------------ \n");
if(head->book_number == book_number)
{
Print_by_one(head);
}
p1 = head;
p2 = head->next;
while(p2 != NULL)
{
if(p2->book_number == book_number)
{Print_by_one(p2);
p1 = p2;
p2 = p2->next;
}
else
{
p1 = p2;
p2 = p2->next;
}
}
}
1-5
按出版时间排序
void Sorting_publication_date()//
按出版日期排序
{
struct node *p1,*p2,*p3,*p4,*p5,*p6,*p7;
int x=1;
for(p1=head;p1->next!=NULL;p4=p1,p1=p1->next)
{
p3=p1;
for(p2=p1->next,p5=p7=p2;p2!=NULL;p7=p2,p2=p2->next)
{
if(strcmp(p3->publication_date , p2->publication_date) >0)
{
p3=p2;
p5=p7;
}
}
if(p3!=p1)
{
if(x&&p1==head)
{
p6=p1->next;
p1->next=p3->next;
p3->next=p6;
p5->next=p1;
head=p3;
p1=p3;
x=0;
}
else
{
p6=p1->next;
p1->next=p3->next;
p3->next=p6;
p4->next=p3;
p5->next=p1;
p1=p3;
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
专注于为中小企业提供做网站、
成都网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业
宁津免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千多家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
分享标题:c语言图书信息管理系统程序-创新互联
分享网址:
http://jkwzsj.com/article/diheoe.html