图书管理系统.docx_第1页
图书管理系统.docx_第2页
图书管理系统.docx_第3页
图书管理系统.docx_第4页
图书管理系统.docx_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

成都信息工程学院计算机课程实验报告实验课程:C语言程序设计实验项目:图书管理系统指导教师: 李莉丽学生姓名:xxx 学生学号:xxxxxxxx班 级:xxx实验地点: xxx实验时间:2011年05月11日 6点9点实验成绩:评阅老师:李莉丽一【上机实验目的】要求学生按照分析、设计、编码、调试和测试的软件开发过程独立完成一个图书资料信息管理系统,并能最终实现本系统的功能要求 二【实验环境】PC机每人1台三【上机实验内容】题目图书馆信息管理系统系统要实现的功能(1)各种基本数据的录入。如:图书资料基本信息录入等。(2) 各种基本数据的修改。即:允许对以及录入的数据重新进行编辑、修改。(3)各种基本数据的插入。如:在图书采购信息中插入一条新信息等。(4)各种基本数据的删除。如:假设某本书遗失且馆藏数为0,删除该书的相关信息等。(5)基于各种数据的查询。如:书名中含有“计算机”的所有书籍、全部借出的所有图书等。(6)基于各种基本数据的统计计算。如: (6-1)统计馆藏书籍总数、已借出数据总数、在馆书籍数等。(6-2)统计馆藏书籍总金额、馆藏书籍的平均价格。(6-3)找出借阅次数最多的10本书,并对它们进行排序。(6-5)统计借阅书籍最多的前5名读者。四【上机调试程序流程图】五【上机调试中出现的错误信息、错误原因及解决办法】(1) 没有定义变量。(2) 指针用之前没有定义。(3) 指针没有赋值就用了。(4) 语句的格式写错了。(5) 函数的用法没有用对。六【上机调试后的源程序及还存在的问题】(如你的程序没有问题可不写,但可记录下你对你编写此程序的其它具体想法,#include#include#include#include#include#defineMax1 200/*最多存书*/#define Max2 100/*最多人数*/#define UP_ARROW 0x4800#define DOWN_ARROW 0x5000#define Enter 0x1c0d#define Esc 0x11bstruct book_datachar book30;char author430;char publisher50;char public_date20;long shorge_amount;long lend_amount;long lend_times;long price;struct book_data * next;struct user_datachar name20;char library_card_num20;char book1030;int borrow_times;struct user_data * next;void clear(void)window(1,1,80,25);textbackground(BLACK);textcolor(WHITE);clrscr();int menu2(void)char*menu=1.Bookname,2.Author,3.Publisher,4.Public date,5.Shorge amount,6.Price;char buf61*59*2;int i,key,k;window(1,1,80,25);textbackground(BLUE);textcolor(0);clrscr();gotoxy(18,2);printf(Please choose the option you want to correct!);for(i=0;i6;i+)window(12,3*i+5,68,3*i+5);textbackground(15);textcolor(0);clrscr();cprintf(%s,menui);gettext(12,3*i+5,68,3*i+5,&bufi);window(12,5,68,5);textbackground(4);textcolor(15);clrscr();cprintf(%s,menu0);k=1;for(;)key=bioskey(0);if(key = Enter)break;else if(key = Esc)break;else if(key = DOWN_ARROW)for(i=0;i6;i+)window(12,3*i+5,68,3*i+5);cprintf(%s,menui);puttext(12,3*i+5,68,3*i+5,&bufi);if(k = 6)k=0;window(12,3*k+5,68,3*k+5);textbackground(4);textcolor(15);clrscr();cprintf(%s,menuk);k+;else if(key = UP_ARROW)for(i=0;i6;i+)window(12,3*i+5,68,3*i+5);cprintf(%s,menui);puttext(12,3*i+5,68,3*i+5,&bufi);if(k = 1)k=6;window(12,3*k+2,68,3*k+2);textbackground(4);textcolor(15);clrscr();cprintf(%s,menuk-1);elsewindow(12,3*k-1,68,3*k-1); textbackground(4);textcolor(15);clrscr();cprintf(%s,menuk-2);k-;clear();if(key = Esc)return(0);elsereturn(k);int menu(int n)/*选择工作方式*/int x,y,key,k,i,color;char buf91*62*2 ,*menu9;char*menu2=1.Computer,2.English,3.Math,4.Novel,5.History,6.Politics,7.Biology,8.Geography,9.SCM;char*menu1=1.Inputbook,2.Inputuser,3.Scan,4.Stat,5.Correct,6.Delete,7.Borrow,8.Back,9.Exit;window(1,1,80,25);textbackground(0);clrscr();if(n = 1)for(i=0;i9;i+)menui=menu1i;elsefor(i=0;i9;i+)menui=menu2i;if(n = 1)window(1,1,80,25);textbackground(15);clrscr();for(i=0;i80*25;i+)color=tan(i);textcolor(color);cprintf(%c,14);window(5,3,76,22);textbackground(BLUE);textcolor(0);clrscr();gotoxy(16,1);cprintf(Welcome to library mangagement system);for(i=2;i21;i+)gotoxy(5,i);cprintf(%c,15);gotoxy(68,i);cprintf(%c,15);for(i=5;i69;i+)gotoxy(i,2);cprintf(%c,15);for(i=5;i69;i+)gotoxy(i,20);cprintf(%c,15);elsewindow(5,3,76,22);textbackground(BLUE);textcolor(1);clrscr();window(1,1,80,2);textbackground(0);textcolor(RED);clrscr();for(i=0;i9;i+)window(10,2*i+5,71,2*i+5);textbackground(15);textcolor(0);clrscr();cprintf(%s,menui);gettext(10,2*i+5,71,2*i+5,&bufi);window(10,5,71,5);textbackground(4);textcolor(15);clrscr();cprintf(%s,menu0);k=1;for(;)key=bioskey(0);if(key = Enter)break;else if(key = Esc)break;else if(key = DOWN_ARROW)for(i=0;i9;i+)puttext(10,2*i+5,71,2*i+5,&bufi);if(k = 9)k=0;window(10,2*k+5,71,2*k+5);textbackground(4);textcolor(15);clrscr();cprintf(%s,menuk);k+;else if(key = UP_ARROW)for(i=0;inext;fclose(fp);p_book=head;while(p_book != NULL)free(p_book);p_book=p_book-next;void save_user(struct user_data * head,FILE * fp)struct user_data * p_user;int count;p_user=head;while(p_user != NULL)count=fwrite(p_user,sizeof(struct user_data)-2,1,fp);if(count != 1)printf(Users data write error!n);exit(0);p_user=p_user-next;fclose(fp);p_user=head;while(p_user != NULL)free(p_user);p_user=p_user-next;long c_to_l(char str)int n,i;long num=0;n=strlen(str);for(i=0;in;i+)num=(strn-i-1)-48)*pow(10,i)+num;return(num);void judge_zero(char str)/*判断输入的信息是否为空*/for(;)if(strlen(str) = 0)printf(You must input one letter or number at least!);gets(str);elsebreak;void judge_num(char str,int n)/*判断输入的信息是否为数字*/int i;for(;)for(i=0;istrlen(str);i+)if(stri 9)printf(Input error! );printf(You only can input number! );printf(Please input again! );break;if(i = strlen(str)break;if(n = 1)printf(Please input the number:);else if(n = 2)printf(Please input shorge amount:);else if(n = 3)printf(Please input price :);gets(str);judge_zero(str);struct user_data * entering_user(void)struct user_data * p1,* p2,* head;int count;FILE * fp;head=NULL;fp=fopen(user,r);p1=p2=(struct user_data *)malloc(sizeof(struct user_data);for(;)count=fread(p1,sizeof(struct user_data)-2,1,fp);if(count = 1) if(head = NULL)head = p1;elsep2-next=p1;p2=p1;p1=(struct user_data *)malloc(sizeof(struct user_data);elsebreak;if(head != NULL)p2-next = NULL;free(p1);fclose(fp);return(head);struct book_data * entering_book(char * p)struct book_data * p1,* p2,* head;int count=0;FILE * fp;char c;head=NULL;fp=fopen(p,r);p1=p2=(struct book_data *)malloc(sizeof(struct book_data);for(;)count=fread(p1,sizeof(struct book_data)-2,1,fp); if(count = 1)if(head = NULL)head = p1;elsep2-next=p1;p2=p1;p1=(struct book_data *)malloc(sizeof(struct book_data);elsebreak;p2-next=NULL;free(p1);fclose(fp);return(head);int input_book(void)int flag = 0,i=0,count,n,num,j;struct book_data book_input;charsubject910=Computer,English,Math,Novel,History,Politics,Biology,Geography,SCM c,type10,ch,str20,;FILE * fp;n=menu(2);if(n = 0)return(0);strcpy(type,subjectn-1);fp=fopen(type,a);if(fp = NULL)printf(cantt open this file!n);exit(0);printf(please input %sdata! ,type);while(flag = 0)if(flag = 1)break;book_input.lend_times=0;book_input.lend_amount=0;printf(nPlease input books name :);gets(book_input.book);judge_zero(book_input.book);for(i=0;i4;i+)for(j=0;j30;j+)book_input.authorij=0;printf(Could you tell me how many authors does the book have? );printf(before you input authorname. );printf(Please input the number:);gets(str);judge_zero(str);judge_num(str,1);num=(int)(c_to_l(str);for(i=0;inum;i+)printf(Please input %dst authors name:,i+1);gets(book_input.authori);judge_zero(book_input.authori);printf(Please input publisher :);gets(book_input.publisher);judge_zero(book_input.publisher);printf(Please input public date :);gets(book_input.public_date);judge_zero(book_input.public_date);judge_form(book_input.public_date);printf(Please input shorge amount:);gets(str);judge_zero(str);judge_num(str,2);book_input.shorge_amount=c_to_l(str);printf(Please input price :);gets(str);judge_zero(str);judge_num(str,3);book_input.price=c_to_l(str);count=fwrite(&book_input,sizeof(struct book_data)-2,1,fp);if(count != 1)printf(Books data write error!n);exit(0);printf(Do you want to stop inputing(Y/N)?);ch=getch();flag=judge_Y_N(ch);fclose(fp);return(0);int insert_user(void)FILE * fp;struct user_data user_input,* p_user1,* p_user2,* head;char user_name20;int i,j,n,k,q;user_input.borrow_times=0;for(i=0;i10;i+)for(j=0;jname) != 0&p_user1-next != NULL)p_user2=p_user1;p_user1=p_user1-next;if(p_user1-next = NULL& strcmp(user_name,p_user1-name) !=0)/*判断输入的书是否存在*/k+;p_user1=head;printf(the user doesnt exist!n);if(k = 3)q=quit();if(q = 1)save_user(head,fp);return(1);printf(Please input again!n);printf(Please input the name of the user again:);gets(user_name);judge_zero(user_name);elsebreak;if(n = 1)if(p_user1 = head)head=&user_input;user_input.next=p_user1;elseuser_input.next=p_user1;p_user2-next=&user_input;else if(n = 2)if(p_user1-next = NULL)p_user1-next=&user_input;user_input.next=NULL;elsep_user2=p_user1;p_user1=p_user1-next;user_input.next=p_user1;p_user2-next=&user_input;save_user(head,fp);printf(Insert successfully!n);back_menu();int input_directly(void)int flag=0,i,j,count;struct user_data user_input;FILE * fp;char ch;fp=fopen(user,a);if(fp = NULL)printf(cant open this file!n);exit(0);printf(Please input userdata! );while(flag = 0)if(flag = 1)break;user_input.borrow_times=0;/*初始化*/for(i=0;i10;i+)for(j=0;jbook) != 0&p_book1-next != NULL)p_book2=p_book1;p_book1=p_book1-next;if(p_book1-next = NULL& strcmp(book_name,p_book1-book) !=0)/*判断输入的书是否存在*/n+;/*如果存在则找出其位置*/p_book1=head;printf(the book doesnt exist!n);if(n = 3)q=quit();if(q = 1)save_book(head,fp);return(1);printf(Please input again!n);printf(Please input the name of the book:);gets(book_name);judge_zero(book_name);elsebreak;if(p_book1 = head)head=p_book1-next;free(p_book1);elsep_book2-next=p_book1-next;free(p_book1);save_book(head,fp);printf(Delete successfully!n);back_menu();return(1);int delete_user(void)FILE * fp;struct user_data * p_user1,* p_user2,* head;char user_name20;int count,n,q,flag=0,i;head=entering_user();fp=fopen(user,w);p_user1=head;for(i=0;ibooki) != 0)flag=1;if(flag = 1)printf(The user cant be deleted,because the user doesnt give all book back!n);save_user(head,fp);back_menu();return(2);printf(Please input the name of the user: );gets(user_name);judge_zero(user_name);for(n=0;)while(strcmp(user_name,p_user1-name) != 0 & p_user1-next != NULL)p_user2=p_user1;p_user1=p_user1-next;if(p_user1-next = NULL & strcmp(user_name,p_user1-name) !=0)/*判断输入的人是否存在*/n+;/*如果存在则找出其位置*/p_user1=head;printf(the user doesnt exist!n);if(n = 3)q=quit();if(q = 1)save_user(head,fp);return(2);printf(Please input users name again: );gets(user_name);judge_zero(user_name);elsebreak;if(p_user1 = head)head=p_user1-next;free(p_user1);elsep_user2-next=p_user1-next;free(p_user1);save_user(head,fp);printf(Delete successfully!n);back_menu();return(2);int delete(void)int n;for(;)n=menu1(1,6);if(n = 0)return(0);else if(n = 1)n=delete_book();else if(n = 2)n=delete_user();int correct_book(void)FILE * fp;struct book_data * head,* p_book;chartype10,book_name30,book_new_name30,author_name30,author_new_name30,publisher_new_name50;charsubject910=Computer,English,Math,Novel,History,Politics,Biology,Geography,SCM new_public_date20,new_shorge_amount20,new_price20,;int n,i,num,count,q,flag=0,k=0;n=menu(2);if(n = 0)return(0);strcpy(type,subjectn-1);head=entering_book(type);fp=fopen(type,w);p_book=head;printf(which bookdata do you want to correct?n);printf(Please input the books name: );gets(book_name);judge_zero(book_name);for(n=0;)while(strcmp(book_name,p_book-book) != 0&p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论