【问题标题】:Is the following flowchart correct for the given code?以下流程图对于给定的代码是否正确?
【发布时间】:2016-01-16 16:49:26
【问题描述】:

我已经设计了一个基于此 Java 代码的流程图。

public static void main(String args[]) throws IOException {
    BufferedReader bw = new BufferedReader(new InputStreamReader(System.in));
    attendance_and_student_management object = new attendance_and_student_management();
    int flag = 1;
    do {
        {
            int var = object.menu();
            if (var == 1) {
                System.out.println("\f");
                object.add_student();
                System.out.println();
            } else if (var == 2) {
                System.out.println("\f");
                object.search_student();
                System.out.println();
            } else if (var == 3) {
                System.out.println("\f");
                object.change_student_information();
                System.out.println();
            } else if (var == 4) {
                System.out.println("\f");
                object.take_attendance();
                System.out.println();
            } else if (var == 5) {
                System.out.println("\f");
                object.attendance_summary();
                System.out.println();
            } else if (var == 6) {
                System.out.println("\f");
                object.monthly_defaulter_list();
                System.out.println();
            } else if (var == 7) {
                System.out.println("\f");
                System.out.println("THANK YOU FOR USING THE PROGRAM!!");
                System.exit(0);
            } else {
                System.out.println("\f");
                System.out.println();
                System.out.println("Invalid Input. Would you like to try again? Press 1 for Yes");
                int choice1 = Integer.parseInt(bw.readLine());
                if (choice1 == 1) {
                    continue;
                } else {
                    break;
                }
            }
            System.out.println("Would you like to return to the Main Menu to perform more tasks? Press 1 for Yes and 0 for No");
            flag = Integer.parseInt(bw.readLine());
            if (flag != 1) {
                System.out.println("Are you sure you want to exit? Press 1 for Yes");
                int flag2 = Integer.parseInt(bw.readLine());
                if (flag2 == 1)
                    flag = 0;
                else
                    flag = 1;
            }
        }
    }
    while (flag == 1);
}

流程图如下:

我还在学习如何构建流程图,因此我不确定这个图表是否正确。任何意见或建议将不胜感激。

PS:我试着让流程图简单一点,请告诉我这是否比上一个更合适......

【问题讨论】:

  • 我很惊讶你甚至尝试过。自 1979 年以来,我没有做过流程图。
  • 你的代码也不是很好。您当然应该在这里使用switch,而不是if-else 链。这意味着您应该调整代码以匹配您的流程图,而不是相反。

标签: java flowchart


【解决方案1】:

你在图表上的状况

var 等于 1,2,3,4,5,6 还是 7?

这不是 100% 正确的。

您的程序适用于ifelse if 条件,它们会检查每个条件序列。你先检查 1,然后检查 2,然后检查 3 等等……

您的图表将此条件显示为多合一条件,Java 中的意思是 switch)。

所以你的图表应该显示这些if 更像这样:

接下来,您不需要绘制图表框

执行方法

在您的代码中,您可以只为真正的 if 条件中的操作绘制一个框(如我添加的图像)。

最后,图表上应该只有一个“退出/结束”点。每个停止程序的流程都应该链接到这个端点。

【讨论】:

  • 感谢您的插图。我现在对制作流程图有了更好的想法。刚问了一个简单的问题。我的控制变量flag呢?我不应该将它包含在流程图中吗?像..是标志==1----如果是则继续。
  • 并非如此 - 流程图不应显示太多具体细节(通常在流程图中看不到变量名称)。您可以绘制动作“要求用户重复”或只是一个条件“用户想要重复?”。
猜你喜欢
  • 1970-01-01
  • 2020-03-03
  • 2012-10-14
  • 1970-01-01
  • 2017-01-02
  • 1970-01-01
  • 2014-04-01
  • 1970-01-01
  • 2012-01-23
相关资源
最近更新 更多