课程设计指导书

发布 2022-10-02 09:35:28 阅读 8889

软件技术基础。

第一版)前言。

计算机技术的飞速发展正在引发新一轮世界性技术革命。在经济发展越来越全球化、科技创新越来越国际化、知识经济已初见端倪的今天,任何一门技术或任何一个领域离开了计算机恐怕都是不可想象的。然而计算机技术发展之迅速、计算机及其相关it产品市场竞争之激烈、计算机产业让人致富之迅猛也同样是人们始料不及的。

在新世纪,任何想在技术领域有一番作为的人,恐怕都不得不面对计算机技术的挑战。

学习计算机软件技术,除了需要刻苦努力外,还需要掌握软件和操作系统以及数据库的原理与设计技巧。这些原理与技巧可以说是计算机前辈们一代接一代不停努力的结晶,学习和掌握它们对于激发自己的创造力和想象力是很有帮助的。

如何学习和掌握操作系统以及数据库技术的原理与实际技巧呢?除了听课和读书之外,最好的办法恐怕就是在实践。例如,自己设计开发一个小型操作系统和一个数据库应用系统等。

本书是一本配合《软件技术基础》课程的实验指导书,共收集了供广大同学实践的多个实验,除了给出题目外,还附带了大量的有效提示,在不降低实验难度的基础上,给读者最大的启发性提示。当然,这些提示只是一种参考,里面完全可能存在错误和不妥之处,有待于各同行的指教,读者可以不局限于这些提示。

本书的编写得到了本学院电子信息与通信工程系各位老师的大力帮助和支持,在此,编者对他们表示衷心的感谢!

衷心希望本书能对学习软件技术基础的人有所帮助。

编者。2024年5月于长沙

第一章课程设计的目的、内容和要求。

培养学生的实际动手能力,将课堂所学的理论知识运用到实践中来,从而提高对《软件技术基础》这门课的认识。

课程设计内容包括三个部分:数据结构、操作系统、数据库设计及应用。

1. 每位同学准备实验本,上机前作好充分的准备工作,设计好每次实验的内容,事先熟悉与实验有关的软硬件环境。

2. 实验时遵守实验室的规章制度,爱护实验设备,不得私自将使用的计算机加密码,影响其他同学的上机。原则上每人固定实验设备,由始而终地进行实验,对于实验设备出现的问题,要及时向指导老师汇报。

3. 统一以以下格式命名本人的实验文件:

班级][学号]_[实验题号].[扩展名]

例:通信021班学号为03的学生第四个实验的文件名为:t02103_

4. 最终的实验报告按照要求书写(或打印),按时上交,仔细记录实验中的数据、源程序、实验结果,对于实验过程**现的问题或疑惑要一并书写,并作为重点加以思考。

5. 实际上机操作和书面报告结合检查。

第二章课程设计的步骤和报告规范。

课程设计的步骤:

一、 问题分析和任务定义。

在设计之前,首先应该充分地分析和理解问题,明确问题要求做什么?限制条件是什么?对所需完成的任务作出明确的回答。

二、 系统设计。

系统设计分为逻辑设计和详细设计两步。逻辑设计指的是,对问题描述中的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义软件模块结构图;详细设计则为定义相应的存储结构,并写出各函数模块的伪码算法。

三、 编码实现和调试。

四、 总结和整理课程设计报告。

课程设计报告规范:

课程设计报告的开头应给出题目、专业、班级、学号、姓名、指导老师和完成日期,并包括以下七个内容:

一、问题描述。

二、基本要求。

三、数据结构的设计。

四、软件模块结构图。

五、程序设计思想。

六、程序流程图。

七、源程序。

八、调试分析。

九、测试数据。

十、用户使用手册。

十。一、心得体会。

第三章课程设计选题。

数据结构方向(ⅰ)

—1最短路径。

问题描述:试设计一个程序,求图中一个源点到其他各顶点的最短路径。要求:

1)用邻接表表示图。

2)按长度非递减次序打印输出最短路径的长度及相应的路径。

—2简单编译器的实现(括号配对检查)

问题描述:通常在程序调试时都有对源**编译的过程,而对左右括号是否匹配也是编译过程中的一个重要环节,试设计一个程序对任意输入的语句或数学表达式,判断其左右括号是否匹配。

—3实现二叉树中所有结点左右子树的交换。

问题描述:对任意一棵二叉树,试将其所有结点的左右子树交换。并将交换前后的不同二叉树分别用层序、前序、中序和后序四种不同的方法进行遍历。

—4哈夫曼树在通信编码中的应用。

问题描述:设一份电文中有不同出现频率的字符,为了提高电文的输入和翻译效率,必须有一套简短而又不会产生歧义的字符**。试根据哈夫曼算法,对电文中的不同字符,构造出一棵哈夫曼树,对每个字符进行编码。

—5二叉排序树查找。

问题描述:二叉排序树查找是指按照二叉排序树中结点的关系进行查找,查找关键字首先同树根结点进行比较,如果相等则查找成功;如果比根结点小,则在左子树中查找;如果比根结点大,则在右子树中进行查找。

—6学生成绩统计、排序的实现。

问题描述:在学生成绩管理中,经常会遇到求平均成绩,统计不及格学生成绩,统计优秀学生人数,以及按成绩对学生进行排名等。现假设有某个班级的若干名学生,每个学生都考试完成了4门课程,试对所有学生的成绩完成以下工作:

1)求每门课程的平均成绩。

2)输出所有有不及格课程的学生的学号、姓名、全部课程的成绩、平均成绩。

3)输出所有平均分在90分以上(含90分)的学生学号、姓名。

4)对4门课程中的任何一门,可随意抽取1门按学生成绩进行排序。

—7多种基本内排序方法的实现。

问题描述:设计一个合成的排序程序。可供排序的方法是:

插入排序、快速排序、归并排序、基数排序。要求程序具有(1)显示排序结果。(2)提供最好和最坏情况下对比计时的功能。

(3)提供在不同数组元素的个数情况(当n分别等于100,1000,5000时)下各种排序算法的计算时间的统计功能。

—8工程造价最小问题。

问题描述:如果以无向网表示n个城市之间的交通网络建设规划,顶点表示城市,边上的权表示该线路的造价,试设计一个方案,使这个交通网的总造价最小。

—9旅游导游系统问题。

问题描述:假设一个旅游景区由n个不同景点组成(有向网),并用带权邻接矩阵表示,权值表示两个景点间的步行时间,试编写程序求任意两个景点间的最短步行时间。

—10拓扑排序问题。

问题描述:采用适当的存储结构,实现有向网的存储,建立,输入,显示,以及实现对有向无环图的拓扑有序序列的输出。

—11迷宫问题。

问题描述:从迷宫的入口开始寻找一条到出口的路径。要求显示迷宫的布局,及找到的路径(最好显示寻找路径的过程)。走到某一步后,假定往下有四个方向的可能,即上、下、左、右四个方向。

—12简易文本编辑器的实现。

问题描述:一个简易文本编辑器的功能包括:(1)文本文件的保存,读入;(2)字符的输入、修改、删除、换行;(3)利用模式匹配实现文本中字符串的定位。

—13运动会分数统计。

问题描述:某学校开运动会,共有m个班参加,比赛设有n个男子项目和l个女子项目。假设项目编号为1~n,n+1~n+l,并且假设编号为偶数的项目取前5名,得分顺序为7,5,3,2,1,编号为奇数的项目取前3名,得分顺序为5,3,2。

请编写出一个统计程序以产生:各班成绩单(包括各班所得的各项成绩的项目号,名次,姓名和得分);团体总分报表(包括班级,男团总分,女团总分和团体总分);

可假设m≤20,n≤15,l≤10,姓名长度不超过20个字符。每个项目结束时,将其编号、类型符(区分取前5名还是取前3名)输入,并按名次输入运动员的姓名、班级、成绩。

—14停车场管理。

问题描述:设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按其到达时间的先后顺序,依次由北向南排队(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车辆内停满n辆汽车,则后来的汽车只能在门外的便道等候。

一旦有车开走,则排在便道上的第一辆车即可开入。当停车场内某辆车要离开时,在它之后开入的车辆必须退出车场让路。待该辆车开出大门后,退出的车辆再按原次序进入车场。

离开停车场的每辆车必须按它停留的时间交纳费用。试为停车场编制按上述要求管理的模拟程序。

—15图遍历的演示。

问题描述:很多涉及图上操作的算法都是以图的遍历操作为基础的,试编一个程序,演示在连通图的无向图上行遍全部结点的操作。

操作系统方向(ⅱ)

—1试模拟生产者—消费者问题。

问题描述:有一群生产者进程在生产消息,并将此消息提供给消费者进程去消费,为使生产者进程和消费者进程能并发执行,生产者与消费者可以通过一个环形缓冲池联系起来,环形缓冲池由n个大小相等的缓冲区组成,每个缓冲区容纳一个消息。每个生产者可不断地每次往缓冲池中送一个消息,而每个消费者则可不断地每次从缓冲池中取出一个消息消费。

尽管所有的生产者进程和消费者进程,都是以异步方式运行的,但它们之间必须保持同步,即不允许消费者进程到一个空缓冲区去取消息,也不允许生产者进程向一个已装有消息且尚未被取走消息的缓冲区中投放消息。请用信号量及pv操作实现这一组进程的工作过程。

—2试模拟读者—写者问题。

问题描述:某数据库有一个写进程,多个读进程,它们之间读、写操作的互斥要求是:写进程运行时,其它读、写进程不能对数据库操作;读进程之间不互斥,可以同时读数据库。

请用信号量及pv操作实现这一组进程的工作过程。

—3试模拟分时调度算法原理。

问题描述:分时轮转调度算法是系统把所有就绪进程按先后次序排队,处理机总是优先分配给就绪队列中的第一个就绪进程,并分配它一个固定的时间片(如100毫秒)。当该运行进程用完规定的时间片时,被迫释放处理机给下一个处于就绪队列中的第一个进程,分给这个进程相同的时间片,每个运行完时间片的进程,当未遇到任何阻塞时,就回到就绪队列的尾部,并等待下次转到它时再投入运行。

于是,只要是处于就绪队列中的进程,按此种算法迟早总可以分得处理机投入运行。模拟实现这一组进程的工作过程。

—4试模拟最高响应比调度算法原理。

问题描述:从就绪队列中选择一个响应比最高的进程,让其获得处理器执行,直到该进程完成或因等待事件而退出处理器为止。模拟实现这一组进程的工作过程。

—5试模拟多级反馈队列调度算法原理。

问题描述:根据进程的类型或性质的不同,将就绪进程分为若干个独立队列,不同类型或性质的进程固定地分属于一个队列,每个队列可以采用适合的调度算法,不同的队列可使用不同的调度算法。各个队列有不同的优先权。

各个队列进程执行的时间片的大小也各不相同。仅当第一个队列空闲时,调度程序才调度第二个队列中的进程执行,仅当第1—i个队列空闲时,调度程序才调度第i+1个队列中的进程执行。模拟实现这一组进程的工作过程。

课程设计指导书

2014年春季学期。沈阳城市建设学院。课程设计名称单向板肋梁楼盖设计 适用年级 专业 安全12级。指导教师 张晚来 田悦。2014 年 6 月 1 日。一 基本思路 此课程设计必须是在已学 土木工程结构 有关章节的基础下进行的,所以在设计前要通读教材中 受弯构件承载力计算 和 钢筋混凝土梁板结构设计...

课程设计指导书

暖通空调 空调部分。集美大学机械工程学院。制冷空调教研室。2007年12月。暖通空调 空调部分课程设计指导书。一 题目。北京市某综合大楼空调系统设计。二 建筑资料。1.该大楼各层建筑平面图。2.建筑参数 该建筑共分为三部分 地下室为空调机房和车库。一至二层为商场,层高5米。梁高0.6米。三至六层为客...

课程设计指导书

材料成型工艺课程设计指导书。本课程设计包括以下内容 一 编制焊接工艺规程 二 编制焊接工艺卡片 三 编制装配工艺过程卡片 四 设计焊接工装夹具。一 编制焊接工艺规程 按行业标准 1 范围。2 规范性引用文件。3 焊接工艺规程内容。3.1 材料。3.1.1 母材。3.1.2 焊接材料。3.2 主要设备...