《程序设计基础综合实验》讲义
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《程序设计基础综合实验》讲义
综合实验又称为课程设计,需要学生综合运用所学知识解决与实际应用紧密结合的、规模较大的问题,通过分析、设计、编码和调试等各环节的训练,使学生深刻理解、牢固掌握、综合运用数据结构和算法设计技术,增强分析问题、解决问题的能力,培养项目管理与团队合作精神。
本课程要求实验采用基本的软件工程开发方法,将软件开发过程分为需求分析、系统设计、编码实现、系统测试4个阶段。每个阶段设置相应的里程碑进行检查,对学生的设计过程进行评价。
(1)需求分析阶段
首先要充分分析和理解问题,明确要求做什么?限制条件是什么?即要确定需要实现那些功能(任务),并对所需完成的任务做出明确的回答,如,输入数据的类型、值的范围及输入的形式;输出数据的类型、值的范围及输出的形式;若是会话式输入,结束标志是什么?是否接受非法输入?对非法输入的回答方式是什么等。另外,还应该为调试程序准备好测试数据,包括合法的输入数据与非法的输入数据。同时,实验小组应该对设计工作进行分工,并形成小组成员通过的书面记录。
(2)概要设计和详细设计阶段
设计通常分为概要设计与详细设计两步。
在进行概要设计时,确定数据的逻辑结构,并要求按照自顶向下逐步求精的原则划分模块,画出模块间的调用关系图。
在进行详细设计时,要求定义数据的存储,并画出各模块(函数)的程序流程图或写出伪代码。
(3)编码实现阶段
在详细设计的基础上,用特定的程序设计语言编写程序。良好的程序设计风格可以保证较快地完成程序测试。程序的每行不要太长,每个函数不要太大,当一个函数太大时,可以考虑将其分解为较小的函数。对函数功能、核心语句、重要的类型和变量等应给出注释。一定要按凹入格式书写程序,分清每条语句的凹入层次,上下对齐层次的括号,以便发现语法错误。
(4)测试阶段
采用测试数据进行测试,列出实际的输入、输出结果、预期结果。
(5)总结与整理报告阶段
调试正确后认真整理源程序及注释,提交带有完整注释且格式良好的源程序,并撰写课程设计报告。
课程设计报告中除了上面提到的分析、设计过程外,还用给出下面几方面的内容。
①调试分析:调试过程中主要遇到哪些问题?如何解决的?
②算法分析:核心算法的时间复杂性与空间复杂性分析。
③改进设想、经验和体会。
一、图书管理信息系统的设计与实现 (难度系数:1)
1.问题描述
图书管理信息系统实现图书馆馆藏图书的信息管理与图书借阅。图书管理信息系统包括用户管理、读者管理、图书管理、图书流通功能。
2.整体要求
该系统应具有合理的界面设计,并易于操作;
编码风格良好;
该系统用控制台程序即可实现;
编程语言为C语言,编程环境为VC++ 6.0
3.设计要求
(1)登录系统时,要求用户输入用户名与密码,用户名与密码无误方可使用系统,最多可以尝试三次。用户分为:普通读者、图书管理员、系统管理员三种。普通读者只能使用“用户管理子系统”中“用户密码修改”功能和“图书管理子系统”中“图书信息查询”功能,另外普通读者可以自行注册;图书管理员只能使用“图书管理子系统”和“图书流通管理子系统”;系统管理员只能使用“用户管理子系统”和“读者管理子系统”。
(2)图书管理信息系统包括:用户管理、读者管理、图书管理、图书流通管理这四个子系统。“图书管理信息系统”主菜单要求包含如下选项:
**********************************
1.用户管理
2.读者管理
3.图书管理
4.图书流通管理
5.退出系统
***********************************
要求在选择退出功能之前,可以反复选择系统的各项功能使用系统。
1)用户管理子系统:
应包括用户信息输入、用户信息修改、用户信息删除、用户信息显示、用户密码
修改等功能。其中“图书管理员”和“普通读者”只能使用“用户密码修改”功
能。普通用户注册功能可根据自身情况酌情实现。
“用户管理”菜单要求包括如下选项:
*******************
1. 用户信息输入
2. 用户信息修改
3. 用户信息删除
4. 用户信息显示
5. 用户密码修改
6. 返回主菜单
*******************
“用户管理子系统”要求用文件与链表实现。
2)读者管理子系统:
应包括读者信息输入、读者信息修改、读者信息删除、读者信息按名查询等功能。
“读者管理”菜单要求包括如下选项:
*******************
1. 读者信息输入
2. 读者信息修改
3. 读者信息删除
4. 读者信息查询
5. 读者信息显示(按读者姓氏排序)
6. 返回主菜单
*******************
“读者管理子系统”要求用文件与链表实现。
3)图书管理子系统:
至少应包括图书信息输入、图书信息修改、图书信息查询、汇总统计等功能。其它功能(如图书订阅、图书编目、新书通报等功能)可根据自身情况酌情实现。
“图书管理”菜单至少要求包括如下选项:
*******************
1. 图书信息输入
2. 图书信息修改
3. 图书信息查询
4. 汇总统计
5. 返回主菜单
*******************
普通用户只能使用其中的图书信息查询和图书数目统计功能(功能3和功能4),当普通用选择其它功能时应告知不能使用。
在“2. 图书信息修改”中,只要求提供对“藏书量”和“借出数”的修改功能。
如果在“图书管理”的菜单中选择了“3. 图书信息查询”,系统应提示如下子菜单:*******************
1. 按书号查询
2. 按书名查询
3. 按作者查询
4. 按出版社查询
5. 返回主菜单
*******************
“图书管理子系统”要求用文件和顺序表实现。
4)图书流通管理子系统:
至少应包括借书处理和还书处理功能。其它功能(如预约处理、逾期处理等功能)可根据自身情况酌情实现。普通用户只能使用预约处理功能。
“图书管流通理”菜单至少要求包括如下选项:
*******************
1. 借书处理
2. 还书处理
3. 返回主菜单
*******************
“图书流通管理子系统”要求用文件和顺序表实现。
(3)要求建立如下文件: