12-小组-大作业.doc
文本预览下载声明
Hefei University
面向过程程序设计大作业报告
BACHELOR DISSERTATION
项目题目: 图书管理系统的设计与实现
年级系别专业班级:15级电子系通信工程(二)班
组员姓名: 张凯 谢跃兵 李亚南
导师姓名: 方小红
完成时间: 2016.6.16
目录
一.基本概念 1
1.C/C++语言的特点 1
2.指针的使用方法 1
3.数组传递技术 1
二.需求分析 1
三.概要分析 2
四.界面设计 2
五. 模型设计 3
六. 模块设计 5
1.Main.cpp文件 5
2.Menu.cpp文件 6
3.Input.cpp文件 7
4.Output.cpp文件 8
5.Search.cpp文件 9
6.Delete.cpp文件 10
7.Keep.cpp文件 11
8.Load.cpp文件 12
9.Menu.h文件 13
10.BookManager.h文件 13
11.Book.h文件 13
七.运行测试 14
八.项目总结 16
九.课程心得 16
张凯的心得: 16
李亚南的心得: 17
谢跃兵的心得: 17
十.致谢 17
十一.参考文献 17
中 文 摘 要
对于本次实验,工程要求包含图书的数据输入功能,数据的显示(输出)功能,数据查询(按照作者姓名查询)功能,数据删除(根据输入图书序号)功能,图书数据保存功能和调用图书数据功能。针对这些我们运用到选择语句,循环语句,结构体,数组,指针,宏定义等方式共同创建工程代码。我们的大致思路是:首先针对每个功能进行创建工程代码,以结构体,数组形式表示图书的编号、书名、作者姓名、价格、书籍出版社、书籍ISBN。运用循环语句将每本书的数据依次输入、输出、保存、调用;根据指针,地址传递的方式(根据输入的编号)删除图书数据;根据指针,地址传递的方式(根据输入的作者姓名)查询并输出该图书的数据。然后创建程序起始页面(Menu)模块。最后创建主模块将所有的模块连接起来(使用函数调用,传递地址)。通过以上三步将程序代码串联在一起,并结合相应的头文件声明来结束这个工程。通过调试,使工程达到预期要求。
关键词:结构体;数组;指针;宏定义;循环
一.基本概念
1.C/C++语言的特点
C语言兼有高级语言和低级语言的特点:
①高级语言特点:语言简洁,运算符丰富,使用灵活方便,适合结构化编程。
②低级语言特点:可操作内存单元和数据位操作,目标代码质量高,适合开发系统软件和嵌入式软件。
C++保留了C的所有特点(编译生成的目标代码质量、效率只比C稍差),并在其基础上增加了面向程序设计的语法,更容易完成复杂环境模型建立和问题解决。
2.指针的使用方法
指针的使用包含三个步骤:
⑴抛地址(抛钥匙或抛绣球)
如:调用交换模块代码:swap(a,b),实参a、b分别是a、b的地址,也就是抛地址。当一个模块中的变量需要在另一个模块中即时改变,除了将这些变量地址抛出去之外,别无他法。
⑵类型匹配(门当户对)
交换模块定义头部:如:void swap(0int *pA,int*pB),定义了两个形参,这两个形参的类型是整数型的指针变量,必须与抛过来的地址类型匹配。当然,一切函数参数传递都要遵循类型匹配这个规则,匹配有两个含义:第一,要求相同类型;第二,数据个数相同。
⑶使用间接方式操作(芝麻开门)
如:在swap模块内部使用pA和pB的时候,前面都加上了指针运算符*,这是间接操作数据方式(芝麻开门)。读者揣测一下发送者和接收者的心思,接收者接到了地址接着就是对*pA和*pB操作。
3.数组传递技术
⑴传地址
数组名实质是一个固定地址,数组名作为实参传递,实际是将这个数组的头地址传过去(抛过去的不是一个数,是一把打开宝库的钥匙)。自定义函数的形参拿到了头地址(钥匙)后,实质上控制了原来的数组,就可以按图索骥地改变原来数组中的元素内容。所以,自定义模块sort的形参形式float pArray[N]等价于float *pArray,本质上是指针变量。正是由于数组名作为函数参数传递的实质是地址传递,所以不需要显示ruturn语句。
⑵传长度
Float pArry[N]等价于float *pArry,这说明Float pArry[N]中的N可有可无。事实上,sort模块的头部写成:void sort(float p
显示全部