图书管理系统链表课设完美版.docx
- 文档编号:106090
- 上传时间:2022-10-03
- 格式:DOCX
- 页数:18
- 大小:87.90KB
图书管理系统链表课设完美版.docx
《图书管理系统链表课设完美版.docx》由会员分享,可在线阅读,更多相关《图书管理系统链表课设完美版.docx(18页珍藏版)》请在冰豆网上搜索。
百度文库-让每个人平等地提升自我
课程设计报告
(2012--2013年度第1学期)
课程设计名称:
高级语言程序设计(C)
题目:
基于文件存储的学生大体信息管理系统
院系:
控制与运算机工程学院
班级:
创自1201
学号:
19
学生姓名:
唐骞
指导教师:
林碧英
设计周数:
一周
成绩:
日期:
2013年1月2日
17
一、课程设计的目的与要求
1.课程设计目的
掌握数据结构的分析、设计与实现的大体方式,提高程序设计能力。
2.课程设计要求
(1)同一个题目,别离采用结构体数组和单向链表完成,结构体数组和单向链表中的数据用文件存储;
(2)一个操作对应一个函数;
(3)编程语言选用C;
(4)所有操作用菜单提示,界面要求友好、操作方便;
(5)按照设定的功能,用一组数据测试,验证功能的正确性。
二、设计正文
一、课程设计题目
进行文件的链表操作,包括读取、创建、修改、删除等
二、需求分析
本系统主要实现了图书馆内管理的一般功能,包括查询、添加、删除、修改图书信息等。
所设计的系统以菜单方式工作,为用户提供清楚的利用提示,依据用户的选择来进行各类处置,图书信息包括编号、书名、作者、出版社、价钱等。
录入的图书信息用文件形式保留,并能够对其进行阅读、查询、修改、删除等大体操作。
3、概要设计
本程序包括9个函数:
①主函数main()
②初始化单链表函数LINKcreat(),LINKlinkc()
③显示操作菜单函数menu()
④显示单链表内容函数voidshow(LINKhead);
⑤插入元素函数voidadd(LINKhead);
⑥删除元素函数voiddele(LINKhead);
⑦查找元素函数intcheckn(LINKhead);
⑧保留函数voidsave(LINKhead);
⑨修改函数voidchange(LINKhead);
包括关系如下
main
save
creat
linkc
show
change
check
menu
4、详细设计
结点类型和指针类型
typedefstructbook
{
charshuhao[31];
charname[31];
charwriter[31];
charpublisher[31];
floatprice;
intremain;
}BOOK;
typedefstructlink
{
BOOKa;
structlink*next;
}NODE,*LINK;
单链表的大体操作
LINKcreat(),LINKlinkc()
voidshow(LINKhead);
voidadd(LINKhead);
voiddele(LINKhead);
intcheckn(LINKhead);
voidsave(LINKhead);
voidchange(LINKhead);
五、调试分析
一、菜单界面
二、显示
3、保留
4、修改
五、查询
一、按出版社查询
二、按书名查询
3、按作者查询
三、课程设计总结或结论
回顾这次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,能够学到很多很多的东西,同时不仅能够巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我知道了理论与实际相结合是很重要的,只有理论和知识是远远不够的,只有把所学的理论知识与实际相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立试探能力。
在设计的进程中碰到的问题,这毕竟独立做的,不免会碰到各类各样的问题,同时在设计的进程中发觉自己的不足的地方,对以前所学的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计以后,必然把以前所学过的知识从头温故。
这次课设终于顺利完成了,在设计中碰到了很多编程问题做完那个课程设计,我的自信一下子提高了,最后真心谢谢林老师的付出。
四、参考文献
[1]林碧英等.新编C语言程序设计.中国电力出版社.
[2]郑玲等.C语言程序设计.中国电力出版社.
附录(程序、测试数据等)
#include<>
#include<>
#include<>
#include<>
#include<>
typedefstructbook
{
charshuhao[31];
charname[31];
charwriter[31];
charpublisher[31];
floatprice;
intremain;
}BOOK;
typedefstructlink
{
BOOKa;
structlink*next;
}NODE,*LINK;
bookstr[30];
intmenu();
intcheckp(LINKhead);
voidsave(LINKhead);
intcheckn(LINKhead);
intcheckw(LINKhead);
voiddele(LINKhead);
voidchange(LINKhead);
voidadd(LINKhead);
voidshow(LINKhead);
intnum=0;
LINKcreat();
LINKlinkc();
voidmain()
{
intm,k;
LINKhead=NULL;
FILE*fp;
fp=fopen("","r");
if(fp==NULL)
{
printf("文件不存在,请创建\n");
head=creat();
}
else
{
head=linkc();
printf("\n请按任意键继续\n");
getch();
}
m=1;
while(m)
{
k=menu();
switch(k)
{
case1:
add(head);break;
case2:
dele(head);break;
case3:
change(head);break;
case4:
checkp(head);break;
case5:
checkn(head);break;
case6:
checkw(head);break;
case7:
save(head);break;
case8:
show(head);break;
case0:
printf("确认退出吗?
\n肯定--0,返回---1\n");
scanf("%d",&m);
if(m==0)
exit
(1);break;
}
printf("继续吗?
\n继续--1,结束--0\n");
scanf("%d",&m);
}
}
intmenu()
{
intchoice;
while
(1)
{
system("cls");
printf("1--新添图书\n");
printf("2--删除图书\n");
printf("3--修改图书\n");
printf("4--按出版社查询\n");
printf("5--按书名查询\n");
printf("6--按作者查询\n");
printf("7--保留图书信息\n");
printf("8--显示\n");
printf("0--退出\n");
printf("请选择:
");
scanf("%d",&choice);
if(choice>=0&&choice<10)break;
}
returnchoice;
}
LINKcreat()
{
intn,i,k=0,f=0;
FILE*fp;
if((fp=fopen("","wb"))==NULL)
printf("打开文件失败\n");
printf("请输入将要创建的图书的种类数");
scanf("%d",&n);
for(i=0;i { printf("请输入第%d本书的信息\n",i+1); printf("书号\n"); scanf("%s",str[i].shuhao); printf("书名\n"); scanf("%s",str[i].name); printf("作者\n"); scanf("%s",str[i].writer); printf("出版社\n"); scanf("%s",str[i].publisher); printf("单价\n"); scanf("%f",&str[i].price); printf("库存量\n"); scanf("%d",&str[i].remain); fprintf(fp,"%s%s%s%s%f%d\n",str[i].shuhao,str[i].name,str[i].writer,str[i].publisher,str[i].price,str[i].remain); } printf("录入成功\n"); fclose(fp); return(linkc()); } LINKlinkc() { intk=0; FILE*fp; LINKnewp,head,p; head=p=(LINK)malloc(sizeof(NODE)); head->next=NULL; if((fp=fopen("","rb"))==NULL) {printf("文件不存在\n");exit(0);} while(! feof(fp)) { newp=(LINK)malloc(sizeof(NODE)); fscanf(fp,"%s%s%s%s%f%d\n",newp->,newp->,newp->,newp->,&newp->,&newp->;k++; newp->next=p->next; p->next=newp; p=p->next; } printf("读取成功! \n"); fclose(fp); return(head); } voidshow(LINKhead) { printf("%7s%7s%7s%7s%7s%7s\n","书号","书
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理 系统 链表课设 完美
![提示](https://static.bdocx.com/images/bang_tan.gif)