当前位置:首页 >> 计算机软件及应用 >> 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语言程序设计报告--图书馆信息管理系统_IT/计算机_专业资料。C语言实践 系统设计 图书信息管理系统 2011 年第二阶段课程设计成果报告 实训项目: 学号: 专业: ...

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

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

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

设计主要研究的是用 C 语言开发图书馆管理功能,其具体体现在图书的检索、查询、 录入功能,更要优化了图书馆管理系统设计。 管理信息系统的设计与开发是一项系统...

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

C语言课程设计图书管理系统 - C 语言课程设计 语言课程设计 姓名: 姓名:郭献安 班级:054101-13 班级:054101学号: 学号:20101001871 图书管理系统》 《图...

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

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

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

c语言课程设计报告·图书管理系统 - 2013.07 中国地质大学 C 语言课程设计 1 第一章 §1.1 题目描述 图书管理系统设计: 【要求】图书管理信息包括:图书名称、...

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

c语言课程设计图书馆管理系统课程设计 - C 语言程序设计 课程设计 题系班姓学 目 (部) 级名号 图书馆管理系统 信息工程系 指导教师 2015 年 月 日...

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

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

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

图书馆管理系统C语言程序设计 - HUNAN UNIVERSITY C 语言程序训练 报告 【设计目的】 图书信息包括:读者登录号、管理员登录号、图书编号、作者名、种类、出版社、 ...

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

c语言程序设计报告 图书管理系统 - 中国地质大学 本科生课程论文封面 课程名称 c 语言课程设计 教师姓名 樊媛媛 本科生姓名 本科生学 本科生专业 所在院系 类别:...

更多相关标签:
网站地图

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