C语言程序设计任务书图书信息管理系统.docx
- 文档编号:6208491
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:55
- 大小:487.29KB
C语言程序设计任务书图书信息管理系统.docx
《C语言程序设计任务书图书信息管理系统.docx》由会员分享,可在线阅读,更多相关《C语言程序设计任务书图书信息管理系统.docx(55页珍藏版)》请在冰豆网上搜索。
C语言程序设计任务书图书信息管理系统
课程设计报告
课程名称C语言程序设计
课题名称图书信息管理系统
专业机械电子
班级
学号
姓名
指导教师
课程设计任务书
课程名称C语言程序设计
课题图书信息管理系统
专业班级机械电子1101班
学生姓名
学号
指导老师审批
任务书下达日期2012年12月19日
任务完成日期2012年12月29日
一、设计内容与设计要求
1.设计内容:
图书信息管理系统设计
涉及的知识点:
①掌握并熟练运用C语言的基本数据类型与各种表达式,程序的流程控制语句;
②掌握数组的基本概念。
熟练掌握一维数组、二维数组的应用、掌握字符数组
与字符串的关系以及字符串的简单处理。
③掌握函数的定义,函数的返回值,函数的调用,函数的形式参数和实际参数之间的关系;掌握变量的作用域与生存期,了解函数的作用域。
④掌握结构体的概念,结构体类型的定义,结构体变量的定义和初始化,结构体成员的表示,结构体变量的赋值含义,结构体与指针、函数的关系。
⑤掌握文件、文件类型指针的基本概念,熟练掌握文件的打开与关闭以及文件的建立、读写等有关操作。
2.设计要求:
1)用C语言实现系统;利用结构体数组实现图书信息的数据结构设计;系统
的各个功能模块要求用函数的形式实现;应提供一个界面来调用各个功能,
调用界面和各个功能的操作界面应尽可能清晰美观。
2)建立一个图书信息数据库,文件名为book.txt,并从该文件中读取数据;
3)图书信息管理系统应能提供以下功能:
①系统以菜单方式工作
②图书信息显示功能;能以表格形式显示图书库中所有信息,且应有表头。
③图书信息追加功能;追加一条(或多条)新记录,要求在追加过程中有相应的提示信息,完成追加后能重新排序和显示;
④图书信息查询功能;
a.按书名查询;b.按单价查询;c.按出版单位查询;d.按出版时间查询
e.按分类号查询;f.按入库时间查询
要求系统在上述查询方式中至少应有两种以上的查询方式,且能显示符合条件的所有记录。
⑤图书信息的删除;要求可按指定的图书编号和指定的图书书名两种定位方式删除图书记录。
⑥图书信息的修改;要求能按指定的图书编号和按指定的图书书名两种定位方式进行修改,且可以按用户要求修改记录中除图书编号和书名以外的指定内容,并重新显示;
⑦图书信息的统计:
能按指定的图书分类号或按指定的单价两种方式分别进行统计,并将统计的结果以及被统计的图书信息用表格的形式显示;
⑧能按图书单价排序(降序)
⑨要求在删除模块、修改模块和查询模块中若找不到所需的记录时,系统设计中应有一定的提示信息。
4)说明:
(1)要求将修改后的数据写入到一个新的数据文件newbook.txt中。
(2)对系统有兴趣的同学可以在实现基本要求的基础上,完善系统的其它功能。
5)图书信息管理系统采用一个结构体数组,图书信息包括:
图书编号、分类号、书名、作者名、出版单位、出版时间、入库时间、价格等,其数据库结构如下:
intbh;/*图书编号*/
intflh;/*分类号*/
charsname[10];/*书名*/
charzname[10];/*作者名*/
charcbdw[12];/*出版单位*/
charcbdate[8];/*出版时间*/
charrkdate[8];/*入库时间*/
doubledj;/*单价*/
注意:
图书编号不能重复且不少于4位数字,各项字符串的长度要求在4~10之间,数据库应有10条或多于10条以上的记录。
6)要求:
⑴要求每个学生必须独立思考,认真并按时完成本课程设计所包含的所有内容;
⑵要求学生必须按照课程设计报告的完整格式说明设计内容,设计任务分析过程和算法,给出程序流程图和全部源程序;
⑶设计报告的完整格式应包括以下部分的内容:
①系统设计总体思路;
②系统的主要功能;
③系统功能模块的划分(要求画出总体模块框图);
④主要功能的实现和各个程序模块说明(每个功能模块的框图、系统主模块的流程图,各个功能模块至少要有一个主要的流程图);
⑤程序调试过程及各模块调试中相应的部分截图;
⑥课程设计总结与体会(不少于500字)。
⑦课程设计参考文献;
⑧程序清单;
⑷课程设计周内,凡规定的集中上机时间必须到机房调试程序;
⑸设计完成后必须参加答辩,并按要求演示程序,提交课程设计报告和有关电子文档。
7)分组及安排
所选题目根据学生班号和学号确定,(班号+学号)%6+1。
如你的班号为01班、学号为01,则所选题目号为:
(1+1)%6+1=3,即课题号为3。
8)成绩评定
①程序设计方案是否合理;②程序设计是否正确;③调试结果;④设计说明书的质量高低;⑤答辩时回答问题情况;⑥课程设计周表现情况;总评成绩记入“课程设计成绩评分表”。
二、进度安排
第16周星期四14:
00——17:
00讲课、布置任务
第17周星期一8:
00——12:
00机房上机调试程序
星期二8:
00——12:
00机房上机调试程序
星期三19:
00——22:
00机房上机调试程序
星期四8:
00——12:
00机房上机调试程序、答辩
附:
课程设计报告排版、打印和装订要求
1.课程设计报告装订顺序:
封面、任务书、目录、正文、附件、评分表。
按A4大小的纸张排版和打印。
2.设计报告的页码从目录之后开始使用;
3.正文的格式:
一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22磅。
正文中程序清单(英文)用英文字体TimesNewRoman,单倍行间距。
4.正文的内容:
一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试(各模块至少有一个程序调试的截图);五、总结(不少于500字);六、参考文献;t、附件(包含所有程序的原代码,且程序中应有必要的注释)。
八.正文总字数要求在5000字以上(不含程序原代码)。
5.设计报告中任务书和评分表不需重新排版。
一、系统的主要思路···················1
二、系统的主要功能······················2
1、显示功能···················2
2、追加功能················2
3、修改功能···················2
4、删减功能···················2
5、查询功能····················2
6、统计功能····················2
7、排序功能····················2
8、退出功能·······················2
三、系统功能模块的划分···············3
1、总体模块功能框图················3
四、总流程图·······················4
1、总流程图·····················4
2、八大模块的流程图·············5
五、程序调试·····················13
1、显示模块·····················13
2、追加模块····················14
3、修改模块······················17
4、删减模块···················21
5、查询模块······················24
6、统计模块················26
7、排序模块··················28
8、退出模块·······················29
六、总结······················30
七、参考文献······················31
八、附件······················32
一、系统的主要思路
C语言是一种高级程序设计语言,此系统就是利用C语言所编写的一个图书信息管理系统,简单实用,界面清晰。
利用结构体数组来实现图书信息的数据结构,使得各个数据可以批量处理,在各个模块中发挥巨大作用。
系统的各个功能是调用各个函数的形式来实现的,并提供一个循环的界面来调用,其中有选项让用户选择,从而实现各个功能的操作。
首先,我们得先创建一个数据库,用来存放图书的信息,如:
图书编号,分类号,书名,作者名,出版单位,出版时间,入库时间,单价等。
这个数据库存放在一个book.txt文本文档中,而创建这个数据库需要另一个函数编译,连接,运行后产生,从而供图书信息管理系统的程序进行操作。
在程序开头需要用读函数fscanf读取book.txt文本文档中的数据,转入内存中,从而被图书管理系统的程序进行各种操作。
然后运行程序后显示的是主菜单界面,通过系统的提示引导,用户可以选择进入各个模块进行图书信息处理和操作。
最后,每进行一个模块操作完成后,会返回主菜单,处理完各个信息后并且正常退出后,系统又会调用写函数将修改后的数据写入一个新创建的文本文档中。
系统共有八个模块,分别是:
显示模块,追加模块,修改模块,删减模块,查询模块,统计模块,排序模块,退出模块。
系统各个模块的功能是通过调用主函数中的switch语句来实现的。
二、系统的主要功能
1、显示功能
通过设计此模块,来实现图书信息的显示,供用户浏览全体数据。
2、追加功能
通过设计此模块,来实现新的图书信息的加入,供用户方便操作。
3、修改模块
通过设计此模块,来实现对数据库里的任意信息进行修改,供用户方便操作。
4、删减模块
通过设计此模块,来实现数据库里的任意信息进行删减,供用户方便操作。
5、查询模块
通过设计此模块,来实现按指定的图书编号,分类号以及书名的选择进行图书信息查看,供方便用户方便操作。
6、统计模块
通过设计此模块,来实现按指定的图书分类号和单价的选择进行图书信息的统计,供用户方便操作。
7、排序模块
通过设计此模块,来实现对数据库的图书信息按单价进行排序显示,供用户方便操作。
8、退出模块
通过设计此模块,来实现退出系统的主菜单。
三、系统功能模块的划分
退出
主函数
退出模块
排序模块
统计模块
查询模块
删减模块
修改模块
追加模块
显示模块
1、总体模块功能框图
四、总流程图
1、总流程图
输出
Sele=8
Sele=7
Sele=6
Sele=5
Sele=4
Sele=3
Sele=2
统计模块
查询模块
删减模块
修改模块
追加模块
排序模块
退出模块
显示模块
Sele=?
输入
开始
Sele=1
退出
2、八大模块的流程图
(1)、显示模块
退出
显示数据
输入1
开始
退出
显示数据
输入2
继续追加?
1/2
输入1
确定追加?
1/2
输入2
开始
(2)、追加模块
输入追加条数
输入追加内容
2
1
退出
输入2
显示数据
输入图书书名
继续修改?
1/2
输入修改内容
6·单价
5·入库时间
4·出版时间
3·出版单位
2·作者名
1·分来号
输入图书编号
选择定位方向
输入1
开始
确定修改?
1/2
输入3
(3)、修改模块
2
1
2
1
退出
显示数据
输入2
继续删除?
1/2
2
1
确认删除?
1/2
显示数据
输入图书编号
输入图书书名
输入1
确定删除?
1/2
输入4
开始
选择定位方向
(4)、删减模块
2
1
2
1
3
2
1
2
1
退出
显示数据
输入2
继续查询?
1/2
显示数据
输入书名
输入分类号
输入图书编号
选择定位方向
输入1
确定查询?
1/2
输入5
开始
(5)、查询模块
2
1
2
1
退出
显示数据
输入2
继续统计?
1/2
显示数据
输入分类号
输入单价
输入1
确定统计?
1/2
输入6
开始
选择定位方向
(6)、统计模块·
显示数据
输入7
开始
退出
(7)、排序模块
显示结束界面
输入8
开始
退出
(8)、退出模块
五、程序调试
1、显示模块voidDisp()
·开始运行图书信息管理系统程序,主界面显示如下图所示,选择你所要进入的模块。
·在主界面中输入1,调用显示模块的函数,显示数据如下图所示。
2、追加模块voidAppe()
·主界面中输入2,回车,调用追加模块函数,进入函数界面,选择确定追加,输入1,回车,界面如下图所示。
·在此界面可输入追加的条数,输入2,回车,显示如下图所示。
·此界面可输入你所追加的图书信息的具体内容,每成功追加一本,将会有提示的信息,然后继续追加,直到追加完毕,显示如下图所示。
·成功追加完毕后,确认是否继续追加,输入所需的选择回车。
若不继续追加,输入2,回车,显示如下图所示。
·再退回主界面时会有再次显示你所追加内容的数据,按任意键回主菜单,显示如下图所示。
3、修改模块voidModi()
·主界面中输入3,回车,调用修改模块函数,进入函数界面,选择确定修改,输入1,回车,界面如下图所示。
·确定修改之后,系统会提示要选择修改的定位方向,一个是图书编号,另一个是图书书名,可进行选择。
若选择1,输入1,回车,显示如下图所示。
·选择图书编号之后,系统提示输入图书编号的具体内容,输入后,回车,显示如下图所示。
·找到要修改的图书后,将有六个选项可供修改,分别为:
分类号,作者名,出版单位,出版时间,入库时间,单价。
若选择入库时间,输入5,回车,显示如下图所示。
·确定要修改入库时间后,输入要修改的内容,回车,显示如下图所示。
·修改完毕后,将会显示修改后的内容,系统提示是否继续修改。
若不继续修改,输入2,回车,显示如下图所示。
·退回主界面之前,会再次显示修改后的内容,按任意键返回主菜单,显示如下图所示。
4、删减模块voidDele()
·主界面中输入4,回车,调用删减模块函数,进入函数界面,选择确定删减,输入1,回车,界面如下图所示。
·确定进行删除后,系统提示选择删除定位方向,一个是图书编号,另一个是图书书名。
若选择图书书名,输入2,回车,显示如下图所示。
·确定选择图书书名方向之后,系统提示输入图书书名具体内容,进行输入后回车,显示如下图所示。
·定位到具体的一本书后,系统提示是否确认要删除。
若选择是,输入1,回车,显示如下图所示。
·确认删除后,将显示删除后的图书信息,系统提示是否继续删除。
若选择否,输入2,回车,显示如下图所示。
·确认不继续删除后,将会再次显示图书信息具体内容,按任意键返回主界面,显示如下图所示。
5、查询模块voidQuery()
·主界面中输入5,回车,调用查询模块函数,进入函数界面,选择确定查询,输入1,回车,界面如下图所示。
·确认查询后,系统提示选择查询方式,分别为:
图书编号,分类号,书名。
若选择分类号,输入2,回车,显示如下图所示。
·选择分类号查询后,输入具体的分类号,回车,显示如下图所示。
·找到具体图书信息后,系统将显示此书的具体内容,系统也将提示是否继续查询。
若不继续查询,输入2,回车,将返回主界面,显示如下图所示。
6、统计模块voidTotal()
·主界面中输入6,回车,调用统计模块函数,进入函数界面,选择确定统计,输入1,回车,界面如下图所示。
·确认统计后,系统将提示选择统计方式,一个是按分类号,另一个是按单价。
若选择单价,输入2,回车,显示如下图所示。
·确认按单价统计后,系统提示输入具体的单价查询区间,输入后,回车,显示如下图所示。
·系统找到相应的图书信息后,将显示出来,还会计算此区间的图书有几本,也提示是否继续统计。
若选择否,输入2,回车,将返回主界面,显示如下图所示。
7、排序模块voidSort()
·主界面中输入7,回车,调用排序模块函数,进入函数界面,选择确定排序,输入1,回车,系统将自动按单价降序重新排列,并在此函数界面显示出来,按任意键返回主界面,显示如下图所示。
8、退出模块voidQuit()
·主界面中输入8,回车,调用退出模块函数,进入函数界面,系统将显示结束语句,按任意键将退出图书管理系统,显示如下图所示。
六、总结
经过一周的C语言课程设计,现在想来里面既有快乐也有烦恼,对于我们这个年龄段的大学生来说,是一次很不错的经历。
让我们懂得什么是团队合作,也让我们感受到一个集体需要的是相互信任,每个人做好自己的那部分工作,然后综合起来,成为一个成品,这是件很了不起的事。
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
醉着科学技术发展的日新月异。
当今计算机应用在生活中可以说是无处不在的。
因此作为二十一世纪的大学生来说掌握计算机开发技术是十分重要的。
我的课程设计题目是—图书信息管理系统,一开始的确无从下手,但是一旦开始编程,进行设计排版以后,就渐渐进入状态。
虽然在设计编程过程当中遇到过很多困难,但是只要有信心,有毅力,还要有一种挑战的心理,实在不会,可以询问老师。
过程是艰难的,结果是欣慰的。
更重要的是,相信这一次经历会给我们大学毕业以后带来一些意想不到的好处,至少我们知道了一些别人所不知道的东西。
我编写的整个程序具备简洁方便的特点,界面清晰,操作方便等优点。
操作者只要结合自己的想法和根据系统的提示进行操作是很实用的,而且会有一个文本文档,用来记录图书的信息,在结束后也产生一个新的文本文档来记录修改后的图书信息。
程序设计过程有如解决实际问题一般,从实际问题的角度,我们可以这样来看:
首先要了解这个问题的基本要求,即输入,输出,完成从输入到输出的要求是什么;其次,从问题的要害入手,从前到后的解决问题的每个方面,即从输入开始着手,着重考虑如何从输入导出输出,在这个过程中,可确定所需的变量,数组,函数,然后确定处理过程——算法。
可的最后结论。
最后小结:
在程序设计中,可认为也是个小社会,每个一同的社会成员都有不同的想法。
程序设计学的好坏要看你在社会中解决问题的能力高低,所以不同的人编程结果是不同的。
在这个社会中,经验和想法最为重要。
在此,特地感谢指导此次C语言课程设计的指导老师,以及一起完成程序的同学。
七、参考文献
[1]贾宗璞许合利,《C语言程序设计》,人民邮电出版社,2010.9.1
[2]谭浩强,《C语言程序设计(程序设计)》,清华大学出版社,2012.6.1
八、附件
程序的原代码:
#include"stdio.h"
#include"string.h"
#include"conio.h"
#include"stdlib.h"
intN=0;
structstu
{intbh;/*图书编号*/
intflh;/*分类号*/
charsname[10];/*书名*/
charzname[10];/*作者名*/
charcbdw[12];/*出版单位*/
charcbdate[8];/*出版时间*/
charrkdate[8];/*入库时间*/
doubledj;/*单价*/
}s[40];
voidRe_file()
{
FILE*fp;
fp=fopen("book.txt","r");
while(fscanf(fp,"%d\n%d\n%s\n%s\n%s\n%s\n%s\n%lf\n",&s[N].bh,&s[N].flh,s[N].sname,s[N].zname,s[N].cbdw,s[N].cbdate,s[N].rkdate,&s[N].dj)!
=EOF)N++;
fclose(fp);}
voidWr_file()
{inti;
FILE*fp;
fp=fopen("newbook.txt","w");
for(i=0;i fprintf(fp,"%d\n%d\n%s\n%s\n%s\n%s\n%s\n%lf\n",s[i].bh,s[i].flh,s[i].sname,s[i].zname,s[i].cbdw,s[i].cbdate,s[i].rkdate,s[i].dj); fclose(fp); } voidDisp()/*显示模块*/ { system("cls"); inti; printf("\n图书编号分类号书名作者名出版单位出版时间入库时间单价\n"); for(i=0;i printf("%-10d%-8d%-10s%-10s%-10s%-10s%-10s%-10.3lf\n",s[i].bh,s[i].flh,s[i].sname,s[i].zname,s[i].cbdw,s[i].cbdate,s[i].rkdate,s[i].dj);/*显示数据*/ } voidAppe()/*追加模块*/ { system("cls"); inti,j,a,b; printf("\n\t\t确定追加? \n"); printf("\n\t\t1: 是2: 否\n"); printf("\n\t\t请选择: "); scanf("%d",&b); if(b==1) { printf("\n\t\t请输入追加条数: "); scanf("%d",&j); system("cls"); for(i=1;i<=j;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 任务书 图书 信息管理 系统