当前位置:首页 >> 计算机软件及应用 >> c语言程序设计图书馆

c语言程序设计图书馆


#include<stdio.h> #include<stdlib.h>

#define NULL 0 #define LEN sizeof(struct book)

struct time { int year; int month; int day; };

struct book { int num; char name[30]; char writer[30]; float price; int sum; struct time date; char pub[30];

struct book *next; };

int n; struct book *head;

struct book *creat(void) { struct book * p1, * p2; n=0; p1=p2=(struct book *)malloc(LEN); scanf("%d",&p1->num); if(p1->num!=0)

scanf("%s %s %f %d %d %d %d %s",p1->name,p1->write r,&p1->price,&p1->sum,&(p1->date.year),&(p1->date.month), &(p1->date.day),p1->pub); head=NULL; while(p1->num!=0) { n=n+1; if(n==1)

head=p1; else p2->next=p1; p2=p1; p1=(struct book *)malloc(LEN); scanf("%d",&p1->num); if(p1->num!=0)

scanf("%s %s %f %d %d %d %d %s",p1->name,p1->write r,&p1->price,&p1->sum,&(p1->date.year),&(p1->date.month), &(p1->date.day),p1->pub); } p2->next=NULL; return(head); }

void print(struct book * head) { struct book * p; printf("Now, These %d records are:\n",n); p=head;

if(head!=NULL) do { printf("%d,%s,%s,%f,%d,%d_%d_%d,%s \n",p->num,p->name,p->writer,p->price,p->sum,p->date.year,p>date.month,p->date.day,p->pub); p=p->next; } while(p!=NULL); }

struct book *del(struct book *head,int number) { struct book *p1, *p2; if(head==NULL) { printf("\nlist null\n"); return(head); } p1=head;

while(number!=p1->num && p1->next!=NULL) { p2=p1; p1=p1->next; } if(number==p1->num) { if(p1==head) head=p1->next; else p2->next=p1->next; printf("delete:%d\n",number); n=n-1; } else printf("%d is not found\n",number); return(head); }

struct book *insert(struct book *head,struct book *new_book) { struct book *p0,*p1,*p2;

p1=head; p0=new_book; if(head==NULL) { head=p0; p0->next=NULL; } else { while((p0->num > p1->num) && (p1->next!=NULL)) { p2=p1; p1=p1->next; } if(p0->num < p1->num) { if(head==p1) head=p0; else p2->next=p0; p0->next=p1; }

else { p1->next=p0; p0->next=NULL; } } n=n+1; return(head); }

void save(struct book *p) { FILE *fp; if((fp=fopen("book_list","wb"))==NULL) { printf("cannot opent file\n"); return; } for(p=head;p->next!=NULL;p++) if(fwrite(p,LEN,1,fp)!=1)

printf("file write error\n"); fclose(fp); }

void load(struct book *p) { FILE *fp; fp=fopen("book_list","rb"); for(p=head;p->next!=NULL;p++) { fread(p,LEN,1,fp);

printf("%d,%s,%s,%f,%d,%d_%d_%d,%s\n",p->num,p-> name,p->writer,p->price,p->sum,p->date.year,p->date.month,p>date.day,p->pub); } fclose(fp); return; }

void search(int num,struct book *head) { struct book *p; if(head==NULL) printf("\n list null \n"); p=head; while(num!=p->num && p->next!=NULL) p=p->next; if(num==p->num) printf("%d,%s,%s,%f,%d,%d_%d_%d,%s \n",p->num,p->name,p->writer,p->price,p->sum,p->date.year,p>date.month,p->date.day,p->pub); else printf("The data is error."); }

void amount() {

printf("The amount of books is : %d \n",n); }

struct book *modify(int num,struct book*head) { struct book *p; if(head==NULL) { printf("\n list null \n"); return(head); } p=head; while(num!=p->num && p->next!=NULL) p=p->next; if(num==p->num) { printf("Please input the new information.\n");

scanf("%d %s %s %f %d %d %d %d %s",&p->num,p->na me,p->writer,&p->price,&p->sum,&(p->date.year),&(p->date.m

onth),&(p->date.day),p->pub); } return(head); }

void sort_price(struct book *head) { int i,j,k; struct book*p1,*temp,*p[500]; p1=head; for(i=0;i<n;i++) { p[i] = p1; p1 = p1->next; } for(i=0;i<n-1;i++) { k=i; for(j=i+1;j<n;j++) if(p[j]->price<p[k]->price)

k=j; if(k!=i) { temp=p[i]; p[i]=p[k]; p[k]=temp; } } for(i=0;i<n;i++) printf("%d,%s,%s,%f,%d,%d_%d_%d,%s \n",p[i]->num,p[i]->name,p[i]->writer,p[i]->price,p[i]->sum,p[i]>date.year,p[i]->date.month,p[i]->date.day,p[i]->pub); }

void menu() { printf( printf( printf( printf( printf( "p_____ OUTPUT DATA \n"); "d_____ DELETE DATA \n"); "i_____ INSERT DATA \n"); "s_____ SAVE \n");

"l_____ LOAD DATA \n");

printf( printf( printf( printf( printf( }

"a_____ SEARCH DATA \n"); "m_____ MODIFY DATA \n"); "b_____ BOOK AMOUNT \n"); "c_____ SORT_BY PRICE "q_____ QUIT \n"); \n");

int main() { struct book *book_1; int del_num; int search_num; char Q; printf("input records:\n"); head=creat(); menu();

while(Q!='q') { printf("input function alpha:\n"); do scanf("%c",&Q);

while(!(Q>='a'&&Q<='z'));

switch(Q) { case 'p': print(head); break; case 'd': printf("input the delete number:"); scanf("%d",&del_num); getchar(); head=del(head,del_num); print(head); break; case 'i': printf("input the inserted record:"); book_1=(struct book *)malloc(LEN);

scanf("%d %s %s %f %d %d %d %d %s",&book_1->num, book_1->name,book_1->writer,&book_1->price,&book_1->sum, &(book_1->date.year),&(book_1->date.month),&(book_1->date.

day),book_1->pub); head=insert(head,book_1); print(head); break; case 's': save(head); break; case 'l': load(head); break; case 'a': printf("input the search_num:"); scanf("%d",&search_num); search(search_num,head); break; case 'm': printf("input the modified number:"); scanf("%d",&search_num); modify(search_num,head); break; case 'b': amount();

break; case 'q': break; case 'c': printf("The books are sorted by price:\n"); sort_price(head); break; default: printf("error\n"); } } return 0; }


赞助商链接
更多相关文档:

C语言课程设计图书管理系统

C 语言课程设计 语言课程设计 姓名: 姓名:郭献安 班级:054101-13 班级:054101学号: 学号:20101001871 图书管理系统》 《图书管理系统》目录 题目要求及能实现的...

C语言课程设计图书管理系统

C语言课程设计图书管理系统_理学_高等教育_教育专区。本文档只作为参考,学习必须...-8- 附录——图书馆管理系统设计源程序清单 #include<stdio.h> #include<...

C语言程序设计--图书管理系统

C语言程序设计--图书管理系统_电脑基础知识_IT/计算机_专业资料。中国地质大学 ...34 2 1 前言近年来,随着图书馆规模的不断扩大,图书数量也相应的增加, 有关...

c语言课程设计-图书馆管理系统

c语言课程设计-图书馆管理系统_其它_高等教育_教育专区。仅供参考,转载。C 语言程序设计 课程设计 题系班姓学 目 (部) 级名号 图书馆管理系统 信息工程系 ...

c语言程序设计报告 图书管理系统

c语言程序设计报告 图书管理系统_理学_高等教育_教育专区。中国地质大学 本科生课程论文封面 课程名称 c 语言课程设计 教师姓名 樊媛媛 本科生姓名 本科生学 本科生...

C语言程序设计报告 图书馆信息管理系统

C语言程序设计报告 图书馆信息管理系统_IT/计算机_专业资料。C语言实践 系统设计 图书信息管理系统 2011 年第二阶段课程设计成果报告 实训项目: 学号: 0112959 程序...

C语言程序设计报告--图书馆信息管理系统

C语言程序设计报告--图书馆信息管理系统_IT/计算机_专业资料。C语言实践 系统设计 图书信息管理系统 2011 年第二阶段课程设计成果报告 实训项目: 学号: 专业: ...

c语言课程设计图书馆管理系统.zip

c语言课程设计图书馆管理系统.zip_IT/计算机_专业资料。c 语言课程设计图书馆管理系统 语言课程设计图书馆管理系统.zip 资源简介 1. 1. 引言 1.1 编写目的 随着...

《C语言程序设计》课程设计报告(小组)

C语言程序设计》课程设计报告(小组)_文学_高等教育_教育专区。如题东莞...二 需求分析根据图书馆图书信息管理的需要,建立一个“图书信息管理系统”,以方便...

C语言课程设计图书馆管理系统源程序

C语言课程设计图书馆管理系统源程序_管理学_高等教育_教育专区。南京工程学院通信工程#include <stdio.h> #include <stdlib.h> #include <string.h> #include <...

更多相关标签:
网站地图

文档资料共享网 nexoncn.com copyright ©right 2010-2020。
文档资料共享网内容来自网络,如有侵犯请联系客服。email:zhit325@126.com