C语言 编写一个菜单函数(登录密码、水仙花数、闰年、素数)引发的思考
程序之美
今天闲逛之时,浏览到了一个题目:
C语言实现
一个简单的菜单函数,要求能密码登录,密码最多输入3次,菜单功能包含:水仙花数,判断闰年和判断素数, 其中三个菜单必须采用子函数完成。
自己做开发这么多年了,还没有用C语言编写过菜单,大部分都是借助于MFC或者QT,轻松搞定界面相关的程序,很少或者基本上没有用C语言去编写过相关的逻辑,虽然也有思路,也知道是怎么样去设计,怎么样去编写,但是没有真正的去动手实践过。
于是网上一顿搜索,看看有没有哪位前辈已经整理过相关的内容,可以学习借鉴下,但是结果往往是令人失望的,没有找到一个,于是心一狠,自己动手,丰衣足食,没有发现先驱,就自己做先驱;路上没炮灰就自己当炮灰。
话不多说,说动手就动手,大概花了一个多小时,算是有个雏形,上传上来与大家分享,希望朋友们多多交流,多提意见。程序是基于linux系统编写的,改成Window系统并不复杂,后续我会共享出基于windows的同版本的程序,也希望有兴趣的小伙伴可以自己改写下。
先看下效果图:
输入密码三次错误,程序就会退出,若输入密码正确,则执行跳转,跳转到如下页面:
输入1,敲击回车键。如下:
进入水仙花数判断页面:
输入相应的水仙花数,就会进行判断,判断是否是水仙花数。然后敲击回车键,程序会继续回到主菜单。如下:
输入2,回车,就会进入闰年判断页面,如下:
输入相应的年份,就会进行相应的闰年判断,然后敲击回车键,就会同样回到主菜单。如下:
同样输入3,就会跳转到素数判断页面,如下:
输入一个数,就会进行判断,判断是否是素数。此时再次敲击回车键,就会回到主菜单。如下:
此时输入4,程序就会退出。
核心代码:
void ProcessLoop(void)
{
int i = 0;
BOOL bSuccess = FALSE;
while( i < 3){
bSuccess = login();
if(bSuccess){
putchar('\a');
sleep(1);
break;
}
i ++;
}
if(bSuccess){
int iChoice;
iChoice = PrnMainMenu();
while (iChoice != 4)
{
switch(iChoice)
{
case 1:
NarcissisticNumber();
getch();
break;
case 2:
isLeapYear();
getch();
break;
case 3:
isPrimeNum();
getch();
break;
default:
break;
}
iChoice = PrnMainMenu();
}
}
else{
printf("密码输入已达到最大次数,程序退出.\n");
}
return;
}
好了,先说到这里吧,感兴趣的小伙伴可以把代码下载下来学习下,也欢迎小伙伴们多提宝贵意见,我们共同进步,你们的成功是我最大的幸福。很感谢您能在百忙之中浏览我的文章。
源码地址:https://download.csdn.net/download/hnjzfwy/52884487