C语言程序课程设计图书信息管理系统.docx
- 文档编号:10978627
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:38
- 大小:121.93KB
C语言程序课程设计图书信息管理系统.docx
《C语言程序课程设计图书信息管理系统.docx》由会员分享,可在线阅读,更多相关《C语言程序课程设计图书信息管理系统.docx(38页珍藏版)》请在冰豆网上搜索。
C语言程序课程设计图书信息管理系统
课程设计报告
课程名称C语言程序设计
课题名称图书信息管理系统
专业土木工程
班级1381
学号2
姓名李晨希
指导教师王颖
2016年1月7日
前言
《C语言程序设计》课程设计是对学生的一种全面综合训练,它包括问题分析,总体结构设计,用户界面设计,程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。
是及课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。
通常,课程设计的课题比平时的习题复杂得多,也更接近实际。
课程设计着眼于及应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变“活”,使学生更好地深化理解和灵活掌握教学内容。
为了达到上述目的,本课程设计安排了八个设计课题,训练重点在于基本的程序设计方法和分析问题的能力,而不强调面面俱到。
学生可任选其中一题进行设计,设计完毕写出课程设计报告,用A4纸打印成册;并将课程设计报告及源程序存盘。
学习委员将课程设计报告及磁盘收齐后交指导老师。
一、目的
全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。
二、设计要求
掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。
1.设计正确,方案合理。
2.界面友好,使用方便。
3.程序精炼,结构清晰。
4.设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。
5.上机演示。
6.按学号顺序选课题号,并在规定的时间内独自完成相关课题的C源程序编写、调整和运行。
源程序及编译生成各文件均保存在软盘中;
7.按本任务书的要求,按附录的要求编写《课程设计报告》(Word文档格式)。
并用A4的复印纸打印并装订;
8.在2014年6月30日之前,请各班学习委员收齐课程设计报告和源程序交王颖老师,联系电话:
。
三、进度安排
第一周星期四:
课题讲解,查阅资料
第二周 星期一:
总体设计,详细设计
星期二:
编程,上机调试、修改程序
星期三:
上机调试、完善程序
星期四:
上机调试、完善程序
星期五:
答辩
星期六-星期天:
撰写课程设计报告
课程设计报告规范
一、需求分析
1、程序的功能。
2、输入输出的要求。
二、概要设计
1、程序由哪些模块组成以及一个模块之间的层次结构、模块的调用关系;每个模块的功能。
2、课题的总体数据结构和数据库结构;即要存储什么数据,这些数据是什么样的结构,它们之间有什么关系等。
三、详细设计
1、采用C语言定义相关的数据类型。
2、写出各模块的类C码算法。
3、画出函数的调用关系图。
四、调试分析以及设计体会
1、测试数据:
准备典型的测试数据和测试方案,包括正确的输入及输出结果和含有错误的输入及输出结果。
2、程序调试中遇到的问题以及解决问题的方法。
3、课程设计过程经验教训、心得体会。
五、使用说明
用户使用手册:
说明如何使用你编写的程序,详细列出每一步的操作步骤。
六、书写格式
1、设计报告要求用A4纸打印成册:
2、标题和正文要求见附1
3、封面格式如下页。
七、附录
1、参考书目
2、源程序清单(带注释)
湖南工程学院
课程设计任务书
课程名称C语言程序设计
课题图书信息管理系统
专业班级土木工程1381
学生姓名李晨希
学号2
指导老师王颖
审批王颖
任务书下达日期2015年12月27日
任务完成日期2016年1月7日
设计课题七:
图书信息管理系统
一、问题描述
通过该系统实现对图书信息进行录入、显示、修改、删除、插入、排序、保存等操作的管理。
二、功能描述
试设计一图书信息管理系统,使之能提供以下功能:
1.系统以菜单方式工作
2.图书信息录入功能(图书信息用文件保存)--输入
3.图书信息浏览功能--输出
4.图书信息查询功能
查询方式:
(1)按书名查询
(2)按作者名查询
5.图书信息的删除及修改(可选项)
三、算法提示
1.数据结构:
结构体类型数组
2.数据库结构:
下表构成该系统的基本数据库
登录号
书名
作者名
分类号
出版单位
出版时间
价格
int
char
char
char
char
char
Float
四、测试数据
图书册数N=10
一、系统需求分析---------------------------------------------------------1
1.1系统设计的目的及意义-------------------------------------------------1
1.2系统功能需求---------------------------------------------------------1
二、总体设计---------------------------------------------------------------1
2.1系统功能分析---------------------------------------------------------1
2.2系统功能模块划分及设计-----------------------------------------------1
2.3系统功能模块图-------------------------------------------------------1
三、概要设计---------------------------------------------------------------3
四、详细设计---------------------------------------------------------------3
4.1头函数名------------------------------------------------------------3
4.2管理员登录系统模块-------------------------------------------------3
五、系统调试--------------------------------------------------------------10
六、结果分析--------------------------------------------------------------11
七、总结-感想及体会-------------------------------------------------------11
八、.附录----------------------------------------------------------------12附件1------------------------------------------------------------------12
附件2------------------------------------------------------------------13
九、评分表----------------------------------------------------------------28
一、系统需求分析
1.1系统设计的目的及意义:
图书系统在生活中运用相当广泛,为了满足图书管理的要求,通过计算机技术给图书管理人员和读者借还书带来便利。
使用C语言编写了图书信息管理系统。
1.2系统功能需求:
本系统主要实现图书信息管理的功能,通过此系统可对图书馆库存信息进行管理和维护操作。
实现了图书馆内管理的一般功能,包括查询、借书、还书、添加、删除、修改图书信息等。
二、总体设计
2.1系统功能分析:
图书信息包括编号、书名、作者、出版社、出版日期、价格、在库状态等。
系统以菜单方式工作,通过调用函数来实现删除图书、读者信息,添加图书、读者信息等功能。
choice_4_delete_according_name()函数用于删除图书信息;choice_1_input_new()函数用于增加图书信息;choice_2_display_all()显示全部图书信息操作等等;主函数用来调用这些函数。
2.2系统功能模块划分及设计
(1)管理员登录系统模块
(2)菜单选择模块
(3)图书信息录入功能模块
(4)图书信息浏览功能
(5)图书信息查询功能
(6)图书信息的删除和修改
2.3系统功能模块图:
三、概要设计
(1)系统主菜单
显示系统主菜单,里面欧相应的功能代码,根据选择各功能代码进入不同的界面。
功能主要包括:
退出系统、查询图书、借书、还书。
(2)查询图书信息
进入此菜单功能模块、输入您要查询的图书的编号、名字、作者着。
四、详细设计
4.1头函数名
#include
#include
#include
#include
#include
/*******************图书信息结构体******************/
/***包括登录号,书名,作者名,分类号,出版单位,出版时间,价格等***/
{intnumber;*****************************************登录名
charbookname**************************************书名
charauthername*************************************作者名
charpublishcom*************************************出版单位
charpublishtime*************************************出版时间
floatprice*******************************************价格
};
4.2管理员登录系统模块:
(1)图书信息管理页面
voidmenu()
{
charinput;
printf("\n\n\t\t\t********************************\n");
printf("\t\t\t图书管理系统\n");
printf("\t\t\t********************************\n\n\n");
printf("-----------------------------------------------------------------------\n");
printf("\t<按任意键进入>\n\t");
input=getchar();
}
(2)功能菜单页面
voidmenu()
{
printf("\n\n\n\n\n\n\n");
printf("\t\t\t图书管理系统\n");
printf("\t\t\t1:
新进图书基本信息的输入\n");
printf("\t\t\t2:
显示全部记录\n");
printf("\t\t\t3:
根据图书名称查询图书基本信息\n");
printf("\t\t\t4:
根据图书名称对撤销的图书信息进行删除\n");
printf("\t\t\t5:
按照图书名称从小大到排序\n");
printf("\t\t\t6:
统计某价格以上的图书数量\n");
printf("\t\t\t7:
列出所有未借出去的图书信息\n");
printf("\t\t\t8:
退出\n");
}
(3)图书信息录入功能模块
while
(1)
{
printf("请输入图书编号:
");
gets(newbook.number);
printf("请输入图书名称:
");
gets(newbook.name);
printf("请输入图书单价:
");
scanf("%f",&newbook.price);
while(getchar()!
='\n');
printf("请输入图书的作者:
");
gets(newbook.auther);
printf("请输入借书人姓名:
");
gets(newbook.lendername);
printf("请输入借书人性别:
");
gets(newbook.lendersex);
printf("请输入借书人学号:
");
gets(newbook.lendernum);
printf("是否保存该条书目?
(Y/N)\n");
choice=getch();
while(choice!
='Y'&&choice!
='y'&&choice!
='N'&&choice!
='n')
choice=getch();
if(choice=='Y'||choice=='y')
}
(4)图书信息浏览功能模块
if(booknumber==0)
{
printf("书库中没有任何信息!
\n\n");
printf("按任意键回到主菜单!
\n\n");
getch();
break;
}/*if结束*/
else
{
for(n=0;n if(strcmp(bookinfo[n].name,search)==0) { printf("该书的详细信息如下: \n"); printf("图书信息|借书人信息\n"); printf("编号名称单价作者图书状态|姓名性别学号\n"); printf("%-6s%-12s%-8.1f%-8s%-9d|%-12s%-8s%-8s\n", bookinfo[n].number,bookinfo[n].name,bookinfo[n].price, bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].lendername, bookinfo[n].lendersex,bookinfo[n].lendernum); break; } if(n>=booknumber) printf("没有查找该书的任何信息! \n"); printf("\n\n是否继续查询? (Y/N)\n"); choice=getch(); while(choice! ='Y'&&choice! ='y'&&choice! ='N'&&choice! ='n') choice=getch(); if(choice=='Y'||choice=='y') continue; else break; }/*else结束*/ }/*while (1)结束*/ } (5)图书信息删除功能模块 if(strcmp(bookinfo[n].name,search)==0) { break; } if(n>=booknumber) printf("没有查找该书的任何信息! \n"); else { printf("是否确认需要删除该条书目? (Y/N)"); choice=getch(); while(choice! ='Y'&&choice! ='y'&&choice! ='N'&&choice! ='n') choice=getch(); if(choice=='Y'||choice=='y') { for(i=n;i bookinfo[i]=bookinfo[i+1]; booknumber--; p=fopen("bookinfo.data","wb"); for(n=0;n fwrite(&bookinfo[n],sizeof(BOOKINFO),1,p); fclose(p); printf("删除成功! \n"); } else printf("\n\n该条书目没有被删除! "); } printf("\n\n是否继续进行删除操作? (Y/N)\n"); choice=getch(); while(choice! ='Y'&&choice! ='y'&&choice! ='N'&&choice! ='n') choice=getch(); if(choice=='Y'||choice=='y') continue; else break; }/*else结束*/ }/*while (1)结束*/ } (6)图书信息查询功能模块 while (1) { printf("输入要查询的书本名称: "); gets(search); if(booknumber==0) { printf("书库中没有任何信息! \n\n"); printf("按任意键回到主菜单! \n\n"); getch(); break; }/*if结束*/ else { for(n=0;n if(strcmp(bookinfo[n].name,search)==0) { printf("该书的详细信息如下: \n"); printf("图书信息|借书人信息\n"); printf("编号名称单价作者图书状态|姓名性别学号\n"); printf("%-6s%-12s%-8.1f%-8s%-9d|%-12s%-8s%-8s\n", bookinfo[n].number,bookinfo[n].name,bookinfo[n].price, bookinfo[n].auther,bookinfo[n].isExit,bookinfo[n].lendername, bookinfo[n].lendersex,bookinfo[n].lendernum); break; } if(n>=booknumber) printf("没有查找该书的任何信息! \n"); printf("\n\n是否继续查询? (Y/N)\n"); choice=getch(); while(choice! ='Y'&&choice! ='y'&&choice! ='N'&&choice! ='n') choice=getch(); if(choice=='Y'||choice=='y') continue; else break; }/*else结束*/ }/*while (1)结束*/ } 五、系统调试 图2-1 图2-1 六、结果分析 本程序满足了课题对类的要求,在设计的过程中,建立了较为清晰的类层次,也利用了面向对象的方法以及C语言的编程思想来完成系统的设计,做到了每个借阅者建立一个账户,账户中存储借阅者的个人信息、借阅信息等要求。 而且界面美观,容易操作。 但是程序太长,不够简练,导致出现错误很难发现和修改。 七、感想和体会: 通过这次的课程设计,让我充分的感觉到了要自己设计一个程序是多么的难,以及学习好C语言是多么的重要;让我掌握了许多有用的知识。 在这个程序的设计过程中,我清楚的意识到自己的水平有多么的薄弱,课程的知识学得有多么的不扎实。 看网上的例子好像觉得也没那么难,自己一上机实际操作就出现了很多问题,调试的时候系统总是在报错,还有很多警告,每增加一个函数就要调试好久,有时候应为少了一个大括号或是分号,导致要找很久很久。 虽然系统可以运行,也具有了一些基本的功能,但我意识到了自己有太多的不足。 以后还会有很多的课程设计,一定要吸取这次的教训,把知识学懂学透学精,真正的为我所用,这样走上社会我才能真正的发挥所长。 八、附录 附1: ●课程设计报告装订顺序: 封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。 ●正文的格式: 一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。 ●正文的内容: 一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。 ●正文总字数要求在5000字以上(不含程序原代码)。 附2.源程序清单: #include #include #include #include #include typedefintBOOL; typedefstructbookinfo { charnumber[15];/*产品编号*/ charname[30];/*产品名称*/ floatprice;/*单价*/ charauther[20];/*作者*/ BOOLisExit;/*存在状态*/ charlendername[20];/*借书人姓名*/ charlendersex[2];/*借书人性别*/ charlendernum[15];/*借书人学号*/ }BO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 课程设计 图书 信息管理 系统