《C语言程序》课程设计方案-图书管理系统_第1页
《C语言程序》课程设计方案-图书管理系统_第2页
《C语言程序》课程设计方案-图书管理系统_第3页
《C语言程序》课程设计方案-图书管理系统_第4页
《C语言程序》课程设计方案-图书管理系统_第5页
已阅读5页,还剩6页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

PAGEPAGE7《C语言程序》课程设计报告书设计题目:图书管理系统专业:软件工程班级:3班同学姓名:张欣然ﻩ学号:20105837指导老师:陈莉娜设计题目图书管理系统主要包括管理图书的库存信息、每一本书的借阅信息以及每一个人的借书信息。每一种图书的库存信息包括编号、书名、作者、出版社、出版日期、金额、类别、总入库数量、当前库存量、已借出本数等。每一本被借阅的书都包括如下信息:编号、书名、金额、借书证号、借书日期、到期日期、罚款金额等.每一个人的借书信息包括借书证号、姓名、班级、学号等。系统功能包括以下方面:A、借阅资料管理要求把书籍、期刊、报刊分类管理,这样的话操作会更加灵敏和便利,可以随时对其相关资料进行添加、删除、修改、查询等操作。B、借阅管理

(1)借出操作

(2)还书操作

(3)续借处理提示:以上处理需要相互协作以及赔、罚款金额的编辑等操作完成图书借还业务的各种登记。例如:读者还书时不仅更新图书的库存信息,还应该自动计算该书应罚款金额。并显示该读者全部至当日内到期未还书信息。C、读者管理

读者等级:对借阅读者进行分类处理,例如可分为老师和同学两类。并定义每类读者的可借书数量和相关的借阅时间等信息。读者管理:对读者信息可以录入,并且可对读者进行挂失或注销、查询等服务的作业。D、统计分析

随时可以进行统计分析,以便准时了解当前的借阅情况和相关的资料状态,统计分析包括借阅排行榜、资料状态统计和借阅统计、显示全部至当日内到期未还书信息等功能分析。E系统参数设置:可以设置相关的罚款金额,最多借阅天数等系统服务器参数。依据题目分析总体作品分为6个模块图书数据借书人信息借书模块还书模块图书管理查询模块第一模块:书号,书名,作者,出版时间,价格,册数,页数。其次模块:姓名,单位,所借书目,借阅时间第三模块:输入书名,编号,借书证第四模块:登记借书号,还书操作,罚款处理第五模块:对书库中的书进行管理,新书入库,旧书删除,书库查询第六模块:书的查询。数据测试源代码汉字菜单的编写可参照以下代码:#include”stdio。h"。main(){charc;inti;do{clrscr();for(i=0;i〈80;i++)printf("*");printf(”\t1:addbooks\n");printf("\t2:listbooks\n”);printf("\t3:sreachbooks\n”);printf("\t4:borrowbooks\n");printf("\t5:returnbooks\n");printf(“\t6:exit\n”)printf("\t请选择输入选项[1\\2\\3\\4\\5\\6]:\n”);do{c=getchar();}while(c!=’1'&&c!=’2'&&c!=’3'&&c!='4’&&c!='5'&&!=’6’);getchar();switch(c){case'1':input();break;case'2':del();break;case'3':find();break;case’4':arrange();break;case‘5’:right();break;case’6':exit(0);}printf(”按任意键返回主菜单:\n");getchar();clrscr();}while(1);}#include<stdio。h>ﻫ#include〈stdlib。h>ﻫ#include<string.h>ﻫ

#defineBORROWED

1ﻫ#defineNOBORROW

0ﻫﻫ/*定义图书结构*/

structBook

{ﻫ

int

_id;

//编号,唯一ﻫ

char_name[32];

//图书的名称,不唯一ﻫ

int

_type;

//图书的类型,不唯一ﻫ

int

_status;

//图书的状态,借出/没有借出ﻫ

int

_count;

//图书借出的次数ﻫ

structBook*_next;//下一本书ﻫ

structBook*_prev;//上一本书ﻫ};ﻫﻫ/*定义图书类型*/ﻫtypedefstructBookBook;

ﻫ/*操作的名目提示*/ﻫcharbook_menu[][32]=ﻫ{ﻫ

"addbooks",

"listbooks",ﻫ

"searchbooks",

”borrowbooks”,

”returnbooks”,

"exit”,ﻫ

"”,ﻫ};

/*操作的名目提示1*/ﻫcharbook_menu_sub[][32]=

{ﻫ

"searchbooksbyname",ﻫ

”searchbooksbytype",ﻫ

"",

};ﻫﻫ/*添加图书类型,用户信息显示*/ﻫcharbook_types[][32]=ﻫ{ﻫ

"type0",ﻫ

”type1",ﻫ

”type2",ﻫ

"",ﻫ};ﻫ/*添加图书状态,用户信息显示*/

charbook_status[][32]=ﻫ{ﻫ

”noborrow",ﻫ

"borrowed”,

"",ﻫ};ﻫﻫ/*增加图书,id自动排号*/

intadd_books(Book*head,Book*book_for_add)ﻫ{ﻫ

Book*p=head;ﻫ

if(!p)ﻫ

return-1;ﻫ

while(p->_next)ﻫ

{ﻫ

p=p->_next;ﻫ

};ﻫ

p—〉_next=book_for_add;ﻫ

book_for_add—>_id=p—〉_id+1;

book_for_add—>_prev=p;ﻫ

book_for_add->_next=NULL;ﻫ

book_for_add—〉_count=0;ﻫ

book_for_add->_status=0;ﻫ

return0;ﻫ};ﻫﻫ/*建立图书管理链表*/

Book*create_list(Book*book_head)ﻫ{

if(book_head)ﻫ

{ﻫ

book_head->_prev=book_head;ﻫ

book_head-〉_next=NULL;

book_head-〉_id=1;ﻫ

book_head-〉_count=0;ﻫ

book_head->_status=0;ﻫ

}ﻫ

returnbook_head;ﻫ}ﻫ

/*释放链表*/ﻫvoidfree_list(Book*book_head)

{ﻫ

Book*p,*p1;ﻫ

p=book_head;

while(p)

{ﻫ

p1=p->_next;ﻫ

free(p);

p=p1;ﻫ

}

}ﻫ

/*打印图书信息*/ﻫvoidprint_book(Book*book)

printf(”id:%d,name:%s,type:%s,status:%s,times:%d\n”,ﻫ

book-〉_id,book->_name,book_types[book—>_type],

book_status[book-〉_status],book—〉_count);ﻫ}ﻫﻫﻫ/*列出全部登记的图书*/

voidlist_books(Book*book_head)ﻫ{ﻫ

Book*p=book_head;ﻫ

while(p)ﻫ

print_book(p);ﻫ

p=p—>_next;ﻫ

}ﻫ}ﻫﻫ/*借书,返回该书的指针,否则就返回NULL,可能不存在图书,或者已经被借走了*/

Book*borrow_books(Book*book_head,intid)ﻫ{ﻫ

Book*p=book_head;ﻫ

while(p)ﻫ

{ﻫ

if(p->_id==id)ﻫ

break;

p=p->_next;ﻫ

}ﻫﻫ

if(!p)/*不存在*/ﻫ

returnNULL;ﻫﻫ

if(p—>_status!=0)/*已经被借走*/ﻫ

returnNULL;ﻫﻫ

p->_status=1;/*借书登记*/ﻫ

p->_count++;

/*被借阅次数+1*/ﻫ

returnp;

}ﻫﻫ/*查找书名称,返回查找到的数量,书名可能有重复的,一本书可能也有很多本,但是ID却是唯一的*/ﻫintsearch_books_by_name(Book*book_head,char*name)ﻫ{ﻫ

intcount=0;

Book*p=book_head;ﻫ

while(p)ﻫ

{ﻫ

if(strcmp(p->_name,name)==0)ﻫ

{ﻫ

print_book(p);

++count;ﻫ

}ﻫ

p=p->_next;ﻫ

}

returncount;

}

ﻫ/*查找书类型,返回查找到的数量,一个类型会有很多书*/

intsearch_books_by_type(Book*book_head,inttype)ﻫ{ﻫ

intcount=0;

Book*p=book_head;ﻫ

while(p)

{

if(p—〉_type==type)ﻫ

{ﻫ

print_book(p);ﻫ

++count;

}ﻫ

p=p—>_next;ﻫ

}ﻫ

returncount;ﻫ}

/*还书,正常归还就返回该书的指针,否则就返回NULL*/ﻫBook*return_books(Book*book_head,intid)

{ﻫ

Book*p=book_head;ﻫ

while(p)ﻫ

{ﻫ

if(p-〉_id==id&&p—>_status!=0)ﻫ

{ﻫ

p—>_status=0;/*还书登记*/ﻫ

break;ﻫ

}ﻫ

p=p->_next;ﻫ

}ﻫ

returnp;

}ﻫﻫ/*打印操作选项*/ﻫ

voidprint_menu(charmenus[][32])ﻫ{ﻫ

intno=0;ﻫ

printf(”\nPLEASESELECTIDLIKE1or2.。\n”);ﻫ

while(strlen(menus[no]))ﻫ

{

printf(”%d

\t%s\n",no+1,menus[no]);

++no;ﻫ

}ﻫ

printf(”OPTION(");ﻫ

while(no)ﻫ

{ﻫ

printf("/%d”,no-—);ﻫ

printf("):");ﻫ}

/*主函数*/ﻫintmain(void)ﻫ{ﻫ

charkey=0;ﻫ

charss[128];ﻫ

intloop=1;ﻫ

Bookfirst_book,*pBooks,*pTmp;ﻫ

strcpy(first_book。_name,"nihao");ﻫ

first_book._type=0;ﻫ

pBooks=create_list(&first_book);ﻫ

while(loop)ﻫ

{

print_menu(book_menu);ﻫ

gets(ss);ﻫ

key=ss[0]—48;ﻫ

if(key<0||key>6)

printf("Errorinput!\n");ﻫ

elseﻫ

printf(”INPUT:%d\n",key);ﻫ

switch(key)

{ﻫ

case1://addbooksﻫ

pTmp=(Book*)malloc(sizeof(Book));ﻫ

if(pTmp)ﻫ

{ﻫ

printf(”Add_Bookinputname:");ﻫ

gets(ss);

strncpy(pTmp—>_name,ss,31);ﻫ

print_menu(book_types);ﻫ

gets(ss);

key=ss[0]-48;ﻫ

if(key〈=0||key>(sizeof(book_types)/32))ﻫ

key=1;ﻫ

pTmp->_type=key—1;

add_books(pBooks,pTmp);ﻫ

}ﻫ

break;ﻫ

case2://listbooksﻫ

list_books(pBooks);

break;ﻫ

case3://searchbooks

print_menu(book_menu_sub);ﻫ

gets(ss);ﻫ

key=ss[0]-48;ﻫ

printf("INPUT:%d\n",key);ﻫ

switch(key)

{ﻫ

case1://searchbooksbynameﻫ

printf("inputbookname:”);ﻫ

gets(ss);ﻫ

key=search_books_by_name(pBooks,ss);ﻫ

if(key==0)ﻫ

printf("nofound!\n”);ﻫ

case2://searchbooksbytypeﻫ

print_menu(book_types);

gets(ss);ﻫ

key=ss[0]-48;ﻫ

key=search_books_by_type(pBooks,key-1);ﻫ

if(key==0)ﻫ

printf("nofound!\n”);ﻫ

default:ﻫ

break;

break;ﻫ

case4://borrowbooks

printf("Borrowbooks,inputbookid:”);ﻫ

gets(ss);ﻫ

key=atoi(ss);ﻫ

pTmp=borrow_books(pBooks,key);ﻫ

if(!pTm

温馨提示

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

评论

0/150

提交评论