《程序设计基础综合实验》讲义

合集下载

《程序设计》实验讲义(1)

《程序设计》实验讲义(1)
选作题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
实验六文件(必做)
一、实验题目
文件
二、实验课时
课内2课时
三、实验目的
六、考核与报告
1、实验完成后,学生实验过程简要写到实验报告中,并完成心得体会和问题,符合实验教学的要求,并得到指导教师的认可。
2、指导教师对每份实验报告进行审阅。
实验一C语言程序初步(必做)
一、实验题目
C程序的运行环境和编辑程序的方法
二、实验课时
课内2课时
三、实验目的
1、熟悉C语言运行环境。
2、掌握C语言程序的书写格式和C语言程序的结构。
二、实验开设对象
本实验开设对象计科、软件工程专业本科学生,实验为必修内容。
四、指导教师要求
本实验课程教学配1名教师担任实验指导教师,实验室人员配合指导。指导教师应在实验前阐述实验目的、基本方法、基本技术、实验要求等,指导学生在规定的时间内完成相关课程实验。
五、实验设备配置
每人配置1台电脑,安装有VC++ 6.0系统和其他相关组件,要求具有上网条件。
(2)用哪两组数据就可以使程序段中的每个分支都运行一次?这种情形与上面的讨论有何不同?如果为了找出程序中积压分支中的错误,应该使用什么样的数据对程序进行测试?请上机验证自己的结论。
(3)用哪两组数据就可以把判定框中的每个条件运算都进行一次?如果为了测试出判定条件中的错误,应使用哪些数据对程序进行测试?请上机验证自己的结论。
1、文件和文件指针的概念以及文件的定义方法。

C语言程序设计基础实验讲义

C语言程序设计基础实验讲义

《程序设计基础》实验讲义黑龙江大学计算机学院、软件学院《程序设计基础》实验讲义根据《程序设计基础》实验大纲编写,共有十二个实验,其中前十个实验为必做实验,后二个为选作实验,总计36学时。

一、上机实验的目的和要求程序设计是一站实践性很强的课程。

强化实践,是学好程序设计课的重要环节。

所谓强化实践主要包括两个方面:一是多编程序,二是多上机调试,要将这两方面结合起来。

为了培养学生的实践动手能力,作到独立编定程序,必须进行上机实验。

上机实验的目的,绝不仅仅是为了验证教材和讲课的内容是否正确,学习程序设计决不能只停留在书本上和纸面上,还要培养上机调试程序能力。

对于实验者来说,决不能仅仅满足于自己所编的程序能得出正确的结果,而应在实践中积累调试程序的经验。

要把听讲-复习-作业-上机这几个环节有机地结合起来,一环扣一环,前后衔接。

对于每个实验题目,要求学生能够作到,自己编写程序,自己输入程序,自己调节器试程序,自己分析结果。

综上所述,学习C程序设计,上机实验的目的主要为:1.使学生能更好的理解书本上的内容,对于课堂上讲授的语句,语法知识,只有通过上机实践才能作到熟练的掌握。

2.了解和熟悉C语言程序开发的环境。

由于C语言开发环境的种类繁多(UNIX C,Turbo C,MS C等),不同的开发环境具有不同的特点、不同的运行环境设置,要求实验者必须了解自己使用的开发环境所处的软、硬件环境。

3.上机调试程序,关于发现程序中的错误,并能很快排除错误,使得程序能正常运行。

调节器试程序时一方面可以借鉴书本上介绍的经验,另一方面要注重自己直接经验的积累。

上机实验的重要性决不亚于课堂的教学因此要求学生认真对待这个教学环节并应按照一定的规范完成。

上机实验过程通常可以按照如下步骤进行:1.了解实验目的和要求,复习书本上相关的内容。

2.根据经定的题目,事先编好程序,并要经过静态检查,分析可能出现的问题。

3.设计好测试用例。

4.上机输入程序,进行调试,记录调试中出现的问题和采的措施。

程序设计基础(C)实验大纲

程序设计基础(C)实验大纲

《程序设计基础(C)》实验大纲一、实验目的《程序设计基础(C)》是一门实践性很强的程序设计基础课,该课程对提高学生的逻辑分析、抽象思维、程序设计能力具有重要意义。

而上机实践则是学好本课程的十分重要的环节。

为此,认真上机实践,有利于进一步巩固和加深对本课程基本概念和基本知识的理解和掌握,同时,也为后续相关的课程学习打下了必备的技能基础。

上机时,主要完成源程序的编辑、编译、连接和运行。

上机过程将检查程序和算法是否正确、程序的逻辑是否正确、程序的执行顺序是否正确的过程称为调试过程。

上机的各个环节都有可能碰到不少问题,不会一次成功,应针对问题细心地查找原因,逐个解决。

这也是锻炼上机调试能力的好机会,碰到困难时切忌轻易放弃。

学习C程序设计最好的方法就是多上机,程序是调试出来的,不是“编”出来的。

二、实验要求1.内容要求:多文件系统的程序设计输入、输出函数应用循环程序设计分支程序设计数组的应用函数的应用文件操作2.操作要求:首先能够确定算法,在TC或VC环境编辑程序,通过调试产生可执行文件,并对程序的运行效果进行测试。

三、实验课时实验课共_16__学时。

四、实验环境在PC机中应用TC或Visual C++6.0集成开发环境五、实验内容(共_8__ 次)说明:以下为各个实验简介以及目的、任务、要求的描述:实验一 C程序的构成1.实验的基本任务(1)Turbo C或Visual C++6.0集成编译环境(2)了解C程序的结构(3)掌握C程序设计中的保留字与标识符(4)掌握程序设计中的一般语法规则2.实验的基本目的学会顺序程序设计的思想;进一步熟悉Turbo C集成编译环境的使用,达到熟练使用的目的;熟练掌握各种数据类型的常用输入输出格式,并学会使用输入输出函数;学会使用表达式。

3.实验的基本仪器设备和耗材计算机,TC2.0或TC3.0或Visual C++6.04.任务要求的描述【实验1-1】编辑下列程序并运行1)输入下面的程序#include <stdio.h>int main( ){printf(" 欢迎学习C语言程序设计!\n ");return 0;}2)仔细观察屏幕的输入程序,检查程序有无错误。

《程序设计基础(1)》综合程序设计指导书

《程序设计基础(1)》综合程序设计指导书

《程序设计基础(1)》综合程序设计指导书《程序设计基础(1)》综合程序设计是学生在学习完《程序设计基础(1)》(C语言)课程之后的一个综合性、设计性实践教学环节。

在教师的指导下,综合运用已学过的程序设计知识和技能,完成一项较为完整、并具有一定难度的综合程序设计任务。

通过此任务,使学生掌握结构化程序设计的基本方法和基本步骤,培养学生的程序设计综合能力,为后续专业课程的学习打下较好的基础。

一、时间安排时间:1个寒假+3周(15学时)+第4周二、任务要求《程序设计基础(1)》综合程序设计是在完成《程序设计基础(1)》(C语言)课程学习基础上的一个综合性、设计性实践教学环节,要求运用“结构化程序设计”方法,从给定的“设计题目”中选择一个题目,完成一个规模较大的应用程序的设计与开发。

任务完成包括三个阶段,即:1个寒假+前3周(15学时)+第4周。

说明如下:A.阶段1——1个寒假,选题、需求分析、系统设计。

B.阶段2——下学期前3周(15学时),系统实现(编码、调试与运行)。

C.阶段3——下学期第4周,撰写文档和整理系统,提交作品。

作品提交要求:♦内容:每生一个文件夹,命名规则“学号+姓名”,例如:201641402101张三,提交内容包括:文档+系统。

班长汇总后交任课教师。

♦时间:下学期第4周周日前。

三、考核与评分根据学生提交作品,综合考虑软件实现与设计文档两个方面,其中:软件实现:综合考核基本功能实现、系统整体运行、代码编写风格等几个方面。

设计文档:综合考核系统分析、设计、实现、文档排版、总结等几个方面。

成绩评定参考标准:A、优:有完整的符合标准的文档,文档有条理、文笔通顺,格式正确,其中有总体设计思想的论述;软件完全实现设计方案,设计方案先进,软件可靠性好;程序运行顺畅,功能完善,界面友好。

说明:相应的百分制成绩为95分。

B、良:有完整的符合标准的文档,文档有条理、文笔通顺,格式正确;软件完全实现设计方案,设计方案较先进;程序运行正确,主要功能正确,界面良好。

《程序设计基础》实验课程教学大纲.doc

《程序设计基础》实验课程教学大纲.doc

《程序设计基础》实验课程教学大纲1 .课程概况注:(1)平时实5金考核主要是对学生完成每个实验项目的预习、操作、实验报告等的综合考核;(2)笔试或门试主要是对学生掌握实验原理、实验结果分析方法等知识的考核。

2.教学内容及教学安排3.教学要求4.实验的主要仪器设备5.实验指导书和参考书1、《c语言程序设计实验指导书》自编教材2、谭浩强.C程序设计(第四版).北京:清华大学出版社,20103、谭浩强.C程序设计(第四版)学习辅导.北京:清华大学出版社,2010 6 .专业个性化需求补充说明附件:实验教学大纲编写的进一步说明(见下页)附件:实验教学大纲编写的进一步说明1.重新审定实验课程所开设的实验项目,除保留必做的经典演示性、验证性实验项目外,应尽量开设综合性、设计研究类实验项目。

做到各专业有综合性、设计研究类实验项目的实验课程占总实验课程门数的80%以上;力争各专业综合性、设计研究类实验项目数占总实验项目数的30%以上。

2.实验教学大纲中设置的实验项目数应适当多于课程实际必须开设的实验项目数;要求设置选修实验项目,以满足不同教师个性化教学需求和学生不同层次的学习需要。

3.实验项目主要教学内容(内容提要):从实验项目的实验目的、方法和要求等方面简要阐述。

4.实验项目学时:每个实验项目有明确的实验学时数。

因为设置有选做实验项目,各实验项目学时数之和应大于实验课程总学时数。

5.实验项目类型:分为演示性、验证性、综合性、设计研究、其它等。

(1)演示性实验项目:由教师操作,学生仔细观察,验证理论、说明原理和介绍方法。

(2)验证性实验项目:按照实验教材(或实验指导书)的要求,由学生操作验证课堂所学的理论,加深对基本理论、基本知识的理解,掌握基本的实验知识、实验方法、实验技能和实验数据处理,撰写规范的实验报告。

(3)综合性实验项目:可以是学科内一门或多门课程教学内容的综合,也可以是跨学科的综合。

运用多方面知识、多种实验方法,按照要求(或自拟实验方案)进行实验,主要培养学生综合运用所学知识、实验方法和实验技能,分析、解决问题的能力。

《程序设计基础(C语言)》实验指导书

《程序设计基础(C语言)》实验指导书

《程序设计基础(C语言)》实验指导书《程序设计基础(C语言)》目录第 1 章概述 (1)1.1 课程简介 (1)1.2 实验环境选择 (1)第 2 章实验要求 (1)2.1 实验过程要求 (1)2.2 考核及评分标准 (2)第 3 章实验内容 (2)3.1 实验1 熟悉C语言运行环境 (2)3.2 实验2 数据类型 (1)3.3 实验3 运算符和表达式 (4)3.4 实验4 顺序结构及输入和输出 (9)3.5 实验5 选择结构 (12)3.6 实验6 循环结构 (15)3.7 实验7 数组(1) (19)3.8 实验8 数组(2) (21)3.9 实验9 字符串及其操作 (22)3.10 实验10 函数 (23)3.11 实验11 结构体 (25)3.12 实验12 指针 (26)第 1 章概述1.1 课程简介《程序设计基础(C语言)》是软件工程各专业或其它相近专业学生的公共职业基础课,是软件类各专业的入门课程,直接影响学生后继职业技术课程的学习及可持续发展能力的培养。

通过本书,学习基本的程序设计概念和程序设计方法,学会使用C语言解决实际问题,进行初级的程序设计。

1.2 实验环境选择VC++6.0第 2 章实验要求2.1 实验过程要求本课程中,实验者必须服从指导教师和实验室工作人员的安排,遵守纪律与实验制度,爱护设备及卫生。

在指定的实验时间内,必须到机房内实验,其余时间可自行设计和分析。

本课程所涉及的程序代码,都要求有较高的可读性和效率,多文件表示。

2.2 考核及评分标准若实验者在指定上机时间三次不到课,取消考核资格。

请假,必须提前出具正式假条,不接受事后假条。

如果发现抄袭、篡改、伪造实验数据,或实验报告和设计报告雷同,涉及的所有学生的该课程成绩计为0 分。

本课程采用结构化评分,主要由指导教师灵活处理,可以是考勤等。

第 3 章实验内容3.1 实验1 熟悉C语言运行环境一、实验目的1.了解什么是C语言2.熟悉C语言程序开发环境二、实验内容和步骤1.大学生涯的第一个程序1)运行Microsoft Visual Studio 2008或者VC6.02)创建项目,选择win32控制台应用程序或者空项目,项目名为MyFirstApp3)新建项目,选择C++源文件,文件名为HelloWorld4)在程序编辑窗口,输入如下代码#include <stdio.h>/* 主程序*/void main(){printf("hello world\n");}5)执行程序,Ctrl+F56)观察输出结果,并记录2.修改程序1)增加语句,观察输出结果是否不同printf("hello world\n");printf("world is me\n");2)删除输出字符串中的“\n”,观察输出结果是否不同printf("hello world\n");3)进行换行输出,观察输出结果是否不同printf("hello, ");3.2 实验2 数据类型一、实验目的1.掌握变量的命名规则和定义2.掌握C语言程序中的各种数据类型并使用它们二、实验内容和步骤1.定义3个变量numInt、numFloat、charInfo,他们的类型分别为整型,单精度类型,字符型;并分别初始化为2,2.0和‘A’,最后输出这三个变量的值。

《程序设计基础》实践教学

《程序设计基础》实践教学

《程序设计基础》实践教学提纲一:教学目标与内容设计教学目标是指实践教学应达到的学习目标和职业能力培养目标。

程序设计基础实践教学需要提高学生的实践能力,教授基本的程序设计技巧和方法。

内容设计是指教学内容的安排和设计,需要符合学生的学习水平和实践需求。

在程序设计基础实践教学中,教学目标包括:1)掌握基本的编程语言和程序设计技巧;2)培养编写程序的实践能力;3)能够根据实际需求设计和编写简单的程序应用。

教学内容的设计应包括基本的编程语言、程序设计基础知识、算法分析等内容。

同时,还应该结合实际应用,引导学生进行实践操作,例如:网站设计、软件开发等。

提纲二:教学方法和手段教学方法和手段指实践教学中所采用的教学方式和教学资源。

有效的教学方法和手段对于提高学生的实践能力和创造力至关重要。

在程序设计实践教学中,应采用交互式的教学方式,鼓励学生参与练习和讨论,激发创新思维。

同时,应该建立合理的实验室设备和软件环境,为学生提供良好的学习和实践条件。

提纲三:教学质量评估教学质量评估是指对实践教学过程和效果进行评估的措施。

良好的教学质量评估可以帮助教师及时发现存在的问题并采取有效措施予以解决,提高实践教学效果。

在程序设计实践教学中,应采用多种教学质量评估措施,例如:作业、实验报告、考试等方式来评估学生的学习成果。

同时,学生对课程的反馈也是很重要的评估指标,可以帮助教师改善教学质量。

提纲四:教学团队建设教学团队建设是指通过合理的组织架构和职能分工,搭建合理的教学团队,提高教学质量。

应通过合理的教学团队建设,实现教学、科研、实践相互交融,提高教学效果。

在程序设计实践教学中,应建立合理的教学团队,包括教师、研究生、助教等,充分发挥各自的特长和优势,完善课程设置和教学内容,提高教学效果。

提纲五:教学实践案例教学实践案例是指成功的教学案例和经验分享,可以为教学实践提供有价值的参考。

应采用多样化的教学实践案例,包括不同层次的教学实践案例,做到有针对性地进行教学实践。

C程序设计基础与实验课件

C程序设计基础与实验课件

《C程序设计基础与实验》讲义李晓东一、实验报告要求1、统一采用工程技术学院实验报告纸;2、实验报告标题栏相关信息填写完整,学号不能简化,实验日期据实填写;3、当实验报告多于1页时,将其叠放整齐,在左上方用一颗订书钉装订;4、实验报告按时提交,下次实验课时交上一次实验报告,不受理个别补交。

实验报告统一交学习委员,学习委员按学号从小到大顺序整理好后交给老师;5、实验报告内容5.1实验题目(见实验讲义);5.2实验内容(见实验讲义);5.3算法设计(根据题目及内容,按实际完成情况写);5.4关键代码(摘抄部分重要代码,不是全部代码);5.5调试过程(实验过程中遇到的问题及其如何处理的,据实写);5.6实验结果(输入是什么?输出是什么?是否达到设计要求);5.7意见及建议(选写)。

二、实验题目及内容1、实验一顺序结构程序设计1.1 实验内容用公式法编程计算一元二次方程ax2+bx+c=0的根,a,b,c由键盘输入。

1.2 算法设计(1)通过键盘输入a,b,c;(2)利用一元二次方程求根公式,计算根;(3)输出根。

1.3 参考程序#include “stdio.h”#include “math.h”void main(void){flaot a, b, c, x1, x2;scanf(“%f%f%f”, &a, &b, &c);x1 = (-b + sqrt(b * b – 4 * a *c)) / (2 * a);x2 = (-b - sqrt(b * b – 4 * a *c)) / (2 * a);printf(“x1 = %0.3f, x2 = %0.3f\n”, x1, x2);}2、实验二选择结构程序设计2.1 设三角形的三个边长分别为a, b, c,从键盘输入三个边长,判断该三角形的类型(等边三角形,等腰三角形,直角三角形,等腰直角三角形)并输出,如果不能构成三角形,输出错误信息。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《程序设计基础综合实验》讲义综合实验又称为课程设计,需要学生综合运用所学知识解决与实际应用紧密结合的、规模较大的问题,通过分析、设计、编码和调试等各环节的训练,使学生深刻理解、牢固掌握、综合运用数据结构和算法设计技术,增强分析问题、解决问题的能力,培养项目管理与团队合作精神。

本课程要求实验采用基本的软件工程开发方法,将软件开发过程分为需求分析、系统设计、编码实现、系统测试4个阶段。

每个阶段设置相应的里程碑进行检查,对学生的设计过程进行评价。

(1)需求分析阶段首先要充分分析和理解问题,明确要求做什么?限制条件是什么?即要确定需要实现那些功能(任务),并对所需完成的任务做出明确的回答,如,输入数据的类型、值的范围及输入的形式;输出数据的类型、值的范围及输出的形式;若是会话式输入,结束标志是什么?是否接受非法输入?对非法输入的回答方式是什么等。

另外,还应该为调试程序准备好测试数据,包括合法的输入数据与非法的输入数据。

同时,实验小组应该对设计工作进行分工,并形成小组成员通过的书面记录。

(2)概要设计和详细设计阶段设计通常分为概要设计与详细设计两步。

在进行概要设计时,确定数据的逻辑结构,并要求按照自顶向下逐步求精的原则划分模块,画出模块间的调用关系图。

在进行详细设计时,要求定义数据的存储,并画出各模块(函数)的程序流程图或写出伪代码。

(3)编码实现阶段在详细设计的基础上,用特定的程序设计语言编写程序。

良好的程序设计风格可以保证较快地完成程序测试。

程序的每行不要太长,每个函数不要太大,当一个函数太大时,可以考虑将其分解为较小的函数。

对函数功能、核心语句、重要的类型和变量等应给出注释。

一定要按凹入格式书写程序,分清每条语句的凹入层次,上下对齐层次的括号,以便发现语法错误。

(4)测试阶段采用测试数据进行测试,列出实际的输入、输出结果、预期结果。

(5)总结与整理报告阶段调试正确后认真整理源程序及注释,提交带有完整注释且格式良好的源程序,并撰写课程设计报告。

课程设计报告中除了上面提到的分析、设计过程外,还用给出下面几方面的内容。

①调试分析:调试过程中主要遇到哪些问题?如何解决的?②算法分析:核心算法的时间复杂性与空间复杂性分析。

③改进设想、经验和体会。

一、图书管理信息系统的设计与实现 (难度系数:1)1.问题描述图书管理信息系统实现图书馆馆藏图书的信息管理与图书借阅。

图书管理信息系统包括用户管理、读者管理、图书管理、图书流通功能。

2.整体要求该系统应具有合理的界面设计,并易于操作;编码风格良好;该系统用控制台程序即可实现;编程语言为C语言,编程环境为VC++ 6.03.设计要求(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)要求建立如下文件:1)建立用户文件,包括用户的如下信息:用户名(可用读者号)、用户密码、用户类型用户类型可分为:管理员和普通用户。

管理员可以使用系统的所有功能,普通用户只可以查询图书及借阅情况。

2)建立读者文件,包括读者的如下信息:读者号、读者名、单位、联系方式、可借书数、已借书数3)建立与图书有关的如下文件。

●图书主文件,包括图书的如下信息:记录号、书号、书名、作者、出版社、藏书量、借出数、指针1、指针2、指针3图书主文件可以按主关键字(书号)有序或无序。

●书号(主关键字)索引表,必须按书号有序。

该索引表包括如下信息:书号、该书号对应记录在主文件中记录号●书名(次关键字)索引表,包括如下信息:书名、链头指针、长度●作者(次关键字)索引表,包括如下信息:作者、链头指针、长度●出版社(次关键字)索引表,包括如下信息:出版社、链头指针、长度图书主文件和三个次关键字索引表的样例分别如表1至表4所示。

表1 图书主文件记录号书号书名作者出版社藏书量借出数指针1指针2指针31 1021 数据库杨艳人民邮电10 8 0 0 02 1014 数据结构赵鹏高等教育9 7 0 0 03 1106 操作系统金虎人民邮电8 6 0 0 14 1108 数据结构高扬清华大学75 2 0 05 1203 程序设计杨艳高等教育9 4 0 1 26 2105 数据库金虎清华大学7 3 1 3 47 1012 数据结构杨艳人民邮电8 2 4 5 38 0109 程序设计赵鹏清华大学9 1 5 2 6表2 书名次关键字索引表书名链头指针长度数据库 6 2数据结构7 3操作系统 3 1程序设计8 2表3 作者次关键字索引表作者链头指针长度杨艳7 3赵鹏8 2金虎 6 2高扬 4 1表4 出版社次关键字索引表出版社链头指针长度人民邮电7 3高等教育 5 2清华大学8 34)建立借还书文件,包括如下信息:读者号、书号、借书日期、还书日期4.设计思想下面将给出一些核心算法的设计思想。

(1)“登录系统”算法的设计思想打开“用户文件”,读入文件内容,建立相应的链表。

请用户输入用户名及密码。

若用户名或密码输入不正确,最多允许尝试三次。

用户名与密码输入正确时,记住当前用户类型。

当该用户为图书管理员时,打开“图书主文件”及所有的“索引表文件”,分别将文件内容读入相应的一维数组中,打开“借还书文件”,建立相应的链表,打开“读者文件”,建立相应的链表;当该用户为系统管理员时,打开“读者文件”,读入文件内容,建立相应的链表;当该用户为普通读者时,打开图书主文件及所有的索引表文件,分别将文件内容读入相应的一维数组中,并关闭所有打开的文件。

普通读者只能选“用户管理”功能项中“用户密码修改”子功能和“图书管理”功能项中“图书信息查询”子功能;图书管理员只能选“图书管理”和“图书流通管理”功能项;系统管理员只能选“用户管理”和“读者管理”功能项。

需要根据用户类型显示相应的菜单,请用户选择功能项。

当退出系统时,需将各个链表和数组中的内容写回相应的文件。

(2)“图书信息输入”算法的设计思想在输入图书信息时建立图书主文件,在图书主文件中记录号从1开始。

根据设计要求,在建立图书文件的同时,需要建立一个主关键字(书号)索引表。

索引表按书号升序排列(用插入排序法),索引表可以先在内存中用一维数组实现,最后再将相应内容一并写入(外存)文件。

根据设计要求,图书文件除了主关键字(书号)索引表外,还需要建立书名、作者、出版社三个次关键字索引表。

次关键字索引表可采用头插法建立,具体做法是:根据一个主文件的记录,将要建立索引的次关键字与对应的次关键字索引表中的次关键字(如书名、作者、出版社)进行比较,若有相等的,就将主文件中的相应指针修改为索引表中的当前链头指针,并修改相应索引表中的链头指针为当前主文件的记录指针(即记录号),同时将长度加1;若没有相等的,就将主文件中的相应指针置为0,并在相应次关键字索引表中增加与该次关键字相关的一条记录,该记录的链头指针置为当前主文件的记录号,而将长度置为1。

(3)“图书信息查询”算法的设计思想按书号查询时,由于图书文件已按书号建立了索引表,该索引表是按书号有序的,因此,在该索引表中可采用二分查找算法。

按书名查询时,先顺序查找书名次关键字索引表,找到相应的书名,取到该书名链头指针后,再回到图书主文件中顺链依次找出所有具有该书名的书。

按作者和出版社查询时,与按书名查询方法类似。

(4)“借书处理”算法设计思想图书管理员输入读者号、书号、借书日期。

系统检查读者是否为合法读者,若不是,显示提示信息,并返回;若是,则进一步检查读者借书数量是否超出限额。

相关文档
最新文档