版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于C/C+的嵌入式软 件综合实训课程设计报告(2014 2015学年 第 3 学期)姓名学号班级教师实验名称基于C/C+的嵌入式软件综合实训深化部分开设学期2014-2015学年第三学期开设时间7.6报告日期2015.7.16计算机科学与技术系 1目录设计任务书3分工3一数组操作.41.1 设计要求.41.2 主要函数.41.3 功能实现.41.4 模块流程图.51.5 实验结果与分析.5二文本编辑系统.82.1 设计要求.82.2 主要函数.82.3 功能实现.82.4 模块流程图.82.5 实验结果与分析.11三计算24游戏.113.1 设计要求.113.2 主要函数.113.3 功能实
2、现.113.4 模块流程图.113.5 实验结果与分析.14四仿LED数码显示164.1 设计要求.164.2 主要函数.164.3 功能实现.164.4 模块流程图.174.5 实验结果与分析.17五成绩综合处理程序.195.1 设计要求.195.2 主要函数.195.3 功能实现.195.4 模块流程图.205.5 实验结果与分析.216 统计C源程序的代码行数 246.1设计要求.246.2 主要函数.246.3 功能实现.246.4 模块流程图.256.5 实验结果与分析.27七实验心得与体会.28八. 参考文献.30设计任务书题目:1. 数组操作、文本编辑系统、计算24游戏、仿LED
3、数码显示、编写一个成绩综合处理程序、统计C语言源程序的代码行数。总要求:1、分组讨论,全面透彻的认识问题;2人一组。2、找出问题的解决算法;3、根据算法画出流程图;4、根据流程图写出代码。分工 学号姓名实验分工 一数组操作1.1设计要求:设计菜单处理程序,对一维数组进行不同的操作。 1、数据输入; 2、数据输出; 3、数据排序; 4、最大值; 5、最小值;1)操作项目包括求数组最大值、最小值、求和、求平均值、排序、 二分查找、有序插入;2)设计并利用字符菜单进行操作项目的选择,程序一次运行可根据选择完成一项或多项操作;通过菜单“退出”来结束程序的运行;3)数组的输入、输出可支持命令行输入文件名
4、、界面输入文件名从数据文件中输入和输出;也支持界面录入。1.2主要函数:1) void st_max(int x,float *a)求得数组元素中的最大值,x为数组长度;2) void st_min(int x,float *a) 求得数组元素中的最大值,x为数组长度;3) void sort(int h,float *a)排序函数;4) void st_sum(int h,float *a)对数组元素进行求和;5) void average(int h,float *a)求数组元素的平均值;6) void BinarySearch(int h,float *a)二分查询;7) void in
5、sert(int h,float *a)有序插入;8) Main函数,实现基本的菜单功能。2.3 功能实现1) void st_max(int x,float *a)首先给首数组元素赋值为m,然后循环进行比较,若后面的值大于m,则给其赋值成m,循环完成后即可得到最大值,然后输出;2) void st_min(int x,float *a)首先给首数组元素赋值为m,然后循环进行比较,若后面的值小于m,则给其赋值成m,循环完成后即可得到最大值,然后输出;3) void sort(int h,float *a)利用选择法进行排序,每次循环找到一个最大的数放在最右边,然后将最终的序列利用循环进行输出;
6、4) void st_sum(int h,float *a)循环遍历数组元素的值,然后用一个变量来存储数组元素的和并输出;5) void average(int h,float *a)循环遍历数组元素的值,然后用一个变量来存储数组元素的平均值;6) void BinarySearch(int h,float *a),首先将数组元素进行排序,然后输入你要查询的值,利用left,right变量分别从数组的左右进行遍历,直到找到你想要的值,输出值以及它的位置;7) void insert(int h,float *a)首先将插入的数放置在数组的尾部,然后利用sort()排序函数进行排序,最后进行输出
7、;8) Main函数,实现基本的菜单功能。1.4 模块流程图:2.5实验结果与分析:5功能1. 数据输入1从文件输入 图1.1 整体流程图 1.5实验结果与分析1) 主函数2) 数据录入3) 数据输出4) 最大值5) 最小值6) 求和7) 求平均值8) 二分查找9) 有序插入10) 排序二文本编辑系统2.1设计要求1)分别统计出其中英文字母数和空格数及整篇文章总字数;2)统计某一字符串在文章中出现的次数,并输出该次数;3)删除某一子串,并将后面的字符前移。注意:字串可以任意输入。完成任务描述中的各种功能,自己可以适当增加必要的功能。模拟记事本功能。2.2 主要函数:1) void Statis
8、tics(char *a)/统计字符函数2) void search(char *a)/字符查找函数3) void Delete(char *a)/删除字符函数4) int main()/主函数,接收文件路径,读取文件,关闭文件操作2.3 功能实现:1) void Statistics(char *a)/统计字符函数2) void search(char *a)/字符查找函数3) void Delete(char *a)/删除字符函数4) int main()/主函数,接收文件路径,读取文件,关闭文件操作在主函数中打开文件,遍历文件信息,调用Statistics文件统计字符、空格、数字、其他字
9、符的个数,然后输出。接着输入需要查找一个字符,通过search函数查找该字符在文件中出现几次。输出一个字符,调用Delete函数删除,完成操作,返回主函数中保存文件,关闭文件后程序结束。2.4 模块流程图图1.2 main函数图1.3 Delete函数 图1.4 Statistics函数图1.5 Search函数流程图2.5实验结果与分析1.统计字符,字母,空格的个数分析:打开这个文件,读取这个文件的信息,根据c=getc(fd)语句读取字符,每读一个字符,数组长度加一,循环读取完以后,a的大小就是文档总字符的个数,每个字符进行判断,判断是不是(c>='A'&&a
10、mp;c<='Z')|(c>='a'&&c<='z')是的话,那这个字符就是字母,计数,字符时空格的话也计数,最后j和k的值就是字母和空格的个数。2 .查找字符3.删除字符三计算24游戏3.1设计要求1) 输入四个数通过加减乘除计算出24,显示计算过程,并提示成功信息。比如:用户输入 4 3 2 1 输出 24=4*3*2*1。3.2 主要函数:1) 实现两个数的运算void count(int a1,int a2,int i);2) 实验运算符输出void Judge(int x);3) 主函数,实现基本功能。
11、3.3 功能实现: 1. 两个数的运算部分:通过定义两个整形的变量和一个整形的数据来代替运算符,使用switc语句对i的值进行选择,执行加减乘除的运算。 2. 运算符输出部分: 利用switch语句对运算符进行选择,然后输出其运算符。3.4 模块流程图图1.6 整体流程图图1.7 Main函数流程图图1.8 Count函数流程图 3.5实验结果与分析1. 输入四个数,判断其能否通过从左至右的运算算出能够等于24. 成功时的情况 出错时的情况分析: 先输入四个数字,通过三层for循环的使用,代表从左至右的三个运算符,通过重重运算,分别用数组变量来保存得到的值,当执行到第三层循环时,若与24相等,
12、则通过Judge(int x)函数输出运算式,当判断完成执行相关操作后,再将其ml的值置零。否则当执行到第三层循环时停止,同时输出“这四个数的表达式无法构成24!”即上述的出错情况。15四、仿LED数码显示4.1设计要求1) 输入任意数字和一个字母,能够以该字母显示该数字,下图是输入6和字母A的显示结果; 2) 在此基础上使数码从0到9动态变化4.2 主要函数:1) void dp_L()/左侧显示一个字符;2) void dp_R()/右侧显示一个字符;3) void dp_LR()/最左最右各显示一个字符;4) void dp_LC()/左侧和中间显示一个字符;5) b void dp_L
13、i()/显示一行字符;6) void dp_Ct()/中间显示一个字符;7) void Display(int i)/判断函数;8) void FXChange()/动态显示函数9) void Menu()/输入输出函数10) 主函数,实现基本的功能。4.3 功能实现:1) void dp_L()/左侧显示一个字符;2) void dp_R()/右侧显示一个字符;3) void dp_LR()/最左最右各显示一个字符;4) void dp_LC()/左侧和中间显示一个字符;5) b void dp_Li()/显示一行字符;6) void dp_Ct()/中间显示一个字符;7) void Dis
14、play(int i)/判断函数,判断输出的字符为0-9的哪个数,通过调用6个不同的显示字符函数,依次判断输出8) void FXChange()/动态显示函数,包含延迟函数sleep9) void Menu()/输入输出函数,接收字符和数字,输出提示信息等10) 主函数,实现基本的函数调用功能4.4 模块流程图图1.9 Display函数流程图4.5实验结果与分析1. 输入字符B,输出数字是4的结果:2.输入数字H,动态输出5: 2.输入字母H,动态输出8:五、成绩综合处理程序5.1设计要求 实现功能 1、成绩输入; 2、成绩输出; 3、成绩插入; 4、成绩删除; 5、成绩排序。1) 正确定
15、义功能函数并进行设计,2) 实现文件读写;3) 熟练掌握函数中参数及返回值的功能;4) 能熟练对项目进行功能分解并以函数形式实现; 5) 理解并掌握指针的概念和引用;6) 重点掌握指向数组的指针变量的应用。5.2 主要函数:1) void GetInfo()输出函数,完成成绩的输出;2) Void GetSum()求得各科的总分;3) Void SetInfo()完成成绩的录入;4) bool Insert()完成学生信息的录入;5) bool Sort()排序的功能函数;6) bool Delete()删除的功能函数;7) bool Change()学生成绩的插入;8) int Find()
16、学生信息的查询;9) int FindAsk()学生成绩的输出;10) 主函数,实现基本的功能。5.3 功能实现:1) void GetInfo()输出函数,完成成绩的输出,此功能通过基本输出语句对学生的基本信息进行输出;2) Void GetSum()求得各科成绩的总分;3) Void SetInfo()完成成绩的录入,实现的方法是用scanf语句对学生信息依次录入;4) bool Insert()完成若干个学生信息的录入,用一个判断语句来判断学生的个数是否达到最大值,若没有的话继续录入,在这里调用SetInfo()这个函数,帮助录入每个学生的个人成绩;5) bool Sort()排序的功能
17、函数,首先选择排序方式,可以按照各科的成绩排序,然后依据输入的值对功能进行选择,完成排序;6) bool Delete()删除的功能函数,删除的操作是对存储学生信息的数组进行操作,删除数组里的节点值即删除掉了部分的学生信息;7) bool Change()学生成绩的插入,同样的插入函数也是对存储学生信息的数组进行操作。8) int Find()学生信息的查询,通过对数组元素的逐一访问,输出数组元素的值,即可查询到学生的信息,当无法查询到信息时,即输出“查无此人”的提示语;9) int FindAsk()学生成绩的输出,通过查询,找到数组元素的节点,然后通过此函数输出学生信息;10) 主函数,实
18、现基本的功能,此函数是程序运行的主入口,通过此入口,先输出菜单栏,然后根据用户的输入来进行功能的选择,执行相关的函数。5.4 模块流程图图2.0 main函数流程图5.5实验结果与分析1.成绩的录入分析:实现的方法是用scanf语句对学生信息依次录入。 2.成绩的插入:279分析: bool Change()学生成绩的插入,同样的插入函数也是对存储学生信息的 数组进行操作。3. 成绩的排序: 分析: bool Sort()排序的功能函数,首先选择排序方式,可以按照各科的成绩 排序,然后依据输入的值对功能进行选择,完成排序;4. 成绩的删除: 分析:bool Delete()删除的功能函数,删除
19、的操作是对存储学生信息的数组进 行操作,删除数组里的节点值即删除掉了部分的学生信息。5. 成绩的输出: 分析:int FindAsk()学生成绩的输出,通过查询,找到数组元素的节点,然后通过此函数输出学生信息。 六、统计C源程序的代码行数6.1设计要求要求1) /* */ 和/的都认为是注释行。2) 统计空行。3) 非空非注释行,基本上可以认为是有效的代码行 如果同一行中有注释和代码的认为是代码行4, 统计总代码行数、注释行数、空行数 输入: codeCounter filepath/filename 输出列表: filename 总代码行数、注释行、空行6.2 主要函数:1) int Str
20、ingBracket(char *str)/删除空格制表符2) void main()/输入输出,读取关闭文件6.3 功能实现:1) int StringBracket(char *str)/删除空格制表符2) void main()/输入输出,读取关闭文件在main函数中接收文件名,若文件不存在,输出:无法读取到该文件。若文件存在,通过fgets函数读取整个文件,while循环读取行并判断文件是否结束,同时调用StringBracket寒素删除空格和制表符并且使各项计数器+1,最后输出结果。6.4 模块流程图图2.1 Main函数流程图图2.2. StringBracket函数流程图6.5实验结果与分析1.测试文件,当运行正常时: 2.若文件不存在时: 七、心得与体会1.对自己的设计进行评价 a.不够细心,开始的时候出现很多错误。 b.写的过于简陋,功能不够完善。2.调试上得到的体会: 在最后的调试过程中,发现有时候系统报错,指出了错误所在的具体位置,可是检查的时候发现该位置并未出错,这样的错误首先要查找前后几行,如果未出错,那就很有可能在该函数的首部或
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024商贸城内儿童娱乐中心店面租赁及安全管理合同2篇
- 《基于SVM的入侵检测性能改进研究》
- 2024年家电品牌区域经销商授权协议书范本3篇
- 《我国分享经济监管研究》
- 《基于互联网金融背景下的D公司融资渠道研究》
- 《改进YOLOv4算法的道路病害识别系统研究与实现》
- 《基于平衡记分卡的D保险公司全面预算管理研究》
- 《SDN下基于强化学习的智能路由算法》
- 2024年度水电消防工程纠纷解决合同2篇
- 《UPLC-MS法研究角鲨烯及其氧化物对大鼠体内CoQ10平衡的影响》
- 钹式换能器的共振特性研究
- 《我们去看海》阅读答案
- 智慧酒店无人酒店综合服务解决方案
- 考研英语一新题型历年真题(2005-2012)
- 健身房会籍顾问基础培训资料
- 9脊柱与四肢、神经系统检查总结
- 秀场内外-走进服装表演艺术智慧树知到答案章节测试2023年武汉纺织大学
- 【高分复习笔记】王建《现代自然地理学》(第2版)笔记和课后习题详解
- TSGD0012023年压力管道安全技术监察规程-工业管道(高清晰版)
- SMM英国建筑工程标准计量规则中文 全套
- 2023-2024学年浙江省富阳市小学数学四年级上册期末通关题
评论
0/150
提交评论