存儲取存退格清屏
㈠ 關於c語言中的類型轉換,謝謝了啊!!!
main() /*No.1主函數*/
{
printf("Welcome to study C program.\n");
printf("This is Lesson One.\n");
}
程序寫好後,按「F9」,然後按"Alt-F-O",就進入DOS提示符下
去執行它。
Welcome to study C program.
This is Lesson One.
怎麼樣?你自己的程序也變成了*.exe型的可執行文件了。按
「EXIT」可以返回到系統。
上例中「main()」是程序的主函數。C 語言程序由一系列函數組
成,而且每個程序必須有且只有一個主函數,即「main()」。在第一
行末還有/* */所夾的內容,它在程序編譯時不參與編譯,只說明程
序的作用,即起注釋作用。所以在你抄本教程的例子時可不抄這一部
分內容。
每個函數必須由「{ }」括起來,每句程序必須用「;」結束。
第3行第4行中printf是C語言用來在屏幕上輸出信息的一個重要
函數,最簡單的格式是
printf("顯示的內容");
字元串後面的「\n」不會顯示在屏幕上,它的意思是「回車換行」
接下來,你把第3行後面的「\n」去掉,再按「F9」後去執行,
你就會發現兩行內容都印在了一行。
Welcome to study C program.This is Lesson One.
如果在「\n」後加上「\a」,即每顯示一行出現一次響鈴。
如下表,是「\」後面字元的特殊含義。
\r
回車不換行(到行首)
\t
橫向跳到下一輸出位
\b
向左退格
\\
輸出字元"\"
好。下面把程序中「printf("This is Lesson One.\n");」
換成「printf("\tThis is Lesson One.\n");」,執行一下程序。
Welcome to study C program.
This is Lesson One.
下面再換成「printf("This is \b\bLesson One.\n");」再執行
一下。
Welcome to study C program.
This iLesson One.
程序中的「s 」並不是沒有顯示,而是顯示後,又被「Le」給蓋
上了。
要想在屏幕上輸出一個「C:\>」則要寫上「printf("C:\\>");」
好了,第一節就要此為止。你趕快復習一個。你知道今天所學的
知識了嗎?(只要學會了這些就別再多學了,貪多吃不爛。)
1.printf("顯示信息") 最簡單的輸出格式
2.「{ }」 用來括起函數
「;」 每句程序的結束標志
3.「\t」「\n」「\b」「\a」是什麼意思?
4.主程序的標志是什麼?
5./* */ 是用來注釋程序
不過先別關機,如果你用的是UCDOS或是成然漢字,你可以把顯
示的信息用中文代替。如:printf("我一定要把C語言學會!\n");
您的當前位置是:首頁>>電腦知識>>文本方式下的顯示
--------------------------------------------------------------------------------
文本方式下的顯示
C語言中,圖形函數大致可分為兩類:字元模式函數和圖形模式函數。本節我們練習使用字元模式函數。
使用字元模式函數應該在程序中聯入conio.h頭部文件。
下面是一些函數的作用
1) void clreol(); 從游標處刪除到本行末
2) void delline(); 清除本行內容,下面內容上提一行
delline();函數實際上還起到了向上卷屏的作用。
3) void insline(); 在游標所在行插入一空行,原來該行及以
下各行皆向下移一行
4) int wherex(); 返回當前游標的x(行)坐標
5) int wherey(); 返回當前游標的y(列)坐標
6) void highvideo(); 字元輸出用高亮度字元
7) void lowvideo(); 字元輸出用低亮度字元
8) void normvideo(); 字元輸出用普通亮度字元
在以上的各函數中皆不帶參數,當然也可以寫成括弧中有void的形式:
void wherex(void); 還可以寫成 wherex();
清屏、清行、向後刪行、插行的操作真有些CCED、WPS等編輯軟體的風格,就是在你平時的屏幕設計中也用少不了。返回坐標的函數則給你的設計提供每一個環節的游標坐標值。有利於你前後響應。字
符亮度的改變則會讓你的字元顯示出層次感,怎麼樣,趕快試試吧:
/* No32.c*/
# include "stdio.h"
# include "conio.h"
main()
{ clrscr();
gotoxy(10,1);
cprintf("甜密密,");
highvideo(); /*高亮度顯示*/
cprintf("\r\n 你笑得甜密密,");
lowvideo(); /*低亮度顯示*/
cprintf("\r\n 好象花兒開在春風里,");
normvideo(); /*普通亮度顯示*/
gotoxy(10,4); cprintf("開在春風里");
cprintf("\r\n 在哪裡,在哪裡見過你?");
printf("\r\n 你的笑容這樣熟悉。");
gotoxy(10,20);printf("任意鍵刪去游標後的內容");
gotoxy(18,3); getch();
gotoxy(18,3);
clreol(); /*刪去游標後字元*/
gotoxy(10,20);printf("任意鍵刪去本行的內容 ");
gotoxy(18,3); getch();
delline(); /*刪去本行*/
gotoxy(10,20);printf("任意鍵在本行插一空行 ");
gotoxy(18,3); getch();
insline(); /*插入一空行*/
gotoxy(1,7);
}
應該注意的是,要發揮本節所講的函數的作用,在顯示時不能使printf函數,應使用cprintf函數。它的使用方法和printf的完全一樣,只不過後面的cprintf能發揮亮度設置和顏色設置的作用。前者
printf函數只有一種顏色和單一的亮度。
在cprintf函數中,「\n」的作用不再是既回到行首又換行,它只起一個換行的作用,所以要把內容在行首顯示必須再加一個「\r」
上面的程序不是一真正對大家有用的程序,只是用來說明一個剛剛學到的幾個函數的作用。在conio.h中還有一些字元型函數,它們都是帶參數的。
9) void textcolor(顏色); 定義顯示字元顏色
10) void textbackground(顏色); 定義背景顏色
下面是顏色數字和顏色對照表
BLACK 0 黑 DARKGRAY 8 深灰
BLUE 1 蘭 LIGHTBLUE 9 淡蘭
GREEN 2 綠 LIGHTGREEN 10 淡綠
CYAN 3 青 LIGHTCYAN 11 淡青
RED 4 紅 LIGHTRED 12 淡紅
MAGENTA 5 洋紅 LIGHTMAGENTA 13 淡洋紅
BROWN 6 棕 YELLOW 14 黃
LIGHTGRAY 7 淡灰 WHILT 15 白
背景顏色值只能是0-7共8個數字或其對應的英文大寫單詞。而前景(即字元)的顏色可以是0-15共16種顏色或其對應的英文大寫單詞。當你定義的前景和背景相同時,屏幕上看不到輸出的內容。
textcolor(4); 和 textcolor(RED); 效果是相同的。
設置屏幕顏色還可以使用
11) void textattr(前景顏色+(背景顏色));
但這里的背景顏色要有「<<4」。如白底紅字,就是:
textattr(RED+(WHITE<<4));
12) int gettext(左上角x,左上角y,右下角x,右下角y,內存指針);
把定義的長方形區域內的內容存在內存中
13) int puttext(左上角x,左上角y,右下角x,右下角y,內存指針);
把內存中存好的內容顯示在新定義的矩形塊內
這里的內存指針也可用字元形數組來代替。需要注意的是內存大小應該是所存內容的「行數*列數*2」。比如把第3行第5列到第6行第75列的數據存到內存中,可以用下面的片段:
char buffer[4*70*2];
gettext(5,3,75,6,buffer);
然後你就可以用puttext函數來顯示它了。
14) void movetext(左上角x,左上角y,右下角x,右下角y,
新左上角x,新左上角y);
把矩形塊移到新左上角(x,y)決定的地方
15) void window(左上角x,左上角y,右下角x,右下角y);
定義一個窗口,大小就是上面參數決定的長方形
利用這一函數,你可以在屏幕上任何一個地方開辟一個窗口,並在上面顯示需要的內容。這絲毫不影響屏幕其它地方的內容。當你定義了窗口後,你只能操作該窗口,gotoxy(),wherex(),wherey(),
clrscr()等等函數所表示的都是你定義窗口中的情況。實際上這就為我們的操作帶來了方便,你想操作哪兒,就定義哪兒,想回到平時狀態的屏幕,就定義一個最大的窗口,window(1,1,80,25);就復原了。
No.33號例子是利用puttext和gettext函數以及顏色定義來模仿CCED和WPS的菜單顯示。但這個小程序沒有可移動的光條,也沒有菜單中內容的相應執行程序,只是演示一下屏幕的保存和釋放而已。
/* No33.c */
#include "conio.h"
#include "stdio.h"
main()
{ int i=1,j,ch;
char buffer[6*50*2]; /*開辟內存空間的大小*/
clrscr();
textcolor(0); /*定義字元顏色*/
textbackground(7); /*定義背景顏色*/
gotoxy(1,1);
cprintf(" 功能1 功能2 功能3 ");
textbackground(0);
textcolor(14);
gotoxy(1,2);
cprintf("What's your name? 你叫什麼名字");
cprintf("\n\rMy name is Wang Dong. 我叫王東.");
cprintf("\n\rHow old are are you? 你多大了 . ");
cprintf("\n\rI'm thirty-four. 我四十四了");
cprintf("\n\r\n\rThis is Lesson One. 這是第一課");
while(1)
{ j=i;
textcolor(0);
textbackground(7);
if(i==1)
{ gettext(1,2,13,5,buffer);
gotoxy(2,2); cprintf("│第一課│");
gotoxy(2,3); cprintf("│第二課│");
gotoxy(2,4); cprintf("│第三課│");
gotoxy(2,5); cprintf("└———┘");
}
if(i==2)
{ gettext(13,2,25,5,buffer);
gotoxy(14,2); cprintf("│菜單一│");
gotoxy(14,3); cprintf("│菜單二│");
gotoxy(14,4); cprintf("│菜單三│");
gotoxy(14,5); cprintf("└———┘");
}
if(i==3)
{ gettext(25,2,37,5,buffer);
gotoxy(26,2); cprintf("│說明A │");
gotoxy(26,3); cprintf("│說明B │");
gotoxy(26,4); cprintf("│說明C │");
gotoxy(26,5); cprintf("└———┘");
}
textcolor(14);
gotoxy(10,20);printf("→向右移動 ←向左移動 Esc 退出");
ch=getch();
if((ch==75)&&(i==1)) /*菜單個數的判斷*/
{ i=3; ch=0;}
if((ch==77)&&(i==3)) /*ASCII碼 77是右箭頭*/
{ i=1; ch=0;}
if((ch==75)&&(i>1)) /*ASCII碼 75是左箭頭*/
i--;
if((ch==77)&&(i<3))
i++;
if(ch==27)
break;
puttext(j*12-11,2,j*12+1,5,buffer);
}
}
您的當前位置是:首頁>>電腦知識>>基本輸入輸出
--------------------------------------------------------------------------------
基本輸入輸出
基本輸入輸出函數
下面要進行的工作是編個程序,你輸入什麼,它就顯示什麼。程序如No.2所示。
main() /* No.2 */
{
char ch[12]; /*定義一個字元串*/
int i; /*定義一個整(數)型變數*/
printf("請輸入一個字元串:"); /*顯示提示信息*/
scanf("%s",ch); /*用輸入函數輸入字元串*/
printf("請輸入一個整數:");
scanf("%d",&i); /*輸入一個整數*/
printf("輸入的字元串是:%s 輸入的數字是%d",ch,i);
}
如果你輸入的字元串是「中華人民共和國」,數字是2000,那麼編譯成EXE文件後執行
請輸入一個字元串:中華人民共和國
請輸入一個整數:2000
輸入的字元串是:中華人民共和國 輸入的數字是2000
怎麼樣?比No.1程序要好一些吧,想顯示什麼就顯示什麼。你還
可以顯示代數式的結果:如把第8行最末尾的數據「i」換成「i*10」
printf("輸入的字元串是:%s 輸入的數字是%d",ch,i*10);
運行程序時,輸出如下:
請輸入一個字元串:中華人民共和國
請輸入一個整數:2000
輸入的字元串是:中華人民共和國 輸入的數字是20000
本程序注釋較多,這樣就增加了程序的可讀性。通過此程序我們應學習哪些知識呢?
第3行和第4行是對數據進行定義,任何一個變數在C 語言中必須先定義才能使用。
第5行和第7行的scanf()是輸入函數,用來輸入用戶信息。其格式是:
scanf("數據格式說明",數據列表);
之所以是「數據列表」,就是說這里的數據,既可以是一個,也可以是多個,既可以是相同格式的數據,也可以是不同格式的數據。
scanf("%s%d",ch,&i);
它說明的含義是讓用戶輸入一個字元串再輸入一個整數,中間用空格分開。
在格式說明中「%s」「%d」是什麼意思呢?「%s」說明輸入的是 字元串,「%d」說明輸入的是整數
注意:C語言中,整數叫「整型數據」。其它格式如下表所示 %d
十進制整數
%o
八進制整數
%x
十六進制整數
%f
小數或指數形式數據
%c
輸入單個字元
上表格式說明也同樣適用於printf()函數。如第8行就是一例。需要注意的是,在輸入數字或單個字元時,數據列表必須用取地址符號,即「&」,而在輸出時則不用。
下面再看一看No.3號程序
main() /*No.3*/
{ int a=5,b=10,c,d;
c=200;
d=a*(b+c);
printf("a*(b+c)=%d",d);
}
在這個小程序里,我們計算了一個小代數式的值,然後輸出了它的值。需要說明的是,第二行中,在定義變數時可以賦初值。也可以象第三行那樣,在定義後再賦初值。
在C語言中,除了整數外,還有無符號整數、實數(浮點數)、長整數、雙清度實數。
在C語言中,整數並不是可以無限大,它的大小是有一定限度的,超過了這個限制,程序就會出錯。大小規定如下表所示:
數據類型
存儲位(bit)
數值范圍
整型 int
16
-32768—32767
無符號整數unsigned
16
0—65535
實數 float
32
10E38—10E38
長整型 long int
32
-2147483648—2147483647
雙精度實數 double
64
10E-308—10E308
我們下面練習一個No.4號程序
main() /* No.4 */
{ int a=1000,b=2500,i1;
long c=1000,b=2500,i2;
i1=a*b;
i2=c*d;
printf("整型數據1000*2500的積是%d\n",i1);
printf("長整型數據1000*2500的積是%ld\n",i2);
}
執行程序,屏幕輸出:
整型數據1000*2500的積是9632
長整型數據1000*2500的積是2500000
上例中,因為整型數據超出了32767的限制,所以出錯。如果計
算結果超過32767,在設計時就應該定義成長整型數據。
今天學習的內容太多了,下面的內容你會多少?
1.輸入函數scanf()和輸出函數printf()的格式是怎樣的?
2.scanf()在輸入字元串時和輸入數字時有什麼區別?
3.輸入輸出時「%s %d %o %x %c %f」表示什麼意思?
4.你能大致了角數字數據類型和最大值最小值嗎?
頭關機以前,你能否再看一眼No.2、No.3、No.4三個程序
您的當前位置是:首頁>>電腦知識>>定位輸出
--------------------------------------------------------------------------------
定位輸出
在系統程序中,顯示內容是方便的,任何一個位置都可以顯示,
那麼,我們怎樣隨意顯示輸出內容呢?在C語言中,游標定位用:
gotoxy(列坐標,行坐標);
下面的No.5例子就是它的具體應用:
/* No5.c*/
#include "stdio.h" /*連入頭部文件stdio.h*/
main()
{
char ch; int i;
gotoxy(10,4); /*把游標定位在(10,4)坐標處*/
printf("輸入一個字元,它便以大寫的形式輸出 ");
ch=getchar(); /*用getchar()函數輸入一個字元*/
if ((ch>='a') && (ch<='z'))
ch=ch-32;
gotoxy(10,7);
printf("輸入一個整數,便把它大1和小1的數輸出 ");
scanf("%d",&i);
gotoxy(15,13); printf("你輸入的字元大寫為%c",ch);
gotoxy(15,14);
printf("你輸入的%d兩側的數分別為%d,%d",i,i-1,i+1);
}
第1行是在編譯時把stdio.h連入程序文件。具體作用見No.6解釋
在上程序的第4行中,兩類數據定義佔了一行,這是允許的。C語
言程序寫法是很隨便的,它可以一行一句,也可以一行寫多句,上例
的第13行也是這樣書寫的。不過一般情況下我們不這樣寫。為了程序
在檢查和閱讀時方便,我們一般一行寫一句,而且程序中一個層次的
內容和另一個層次的內容使用縮格排版格式。如上程序的main()函數
上例中的if()語句等。以後程序中層次越多,越應該形成這樣的好習
慣。
如果你輸入的字元是m,數字是11,則屏幕輸出如下:
輸入一個字元,它便以大寫的形式輸入 m
輸入一個整數,便把它大1和小1的數輸出 11
你輸入的字元大寫為M
你輸入的11兩側的數分別為10,12
在No.5程序中出現了一個新的函數,它是字元輸入函數,它的作用是只輸入一個字元。
除了它,還有兩個字元輸入函數,如右表
getchar()
字元顯示,回車鍵結束
getche()
字元顯示,不必按回車
getch()
字元不顯示,不必按回車
上述三個字元輸入函數使用時沒有參數,即()中沒有內容。
在C語言中,字元也有大小,它按ASCII表中的值排列大小。可以
進行字元間及字元與數字間的運算。如上例的「ch=ch-32;」。比較
字元大小時,可用字元直接比較,如上例的第7行那樣;也可以用數
值進行比較,上第7行可改為:
if ((ch>=97) && (ch<=122))
上一行是程序中的條件語句,它的簡單格式是
if(條件表達式)
{ 內容1;}
else
{ 內容2;}
如果條件表達式成立,執行內容1,不成立則執行內容2。else語
句可有可無。當執行內容只有一行時,可以省略內容兩側的「{ }」
上述程序的執行內容就沒有「{ }」
在上例的「if ((ch>='a') &&(ch<='z'))」中「&&」是邏輯運
算符,邏輯運算符如下表所示
&&
邏輯與
||
邏輯或
!
邏輯非
任何時候,學習都是為了應用。下面我們編寫一個電子表程序:
/* No6.c */
# include "stdio.h" /*連入頭部文件stdio.h*/
# include "dos.h" /*連入頭部文件dos.h*/
main()
{ struct time t; /*定義時間變數 t */
struct date d; /*定義日期變數 d */
clrscr(); /*清屏*/
getdate(&d); /*獲取當前日期*/
gotoxy(33,4);
printf("%d.%d.%d",d.da_year,d.da_mon,d.da_day);
while(!kbhit()) /*如果沒有按鍵,則執行下面內容*/
{ gotoxy(34,6);
gettime(&t); /*獲取當前時間*/
printf("%d:%d:%d",t.ti_hour,t.ti_min,t.ti_sec);
}
}
C語言程序特別靈活,它可以把別的程序或文件中的內容,連入
到你的程序中,在C語言中已經有許多我們用到的內容放在了頭部文
件中,本例中就是利用了"dos.h"頭部文件中的時間和日期的定義。
這種連入,既可以是C語言內部的頭部文件(*.h),也可以是你自已
寫的文件。你自己被連入的文件既可以是「*.h」文件,也可以是
「*.c」文件。文件連入寫法有兩種:
#include "dos.h" 用這種寫法 dos.h 文件放在當前目錄中
#include <dos.h> 用這種寫法 dos.h 文件放在TC\INCLUDE目
錄中。
第6行中「clrscr();」是清屏函數,它不帶參數,作用:清屏
第11行的「kbhit()」函數是用來檢測用戶是否按了鍵,但它不
能測試出你按的什麼鍵。要知道按的是什麼,必須和輸入函數配合使
用。
第11行有「while(!kbhit())」是個循環語句,它的意思是:只
要沒有按鍵,程序便執行{...}所括的內容。
本節內容提綱如下:
1.游標定位:gotoxy(列從標,行坐標);
2.getchar()、getcha()、getch()三個字元輸入函數輸入時情況
是不同的,一個是游標是否回顯,一個是是否用回車結束
3.if(...) 如果...便執行{...}中的內容
4. &&邏輯與,||邏輯或,!邏輯非
5.#include "..." 把...文件和主程序連在一起編譯
6.kbhit()測試按鍵是否按
您的當前位置是:首頁>>電腦知識>>使用文件
--------------------------------------------------------------------------------
使用文件
到此為止,我們仍停留在屏上,一些需要的東西還不能做為資料保存。要想把你看到的保留下來,就得把資料存儲在磁碟文件中,本節我們用兩個例子來學習使用文件。
No.7程序是模仿DOS命令中的程序。
/* No7.c */
#include "stdio.h" /*連入stdio.h*/
main(int argc,char *argv[]) /*帶參數的程序(帶命令行參數)*/
{
char ch;
FILE *in,*out; /*定義文件指針*/
if(argc!=3) /*如果命令行數目不等於3*/
{ printf("格式應該是: No7 源文件名 目標文件名\n");
exit(1); } /*退出程序*/
if((in=fopen(argv[1],"r"))==NULL) /*打開源文件*/
{ printf("文件不存在或磁碟沒准備好!\n");
exit(1); }
if((out=fopen(argv[2],"w"))==NULL)
{ printf("文件復制失敗!\n");
exit(1); }
while((ch=fgetc(in))!=EOF) /*如果讀出的數據不是結尾標志*/
fputc(ch,out); /*把讀出的數據寫到目標文件中*/
fclose(in); /*關閉文件*/
fclose(out);
printf(" 1 個文件復製成功 \n");
}
上述程序的主程序是帶參數的,argc表示命令行的元素個數,argv[],用來接收程序所帶的參數。這些參數的接收都是在執行程序時自動完成的。如用上常式序把名為「HEBEI」文件,復制到名為「BEIFEN」的文件,命令行應執行:
no7 hebei beifen
執行後,argc值為3,argv[1]成為「hebei」,argv[2]賦值為「beifen」。
上例中「exit(1);」表示退出程序的執行,返回到DOS提示符。
文件打開格式用
文件指針=fopen(文件名,"打開方式");
if((in=fopen(argv[1],"r"))==NULL) 意思是「如果文件打開失敗」,則... ...
打開方式中「r」是打開文件後,只能從文件中讀取信息。「w」是打開文件後,只能從文件中寫信息。下面是打開方式及功能列表
r
打開一個文本文件讀
rb
打開一個二進制文件讀
w
打開一個文本文件寫
wb
打開一個二進制文件寫
a
打開一個文本文件添加
ab
打開一個二進制文件添加
r+
打開一個文本文件讀寫
r+b
打開一個二進制文件讀寫
w+
生成一個文本文件讀寫
w+b
生成一個二進制文件讀寫
a+
打開或生成文本文件讀寫
a+b
打開或生成二進制文件讀寫
「fclose(文件指針);」用來關閉已打開的文件。 如上面的
fclose(in); fclose(out); 就是應用。
fgetc(文件指針); 從文件中讀取一個字元。
fputc(字元,文件指針); 把字元寫到文件中去。
EOF是文件結束標志。
下面我們編個簡易的文本文件閱讀器,它相當於DOS中的「type 文件名 | more」,也就是分頁顯示文本文件。
/*No8.c*/
#include "stdio.h"
main(int argc,char *argv[])
{
FILE *fp;
int i=1;
char ch;
if(argc<2) /*如果命令行參數少於兩個*/
{ printf("正確使用方法是: no8 文本文件名");
exit(1);} /*退出*/
if((fp=fopen(argv[1],"r"))==NULL) /*如果文件打開失敗*/
{ printf("%s 不存在",argv[1]);
exit(1);}
else
{ clrscr(); /*清屏*/
while((ch=fgetc(fp))!=EOF) /*讀取文件中的字元*/
{ printf("%c",ch); /*顯示讀出的字元*/
if(ch=='\n') /*如果讀出的字元是回車*/
i++;
if(i>=23) /*如果行數到24行*/
{ printf("Any key to continue......\n");
i=1;
getch(); /*輸入任一個字元*/
}
}
}
fclose(fp);
}
本例中沒有什麼更難理解的。需要提醒大家的是:在程序中你打開一個文件後,別忘了在結束程序之前,一定要把打開的文件關閉。
在上述程序中,使用了條件語句中的else語句。在使用else語句時,如果語句不
㈡ java jpanel 添加不上去jbutton組
沒有看出來有問題。
運行也是正常的,如圖:
你的代碼應該沒有問題。
確認下你的運行環境吧。
請採納,謝謝。
㈢ 手機存儲空間已滿怎麼清除
關閉後台運用,在手機界面,向上滑動手機底部,調出後台運用,退出不用的程序或點擊刪除圖標全部清除;清理緩存數據,這里以qq為例,打開qq,點擊頭像,設置,通用,存儲空間管理,清空緩存。
優化知識
查看系統內存
怎麼看系統的系統內存, 很多人會用文件管理軟體來看,這樣看是看不到的,看到的只是存儲空間的大小。運行內存一般使用進程管理之類的軟體來查看。
釋放內存入門
1、剛開機的時候的內存是最大的,所以一般重新開機可以達到手機現有狀態下的最大的運行內存。
2、用軟體直接釋放內存,可以釋放一部分運行內存,但非常有限。
3、如果你剛開機後的內存都非常小,那麼就需要優化你的機器了優化有如下方法:
1)如果你的機器太亂了,那麼最好格式化你的機器,保持最干凈的系統,你也可以看看這個時候你的最大運行內存是多少。
2)盡量少裝開機自啟動的軟體,這些軟體開機就自動運行並且常駐內存,例如:來電大頭貼、防火牆、增強情景模式、自動鎖鍵盤等等。
3)盡量不要裝其它字體文件。字體文件開機也會載入到內存中,而且字體容量比較大,一下就會出掉很多內存。
以上內容參考:網路-手機系統內存
㈣ 計算機上的「CE」是什麼鍵
「CE」鍵是清除鍵,可清除顯示的數字,但對前面的運算和輸入沒有影響。
㈤ 格手機和存儲卡要先將存儲卡取出先格手機然後再格存儲卡嗎
正確安全的格式化方法:先用手機格卡,再格機。
存儲卡插上手機,在手機上格式化存儲卡,然後取出存儲卡(或者不取出)再格式化手機,如果是諾基亞智能機,先格式化手機而沒有格式化存儲卡,手機會搜索存儲卡上文件自動安裝格式掉的程序。
㈥ 現在很多計算器上儲存、取存、累存、積存、清存都怎麼用,跟M+ M- MR MC啥關系,請舉個例子詳細說明下,謝
儲存:將當前值存到暫存器
取存(MR):將暫存器的值取出
累存(M+):把當前值與存儲器的暫存值相加,再存入暫存器,注意與"儲存"的區別
積存:把當前值與存儲器的暫存值相乘,再存入暫存器
清存:(MC)memory clear
如"累存(M+)":
當你要計算一大堆貨物的總價,又怕把其中的加法,乘法的混合運算搞混時:
sum=150×3+43×5...........
就可以在每次做乘法運算後將其結果累存到暫存器中
㈦ 計算器上的是開關、清屏鍵、清除鍵是什麼
計算器上的清除鍵是CE鍵,開關鍵是ON、OFF鍵,清屏鍵是C鍵。
CE鍵可以清除當前輸入的數字,但並不清除計算結果,比如輸入2+3時,發現3按成了4,可以按CE鍵,這時只清除「4」,保留了「2+」,只需再輸入3,然後按=即可。
C鍵是將輸入的全部內容刪除,比如輸入2+3,當按3時按錯了,這時使用ON/C鍵,就把全部的數據都清除了,需要再把2+3全部重新按一遍。
(7)存儲取存退格清屏擴展閱讀
計算器的其他功能鍵
1、輸入鍵:0-9;+/-:正負轉換鍵。
2、運算功能鍵:
+-*/(注意:加、減、乘、除鍵在計算時都可能代替等號鍵)
√:開平方鍵,用來進行開平方運算,先輸入數字,再按下此鍵,不必按等號鍵即可得出結果。
4、等號鍵:=。
5、清除鍵
AC或CA鍵:全部清除鍵,也叫總清除鍵,作用是將顯示屏所顯示的數字全部清除。
→:右移鍵,其功能是熒屏值向右位移,刪除最右邊的尾數。
CE:部分清除鍵,也叫更正鍵。其功能是清除當前輸入的數字,而不是清除以前輸入的數。如剛輸入的數字有誤,立即按此鍵可清除,待輸入正確的數字後,原運算繼續進行。
如5+13,這時發現「13」輸入錯了,則按「CE」鍵就可以清除剛才的「13」,但還保留「5」這個數。值得注意的是,在輸入數字後,按「+」、「-」、「/」、「*」鍵的,再按「CE」鍵,數字不能清除。
MC:累計清除鍵,也叫記憶式清除鍵,其功能是清除儲存數據,清除存儲器內容,只清除存儲器中的數字,內存數據清除,而不是清除顯示器上的數字。
㈧ phantomjs有什麼命令可以清屏或者退格在CMD運行的時候數據顯示有點亂。
Windows 命令提示符(cmd.exe)是 Windows NT 下的一個用於運行 Windows 控制面板程序或某些 DOS 程序的shell程序;或在 Windows CE 下只用於運行控制面板程序的外殼程序。
㈨ 如何清理手機存儲空間
如何清理手機存儲空間呢?
電子時代的發展是日新月異,手機的更新換代速度也是越來越快。
我們慢慢會發現,自己的手機越來越不給力,安裝不了幾個軟體程序手機就裝滿了,還總是提醒我們"存庫空間不足"。
那麼,我們該如何清理手機里的垃圾,保證手機的順暢運行呢?
一、如果手機空間已經很小,手機會自動提醒你,要清理手機空間。我們點擊手機的提醒後,進入到清理界面,並依次進行清理:
1.照片清理。主要清理方式包括:
1)直接刪除不要的照片
2)將照片轉移到其他位置(如電腦、硬碟、雲相冊、網盤等)以後再刪除,一般可以使用藍牙或數據線進行轉移。
2.卸載應用程序。對於不想要或不常用的程序,我們可以直接進行卸載。
3.清除應用數據。
如果已經沒有要卸載的程序了,我們可以選擇清理這些應用的數據,尤其是數據很多的程序,可以進行"瘦身"。
清理數據後我們的賬戶數據也會一並被清除,需要重新登陸一下。
需要注意的是,清除數據前,要先保存好重要的數據(如:微信接收的圖片、視頻等)。
4.刪除大文件,包括視頻(或視頻緩存文件)、PDF文件等。來源主要包括:
1)通過手機藍牙或電腦(微信電腦版、藍牙等)發送到手機的文件
2)通過手機下載文件
5.安裝包清理。
1)有些安裝包下載後從未安裝過,確認不需要安裝的話可以直接刪除
2)安裝完成後的安裝包,是可以刪除的。
二、如果系統沒有提醒"存儲空間不足",我們想提前卸載程序時,可以按照以下步驟依次操作:
1.點擊"設置"圖標。
2.手機向下查找到選項,找到並選擇"更多應用"。
3.進入程序管理界面後,可以選擇查看程序的排序方式,我們最常用的是選擇"按存儲空間"或"按安裝時間"來排序。
4.點擊要卸載的程序,在程序查看界面我們可以進行"結束運行"、"卸載"、"清除數據"等操作。同時,點擊"存儲佔用"選項,我們可以查看程序構成。
注意事項
如果是因為換手機而清理空間,為減少不必要的麻煩,建議先將各個程序里的手機號碼現變更為新手機號碼以後,再進行清理。
長期使用手機,手機內部容易累計垃圾,那麼以上就是如何清理手機存儲空間的全部內容,希望對大家有所幫助!
㈩ 高分求作一個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