C语言图书借阅管理系统Word下载.docx

上传人:b****3 文档编号:18278802 上传时间:2022-12-15 格式:DOCX 页数:19 大小:225.47KB
下载 相关 举报
C语言图书借阅管理系统Word下载.docx_第1页
第1页 / 共19页
C语言图书借阅管理系统Word下载.docx_第2页
第2页 / 共19页
C语言图书借阅管理系统Word下载.docx_第3页
第3页 / 共19页
C语言图书借阅管理系统Word下载.docx_第4页
第4页 / 共19页
C语言图书借阅管理系统Word下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

C语言图书借阅管理系统Word下载.docx

《C语言图书借阅管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《C语言图书借阅管理系统Word下载.docx(19页珍藏版)》请在冰豆网上搜索。

C语言图书借阅管理系统Word下载.docx

201年月日

学院教学副院长:

一、实训题目和实训任务

1.实训题目

图书借阅系统

2.实训任务

图书管理子系统,由管理员负责录入书籍(包括ISBN号、书名、作者、数量等信息),废旧图书销毁等功能;

图书借阅子系统(保存用户名、借阅的书的ISBN号、借阅日期等信息),负责图书的借阅、归还、续借、超期罚款等功能;

查询子系统,包括可以查询书库中的书、客户借阅情况等。

(可以自己发挥);

信息保存到文件中。

3.题目分析

一个学校的图书馆,其图书借阅管理系统应有如下几个功能:

1,图书管理员将图书的ISBN号,书名,书名,作者,价格等输入到系统中存储区来,以便以后使用。

而且还能修改图书的内容。

2,读者可以按照图书的ISBN号或书名,作者到系统中查找并借阅所需要的图书,每人借阅图书的数量不超过20本。

3,建立文件,将信息保存在文件中。

方法:

1,建立一个关于图书的结构体,内含ISBN号,书名,作者,出版社和价格。

2,InsertDoc函数,负责新书信息的插入。

3,voidsort_maopao函数,用冒泡法将图书的ISBN号以由小到大的顺序进行排列。

4,voidDeleteDoc函数,将废旧图书信息进行删除。

5,voidPrint_Book_Doc函数,输出图书的信息,方便读者选书。

6,voidsearch_book函数,进行图书的查询。

7,voidinfo_change函数,将图书信息进行修改。

8,主函数,用switch-case结构进行函数的调用。

4.开发工具和环境

开发工具:

VisualC++6.0,CodeBlock10.05,等

环境:

Windows7

二、软件设计

1.关键技术分析

设计一个图书借阅系统,功能包括:

图书借阅子系统(保存用户名、借阅的书的ISBN号、借阅日期等信息),负责图书的借阅、归还、等功能;

查询子系统,包括可以查询书库中的书,信息保存到文件中。

2.软件模块设计

图2-2-1

3.软件界面设计

图2-3-1

三、软件测试及运行结果

1.测试方案

选择1,输入01大学英语李梦华上海外语38

02大学物理许嵩宁科学出版社51

选择2,输出图3-2-1

选择7,输出图3-2-2

2.测试结结果

图3-2-1

图3-2-2

四、收获和体会

1.实习收获

在编程实践中,我才知道自己基础知识的不足,通过一段时间的努力学习,我的基础知识更加牢固,尤其是后面指针,结构体,链表,文件的知识了解的更加深入。

其次是知识的运用,以前学到的知识都是片面的了解,一到编程序时就无从下手,现在能熟练的应用各种知识,使知识得到应用。

最后是编程的技巧,从整体构型到各个函数的应用都有了很大的进步。

2.实习体会

通过一段时间的编程实践,使我c语言的知识了解的更加深刻,知识面更加宽广。

同时,在编程实践中遇到了很多困难,明显的了解到自己知识运用能力的不足,通过查书和与同学交流,使我取得了很大的进步。

在编程过程中,与同学的交流使我获得了很大的进步,老师的指导更是使我获益匪浅,一些难懂的知识经老师点拨瞬间变得豁然开朗。

以前看到能力强的同学编数百行的程序就吓住了自己,总觉得自己不行,但经过努力,当程序运行出来时才觉得,原来编程并不是很难,这极大地增加了自己的自信心,为以后的学习和工作打下了良好地基础,我认为这才是我最重要的收获。

五、源代码清单

#include<

stdio.h>

math.h>

string.h>

stdlib.h>

structbooks_list

{

charwriter[20];

/*作者名*/

chartitle[20];

charISBN[20];

/*书名*/

charpublishinghouse[20];

/*出版单位*/

intprice,borrowed;

/*价格*/

structbooks_list*next;

/*链表的指针域*/

};

structbooks_list*Create_Books_Doc();

/*新建链表*/

voidInsertDoc(structbooks_list*head);

/*插入*/

voidsort_maopao(structbooks_list*head);

//排序

voidDeleteDoc(structbooks_list*head,intnum);

/*删除*/

voidPrint_Book_Doc(structbooks_list*head);

/*浏览*/

voidsearch_book(structbooks_list*head);

/*查询*/

voidinfo_change(structbooks_list*head);

/*修改*/

voidsave(structbooks_list*head);

/*保存数据至文件*/

/*新建链表头节点*/

structbooks_list*Create_Books_Doc()

structbooks_list*head;

head=(structbooks_list*)malloc(sizeof(structbooks_list));

/*分配头节点空间*/

head->

next=NULL;

/*头节点指针域初始化,定为空*/

returnhead;

}

voidsave(structbooks_list*head)

structbooks_list*p;

FILE*fp;

p=head;

fp=fopen("

data.txt"

"

w+"

);

/*以写方式新建并打开data.txt文件*/

fprintf(fp,"

--------编号-------书名---------------作者----------出版社-----------价格\n"

/*指针从头节点开始移动,遍历至尾结点,依次输出图书信息*/

while(p->

next!

=NULL)

{

p=p->

next;

%-6.6s%-15.10s%-10.10s%-10.10s%-10.10d\n"

p->

ISBN,p->

title,p->

writer,p->

publishinghouse,p->

price);

}

\n"

fclose(fp);

printf("

已将图书数据保存到data.txt文件\n"

voidsort_maopao(structbooks_list*head)

structbooks_list*tail,*p,*q,*p1,*t;

//p1等于headt等于headq保存p的next节点

p1=(structbooks_list*)malloc(sizeof(structbooks_list));

for(t=head->

t!

=NULL;

t=t->

next)

for(p=head->

next,p1=head;

p->

p=p->

next,p1=p1->

if(strcmp(p->

next->

ISBN)>

0)

{

q=p->

tail=p->

tail->

p->

next=q;

p1->

next=tail;

next=p;

p=p1;

}

save(head);

//保存文件

/*插入*/

voidInsertDoc(structbooks_list*head)

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

structbooks_list*s,*p;

charflag='

Y'

;

/*定义flag,方便用户选择重复输入*/

/*遍历到尾结点,p指向尾结点*/

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

while(flag=='

||flag=='

y'

system("

cls"

borrowed=0;

s=(structbooks_list*)malloc(sizeof(structbooks_list));

\n请输入图书编号:

"

fflush(stdin);

scanf("

%s"

s->

ISBN);

\n请输入图书书名:

title);

\n请输入图书作者名:

writer);

\n请输入图书出版社:

publishinghouse);

\n请输入图书价格:

%d"

&

s->

next=s;

/*将新增加的节点添加进链表*/

p=s;

/*p指向尾节点,向后移*/

s->

━━━━添加成功!

━━━━"

\n继续添加(Y/N):

%c"

flag);

if(flag=='

N'

n'

{break;

elseif(flag=='

{continue;

return;

/*查询操作*/

voidsearch_book(structbooks_list*head)

structbooks_list*p;

chartemp[20];

if(head==NULL||head->

next==NULL)/*判断数据库是否为空*/

━━━━图书库为空!

━━━━\n"

else

请输入您要查找的书名:

"

temp);

/*指针从头节点开始移动,遍历至尾结点,查找书目信息*/

title,temp)==0)

\n图书已找到!

编号:

%s\t\n"

书名:

作者名:

出版单位:

价格:

%.2d\t\n"

if(p->

next==NULL)

\n查询完毕!

/*浏览操作*/

voidPrint_Book_Doc(structbooks_list*head)

\n━━━━没有图书记录!

━━━━\n\n"

\n\n\n\t\t编号书名作者出版单位价格\n"

\t\t%-7.6s%-13.10s%-10.10s%-10.10s%d\n"

/*修改操作*/

voidinfo_change(structbooks_list*head)

intpanduan=0;

/*此变量用于判断是否找到书目*/

请输入要修改的书名:

panduan=1;

if(panduan==0)

voidbook_borrow(structbooks_list*head)

请输入要借的书名:

if((strcmp(p->

title,temp)==0)&

&

(p->

borrowed==0))

borrowed=1;

图书已经成功借出\n"

\n━━━━没有要借阅的图书!

/*删除操作*/

voidDeleteDoc(structbooks_list*head)

structbooks_list*s,*p;

/*s为中间变量,p为遍历时使用的指针*/

intpanduan;

/*此变量用于判断是否找到了书目*/

panduan=0;

p=s=head;

[请输入您要删除的书名]:

/*遍历到尾结点*/

while(p!

panduan++;

break;

if(panduan==1)

for(;

=p;

)/*找到所需删除卡号结点的上一个结点*/

s=s->

next=p->

/*将后一节点地址赋值给前一节点的指针域*/

free(p);

\n━━━━删除成功!

━━━━\n"

else/*未找到相应书目*/

您输入的书目不存在,请确认后输入!

intmain(void)

{

intchoice;

head=NULL;

do{

\n"

--------------------图书管理系统-------------------\n\n"

[1]图书信息录入\n\n"

[2]图书信息浏览\n\n"

[3]图书信息查询\n\n"

[4]图书信息修改\n\n"

[5]图书信息删除\n\n"

[6]图书排序\n\n"

[7]图书借阅\n\n"

[0]退出系统\n\n"

请选择:

choice);

switch(choice)

case1:

if(head==NULL)

head=Create_Books_Doc();

InsertDoc(head);

case2:

Print_Book_Doc(head);

case3:

search_book(head);

case4:

info_change(head);

case5:

DeleteDoc(head);

case6:

sort_maopao(head);

case7:

book_borrow(head);

break;

case0:

━━━━━━━━感谢使用图书管理系统━━━━━━━━\n"

default:

━━━━输入错误,请重新输入!

}while(choice!

=0);

return0;

}

参考文献

[1]c语言程序设计,马秀丽,李筠著。

清华大学出版社.2008.1

[2]c程序设计(第三版),谭浩强著,清华大学出版社.2005.7

[3]面向对象程序设计(c++语言),李爱华,程磊著,清华大学出版社.2010,2

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1