1. C/C++ 中子程序(子函数)能不能相互调用
#include <iostream>
void A()
{}
void a()
{}
void b()
{
a();//这是可以的,但是这个a函数一定要先于b函数声明。
}
void main()
{
}
如果不明白加我网络HI
2. 用c语言制作一个简单的菜单程序,一个主函数四个子函数
给你一个简单的菜单程序吧。其中的子函数,填充成楼主所需即可。
#include<stdio.h>
/*子函数1*/
fun1(){
printf("子槐桥函数1 ");
}
/*子函数2*/
fun2(){
printf("子函数2 ");
}
/*子函数3*/
fun3(){
printf("子函数3 ");
}
/*子函数4*/
fun4(){
printf("子函数4 ");
}
intmain(void){
intkey;/*命令编号*/
do{
system("cls");/*清屏*/
/*打印菜单*/
printf("====================================================== ");
printf("# 功能详情 ");
printf("------------------------------------------------------ ");
printf("1 功能1 ");
printf("2 功能2 ");
printf("3 功能3 ");
printf("4 功能4 ");
printf("5 退出 ");
printf("====================================================== ");
printf(" ");
printf("请输入纳仿命令编号以开启操作:");
/*输入命令编号*/
scanf("%d",&key);
printf(" ");
/*switch函数实现输入功能序号执行相应函数*/
switch(key){
case1:fun1();break;/*子函数1*/
case2:fun2();break;/*子函数2*/
case3:fun3();break;/*子函数3*/
case4:fun4();break;/*子函数4*/
case5:printf("程序结束!按任意键退出... ");break;
default:printf("输入错误,请重新输入! ");break;
}
/*屏幕洞明纤暂留*/
if(key!=5){
printf(" ");
printf("按Enter键继续... ");
printf(" ");
fflush(stdin);
getch();
}
}while(key!=5);
/*屏幕暂留*/
fflush(stdin);
getch();
return0;
}
运行结果
3. 用c语言写一个简单的菜单程序,一个主函数至少四个子函数急求!!就像这样的。
分析:问题库(QAS)用外部的配置文件保存,每次运行前先载入库中已经建立的问题伍禅岁。然后再进入操作选择。完整代码如下:/*1.暂时不考虑汉字;2.可以用链表优化;3.将每一种操作封装成一个函数;*/#include#include#include#include///////////////////////腔睁/////////////////////////////////////////////////////字符串最大长度#defineMAX_STR_LEN2048//题库上限#defineMAX_QAS_LEN1024//配置文件路径#defineQAS_FILE_PATH"d:\\qasconfig.txt"////////////////////////////////////////////////////////////////////////////问题结点typedefstructtagQASNode{charQuestion[MAX_STR_LEN];charAnswer[MAX_STR_LEN];doubleScore;boolIsAnswered;}QASNode;//问题库QASNode*g_QASLib[MAX_QAS_LEN];intg_QASIndex=0;////////////////////////////////////////////////////////////////////////////添加boolInsertToLib(char*pQuestion,char*pAnswer,doublescore){if(pQuestion==NULL||strcmp(pQuestion,"")==0||pAnswer==NULL)returnfalse;QASNode*pNewNode=(QASNode*)malloc(sizeof(QASNode));memset(pNewNode,0L,sizeof(QASNode));strcpy_s(pNewNode->Question,pQuestion);strcpy_s(pNewNode->Answer,pAnswer);pNewNode->Score=score;g_QASLib[g_QASIndex++]=pNewNode;returntrue;}//随机一个不重复的序号intGetQuestionIndex(){intretVal=-1;inttryCnt=0;while(tryCnt++IsAnswered){retVal=randVal;break;}}returnretVal;}//////////////////////////////////袭唯////////////////////////////////////////intmain(){//打开配置文件FILE*pStream=NULL;if(fopen_s(&pStream,QAS_FILE_PATH,"a+")!=0){printf_s("Opentheconfigfilefailed.\n");return-1;}//加载已有的QASfseek(pStream,0L,SEEK_END);intfileSize=ftell(pStream);fseek(pStream,0L,SEEK_SET);while(!feof(pStream)&&fileSize){if(g_QASIndexQuestion);printf_s("Inputanswer:");chartempA[MAX_STR_LEN]={0};fflush(stdin);gets_s(tempA,MAX_STR_LEN);if(strcmp(tempA,g_QASLib[currentIndex]->Answer)==0){printf("Right!\n");totalSocore+=g_QASLib[currentIndex]->Score;g_QASLib[currentIndex]->IsAnswered=true;}else{printf("Wrong!\n");}}else{printf("你已经答对了所有的问题!\n");}}break;case2:{if(currentIndex!=-1){printf("Quest:%s\nScore=%.2f\n",g_QASLib[currentIndex]->Question,g_QASLib[currentIndex]->Score);}else{printf("请先选择\"回答问题\"!\n");}}break;case3:{//一次只添加一个问题if(g_QASIndexQuestion,g_QASLib[i]->Answer,g_QASLib[i]->Score);}}break;default:break;}}printf("\n");return0;}运行起来后先建立问题库!