ATM取款機系統(tǒng)學(xué)生學(xué)籍管理系統(tǒng)實現(xiàn)及代碼C語言版最終完成版_第1頁
ATM取款機系統(tǒng)學(xué)生學(xué)籍管理系統(tǒng)實現(xiàn)及代碼C語言版最終完成版_第2頁
ATM取款機系統(tǒng)學(xué)生學(xué)籍管理系統(tǒng)實現(xiàn)及代碼C語言版最終完成版_第3頁
ATM取款機系統(tǒng)學(xué)生學(xué)籍管理系統(tǒng)實現(xiàn)及代碼C語言版最終完成版_第4頁
ATM取款機系統(tǒng)學(xué)生學(xué)籍管理系統(tǒng)實現(xiàn)及代碼C語言版最終完成版_第5頁
已閱讀5頁,還剩55頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、 XXXX大學(xué)課 程 設(shè) 計課程名稱: 程序設(shè)計語言課程設(shè)計 設(shè)計題目: ATM取款機系統(tǒng)實現(xiàn)及分析經(jīng)典程序代碼 學(xué) 院: 信息工程與自動化學(xué)院 專 業(yè): 計算機科學(xué)與技術(shù) 年 級: 學(xué)生姓名: 指導(dǎo)教師: 日 期: 教 務(wù) 處 制 課 程 設(shè) 計 任 務(wù) 書 學(xué)院 專業(yè) 年級學(xué)生姓名: 學(xué)號: 課程設(shè)計題目: ATM取款機系統(tǒng)實現(xiàn)及分析經(jīng)典程序代碼 課程設(shè)計主要內(nèi)容:(1)、讀程序。要求學(xué)生讀兩個200行以上的程序,貪吃蛇、學(xué)生學(xué)籍管理系統(tǒng)。通過讀程序,學(xué)生應(yīng)了解大型程序的編寫方法、程序的整個結(jié)構(gòu)及框架設(shè)計、變量命名的規(guī)范、程序的書寫規(guī)范、及常見問題的算法實現(xiàn)。(2)、寫程序。要求學(xué)生完成一

2、個管理類的綜合型設(shè)計:如銀行ATM模擬存取系統(tǒng)。要求學(xué)生進行數(shù)據(jù)結(jié)構(gòu)的設(shè)計、對函數(shù)進行模塊化結(jié)構(gòu)化設(shè)計、并靈活運用數(shù)組、結(jié)構(gòu)體、指針、文件等多種數(shù)據(jù)類型設(shè)計開發(fā)系統(tǒng)。通過寫程序,學(xué)生應(yīng)掌握用計算機程序設(shè)計語言解決實際問題的方法、步驟。該系統(tǒng)應(yīng)該具有以下功能:1)賬戶管理功能a) 開戶:完成賬戶注冊的功能。即輸入賬戶的相關(guān)信息。要求賬戶號長度12位,密碼長度不得低于6位,必須使用暗碼,賬戶信息保存到數(shù)組中,賬戶信息最后保存到相關(guān)文件中;b) 賬戶登錄:輸入賬戶、密碼,驗證是否能夠登錄該系統(tǒng);c)密碼修改:輸入兩次相同的密碼方可修改。2)賬務(wù)管理功能a) 存款:每筆存款金額大于0元小于等于1000

3、元,以50元為基本單位。需記錄交易日期和時間。b) 取款:每筆取款金額大于等于100元小于等于2000元,以50元為基本單位。需記錄交易日期和時間。c) 轉(zhuǎn)賬:每筆轉(zhuǎn)賬金額大于等于100元小于等于5000元。需記錄交易日期和時間。3)查詢功能a) 存款記錄查詢b) 取款記錄查詢c) 轉(zhuǎn)賬記錄查詢d) 余額查詢4)文件功能及其它功能:數(shù)據(jù)都應(yīng)保存在相關(guān)文件中。設(shè) 計 指 導(dǎo) 教 師 (簽字): 教學(xué)基層組織負(fù)責(zé)人(簽字): 年 月 日 目錄一、讀程序題部分(貪吃蛇) 1、程序的功能第5頁2、主函數(shù)分析第5頁3、函數(shù)的調(diào)用關(guān)系第5頁4、數(shù)據(jù)變量定義作用第5頁5、主要函數(shù)的功能、流程圖第5頁6、程序

4、的不足及改進第7頁7、加上注釋、改進后的完整代碼第7頁二、讀程序題部分(學(xué)生學(xué)籍管理系統(tǒng)) 1、程序的功能第13頁2、主函數(shù)分析第13頁3、函數(shù)的調(diào)用關(guān)系第13頁4、數(shù)據(jù)變量定義作用第14頁5、主要函數(shù)的功能、流程圖第14頁6、程序的不足及改進第15頁7、加上注釋、改進后的完整代碼第16頁三、編程題部分1、設(shè)計內(nèi)容第23頁2、設(shè)計 第23頁(1)數(shù)據(jù)分析 第23頁(2)程序流程分析 第24頁3、編碼及調(diào)試 第34頁4、程序運行截圖 第53頁四、總結(jié)與體會 第58頁五、參考文獻 第60頁一、讀程序題部分(貪吃蛇) 1、程序的功能 設(shè)計游戲界面,包括畫墻、畫蛇、畫食物,并且設(shè)置蛇和食物的屬性,編寫

5、蛇的運動方式和游戲方式。2、主函數(shù)分析 主函數(shù)中前兩行與編寫圖形程序有關(guān),第三行中調(diào)用Speed函數(shù),把Speed函數(shù)的返回值付給變量speed;第五行dwall函數(shù)的作用是畫墻,函數(shù)中又調(diào)用wall函數(shù)來畫墻上的磚塊3、函數(shù)的調(diào)用關(guān)系4、數(shù)據(jù)變量定義作用定義食物的橫坐標(biāo)food.x和食物的縱坐標(biāo)food.y可以有效的隨機設(shè)置食物出現(xiàn)在界面的任何地方;定義snake.life表示蛇的生死以否,好判斷是否結(jié)束游戲snake.dir=1;/*方向向右*/定義snake.x0和 snake.y0表示蛇頭的坐標(biāo),在后面蛇撞墻死的問題上用的到蛇頭的坐標(biāo);定義蛇的節(jié)數(shù)snake.node,方便蛇每吃到食物

6、節(jié)數(shù)增加; 定義snake.level,顯示蛇的闖關(guān)數(shù)5、主要函數(shù)的功能、流程圖主函數(shù)功能:dwall():畫墻wall():畫組成墻的磚Speed():選擇貪吃蛇的速度line():畫線函數(shù),畫磚的線條gotoxy():定位坐標(biāo)Play():調(diào)用各函數(shù),開始完游戲GameOver():結(jié)束游戲流程圖:6、程序的不足及改進 (1)不足:沒有障礙墻,游戲過于簡單;沒有游戲獎勵,游戲趣味性不高;改進:設(shè)置障礙墻,蛇撞到墻也死;代碼:設(shè)置障礙墻for(j=200;j<=300;j+=10) wall(j,300);/*畫橫的障礙墻*/for(j=300;j<=350;j+=10) wal

7、l(300,j);/*畫豎的障礙墻*/ 蛇撞到障礙墻死的代碼 if(snake.y0=300&&snake.x0>200&&snake.x0<=300) /*蛇是否撞到橫的障礙墻*/ GameOver();/*游戲結(jié)束*/ snake.life=1; /*蛇死*/ break; if(snake.x0=300&&snake.y0>300&&snake.y0<=350) /*蛇是否撞到豎的障礙墻*/ GameOver();/*游戲結(jié)束*/ snake.life=1; /*蛇死*/ break; (2)不足:沒

8、有游戲獎勵,游戲趣味性不高;改進:增加生命值,蛇每吃到三顆食物,則增加一個生命值;代碼:定義food.level,在Play函授中初始化,在設(shè)置蛇每吃到一顆食物就增長一節(jié)身體的代碼后加上if(snake.node%3=0) snake.level+; /*除第一關(guān)外,其余每吃3 顆食物,就增加一個生命值*/ gotoxy(5,2); printf("The level is %d",snake.level); /*左上角顯示出生命值(級別)*/ 7、加上注釋、改進后的完整代碼#include <graphics.h>#include <stdlib.h&g

9、t;#include <dos.h>#include<conio.h>#define LEFT 0x4b00#define RIGHT 0x4d00#define DOWN 0x5000#define UP 0x4800#define ESC 0x011b#define N 100/*貪吃蛇的最大長度*/#define P 0x1970/*定義暫停功能鍵*/int i,key;int speed;/*游戲速度*/struct FOOD int x;/*食物的橫坐標(biāo)*/ int y;/*食物的縱坐標(biāo)*/ int flag;/*標(biāo)志是否要出現(xiàn)食物*/food;struct

10、Snake int xN; int yN; int node;/*蛇的節(jié)數(shù)*/ int dir;/*蛇移動方向*/ int life;/*標(biāo)志是死是活*/ int level;/*定義生命值(級別)*/snake;void GameOver();/*結(jié)束游戲*/void Play();/*玩游戲過程*/void dwall();/*畫墻*/void wall(int x,int y);/*畫組成墻的磚*/int Speed();/*選擇貪吃蛇的速度*/main() int gdriver=DETECT,gmode; initgraph(&gdriver,&gmode,"

11、;"); speed=Speed();/*將函數(shù)返回值賦給speed*/ cleardevice();/*清屏*/ dwall();/*開始畫墻*/ Play();/*開始完游戲*/ getch(); closegraph();/*退出圖形界面*/void wall(int x,int y) int sizx=9; int sizy=9; setcolor(15);/*白色畫磚的上邊和左邊*/ line(x,y,x+sizx,y); line(x,y+1,x+sizx-1,y+1); line(x,y,x,y+sizy); line(x+1,y,x+1,y+sizy-1); setc

12、olor(4);/*紅色畫磚的右面和下面*/ line(x+1,y+sizy,x+sizx,y+sizy); line(x+2,y+sizy-1,x+sizx,y+sizy-1); line(x+sizx-1,y+2,x+sizx-1,y+sizy-1); line(x+sizx,y+1,x+sizx,y+sizy); setfillstyle(1,12);/*用淡紅色填充磚的中間部分*/ bar(x+2,y+2,x+sizx-2,y+sizy-2);void dwall()/*用前面畫好的磚來畫墻*/int j;for(j=50;j<=600;j+=10) wall(j,40);/*畫

13、上面墻*/ wall(j,451);/*畫下面墻*/for(j=40;j<=450;j+=10)wall(50,j);/*畫左面墻*/wall(601,j);/*畫右面墻*/for(j=200;j<=300;j+=10) wall(j,300);/*畫橫的障礙墻*/for(j=300;j<=350;j+=10) wall(300,j);/*畫豎的障礙墻*/int Speed()/*選擇貪吃蛇運行的速度*/ int m;gotoxy(20,10); printf("level 1n"); gotoxy(20,12); printf("level 2

14、n"); gotoxy(20,14); printf("level 3n"); gotoxy(20,16);/*增加一個速度選項*/ printf("level 4nttplease choose:"); scanf("%d",&m); switch(m) case 1:return 60000; case 2:return 40000; case 3:return 20000; case 4:return 10000; default: cleardevice(); Speed(); void Play(void)

15、/*游戲?qū)崿F(xiàn)過程*/ srand(unsigned long)time(0); food.flag=1;/*1表示需出現(xiàn)新食物,0表示食物已存在*/ snake.life=0;/*標(biāo)志貪吃蛇活著*/ snake.dir=1;/*方向向右*/ snake.x0=300;snake.y0=240;/*定位蛇頭初始位置*/ snake.x1=300;snake.y1=240; snake.node=2;/*貪食蛇節(jié)數(shù)*/ snake.level=1; /*生命值(級別)初始化*/ do while(!kbhit()/*在沒有按鍵的情況下,蛇自己移動身體*/ if(food.flag=1)/*需要出現(xiàn)

16、新食物*/ do food.x=rand()%520+60; food.y=rand()%370+60; food.flag=0;/*標(biāo)志已有食物*/ while(food.x%10!=0|food.y%10!=0); if(food.flag=0)/*畫出食物*/ setcolor(WHITE);/*設(shè)置食物的顏色*/ setlinestyle(3,0,3); rectangle(food.x,food.y,food.x+10,food.y+10); for(i=snake.node-1;i>0;i-)/*實現(xiàn)蛇向前移動*/ snake.xi=snake.xi-1; snake.yi=

17、snake.yi-1; switch(snake.dir) case 1:snake.x0+=10;break;/*向右移*/ case 2: snake.x0-=10;break;/*向左移*/ case 3: snake.y0-=10;break;/*向上移*/ case 4: snake.y0+=10;break;/*向下移*/ for(i=3;i<snake.node;i+) if(snake.xi=snake.x0&&snake.yi=snake.y0)/*判斷蛇是否吃到自己*/ GameOver();/*游戲結(jié)束*/ snake.life=1;/*蛇死*/ b

18、reak; if(snake.x0<60|snake.x0>590|snake.y0<50| snake.y0>440)/*蛇是否撞到墻壁*/ GameOver();/*游戲結(jié)束*/ snake.life=1; /*蛇死*/ break; if(snake.y0=300&&snake.x0>200&&snake.x0<=300) /*蛇是否撞到橫的障礙墻*/ GameOver();/*游戲結(jié)束*/ snake.life=1; /*蛇死*/ break; if(snake.x0=300&&snake.y0>

19、300&&snake.y0<=350) /*蛇是否撞到豎的障礙墻*/ GameOver();/*游戲結(jié)束*/ snake.life=1; /*蛇死*/ break; if(snake.x0=food.x&&snake.y0=food.y)/*判斷是否吃到食物*/ setcolor(0);/*用背景色遮蓋調(diào)食物*/ rectangle(food.x,food.y,food.x+10,food.y+10); snake.node+;/*蛇的身體長一節(jié)*/ if(snake.node%3=0) snake.level+; /*除第一關(guān)外,其余每吃3 顆食物,就增

20、加一個生命值*/ gotoxy(5,2); printf("The level is %d",snake.level); /*左上角顯示出生命值(級別)*/ food.flag=1;/*需要出現(xiàn)新的食物*/ setcolor(YELLOW);/*畫蛇(設(shè)置蛇的顏色)*/ for(i=0;i<snake.node;i+) setlinestyle(0,0,1); rectangle(snake.xi,snake.yi,snake.xi+10, snake.yi+10); delay(speed); setcolor(0);/*用背景色遮蓋蛇的的最后一節(jié)*/ rectan

21、gle(snake.xsnake.node-1,snake.ysnake.node-1, snake.xsnake.node-1+10,snake.ysnake.node-1+10); /*endwhile(!kbhit)*/ if(snake.life=1)/*如果蛇死就跳出循環(huán)*/ break; key=bioskey(0);/*接收按鍵*/ if(key=UP&&snake.dir!=4)/*判斷是否往相反的方向移動*/ snake.dir=3; else if(key=DOWN&&snake.dir!=3)/*判斷是否往相反的方向移動*/ snake.d

22、ir=4; else if(key=RIGHT&&snake.dir!=2)/*判斷是否往相反的方向移動*/ snake.dir=1; else if(key=LEFT&&snake.dir!=1)/*判斷是否往相反的方向移動*/ snake.dir=2; else if(key=P) getch();/*若按P鍵,則游戲暫停*/ while(key!=ESC);/*ESC鍵退出游戲*/void GameOver(void) cleardevice(); setcolor(RED); settextstyle(0,0,4); outtextxy(50,200,&

23、quot;GAME OVER,BYE BYE!"); sleep(3);二、讀程序題部分(學(xué)生學(xué)籍管理系統(tǒng)) 1、程序的功能 輸入并保存多個學(xué)生的學(xué)號、姓名、分?jǐn)?shù)的信息,可以查詢、添加或刪除其中任意學(xué)生的信息。而且,統(tǒng)計出學(xué)生的平均成績,找出并顯示最高分和最低分學(xué)生的信息。2、主函數(shù)分析主函數(shù)里的的第二行用了一個無限循環(huán)語句for(;) ,故而,后面肯定有肯定有跳出循環(huán)的語句exit(0);下面用了swich語句,其判斷式為menu函數(shù)的返回值。根據(jù)返回值調(diào)用對應(yīng)的功能函數(shù),執(zhí)行其對應(yīng)的操作。3、函數(shù)的調(diào)用關(guān)系4、數(shù)據(jù)變量定義作用在結(jié)構(gòu)體中定義char num 、char name、

24、int score分別表示學(xué)生的學(xué)號、姓名、成績;在menu函數(shù)中定義c,把輸入的數(shù)值賦給c,用c作為函數(shù)的返回值,執(zhí)行對應(yīng)的操作;在Query_a_record函數(shù)中定義char s20用以存放執(zhí)行查詢功能時輸入的姓名字符;在Statistic 函數(shù)中定義k,j,在分?jǐn)?shù)的循環(huán)比較中把stud.score中的兩個最值在數(shù)組元素里的排列號數(shù)分別賦給j和k,以便找到并輸出最高分和最低分學(xué)生的信息;定義aver做學(xué)生的平均值的變量名;在AddfromText函數(shù)里定義文件指針fp用以指向保存記錄的文件,以便能找到并打開文件;在WritetoText函數(shù)里定義文件指針fp用以指向?qū)⒈4嬗涗浀奈募?、

25、主要函數(shù)的功能、流程圖主要函數(shù)的功能: menu() :菜單函數(shù),返回數(shù)字選項值 Input() :輸入并記錄學(xué)生的信息 Display():顯示學(xué)生的信息 Query_a_record() :查找并顯示一個學(xué)生的記錄 Insert_a_record() :插入一條記錄 Delete_a_record() :按學(xué)生姓名查找,刪除一條記錄 Sort_by_num() :按學(xué)號排序多條記錄 Statistic():統(tǒng)計信息,輸出記錄的條數(shù),學(xué)生的平均分,最高分和最低分學(xué)生的信息 WritetoText() :將所有記錄保存至文件 AddfromText() :從文件中讀入數(shù)據(jù)流程圖:開始調(diào)用men

26、u函數(shù)輸入選項值賦給cc<'0'|c>'9' Y N根據(jù)返回值對應(yīng)的 功能調(diào)用相應(yīng)的函數(shù)執(zhí)行相應(yīng)的操作功能執(zhí)行完后,再次選擇功能menu()的返回值為0 N Y 結(jié)束6、程序的不足及改進(1)不足:在第七個功能中,最高分的學(xué)生被顯示成最低分,而最低分學(xué)生被顯示成最高分。 改進:調(diào)換一下兩處的代碼位置 (2)不足:在Sort_by_num函數(shù)中,用冒泡法學(xué)號排序的代碼有些繁雜,改用簡便些的代碼void Sort_by_num(Student stud,int n) /*按學(xué)號排序*/ int i,j; Student temp;/*(改動)*/ cha

27、r t10; for(i=0;i<n-1;i+) for(j=0;j<n-1-i;j+) if(strcmp(studj.num,studj+1.num)>0) temp=studj; studj=studj+1;/*(改動)把學(xué)號較小的學(xué)生排到后面*/studj+1=temp; (3)不足:保存的文件不能讀入數(shù)據(jù) 改進:增加一個讀入數(shù)據(jù)的功能,AddfromText函數(shù),在主函數(shù)中增加如下代碼,個別地方再稍作改動 case 9: printf("tttOpen a Text filen"); AddfromText(stu,n); /*循環(huán)讀入數(shù)據(jù)*/

28、printf("ttt"); system("pause"); break;7、加上注釋、改進后的完整代碼#include<stdio.h> /*引用庫函數(shù)*/#include<stdlib.h>#include<string.h>typedef struct /*定義結(jié)構(gòu)體數(shù)組*/ char num10; /*學(xué)號*/ char name20; /*姓名*/ int score; /*成績*/Student;Student stu80; /*結(jié)構(gòu)體數(shù)組變量*/int menu() /*菜單函數(shù)*/ char c; d

29、o system("cls"); /*每次選擇運行前清屏*/ printf("tt *我的學(xué)生管理系統(tǒng)菜單*nn"); /*菜單選擇*/ printf("tt *| 1. 輸入學(xué)生信息 |n"); printf("tt *| 2. 顯示學(xué)生信息 |n"); printf("tt *| 3. 查找 |n"); printf("tt *| 4. 插入學(xué)生信息 |n"); printf("tt *| 5. 刪除學(xué)生 |n"); printf("tt *

30、| 6. 排序 |n"); printf("tt *| 7. 統(tǒng)計分?jǐn)?shù) |n"); printf("tt *| 8. 保存至文件 |n"); printf("tt *| 9. 從文件讀入數(shù)據(jù) |n");/*增加一個選項*/ printf("tt *| 0. 退出 |n"); printf("tt*n"); printf("ttt請作出選擇(0-8):"); c=getchar(); /*讀入選擇*/ while(c<'0'|c>'

31、9'); return(c-'0'); /*c變?yōu)榭蘸蠓祷刂匦逻x擇*/int Input(Student stud,int n) /*輸入若干條記錄*/ int i=0; char sign; /* x10為清除多余的數(shù)據(jù)所用*/ while(sign!='n'&&sign!='N') /*判斷*/ printf("ttt輸入學(xué)生學(xué)號:"); /*交互輸入*/ fflush(stdin); /*以下都為清除多余的輸入*/ scanf("ttt%s",studn+i.num); pri

32、ntf("ttt輸入學(xué)生姓名:"); fflush(stdin); scanf("ttt%s",studn+); printf("ttt輸入學(xué)生分?jǐn)?shù):"); fflush(stdin); scanf("ttt%d",&studn+i.score); printf("ttt還要繼續(xù)嗎?(Y/N)"); fflush(stdin); scanf("ttt%c",&sign); /*輸入判斷*/ i+; return(n+i);void Display(

33、Student stud,int n) /*顯示所有記錄*/ int i; printf("ttt-n"); /*格式頭*/ printf("tttnumber name scoren"); printf("ttt-n"); for(i=1;i<n+1;i+) /*循環(huán)輸入*/ printf("ttt%-16s%-15s%dn",studi-1.num,,studi-1.score); if(i>1&&i%10=0) /*每十個暫停*/ printf("

34、ttt-n"); /*格式*/ printf("ttt"); system("pause"); printf("ttt-n"); printf("ttt"); system("pause");void Sort_by_num(Student stud,int n) /*按學(xué)號排序*/ int i,j; Student temp;/*(改動)*/ char t10; for(i=0;i<n-1;i+) for(j=0;j<n-1-i;j+) if(strcmp(studj.n

35、um,studj+1.num)>0) temp=studj; studj=studj+1;/*(改動)把學(xué)號較小的學(xué)生排到后面*/studj+1=temp; int Insert_a_record(Student stud,int n) /*插入一條記錄*/ printf("tttstudent's num:"); /*交互式輸入*/ fflush(stdin); scanf("ttt%s",studn.num); printf("tttstudent's name:"); fflush(stdin); scan

36、f("ttt%s",); printf("tttstudent's score:"); fflush(stdin); scanf("ttt%d",&studn.score); n+; Sort_by_num(stud,n); /*調(diào)用排序函數(shù)*/ printf("tttInsert Successed!n"); /*返回成功信息*/ return(n);int Delete_a_record(Student stud,int n) /*按姓名查找,刪除一條記錄*/ char s2

37、0; int i=0,j; printf("ttttell me his(her) name:"); /*交互式問尋*/ fflush(stdin); scanf("%s",s); while(strcmp(,s)!=0&&i<n) i+; /*查找判斷*/ if(i=n) printf("tttnot find!n"); /*返回失敗信息*/ return(n); for(j=i;j<n-1;j+) /*刪除操作*/ studj=studj+1; /*(改動)*/ printf(&qu

38、ot;tttDelete Successed!n"); /*返回成功信息*/ return(n-1);void Query_a_record(Student stud,int n) /*查找并顯示一個記錄*/ char s20; int i=0; printf("tttinput his(her) name:"); /*交互式輸入*/ fflush(stdin); scanf("ttt%s",s); while(strcmp(,s)!=0&&i<n) i+; /*查找判斷*/ if(i=n) print

39、f("tttnot find!n"); /*輸入失敗信息*/ return; printf("ttthis(her) number:%sn",studi.num); /*輸出該學(xué)生信息*/ printf("ttthis(her) score:%dn",studi.score);void Statistic(Student stud,int n) /*新增功能,輸出統(tǒng)計信息*/ int i,j=0,k=0,sum=0; float aver; /*成績平均值*/ for(i=0;i<n;i+) /*循環(huán)輸入判斷*/ sum+=st

40、udi.score; if(studj.score>studi.score) j=i;/*(改動)判斷為真時,把低分賦給studj.score*/ if(studk.score<studi.score) k=i;/*判斷為真時,把高分賦給studk.score*/ aver=1.0*sum/n; printf("tttthere are %d records.n",n); /*總共記錄數(shù)*/ printf("tttthe lowest score:n"); /*輸出最低分*/ printf("tttnumber:%s name:%s

41、 score:%dn",studj.num,,studj.score); printf("tttthe hignest score:n"); /*輸出最高分*/ printf("tttnumber:%s name:%s score:%dn",studk.num,,studk.score); printf("tttthe average score is %5.2fn",aver); /*平均分*/int AddfromText(Student stud,int n) /*從文件中讀入數(shù)

42、據(jù)*/ int i=0,num; FILE *fp; /*定義文件指針*/ char filename20; /*定義文件名*/ printf("tttInput the filename:"); fflush(stdin); scanf("ttt%s",filename); /*輸入文件名*/ if(fp=fopen(filename,"rb")=NULL) /*打開文件*/ printf("tttcann't open the filen"); /*打開失敗信息*/ printf("ttt&q

43、uot;); system("pause"); return(n); fscanf(fp,"%d",&num); /*讀入總記錄量*/ while(i<num) /*循環(huán)讀入數(shù)據(jù)*/ fscanf(fp,"%s%s%d",studn+i.num,studn+,&studn+i.score); i+; n+=num; fclose(fp); /*關(guān)閉文件*/ printf("tttSuccessed!n"); printf("ttt"); system("

44、;pause"); return(n);void WritetoText(Student stud,int n) /*將所有記錄寫入文件*/ int i=0; FILE *fp; /*定義文件指針*/ char filename20; /*定義文件名*/ printf("tttWrite Records to a Text Filen"); /*輸入文件名*/ printf("tttInput the filename:"); fflush(stdin); scanf("ttt%s",filename); if(fp=fop

45、en(filename,"w")=NULL) /*打開文件*/ printf("tttcann't open the filen"); system("pause"); return; fprintf(fp,"%dn",n); /*循環(huán)寫入數(shù)據(jù)*/ while(i<n) fprintf(fp,"學(xué)生學(xué)號 %-16s學(xué)生姓名%-15s學(xué)生成績%dn",studi.num,,studi.score); i+; fclose(fp); /*關(guān)閉文件*/ printf("S

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論