1. 用c語言編寫控制台下簡單的學籍管理程序
太長,剩下的聯系我,發給你!
/*11.3.2
源程序*/
/***********xuesheng.c***********/
/******頭文件(.h)***********/
#include
"stdio.h"
/*I/O函數*/
#include
"stdlib.h"
/*其它說明*/
#include
"string.h"
/*字元串函數*/
#include
"conio.h"
/*屏幕操作函數*/
#include
"mem.h"
/*內存操作函數*/
#include
"ctype.h"
/*字元操作函數*/
#include
"alloc.h"
/*動態地址分配函數*/
#define
N
3
/*定義常數*/
typedef
struct
z1
/*定義數據結構*/
{
char
no[11];
char
name[15];
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
search(STUDENT
*h);
/*查找*/
void
save(STUDENT
*h);
/*保存*/
STUDENT
*load();
/*讀入記錄*/
void
computer(STUDENT
*h);
/*計算總分和均分*/
STUDENT
*insert(STUDENT
*h);
/*插入記錄*/
void
append();
/*追加記錄*/
void
();
/*復制文件*/
STUDENT
*sort(STUDENT
*h);
/*排序*/
STUDENT
*index(STUDENT
*h);
/*索引*/
void
total(STUDENT
*h);
/*分類合計*/
int
menu_select();
/*菜單函數*/
/******主函數開始*******/
main()
{
int
i;
STUDENT
*head;
/*鏈表定義頭指針*/
head=init();
/*初始化鏈表*/
clrscr();
/*清屏*/
for(;;)
/*無限循環*/
{
switch(menu_select())
/*調用主菜單函數,返回值整數作開關語句的條件*/
{
/*值不同,執行的函數不同,break
不能省略*/
case
0:head=init();break;
/*執行初始化*/
case
1:head=create();break;
/*創建鏈表*/
case
2:head=delete(head);break;
/*刪除記錄*/
case
3:print(head);break;
/*顯示全部記錄*/
case
4:search(head);break;
/*查找記錄*/
case
5:save(head);break;
/*保存文件*/
case
6:head=load();
break;
/*讀文件*/
case
7:computer(head);break;
/*計算總分和均分*/
case
8:head=insert(head);
break;
/*插入記錄*/
case
9:();break;
/*復制文件*/
case
10:head=sort(head);break;
/*排序*/
case
11:append();break;
/*追加記錄*/
case
12:head=index(head);break;
/*索引*/
case
13:total(head);break;
/*分類合計*/
case
14:exit(0);
/*如菜單返回值為14程序結束*/
}
}
}
/*菜單函數,返回值為整數*/
menu_select()
{
c
2. c語言是不是只能寫控制台啊
我來給你解釋下吧:
C語言是很底層的東西。它能夠用來寫圖形化界面,但是需要使用單獨的圖形庫,因為關於圖形的部分不是C語言標准里的東西。
Windows環境下的話,用C寫圖形化界面就得使用微軟的Windows API。那個學起來很難,用起來也麻煩得很。微軟為了簡化圖形開發,為C++開發者提供了C++編寫的基於Windows API的類庫封裝--MFC(Microsoft Foundation Classes),為C提供了Windows SDK。MFC用起來還能簡化不少,SDK則是依然很復雜。想用C寫Windows系統下的圖形化界面,就得學《Windows程序設計》。
Linux環境下的話,就QT、GTK+之類的。
所以說,Windows環境下用C寫圖形化界面的想法還是放棄吧,太難,外面基本上也沒有哪個公司會做這樣的開發。C本來就不是用來干這個的,主要用於系統應用開發,做底層的。
C++就用MFC,不過也不怎麼好學,開發效率也不高。Java的話得學Swing、AWT,不過Java寫界面也是渣得很。
現在最主流的圖形界面開發都是用的C#。開發圖形界面太簡單了,特別是WPF。開發效率是當前最高的。你幾乎不用學編程就能做界面,界面和編程基本是分離的。(當然動態界面控制是必須要編程實現的)
學完C學C++吧,了解下面向對象編程,然後就學C#,做圖形界面就簡單了。當然你也可以直接跳過C++學C#,只是可能不好接受點。
另外,關於界面,這些界面都是API自己畫出來的,你只需要在代碼里調用就能產生,而不是要你自己去畫。在集成開發環境(比如Visual C++、Visual Studio)里拖拽控制項到界面上實際上也是集成開發環境在自動為你生成調用控制項的代碼。
3. C語言 控制台程序
不想調用控制台入口換winmain
底層的編譯,在編譯成目標文件之後,不要鏈接成可執行文件,生成別的
二進制文件
或者。。像
Linux內核
一樣,編譯成可執行文件,裝載入內存,然後用內存鏡像拷貝出純二進制文件。。等等方法
至於編譯驅動有另外更加專業的方法咯。。
4. 用C語言編寫控制台程序,如何實現窗體最小化
朋友 C 語言 不是用來干這個的,不是用來寫 應用程序 或者窗體的, 它是個 面向過程的語言, 請不要用來寫 那些東西, C 語言是用來當基礎 和 嵌入式編程用的 或者驅動之類的底層工作的, 不是用來寫界面的, 請使用C++ 寫. 別驢唇不對馬嘴的,用錯工具 殺蚊子 請用蚊香 不要使用 大炮
5. C語言只能寫控制台程序
不是。
C語言還可以寫編寫WINDOWS 應用程序。
需要些SDK的知識,windows的實現中基本上都是用的C語言,其各種介面基本上都是原生C語言函數,具體比如SDK用的windows API。
使用純C語言編寫windows程序,工作量將會相當大,下面是一個小例子:
/*
*Thisisasimplewindowsprogram,itdoesnothingbutdrawanellipse.
*WindowsSDK,Win32API,PureC,(NotC++orMFC!!)
*Suxpertatgmaildotcom,2008/8/24
**/
#include<windows.h>
LONGWINAPIWndProc(HWND,UINT,WPARAM,LPARAM);
intAPIENTRYWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,
LPSTRlpszCmdLine,intnCmdShow){
/*TheEntryforwindowsprogram,justlikemain()indos*/
WNDCLASSwc;
HWNDhwnd;
MSGmsg;
wc.style=0;//Classstyle
wc.lpfnWndProc=(WNDPROC)WndProc;//Windowprocereaddress
wc.cbClsExtra=0;//Classextrabytes
wc.cbWndExtra=0;//Windowextrabytes
wc.hInstance=hInstance;//Instancehandle
wc.hIcon=LoadIcon(NULL,IDI_WINLOGO);//Iconhandle
wc.hCursor=LoadCursor(NULL,IDC_ARROW);//Cursorhandle
wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);//Backgroundcolor
wc.lpszMenuName=NULL;//Menuname
wc.lpszClassName="WinSDKtest";//WNDCLASSname
RegisterClass(&wc);
hwnd=CreateWindow(
"WinSDKtest",//WNDCLASSname
"SDKApplication",//Windowtitle
WS_OVERLAPPEDWINDOW,//Windowstyle
CW_USEDEFAULT,//Horizontalposition
CW_USEDEFAULT,//Verticalposition
CW_USEDEFAULT,//Initialwidth
CW_USEDEFAULT,//Initialheight
HWND_DESKTOP,//Handleofparentwindow
NULL,//Menuhandle
hInstance,//Application'sinstancehandle
NULL//Window-creationdata
);
ShowWindow(hwnd,nCmdShow);
UpdateWindow(hwnd);
while(GetMessage(&msg,NULL,0,0)){
TranslateMessage(&msg);
DispatchMessage(&msg);
}
returnmsg.wParam;
}
LRESULTCALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwParam,
LPARAMlParam)
{
/*...*/
PAINTSTRUCTps;
HDChdc;
switch(message){
caseWM_PAINT:
hdc=BeginPaint(hwnd,&ps);
Ellipse(hdc,0,0,800,600);
//
EndPaint(hwnd,&ps);
break;//Someoneliketowritereturnhere.
caseWM_DESTROY:
PostQuitMessage(0);
break;
default:
returnDefWindowProc(hwnd,message,wParam,lParam);
}
return0;
}
基本過程就是直接調用windows提供的API函數,完成從窗口創建,顯示等界面功能到深層的文件操作,注冊表等甚至windows內核調試等高級功能。
6. C語言編寫的怎麼都是命令控制台程序
1、控制台程序是基礎,有基礎了寫圖形界面的程序就很簡單了。學完C++了學windows編程、MFC什麼的,到時候就是圖形界面了。
2、圖形界面需要些SDK的知識,windows的實現中基本上都是用的C語言,其各種介面基本上都是原生C語言函數,具體比如SDK用的windows API。
使用純C語言編寫windows程序,工作量將會相當大,下面是一個小例子:
/*
*Thisisasimplewindowsprogram,itdoesnothingbutdrawanellipse.
*WindowsSDK,Win32API,PureC,(NotC++orMFC!!)
*Suxpertatgmaildotcom,2008/8/24
**/
#include<windows.h>
LONGWINAPIWndProc(HWND,UINT,WPARAM,LPARAM);
intAPIENTRYWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,
LPSTRlpszCmdLine,intnCmdShow){
/*TheEntryforwindowsprogram,justlikemain()indos*/
WNDCLASSwc;
HWNDhwnd;
MSGmsg;
wc.style=0;//Classstyle
wc.lpfnWndProc=(WNDPROC)WndProc;//Windowprocereaddress
wc.cbClsExtra=0;//Classextrabytes
wc.cbWndExtra=0;//Windowextrabytes
wc.hInstance=hInstance;//Instancehandle
wc.hIcon=LoadIcon(NULL,IDI_WINLOGO);//Iconhandle
wc.hCursor=LoadCursor(NULL,IDC_ARROW);//Cursorhandle
wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);//Backgroundcolor
wc.lpszMenuName=NULL;//Menuname
wc.lpszClassName="WinSDKtest";//WNDCLASSname
RegisterClass(&wc);
hwnd=CreateWindow(
"WinSDKtest",//WNDCLASSname
"SDKApplication",//Windowtitle
WS_OVERLAPPEDWINDOW,//Windowstyle
CW_USEDEFAULT,//Horizontalposition
CW_USEDEFAULT,//Verticalposition
CW_USEDEFAULT,//Initialwidth
CW_USEDEFAULT,//Initialheight
HWND_DESKTOP,//Handleofparentwindow
NULL,//Menuhandle
hInstance,//Application'sinstancehandle
NULL//Window-creationdata
);
ShowWindow(hwnd,nCmdShow);
UpdateWindow(hwnd);
while(GetMessage(&msg,NULL,0,0)){
TranslateMessage(&msg);
DispatchMessage(&msg);
}
returnmsg.wParam;
}
LRESULTCALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwParam,
LPARAMlParam)
{
/*...*/
PAINTSTRUCTps;
HDChdc;
switch(message){
caseWM_PAINT:
hdc=BeginPaint(hwnd,&ps);
Ellipse(hdc,0,0,800,600);
//
EndPaint(hwnd,&ps);
break;//Someoneliketowritereturnhere.
caseWM_DESTROY:
PostQuitMessage(0);
break;
default:
returnDefWindowProc(hwnd,message,wParam,lParam);
}
return0;
}
基本過程就是直接調用windows提供的API函數,完成從窗口創建,顯示等界面功能到深層的文件操作,注冊表等甚至windows內核調試等高級功能。
7. C語言控制台程序如何實現多次輸入
#include <stdio.h>
#include <stdlib.h>
main()
{
int year;
scanf("%d",&year);
while(year!=0)
{
if(year%4==0&&year%100!=0||year%400==0)
printf("%d 是閏年",year);
else printf("%d 不是閏年",year);
system("pause");
scanf("%d",&year);
}
}
加一個while循環即可,當輸入年份不為0時,可繼續輸入,輸入0則結束
如果你想一直運行的話,加一個while(0)即可。
8. 請用c語言控制台程序寫一個程序
#include<stdio.h>
typedefstructpoint{
intx;
inty;
}quadrangle;
intmain(intargc,charconst*argv[])
{
quadranglefour[4];
inti,j,tmpx,tmpy;
for(i=0;i<4;i++)
{
printf("輸入第%d個點,每個點由x軸,y軸坐標表示如:125 ",i+1);
scanf("%d%d",&four[i].x,&four[i].y);
}
for(i=0;i<4;i++)
{
tmpx=four[i].x;
tmpy=four[i].y;
for(j=i+1;j<4;j++)
{
if(four[j].x<tmpx)
{
four[i].x=four[j].x;
four[i].y=four[j].y;
four[j].x=tmpx;
four[j].y=tmpy;
tmpx=four[i].x;
tmpy=four[i].y;
}
}
}
inta[2],b[2],c[2],d[2];
if(four[0].y>four[1].y)
{
a[0]=four[1].x;
a[1]=four[1].y;
d[0]=four[0].x;
d[1]=four[0].y;
}
else{
a[0]=four[0].x;
a[1]=four[0].y;
d[0]=four[1].x;
d[1]=four[1].y;
}
if(four[2].y>four[3].y)
{
b[0]=four[3].x;
b[1]=four[3].y;
c[0]=four[2].x;
c[1]=four[2].y;
}
else
{
b[0]=four[2].x;
b[1]=four[2].y;
c[0]=four[3].x;
c[1]=four[3].y;
}
printf("a(%d,%d)b(%d,%d)c(%d,%d)d(%d,%d) ",
a[0],a[1],b[0],b[1],c[0],c[1],d[0],d[1]);
return0;
}
9. 怎樣構建C語言控制台程序
看你在哪個環境下。
MinGW建立工程時會讓你選擇Win32 Application或者Console Application
VC++也是類似、、、
另外i,一般建立工程完成後,那個消息隊列和主界面會給你基本的代碼,自己學習一下吧;。
10. C語言編程求大神編一個程序,要求在控制台上輸入字元然後保存並輸出
#include<stdio.h>
#include<malloc.h>
intmain()
{
intblock=100;//當錄入達到最大時每次擴充的單位
inttotal=block;//total代表最大容量
intcount=0;//count記錄已錄入的數量
char*str=(char*)malloc(total*sizeof(char)+1);//str記錄起始地址
char*sp=str;//sp記錄當前所處地址
charc;//c讀取錄入的字元
printf("輸入:");
while((c=getchar())!=EOF)
{
if(c==' ')//讀到回車,則終結字元串並輸出.但不計數,下次輸入可覆蓋'