1、题目:根据血型遗传关系,编程实现:(1)输入父亲或母亲一个人的血型时,输出子女可能的血型;(2)输入子女的血型时,输出其父母可能的血型;(3)同时输入父亲和母亲的血型时,输出子女可能的血型;(4)同时输入父母和子女血型时能判断是否具有血型血缘关系。
2、设计要求:(1)程序运行时有友好的操作提示界面;(2)可进行多人次输入,将血型关系总表输入文件保持,在主菜单中能选择查看血型关系总表;(3)有输入错误检查,并限制出错次数,如:应输入字母时输入其它内容,能提示错误并要求重新输入;(4)程序中有详细的注释说明;
3、设计思路:本设计基于血型对照表,血型对照表如下图所示。血型有A、B、AB和O型血四种,四种血型两两组合共有十六种情况。根据血型组合表,可以将这十六中组合存储到一个数组table当中,然后根据需要来设计不同功能如何读取数组、读取哪一个单元。
4、流程图
5、完整源程序
#include<stdio.h>
//从键盘中接收用户的选择,若输入不和发给出提示,让用户重新输入。
int receive()
{
int in;
int count = 4;
while(count>0)
{
scanf("%d",&in);
if(in>0 && in<5) break; //合法输入,跳出循环
else //非法输入,提示用户重新输入,并且记录输入次数
{
count--;
printf("\t\t输入错误!!!您还有%d次输入机会!\n\t\t请输入1、2、3或4:",count);
}
}
return in;
}
//输入父亲或母亲一个人的血型时,输出子女可能的血型;
void func1(int bloodType[][6])
{
int in, i, j;
int subTable[4] = {0,0,0,0};
printf("\t\t++++++++++++++++++++++++++++++++++++++\n");
printf("\t\t+ 父亲或母亲血型如下:\n");
printf("\t\t+ 1、A型血\n");
printf("\t\t+ 2、B型血\n");
printf("\t\t+ 3、AB型血\n");
printf("\t\t+ 4、O型血\n")