嵌入式系统开发技术课程设计指导书Word文件下载.docx
- 文档编号:22523744
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:22
- 大小:29.55KB
嵌入式系统开发技术课程设计指导书Word文件下载.docx
《嵌入式系统开发技术课程设计指导书Word文件下载.docx》由会员分享,可在线阅读,更多相关《嵌入式系统开发技术课程设计指导书Word文件下载.docx(22页珍藏版)》请在冰豆网上搜索。
网络聊天程序是目前应用极为广泛的一种网络软件,对于方便人们的交流沟通非常有效,同时,作为一种典型的网络应用,编写网络聊天程序是学习基于Linux的网络编程的有效方法。
(1)课程设计目的
本课题设计是在使用Linux线程和Socket接口的基础上,编写网络聊天程序,从而掌握Linux应用程序开发的基本方法,练习Linux线程及Socket编程的方法,从而将所学知识融会贯通。
(2)课程设计要求
本课题所设计的系统要求实现以下功能。
●实现在服务器的控制下,完成多人聊天,鉴于实验条件的限制,采用单机多终端模拟方式。
●在服务器端,使用多线程机制,为多个用户服务。
●服务器能够对要求接入的客户端进行身份识别,完成聊天数据的转发,并能够将不同用户聊天记录存档。
●要求给出编译所用到的makefile文件。
(3)课题人数:
2人
2、守护进程的设计
守护进程是Linux中一类特殊的进程,是实现系统服务的常见方式,也是需要长时间运行于后台的用户程序所常采用的一种形式,因此,学习如何编写守护进程,对于全面掌握Linux程序设计具有重要意义。
本课程设计在掌握Linux进程的创建的基础上,掌握守护进程的实现方式,掌握文件的操作方法,还应掌握日志文件的操作方法。
●实现守护进程功能。
●每隔10秒将当前运行的进程信息记录到日志文件中。
●创建进程,将上述信息在屏幕上显示出来。
1人
3、多进程程序的设计
嵌入式系统软件的实时性是其非常重要的特性,采用多进程设计可以提高系统的效率,增强系统的实时性,因此,掌握多进程编程,是学习嵌入式Linux必须达到的目标
本课程设计通过设计多进程程序,掌握创建多进程的方法,掌握通过有名管道实现进程之间的通信,掌握进程中运行现有程序的方法。
●创建子进程1及子进程2。
●子进程1创建子进程A、B,子进程1等待子进程A、B退出后退出。
●子进程A、B之间通过有名管道FIFO1进行通信,实现生产者-消费者功能。
●子进程2创建子进程C、D,子进程C运行“ls–l”命令,子进程D通过有名管道FIFO1作为消费者与进程A通信。
4、进程通信机制的应用
进程管理是操作系统的重要功能,进程之间要完成相互之间的同步与互斥,实现相互之间的通信,Linux中有多种进程间通信的方式,掌握进程间通信程序的设计,是开发多进程实时应用软件必须的目标。
通过本课程设计,掌握进程的创建方法,掌握消息队列、信号量等通信机制的实现方法。
●编写3段程序,分别使用1个终端运行它们,使用下面的通信机制完成所需功能。
●程序1:
接受用户输入的信息,包括:
help、alarm1、alarm2、quit,并将这些信息分别发送给程序2和程序3。
●程序2与程序1通过消息队列1进行通信,当收到help信息后,打开帮助文件helpfile,读取其中的内容,显示出来;
当收到quit后,退出程序。
●程序3创建2个子进程。
程序3与程序1通过消息队列2进行通信,当收到alarm1时,通过信号量1通知子进程1报警(向屏幕输出报警信息);
当收到alarm2时,通过信号量2通知子进程2报警(向屏幕输出报警信息)。
3人
5、读者-写者问题
一个数据文件可以被多个进程共享,其中,有些进程要求读(reader进程),而另一些进程要求对数据进行写或修改(writer进程)。
允许多个reader进程同时读一个共享对象,因为读操作不会使数据文件混乱,但绝不允许一个writer进程和其他reader进程或writer进程同时访问共享对象。
所谓“读者-写者问题”是指保证一个writer进程必须与其他进程互斥访问共享对象的同步问题。
通过本课程设计,要求掌握Linux进程的创建方法,掌握文件的操作方法,掌握信号量的使用方法。
●创建一个文件sharefile作为共享数据存放的文件。
●创建2个reader进程及2个writer进程,4个进程共享使用文件sharefile。
●使用信号量机制,编写“读者-写者问题”的实现代码,使得每个writer进程与其他进程互斥访问共享文件sharefile。
6、过桥问题
一座小桥(最多只能承重2个人)横跨南北两岸,任意时刻同一方向只允许一个人过桥,南侧桥段和北侧桥段较窄只能通过一人,桥中央一处宽敞,允许两个人通过或歇息。
因此,过桥问题就是采用某种机制,使得两岸的人可以顺利地过桥,同时又能保证桥的安全性。
本课题设计根据上述对于过桥问题的描述,使用Linux的信号量机制编程解决该问题。
通过本课设掌握Linux进程创建的方法,掌握信号量使用方法。
●编写2段程序,程序1创建3个子进程,分别编号A、B、C,用于模拟从南岸前往北岸的人;
程序2创建3个子进程,分别编号C、D、E,用于模拟从北岸前往南岸的人。
●通过向屏幕输出语句模拟过桥过程,如输出“南往北-到桥中间”表示从南岸前往北岸的人到达了桥中间;
输出“南往北-到达北岸”表示从南岸前往北岸的人到达了北岸。
通过观察输出语句,可以发现过桥时是否发成冲突。
●使用Linux的信号量机制,编写解决过桥问题的代码。
7、和尚挑水问题
某寺庙中有小和尚、老和尚若干人。
庙内有一水缸,由小和尚提水入缸,供老和尚饮用。
水缸可容纳30桶水,每次入水、取水仅为1桶,不可同时进行。
水取自同一水井,水井路窄,每次只能容纳一个水桶取水,设水桶个数为5个。
和尚挑水问题就是使用某种机制,能够使得若干名老和尚可以顺利地喝到水,若干名小和尚之间能够有条不紊地往水缸中入水。
本课题设计根据上述对于和尚挑水问题的描述,使用Linux的信号量机制编程解决该问题。
●编写2段程序,程序1创建3个子进程,分别编号A、B、C,用于模拟3名老和尚;
程序2创建3个子进程,分别编号C、D、E,用于模拟3名小和尚。
●通过向屏幕输出语句模拟过桥过程,如输出“目前水缸水量为10桶”表示目前水缸中有存水10桶;
输出“小和尚取水成功”表示从水井中成功取到1桶水;
输出“小和尚倒1桶水到水缸中”表示小和尚将1桶水倒入水缸中。
通过观察输出语句,可以发现执行过程是否发成冲突。
●使用Linux的信号量机制,编写解决和尚挑水问题的代码。
8、图书管理系统设计
图书馆通常采用电子化的管理系统,可以有效地提高工作效率,减少人为因素造成的错误,可以促进资源的有效利用。
通过本课程设计,掌握C语言应用程序的开发方法,掌握常用数据结构的定义、操作等方法。
●图书管理信息包括:
图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等。
●新进图书基本信息的输入。
●图书基本信息的查询。
●对撤消图书信息的删除。
●为借书人办理注册。
●办理借书手续。
●办理还书手续
●使用二进制文件方式存储数据,系统以菜单方式工作
9、学生成绩记录簿设计
学生成绩管理是学校的一项重要工作,采用电子化的管理方式,有助于提高工作效率,方便师生的查询与统计,所以,应用非常广泛。
通过本课程设计掌握C语言应用程序的设计方法和步骤,掌握使用C语言对文件的操作方法,掌握常用数据结构的使用方法。
●创建信息链表并以磁盘文件保存;
●读取磁盘文件并显示输出所有学生的成绩;
●按学号或姓名查询成绩;
●添加成绩记录;
●修改指定姓名或学号的学生的成绩并可存盘;
●显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息(可选项)。
10、职工工作量统计系统设计
职工工作量是每个企业进行绩效考核的依据,也影响到职工的实际收入,采用计算机统计和计算工作量,可以减少人为的差错,提高职工的积极性。
通过本课程设计掌握C语言应用程序的设计方法和步骤,掌握使用C语言对文件的操作方法,掌握常用数据结构的使用,掌握C语言中简单菜单的编程方法。
●编写有一个程序,该程序输入职工工号和完成的产品数量,程序允许同一职工有多次输入,由程序对其完成的产品数量实现累计。
●程序按完成数量对他们排序,并确定他们的名次。
●按完成的产品数量由多到少的顺序,输出名次、同一名次的职工人数及他们的工号(工号由小到大顺序输出)。
●要求程序用有序链表存储数据信息。
11、销售管理系统设计
公司销售管理是一个比较复杂的工作,设计到多种产品,关联到多个销售员,采用计算机来进行管理,可以提高工作效率,避免人为错误,为公司节省管理成本。
某公司有四个销售员(编号:
1-4),负责销售五种产品(编号:
1-5)。
每个销售员都将当天出售的每种产品各写一张便条交上来。
每张便条包含内容:
1)销售员的代号,2)产品的代号,3)这种产品的当天的销售额。
每位销售员每天上缴1张便条。
试设计一个便条管理系统,使之能提供以下功能:
●系统以菜单方式工作
●便条信息录入功能(便条信息用文件保存)--输入
●收集到了上个月的所有便条后,读取销售情况
⏹计算每个人每种产品的销售额。
⏹按销售额对销售员进行排序,输出排序结果(销售员代号)
五、课程设计写作细则
1、书写格式
A4纸打印,正文中任何部分不得超出边框。
页面设置:
上、下、左2.5厘米,右2厘米。
采用单倍行距,标准字符间距,西文、数字等符号采用timesnewroman字体。
论文题目用小2号黑体字如:
U-BOOT在嵌入式实验箱上的移植
正文:
小4号宋体字
参考文献:
5号宋体字。
图表字号:
5号宋体字
2、标题层次
全部标题层次有条不紊,整齐清晰。
章节号采用阿拉伯数字编号方法,第一级为1,2,3等,第二级为2.1,2.2,2.3等,第三级为2.1.1,2.1.1等,如此类推。
各层标题均单独占行书写
第一级标题(章)用3号黑体字,居中。
第二级标题(节)用4号黑体字,居左顶格。
第三级标题用小4号黑体字,居左顶格。
3、页眉页脚
页眉:
奇数页书写“江西理工大学应用科学学院课程设计”,偶数页书写“姓名:
设计题目”,均采用小5号宋体字。
页脚:
页码居中。
4、参考文献
书写格式按国标GB7714-87
顺序为:
序号.著者.文献题名.文献类型标识.出版地.出版者.出版年.起止页码。
包括:
设计用到的专业课、专业基础课课本,课程设计知道书,工具书,查阅、引用过的书籍、资料,电子文献等。
5、公式
公式应居中书写,有编号,编号用圆括号包括后放在公式右边行末。
6、插图
每幅插图应有图序和图题,图题5号字。
六、课程设计内容要求
1、封面及评分表
封面格式内容见下页例。
要求封面后的第一页为评分表。
2、目录
章节号采用阿拉伯数字编号方法,第一级为1,2,3等,第二级为2.1,2.2,2.3等,第三级为2.1.1,2.1.1等,标题后应对应开始页码。
3、正文
正文结构形式不做具体要求,内容可根据不同题目自行调整,但至少包括:
A、设计题目
B、对设计题目的分析
C、按照工程化开发方法对设计课题展开论述,包括需求分析、系统设计(包括概要设计和详细设计)、编码、调试等。
D、需求分析部分必须给出功能需求分析、性能需求分析、课题任务目标、输入输出的要求、数据需求、系统运行环境等内容。
E、系统设计部分包括概要设计和详细设计两个部分。
概要设计要根据需求划分任务模块,给出系统的软件构架图;
详细设计要针对每个软件模块设计函数原型,定义入口参数及出口参数,采用流程图或伪代码的形式给出每个函数的流程图,分析模块之间的关系及限定条件等。
F、编码部分不应将代码全部贴到正文中,而应将代码放到“6、附录”部分。
在设计文档的正文中,可以给出函数之间的调用关系图,简要介绍编码中用到的关键技术等。
G、调试及测试部分应论述所设计的调试及测试方案,调试及测试过程中遇到的问题,分析问题产生的原因,给出处理方法。
4、总结
设计说明书最后要给出设计总结,包括:
对设计效果的分析、设计过程的心得体会、设计中发现的问题、关于课程设计的意见建议等。
5、参考文献
6、附录
在附录中列出主要程序清单,流程图可保留在正文中。
江西理工大学应用科学学院
嵌入式系统开发技术
课程设计
专业:
班级:
学号:
姓名:
设计题目:
2011年11月
课程设计评分表
姓名
班级
学号
课设题目
指导教师
评分项目
满分分值
得分
设计文档(30分)
文档格式
封面
2
页面布局
4
目录格式
3
图表质量
页眉页脚
文档内容
内容完整性
6
内容逻辑性
5
内容正确性
程序代码(30分)
程序功能
15
编程规范
7
编程文档
8
答辩(20分)
课题陈述
问题答辩
10
是否超时
考勤(20分)
20
总评成绩
指导教师评语
签名:
年月日
教研室意见
职工信息管理系统
需求分析
编写目的:
通过对用户需求进行调查分析,写出需求分析文档作为项目设计的基本准则要求,以及作为系统分析员进行系统分析和测试人员进行测试时的手册
需求概述:
设计一个职工信息管理系统,使之能提供以下功能:
1)录入职工信息并保存
2)显示所有职工信息
3)查询职工信息
4)修改职工信息并保存
5)删除职工信息
需求说明:
职工信息包括职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等,并且要求职工号不重复;
录入的职工信息要求用文件形式保存,并可以对其进行浏览、查询、修改、删除等基本操作;
职工信息的显式要求有一定的规范格式;
对职工信息应能够分别按工资及按学历两种方式进行,要求能返回所有符合条件的职工的信息;
对职工信息的修改应逐个地进行,一个职工信息的更改不应影响其他的职工记录;
所设计的系统应以菜单方式工作,应为用户提供清晰的使用提示,依据用户的选择来进行各种处理,并要求在此过程中能够尽可能的兼容用户使用过程中的异常情况
总体设计
根据需求分析文档,初步提出问题的解决方案,以及软件系统的体系结构和数据结构的设计方案并写出书面文档总体设计说明书,为下一步进行详细设计做准备。
总体设计:
1.1.该系统可以按功能进行模块划分,其模块图如下:
系统模块图
其中:
信息输入模块完成职工信息的输入功能,输入信息包括职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等;
信息浏览模块完成已录入职工信息的显示;
信息查询模块完成职工信息的查询,查询时对应有按工资查询和按学历查询两种方式;
信息修改模块完成职工信息的修改功能;
信息删除模块完成职工信息的删除功能;
菜单选择模块完成用户命令的接收,此模块也是职工信息管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能;
2.2.数据结构
本系统中主要的数据结构就是职工的信息,包含职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等,在处理过程中各项可以作为一个职工的不同属性来进行处理
3.3.程序流程
系统的执行应从功能菜单的选择开始,依据用户的选择来进行后续的处理,直到用户选择退出系统为止,其间应对用户的选择做出判断及异常处理。
系统的流程图如下:
程序流程图
详细设计
根据项目概要设计说明书,在项目概要设计的基础之上,对系统进行详细设计,以便下一步进行程序编码工作。
详细设计:
对应于总体设计时的系统功能模块图,各个功能模块的处理逻辑如下:
①
信息输入模块:
打开职工信息文件;
while( 继续输入)
{
读入职工信息;
将读入信息添加到职工信息文件中;
提示是否继续输入;
}
关闭职工信息文件;
②
信息浏览模块:
while(不到文件结束)
从文件中顺序读出一个职工的信息;
按指定格式输出该职工的信息;
③
信息查询模块:
while(仍继续查询)
if(按工资查询)
读入查询的职工工资条件;
打开职工信息文件;
while(不到文件结束)
{
顺序读出一个职工的信息;
if(该职工信息的工资符合条件)输出该职工的信息;
提示共有几条符合条件的记录;
else
if(按学历查询)
读入学历查询的条件;
while(不到文件结束)
{
顺序读出一个职工的信息;
if(该职工信息的学历符合条件)输出该职工的信息;
提示符合条件的记录数;
else提示输入不合适;
提示是否继续查询;
④
信息修改模块:
while(继续修改)
{
从给出信息文件中所有的记录情况;
提示并读入待修改的记录的职工的职工号;
查找并读出该职工的信息到一个中间变量中;
提示并读入要针对该职工的哪个属性进行修改;
根据用户的选择提示并读入所要修改属性的新值;
在该职工的中间变量中修改刚刚读入的属性值;
提示是否确定要进行修改;
如果用户确定则将中间变量重新写回到原职工信息文件中;
⑤
信息删除模块:
while(继续删除)
显示所有职工的信息;
提示并读入待删除的职工的职工号;
查找是否有符合条件的职工记录;
if(有符合条件的记录)
提示是否确认该删除操作;
if(用户确认此操作)
创建一个新的临时文件;
打开原信息文件;
while(原信息文件中记录未读完)
读出原信息文件中的下一条记录;
if(此条记录不是待删除记录)写入临时文件中去;
关闭原信息文件;
关闭临时文件;
读方式打开临时文件;
写方式重建与原信息文件同名的新信息文件;
将临时文件中的内容写入到新信息文件中去;
关闭新信息文件;
删除临时文件;
else提示没有符合条件的记录存在;
⑥
菜单选择模块:
给出信息提示;
清屏;
绘制菜单(包含输入、显示、查询、修改、删除、退出);
提示菜单选择并读入到变量;
根据读入变量的值调用不同的模块函数;
数据结构:
性别:
enumSex{male,female};
学历:
enumEducation{high,junior,college,master,doctor};
日期:
structDate
{intyear;
intmonth;
intday;
};
职工信息:
structInfo
charnum[5];
/*
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 开发 技术 课程设计 指导书