版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、河北联合大学2011-2012第2学期 软件设计基础-C+课程设计报告设计名称:设计一个处理单向链表的程序:链表的排序 姓 名:王学增 学 号:201005100206 专业班级:土木工程1班 学 院:建筑工程学院 设计时间:2012-5-31 设计地点:机房 指导教师评语:自评成绩;75教师评定: 指导教师签字: 年 月 日 年 月 日软件设计基础-C+课程设计报告 第 16 页,共 16 页目 录1.课程设计目的2.课程设计任务与要求3.课程设计说明书4.课程设计成果5.程序调试过程6.设计问题的不足和改进方案7.课程设计心得8.参考文献1课程设计目的软件设计基础-C+课程设计是这门课程的
2、实践性教学环节之一,本次设计结合实际应用的要求,使课程设计既覆盖C+的知识点,又接近工程实际需要。目的是通过课程设计的综合训练,培养学生实际分析问题、解决问题的能力,以及编程和动手能力,最终目标是通过课程设计这种形式,帮助学生系统掌握C+这门课程的主要内容,养成良好的编程习惯,更好的完成教学任务。2课程设计任务与要求:要求:本次课程设计利用软件设计基础-C+课程中所学到的编程知识和编程技巧,完成具有一定难度和工作量的程序设计题目,帮助学生掌握编程、调试的基本技能,独立完成所布置的任务。要求:1、对系统进行功能需求分析2、设计合理的数据结构和系统框架3、编程简练,程序功能齐全,能正确运行4、说明
3、书、流程图要清楚5、课题完成后必须按要求提交课程设计报告任务:将自己选择题目的任务要求简单填写在此处。(1)要求用C+的思想来完成程序的设计。(2)各个功能分别使用函数来完成,主函数和各个函数分别存放在不同的.cpp文件中,要求使用头文件。(3)在基本要求达到后,进行创新设计,例如:将两个非递减的链表合并成一个新的非递减的链表3课程设计说明书概要设计主要写模块说明,模块结构图,系统流程图(例N-S流程图)(五号,宋体)模块说明:在我设计的程序中一共包括了六个模块,分别是:新增模块、查找模块、修改模块、完全打印模块、删除模块、退出系统模块。这六个模块中新增、查找和修改都是独立分开作为子函数的,另
4、外三个则是作为switch语句中的一部分,通过switch语句,把六大模块联系了起来,同时,为了实现多次使用这六大模块,就在switch语句外加了while循环。我的程序模块说明:在我设计的程序中一共可以分成三个模块,分别是数据打印模块,冒泡排序模块,主函数模块。其中,数据打印模块和冒泡排序模块都采用了for循环。并且这两个模块都是打印数据 模块结构图:主函数排序后输出链表的排序冒泡排序 详细设计 总体流程图:打印数据冒泡排序建立函数头文件主函数进行排序,输出。各功能模块流程图(1) 打印数据的流程图:(以下是应用的for循环)否i=1判断i>n?执行 print ii=i+1结束循环,
5、cout<<" "<<listi.scorecout<<"n"否i=1判断i>n?执行 print ii=i+1结束循环,cout<<" "<<cout<<"n"否i=1判断i>n?执行 print ii=i+1结束循环,cout<<" "<<listi.sex(接上页)cout<<"n"(2)泡沫排序的流程图注:上述数组d为rj.sco
6、re(3)主函数流程图主函数定义成员个数确定成员信息打印出成员数据进行冒泡排序得到排序后的成员信息4课程设计成果程序源代码,运行结果(可用屏幕抓图的方法说明)(五号,宋体)(多页)(1)链表排序的源代码#include<iostream.h>#include<stdlib.h> / 头文件#define N 100typedef int keytype;typedef char xingming5;typedef char xingbie5;typedef struct num / 建立 keytype score; xingming name; xingbie sex
7、;numpxN;struct num sqlistN+1;void px(numpx r,int n) / 冒泡排序 int i,j; for(i=1;i<n;i+) for(j=1;j<=n-i;j+) if(rj.score>rj+1.score) r0=rj; rj=rj+1; rj+1=r0; void print(numpx list,int n) / 打印数据 int i; for(i=1;i<=n;i+) cout<<" "<<listi.score; cout<<"n" for(
8、i=1;i<=n;i+) cout<<" "<<; cout<<"n" for(i=1;i<=n;i+) cout<<" "<<listi.sex; cout<<"n"void main() / 主函数 int n=10; numpx a=0,"","",16,"小斯","男",24,"伊娃","女&qu
9、ot;,13,"韦德","男",35,"杜兰","男",20,"阿伦","男",37,"李娜","女",55,"凯文","男",11,"罗斯","男",18,"波什","男",10,"刘兰","女" cout<<"n" cout<<&q
10、uot;原系列数据:n" print(a,10); cout<<"n" px(a,n); cout<<"排序的序列(从低到高):n" print(a,n);(2)运行以上源程序后的运行结果:5.程序调试过程写出程序调试步骤,及遇到的问题。(1)这时程序已经可以运行,但数据出现错误:没有输出第一组数。这是字符数组那块的知识,在数据前加上“0,"","",”即可是程序完整显示。(2)可以看出数据还是极不规范,需要对数据进行换行需要在数据打印模块中每一个for循环后加cout<&l
11、t;"n"调试后的结果为:(3)下面对每组数据的间隔进行处理将语句cout<<listi.score;改成cout<<" "<<listi.score;后面那两条语句也这样做。调试后的程序:再改进一下间距:(4)调试到现在程序已经大概完成,为与结果一样,需要在主函数中,print(a,10);后加上cout<<"n"得到下面程序:6.设计问题的不足和改进方案我认为这个程序应该还可以对链表进行插入和删除操作链(参照18题)方案:根据三的分析,主要问题在于链表的创建以及如何插入和删除的操作上
12、。如需要创建N=5个结点,if(i=1) head=p1; /将链表中第一个新建结点作为表头elsep2->next =p1;p2=p1;p1=new(STUDENT);cin>>p1->stu_number >>p1->name >>p1->sex >>p1->age;p2->next =NULL; /最后一个结点的next成员不指向任何结点在插入时,先根据学号找到新结点的位置,例如要插入到指针变量p指向的结点后,设q指向新结点,则插入操作:t=p->next; p->next=q;q->n
13、ext=t;n+;/结点数目增加这样就将该新结点插入到了指定位置,注意考虑要插入的结点可能位于最后的位置。删除时,要考虑待删除结点是否为第一个结点,若为中间结点,设指针变量p1指向的结点为待删除结点,p2指向其前一个结点,则删除p2结点的操作为:p2->next=p1->next;7.课程设计心得通过对c+的学习,以及对c+的课程设计,我对c+产生很大的兴趣。课程设计是培养学生综合运用所学知识,分析和解决实际问题,锻炼实践能力的一个重要过程。当今计算机应用已经普及到我们生活的方方面面。所以学好计算机知识,学好c+,做好课程设计是非常重要的。我的c+基础并不好。在大一的时候学过一点c
14、语言,只是简单了解其中的一些函数和算法。对于编程,我只能望尘莫及。经过这学期c+的学习,我也进一步加深了对c+的理解。课程设计虽然从某种意义上讲很难。但自从拿到题目到完成整个编程,从理论到实践,我学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了实践是检验理论的重要标准,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能真正提高自己的动手能力和独立思考的能力。我在设计过程中也遇到了好多问题。我在后悔当时没好好听课的的时候,也开始复习老师讲过的知识以及上网查资料学习。我及时改正了我的不足之处,对学过的知识更加深刻了。同时,我也学到了一些课外知识。我懂得了:不怕做不到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026贵州德江县考调城区小学紧缺学科专任教师26人笔试备考试题及答案解析
- 2026辽宁营口市信访局招聘公益性岗位人员5人考试备考题库及答案解析
- 2026福建省海运集团有限责任公司厦轮客旅招聘5人考试备考试题及答案解析
- 2026年西安市雁塔区第八小学招聘考试备考题库及答案解析
- 2026上半年广东广州市越秀区教育局“越揽英才”校园招聘90人考试备考题库及答案解析
- 2026上半年陕西事业单位联考渭南韩城市招聘48人考试备考题库及答案解析
- 2026年丽水职业技术学院单招职业倾向性考试题库附参考答案详解(达标题)
- 2026年云南水利水电职业学院单招职业适应性考试题库及一套参考答案详解
- 2026年仙桃职业学院单招职业适应性考试题库附参考答案详解(巩固)
- 2026年云南省保山地区单招职业适应性考试题库附参考答案详解(考试直接用)
- 电商客服服务流程与话术手册
- Python深度学习入门(从零构建CNN和RNN)
- 小学信息科技课堂中人工智能教育实践研究教学研究课题报告
- (2025)继发性高血压筛查和诊断中国专家共识解读课件
- 慢性病患者医患沟通策略
- 老年人皮肤瘙痒的护理
- 饮用水深度处理技术研究
- 麻绳手工创意课件
- 病房急危重症患者抢救流程
- 非遗宋锦课件
- 2023年云南省中考数学真题(原卷版)
评论
0/150
提交评论