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;}運行起來後先建立問題庫!