b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

怎样用C语言制作图书馆管理系统

电脑杂谈  发布时间:2019-08-07 21:15:54  来源:网络整理

c语言图书管理系统_c语言简单图书管理系统_图书管理系统 c语言

这个是自己写的

注释很清楚地

有多少不清楚的问我

#include<stdio.h>

#include<math.h>

#include<string.h>

#include<stdlib.h>

struct books_list

{

char author[20];/*图文名*/

char bookname[20];/*书名*/

char publisher[20];/*出版单位*/

char pbtime[15];/*出版时间*/

char loginnum[10];/*登陆号*/

float price;/*单价*/

char classfy[10];/*分类号*/

struct books_list * next; /*链表的时钟域*/

};

struct books_list * Create_Books_Doc();/*新建函数*/

void InsertDoc(struct books_list * head); /*插入*/

void DeleteDoc(struct books_list * head , int num);/*删除*/

void Print_Book_Doc(struct books_list * head);/*浏览*/

void search_book(struct books_list * head); /*查询*/

void info_change(struct books_list * head);/*修改*/

void save(struct books_list * head);/*保留数据至文档*/

/*新建函数头结点*/

struct books_list * Create_Books_Doc()

{

struct books_list * head;

head=(struct books_list *)malloc(sizeof(struct books_list)); /*分配头结点空间*/

head->next=NULL; /*头结点时钟域初始化,定为空*/

return head;

}

/*保留数据至文档*/

void save(struct books_list * head)

{

struct books_list *p;

FILE *fp;

p=head;

fp=fopen("data.txt","w+"); /*以写方法新建并打开 data.txt文档*/

fprintf(fp,"┏━━━┳━━━━━┳━━━━━┳━━━━━┳━━━━━━┳━━━┳━━━━┓\n"); /*向文档输出表格*/

fprintf(fp,"┃登录号┃ 书 名 ┃ 作者┃ 出版单位 ┃ 出版时间 ┃分类号┃ 价格 ┃\n");

fprintf(fp,"┣━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━━╋━━━╋━━━━┫\n");

/*表盘从头结点开始移动,遍历至尾节点,依次输出图书资料*/

while(p->next!= NULL)

{

p=p->next;

fprintf(fp,"┃%-6.6s┃%-10.10s┃%-10.10s┃%-10.10s┃%-12.12s┃%-6.6s┃%.2f ┃\n",p->loginnum,p->bookname,p->author,p->publisher,p->pbtime,p->classfy,p->price);

}

fprintf(fp,"┗━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━━┻━━━┻━━━━┛\n");

fclose(fp);

printf("已将书籍数据保留到 data.txt 文件\n");

}

/*插入*/

void InsertDoc(struct books_list *head)

{

/*概念结构体指针变量 s指向开辟的新节点首地址 p为中间变量*/

struct books_list *s, *p;

char flag='Y'; /*定义flag,方便用户选择重复输入*/

p=head;

/*遍历到尾节点c语言简单图书管理系统,p指向尾结点*/

while(p->next!= NULL)

c语言图书管理系统_图书管理系统 c语言_c语言简单图书管理系统

{

p=p->next;

}

/*开辟新空间,存入数据,添加进函数*/

while(flag=='Y'||flag=='y')

{

s=(struct books_list *)malloc(sizeof(struct books_list));

printf("\n请输入图书登陆号:");

fflush(stdin);

scanf("%s",s->loginnum);

printf("\n请输入图书书目:");

fflush(stdin);

scanf("%s",s->bookname);

printf("\n请输入图书作者名:");

fflush(stdin);

scanf("%s",s->author);

printf("\n请输入图书出版社:");

fflush(stdin);

scanf("%s",s->publisher);

printf("\n请输入图书出版时间:");

fflush(stdin);

scanf("%s",s->pbtime);

printf("\n请输入图书分类号:");

fflush(stdin);

scanf("%s",s->classfy);

printf("\n请输入图书价格:");

fflush(stdin);

scanf("%f",&s->price);

printf("\n");

p->next=s; /*将新提高的结点添加进函数*/

p=s; /*p指向尾结点,向后移*/

s->next=NULL;

printf("━━━━ 添加成功!━━━━");

printf("\n继续添加?(Y/N):");

fflush(stdin);

scanf("%c",&flag);

printf("\n");

if(flag=='N'||flag=='n')

{break;}

else if(flag=='Y'||flag=='y')

{continue;}

}

save(head); /*保存数据至文档*/

return;

}

/*查询操作*/

void search_book(struct books_list *head)

{

struct books_list * p;

char temp[20];

p=head;

if(head==NULL || head->next==NULL) /*分析是否为空*/

{

printf("━━━━ 图书馆为空!━━━━\n");

}

else

{

printf("请输入您要查找的新书: ");

fflush(stdin);

scanf("%s",temp);

/*表盘从头结点开始移动,遍历至尾节点,查找书籍信息*/

while(p->next!= NULL)

c语言图书管理系统_c语言简单图书管理系统_图书管理系统 c语言

{

p=p->next;

if(strcmp(p->bookname,temp)==)

{

printf("\n图书已寻找!\n");

printf("\n");

printf("登陆号: %s\t\n",p->loginnum);

printf("名著: %s\t\n",p->bookname);

printf("作者名: %s\t\n",p->author);

printf("出版单位: %s\t\n",p->publisher);

printf("出版时间: %s\t\n",p->pbtime);

printf("分类号: %s\t\n",p->classfy);

printf("低价: %.2f\t\n",p->price);

}

if(p->next==NULL)

{

printf("\n查询完毕!\n");

}

}

}

return;

}

/*浏览操作*/

void Print_Book_Doc(struct books_list * head)

{

struct books_list * p;

if(head==NULL || head->next==NULL) /*分析是否为空*/

{

printf("\n━━━━ 没有图书记录! ━━━━\n\n");

return;

}

p=head;

printf("┏━━━┳━━━━━┳━━━━━┳━━━━━┳━━━━━━┳━━━┳━━━━┓\n");

printf("┃登录号┃ 书 名 ┃ 作者┃ 出版单位 ┃ 出版时间 ┃分类号┃ 价格 ┃\n");

printf("┣━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━━╋━━━╋━━━━┫\n");

/*表盘从头结点开始移动c语言简单图书管理系统,遍历至尾节点,依次输出图书资料*/

while(p->next!= NULL)

{

p=p->next;

printf("┃%-6.6s┃%-10.10s┃%-10.10s┃%-10.10s┃%-12.12s┃%-6.6s┃%.2f ┃\n",p->loginnum,p->bookname,p->author,p->publisher,p->pbtime,p->classfy,p->price); /*循环输出表格*/

}

printf("┗━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━━┻━━━┻━━━━┛\n");

printf("\n");

}

/*修改操作*/

void info_change(struct books_list * head)

{

struct books_list * p;

int panduan=0; /*此函数用来分析是否寻找图书*/

char temp[20];

p=head;

printf("请输入要修改的新书:");

scanf("%s",temp);

while(p->next!= NULL)

{

p=p->next;

if(strcmp(p->bookname,temp)==)

{

printf("\n请输入图书登陆网银:");

fflush(stdin);

scanf("%s",p->loginnum);

printf("\n请输入图书书目:");

c语言简单图书管理系统_c语言图书管理系统_图书管理系统 c语言

fflush(stdin);

scanf("%s",p->bookname);

printf("\n请输入图书作者名:");

fflush(stdin);

scanf("%s",p->author);

printf("\n请输入图书出版社:");

fflush(stdin);

scanf("%s",p->publisher);

printf("\n请输入图书出版时间:");

fflush(stdin);

scanf("%s",p->pbtime);

printf("\n请输入图书分类号:");

fflush(stdin);

scanf("%s",p->classfy);

printf("\n请输入图书价格:");

fflush(stdin);

scanf("%f",&p->price);

printf("\n");

panduan=1;

}

}

if(panduan==0)

{

printf("\n━━━━ 没有图书记录! ━━━━\n\n");

}

return;

}

/*删除操作*/

void DeleteDoc(struct books_list * head)

{

struct books_list *s,*p; /*s为后面变量,p为遍历时使用的时钟*/

char temp[20];

int panduan; /*此函数用来分析是否寻找了图书*/

panduan=0;

p=s=head;

printf("[请输入您要删除的新书]:");

scanf("%s",temp);

/*遍历到尾结点*/

while(p!= NULL)

{

if(strcmp(p->bookname,temp)==)

{

panduan++;

break;

}

p=p->next;

}

if(panduan==1)

{

for(;s->next!=p;) /*找出所需删除卡号结点的上一个结点*/

{

s=s->next;

}

s->next=p->next; /*将后一结点地址赋值给前一结点的时钟域*/

free(p);

printf("\n━━━━ 删除成功! ━━━━\n");

}

else /*未找出对应书籍*/

{

printf("您输入的书籍不存在,请确定后输入!\n");

}

return;

图书管理系统 c语言_c语言简单图书管理系统_c语言图书管理系统

}

int main(void)

{

struct books_list * head;

char choice;

head=NULL;

for(;;) /*实现反复输入选择*/

{

printf("┏━┓━━━━━━━━━━━━━━━━━━━┏━┓\n");

printf("┃ ┃socat 图书管理系统┃ ┃\n");

printf("┃ ┗━━━━━━━━━━━━━━━━━━━┛ ┃\n");

printf("┃●[1]书籍资料录入┃\n");

printf("┃┃\n");

printf("┃●[2]书籍资料浏览┃\n");

printf("┃┃\n");

printf("┃●[3]书籍资料查询┃\n");

printf("┃┃\n");

printf("┃●[4]书籍资料修改┃\n");

printf("┃┃\n");

printf("┃●[5]书籍资料删除┃\n");

printf("┃┃\n");

printf("┃●[6]退出功能┃\n");

printf("┗━━━━━━━━━━━━━━━━━━━━━━━┛\n");

printf("请选择:");

fflush(stdin);

scanf("%c",&choice);

if(choice=='1')

{

if(head==NULL)

{

head=Create_Books_Doc();

}

InsertDoc(head);

}

else if(choice=='2')

{

Print_Book_Doc(head);

}

else if(choice=='3')

{

search_book(head);

}

else if(choice=='4')

{

info_change(head);

}

else if(choice=='5')

{

DeleteDoc(head);

}

else if(choice=='6')

{

printf("\n");

printf("━━━━━━━━ 感谢使用书籍管理功能 ━━━━━━━━\n");

break;

}

else

{

printf("━━━━ 输入错误,请再次输入!━━━━");

break;

}

}

return ;

}


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-118409-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 黄晓峰
        黄晓峰

        好像因工艺流程不同调和油要放心一点

      热点图片
      拼命载入中...