- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课 程 设 计 报 告
设计题目:
(一)需求和规格说明 3
(二)设计 3
1.设计思想 3
2.设计表示 4
3.详细设计表示 5
(三)用户手册 7
(四)测试及调试 7
1.总结及反思 7
2.附录 10
需求和规格说明编一通用排序程序,程序可以对任意类型的数值常数或字符串构成的行进行排序,通过人机对话选择程序是按数值进行排序还是按字符顺序进行排序。排序是针对数据文件的。例如初识数据为:12,24,9,128,3,76,345
按数值大小排序应为:3,9,12,24,76,128,345
按字符串大小排序应为:12,128,24,3,345,76,9if-else选择语句对程序进行编写,从而达到人机对话实现选择程序是按数值进行排序还是按字符顺序进行排序。
在存储结构方面,以单链表为存储结构,因此,首先需要创建一个单链表,将待排序数据存储在单链表中,然后用指针实现关键字的从小到大的排序。
而程序排序的基本思想是:数值排序与字符排序均采用链表的冒泡排序方式,外循环共循环n-1次,内循环实现数值的两两交换,在第i次外循环中,需要比较n-i+1次。在第一次外循环中将数值最大的数置于最后,以此类推,直至最后完成排序。
函数流程图
2.设计表示
结构体类型 成员 成员 digital int dig struct digital *next string char str[20]
struct string *next 两种结构体类型中int/char型成员用于存储用户输入的数或字符,next指针指向自身的结构体类型,当用户输入数或字符时,便生成一新节点,连接到单链表中,完成输入。节点中一部分用于存储数据,一部分用于存储下一节点的地址next。
3.详细设计表示
利用if-else语句根据输入的代表不同功能的数字来用不同的方法处理数据。输入数字1时用数值排序方式处理数据;输入数字2时用字符方式排序法处理数据。输入数字0时退出程序,输入数字1时继续程序。
虽然排序有不同的方法,但是,其基本操作不外乎两种:
关键字大小的比较。
改变记录的位置。具体处理方式依赖于记录的存储形式,对于顺序型记录,一般移动记录本身,而链式存储的记录则通过改变指向记录的指针实现重定位。
本程序的主函数通过定义一个链表结构体指针head,用以指向链表头结点;设计一个循环输入变量,控制相关方法的调用来实现链表的建立及对数据的排序。
本程序通过if-else.选择语句对程序进行编写,从而达到人机对话实现选择程序是按数值进行排序还是按字符顺序进行排序。
在控制流程过程中,选择for语句和while语句达到对程序流程的循环控制。
流程控制语句:for语句,switch,whilewhile语句和for语句。
For语句的形式如下:
for语句形式:
for (表达式1; 表达式2; 表达式3)
首先计算表达式1(循环初值),且仅计算一次。每一次循环之前计算表达 式2”(循环条件),如果其结果为真,则执行语句(循环体),并计算表达式3(循环增量)。否则,循环终止。
While语句形式:
while (表达式)
语句;
它的执行过程:首先计算表达式 的值,如果为真,则执行语句 。再次判断,直至表达式的值为假结束循环。
用户手册
程序运行时,自动输出“通用排序”;
首先提示“请选择排序类型:1.按数值大小2.按字符串大小”,用户输入1/2选择排序类型;
程序提示“共有多少个数据:”用户输入数据个数;
对于类型1的数值排序,程序提示输入n个数据,用户输入完成后,输出“数据输入完成. 开始排序...”然后输出排序结果;
对于类型2的字符串排序,程序提示输入n个数据,用户输入完成后,输出“数据输入完成. 开始排序...”然后输出排序结果;
程序最后提示“请选择:0.退出 1.继续”用户根据提示选择0/1选择退出或继续。
调试及测试
总结及反思
在第三学期第一次做课程设计,一开始有些期待和紧张。在确定的课程设计的选题以后,刚开始准备入手选题时,确实是有些盲目和无助,也许这就是所谓的“万事开头难”吧,一开始忙碌了一上午也是一无所获,后来觉得自己应该先把总体框架设计出来,再去关注小细节,于是我开始静下心来构思整个程序的流程,后来经过一番思考,我确定整体框架大概是这样:主函数里的最外层采用while语句的形势,一开始设表达式的值为1,到程序尾再让用户选择1/0从而选择是继续还是退出,接着对于内层,程序中要求利用人机对话实现选择程序是按数值进行排序还是按字符顺序进行排序,在这,可以利用if-else选择语句对程序进行编写,用户选择1/2选择是按数值进行排序还是按字符顺序进行排序,对于数值和字符的排序,都用链表存储用户输入的信息,每一次输入的信
文档评论(0)