图书管理系统报告.docx
- 文档编号:14611134
- 上传时间:2023-06-25
- 格式:DOCX
- 页数:42
- 大小:160.93KB
图书管理系统报告.docx
《图书管理系统报告.docx》由会员分享,可在线阅读,更多相关《图书管理系统报告.docx(42页珍藏版)》请在冰点文库上搜索。
图书管理系统报告
课程设计
课程设计名称:
C语言程序设计
专业班级:
测控技术与仪器*1班
学生姓名:
**
学号:
********
指导教师:
***
课程设计时间:
*******号
测控技术与仪器专业课程设计任务书
学生姓名
**
专业班级
测控1班
学号
095*****16
题目
图书管理系统
课题性质
其它
课题来源
自拟*课题
指导教师
同组姓名
无
主要内容
用《C程序设计》中的链表作数据结构,结合C语言基本知识。
编写一个超市管理系统。
以把所学数据结构知识应用到实际软件开发中去。
本系统应完成一下几方面的功能:
1) 录入学员信息
2)显示学员信息
3) 学号排序信息
4添加学员信息;
5)删除学员信息
6) 应用程序退出
参考文献
《C程序设计(第三版)》
审查意见
指导教师签字:
教研室主任签字:
年月日
2概要设计
(1)数据结构
依据给定的物品信息和数据形式,数组必须用结构体实现。
结构类型的层次结构:
structbook{
charbook_name[30];
intbianhao;
doubleprice;
charauthor[20];
charstate[20];
charname[20];
charsex[10];
intxuehao;
structbook*book_next;
(2)模块划分
依据程序的结构反和功能,遵照“自顶而下”的原则,描述该程序的层次结构图一显示了该程序的层次结构,共10层:
如下图:
图一
图一的层次结构
3运行环境:
Win2003,WinXP,Win2000,NT,WinME,Win9X
4开发工具和编程语言:
编程语言:
C语言
开发工具:
microsoftvisualC++6.0
5详细设计:
1、结构体变量的定义:
structbook{
charbook_name[30];
intbianhao;
doubleprice;
charauthor[20];
charstate[20];
charname[20];
charsex[10];
intxuehao;
structbook*book_next;
2.选择菜单
structbook*head_book,*p_book;
charbook_name[30],name[20],author[20],sex[10];
intbianhao;
doubleprice,price_h,price_l;
intsize_book=sizeof(structbook);
intm=1,n=1,f;
char*b_name,*c_name;
structclub*head_club,*p_club;
intxuehao;
intsize_club=sizeof(structclub);
intchoice;
printf("\n欢迎您第一次进入图书管理系统!
\n\n");
printf("----->[向导]----->[新建图书库]\n\n");
printf("注意:
当输入图书编号为0时,进入下一步.\n\n");
head_book=Create_New_Book();
system("cls");
printf("\n欢迎您第一次进入图书管理系统!
\n\n");
printf("----->[向导]----->[新建会员库]\n\n");
printf("注意:
当输入会员学号为0时,进入主菜单.\n\n");
head_club=Create_New_Club();
system("cls");
do{
printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n");
printf("\n");
printf("\t\t\t[1]:
借书办理\t");printf("[6]:
还书办理\n");
printf("\n");
printf("\t\t\t[2]:
查询图书\t");printf("[7]:
查询会员\n");
printf("\t\t\t[3]:
添加图书\t");printf("[8]:
添加会员\n");
printf("\t\t\t[4]:
删除图书\t");printf("[9]:
删除会员\n");
printf("\t\t\t[5]:
遍历图书\t");printf("[10]:
遍历会员\n\n");
printf("\t\t\t〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n\n");
printf("\t\t\t0:
退出\n\n");
printf("请选择<0~10>:
");
scanf("%d",&choice);
switch(choice){
case1:
printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n");
printf("输入所借图书编号:
\n");
scanf("%d",&bianhao);
printf("输入借书人的学号:
\n");
scanf("%d",&xuehao);
head_book=Lent_Book(bianhao,xuehao,head_book,head_club);
system("cls");
printf("\n借阅成功!
\n\n");
printf("相关信息如下:
\n\n");
head_book=Search_Book_bianhao(bianhao,head_book);
break;
case2:
system("cls");
printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n");
printf("1.按编号查询\n\n");
printf("2.按名称查询\n\n");
printf("3.按价格区间查询\n\n");
printf("0.返回主菜单\n\n");
printf("请选择:
");
scanf("%d",&f);
if(f==1){
printf("请输入查询图书编号:
");
scanf("%d",&bianhao);
printf("相关信息如下:
\n\n");
head_book=Search_Book_bianhao(bianhao,head_book);
break;
}
elseif(f==2){
b_name=book_name;
getchar();
printf("请输入查询图书名称:
");
gets(b_name);
printf("相关信息如下:
\n\n");
head_book=Search_Book_name(b_name,head_book);
break;
}
elseif(f==3){
printf("请输入最高价格:
");
scanf("%lf",&price_h);
printf("请输入最低价格:
");
scanf("%lf",&price_l);
printf("相关信息如下:
\n\n");
head_book=Search_Book_price(price_h,price_l,head_book);
break;
}
elseif(f==0){
break;
}
break;
case6:
printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n");
printf("输入所还图书编号:
\n");
scanf("%d",&bianhao);
printf("输入还书人的学号:
\n");
scanf("%d",&xuehao);
head_book=back(bianhao,xuehao,head_book,head_club);
system("cls");
printf("\n归还成功!
\n\n");
printf("相关信息如下:
\n\n");
head_book=Search_Book_bianhao(bianhao,head_book);
break;
case3:
system("cls");
printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n");
printf("请输入图书名称:
");
scanf("%s",book_name);
printf("请输入图书编号:
");
scanf("%d",&bianhao);
printf("请输入单价:
");
scanf("%lf",&price);
printf("请输入作者名字:
");
scanf("%s",author);
printf("\n");
structbook*ptr_b;
for(ptr_b=head_book;ptr_b;ptr_b=ptr_b->book_next)
{
if(ptr_b->bianhao==bianhao)
{
printf("此编号图书已存在\n");
m=0;
break;
}
}
if(m){
p_book=(structbook*)malloc(size_book);
strcpy(p_book->book_name,book_name);
p_book->bianhao=bianhao;
p_book->price=price;
p_book->xuehao=0;
strcpy(p_book->author,author);
strcpy(p_book->state,"存在");
strcpy(p_book->sex,"待定");
strcpy(p_book->name,"待定");
head_book=Insert_Book(head_book,p_book);
printf("\n添加图书成功!
\n\n");
}
break;
case4:
system("cls");
printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n");
printf("输入删除图书编号:
\n");
scanf("%d",&bianhao);
head_book=Delete_Book(head_book,bianhao);
printf("\n删除图书成功!
\n\n");
break;
case5:
system("cls");
printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n");
Print_Book(head_book);
break;
case7:
system("cls");
printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n");
printf("1.按学号查询\n\n");
printf("2.按姓名查询\n\n");
printf("0.返回主菜单\n\n");
printf("请选择:
");
scanf("%d",&f);
if(f==1){
printf("请输入查询会员学号:
");
scanf("%d",&xuehao);
printf("相关信息如下:
\n\n");
head_club=Search_Club_xuehao(xuehao,head_club);
break;
}
elseif(f==2){
c_name=name;
getchar();
printf("请输入查询会员姓名:
");
gets(c_name);
printf("相关信息如下:
\n\n");
head_club=Search_Club_name(c_name,head_club);
break;
}
elseif(f==0){
break;
}
break;
printf("请输入查询会员学号:
\n");
scanf("%d",&xuehao);
printf("相关信息如下:
\n\n");
break;
case8:
system("cls");
printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n");
printf("请输入会员名字:
");
scanf("%s",name);
printf("请输入会员性别:
");
scanf("%s",sex);
printf("请输入会员学号:
");
scanf("%d",&xuehao);
printf("\n");
structclub*ptr_c;
for(ptr_c=head_club;ptr_c;ptr_c=ptr_c->club_next)
{
if(ptr_c->xuehao==xuehao)
{
printf("此学号会员已存在\n");
n=0;
break;
}
}
if(n){
p_club=(structclub*)malloc(sizeof(structclub));
strcpy(p_club->name,name);
strcpy(p_club->sex,sex);
p_club->xuehao=xuehao;
strcpy(p_club->borrow,"暂无");
head_club=Insert_Club(head_club,p_club);
printf("\n添加会员成功!
\n\n");
}
break;
case9:
system("cls");
printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n");
printf("输入要删除会员学号:
\n");
scanf("%d",&xuehao);
head_club=Delete_Club(head_club,xuehao);
printf("\n删除会员成功!
\n\n");
break;
case10:
system("cls");
printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n");
Print_Club(head_club);
break;
case0:
system("cls");
printf("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n");
printf("\n谢谢您的使用!
\n\n");
break;
}
}while(choice!
=0);
return0;
}
6调试分析:
在此程序的编程前,我上网搜集了一些关于成绩管理系统的资料,然后大体决定了编程的大致算法,即利用函数贯穿整个程序,通过SWITCH函数进行各个函数的选择;
7测试结果:
1)借书办理
2)查询图书
3) 添加图书
4)删除图书
5)遍历图书
6) 还书办理
7)查询会员
8)添加会员
9)删除会员
10)退出
8参考文献:
1.《C语言程序设计教程》谭浩强等著高等教育出版社
2.《C语言程序设计习题解析与应用案例分析》,黄维通编,清华大学出版社,2005
3.《C语言程序设计》,李大友主编,清华大学出版社,1999
课程设计总结
C语言已学习了两个学期了。
总算对其有了初步的认识与了解!
虽然不能算熟手,但基本能看懂许多代码。
当然让自己独立编写有某些功能的程序还是十分吃力的。
比如这次的超市管理系统,虽然基本算法还算简易,但从结构体链表开始就很难把持。
只有照着书上的例题去理解,去套用!
才能略有小成的把结构体链表版的程序做出来,当然缺陷百出!
怎么讲呢?
总觉得时间过的很快!
一眨眼的工夫,就已经结束了,每天要消化的东西很多!
为期一周的C语言课程设计结束了,通过这一个星期的课设,使我对C语言有了更深入、更全面的了解,同时也发现自己的英文和函数基础不是很好,对很多地方不是特别懂,甚至对有些概念都还很模糊,但通过这次课程设计,使我对C语言有了新的认识,在这一周的时间里,经过不断的与同学之间进行探讨以及老师的指导,使我的C语言水平有了很大程度的提高。
通过课设我还发现C语言是一门非常实用的学科,像我的题目----书店图书销售系统,是与实际生活紧密相关的,在以后的工作当中都有可能会用的到。
平常在书上学的这些知识在我看来是些最基本的知识!
其实C语言应该还包括很多,但就这些基本的知识我们学起来还是很辛苦的,我个人认为C语言的语句块中无非是3个东西,顺序,判断与循环,在一个多星期的代码打下来,编写的语句块中没发现过超出这3种东西的,就算调用的函数,在函数里面还是这3个东西,可以说是极其简单,但就这3种东西拼凑在一起时,就能发挥强大的功能与作用。
可谓三个臭皮匠顶个诸葛亮!
一般在没有多数的嵌套下还是能很清晰明了的读写代码,可一旦嵌套一多,就开始晕晕眩眩了。
函数的话,我的理解比较浅,我只能说它的作用除了被人调来调去之外,没有别的功能了!
当然使用函数会是程序别的清晰明了,这点在编写超市管理系统时也体会到了!
,
我认为还有比较重要的是算法,虽然算法并不是代码,但算法能让我们更好的去编写代码,有了算法程序才有灵魂,这是书上说的…….个人认为这是个比喻~算法是事物解决的方法,不仅仅编程我们生活中也经常用到算法,只是自身没发现而已!
当我们的算法到达到一种境界时,我们的思维就会变的灵活,思路就会变的清晰!
当然我也没到这种境界,正在努力中……
这次课设使我对C语言产生了极大的兴趣,相信通过我以后的学习,我的C语言水平一定会有很大的提高。
源程序:
#include
#include
#include
structbook{
charbook_name[30];
intbianhao;
doubleprice;
charauthor[20];
charstate[20];
charname[20];
charsex[10];
intxuehao;
structbook*book_next;
};
structclub{
charname[20];
charsex[10];
intxuehao;
charborrow[30];
structclub*club_next;
};
voidPrint_Book(structbook*head_book);/*浏览所有图书信息*/
voidPrint_Club(structclub*head_club);/*浏览所有会员信息*/
structbook*Create_New_Book();/*创建新的图书库,图书编号输入为0时结束*/
structbook*Search_Book_bianhao(intbianhao,structbook*head_book);
structbook*Search_Book_name(char*b_name,structbook*head_book);
structbook*Search_Book_price(doubleprice_h,doubleprice_l,structbook*head_book);
structbook*Insert_Book(structbook*head_book,structbook*stud_book);/*增加图书,逐个添加*/
structbook*Delete_Book(structbook*head_book,intbianhao);/*删除图书*/
structclub*Create_New_Club();
structclub*Search_Club_xuehao(intxuehao,structclub*head_club);
structclub*Search_Club_name(char*c_name,structclub*head_club);
structclub*Insert_Club(structclub*head_club,structclub*stud_club);
structclub*Delete_Club(structclub*head_club,intxuehao);
structbook*Lent_Book(intbianhao,intxuehao,structbook*head_book,structclub*head_club);
structbook*back(intbianhao,intxuehao,structbook*head_book,structclub*head_club);
intmain()
{
structbook*head_book,*p_book;
charbook_name[30],name[20],author[20],sex[10];
intbianhao;
doubleprice,price_h,price_l;
intsize_book=sizeof(structbook);
intm=1,n=1,f;
char*b_name,*c_name;
structclub*head_club,*p_club;
intxuehao;
intsize_club=sizeof(structclub);
intchoice;
printf("\n欢迎您第一次进入图书管理系统!
\n\n");
printf("----->[向导]----->[新建图书库]\n\n");
printf("注意:
当输入图书编号为0时,进入下一步.\n\n");
head_book=Create_New_Book();
system("cls");
printf("\n欢迎您第一次进入图书管理系统!
\n\n");
printf("----->[向导]----->[新建会员
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理 系统 报告