C++程序设计实习-2-1

合集下载

程序设计实训报告(9篇)

程序设计实训报告(9篇)

程序设计实训报告(9篇)【导语】程序设计实训报告怎么写出亮点?整理了9篇优秀的《程序设计实训报告》通用版范文,有规范的开头结尾写法和标准的书写格式。

是您写出深受大家欢迎的综合报告抱负参考模板,盼望对您有所关心。

【第1篇】程序设计实训报告程序设计实训报告1一,实训目的:加深对可视化编程技术基本学问的理解,把握运用vb开发应用程序的基本方法及基本技巧。

二,实训时间:20xx年10月20xx年11月三,实训方式:上机操作四,实训类容:这次在杨立雄老师的带领下,利用vb开发工具与数据库sql开发一个使用的小型管理信息系统。

我选择了学籍管理系统。

它的功能要求如下:1,学籍信息输入:实现同学基本状况的输入。

包括各个同学的状况,姓名,家庭号码,家庭住址,学号等各个信息。

2,学籍信息管理:本模块实现了信息的修改,删除,查询。

还有个人信息。

把信息统计这个繁琐的工作简洁化,为同学信息的管理方面提高工作效率。

3,学籍信息查询:通过输入学号便可以查询到这个同学的全部信息,包括姓名,性别,诞生年月,班级,入学日期,联系电话,嘉奖和成果表都一目了然,很大的便利了教工们查询同学信息的过程。

4,统计查询:实现查询全班人数,男女生比例等。

五,实训体会:这次实训,感觉既好玩又有些辛苦。

这还是老师担忧我们适应不了所以没教那么多学问,即使这样我们仍学到了比以前上学时更多的学问,而且这些学问有好多都是我们自己去领悟的到的。

我也知道有人比我们更累,所以我自觉得还是挺好的。

经过这次的实训,我真真实切的感受到了计算机在我们生活中工作中的运用,这些软件,程序能让我们提高工作的效率,更直观更便捷切入主题。

这次我们学习的是数据源的原理及应用的各方面学问,由老师带着我们不断操作。

vb能有效的组织,管理和共享数据库信息,能把数据库信息与ado结合在一起,实现数据库信息的共享。

同时,vb概念清楚,简洁易学,使用。

是适合企业管理人员,数据库管理员使用的首选。

c程序实习报告

c程序实习报告

c程序实习报告针对我们这学期学的++,假期进行了五天的实习。

第一天听老师讲实习内容和提示的时候觉得思路挺明确的一个程序,哪有传奇中的那么难。

下午和同学讨论的时候觉得专门有目的,只要按部就班的完成各步操作就能够了,有难度的也只是第二步。

这一步要进行判定,这就需要多个输出函数;还要冒泡法给工作排序,工资的运算不是在类中完成的——挺棘手的一个问题。

翌日上机的时候也专门快完成了第一步,觉得还行,慢慢来五天完全能够完成。

后来也就没如何好好摸索,没想到翌日遇到苦恼了,编不出第二步了。

第三天下午也没调试好,第一步输入的数据在第二步统计的时候如何也数不出来,我从头至尾研究了多次,没发觉一点问题,请舍友帮我检查也说没错,到了傍晚依旧看不出来。

哎!又找一个人给我看了看,难道错得那么稚嫩,类外定义了全局对象,在数据输入put()函数里又重新定义了对象,如此在put()输入的数据无法用到其他函数中,自然统计的时候差不多上默认值了。

就这么一个小小的错误整得我一天一晚上寝食难安。

编程序时深深感受到要不得半点马虎,有时少一个“}”或“ ”都会导致程序语法错误;由于编程序经常要变换输入法,专门容易输进中文字符,这也会导致语法错误;调用类里重名函数时要注明属于哪个类的。

第三天的时候第二步差不多都编出来了,傍晚那时我没检查出错误来的时候,实在是把我急坏了,借了台电脑,在那安静用心的研究程序,舍友帮我检查出错误来之后,编程序有了感受,那时差不多22:00多了,难道没有一丝睡意。

后来舍友们连续睡觉了,可我确实是不愿睡。

可能是出于自尊心需要,别人都编出来了,自己编不出来,让我无法同意;也可能是第二步出来了急于尽快搞定。

从19:00到凌晨4:00一直在那儿编程序了,一次次地听到铃声响难道没有上床睡觉的冲动,满脑袋只有一个方法:认真编程序,争取晚上搞定。

后来差不多了,只有备份不如何完善,当时电脑差不多用了好长时刻了,实在不忍心一直用人家的电脑,只好关机睡觉了。

C语言程序设计第2章-1数据类型、运算符和表达式

C语言程序设计第2章-1数据类型、运算符和表达式
1、按运算符的功能分成:算术运算符、关系运算符、逻辑运算 符、赋值运算符、位运算符、条件(tiáojiàn)运算符、自增和自减 运算符、逗号运算符、指针运算符、强制类型转换运算符、 分量运算符、下标运算符、求字节数运算符、函数调用运算 符等等。
2、 C 语言的运算符的优先级与结合性
3、表达式:由操作数和运算符组成的序列。
5
精品文档
⒉ 真值: 带符号位的机器数对应的数值称为机器数的真值。 (10100011)2= -35
⒊ 无符号数:当计算机字长的所有二进位都用来表示(biǎoshì)数值时,称 为无符号数。
2.2.2 原码、反码和补码
⒈ 原码
整数 X 的原码指:其数符位 0 表示正,1 表示负,其数值部分
就是 X 的绝对值的二进制表示。
2.1 常用 的进位制 (chánɡ yònɡ)
2.1.1 二进制、八进制和十六进制(shíliùjìn zhì)数
3
精品文档
2.1.2十、二进制、八进制和十六进制数之间的换算
⒈ 二、八、十六进制数 → 十进制数的换算采用按权展开法。
(2AB.F)16 = 2χ162+10χ161+11χ160+15χ16-1 = 683.93 ⒉ 十进制数 → 二进制数的换算整数部分(bù fen)采用除以二取余直到商
19
精品文档
2.5.1 算术运算符与算术表达式
⒈ 基本的算术运算符:
14
精品文档
3.字符常量
字符常量是用单撇号括起来的单个字符或转义字符,
如: ‘a’, ‘9’, ‘&’, ‘\n’, ‘\’’, ‘\101’。
字符常量的值为该字符的ASCII码值,如 ‘a’值为97, ‘\n’

c语言实验报告分析总结3篇

c语言实验报告分析总结3篇

c语言实验报告分析总结3篇c语言实验报告分析总结1在科技高度发展的今天,计算机在人们之中的作用越来越突出。

而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。

在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。

在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。

由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。

包括了程序模块处理.简单界面程序.高级界面程序.程序的添加修改.用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。

上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。

对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。

学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。

因为学时所限,课程不能安排过多的上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。

为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。

课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1.加深对课堂讲授内容的'理解课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。

然而要使用c语言这个工具解决实际问题,又必须掌握它。

通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。

C语言程序设计(第3版)何钦铭-颜-晖-第2章--C语言编写程序

C语言程序设计(第3版)何钦铭-颜-晖-第2章--C语言编写程序

解答: #include <stdio.h> double fact(int n); int main(void) {
int m, n; double s;
printf(“Input m and n:”); scanf("%d%d", &m, &n); s = fact(n)/(fact(m) * fact(n-m)); printf("result = %.0f\n", s);
** * 解答: #include<stdio.h> int main(void) { printf("* * * *\n * * * \n * * \n * \n"); return 0; } 【练习 2-4】 温度转换:求华氏温度 150°F 对应的摄氏温度(计算公式同 例 2-3)。试编写相应程序。 解答: #include<stdio.h> int main(void) { double celsius,fahr;
int i, n; double sum;
printf(“ Input n:”); scanf("%d", &n); sum = 0; for(i = 1; i <= n; i++)
sum = sum + 1.0 / i; printf("sum = %.6f\n", sum); }
return 0; } 【练习 2-14】求给定序列前 n 项和(1+1/3+1/5+…):输入一个正整数 n,计算 序列 1+1/3+1/5+…的前 n 项之和。试编写相应程序。 解答: #include <stdio.h> int main(void) {

c语言课程设计报告书3篇

c语言课程设计报告书3篇

c语言课程设计报告书3篇c语言课程设计报告书1我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。

在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。

在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。

由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。

包括了程序模块处理。

简单界面程序。

高级界面程序。

程序的添加修改。

用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。

上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。

对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。

学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。

因为学时所限,课程不能安排过多的上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。

为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。

课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1、加深对课堂讲授内容的理解课堂上要讲授许多关于c语言的.语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。

然而要使用c语言这个工具解决实际问题,又必须掌握它。

通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。

对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。

C语言课程设计上机实习内容.(共5篇)

C语言课程设计上机实习内容.(共5篇)第一篇:C语言课程设计上机实习内容.C语言课程设计上机实习内容一、程序设计题目:简单的学生成绩管理程序设计二、程序设计功能及要求:1、原始数据输入和结果输出要求使用文件存放;2、计算每个学生三门功课的平均分,并按平均分排列名次,若平均分相同则名次并列;结果写入文件。

3、统计全班每门课程的平均分,并计算各分数段(60以下,60~69,70~79,80~89,90以上)的学生人数;结果写入文件。

4、按格式在屏幕上打印每名学生成绩条;5、在屏幕上打印出所有不及格学生的下列信息:学号,不及格的课程名,该不及格课程成绩;6、(选做)在屏幕打印优等生名单(学号,三门课程成绩,平均成绩,名次),优等生必须满足下列条件:1)平均成绩大于90分;或平均分大于85分且至少有一门功课为100分;或者平均分大于85分且至少两门课程成绩为95分以上;2)名次在前三名3)每门功课及格以上;(若完成选做题,课程设计成绩将给予加分)三、文件格式1、原始数据文件格式(具体数据自行编写)学号姓名英语C语言高等数学张三李四….….….2、输出数据文件(由程序自动生成)1)学生综合成绩文件。

(由程序自动生成)学号姓名英语 C语言高等数学平均成绩名次张三 76 89 78 80.5 5 李四….….….3 ….2)统计结果文件。

分数段英语C语言高等数学<60…60~69…70~79…80~89…>=90 …平均成绩75.5 …四、实习报告要求1、程序分析和设计2、流程图3、源程序清单4、调试过程: 测试数据及结果,出现了哪些问题,如何修改的5、程序有待改进的地方。

6、本次实习的收获和建议。

第二篇:C语言上机实习报告一、实验目的1.能够描述VC++6.0开发平台的使用过程,学会运行一个C程序的基本步骤,包括编辑、编译、链接和运行。

2.能够使用算术表达式和赋值表达式书写正确的语句。

3.能够使用输入/输出函数编写简单的程序。

C语言程序设计实验报告范文c语言程序设计实验报告书

C语言程序设计实验报告范文c语言程序设计实验报告书c语言程序设计实验报告篇一一、实验目的:1、掌握C语言的`数据类型和变量的声明。

2、掌握不同类型数据之间赋值的规律。

3、掌握C语言的运算符和表达式的使用。

4、熟悉C程序的编辑、编译、连接和运行的过程。

二、实验内容:①输人程序: includevoid main() { int a, b; float d,e; charc1,c2; double f, g; long m, n; unsigned int p,q; a=61;b=62; c1='a';c2='b'; d=3.56;e=-6.87; f=3157.;g=0.; m=50000;n=-60000;p=32768;q=40000; printf("a=%d,b=%d c1=%c,c2=%c d=%6.2f,e=%6.2f ",a,b,c1,c2,d,e); printf("f=%15.6f,g=%15.6f m=%ld,n=%ld p=%u,q=%u ",f,g,m,n,p,q); }②运行此程序并分析结果按习题4. 8要求编写程序题目为: 设圆半径r=l. 5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。

用scanf输人数据,输出计算结果口输出时要有文字说明,取小数点后两位数字。

程序:三、实验步骤:①输人程序:includevoid main() { int a, b; float d,e; char c1,c2; double f, g; long m, n; unsigned int p,q; a=61;b=62; c1='a';c2='b'; d=3.56;e=-6.87; f=3157.;g=0.; m=50000;n=-60000; p=32768;q=40000; printf("a=%d,b=%dc1=%c,c2=%c d=%6.2f,e=%6.2f ",a,b,c1,c2,d,e); printf("f=%15.6f,g=%15.6f m=%ld,n=%ld p=%u,q=%u ",f,g,m,n,p,q); }②运行此程序并分析结果。

C语言程序设计实验及代码

C语言程序设计实验及代码一、实验介绍本实验旨在通过C语言编程实践,培养学生的程序设计能力。

通过完成以下实验内容,学生将会加深对C语言的理解,掌握基本的编程技巧和方法,并能够编写简单的C语言程序。

二、实验内容1.实验一:实现一个简单的计算器程序编写一个简单的计算器程序,能够进行简单的加减乘除运算。

要求用户输入两个数字和操作符(+、-、*、/),然后输出计算结果。

实验提示:可以使用switch语句来实现根据操作符执行相应的运算。

2.实验二:实现一个学生成绩管理系统编写一个学生成绩管理系统程序,能够添加学生信息、显示学生信息、计算学生平均成绩等功能。

要求使用结构体来保存学生信息,并使用数组来存储多个学生的信息。

实验提示:可以使用循环来实现多次添加学生信息的功能。

可以使用指针来操作结构体数组。

3.实验三:实现一个简单的图书管理系统编写一个图书管理系统程序,能够添加图书信息、显示图书信息、查询图书信息等功能。

要求使用结构体来保存图书信息,并使用链表来存储多本图书的信息。

实验提示:可以使用链表的插入和删除操作来实现添加和删除图书的功能。

通过遍历链表来显示和查询图书的信息。

三、实验代码示例1.实验一代码示例:```c#include<stdio.h>int mainfloat num1, num2; //用于存储用户输入的两个数字char op; //用于存储用户输入的操作符float result; //用于存储计算结果printf("请输入两个数字和一个操作符(+、-、*、/):");scanf("%f %f %c", &num1, &num2, &op);switch(op)case '+':result = num1 + num2;break;case '-':result = num1 - num2;break;case '*':result = num1 * num2;break;case '/':if(num2 != 0)result = num1 / num2;elseprintf("除数不能为0!\n");return 0;}break;default:printf("操作符输入错误!\n");return 0;}printf("计算结果:%f\n", result);return 0;```2.实验二代码示例:```c#include<stdio.h>#define MAX_STUDENT 100 //定义最大学生数量struct Studentint id; //学号char name[20]; //姓名float score; //成绩};void addStudent(struct Student *students, int *count) if(*count >= MAX_STUDENT)printf("已达到学生数量上限!\n");return;}printf("请输入学生的学号、姓名和成绩:");scanf("%d %s %f", &(students[*count].id),students[*count].name, &(students[*count].score));(*count)++;void showStudent(struct Student *students, int count) int i;if(count == 0)printf("暂无学生信息!\n");return;}printf("学号\t姓名\t成绩\n");for(i = 0; i < count; i++)printf("%d\t%s\t%f\n", students[i].id, students[i].name, students[i].score);}float calculateAverage(struct Student *students, int count) int i;float sum = 0;if(count == 0)return 0;for(i = 0; i < count; i++)sum += students[i].score;}return sum / count;int mainstruct Student students[MAX_STUDENT]; //保存学生信息的数组int count = 0; //学生数量int choice;while(1)printf("\n学生成绩管理系统\n");printf("1.添加学生信息\n");printf("2.显示学生信息\n");printf("3.计算平均成绩\n");printf("0.退出\n");printf("请输入对应操作的序号:");scanf("%d", &choice);switch(choice)case 1:addStudent(students, &count);break;case 2:showStudent(students, count);break;case 3:printf("平均成绩:%f\n", calculateAverage(students, count));break;case 0:return 0;default:printf("输入无效的序号!\n");break;}}return 0;```3.实验三代码示例:```c#include<stdio.h>#include<stdlib.h>#include<string.h>struct Bookchar name[50]; //书名float price; //价格struct Book *next; //指向下一本书的指针};struct Book *head = NULL; //链表的头指针void addBookstruct Book *newBook;char name[50], author[20];float price;newBook = (struct Book *)malloc(sizeof(struct Book)); scanf("%s %s %f", name, author, &price);strcpy(newBook->name, name);strcpy(newBook->author, author);newBook->price = price;newBook->next = head;head = newBook;void showBooksstruct Book *p;if(head == NULL)printf("暂无图书信息!\n");return;}p = head;while(p != NULL)printf("%s\t%s\t%f\n", p->name, p->author, p->price); p = p->next;}void searchByNamestruct Book *p;char name[50];if(head == NULL)printf("暂无图书信息!\n");return;}printf("请输入要查询的图书的书名:");scanf("%s", name);p = head;while(p != NULL)if(strcmp(p->name, name) == 0)printf("%s\t%s\t%f\n", p->name, p->author, p->price); return;}p = p->next;}printf("未找到该图书!\n");int mainint choice;while(1)printf("\n图书管理系统\n");printf("1.添加图书信息\n");printf("2.显示图书信息\n");printf("3.查询图书信息\n");printf("0.退出\n");printf("请输入对应操作的序号:");scanf("%d", &choice);switch(choice)case 1:addBook(;break;case 2:showBooks(;break;case 3:searchByName(;break;case 0:return 0;default:printf("输入无效的序号!\n");break;}}return 0;```以上是三个C语言程序设计实验的相关介绍和代码示例。

《C语言程序设计》综合实习报告

课题一:根据条件进行学生成绩排名一、目的1.熟悉变量、数组定义、使用、输入、输出等基本操作2.进行选择、循环结构程序设计练习3.掌握冒泡法排序的算法4.掌握函数的定义、调用、声明,以及参数的两种传递方式4.掌握函数的定义、调用、声明,以及参数的两种传递方式二、实习环境个人计算机,Windows操作系统,Turbo C 2.0或WinTC或Visual C++等编译开发环境三、实习内容、步骤与要求1.在函数中进行10个学生成绩从高到低排名sort(int a[10])2.改进第一步的函数为sort(int a[],int n),进行n个学生成绩从高到低排名,3.改进第二步的函数为sort(int a[],int n,char style),将n个学生成绩从高到低排名,排名方式根据sort()函数的style参数进行,如style为‘a’按升序排,style 为’d’按降序排。

(a:ascending升,d:descending降)sort(int score[],int n,char style) {int i,j,t;for(i=0;i<n;i++)for(j=0;j<n;j++){if(style=='a'){if(score[i]<score[j]){t=score[i];score[i]=score[j];score[j]=t;}}if(style=='d'){if(score[i]>score[j]){t=score[i];score[i]=score[j];score[j]=t;}}}}main(){int score[81],i,n;char style;scanf("%d",&n);printf("please input data:\n"); input(score,n);getchar();printf("please input a or d:"); scanf("%c",&style);sort(score,n,style);for(i=0;i<n;i++)printf("%d",score[i]);getch();}五、知识点、难点及解决办法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第1页 结构化程序设计与实现 程序设计的基本要求是设计出一个能在计算机上运行的、能得到正确结果的程序。但是仅仅做到这一点是很不够的,应该设计高质量的程序。 程序是对设计的实现。设计的质量与编程风格决定了程序的质量。

2.1 结构化程序的结构 结构化程序有3种基本控制结构: 顺序(序列)结构,选择(分支、条件)结构,循环(重复)结构。 1. 顺序结构 这是最简单、最基本的结构,其特点是:程序模块按出现的次序依次执行。 模块可以为:①空语句;②一条简单语句;③三种基本结构之一。 执行模块A,再执行模块B,则A与B是顺序结构。一般地,若干模块构成顺序结构。 复合语句中各条语句的关系就是顺序结构。 2.选择结构 选择结构有:单分支、两分支、多分支。 根据条件选择执行路径。 两分支的选择结构:若某条件成立,则执行模块A,否则执行模块B. 单分支的选择结构是两分支的选择结构的特殊情况。 多分支的选择结构:根据条件在多个模块A中选择一个执行. 例如:输入一个成绩,输出其等级。 3.循环结构 循环(重复)结构有:当型循环、计数型循环、直到型循环、一般循环结构。 循环结构是在一定条件下重复执行一个模块,该模块即循环体。 计数型循环:循环条件是制指定循环次数; 当型循环;先判断循环条件,若满足就执行循环体; 直到型循环:先执行循环体,再判断循环条件; 一般循环:循环条件可以在前,可以在后,可以在循环体中,可以有多个条件控制终止循环。 例:计算1到100的倒数之和。①s=0;②令i从1到100重复执行s=s+1.0/i;③输出s。 例:从1开始累计倒数和,直到和大于10,求项数。 ① s=0,i=0;②重复执行:i=i+1与s=s+1.0/i,直到s>10;③输出i。

结构化程序设计方法: ①仅使用三种基本结构。 ②自顶向下、逐步求精的设计方法。 第2页

2.2 算法设计工具 算法设计工具即算法的表示方法。用自然语言难于描述结构较复杂的程序设计结果,因此需要用合适的表示工具。程序设计的工具有多种,分图形、表格和语言三类,每种工具必须能明确表示程序结构和数据结构。算法设计的常用工具有: 伪码,Pseudo Code; 程序流程图,PFC,Program Flow Chart 盒[式]图,N-S图(Nassi-Shneiderman),Box Diagram 问题分析图,PAD,Problem Analysis Diagram

1.伪码 伪码即结构化分析语言(LSA,Language of Structured Analysis)。它是用正文形式表示数据和处理过程的设计工具。通常使用某种自然语言的词汇,使用某种结构化的程序设计语言的语法。 优点:①可作为注释插入源程序。②编辑方便。缺点:不如图形直观。 通常与图形工具结合使用。若单独使用,则很难直观地表示较复杂的算法。

2. 程序流程图(PFC图) 早期版本的PFC容易设计非结构算法,不区分选择结构与循环结构,已经淘汰。中国国家标准GB1526-89(与国际标准兼容)规定了13种符号,目前已经较少使用。

循序结构 选择结构(两分支) 选择结构(多分支) 循环结构(当型) PFC的缺点:可以设计出非结构化的程序。

2.盒图(N-S图)

顺序结构 两分支结构 多分支结构 当型循环 直到型循环 计数型循环 优点:①迫使设计结构化程序。②嵌套关系清晰,易确定数据的作用域。 缺点:当程序结构复杂时,较难绘制。

A B p T F A B CASE 条件 值1 值2 值n ELSE A1 A2 A3 A4 当p A A 直到p i=1..n

A

循环条件 p

true false

n=?

1 2 3 4 5 第3页

3.问题分析图(PAD图) 1973年由日本日立公司发明。

PAD图的主要优点:①迫使设计结构化程序。②PAD图是二维树形结构,所描绘的程序结构清晰,顺序结构向下扩展,分支结构和循环结构向右扩展。③容易将PAD图转换为高级语言源程序。 这3种图形工具都可以描述结构化程序,PAD图最好,N-S图次之。目前多数计算机课本用N-S图。应掌握PAD图和N-S图。

2.3 选择结构程序设计与实现 C++语言实现选择结构的语句有:if语句(必须掌握)和switch语句。 单分支的选择结构: if (p) A 其中p是判断条件,是逻辑表达式。

两分支的选择结构: (1)第1种情况: if (p) A else B 若模块B为空,则变为单分支结构,所以单分支结构是两分支结构的特殊情况。 (2)第2种情况: if (p1) A else if(q2) B 条件q2与p2不同,是在p1不成立的前提条件下p2成立的条件。这实际是嵌套的选择结构语句,第2个分支是单分支选择结构。通常可以理解为1层的两分支选择结构。 if (p1) A else if(q2) B

3分支的选择结构: C++中的if语句不能直接实现多分支选择结构,而是用多次2分支的选择结构实现。 (1)第1种情况: if (p1) A else if (q2) B else C 若模块C为空,则变为上面的两分支结构。 上面语句实际是:

A B 当p A 直到p A

def 第4页 if (p1) A else if (q2) B else C (2)第2种情况 if (p1) A else if (q2) B else if (q3) C

选择结构中的每个分支,都必须是一条语句,可以是空语句或一条简单语句或一条复合语句或一条带有else的if语句或switch语句或循环语句,而不允许是多条语句。 正确形式例如: if (p) { a=b; b=c; } else { if (q) x=y; } 错误形式例如: if (p) a=b; b=c; else { if (q) x=y; } 正确形式例如: if (p) { if (q) a=b; } //若略去括号,则语法正确,但结构改变,算法改变。 else { b=c; d=e; }

良好的书写格式:每个分支中的语句应该缩进4个字符。 switch语句:用于实现多分支选择结构。4分支的switch语句语法如下: switch (表达式) { case 常量表达式1:语句1 break; case 常量表达式2:语句2 break; case 常量表达式3:语句3 break; default:语句4 } 表达式可以是整型、字符型、枚举型。常用的类型是整型和字符型。 常量表达式的值不能重复,类型必须与表达式匹配。 每个case语句只是入口标号,因此每个分支语句最后应写break语句。 default分支是可选的。 第5页

其中的每个分支的语句可以是一条或多条语句。 [题1] 输入点P(x,y),判断此点是否在区域D:24,02xyx中。 #include using namespace std; int main( ) { double x,y; cout<<"输入点P的坐标"; cin>>x>>y; if (x>=0 && x<=2 && x*x<=y && y<=4) cout<<"点P在区域D中"< else cout<<"点P不在区域D中"< return 0; } 知识点:if语句,输入输出。

[题2] 设,01,01ln,1xexyfxxxxx,输入x,输出y 知识点:if语句,数学函数,头文件cmath。 [题3] 输入3个字母,判断是否包含相邻的字母。 知识点:函数abs,字符类型与整型的兼容。

[题4] 输入4个实数,输出其最大值、最小值。 [题5] 输入一个成绩,输出其等级。等级规定:90-100分为“优秀”,80-89分为“良好”,70-79分为“中等”,60-69分为“及格”,0-59分为“不及格”,其他为错误输入。 知识点:多分支选择结构。

[题6] 输入3个整数(或字母),按从小到大的次序输出。 知识点:少数数据的排序。 第6页

[题7] 输入公历(格里高利历1582年11月15日以后使用)年和月(假设年的合理值在1583-9999之间),判断是闰年还是平年,输出该月有多少天。 知识点:逻辑型表达式,选择结构,公历的闰年规定。 可以用if语句或switch语句。

[题8] 某旅游公司对某旅游路线规定:票价是1000元/张,一张儿童票(半票)折算为半张成人票(全票)。预订超过10张全票的团体票可优惠,优惠方式如下: 票数在(10,20]部分,票价900元/张,票数在(20,50]部分,票价800元/张,。 票数在(50,∞)部分,票价660元/张。 输入成人票数和儿童票数,计算总票价。 例:38张全票29张儿童票折算为52.5张全票,其价格为: 10*1000+10*900+30*800+2.5*660 提示:可以仅用整型而避免用实型运算。要注意程序的健壮性。

[题9] 读入三角形的三条边长,若能构成三角形则输出三角形的周长、面积和三个角(以度为单位),否则输出适当信息。 知识点:数学函数。应注意程序的健壮性、输出数据的格式应符合多数用户的习惯。

相关文档
最新文档