偶写的一个简单行编辑程序(我的实习题)

合集下载

数据结构行编辑程序报告

数据结构行编辑程序报告
SqStack S,S1;
InitStack(S);
InitStack(S1);
char ch,c;
ch=getchar();
while(ch!=EOF){//EOF为全文结束符
while(ch!=EOF&&ch!='\n'){
switch(ch){
case'#':Pop(S,c); break;//仅当栈非空时退栈
二.设计
用栈编辑一个输入缓冲区
1.用“#”符号删除前一个错误的字符,用Pop退出栈顶元素已删除最后一个错误元素。
2.用“@”符号删除前面一行元素,循环使用判断前是否还有元素,如有用Pop删除。直至判断栈空为止。实现退行功能。
此程序很恰当的运用了栈后进先出的特点,将栈定义,在算法中直接调用,帮助实现“#”符号的退格功能和“@”符号的退行功能。
}
Status GetTop(SqStack S,SElemType &e)
{//取栈顶元素
if(S.top==S.base) return ERROR;
e=*(S.top-1);
return OK;
}//GetTop
Status Push(SqStack &S,SElemType e)
{//入栈将e放入栈里面
case'@':{
while(!StackEmpty(S))
Pop(S,c);
};break;//构造空栈S
default:Push(S,ch); break;//有效字符进栈,未考虑栈满情形
}
ch=getchar();//从终端接收下一字符
}
while(!StackEmpty(S)){

编写C语言程序题及参考答案

编写C语言程序题及参考答案

编写C语言程序题及参考答案基本按照把同类题目尽量排在一起原则组织的,便于读者学习掌握编程方法和思路,提高编程能力。

【4.1】已知银行整存整取存款不同期限的月息利率分别为:0.315% 期限一年0.330% 期限二年月息利率= 0.345% 期限三年0.375% 期限五年0.420% 期限八年要求输入存钱的本金和期限,求到期时能从银行得到的利息与本金的合计。

【4.2】输入年份year和月month,求该月有多少天。

判断是否为闰年,可用如下C语言表达式:year%4==0 && year%100!=0 || year%400==0。

若表达式成立(即表达式值为1),则year为闰年;否则,表达式不成立(即值为0),year为平年。

【4.3】编写一个简单计算器程序,输入格式为:data1 op data2。

其中data1和data2是参加运算的两个数,op为运算符,它的取值只能是+、-、*、/。

【4.4】输入n值,输出如图所示矩形。

【4.5】输入n值,输出如图所示平行四边形。

【4.6】输入n值,输出如图所示高为n的等腰三角形。

【4.7】编写程序,输入三角型的三条边长,求其面积。

注意:对于不合理的边长输入要输出数据错误的提示信息。

【4.8】编写程序求出555555的约数中最大的三位数是多少。

【4.9】从键盘输入任意的字符,按下列规则进行分类计数。

第一类 '0','1','2','3','4','5','6','7','8','9'第二类 '+','-','*','/','%','='第三类其它字符当输入字符'\'时先计数,然后停止接收输入,打印计数的结果。

Visual FoxPro程序设计实习教程与习题集

Visual FoxPro程序设计实习教程与习题集
2.求出所有男职工的人数和基本工资总额,并分别赋值给CN和SN,利用上述两个内存变量计算出男职工的平均工资。
count for性别='男' to cn
sum基本工资for性别='男' to sn
?sn/cn
3.计算所有职务为科长的平均年龄。
average year(date())-year(出生日期) for职务='科长'
list
2)按“职务”索引,索引标记为ZW,并显示结果。
index on职务tag zw
list
3)按“出生日期”的降序索引,索引标记为CSRQ,并显示结果。
index on出生日期tag csrq
list
4)按“性别”和“职务”索引,索引标记为XBZW,并显示结果。
index on性别+职务tag xbzw
1)筛选出65年以前出生的所有职务为“科员”的职工记录,并显示当前记录。
执行GO TOP命令后,再显示当前记录,查看两者的区别。
set filter to year(出生日期)<1965 and职务='科员'
display
go top
display
2)筛选出工资在400~500元之间的职工记录,并显示筛选结果。
set filter to基本工资>=400 and基本工资<=500
list
《实习教程》第10单元数据表的统计(参考答案)
准备:打开数据表ZGGZ.DBF,以下操作为对该数据表进行。
use zggz
1.分别统计数据表中已婚的男职工和未婚的女职工人数。
count for婚否and性别='男'

c语言 部分简单程序代码及练习答案

c语言 部分简单程序代码及练习答案
max=a[0]; // 同理
for (i=1; i<5; i++)
if (a[i]>max)
{ max=a[i];
k=i;
}
// 对调a[j] a[k] 的位置。
1、输入第一个字符串,计算长度X;
2、输入第二个字符串,计算长度Y;
3、计量长度X、Y比较,取最大者Y=MAX(X,Y);
4、输入第三个字符串,计算长度X;
5、计量长度X、Y比较,取最大者Y=MAX(X,Y);
6、依此循环;
第二阶段:使用两个字符串变量。
我学习了第八章《数组》后,发现可以利用字符串变量来“储存”输入的字符串。于是,我用CH1[]、CH2[]两个字符串变量来存放输入的字符串。根据输入的字符串,计算它的长度,然后比较取其最大者,然后再输入,再比较,不断循环。
int main()
{ int a[5], max, min, i, j, k ;
for (i=0; i<5; i++)
{scanf("%d", &a[i]);}
min=a[0]; // a[0] a[1] a[2] a[3]...a[i] 令min=a[0]最小,然后依次将后
第一个引数输入在函数外部 char *a="asdfasdf" 声明 编译通过但是运行会出现错误 (*a 指向的内容被视为是常量,不可改变)
或者 char a[]="ab",也会出错,(长度超限,运行时错误)
除非char a[100]="ab",2个字符串长度不超过100才会通过。
最好状态知道2个字符串长度,建立一个新字符串把2个字符串复制进去 如果不知道长度的情况,就应该用连表

C语言程序设计实训教程习题和实验解答

C语言程序设计实训教程习题和实验解答
scanf(“%d,%d,%d”,&a,&b,&c);
sum=a+b+c;
average=sum/3.0;
printf(“sum=%d,average=%f\n”,sum,average);
}
【实验解答】
1.c=10
2.①程序功能为输入两个数,求两数的差
②c=10
3.#include<stdio.h>
3.运行结果-1,177777,ffff,65535
b=-2
4.编程并上机调试运行
1)设圆半径为r=1.5,求圆周长、面积。要求用scanf函数输入数据,输出时取小数点后两位。
#include <stdio.h>
void main()
{
float r,l,s,v;
scanf("%f",&r);
l=2*3.14*r;
case 8:printf("B\n");break;
case 7:printf("C\n");break;
case 6:printf("D\n");break;
default:printf("E\n");
}
}
}
3)输入四个数,要求按从大到小顺序输出。
#include<stdio.h>
void main()
}
2.由键盘输入3个数,若输入的这3个数可以构成三角形,则计算以这3个数为边长的三角形周长;如果不能,则输出提示错误信息。
#include <stdio.h>
void main()
{
float a,b,c,l;

C语言程序设计练习题(答案)

C语言程序设计练习题(答案)

C语言程序设计练习题(答案)1.1上机实训项目实验1实验步骤1、进入VC环境从“开始”→“程序”→“Microsoft Visual Studio 6.0”→“Microsoft Visual C++ 6.0”,这时进入VC集成环境的主菜单窗口,屏幕显示如图1_1所示。

图1-1 VC集成环境的主菜单窗口2、VC环境下C程序的编辑、连接和运行(1)新建一个源程序①在VC环境中选择“文件”菜单,然后单击“新建”菜单项。

如图1-2所示图1-2 选择新建② 在弹出的新建对话框中设置好相应的内容,如图2-2所示。

要事先准备好保存文件的目录,例d:\lx 目录。

在图1-3中“文件”一栏的源程序文件的扩展名一定要输入C 语言程序的扩展名“.c ”。

设置好后,单击“OK ”,就回到了VC++的编辑界面,即将进行输入和编辑的源程序文件example.c 文件存放在D 盘的LX 目录下。

图1-3 新建对话框的设置③ 在图1-4的工作区中,输入源程序2.设置源程序的文件名,扩展名一定要为“.c ”且一定要输入扩展名1.单击该处3.设置存放目录图1-4 输入、编辑源程序④输入源程序文件后可在主菜单栏中选择“文件”(FILE),并在其下拉菜单中选择“保存”(SAVE),如图1-5所示。

图1-5 保存源程序⑤源程序的编译如图2-6所示,单击主菜单的“编译”(Build),在其下拉菜单中选择“编译example.c”(Compile example.c),或者单击工具栏上的“编译”按钮,如图1-6所示。

在单击“编译”后,屏幕上会出现一个如图1-7所示的对话框。

内容是“This build command requires an activeproject worksapce,Would you like to create a default project worksapce?”,要创建一个默认的项目工作区,单击“是(Yes)”,表示同意,将开始编译;单击“No ”,表示不同意,将取消编译。

C#程序设计案例教程习题解答

C#程序设计案例教程习题解答

第1章课堂实训1-1. 编写一个简单的C#程序,输出如下内容:/************************************************ How are you ! ************************************************/1-2. 参考附录A,安装Visual Stdio 2005集成开发环境。

1-3. 参考附录A,安装MSDN。

1-4.定制Visual 的集成开发环境。

习题一1-1. 选择题(1) 下面对Read()和ReadLine()方法的描述,哪些是正确的。

(A,D)A. Read()方法一次只能从输入流中读取一个字符B. 使用Read()方法读取的字符不包含回车和换行符C. ReadLine()方法读取的字符不包含回车和换行符D. 只有当用户按下回车键时,Read()和ReadLine()方法才会返回(2) 下面对Write()和WriteLine()方法的描述,哪些是正确的。

(B)A. WriteLine()方法在输出字符串的后面添加换行符B. 使用Write()方法输出字符串时,光标会位于字符串后面C.使用Write()和WriteLine()方法输出数值变量时,必须要先把数值变量转换成字符串D. 使用不带参数的WriteLine()方法时,将不会产生任何输出1-2.C#程序从哪儿开始执行?(Main()方法)1-3. 在C#程序中,using System 是必须的吗?(是)1-4.C#中有两种注释方法:_//_____适用于单行注释,/* */______适用于多行注释。

第2章课堂实训2-1.输入一个3位数的整数,编写一个程序,将它的十位数和百位数互换位置。

习题二2-1. 选择题(1) 下列标识符命名正确的是(A,D)A._int, Int, @int B. using, _using, @usingC. NO1, NO_1, NO.1D. A3, _A3,@A3(2) 下列变量的声明方式不正确的是( A,B)A. int a, string b, char c;B. int a=c=b=21;C. char a;D. string myString =”abc”;(3) 下面的标识符中,合法的是( C )A. class , publicB. 3a, _3aC. a3D. a#5(4) 设有说明语句int x=8;则下列表达式中,值为2的是(C )A. x>8?x=0:x++;B. x/= x+x;C. x %= x-2;D. x+= 2;2-2. C#的每条语句都通过___分号“;”___来结束。

C程序设计实训题目[精选合集]

C程序设计实训题目[精选合集]

C程序设计实训题目[精选合集]第一篇:C程序设计实训题目选题1、小学生测验面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。

功能要求:(1)电脑随机出10道题,每题10分,程序结束时显示学生得分;(2)确保算式没有超出1~2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的;(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;(4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;(5)总成绩90以上显示“SMART” ,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRY AGAIN”2、物业费管理系统完成小区物业费用管理系统设计。

功能要求:(1)新住户信息的添加。

(户主姓名、性别、身份证号、联系电话、楼号、单元号、房号、平米数、每平米物业价格、应缴纳物业费,备注信息)(2)修改住户信息的功能。

(3)删除住户信息的功能。

(4)应缴物业费自动生成。

每月1号,自动生成本月份的物业费。

如果该住户之前的物业费未交清,则本月物业费与之前拖欠费用进行累加,为该用户应缴纳的物业费。

(5)缴费功能。

根据用户缴纳金额,修改“应缴纳物业费”。

(6)统计功能:能够按楼号分类统计所有未交清物业费的记录。

能够按拖欠款项多少,对所有用户信息进行从大到小排序。

(7)用菜单进行管理3、歌手比赛系统对一次歌手比赛的成绩进行管理,功能要求:1、输入每个选手的数据包括编号、姓名、十个评委的成绩,根据输入计算出总成绩和平均成绩(去掉最高分,去掉最低分)。

2、显示主菜单如下:1)输入选手数据2)评委打分3)成绩排序(按平均分)4)数据查询5)追加学生数据 6)写入数据文件7)退出系统。

4、文件加密文件的传输会有明文和密文的区别,明文发送是不安全的,用一个程序实现发送文件的加密和解密操作。

编写简单C程序(1)-参考答案

编写简单C程序(1)-参考答案

编写简单的C程序(1)【实验目的】1.掌握程序的调试方法2.掌握输入函数和输出函数的使用3.能够编写简单的C顺序程序【实验内容】一、调试程序1、在VC中输入以下程序(源程序文件名取为errro2-1.c)#include <stdio.h>void main( ){int c, f;f = 100c= 5×(f - 32) / 9;printf(“华氏温度= %f, 摄氏温度= %d\n”, f, c);}以上程序中有3处错误,请改正,让程序运行出如下结果华氏温度= 100, 摄氏温度= 37错误1:f=100 应改为:f=100;错误2:c= 5×(f - 32) / 9; 应改为:c= 5*(f - 32) / 9;错误3:printf(“华氏温度= %f, 摄氏温度= %d\n”, f, c); 应改为:printf(“华氏温度= %d, 摄氏温度= %d\n”, f, c);2、在VC中输入以下程序(源程序文件名取为errro2-2.c)程序的功能是:计算某个数x的平方y,并分别以“y=x*x”和“x*x=y”的形式输出x和y的值。

假设x的值为3,正确的输出结果应为:9=3*33*3=9改正以下程序中的错误,让程序运行结果正确,请不要删除给出源程序中的任何注释。

#include <stdio.h>void main( ){int y;y=x*x;printf(“%d=%d*%d\n”,x); // 输出y=x*xprintf(“d*%d=%d\n”, y); // 输出x*x=y}错误1:变量x 没有定义。

int y; 应改为:int y ,x;错误2:没有给x 赋值。

应在y=x*x; 之前加入:scanf(“%d ”,&x);错误3:printf(“%d=%d*%d\n ”,x); 应改为:printf(“%d=%d*%d\n ”,y,x ,x); 错误4:printf(“d*%d=%d\n ”, y); 应改为:printf(“%d*%d=%d\n ”,x,x, y);二、编程题1、求摄氏温度26度所对应的华氏温度。

编写一个简单行编辑程序

编写一个简单行编辑程序
不要用于判断程序参数,让程序死掉不是个好想法
尽量不要用goto 变量名命名问题
不要使用拼音 不要过度使用无意义的n,m,temp1,temp2
学习使用面向对象的方法 不要每个函数一个文件 不要在头文件里面写大量的函数实现
输入输出处理
尽量统一处理输入输出
最好不要每个函数都有输入输出,可以写一个类 包装起来
Project-1讲评
张阜东
题目
编写一个简单行编辑程序,对文本文件进行插入、 删除等修改操作。可以是 类似于Unix Vi 或DOS Edit/Edlin 的简单行编辑, 要求实现以下功能: (1) 行插入; (2) 行删除; (3) 改变当前行指针; (4) 页显示; (5) 全文替换;
态度决定一切
写程序的态度
认真研究需求 至少你得知道vi或者edlin是怎么用的 写有用的程序,不要一开始就先告诉自己这个程 序只是为了交作业! 追求完美
写报告的态度
文档有时候比程序重要 不要大量帖代码
数据结构的选择
固定的二维数组text[1000][1000] 找不到使用它的理由 vector<string> 每次插入都要把后面的string都移动一位 vector<char*> 每次插入只要移动指针 list<string> 看起来很简单的方法 list<char*> 看起来也不错 map<int,string> map很强大 string + map<int,int> 用一个string保存全文,map<int,int>保存每行换行符的位置,有创意
做好输入错误判断
按照字符串读入输入数据 判断是否符合要求的数据 将字符串转换为需要的类型

《三、 编一个简单的程序》作业设计方案-高中信息技术人教版选修1

《三、 编一个简单的程序》作业设计方案-高中信息技术人教版选修1

《编一个简单的程序》作业设计方案(第一课时)一、作业目标本次作业旨在帮助学生掌握编程的基本概念和语法,通过实践操作,培养他们的逻辑思维能力和问题解决能力。

二、作业内容1. 任务一:学习使用编程语言编写一个简单的程序,实现一个“猜数字”的游戏。

程序要求从1-100之间随机生成一个数字,并提示用户输入他们的猜测。

程序将根据用户的猜测给出提示和建议,直到用户猜中为止。

2. 任务二:探索不同的编程方法和技巧,例如使用循环、条件语句等,完成一个更复杂的程序,如“颜色生成器”。

程序应能够根据用户输入的颜色名称或代码生成相应的颜色。

3. 任务三:进行一次小组讨论,分享各自编程过程中的经验和教训,共同探讨如何提高编程效率和准确性。

三、作业要求1. 学生需独立完成或以小组形式合作完成上述任务,确保程序正确性和可行性。

2. 学生在编写程序时,应注意编程规范和代码整洁,遵循一定的命名规则和注释习惯。

3. 每个学生需提交一份完整的作业报告,包括程序的功能描述、实现方法和代码示例。

报告应简洁明了,易于理解。

4. 作业报告应控制在一定字数范围内(约300字),避免过于冗长。

5. 学生应积极参与小组讨论,分享自己的见解和想法,共同解决问题。

四、作业评价1. 教师将根据学生的作业报告和程序实现情况进行评价,重点关注程序的正确性和可行性。

2. 教师将根据学生的参与度和合作精神进行评价,鼓励学生在小组讨论中积极发言和交流。

3. 评价结果将以分数形式呈现,分为优秀、良好、中等、及格和不及格五个等级。

4. 对于完成度较高、具有创新性的程序,教师将在班级内进行展示和点评,以激励学生不断提高编程水平。

五、作业反馈1. 学生可随时向教师咨询和反馈作业中遇到的问题和困难,教师将尽力提供帮助和指导。

2. 教师将收集学生的作业反馈,分析作业完成情况,为后续教学提供参考和改进。

3. 通过作业反馈,学生可以更好地了解自己的优势和不足,有针对性地提高自己的编程能力。

《第一单元 Visual Basic初步 第2课 编一个简单的程序 运行示例程序》作业设计方案-初中

《第一单元 Visual Basic初步 第2课 编一个简单的程序 运行示例程序》作业设计方案-初中

《运行示例程序》作业设计方案(第一课时)一、作业目标本次作业旨在帮助学生掌握如何运行示例程序,理解计算机的基本操作,提高实际操作能力。

二、作业内容1. 打开信息技术课程指定的示例程序,并熟悉界面和功能;2. 按照提示操作,正确输入相关参数或数据;3. 观察程序运行结果,并与示例结果进行对比;4. 遇到问题时,尝试自行解决,如无法解决,记录问题并向老师请教。

三、作业要求1. 独立完成作业,不得抄袭;2. 按照作业指导书中的步骤操作,确保程序的正确运行;3. 遇到问题时,积极寻求解决方案,或及时向老师咨询;4. 按时提交作业,作业提交方式将另行通知。

四、作业评价1. 作业提交后,老师将进行检查,确保程序的正确运行和相关参数或数据的输入无误;2. 根据作业完成情况、问题解决能力、学习态度等综合评价学生,给出相应的成绩;3. 优秀的作业将进行展示,激励学生更好地完成学习任务。

五、作业反馈1. 学生应定期检查自己的作业完成情况,如有疑问,请及时向老师咨询;2. 老师将定期收集学生反馈,对作业设计方案进行优化,以提高教学效果;3. 针对学生在作业中遇到的问题,老师将提供相应的辅导和支持。

具体作业内容及要求如下:1. 打开指定的示例程序,并熟悉界面和功能。

示例程序为初中信息技术课程中提供的简单计算器程序。

学生应观察程序界面,了解各个按钮的功能和操作方法。

完成这一步需要大约15分钟。

2. 按照提示操作,正确输入相关参数或数据。

学生应根据程序界面的提示,正确输入所需的参数或数据。

例如,在计算器程序中,学生应按照提示输入数字和运算符。

完成这一步需要大约5分钟。

3. 观察程序运行结果,并与示例结果进行对比。

学生应观察程序运行结果,并与示例结果进行对比,以确保自己正确完成了程序的运行。

完成这一步需要大约5分钟。

4. 遇到问题时,尝试自行解决,如无法解决,记录问题并向老师请教。

学生在完成示例程序的过程中,可能会遇到一些技术难题。

《三、编一个简单的程序》作业设计方案-高中信息技术人教版选修1

《三、编一个简单的程序》作业设计方案-高中信息技术人教版选修1

《编一个简单的程序》作业设计方案(第一课时)一、作业目标1. 掌握程序编写的基本概念,了解程序设计的基础知识。

2. 熟悉常用编程工具的基本操作,能编写简单的程序代码。

3. 培养学生的逻辑思维能力和解决问题的能力。

二、作业内容本节课的作业内容是让学生掌握如何使用编程工具编写一个简单的程序。

具体包括以下几个步骤:1. 了解编程环境:学生需要熟悉编程工具的界面和基本操作,包括编辑器、编译器和调试器等。

2. 设计程序:根据课程中给出的需求或由学生自主选择的问题,设计出简单的程序逻辑和算法。

这一步骤旨在锻炼学生的逻辑思维和问题解决能力。

3. 编写代码:根据设计的程序逻辑和算法,使用编程语言编写代码。

教师可为学生提供编程语言的基本语法和函数库,以便学生参考和调用。

4. 调试运行:编写完代码后,学生需要对程序进行调试和测试,确保程序能正常运行并符合设计要求。

教师需要引导学生了解常用的调试技巧和方法。

5. 程序美化与注释:为了提高程序的可读性和维护性,学生需要给程序添加必要的注释,并确保程序的排版整洁、美观。

三、作业要求1. 学生在完成作业时需遵循以下要求:- 按时完成作业,不拖延。

- 认真阅读课程资料和教师指导,理解作业要求。

- 独立完成作业,不抄袭他人成果。

- 注重程序的逻辑性和可读性,确保程序的正确性和稳定性。

- 遵守编程规范,使用合适的变量名、注释和缩进等。

- 在遇到问题时,积极寻求帮助并记录解决方案。

四、作业评价作业评价是帮助学生认识自身不足并改进学习的重要环节。

评价将从以下几个方面进行:- 程序正确性:程序是否按照预期的逻辑运行并输出正确结果。

- 程序结构:程序的逻辑结构是否清晰,是否符合编程规范。

- 创新性:学生是否能够提出新颖的程序设计思路或采用独特的算法实现功能。

- 团队合作(如需小组合作时):团队成员之间的协作情况及成果共享程度。

五、作业反馈1. 教师将对每位学生的作业进行批改,并给出详细的反馈意见和建议。

简单行编辑程序

简单行编辑程序

数据结构程序设计实验报告简单仃编辑程序院系:计算机科学与技术学院专业:软件工程1班姓名:丁珊珊学号:E01214269日期:2014/9/19 需求分析1、问题描述:文本编辑程序是利用计算机进行文字加工的基本软件工具,实现对文本文件的插入、删除等修改操作。

限制这些操作以行为单位进行的编辑程序称为行编辑程序。

被编辑的文本文件可能很大,全部读入编辑程序的数据空间(内存)的做法即不经济,又不总能实现。

一种解决方法是逐段的编辑。

任何时刻只把待编辑文件的一段放在内存,称为活区。

试按这种方法实现一个简单的行编辑程序,设文件每行不超过320个字符,很少超过80个字符。

2、此程序具备以下功能:(1)行插入。

格式:i<行号><回车><文本>. <回车>将<文本〉插入活区中第<行号〉行之后。

⑵ 行删除。

格式:d<行号1>[<空格><行号2>]<回车>;删除活区中第<行号1>行(到第<行号2>行)。

⑶活区切换。

格式:n<回车>将活区写入输出文件,并从输入文件中读入下一段,作为新的活区。

⑷活区显示。

格式:p<回车>逐页地(每页20行)显示活区内容,在每显示的一页之后请用户决定是否继续显示以后各页(如果存在)。

印出的每一行要前置行号和一个空格符,行号固定占4位,增量为1。

各条命令中的行号均须在活区中各行号范围之内,只有插入命令的行号可以等于活区第一行行号减一,表示插入当前的屏幕中第一行 之前,否则命令参数非法。

概要设计1、 主页面设计«科谥掲结•耳炸业\T^t 十 ED1214 西 9+56三肚业 IDebu g\ma i n. exe'2、 存储结构设计typedef struct text {char stri ng[SIZE];〃存储每一行的元素 struct text *n ext;//指向后一个节点的指针 int len gth;}text,*textp;迖行号X 回车X 文圭X 回毛》叵拳y r 号i > X 空格Y 回车》 it'(回车》 *+♦P<M-K IS=s^3、系统功能设计1)行插入2)行删除3)活区切换4)活区显示5)结束4、程序调用关系程序结构流程图:开始三、详细设计1、数据结构存储定义typedef struct text{char stri ng[SIZE];〃存储每一行的元素struct text *n ext;//指向后一个节点的指针int len gth;}text,*textp;2、行插入int insert(textp &head,FILE *out){int han g,i;textp p,p1;scan f("%d",&han g);p=(textp)malloc(sizeof(text));〃为插入行分配空间fflush(stdi n);fgets(p->string,80,stdin); /*输入插入行的内容*/p仁head->n ext;if(head->le ngth==ActiveMaxLe n)fputs(p1->stri ng,out);else{if(ha ng==1){p->n ext=head->n ext;head->n ext=p;head->le ngth++;}else{for(i=2;i<ha ng;i++)p1=p1- >n ext;p->n ext=p1- >n ext;p1- >n ext=p;head->le ngth++;}}printf("在第%d行前插入完成\n",hang);return OK;}3、行删除int del(textp &head) 〃删除d命令对应的函数,用来删max—min中的行,用结构体中的flat表示是否被删除{text *p,*q;int min, max,i;sca nf("%d %d",&mi n,&max);if(head==NULL){prin tf("\nlist n ull!\n");return OK;}p=head;for(i=1;i<min;i++)/*找到要删除的第一行的前一行*/p=p->n ext;for(i=i-1,q=p->next;i<max;i++)/* 删除到最后一行*/ {p->n ext=q->n ext;free(q);q=p->n ext;}head->le ngth--;printf("第%d行到第%d行删除完成!\n",min,max); return OK;}4、活区切换Status LoadFile(textp head,FILE *fp) /从文件读内容到活区*/ {textp p;for(p=head;p&&(!feof(fp));p=p->n ext){if(!fgets(p->stri ng,80,fp)) break; p->flat=1;}return 0;}Status SaveFile(textp head,FILE *out) /* 存储活区的函数*/{textp p;for(p=head;p;p=p->n ext)if(p->flat==1){fputs(p->string,out); /*输出活区的内容到指定的文件*/p->flat=0;}return OK;}5、活区显示void display(textp head)//显示P命令对应的函数,用来显示活区的内容{ int i;int j=head->le ngth/20; int k=0;textp p=head->n ext;for(j=0;j<=head->le ngth/20;j++)prin tf("********************* ********************** **\n",j+1);for(i=20*j+1;i<=head->le ngth;p=p->n ext,i++){prin tf("%2d",i);prin tf(" %s",p->stri ng); if(i%20==0) break; }printf("是否继续显示下一页,是输入 1否输入O.\n"); sca nf("%d",&k); if(k==0)break;if(j==head->le ngth/20-1) {printf("没有后续页面了 \n"); break; } } }四、测试分析1.开始界面i 弋;衢斜谥SEE 结吗\作业 \丁马删-ED12142&9 +3e^<XraE\Debug\nnain exe 「 4 NU tu UlfUlttlUtmi# U411" MUUAU4 llfl JHllUUt 软迎使用 打编辑程序 tUtUttlUlUltUmiJm UftUI UHAfl UAUtUHAMMMM Mhnter the unf 1 丄巳 navite・■■弍式如-插删区区出一苕第认行号X 回车乂文圭X 回车》** (K 叵车X 齐自丄空格X-行弓牯Y 回车》 n< Q^> **D< Id —> ** e< 3^ > *M2•用户输入一个已经存在的文本文件名称—— in.txt 并回车,程序将读出内容并存入一个新的文本文件—— out 中。

编写程序练习题程序

编写程序练习题程序

历年考试题1,在文本框Text1、Text2中分别输入一个任意正整数,按下“计算累加和”按钮Command1,计算这两个数之间所有整数的累加和,并将结果显示在标签Label1中。

2,假设邮费计算方法为:100克以内(含100克)收费5元,超过100克的部分每克加收0。

2元。

试编写程序,要求从键盘输入邮寄物品质量,计算并输出邮费。

3, 输入出租车行驶里程S ,输出应付车费F 。

S 和F 的关系如下: 335.1)3(66>≤⎩⎨⎧⨯-+=S S S F4,假设一个快递公司针对个人小宗业务(即物品总重量不超过20公斤)的收费规定如下:物品在5公斤(含5公斤)以下,收费8元;在10公斤(含10公斤)以下,超过5公斤部分,每公斤收费0.5元;在20公斤(含20公斤)以下,超过10公斤部分,每公斤收费1。

5元。

不足1公斤均按1公斤计算。

编写程序,输入用户的快递物品重量,计算并输出所需邮费。

(6分)计算公式如下:(教科书P35、P205,冲刺班编程第5题,模考班第5题) ⎪⎩⎪⎨⎧≤<-≤<+≤=20105.45.11055.55.058x x x x x y5, 现有一元二次方程:ax 2+bx+c=0,其中a 、b 、c 、是整数,且a 0。

若存在实根,则输出“在实数范围内有解”;若不存在实根,则输出“在实数范围内无解”。

(5分)二、循环结构【1】单循环1,产生1-100以内的素数(for嵌if结构)33。

编写一个过程计算并输出区间[100,1000]内所有素数的和(要求判断素数使用过程(函数或子过程)来实现).调用该过程.(提示:只能被1 和自身整除的自然数成为素数)2,0到200 被5 或11 整除的数的和(for嵌if结构)3,计算100~300之间所有能被3和7整除的数之和。

4,编程求200--400范围内5的倍数或7的倍数之和。

(一个数如果同时是7和5的倍数,则只能加一次。

) 5,找出被3、5、7除,余数均为1的最小的5个正整数.6,某次歌曲大奖赛,有7个评委。

简单编程练习题

简单编程练习题

简单编程练习题难度:简单编程练习是提升自己编程能力的有效途径之一。

在这篇文章中,我将给大家提供一些简单的编程练习题,帮助大家巩固基础知识,提升编程技巧。

以下是几个常见的编程练习题:1. 计算两个数的和编写一个程序,实现两个整数的加法运算。

要求用户输入两个整数,然后计算它们的和并输出结果。

2. 判断是否为素数编写一个程序,判断一个给定的正整数是否是素数。

要求用户输入一个正整数,然后判断该数是否为素数,并输出结果。

3. 打印九九乘法表编写一个程序,打印出九九乘法表。

要求使用嵌套循环实现,输出结果如下:1 * 1 = 11 *2 = 2 2 * 2 = 41 * 3 = 32 *3 = 6 3 * 3 = 9...4. 字符串反转编写一个程序,实现将给定字符串进行反转。

要求用户输入一个字符串,然后将其反转,并输出结果。

5. 查找列表中的最大值编写一个程序,查找给定列表中的最大值。

要求用户输入一个由整数组成的列表,然后找到列表中的最大值,并输出结果。

以上是几个简单的编程练习题,希望大家能够动手亲自编写代码并验证结果。

通过不断的练习,相信大家能够提升自己的编程能力,更加熟练地运用所学知识。

总结:编程练习是提升编程能力的重要方法之一。

通过不断练习,我们能够巩固基础知识,提升编程技巧。

在本文中,我们介绍了几个简单的编程练习题,包括计算两个数的和、判断是否为素数、打印九九乘法表、字符串反转以及查找列表中的最大值。

希望大家能够利用这些题目进行实践,提升自己的编程水平。

新手编程练习题

新手编程练习题

新手编程练习题编程是一门技术,对于初学者来说,练习题是锻炼自己解决问题和提升编程能力的重要途径。

本文将介绍一些适合新手的编程练习题,并提供相应的解题思路和示例代码,帮助读者更好地入门编程。

1. 题目一:计算两个数的和编写一个程序,要求用户输入两个数字,然后计算这两个数字的和并输出结果。

解题思路:- 使用cout语句提示用户输入第一个数字,并使用cin语句将其保存到一个变量中。

- 同样地,提示用户输入第二个数字,并将其保存到另一个变量中。

- 将这两个数字相加并将结果保存到一个新的变量中。

- 使用cout语句输出结果。

示例代码:```cpp#include <iostream>using namespace std;int main() {int num1, num2;cout << "请输入第一个数字:";cin >> num1;cout << "请输入第二个数字:";cin >> num2;int sum = num1 + num2;cout << "两个数字的和为:" << sum << endl;return 0;}```2. 题目二:判断一个数是否为偶数编写一个程序,要求用户输入一个整数,然后判断这个数是否为偶数,并输出判断结果。

解题思路:- 使用cout语句提示用户输入一个整数,并使用cin语句将其保存到一个变量中。

- 使用条件语句判断这个数是否能够被2整除(即余数为0),从而确定是否为偶数。

- 使用cout语句输出判断结果。

示例代码:```cpp#include <iostream>using namespace std;int main() {int num;cout << "请输入一个整数:";cin >> num;if (num % 2 == 0) {cout << "这个数是偶数。

简单程序设计编程作业

简单程序设计编程作业

现将作业题的源文本发给大家。

请抓紧时间完成作业,作完后将源程序文件按每道题的标准题名(例:P709.C、P710.C、P711.C、…)存入自己的网络存储中或存入自己的优盘中,以便在可进入练习系统时上传上去。

要求按时完成作业,本周出的作业,要求在下周上机时完成。

到时教师或助教进行检查,并按完成的数量和质量打分后记入平时成绩。

一、编写一程序P709.C实现以下功能输入一个华氏温度,要求输出摄氏温度,计算公式为c=5(F-32)/9。

编程可用素材:printf("Input the degree:")...、printf("\nF(...)=C(...)...。

程序的运行效果应类似地如图1所示,图1中的120是从键盘输入的内容。

图1 程序运行效果示例二、编写一程序P710.C实现以下功能输入一个小写英文字母,首先输出它及其ASCII码,然后输出其对应的大写字母及其ASCII码。

编程可用素材:printf("Input a lowercase letter: ")...、printf("\n...(...)...。

程序的运行效果应类似地如图1所示,图1中的y是从键盘输入的内容。

图1 程序运行效果示例三、编写一程序P711.C实现以下功能用scanf输入圆半径r,圆柱高h,求圆周长C1(=2πr)、圆面积S(=πr2)、圆柱体积V(=πr2h)。

(注意:本题中规定圆周率取值为3.14)程序的运行效果应类似地如图1所示,图1中的r=1.3,h=5是从键盘输入的内容。

图1 程序运行效果示例四、编写一程序P720.C实现以下功能输入实型数据a,b,然后输出a、b的值。

程序的运行效果应类似地如图1所示,图1中的5.79,6.8723是从键盘输入的内容。

图1 程序运行效果示例五、编写一程序P721.C实现以下功能从键盘输入x,y,z的值,编写程序输出以下表达式的值:x+z%3*(int)(x+y)%2/4程序的运行效果应类似地如图1所示,图1中的2.5,4.7,7是从键盘输入的内容。

《三、 编一个简单的程序》作业设计方案-高中信息技术人教版选修1

《三、 编一个简单的程序》作业设计方案-高中信息技术人教版选修1

《编一个简单的程序》作业设计方案(第一课时)一、作业目标通过本次作业,学生将学习如何使用编程语言(如Python)编写简单的程序,理解程序的基本结构,掌握控制语句的使用,培养编程思维和解决问题的能力。

二、作业内容1. 任务一:编写一个控制循环程序要求:编写一个程序,实现一个简单的循环,例如,每隔一秒输出一次“Hello, world!”2. 任务二:编写一个条件判断程序要求:编写一个程序,实现一个简单的条件判断,例如,根据输入的温度,输出不同的天气提示。

三、作业要求1. 学生需独立完成作业,不得抄袭;2. 作业中需包含完整的程序代码,并注明所用编程语言;3. 作业提交形式:以电子版形式提交至教师指定的平台或邮箱。

四、作业评价1. 评价标准:程序的正确性、逻辑的清晰性、解决问题的有效性;2. 评价方式:教师评审学生的作业代码,给出分数或评级;3. 评价时间:作业提交后,教师将在一定时间内完成评审。

五、作业反馈1. 学生反馈:学生可随时通过指定平台或邮箱,了解作业评审结果,如有疑问可与教师沟通;2. 教师反馈:教师根据学生作业完成情况,提供针对性的反馈和建议,以帮助学生更好地掌握编程知识和技能。

具体作业内容及要求如下:(一)作业目标通过本次作业,学生将学会使用Python等编程语言编写简单的程序。

程序需要具备以下特点:能够通过循环实现一定的功能;能够使用条件语句进行判断和决策。

通过完成本次作业,学生能够理解程序的基本结构和控制语句的使用方法。

同时,学生需要能够独立完成作业任务,不抄袭他人代码。

(二)作业内容及要求1. 任务一:编写一个控制循环程序。

要求使用Python语言编写一个程序,实现一个简单的循环功能。

例如,每隔一秒输出一次“Hello, world!”。

在程序中需要使用到循环语句(如for或while),并且需要保证程序的正确性和稳定性。

提交时需要附带程序的注释和说明。

2. 任务二:编写一个条件判断程序。

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

/*这是清华大学《数据结构题集》实习题3中的一道题--做一个简单行编辑程序,也是我的实习作业。

现已经写出来,如大家有兴趣可以看一看。

本人编程水平不高,属于初学者,如有高手看到请不要见笑。

程序在VC++6.0中调试通过,题目的具体要求:打开一个文件 o<行号><文件名><回车>行插入格式: i<行号><回车><文本><回车>行删除格式: d<行号1>[<空格><行号2>]<回车>活区切换格式: n<回车>活区显示格式: p<回车>退出编辑模式: e<回车>其中执行打开文件命令后,需要输入要打开的文件名和要输出的文件名。

如果谁对编程,网络技术有兴趣,大家可以联系我做个朋友,一起研究学习。

联系方式:E-mail:blackcat242@QQ :21739034*/#define NULL 0#define OK 0#include <stdio.h>#include <stdlib.h>#include <string.h>#include <ctype.h>#include <conio.h>typedef struct text{char string[80];//存储每一行的元素struct text *next;//指向后一个节点的指针struct text *pre;//指向前一个节点的指针int num;//每一行元素的长度int flat;//确定此行是否被删除的标志}text;FILE *fp,*out;//fp是执行被打开的文件,out指向被写入的文件text *head;//链表的头指针int n=0,sum,delnum,xiugai=0,page=0;file://修改用来指示文件是否被修改过,如果修改过才回存盘。

page用来计算显示的file://页数.delnum用来存储被删除的字节数,sum存储一页的总字节数void byebye()//没有具体用处,只是写着玩的,在屏幕上显示一个bye{puts("\t\t\t******** * * ********");puts("\t\t\t* * * * * ");puts("\t\t\t* * * * * ");puts("\t\t\t* * * * * ");puts("\t\t\t******** * ********");puts("\t\t\t* * * * ");puts("\t\t\t* * * * ");puts("\t\t\t* * * * ");puts("\t\t\t******** * ********");}void HELP()//帮助函数,显示一些命令的格式{printf("\n\t**********************************************************\n"); printf("\t** 打开文件: o<行号><文件名><回车> **\n");printf("\t** 行插入格式: i<行号><回车><文本><回车> **\n");printf("\t** 行删除格式: d<行号1>[<空格><行号2>]<回车> **\n");printf("\t** 活区切换格式: n<回车> **\n");printf("\t** 活区显示格式: p<回车> **\n");printf("\t** 注意:在执行所有命令前必须先用o命令打开文件,并 **\n");printf("\t** 用p命令显示出来!!! **\n");printf("\t**********************************************************\n"); system("pause");printf("\n\n\n");}void ABOUT()//也是写着玩的{printf("\n\t\t*****************************************\n");printf("\t\t** 作者:BLACKCAT **\n");printf("\t\t** 单位:ZZU **\n");printf("\t\t** E-mail:blackcat242@ **\n");printf("\t\t*****************************************\n");system("pause");system("cls");printf("\n\n\n");}void Createlist()//建立一个十个节点的链表,是文本中的一页{text *p1,*p2;p1=p2=(text *)malloc(sizeof(text));head=NULL;while(n<10){n=n+1;if(n==1) head=p1;else{p2->next=p1;p1->pre=p2;p1->flat=0;}p2=p1;p1=(text *)malloc(sizeof(text));}p2->next=NULL;}void freemem()//释放链表所占的内存{text *p;for(p=head;head!=NULL;){head=p->next;free(p);p=head;}}int EDIT()//编辑函数,用来接受处理编辑命令{char cmd;do{cmd=getchar();printf("\n请输入命令(按E键退出):"); cmd=getchar();switch(cmd){case 'e':case 'E':if(xiugai==1)saveall();freemem();if(fp) fclose(fp);if(out) fclose(out);system("cls");return 0;case 'o':case 'O':Openfiles();break;case 'p':case 'P':Createlist();display();break;case 'n':case 'N':saveanddisplay(10);break;case 'd':case 'D':del();break;case 'i':case 'I':insert();break;default:printf("\n\n\n!!!输入错误!!!"); }}while(cmd!='e'&&cmd!='E');return 0;}int Openfiles()//打开文件的函数{char name[30],outname[30];puts("请输入要打开的文件名:");scanf("%s",name);if((fp=fopen(name,"r+"))==NULL){printf("打不开原文件! \n");exit(0);}puts("请输入要写入的文件名:");scanf("%s",outname);if((out=fopen(outname,"w+"))==NULL){printf("打不开目标文件!\n");exit(0);}return 0;}int display()//从文件中读入到链表中,并显示出来{int i;char conti='y';text *p;while((!feof(fp))&&(conti=='y'||conti=='Y')){page++;printf("\t\t第%d页\n",page);for(i=0,p=head,sum=0;(i<10)&&(!feof(fp));i++,p=p->next){fgets(p->string,sizeof(p->string),fp);puts(p->string);p->flat=1;p->num=strlen(p->string);sum=sum+p->num;}puts("Continue?(Y/N):");conti=getche();if(feof(fp)){puts("\n文件已经结束!");return 0;}}return 0;}int saveanddisplay(int hang)//命令n执行的函数,用来将活区的内容显示并读入下一页内容{int i,endflat=0;char conti='y';text *p=NULL;page++;for(i=0,p=head;i<hang;i++,p=p->next) file://将活区写入文件if(p->flat==1){fputs(p->string,out);p->flat=0;}if(!feof(fp))printf("\t\t第%d页\n",page);for(i=0,p=head,sum=0;(i<10)&&(!feof(fp));i++,p=p->next)//从文件读入活区if(fgets(p->string,sizeof(p->string),fp)){puts(p->string);p->flat=1;p->num=strlen(p->string);sum=sum+p->num;}if(feof(fp))printf("文件已经结束!");return 0;}int saveall()//退出编辑函数后执行的函数,将所有的内容存盘{int i,endflat=0;char conti='y';text *p;for(i=0,p=head;i<10;i++,p=p->next) file://将活区写入文件if(p->flat==1){fputs(p->string,out);p->flat=0;}while(!feof(fp))//将其余的内容写入文件fputc(fgetc(fp),out);return 0;}int del()//删除d命令对应的函数,用来删min-max中的行,用结构体中的flat表示是否被删除{text *p1,*p2,*p3;int min,max,i;xiugai=1;scanf("%d %d",&min,&max);if(head==NULL){printf("\nlist null!\n");return 0;}p1=p2=head;for(i=0;i<min-1;i++)/*找到要删除的第一行*/p1=p1->next;for(i=0;i<max;i++)/*找到要删除的最后一行*/p2=p2->next;for(delnum=0;p1!=p2;p1=p1->next)/*删除中间的节点,将flat赋值0*/ {p1->flat=0;delnum=delnum+p1->num;}for(i=0,p3=head;i<10;i++,p3=p3->next)//显示删除后的结果if(p3->flat==1)puts(p3->string);saveanddisplay(10);//将删除后的结果存盘并显示下一页内容(十行)xiugai=1;return 0;}int insert()//插入i命令对应的函数,在i行后插入文本{int hang,i,increhang=1,number=1;text *p,*p1,*p2;xiugai=1;scanf("%d",&hang);p=p1=NULL;for(i=0,p1=head;i<hang-1;i++,p1=p1->next);//找到要插入行的前一列 p=(text *)malloc(sizeof(text));//为插入行分配空间p->flat=1;p->next=p1->next;//从此行向下四行将插入行插入到链表中p->pre=p1;p1->next->pre=p;p1->next=p;p->string[0]=getchar();p->string[0]=getchar();for(i=1;(i<80)&&(p->string[i-1]!='^');i++){p->string[i]=getchar();if((i+1==80)&&(p->string[i]!='^'))//如果插入的内容超过一行{ file://的容量,则分配下一行空间p1=p; file://并将其连入链表p=(text *)malloc(sizeof(text));p->flat=1;p->next=p1->next;p->pre=p1;p1->next->pre=p;p1->next=p;i=0;increhang++;}p->num=i;}p->string[i-1]='\n';p->string[i]='\0';puts("修改后的链表:");for(p2=head;p2!=NULL;p2=p2->next)//显示出修改后的链表puts(p2->string);saveanddisplay(10+increhang);//将修改后的链表存盘并显示下一页内容 xiugai=1;return 0;}int main()//主函数,用来接受命令{char cmd;do{printf("\n\t\t****************************\n");printf("\t\t** 1 EDIT **\n");printf("\t\t** 2 HELP **\n");printf("\t\t** 3 ABOUT **\n");printf("\t\t** 4 EXIT **\n");printf("\t\t****************************\n");printf("\n\n请选择1,2,3,4:");cmd=getche();switch(cmd){case '4' : system("cls"); byebye(); break;case '2' : system("cls"); HELP(); cmd=0; break;case '3' : system("cls"); ABOUT(); cmd=0; break;case '1' : EDIT(); cmd=0; break;default : printf("\n\n\n!!!输入错误!!!\n");}}while(cmd!='4');return 0;}。

相关文档
最新文档