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

上传人:b****4 文档编号:24324291 上传时间:2023-05-26 格式:DOCX 页数:13 大小:95.96KB
下载 相关 举报
图书管理系统C语言课程设计.docx_第1页
第1页 / 共13页
图书管理系统C语言课程设计.docx_第2页
第2页 / 共13页
图书管理系统C语言课程设计.docx_第3页
第3页 / 共13页
图书管理系统C语言课程设计.docx_第4页
第4页 / 共13页
图书管理系统C语言课程设计.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

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

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

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

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

目录

1、设计目的................................

2、设计内容................................

3、流程图..................................

4、程序代码................................

5、执行结果................................

6、总结与体会..............................

7、参考文献................................

《中级程序设计项目实践》实训报告

一、设计目的

1.加深对课堂讲授内容的理解和实践

2.熟悉程序开发环境与学习计算机系统的操作方法

3.学习上机调试程序

4.增强团队合作精神

二、设计内容

试设计一图书信息管理系统,使之能提供以下功能:

其中图书信息包括:

登陆号、书名、作者名、出版单位、出版时间、分类号、价格等。

1、图书信息录入功能(图书信息用文件保存)

2、查询:

按书名查询

3、图书信息浏览功能

4、图书信息的修改

5、图书信息的删除

6、循环和退出系统

三、总体设计

1、程序总流程图

2、信息录入流程图

3、信息查询流程图

四、程序代码

1、数据结构和基本变量

#include/*引用输入输出头文件*/

#include/*引用数学函数*/

#include/*引用字符串函数*/

#include

structbooks_list/*定义一个名为books_list的结构体,这个结构体定义了图书的基本信息*/

{

charauthor[20];/*作者名*/

charbookname[20];/*书名*/

charpublisher[20];/*出版单位*/

charpbtime[15];/*出版时间*/

charloginnum[10];/*登陆号*/

floatprice;/*价格*/

charclassfy[10];/*分类号*/

structbooks_list*next;/*链表的指针域*/

};

structbooks_list*Create_Books_Doc();/*新建链表*/

voidInsertDoc(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);/*保存数据至文件*/

2、信息录入模块(用文件保存)

/*新建链表头节点*/

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");/*向文件输出表格*/

fprintf(fp,"┃登录号┃书名┃作者┃出版单位┃出版时间┃分类号┃价格┃\n");

fprintf(fp,"┣━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━━╋━━━╋━━━━┫\n");

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

while(p->next!

=NULL)

{

p=p->next;

fprintf(fp,"┃%-6.6s┃%-10.10s┃%-10.10s┃%-10.10s┃%-12.12s┃%-6.6s┃%.2f┃\n",p->loginnum,p->bookname,p->author,p->publisher,p->pbtime,p->classfy,p->price);

}

fprintf(fp,"┗━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━━┻━━━┻━━━━┛\n");

fclose(fp);

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

}

/*插入*/

voidInsertDoc(structbooks_list*head)

{

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

charflag='Y';/*定义flag,方便用户选择重复输入*/

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

while(p->next!

=NULL)

{

p=p->next;

}

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

while(flag=='Y'||flag=='y')

{

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

printf("\n请输入图书登陆号:

");

fflush(stdin);

scanf("%s",s->loginnum);

printf("\n请输入图书书名:

");

fflush(stdin);

scanf("%s",s->bookname);

printf("\n请输入图书作者名:

");

fflush(stdin);

scanf("%s",s->author);

printf("\n请输入图书出版社:

");

fflush(stdin);

scanf("%s",s->publisher);

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

");

fflush(stdin);

scanf("%s",s->pbtime);

printf("\n请输入图书分类号:

");

fflush(stdin);

scanf("%s",s->classfy);

printf("\n请输入图书价格:

");

fflush(stdin);

scanf("%f",&s->price);

printf("\n");

p->next=s;/*将新增加的节点添加进链表*/

p=s;/*p指向尾节点,向后移*/

s->next=NULL;

printf("添加成功");

printf("\n继续添加?

(Y/N):

");

fflush(stdin);

scanf("%c",&flag);

printf("\n");

if(flag=='N'||flag=='n')

{break;}

elseif(flag=='Y'||flag=='y')

{continue;}

}

save(head);/*保存数据至文件*/

return;

}

3、信息查询模块

/*查询操作*/

voidsearch_book(structbooks_list*head)

{

structbooks_list*p;

chartemp[20];

p=head;

if(head==NULL||head->next==NULL)/*判断数据库是否为空*/

{

printf("图书库为空!

\n");

}

else

{

printf("请输入您要查找的书名:

");

fflush(stdin);

scanf("%s",temp);

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

while(p->next!

=NULL)

{

p=p->next;

if(strcmp(p->bookname,temp)==0)

{

printf("\n以下为您要查找的图书信息:

\n");

printf("\n");

printf("登录号:

%s\t\n",p->loginnum);

printf("书名:

%s\t\n",p->bookname);

printf("作者名:

%s\t\n",p->author);

printf("出版单位:

%s\t\n",p->publisher);

printf("出版时间:

%s\t\n",p->pbtime);

printf("分类号:

%s\t\n",p->classfy);

printf("价格:

%.2f\t\n",p->price);

}

if(p->next==NULL)

{

printf("\n查询完毕!

\n");

}

}

}

return;

}

五、执行结果

1、图书管理系统主菜单

2、图书信息录入结果

3、图书信息查询结果

六、总结与体会

在这个星期里,我们在专业老师的带领下进行了c语言程序实践的设计。

上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它,所以一开始我们感到这个课程设计很难,不知道要怎么去实现它。

但在老师的帮助与指导下,我们三个人一组,通过上网查资料和对课本的理解,慢慢的对程序设计产生了兴趣,不再那么害怕它。

在具体的上机实践中我们遇到了很多问题,比如:

程序错了运行不了,流程图不会画等等。

但我们都通过问老师和同学的办法把它解决了。

在这期间,我们三人各人负责各人的那个方面共同努力,培养了团队的合作精神。

通过这次的程序设计,给我最深的感觉是C语言真的是一门很实用的学科,它贯穿于我们的学习和生活之中,我们一定要把它学好。

另外,任何事情都存在表象,我们不要被它的表面所欺骗。

即使它看起来真的很难,但只要去做了,去努力了,就算不一定会成功也一定会有收获的,我们要相信我们自己。

在学习和生活中,我们还要注重团队的合作,团结就是力量,几个人的力量一定会比一个人的力量大得多。

相信只要我们去努力不放弃,我们就不会被社会所抛弃!

七、参考文献

1、谭浩强主编,《C语言程序设计》第三版,清华大学出版社出版,曾被评为电子工业部优秀教材一等奖。

2、谭浩强主编,《C语言程序设计题解与上机指导》第三版,清华大学出版社出版。

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

当前位置:首页 > 解决方案 > 学习计划

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

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