> 文章列表 > 离散数学编程作业--打印输出逻辑运算表

离散数学编程作业--打印输出逻辑运算表

离散数学编程作业--打印输出逻辑运算表

编程内容及要求:

编写程序,打印输出9种基本逻辑运算符(与、或、非、条件、双条件、异或、与非、或非、条件否定)的运算表到字符文件logic.txt中。

编程语言可选择C、C++、Java或Python。

逻辑运算表输出格式示例:

------------------

 P   Q    条件否定

------------------

 T   T    F

 T   F    T

 F   T    F

 F   F    F

------------------

输出的字符文件logic.txt内容(粘贴):

------------------

 P   Q    与运算

------------------

 F   F       F

 F   T       F

 T   F       F

 T   T       T

------------------

------------------

 P   Q    或运算

------------------

 F   F       F

 F   T       T

 T   F       T

 T   T       T

------------------

------------------

 P    非运算

------------------

 F       T

 T       F

------------------

------------------

 P   Q    条件运算

------------------

 F   F       T

 F   T       T

 T   F       F

 T   T       T

------------------

------------------

 P   Q    双条件运算

------------------

 F   F       T

 F   T       F

 T   F       F

 T   T       T

------------------

------------------

 P   Q    异或运算

------------------

 F   F       F

 F   T       T

 T   F       T

 T   T       F

------------------

------------------

 P   Q    与非运算

------------------

 F   F       T

 F   T       T

 T   F       T

 T   T       F

------------------

------------------

 P   Q    或非运算

------------------

 F   F       T

 F   T       F

 T   F       F

 T   T       F

------------------

------------------

 P   Q    条件否定运算

------------------

 F   F       F

 F   T       F

 T   F       T

 T   T       F

------------------

源程序代码:

#include <stdio.h>
int main() 
{FILE *fp;fp = fopen("logic.txt", "w"); // 打开文件if (fp == NULL) { // 文件打开失败printf("文件打开失败!\\n");return 1;}// 输出与运算表fprintf(fp, "------------------\\n");fprintf(fp, " P   Q    与运算\\n");fprintf(fp, "------------------\\n");for (int p = 0; p <= 1; p++) {for (int q = 0; q <= 1; q++) {int result = p && q;char ch_1=p ?'T':'F';char ch_2=q ?'T':'F';char ch_3=result ?'T':'F';fprintf(fp, " %c   %c       %c\\n", ch_1, ch_2, ch_3);}}fprintf(fp, "------------------\\n\\n");// 输出或运算表fprintf(fp, "------------------\\n");fprintf(fp, " P   Q    或运算\\n");fprintf(fp, "------------------\\n");for (int p = 0; p <= 1; p++) {for (int q = 0; q <= 1; q++) {int result = p || q;char ch_1=p ?'T':'F';char ch_2=q ?'T':'F';char ch_3=result ?'T':'F';fprintf(fp, " %c   %c       %c\\n", ch_1, ch_2, ch_3);}}fprintf(fp, "------------------\\n\\n");// 输出非运算表fprintf(fp, "------------------\\n");fprintf(fp, " P    非运算\\n");fprintf(fp, "------------------\\n");for (int p = 0; p <= 1; p++) {int result = !p;char ch_1=p ?'T':'F';char ch_3=result ?'T':'F';fprintf(fp, " %c       %c\\n", ch_1, ch_3);}fprintf(fp, "------------------\\n\\n");// 输出条件运算表fprintf(fp, "------------------\\n");fprintf(fp, " P   Q    条件运算\\n");fprintf(fp, "------------------\\n");for (int p = 0; p <= 1; p++) {for (int q = 0; q <= 1; q++) {int result = p ? q : 1;char ch_1=p ?'T':'F';char ch_2=q ?'T':'F';char ch_3=result ?'T':'F';fprintf(fp, " %c   %c       %c\\n", ch_1, ch_2, ch_3);}}fprintf(fp, "------------------\\n\\n");// 输出双条件运算表fprintf(fp, "------------------\\n");fprintf(fp, " P   Q    双条件运算\\n");fprintf(fp, "------------------\\n");for (int p = 0; p <= 1; p++) {for (int q = 0; q <= 1; q++) {int result = (p && q) || (!p && !q);char ch_1=p ?'T':'F';char ch_2=q ?'T':'F';char ch_3=result ?'T':'F';fprintf(fp, " %c   %c       %c\\n", ch_1, ch_2, ch_3);}}fprintf(fp, "------------------\\n\\n");// 输出异或运算表fprintf(fp, "------------------\\n");fprintf(fp, " P   Q    异或运算\\n");fprintf(fp, "------------------\\n");for (int p = 0; p <= 1; p++) {for (int q = 0; q <= 1; q++) {int result = p ^ q;char ch_1=p ?'T':'F';char ch_2=q ?'T':'F';char ch_3=result ?'T':'F';fprintf(fp, " %c   %c       %c\\n", ch_1, ch_2, ch_3);}}fprintf(fp, "------------------\\n\\n");// 输出与非运算表fprintf(fp, "------------------\\n");fprintf(fp, " P   Q    与非运算\\n");fprintf(fp, "------------------\\n");for (int p = 0; p <= 1; p++) {for (int q = 0; q <= 1; q++) {int result = !(p && q);char ch_1=p ?'T':'F';char ch_2=q ?'T':'F';char ch_3=result ?'T':'F';fprintf(fp, " %c   %c       %c\\n", ch_1, ch_2, ch_3);}}fprintf(fp, "------------------\\n\\n");// 输出或非运算表fprintf(fp, "------------------\\n");fprintf(fp, " P   Q    或非运算\\n");fprintf(fp, "------------------\\n");for (int p = 0; p <= 1; p++) {for (int q = 0; q <= 1; q++) {int result = !(p || q);char ch_1=p ?'T':'F';char ch_2=q ?'T':'F';char ch_3=result ?'T':'F';fprintf(fp, " %c   %c       %c\\n", ch_1, ch_2, ch_3);}}fprintf(fp, "------------------\\n\\n");// 输出条件否定运算表fprintf(fp, "------------------\\n");fprintf(fp, " P   Q    条件否定运算\\n");fprintf(fp, "------------------\\n");for (int p = 0; p <= 1; p++) {for (int q = 0; q <= 1; q++) {int result = !(p ? q : 1);char ch_1=p ?'T':'F';char ch_2=q ?'T':'F';char ch_3=result ?'T':'F';fprintf(fp, " %c   %c       %c\\n", ch_1, ch_2, ch_3);}}fprintf(fp, "------------------\\n\\n");fclose(fp); // 关闭文件printf("逻辑运算表已输出到文件 logic.txt 中!\\n");return 0;
}