1

我刚刚开始在模块上创建菜单功能,但遇到了致命错误,错误太多。我怀疑这可能是由于一个小错误而不是多个错误,因为到目前为止代码非常简单。

有人有什么想法吗?

以下是我到目前为止所拥有的。显然我才刚刚开始,但我已经很惊讶为什么会出现问题。非常感谢!

另外我对模块有点陌生,所以我很好奇你能告诉我这是如何编译它吗?g95 themenu.f95 -o ba ??

谢谢。

 MODULE themenu
    IMPLICIT NONE

    INTEGER:: choices, opt
    opt=choices()

     CONTAINS

    INTEGER FUNCTION choices ()
    INTEGER:: opt

    DO
        PRINT*, "1: Add an item manually"
        PRINT*, "2: Add item(s) from a file"
        PRINT*, "3: Add random item from list of top ten list"
        PRINT*, "4: Print list with totals"
        PRINT*, "5: Sort list alphabetically"
        PRINT*, "6: Sort list by price"
        PRINT*, "7: Write list to file"
        PRINT*, "8: EXIT"
        PRINT*, " "
        PRINT*, "Please make your selection (enter a number): "
        READ*, opt
        IF (opt>=1 .AND. opt<=8)EXIT
        PRINT*, "INVALID CHOICE. MUST BE A NUMBER 1-8. PLEASE TRY AGAIN!"
    END DO
    choices=opt
    END FUNCTION
    END MODULE

谢谢!到目前为止,使用此模块的程序看起来像这样:

PROGRAM listman
USE themenu
IMPLICIT NONE
END PROGRAM
4

1 回答 1

5

模块中不能有赋值语句,只有数据类型规范和CONTAINS带有过程的部分。

MODULE themenu
CONTAINS
    INTEGER FUNCTION choices ()
    IMPLICIT NONE
    INTEGER:: opt
    ....
    END FUNCTION
END MODULE

PROGRAM listman
USE themenu
IMPLICIT NONE
INTEGER :: opt
opt=choices()
END PROGRAM
于 2011-04-05T07:43:08.273 回答