c语言课程设计图书管理系统.docx
《c语言课程设计图书管理系统.docx》由会员分享,可在线阅读,更多相关《c语言课程设计图书管理系统.docx(24页珍藏版)》请在冰豆网上搜索。
c语言课程设计图书管理系统
内蒙古科技大学
本科生课程设计说明书
题目:
C语言课程设计
——图书管理系统
学生姓名:
学号:
专业:
软件工程
班级:
软件一班
指导教师:
日期:
2016年1月3日
内蒙古科技大学课程设计任务书
课程名称
C语言课程设计
设计题目
图书管理系统
指导教师
时间
2016.1.5——2016.1.9
一、教学要求
1.巩固和加深学生对C语言课程的基本知识的理解和掌握
2.掌握C语言编程和程序调试的基本技能
3.利用C语言进行基本的软件设计
4.掌握书写程序设计说明文档的能力
5.提高运用C语言解决实际问题的能力
二、设计资料及参数
每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。
学生选修课程管理系统设计
假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。
试设计一选修课程系统,使之能提供以下功能:
v课程信息录入功能(课程信息用文件保存)--输入;课程信息浏览功能--输出
v查询功能:
(至少一种查询方式)--算法
●按学分查询●按课程名称查询
v学生选修课程(可选项)
三、设计要求及成果
1.分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目)
2.写出详细设计说明(至少包括功能实现分析和模块流程图)
3.编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少500行代码,不包括注释和花括号)
4.设计完成的软件要便于操作和使用
5.设计完成后提交课程设计报告(请严格按照模板进行排版)
四、进度安排
第一天 选择课程设计题目,分析课题的要求
第二天 编程
第三天 编程及调试
第四天 写课程设计报告
第五天 提交课程设计报告(打印稿及电子稿)
五、评分标准
1.根据平时上机考勤、表现和进度,教师将每天点名和检查
2.根据课程设计完成情况,必须有可运行的软件。
3.根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。
目录
内蒙古科技大学课程设计任务书I
第一章需求分析3
1.1引言3
1.2任务概述3
1.3数据描述3
1.4功能需求3
1.5任务计划4
第二章概要设计5
2.1总体设计5
2.2数据类型设计(或数据结构设计)5
2.3接口设计//函数声明6
2.4运行界面设计6
第三章详细设计7
3.1输入模块设计7
3.2输出模块设计7
3.3查找模块设计7
3.4排序模块设计7
3.5保存及读取模块设计7
第四章测试分析8
4.1测试程序执行情况8
4.2出现的问题和解决的方法9
第五章课程设计总结12
参考文献12
致谢13
附录:
程序代码14
第一章需求分析
1.1引言
随着图书馆里图书数量的增多,图书管理管理变得越来越困难,为了方便学校对图书借阅的管理,一个简易的图书管理管理系统可以解决一些简单的问题
1.2任务概述
v图书信息录入功能(图书信息用文件保存)--输入
v图书信息浏览功能--输出
v查询或排序功能:
(至少两种种查询方式)--算法
●按书名查询●按作者名查询
v图书信息的删除与修改
v图书的借出与归还
1.3数据描述
需要输入的数据包括登录号、书名、作者名、分类号、出版单位、出版时间、价格等。
系统会自动处理图书的借出与归还。
1.4功能需求
图书管理系统需要实现以下功能;
1.图书信息录入功能(图书信息用文件保存)--输入
2.图书信息浏览功能—输出
3.查询或排序功能:
(至少两种查询方式)--算法
按书名查询按作者查询
4.图书信息的删除与修改
5.图书的借出与归还
1.5程序功能简介
本系统是C语言开发的一个图书管理系统。
本系统具有图书信息录入、浏览、删除、修改、查找(包括按书名、作者查找)功能。
其中图书信息包括登录号、书名、作者名、分类号、出版单位、出版时间、价格,并且对信息以文件形式储存。
另外本系统具备实用性的同时代码逻辑谨慎清晰易懂,且界面美观
第二章概要设计
2.1总体设计
图书信息的删除与修改
2.2数据类型设计(或数据结构设计)
1.数据以顺序结构储存
2.3接口设计//函数声明
可参考用以下表格形式:
表2.1:
函数列表
函数名
函数格式//即函数首部
main
intmain()
int num;
/*登录号*/
char name[100];
/*书名*/
char author[100];
/*作者名*/
char fn[100];
/*分类号*/
char place[100];
/*出版单位*/
char day[100];
/*出版时间*/
float money;
/*价格*/
main()
/*主函数*/
void Input();
/*输入*/
void Display();
/*输出*/
void Find();
/*查找*/
void Modify();
/*删除*/
void Change();
/*修改*/
2.4运行界面设计
第三章详细设计
3.1输入模块设计
voidBOOK:
:
input()//定义成员函数input(),用于输入图书信息
{
cout<<"\n\t\t输入书名:
";cin>>name;
cout<<"\n\t\t输入作者:
";cin>>author;
cout<<"\n\t\t输入分类号:
";cin>>sort;
cout<<"\n\t\t输入出版单位:
";cin>>publish;
cout<<"\n\t\t输入出版时间:
";cin>>pub_year;
cout<<"\n\t\t输入价格(小数):
";cin>>price;
cout<<"\n\t\t******输入完成******\n";
}
第四章测试分析
4.1测试程序执行情况
能按照正确操作实现已加入的各个功能,一些部分添加了报错的功能,如选择1-n中的一个数字。
界面
;录入
新增
浏览
查询
修改
删除
第五章课程设计总结
经过一个多星期的编译原理课程设计,在我的努力下,顺利完成该课程设计。
通过该课程设计,掌握了编译程序工作的基本过程及其各阶段的基本任务,熟悉了编译程序总流程框图,了解了编译程序的生成过程及其相关的技术,对课本上的知识也有了更深的理解。
老师常说,课本上的知识是机械的,表面的,要学会去运用,要举一反三。
现在终于深刻的了解了这句话。
经过这次的课程设计,发现书本上很深奥的知识变的更为简单,同样,对实验原理也了有更深的理解。
知道和理解了该理论在计算机中是怎样执行的,对该理论在实践中的应用有深刻的理解。
通过该课程设计,把死板的课本知识变得生动有趣,激发了学习的积极性。
能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。
课程设计中程序比较复杂,在调试时应该仔细,在程序调试时,注意指针,将不必要的命令去除。
除了课堂外,课程设计是最能学到东西的,最考验人的。
在做课程设计的这段时间,时刻都感到自己学的知识有多么的贫瘠。
经过这次课程设计,让我对C++这门语言有了更深的认识,操作能力有了提高要想是写出的代码能运行,需要耐心细心,毅力以及充沛的体力。
只有经过多次编辑,多次编译,再多次运行,才能编写出更好的程序,有时候需要多次的更正才能达到所要的运行结果。
参考文献
1.《C语言程序设计》,谭浩强,清华大学出版社
2.《C语言程序设计课程设计》,刘振安,机械工业出版
致谢
宇松
#include
#include
classBOOK//定义一个BOOK类,包含7个公有数据成员和2个成员函数
{
public:
intlogin;charname[20];charauthor[20];charsort[20];charpublish[20];charpub_year[20];
floatprice;
voidinput();//成员函数声明
voidoutput();
};
voidBOOK:
:
input()//定义成员函数input(),用于输入图书信息
{
cout<<"\n\t\t输入书名:
";cin>>name;
cout<<"\n\t\t输入作者:
";cin>>author;
cout<<"\n\t\t输入分类号:
";cin>>sort;
cout<<"\n\t\t输入出版单位:
";cin>>publish;
cout<<"\n\t\t输入出版时间:
";cin>>pub_year;
cout<<"\n\t\t输入价格(小数):
";cin>>price;
cout<<"\n\t\t******输入完成******\n";
}
voidBOOK:
:
output()//定义成员函数output(),用于输出图书信息
{
cout<<"\n\t\t登录号:
"<cout<<"\n\t\t书名:
"<cout<<"\n\t\t作者:
"<cout<<"\n\t\t分类号:
"<cout<<"\n\t\t出版单位:
"<cout<<"\n\t\t出版时间:
"<cout<<"\n\t\t价格:
"<}
voidscreen();//自定义函数screen()的声明,该函数用于显示系统主菜单
intcount()//count()用于计算文件中存储有几本书的信息
{
ifstreaminfile("book_information.dat",ios:
:
in|ios:
:
binary|ios:
:
nocreate);
infile.seekg(0,ios:
:
end);//文件指针移到文件尾
returninfile.tellg()/sizeof(BOOK);
}
voidluru()//luru():
实现书目信息录入
{
charp;
cout<<"\n\t\t执行录入功能会删除系统中原有信息,是否继续?
(Y\\N)";
cin>>p;
if(p=='y'||p=='Y')
{
BOOKbo;inti=0;
ofstreamoutfile("book_information.dat",ios:
:
out|ios:
:
binary);//ios:
:
out会删除文件原有数据
if(!
outfile)
{
cout<<"\n\t\t文件打开错误!
";
return;
}
do
{
cout<<"\n\n";
i=i+1;bo.login=