當前位置:首頁 » 編程語言 » 搭c語言配自己的主界面有四個選項
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

搭c語言配自己的主界面有四個選項

發布時間: 2023-01-20 16:28:41

『壹』 c語言,編寫一個菜單選項0-5,菜單1-5已經寫好,分別命名為X1、X2、X3、X4、X5,求大神解答:

int main()
{ int loop=1;
char ss;
while ( loop )
{ ShowMenu(); //函數顯示菜單本身
//如:printf("請輸入你的選擇:\n"); printf(" 0:退出\n 1:計算\n 2:.....\n");
printf("\n請選擇:「); ss=getch();
switch ( ss )
{ case '0': printf("\n確定退出嗎?(y\n)"); ss=getch(); if ( ss=='y' ) loop=0; break;
case '1': FuncMenu1(); break;
case '2': FuncMenu2(); break;
case '3': FuncMenu3(); break;
case '4': FuncMenu4(); break;
case '5': FuncMenu5(); break;
default: break;
}
}
printf("再見!\n"); return 0;
}

『貳』 用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;
}

運行結果

『叄』 高分求作一個c語言編程的操作界面

C語言課程設計報告—班級成績管理系統
需要分析:
學生成績管理系統有13種功能。把這13個功能做成13個子函數。在主函當數中設計一個菜單對這13個子數進行管理。來實現對整個系統的操作。
根據課題的要求。每一個學生的包括姓名(char)、學號(char)、M門課程的成績(float).再加上系統功能上的要求每一學生的信息還要總分和名次等。所以自然的想到要用結構體來定義每一個學生的信息結構。然後用鏈表把它們組成一個有序的整體。用對鏈表的操作來實現對所有學生信息的統一管理(成績顯示、成績排序、成績修改等)。最後為了以後按照處理後的順序保存到文件中。
. 各函數的功能:
概要設計:
程序的模塊組成:
主 函 數: int main()
新建函數:STUDENT *init()
輸入函數 :STUDENT *create()
顯示函數: void print(STUDENT *head)
刪除函數: STUDENT *delete(STUDENT *head)
按名字尋找函數: void lookup(STUDENT *head)
保存函數: void save(STUDENT *head)
按總分排序函數: STUDENT *sort(STUDENT *head)
計算總分和均分函數: void computer(STUDENT *h)
修改函數: STUDENT *Modify(STUDENT *head,STUDENT *new)
按學號排序函數: STUDENT *index(STUDENT *h)
菜單函數:int menu_select()
各個函數的主要功能:
輸入函數: 隨時輸入數據。
菜單函數:顯示系統主菜單。
顯示函數: 顯示所有學生的信息。
尋找函數: 方便學生查找自己的成績。
刪除函數: 刪除某學生的信息。
排序函數: 按總成績排序。
按學號排序函數: 按學號排序。
插入函數: 可以插入新的信息。
保存函數: 保存好學生成績,以免丟失。
統計函數:
l 顯示每門課程成績最高的學生的基本信息。
l 顯示每門課程的平均成績。
l 顯示超過某門課程平均成績的學生人數。
課題的功能模塊的劃分:
開始
菜單界面
功能選擇
初始化函數
輸入學生信息
刪除學生信息
顯示學生信息
查找學生信息
按成績排序
保存到文件
從文件讀數據
插入學生成績
分類合計
退出系統
結束
詳細設計: 整個系統除了主函數外,另外還有14個函數,實現八大功能:輸入功能、顯示功能、查找功能、排序功能、插入功能、保存功能、讀取功能。各個函數的詳細設計說明分別如下:
主函數 main()
利用無限次循環for(;;)和swithch()實現各函數的調用,系統根據輸入的數字選項來調用相應的函數。
菜單選擇函數 int menu_select()
這是一個無參函數,主要實現「功能選擇」的界面,在這個界面里有顯示系統的九大功能,根據每個功能前面的序號進行選擇。等執行完每一個函數功能後,返回菜單。
代碼設計: 初始化函數 STUDENT *init()
這是一個無參函數,裡面只有兩個語句,它的作用是使鏈表初始化,使head的值為NULL和一個清屏語句。比如:沒有這個函數的話,在你沒有輸入任何數據的情況下,去執行顯示功能的時候會顯示一些亂碼!
輸入記錄函數 STUDENT *create() 這是一個無參函數,用來執行學生成績記錄的輸入,當學生為@時停止輸入,函數結束後,帶回一個鏈表頭的指針指向一下個學生的信息插在表頭。
N-S流程圖如下:
head=NULL無條件循環
指針p指向新開辟的單元
指針p是否為空
是 否
輸入學號p->num
輸出 p->num是否為@
內存 是 否
溢出 輸入姓名p->name
停止 for(i=0;i<3;i++)
輸入 輸入成績
返回 p->sum=s;
菜單 p->average=(float)s/3;

顯示記錄函數 void print(STUDENT *head)

這是一個不返回值的有參函數,形參為「鏈表頭的指針」,負責對全部學生成績記錄的輸出,不足之處就是不能對學生成績進行分頁顯示。

演算法:先將p結點的指針指向第一個結點,將p結點(即第一個結點)的數據輸出。然後再將p結點的指針指向p指針的的指針(即下一結點),將p結點(即第一結點)的數據輸出。重復執行此步聚直到p指針指向NULL為止。

N-S流程圖如下:

p=head,使指向第一個結點

輸出p所指向的結點

p指向一下個結點

當p指的不是表尾

程序調試:

由於本課題中的許多知識點都沒有學過都要靠自己到課外的資料中去查找。在用的時候難免出現這樣那樣的錯誤。如開始設計出來的菜單不是預想的那樣,而是總個窗中出現混亂。解決的這個問題的辦法是調整。最後還是老師幫我幫我們找到了問題的所在——for 循環的次超過了鏈表中結點的數量。再就是自定義函數時由於課本的概念不清楚,多寫了空格鍵,以至函數調用不出來。又如:在設計修改學生信息時的密密碼時。當用戶發現輸入密碼錯誤按了退格鍵後,因為「*」並沒有消去。導致用戶再次按退格鍵,又出現前面的情況。最終導致輸入密碼錯誤。所以用了兩次退格鍵:

在對鏈表操作時,要特別鏈表指針的移動(p=p->next)和鏈表尾的判斷 (p= =NULL)。沒有指針的移動,就很容易出現死循環。而在運行過程中不能控制。所以你就會認為是死機。如果沒有鏈表尾的判斷。就會在運行過程出現想不到的錯誤。如:在顯示鏈表信息時,後面就會出現亂碼。

一個系統的菜單和提示信息非常重要。如果沒有這些用戶根本不知道怎麼用你設計的這個系統。在設計的調試過程中也無法順利的完成調試工作。有了一個清晰簡單的菜單和一些提示信息這後,調試過程完成的非常順利。

予我耐心解答的老師和同學,是他們為我小程序的成功起到了關鍵性的作用,那麼多個日夜,如此多的困難,同學們勤懇塌實,從開始到結束,沒有顯出一點倦意,始終熱情高漲,我感謝這種氛圍,感謝學校提供的良好條件。

回顧起此次課程設計,至今我仍感慨頗多,的確,從拿到題目到完成整個編程,從理論到實踐,在整整半個學期的日子裡,可以學到很多很多的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設計的過程中發現了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固,比如說結構體……通過這次課程設計之後,一定把以前所學過的知識重新溫故。

本次課程設計結束了,對於我的影響很大。我通過這次實踐學到了許多知識。學到了設計一個簡單的系統。要注意哪些方面。也使我知道自己哪些方面做得還不夠。

但我出總結出了一點點的經驗如下:

1、要對系統的功能和要求做出詳細的分析,並合理分解任務。

2、把分解出來的子任務,做給一個相對獨立的模塊。

3、在設計一個模塊之前,要簡單構想一下總界面的顯視情況。

4、針對構想出來的界面進行程序的編寫。

最後,感謝老師您對我的指導和從百忙中抽空看我的設計,謝謝!

附件:

源程序:

#include "stdio.h" /*I/O函數*/

#include "stdlib.h" /*其它說明*/

#include "string.h" /*字元串函數*/

#include "conio.h" /*屏幕操作函數*/

#include "mem.h" /*內存操作函數*/

#include "ctype.h" /*字元操作函數*/

#include "alloc.h" /*動態地址分配函數*/

#include "dos.h"

#define N 4 /*定義常數*/

typedef struct z1 /*定義數據結構*/

{

char no[12];

char name[20];

int score[N];

float sum;

float average;

int order;

struct z1 *next;

}STUDENT;

/*以下是函數原型*/

STUDENT *init(); /*初始化函數*/

STUDENT *create(); /*創建鏈表*/

STUDENT *delete(STUDENT *h); /*刪除記錄*/

void print(STUDENT *h); /* 顯示所有記錄*/

void lookup(STUDENT *h); /*查找*/

void save(STUDENT *h); /*保存*/

STUDENT *load(); /*讀入記錄*/

void computer(STUDENT *h); /*計算總分和均分*/

STUDENT *Modify(STUDENT *h); /*修改記錄*/

void append(); /*追加記錄*/

STUDENT *sort(STUDENT *h); /*按總分排序*/

STUDENT *index(STUDENT *h); /*按學號排序*/

int menu_select(); /*菜單函數*/

/******主函數開始*******/

main()

{

int i;

STUDENT *head; /*鏈表定義頭指針*/

printf("\n\n\n\n\n\n\n\n\n");

printf(" * * ******* * ***** ***** * * ******* \n");

printf(" * * * * * * * ** * * * \n");

printf(" * * * * ******* * * * * * *** * ******* \n" );

printf(" * * * * * * * * * * * * * \n");

printf(" * * ******* ******* ***** * *** * * * ******* \n");

printf("\n");

printf("\n");

printf("\n");

sleep(2);

head=init(); /*初始化鏈表*/

clrscr(); /*清屏*/

for(;;) /*無限循環*/

{

switch(menu_select()) /*調用主菜單函數,返回值整數作開關語句的條件*/

{ /*值不同,執行的函數不同,break 不能省略*/

case 0:head=init();break; /*執行初始化*/

case 1:head=create();break; /*創建鏈表*/

case 2:print(head);break; /*顯示全部記錄*/

case 3:head=delete(head);break; /*刪除記錄*/

case 4:lookup(head);break; /*按名字查找記錄*/

case 5:save(head);break; /*保存文件*/

case 6:head=load(); break; /*讀文件*/

case 7:computer(head);break; /*計算總分和均分*/

case 8:head=Modify(head); break; /*修改記錄,一般會插在表尾*/

case 9:head=sort(head);break; /*按部分排序*/

case 10:append();break; /*追加記錄*/

case 11:head=index(head);break; /*按學號排序*/

case 12: exit(0); /*如菜單返回值為14程序結束*/

}

}

}

/*菜單函數,返回值為整數*/

menu_select()

{

char *menu[]={"***************MENU***************", /*定義菜單字元串數組*/

" 00. init list", /*初始化*/

" 01. Enter list", /*輸入記錄*/

" 02. print list ", /*顯示單鏈表中所有記錄*/

" 03. Delete a record from list", /*從表中刪除記錄*/

" 04. Search record on name", /*按照姓名查找記錄*/

" 05. Save the file", /*將單鏈表中記錄保存到文件中*/

" 06. Load the file", /*從文件中讀入記錄*/

" 07. compute the score", /*計算所有學生的總分和均分*/

" 08. Modify an information ", /*修改某學號的信息*/

" 09. sort to make new file", /*排序*/

" 10. append record to file", /*追加記錄到文件中*/

" 11. index on nomber", /*按學號排序*/

" 12. Quit"}; /*退出*/

char s[3]; /*以字元形式保存選擇號*/

int c,i; /*定義整形變數*/

gotoxy(1,1); /*移動游標*/

textcolor(YELLOW); /*設置文本顯示顏色為黃色*/

textbackground(BLUE); /*設置背景顏色為藍色*/

gotoxy(10,2); /*移動游標*/

putch(0xc9); /*輸出左上角邊框┏*/

for(i=1;i<44;i++)

putch(0xcd); /*輸出上邊框水平線*/

putch(0xbb); /*輸出右上角邊框 ┓*/

for(i=3;i<20;i++)

{

gotoxy(10,i);putch(0xba); /*輸出左垂直線*/

gotoxy(54,i);putch(0xba);

} /*輸出右垂直線*/

gotoxy(10,20);putch(0xc8); /*輸出左上角邊框┗*/

for(i=1;i<44;i++)

putch(0xcd); /*輸出下邊框水平線*/

putch(0xbc); /*輸出右下角邊框┛*/

window(11,3,53,19); /* 製作顯示菜單的窗口,大小根據菜單條數設計*/

clrscr(); /*清屏*/

for(i=0;i<16;i++) /*輸出主菜單數組*/

{

gotoxy(10,i+1);

cprintf("%s",menu[i]);

}

textbackground(BLACK); /*設置背景顏色為黑色*/

window(1,1,80,25); /*恢復原窗口大小*/

gotoxy(10,21); /*移動游標*/

do{printf("\n make by wenwei");

printf("\n Enter you choice(0~13):"); /*在菜單窗口外顯示提示信息*/

scanf("%s",s); /*輸入選擇項*/

c=atoi(s); /*將輸入的字元串轉化為整形數*/

}while(c<0||c>14); /*選擇項不在0~14之間重輸*/

return c; /*返回選擇項,主程序根據該數調用相應的函數*/

}

STUDENT *init()

{ clrscr();

return NULL;

}

/*創建鏈表*/

STUDENT *create()

{

int i; int s;

STUDENT *h=NULL,*info; /* STUDENT指向結構體的指針*/

clrscr();

for(;;)

{

info=(STUDENT *)malloc(sizeof(STUDENT)); /*申請空間*/

if(!info) /*如果指針info為空*/

{

printf("\nout of memory"); /*輸出內存溢出*/

return NULL; /*返回空指針*/

}

inputs("enter no:",info->no,11); /*輸入學號並校驗*/

if(info->no[0]=='@') { clrscr();break; } /*如果學號首字元為@則結束輸入,清屏後返回*/

inputs("enter name:",info->name,15); /*輸入姓名,並進行校驗*/

printf("please input %d score \n",N); /*提示開始輸入成績*/

s=0; /*計算每個學生的總分,初值為0*/

for(i=0;i<N;i++) /*N門課程循環N次*/

{

do{

printf("score%d:",i+1); /*提示輸入第幾門課程*/

scanf("%d",&info->score[i]); /*輸入成績*/

if(info->score[i]>100||info->score[i]<0) /*確保成績在0~100之間*/

printf("bad data,repeat input\n"); /*出錯提示信息*/

}while(info->score[i]>100||info->score[i]<0);

s=s+info->score[i]; /*累加各門課程成績*/

}

info->sum=s; /*將總分保存*/

info->average=(float)s/N; /*求出平均值*/

info->order=0; /*未排序前此值為0*/

info->next=h; /*將頭結點做為新輸入結點的後繼結點*/

h=info; /*新輸入結點為新的頭結點*/

clrscr();

}

return(h); /*返回頭指針*/

}

/*輸入字元串,並進行長度驗證*/

inputs(char *prompt, char *s, int count)

{

char p[255];

do{

printf(prompt); /*顯示提示信息*/

scanf("%s",p); /*輸入字元串*/

if(strlen(p)>count)printf("\n too long! \n"); /*進行長度校驗,超過count值重輸入*/

}while(strlen(p)>count);

strcpy(s,p); /*將輸入的字元串拷貝到字元串s中*/

}

/*輸出鏈表中結點信息*/

void print(STUDENT *h)

{

int i=0; /* 統計記錄條數*/

STUDENT *p; /*移動指針*/

clrscr(); /*清屏*/

p=h; /*初值為頭指針*/

printf("\n\n\n*********************************STUDENT************************************\n");

printf("|rec|nO | name | sc1| sc2| sc3| sc4| sum | ave |order|\n");

printf("|---|----------|---------------|----|----|----|----|--------|--------|-----|\n");

while(p!=NULL) /*只要p不是尾結點,就輸出記錄*/

{

i++;

printf("|%3d|%-10s|%-15s|%4d|%4d|%4d|%4d| %6.2f | %6.2f | %3d |\n", i, p->no,p->name,p->score[0],p->score[1],p->score[2],p->score[3],p->sum,p->average,p->order);

p=p->next;

}

printf("***********************************end**************************************\n");

getch(); /*輸入任一鍵返回主菜單*/

clrscr(); /*清屏*/

}

/*刪除記錄*/

STUDENT *delete(STUDENT *h)

{

STUDENT *p,*q; /*p為查找到要刪除的結點指針,q為其前驅指針*/

char s[12]; /*存放學號*/

char *pass="wenwei28";

char a[20],b=NULL;

int i=0;

clrscr();

printf("Input your password:");

while((i<20)&&(b!='\r'))

{ b=getch(); /*無回顯輸入*/

if(b==8)

{ if(i>0)

{a[--i]=NULL;

putchar(8); /*退格鍵*/

putchar(' '); /*以空格代替*/

putchar(8);

}

else putchar(7); /*沒有任何字元的退格,響鈴警告*/

}

else if(b!='\r')

{ a[i++]=b; /*只要不是退格和回車就接受*/

putchar('*');

}

else

{a[i]=NULL; break; /*密碼輸入完了,記得加個NULL到後面*/

}

}

if(strcmp(a,pass)!=0)

{clrscr();

printf("Password is mistake Tow seconds to return!");

sleep(2);clrscr();return h;

}

else {printf("Password is OK! Welcome to come!"); sleep(3);

}

clrscr(); /*清屏*/

printf("please deleted no\n"); /*顯示提示信息*/

scanf("%s",s); /*輸入要刪除記錄的學號*/

q=p=h; /*給q和p賦初值頭指針*/

while(strcmp(p->no,s)&&p!=NULL) /*當記錄的學號不是要找的,或指針不為空時*/

{

q=p; /*將p指針值賦給q作為p的前驅指針*/

p=p->next; /*將p指針指向下一條記錄*/

}

if(p==NULL) /*如果p為空,說明鏈表中沒有該結點*/

{ printf("\nlist no %s student\n",s);sleep(2);clrscr();return h;}

else /*p不為空,顯示找到的記錄信息*/

{

printf("*********************************have found********************************\n");

printf("|no | name | sc1| sc2| sc3| sc4| sum | ave |order|\n");

printf("|------------|---------------|----|----|----|----|--------|--------|-----|\n");

printf("|%-12s|%-15s|%4d|%4d|%4d|%4d| %6.2f | %6-5.2f | %3d |\n", p->no,

p->name,p->score[0],p->score[1],p->score[ q=p; /*保存當前結點的指針,作為下一結點的前驅*/

p=p->next; /*指針後移,新讀入數據鏈到當前表尾*/

}

q->next=NULL; /*最後一個結點的後繼指針為空*/

fclose(fp); /*關閉文件*/

printf("---You have success read data from file!!!---\n");

getch(); /*按任意鍵返回主菜單*/

clrscr();

return h; /*返回頭指針*/

}

/*成績統計*/

void computer(STUDENT *h)

{

STUDENT *p,*t,*q; /*定義移動指針*/

float saverage[N]={0}; /*均分初值為0*/

int i;

clrscr();

for (i=0;i<N;i++)

{ int n=0,j=0; /*保存記錄條數初值為0*/

long s=0; /*總分初值為0*/

p=h; /*從頭指針開始*/

while(p!=NULL) /*當p不為空時處理*/

{

s+=p->score[i]; /*累加總分*/

j++; /*統計記錄條數*/

p=p->next; /*指針後移*/
h; /*返回頭指針
來源: http://..com/question/87150638.html?si=6

『肆』 關於C語言的

要想學c ,最好先不用功能強大的集成的開發環境,這樣有助於幫助你理解一些底層的東西,會對以後的學習很有幫住的
這里給你介紹一個應用最普遍的編譯器吧:

Turbo C 2.0集成開發環境的使用
下載完以後,解壓縮,雙擊TC.EXE,進入Turbo C 2.0集成開發環境中後, 屏幕上顯示:
—————————————————————————————---
File Edit Run Compile Project Options Debug Break/watch
┌————————————Edit——————————————┐
│ Line 1 Col 1 Insert Indent Tab File Unindent c:NONAME.C│
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│—————————Message——————————————— |
│ │
│ │
└——————————————————————————--—┘
F1-Help F5-Zoom F6-Switch F7-Trace F8-Step F9-Make F10-Menu
———————————————————————————————
其中頂上一行為Turbo C 2.0 主菜單, 中間窗口為編輯區, 接下來是信息窗口, 最底下一行為參考行。這四個窗口構成了Turbo C 2.0的主屏幕, 以後的編程、編譯、調試以及運行都將在這個主屏幕中進行。
下面詳細介紹主菜單的內容:
(一)、主菜單 在Turbo C 2.0主屏幕頂上一行, 顯示下列內容:
File Edit Run Compile Project Options Debug Break/watch
除Edit外, 其它各項均有子菜單, 只要用Alt加上某項中第一個字母(即大寫字母), 就可進入該項的子菜單中。
1、File(文件)菜單
按Alt+F可進入File菜單, 該菜單包括以下內容:
.Load(載入)
裝入一個文件, 可用類似DOS的通配符(如*.C)來進行列表選擇。也可裝入其它擴展名的文件, 只要給出文件名(或只給路徑)即可。該項的熱鍵為F3, 即只要在主菜單中按F3即可進入該項, 而不需要先進入File菜單再選此項。
.Pick(選擇)
將最近裝入編輯窗口的8個文件列成一個表讓用戶選擇, 選擇後將該程序裝入編輯區,並將游標置在上次修改過的地方。其熱健為Alt+F3。
.New(新文件)
說明文件是新的, 預設文件名為NONAME.C, 存檔時可改名。
.Save(存檔)
將編輯區中的文件存檔, 若文件名是NONAME.C時, 將詢問是否更改文件名, 其熱鍵為F2。
.Write to(存檔)
可由用戶給出文件名將編輯區中的文件存檔, 若該文件已存在, 則詢問要不要覆蓋。
.Directory(目錄)
顯示目錄及目錄中的文件, 並可由用戶選擇。
.Change dir(改變目錄)
顯示當前目錄, 用戶可以改變顯示的目錄。
.Os shell(暫時退出)
暫時退出Turbo C 2.0到DOS提示符下, 此時可以運行DOS 命令, 若想回到Turbo C 2.0中,只要在DOS狀態下鍵入EXIT即可。
.Quit(退出)
退出Turbo C 2.0, 返回到DOS操作系統中, 其熱鍵為Alt+X。
說明: 以上各項可用游標鍵移動色棒進行選擇, 回車則執行。也可用每一項的第一個大寫字母直接選擇。若要退到主菜單或從它的下一級菜單列表框退回均可用Esc鍵,Turbo C 2.0所有菜單均採用這種方法進行操作, 以下不再說明。
2、Edit(編輯)菜單
按Alt+E可進入編輯菜單, 若再回車, 則游標出現在編輯窗口,此時用戶可以進行文本編輯。
編輯方法基本與wordstar相同, 可用F1鍵獲得有關編輯方法的幫助信息。
與編輯有關的功能鍵如下:
F1 獲得Turbo C 2.0編輯命令的幫助信息
F5 擴大編輯窗口到整個屏幕
F6 在編輯窗口與信息窗口之間進行切換
F10 從編輯窗口轉到主菜單
編輯命令簡介:
PageUp 向前翻頁
PageDn 向後翻頁
Home 將游標移到所在行的開始
End 將游標移到所在行的結尾
Ctrl+Y 刪除游標所在的一行
Ctrl+T 刪除游標所在處的一個詞
Ctrl+KB 設置塊開始
Ctrl+KK 設置塊結尾
Ctrl+KV 塊移動
Ctrl+KC 塊拷貝
Ctrl+KY 塊刪除
Ctrl+KR 讀文件
Ctrl+KW 存文件
Ctrl+KP 塊文件列印
Ctrl+F1 如果游標所在處為Turbo C 2.0庫函數,則獲得有關該函數的幫助信息
Ctrl+Q[ 查找Turbo C 2.0雙界符的後匹配符
Ctrl+Q] 查找Turbo C 2.0雙界符的前匹配符
說明:
(1). Turbo C 2.0的雙界符包括以下幾種符號:
花括符 {和}
尖括符 <和>
圓括符 (和)
方括符 [和]
注釋符 /*和*/
雙引號
單引號 '
(2). Turbo C
2.0在編輯文件時還有一種功能,就是能夠自動縮進,即游標定位和上一個非空字元對齊。在編輯窗口中,Ctrl+OL為自動縮進開關的控制鍵。
3、Run(運行)菜單
按Alt+R可進入Run菜單, 該菜單有以下各項:
.Run(運行程序)
運行由Project/Project name項指定的文件名或當前編輯區的文件。如果對上次編譯後的源代碼未做過修改,則直接運行到下一個斷點(沒有斷點則運行到結束)。否則先進行編譯、連接後才運行,其熱鍵為Ctrl+F9。
.Program reset(程序重啟)
中止當前的調試, 釋放分給程序的空間, 其熱鍵為Ctrl+F2。
.Go to cursor(運行到游標處)
調試程序時使用, 選擇該項可使程序運行到游標所在行。游標所在行必須為一條可執行語句, 否則提示錯誤。其熱鍵為F4。
.Trace into(跟蹤進入)
在執行一條調用其它用戶定義的子函數時,若用Trace into項,則執行長條將跟蹤到該子函數內部去執行,其熱鍵為F7。
.Step over(單步執行)
執行當前函數的下一條語句,即使用戶函數調用,執行長條也不會跟蹤進函數內部,其熱鍵為F8。
.User screen(用戶屏幕)
顯示程序運行時在屏幕上顯示的結果。其熱鍵為Alt+F5。
4、Compile(編譯)菜單
按Alt+C可進入Compile菜單,該菜單有以下幾個內容:
.Compile to OBJ(編譯生成目標碼)
將一個C源文件編譯生成.OBJ目標文件,同時顯示生成的文件名。其熱鍵為Alt+F9。
.Make EXE file(生成執行文件)
此命令生成一個.EXE的文件,並顯示生成的.EXE文件名。其中.EXE文件名是下面幾項之一。
(1). 由Project/Project name說明的項目文件名。
(2). 若沒有項目文件名,則由Primary C file說明的源文件。
(3). 若以上兩項都沒有文件名,則為當前窗口的文件名。
.Link EXE file(連接生成執行文件)
把當前.OBJ文件及庫文件連接在一起生成.EXE文件。
.Build all(建立所有文件)
重新編譯項目里的所有文件,並進行裝配生成.EXE文件。該命令不作過時檢查(上面的幾條命令要作過時檢查,即如果目前項目里源文件的日期和時間與目標文件相同或更早, 則拒絕對源文件進行編譯)。
.Primary C file(主C文件)
當在該項中指定了主文件後,在以後的編譯中,如沒有項目文件名則編譯此項中規定的主C文件,如果編譯中有錯誤,則將此文件調入編輯窗口,不管目前窗口中是不是主C文件。
.Get info(獲得有關當前路徑、源文件名、源文件位元組大小、編譯中的錯誤數目、可用空間等信息。
5、Project(項目)菜單
按Alt+P可進入Project菜單,該菜單包括以下內容:
.Project name(項目名)
項目名具有.PRJ的擴展名,其中包括將要編譯、連接的文件名。例如有一個程序由file1.c, file2.c, file3.c組成,要將這3個文件編譯裝配成一個file.exe的執行文件,可以先建立一個file.prj的項目文件,其內容如下:
file1.c
file2.c
file3.c
此時將file.prj放入Project name項中,以後進行編譯時將自動對項目文件中規定的三個源文件分別進行編譯。然後連接成file.exe文件。如果其中有些文件已經編譯成.OBJ文件,而又沒有修改過,可直接寫上.OBJ擴展名。此時將不再編譯而只進行連接。
例如: file1.obj
file2.c
file3.c
將不對file1.c進行編譯,而直接連接。
說明: 當項目文件中的每個文件無擴展名時,均按源文件對待,另外,其中的文件也可以是庫文件, 但必須寫上擴展名.LIB。
.Break make on(中止編譯)
由用戶選擇是否在有Warining(警告)、Errors(錯誤)、Fatal Errors( 致命錯誤)時或Link(連接)之前退出Make編譯。
.Auto dependencies(自動依賴)
當開關置為on, 編譯時將檢查源文件與對應的.OBJ文件日期和時間,否則不進行檢查。
.Clear project(清除項目文件)
清除Project/Project name中的項目文件名。
.Remove messages(刪除信息)
把錯誤信息從信息窗口中清除掉。
6、Options(選擇菜單)
按Alt+O可進入Options菜單, 該菜單對初學者來說要謹慎使用。
.Compiler(編譯器)
本項選擇又有許多子菜單, 可以讓用戶選擇硬體配置、存儲模型、調試技術、代碼優化、對話信息控制和宏定義。這些子菜單如下:
Model
共有Tiny, small, medium, compact, large, huge 六種不同模式可由同戶選擇。
Define
打開一個宏定義框,同戶可輸入宏定義。多重定義可同分號,賦值可用等號。
Code generation
它又有許多任選項,這些任選項告訴編譯器產生什麼樣的目標代碼。
Calling convention 可選擇C或Pascal方式傳遞參數。
Instruction set 可選擇8088/8086或80186/80286指令系列。
Floating point 可選擇模擬浮點、數學協處理器浮點或無浮點運算。
Default char type 規定char的類型。
Alignonent 規定地址對准原則。
Merge plicate strings 作優化用,將重復的字元串合並在一起。
Standard stack frame 產生一個標準的棧結構。
Test stack overflow 產生一段程序運行時檢測堆棧溢出的代碼。
Line number 在.OBJ文件中放進行號以供調試時用。
OBJ debug information 在.OBJ文件中產生調試信息。
Optimization
Optimize for 選擇是對程序小型化還是對程序速度進行優 化處理。
Use register variable 用來選擇是否允許使用寄存器變數。
Register optimization 盡可能使用寄存器變數以減少過多的取數操作。
Jump optimization 通過去除多餘的跳轉和調整循環與開關語句的辦法,壓縮代碼。
Source
Indentifier length 說明標識符有效字元的個數,默認為32個。
Nested comments 是否允許嵌套注釋。
ANSI keywords only 是只允許ANSI關鍵字還是也允許Turbo C 2.0關鍵字。
Error
Error stop after 多少個錯誤時停止編譯,默認為25個。
Warning stop after 多少個警告錯誤時停止編譯, 默認為100個。
Display warning
Portability warning 移植性警告錯誤。
ANSI Violations 侵犯了ANSI關鍵字的警告錯誤。
Common error 常見的警告錯誤。
Less common error 少見的警告錯誤。
Names 用於改變段(segment)、組(group)和類(class)的名字,默認值為CODE,DATA,BSS。
.Linker(連接器)
本菜單設置有關連接的選擇項,它有以下內容:
Map file menu 選擇是否產生.MAP文件。
Initialize segments 是否在連接時初始化沒有初始化的段。
Devault libraries 是否在連接其它編譯程序產生的目標文件時去尋找其預設庫。
Graphics library 是否連接graphics庫中的函數。
Warn plicate symbols 當有重復符號時產生警告信息。
Stack warinig 是否讓連接程序產生No stack的警告信息。
Case-sensitive link 是否區分大、小寫字。
.Environment(環境)
本菜單規定是否對某些文件自動存檔及製表鍵和屏幕大小的設置
Message tracking
Current file 跟蹤在編輯窗口中的文件錯誤。
All files 跟蹤所有文件錯誤。
Off 不跟蹤。
Keep message 編譯前是否清除Message窗口中的信息。
Config auto save 選on時,在Run,Shell或退出集成開發環境之前,如果Turbo C
2.0的配置被改過,則所做的改動將存入配置文件中。選off時不存。
Edit auto save 是否在Run或Shell之前, 自動存儲編輯的源文件。
Backup file 是否在源文件存檔時產生後備文件(.BAK文件)。
Tab size 設置製表鍵大小,默認為8。
Zoomed windows 將現行活動窗口放大到整個屏幕, 其熱鍵為F5。
Screen size 設置屏幕文本大小。
.Directories(路徑)
規定編譯、連接所需文件的路徑,有下列各項:
Include directories 包含文件的路徑,多個子目錄用;分開。
Library directories 庫文件路徑,多個子目錄用;分開。
Output directoried 輸出文件(.OBJ,.EXE,.MAP文件)的目錄。
Turbo C directoried Turbo C 所在的目錄。
Pick file name 定義載入的pick文件名,如不定義則從current pick file中取。
.Arguments(命令行參數)
允許用戶使用命令行參數。
.Save options(存儲配置)
保存所有選擇的編譯、連接、調試和項目到配置文件中,預設的配置文件為TCCONFIG.TC。
.Retrive options
裝入一個配置文件到TC中,TC將使用該文件的選擇項。
7、Debug(調試)菜單
按Alt+D可選擇Debug菜單,該菜單主要用於查錯,它包括以下內容:
.Evaluate(Ctrl+F4)
Expression 要計算結果的表達式。
Result 顯示表達式的計算結果。
New value 賦給新值。
.Call stack(Ctrl+F3) 該項不可接觸。而在Turbo C debuger時用於檢查堆棧情況。
.Find function 在運行Turbo C debugger時用於顯示規定的函數。
.Refresh display 如果編輯窗口偶然被用戶窗口重寫了可用此恢復編輯窗口的內容。
8、Break/watch(斷點及監視表達式)
按Alt+B可進入Break/watch菜單, 該菜單有以下內容:
.Add watch(Ctrl+F7) 向監視窗口插入一監視表達式。
.Delete watch 從監視窗口中刪除當前的監視表達式。
.Edit watch 在監視窗口中編輯一個監視表達式。
.Remove all watches 從監視窗口中刪除所有的監視表達式。
.Toggle breakpoint(Ctrl+F8) 對游標所在的行設置或清除斷點。
.Clear all breakpoints 清除所有斷點。
.View next breakpoint 將游標移動到下一個斷點處。
(二)、編輯區 所有的程序代碼都在這個區域編寫,修改。用ALT+E進入編輯區。在編輯區的最上面還顯示游標所數在行和所在列數。
(三)、信息窗口 在編譯過程中顯示程序的錯誤和警告;在單步調試過程中,顯示所添加監視表達式的值。
(四)、參考行 包括以下內容
F1-Help 顯示幫助信息
F5-Zoom 讓編輯區最大,即屏蔽信息窗口;再按一次,返回。
F6-Switch 在編輯區和信息窗口之間切換。
F7-Trace 單步運行程序,並跟蹤到函數體內部
F8-Step 單步運行程序,不跟蹤到函數體內部
F9-Make 編譯鏈接
F10-Menu 回到主菜單

『伍』 編寫的C語言程序,怎樣製作一個UI界面

c語言製作UI界面需要相關的UI庫

如windows操作系統本身就提供了UI的介面

一個簡單的示例代碼如下

#include<windows.h>

LRESULTCALLBACKWndProc(HWND,UINT,WPARAM,LPARAM);

intWINAPIWinMain(HINSTANCEhinstance,HINSTANCEhprevinstance,LPSTRline,intcmd)
{
staticTCHARAppName[]=TEXT("99");
HWNDhwnd;
MSGmsg;
WNDCLASSwndclass;

wndclass.style=CS_HREDRAW|CS_VREDRAW;
wndclass.lpfnWndProc=WndProc;
wndclass.cbClsExtra=0;
wndclass.cbWndExtra=0;
wndclass.hInstance=hinstance;
wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName=NULL;
wndclass.lpszClassName=AppName;

if(!RegisterClass(&wndclass))
{
MessageBox(NULL,TEXT("ThisprogramrequiresWindowsNT!"),AppName,MB_ICONERROR);
return0;
}

hwnd=CreateWindow(AppName,TEXT("九九乘法口訣表"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hinstance,
NULL);

ShowWindow(hwnd,cmd);
UpdateWindow(hwnd);

while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}

returnmsg.wParam;
}

LRESULTCALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwparam,LPARAMlparam)
{
HDChdc;
PAINTSTRUCTps;
RECTrect;
staticx,y;
inti,j;
intlen;
TCHARbuf[50];
TEXTMETRICtm;

switch(message)
{
caseWM_CREATE:
hdc=GetDC(hwnd);
GetTextMetrics(hdc,&tm);
x=tm.tmAveCharWidth;
y=tm.tmHeight+tm.tmExternalLeading;
ReleaseDC(hwnd,hdc);
//MessageBox(NULL,TEXT("CreateSuccessed!"),TEXT("Successed"),MB_OK);
//PlaySound(TEXT("hello.wav"),NULL,SND_FILENAME|SND_ASYNC);
return0;

caseWM_PAINT:
hdc=BeginPaint(hwnd,&ps);
GetClientRect(hwnd,&rect);
//DrawText(hdc,TEXT("HelloWorld!"),-1,&rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
//TextOut(hdc,rect.right/2-(strlen("HelloWorld!")/2)*x,rect.bottom/2-y/2,TEXT("HelloWorld!"),12);
for(i=1;i!=10;++i)
{
for(j=1;j!=i+1;++j)
{
len=wsprintf(buf,TEXT("%dx%d=%-4d"),j,i,i*j);
TextOut(hdc,j*len*x,i*y,buf,len);
}
}

EndPaint(hwnd,&ps);
return0;

caseWM_DESTROY:
PostQuitMessage(0);
return0;
}

returnDefWindowProc(hwnd,message,wparam,lparam);
}

上面是一個列印windows下擁有窗口界面的九九乘法口訣表的c語言程序代碼


同樣的c語言也會有其它的UI庫

比如Gtk,Gtk是可移植的UI庫

可以使用它在Linux、windows包括mac等等操作系統上做ui程序設計

一個簡單的示例代碼如下

#include<gtk/gtk.h>

intmain(intargc,char**argv)
{
GtkWidget*win;
GtkWidget*label;
inti,j;
GString*str;

gtk_init(&argc,&argv);

win=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_position(GTK_WINDOW(win),GTK_WIN_POS_CENTER);
g_signal_connect(G_OBJECT(win),"delete-event",G_CALLBACK(gtk_main_quit),NULL);

str=g_string_new(NULL);

for(i=1;i<=9;++i)
{
for(j=1;j!=i+1;++j)
g_string_append_printf(str,"%dx%d=%-4d",j,i,i*j);

g_string_append(str," ");
}

label=gtk_label_new(str->str);
gtk_container_add(GTK_CONTAINER(win),label);

gtk_widget_show_all(win);
gtk_main();

g_string_free(str,TRUE);
return0;
}

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

『柒』 C語言如何做界面

我不清楚你的編輯器是哪一種不過都差不多的

先新建工程(文件新建->選第二選項卡->工程->MFC...exe)建立工程後,點左側選項卡中間

就出來個界面刪除掉所有的自己拉一個按鈕控制項上去

按鈕相關代碼你就要上網去搜索系統學習了

『捌』 設計一通過 c語言 個簡單實用的菜單,通過菜單選擇不同的菜單項並實現相應的功能。

#include<stdio.h>
#include<windows.h>
// 1.增加2.查詢3.刪除4.退出 ");
//聲明函數
voidaddnd();
voidsearchnd();
voidprintnd();
voidcharund();
//含枚舉類型分支switch
enummmenu{/*定義一個名為mmenu的枚舉類型
可以讓常量有一定的含義(如實現菜單)*/
addn=1,//默認是0,定義為1後後面的成員也會自動變換(排序)
searchn,
printn,
quitn
};
voidmain(){
enummmenuinput;
while(1){
printf("菜單 1.增加2.查詢3.列印4.退出 ");
scanf("%d",&input);
Sleep(500);
system("cls");
switch(input){//case內的情況只能是整型或字元型的常量
caseaddn:printf("選中了1.增加 ");addnd();break;
casesearchn:printf("選中了2.查詢 ");searchnd();break;
caseprintn:printf("選中了3.列印 ");printnd();break;
casequitn:printf("選中了4.退出 ");exit(0);break;
default:printf("不在選項內,請重新輸入! ");break;}
};

}

voidaddnd(){//增加
printf("//請自定義addnd()函數代碼// ");
}
voidsearchnd(){
printf("//請自定義searchnd()函數代碼// ");
}
voidprintnd(){//列印
printf("//請自定義printnd()函數代碼// ");
}
voidcharund(){
printf("//請自定義charund函數代碼// ");
}

『玖』 用C語言做一個管理系統,怎樣才能把主界面就是選擇功能和子模塊的顯示的界面分開

就是說當選擇了主模板的某一項後,不再顯示主界面,而顯示那一選項的字模板是吧。
這樣的話,可以考慮清屏,然後重新顯示,退出時也一樣,清屏,然後重新顯示主界面。你把主界面和每個子界面的顯示分別寫成函數,在選擇或退出時,先清屏,再調用相應的顯示函數。
清屏命令需要包含#include<stdlib.h>頭文件,命令代碼:
system("cls");

給個例子:
這個例子我只寫了一個界面,沒寫內容。你可以仿照
#include<stdio.h>
#include<stdlib.h>
void zhujm()
{
printf(" 歡飲使用本系統!\n");
printf("**************************************\n");
printf("* 1.增加信息 2.修改信息 *\n");
printf("* 3.查詢信息 4.刪除信息 *\n");
printf("* 5.關於軟體 6.退出系統 *\n");
printf("**************************************\n");
}
void zijm_1()
{
printf("1.輸入信息 2.退出\n");
}
int main()
{
int num;
zhujm();
scanf("%d",&num);
while(num!=6)
{
switch(num)
{
case 1:
system("cls");
zijm_1();
scanf("%d",&num);
if(num==2)
{
system("cls");
zhujm();
}
break;
}
scanf("%d",&num);
if(num==6)
{
system("cls");
printf("謝謝使用!\n");
}
}
return 0;
}

程序運行顯示主界面,然後輸入1,可以顯示第一個子界面,然後輸入2可以退出子界面,返回主界面,可以一直這樣循環,輸入6退出系統並顯示「謝謝使用!」。

『拾』 怎麼用c語言做一個界面

空窗口:

#include<windows.h>
/*所有的窗口輸出到這里去*/
LRESULTCALLBACKWndProc(HWNDhwnd,UINTMessage,WPARAMwParam,LPARAMlParam){
switch(Message){

/*停止後,告訴主線程停止*/
caseWM_DESTROY:{
PostQuitMessage(0);
break;
}

/*所有其他消息都使用默認程序處理*/
default:
returnDefWindowProc(hwnd,Message,wParam,lParam);
}
return0;
}
/*Win32GUI程序的主要功能:從這里開始執行*/
intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnCmdShow){
WNDCLASSEXwc;/*窗口的屬性結構*/
HWNDhwnd;/*"句柄"一個窗口的標識符*/
MSGMsg;/*所有消息的臨時位置*/

/*修改結構和設置的東西*/
memset(&wc,0,sizeof(wc));
wc.cbSize =sizeof(WNDCLASSEX);
wc.lpfnWndProc =WndProc;/*發送消息的地方*/
wc.hInstance =hInstance;
wc.hCursor =LoadCursor(NULL,IDC_ARROW);

/*白色,COLOR_WINDOW是系統定義的顏色值,其數值是5*/
wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
wc.lpszClassName="WindowClass";
wc.hIcon =LoadIcon(NULL,IDI_APPLICATION);/*載入一個標准圖標*/
wc.hIconSm =LoadIcon(NULL,IDI_APPLICATION);/*使用名稱「A」來作為該項目圖標*/

if(!RegisterClassEx(&wc)){
MessageBox(NULL,"WindowRegistrationFailed!","Error!",MB_ICONEXCLAMATION|MB_OK);
return0;
}

hwnd=CreateWindowEx(WS_EX_CLIENTEDGE,"WindowClass","Caption",WS_VISIBLE|WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,/*x*/
CW_USEDEFAULT,/*y*/
640,/*寬度*/
480,/*高度*/
NULL,NULL,hInstance,NULL);

if(hwnd==NULL){
MessageBox(NULL,"WindowCreationFailed!","Error!",MB_ICONEXCLAMATION|MB_OK);
return0;
}
/*
所有的輸入處理和發送到窗口過程。
注意,這個塊代碼流,直到它接收到的東西,
所以迴路不會產生不合理的高CPU使用率。
*/
while(GetMessage(&Msg,NULL,0,0)>0)/*如果沒有收到任何錯誤…*/
{
TranslateMessage(&Msg);/*如果存在翻譯關鍵碼字元*/
DispatchMessage(&Msg);/*發送它到WndProc*/
}
returnMsg.wParam;
}