回 帖 发 新 帖 刷新版面

主题:帮帮忙!有谁会PASCAL语言?

使用菜单选择趣味程序
一、设计要求
1、菜单内容:
程序运行后,给出6个菜单项的内容和输入提示
FindNum
FindRoot
Detective
Bear
Diamond
Goodbye!
Input 1-6:
2、设计要求
使用数字1-6来选择菜单项,其它输入不起作用。下面是测试运行的例子:
FindNum
FindRoot
Detective
Bear
Diamond
Goodbye!
Input 1-6:1
FindNum
FindNum
FindRoot
Detective
Bear
Diamond
Goodbye!
Input 1-6:8
2
FindRoot
FindNum
FindRoot
Detective
Bear
Diamond
Goodbye!
Input 1-6:a
4
Bear
FindNum
FindRoot
Detective
Bear
Diamond
Goodbye!
Input 1-6:7
6
Goodbye!
二、设计实例
首先编写一个菜单,输入1-6以进入相应选择项。从程序测试结果可知,当选择相应选择项时,其输出信息分别为:FindNum、FindRoot、Detective、Bear、Diamond和Goodbye!
使用CASE语句实现功能选择
假设输入选择变量用cn存储,则可以使用如下结构实现
CASE  cn   OF
       1:输出FindNum
       2:输出FindRoot
       3:输出Detective
       4:输出Bear
       5:输出Diamond
       6:输出Goodbye!
END;{CASE}
2、得到cn的合理值
应该设计一个函数用来输出提示信息和处理输入,整个函数应该返回一个数值cn,以便提供给CASE语句使用。
3、实现循环选择
实际使用时,只有选择6,程序才能结束运行,这就要使用循环控制。
三、C语言实现的程序清单
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
int menu_select();
void main()

  for( ; ; ) {
  switch(menu_select()) {
        case 1: printf(“FindNum\n”); break;
        case 2: printf(“FindRoot\n”); break;
        case 3: printf(“Detective\n”); break;
        case 4: printf(“Bear\n”); break;
        case 5: printf(“Diamond\n”); break;
        case 6: printf(“Goodbye!\n”);exit(0);
}
      }
}
//菜单选择操作
int menu_select()
{  char s;
   int  cn;
   printf(“1.FindNum\n”);
   printf(“2.FindRoot\n”); 
   printf(“3.Detective\n”);
   printf(“4.Bear\n”); 
   printf(“5.Diamond\n”);
   printf(“6.Goodbye!\n”);
   do{  s=getchar();
        cn=(int)s-48;
      }while(cn<0||cn>6);
  return cn;
}
四、增加菜单项的处理功能
1.为各个菜单项编制相应的编程题,锻炼使用控制语句的能力。
FindNum
一只老鼠咬坏了账本,公式中符号□代表是被老鼠咬掉的地方。要想恢复下面的等式,应在□中填上哪个相同的数字?
3□×6237=□3×3546
2.利用穷举法计算。(30+i)×6237=(10×i+3)×3546
FindRoot
编制一个求方程ax&shy;2+bx+c=0的根的程序。一般将系数设计成实型,可以把变量设也为实型。
[em2]如果会的话请把程序发到我的邮箱wlhdd@hotmail.com,感激不禁

回复列表 (共5个回复)

沙发

能不能说的清楚一点啊,不大看的明白阿,要控制台的程序吗

板凳


什么是控制台的程序?

3 楼


好晕啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!![em18]

4 楼

控制台的程序?说清楚一点.

5 楼


for i:=1 to 9 do
   if (30+i)*6237=(10*i+3)*3546 then write(i);
穷举求那个老鼠问题的
前面的那个菜单问题,你应该写得更明白点,都看得有点头大。

我来回复

您尚未登录,请登录后再回复。点此登录或注册