c语言图书管理系统课程设计报告Word文档下载推荐.docx

上传人:b****6 文档编号:17216000 上传时间:2022-11-29 格式:DOCX 页数:39 大小:405.34KB
下载 相关 举报
c语言图书管理系统课程设计报告Word文档下载推荐.docx_第1页
第1页 / 共39页
c语言图书管理系统课程设计报告Word文档下载推荐.docx_第2页
第2页 / 共39页
c语言图书管理系统课程设计报告Word文档下载推荐.docx_第3页
第3页 / 共39页
c语言图书管理系统课程设计报告Word文档下载推荐.docx_第4页
第4页 / 共39页
c语言图书管理系统课程设计报告Word文档下载推荐.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

c语言图书管理系统课程设计报告Word文档下载推荐.docx

《c语言图书管理系统课程设计报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c语言图书管理系统课程设计报告Word文档下载推荐.docx(39页珍藏版)》请在冰豆网上搜索。

c语言图书管理系统课程设计报告Word文档下载推荐.docx

(3)Create_Books_Doc();

这是一个指针函数,它主要实现了链表的创建,它返回的时一个单向链表的头。

其他函数调用时只需调用它返回的头即可。

Clear();

此为清屏操作,在运行中可以随时将屏幕清空。

(4)Print_Book_Doc();

这个函数为链表的输出函数,把链表的头传给函数后,可以表格的形式输出整个链表的所有信息。

(5)save();

这个函数为保存信息到文件的函数,使用时将链表的头传给函数,函数可将整个链表的所有信息存入到磁盘文件中。

并覆盖掉源文件,以便以后调用。

Read()这个函数为读取文件的函数,将文件中的数据读入链表中。

(7)search_book1();

search_book2();

search_book3();

search_book4();

search_book5();

这五个函数为查询图书信息函数,它们分别按编号、书名、作者、借书人姓名、借书人学号进行查询。

查询到信息后返回信息所在节点,查询不到则返回空指针。

(8)InsertDoc();

Sorting_order1();

Sorting_order2();

DeleteDoc();

info_change();

这四个函数为功能函数,InsertDoc();

添加图书信息、Sorting_order1();

将图书按编号排序、Sorting_order2();

将图书按价格排序、DeleteDoc();

删除图书信息、info_change();

修改图书信息。

调用时将链表头指针传递给函数,函数返回经过功能操作后的头指针。

3.结构体系设计:

以下为部分流程图:

图书管理系统主界面流程图

退出系统登录

学生登录

管理员登录

清屏操作

管理员版图书管理系统流程图

图书信息排序

图书查询系统主界面流程图

排序页面

排序系统

退出排序

按照图书编号排序

按照图书价格排序

5.设计过程中的想法与程序中的不足:

总的来说这个程序大致实现了题目的要求,但是这套程序仍然存在着很多的问题与不足。

比如,程序中主函数写的有点繁琐,有太多的嵌套,不是那么井然有序,条理清晰,程序注释也不是很完善,对信息处理功能还有些不足之处,提示信息不明确。

还有就是没能做到模糊查询。

这个系统主要是参照课本手机通讯录模版编写的,同时也得到了老师和同学的一些帮助。

我在做系统的过程中也遇到了很多问题,有的是知识不足,有的是考虑不够周全。

事实证明,只靠自己的知识面还是很窄,独立处理问题能力不是很强,以后还要加强对c语言的学习。

我认为对于C语言编写的程序来说,使用方法大致都是一样的,所以如果要改进的话,就是要改进一些算法,尽量把界面编写清楚,提示信息全面,方便易用。

三、调试与测试:

上机操作(部分截图)

系统主界面(选择数字进入,退出系统)

选择1输入密码进入管理员版系统,然后出现功能菜单;

选择1进入录入系统,录入后浏览;

选择8进行清屏;

由于版面原因,其他操作页面可以上机运行进行操作,在此就不再一一列出。

四、小节:

在这一个星期的实践中,通过编写这个图书管理系统,我体会到了c语言学习的实用性。

将理论和实践结合在一起,用先进的计算机工具方便人们的生活。

C语言程序的编写首先要从大局考虑,把自己编写整个程序的思想都写在草稿上,这样有助于自己编写程序,在编写时要完善注释,方便其他人理解程序。

编写的程序从理论上来说并没有错,但一上机就问题不断。

甚至有些课本上的知识照搬不变,也不能得到正确的结果。

有时一个程序改了一遍又一遍,但就是不能成功,编程显得枯燥乏味,看似简单的程序题,在调试时却屡屡出错。

经反复的修改后,结果正确了,这时所有的乏味都显得那么无力,一切都是值得的。

我认为,开发一套系统,最重要的是细心,并且思考要全面,结合实际,充分考虑到客户的需求和现实意义。

不管什么系统,只用运用到实际应用中,才具有现实意义。

所以c语言程序的实用性很强,我们以后还要更加努力认真地学习编程语言。

附录:

源代码:

#include<

stdio.h>

math.h>

string.h>

stdlib.h>

structbooks_list{

charauthor[20];

/*作者名*/

charbookname[20];

/*书名*/

charpublisher[20];

/*出版单位*/

charpbtime[15];

/*出版时间*/

charbooknum[10];

/*图书编号*/

floatprice;

/*价格*/

charlendername[20];

/*借书人姓名*/

charlendersex[10];

/*借书人性别*/

charlendernum[20];

/*借书人学号*/

structbooks_list*next;

/*链表的指针域*/

};

/*清屏函数*/

voidClear()

{

system("

cls"

);

}

/*保存数据至文件*/

voidsave(structbooks_list*head)

{

structbooks_list*p;

FILE*fp;

p=head;

fp=fopen("

f1.txt"

"

w+"

fprintf(fp,"

%20s%20s%20s%20s%20s%20f%20s%20s%20s"

p->

booknum,p->

bookname,p->

author,p->

publisher,p->

pbtime,p->

price,p->

lendername,p->

lendersex,p->

lendernum);

while(p->

next!

=NULL){

p=p->

next;

}

fclose(fp);

printf("

已将数据保存到f1.txt文件\n"

/*插入*/

structbooks_list*InsertDoc(structbooks_list*head,structbooks_list*book)

chara;

structbooks_list*ptr,*p;

ptr=book;

if(head==NULL){

head=ptr;

head->

next=NULL;

else{

=NULL)

p=p->

p->

next=ptr;

ptr->

是否保存插入的图书信息?

(Y/N)"

getchar();

scanf("

%c"

&

a);

if(a=='

Y'

||a=='

y'

save(head);

else

\n未保存插入后数据!

\n\n"

returnhead;

/*新建链表头节点*/

structbooks_list*Create_Books_Doc()

structbooks_list*head,*p;

intsize=sizeof(structbooks_list);

head=NULL;

charflag='

;

while(flag=='

||flag=='

){

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

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

here0:

\n请输入图书编号:

"

%s"

booknum);

\n请输入图书书名:

bookname);

\n请输入图书作者名:

author);

\n请输入图书出版社:

publisher);

\n请输入图书出版时间:

pbtime);

\n请输入图书价格:

if(scanf("

%f"

p->

price)!

=1){

价格输入有误,请重新输入!

gotohere0;

\n请输入借书人姓名:

lendername);

\n请输入借书人性别:

lendersex);

\n请输入借书人学号:

\n"

head=InsertDoc(head,p);

━━━━添加成功!

━━━━"

\n继续添加(输入‘Y’或‘y’继续,否则结束)?

flag);

/*修改操作*/

voidinfo_change(structbooks_list*head)

structbooks_list*p;

intpanduan=0;

chartemp[20],a;

if(head==NULL)

━━━━图书库为空!

━━━━\n"

请输入要修改图书的书名:

temp);

while(p!

=NULL){

if(strcmp(p->

bookname,temp)==0){

\n请输入修改后的图书编号:

\n请输入修改后的图书书名:

\n请输入修改后的图书作者名:

\n请输入修改后的图书出版社:

\n请输入修改后的图书出版时间:

\n请输入修改后的图书价格:

price);

\n请输入修改后的借书人姓名:

\n请输入修改后的借书人性别:

\n请输入修改后的借书人学号:

getchar();

panduan=1;

if(panduan==0){

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

━━━━\n\n"

是否保存修改后的图书信息?

\n未保存修改后数据!

return;

/*按照图书号查询*/

voidsearch_book1(structbooks_list*head)

inta=0;

chartemp[20];

请输入您要查找图书的编号:

"

booknum,temp)==0){

\n图书已找到!

┏━━━┳━━━━━┳━━━━━┳━━━━━┳━━━━━━┳━━━━┳━━━━━┳━━━━━┳━━━━━━┓\n"

┃图书号┃书名┃作者┃出版单位┃出版时间┃价格┃借书人姓名┃借书人性别┃借书人学号┃\n"

┣━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━━╋━━━━╋━━━━━╋━━━━━╋━━━━━━┫\n"

┃%-6.6s┃%-10.10s┃%-10.10s┃%-10.10s┃%-12.12s┃%-8.2f┃%-10.11s┃%-10.10s┃%-12.12s┃\n"

┗━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━━┻━━━━┻━━━━━┻━━━━━┻━━━━━━┛\n"

a++;

if(p==NULL&

&

a==0)

\n查询完毕,未找到所要查询的信息!

}

/*按照图书名查询*/

voidsearch_book2(structbooks_list*head)

请输入您要查找书本的名称:

/*按照图书作者查询*/

voidsearch_book3(structbooks_list*head)

请输入您要查找图书的作者:

author,temp)==0){

/*按照借书人姓名查询*/

voidsearch_book4(structbooks_list*head)

请输入您要查找的图书借书人姓名:

lendername,temp)==0){

pri

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

当前位置:首页 > 外语学习 > 其它语言学习

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

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