當前位置:編程學習大全網 - 編程語言 - 感謝編程。

感謝編程。

# include & ltstdio.h & gt/*參考庫函數*/

# include & ltstdlib.h & gt

# include & ltctype.h & gt

# include & ltstring.h & gt

Typedef struct /*定義結構數組*/

{

字符編號[10];/*學生ID */

char name[20];/*姓名*/

int分數;/*成就*/

}學生;

學生stu[80];/*結構數組變量*/

Int menu_select() /*菜單函數*/

{

char c;

做{

系統(“cls”);/*運行之前清除屏幕*/

printf(" \ t \ t * * * *學生成績管理系統* * * * \ n ");/*菜單選擇*/

printf("\t\t | 1。輸入記錄| \ n ");

printf("\t\t | 2。顯示所有記錄| \ n ");

printf("\t\t | 3。sort | \ n ");

printf("\t\t | 4。插入記錄| \ n ");

printf("\t\t | 5。刪除記錄| \ n ");

printf("\t\t | 6。query | \ n ");

printf("\t\t | 7。統計| \ n ");

printf("\t\t | 8。從文本文件添加記錄| \ n ");

printf("\t\t | 9。寫入文本文件| \ n ");

printf("\t\t | 0。退出| \ n ");

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

printf(" \ t \ t \ t給出您的選擇(0-9):");

c = getchar();/*閱讀選擇*/

} while(c & lt;0 ' | | c & gt'9');

return(c-' 0 ');/*返回選擇*/

}

Intinput (student study [],int n)/*輸入幾條記錄*/

{ int I = 0;

字符符號,x[10];/*x[10]用於清除冗余數據*/

而(簽!= ' n ' & amp& amp簽字!='N') /*判斷*/

{ printf(" \ t \ t \ t學生編號:");/*交互式輸入*/

scanf("\t\t\t%s ",stud[n+i]。num);

printf(" \ t \ t \ t學生姓名:");

scanf("\t\t\t%s ",stud[n+i]。姓名);

printf(" \ t \ t \ t學生的分數:");

scanf("\t\t\t%d ",& ampstud[n+i]。分數);

獲取(x);/*清除冗余輸入*/

printf(" \ t \ t \ t是否有更多記錄?(Y/N)");

scanf("\t\t\t%c ",& amp簽字);/*輸入判斷*/

i++;

}

return(n+I);

}

Void display (student study [],int n)/*顯示所有記錄*/

{

int I;

printf(" \ t \ t \ t-\ n ");/*格式頭*/

printf(" \ t \ t \ t number name score \ n ");

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

for(I = 1;我& ltn+1;I++) /*循環輸入*/

{

printf(" \ t \ t \ t %-16s %-15s % d \ n ",stud[i-1]。編號,螺柱[識別號1]。名稱,螺柱[i-1]。分數);

如果(i & gt1。& ampI%10==0) /*每十次暫停*/

{ printf(" \ t \ t \ t-\ n ");/*格式*/

printf(" \ t \ t \ t ");

系統(“暫停”);

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

}

}

printf(" \ t \ t \ t ");

系統(“暫停”);

}

void Sort _ by _ num(study[],int n)/*按學號排序*/

{ int i,j,*p,*q,s;

char t[10];

for(I = 0;我& ltn-1;I++) /*冒泡排序*/

for(j = 0;j & ltn-1-I;j++)

if(strcmp(stud[j].編號,螺柱[j+1]。num)>0)

{strcpy(t,stud[j+1])。num);

strcpy(螺柱[j+1])。num,stud[j]。num);

strcpy(stud[j].num,t);

strcpy(t,stud[j+1])。姓名);

strcpy(螺柱[j+1])。姓名,螺柱[j]。姓名);

strcpy(stud[j].姓名,t);

p = & amp螺柱[j+1]。分數;

q = & amp螺柱[j]。分數;

s = * p;

* p = * q;

* q = s;

}

}

int Insert _ a _ record(studenttud[],int n)/*插入壹條記錄*/

{ char x[10];/*用於清除冗余輸入*/

printf(" \ t \ t \ t學生編號:");/*交互式輸入*/

scanf("\t\t\t%s ",stud[n]。num);

printf(" \ t \ t \ t學生姓名:");

scanf("\t\t\t%s ",stud[n]。姓名);

printf(" \ t \ t \ t學生的分數:");

scanf("\t\t\t%d ",& amp螺柱。分數);

獲取(x);

n++;

Sort_by_num(stud,n);/*呼叫排序功能*/

printf(" \ t \ t \ t插入成功!\ n ");/*返回成功信息*/

返回(n);

}

int delete _ a _ record(student stud[],int n)/*按名稱搜索並刪除壹條記錄*/

{ char s[20];

int i=0,j;

printf(" \ t \ t \ t告訴我他(她)的名字:");/*互動探索*/

scanf("%s ",s);

while(strcmp(stud[i].姓名,s)!= 0 & amp& amp我& ltn)i++;/*尋找並判斷*/

如果(i==n)

{ printf(" \ t \ t \ t找不到!\ n ");/*返回失敗信息*/

返回(n);

}

for(j = I;j & ltn-1;J++) /*刪除操作*/

{

strcpy(stud[j].編號,螺柱[j+1]。num);

strcpy(stud[j].名稱,螺柱[j+1]。姓名);

螺柱[j]。分數=stud[j+1]。分數;

}

printf(" \ t \ t \ t刪除成功!\ n ");/*返回成功信息*/

返回(n-1);

}

void query _ a _ record(studenttud[],int n)/*查找並顯示壹條記錄*/

{ char s[20];

int I = 0;

printf(" \ t \ t \ t輸入他(她)的姓名:");/*交互式輸入*/

scanf("\t\t\t%s ",s);

while(strcmp(stud[i].姓名,s)!= 0 & amp& amp我& ltn)i++;/*尋找並判斷*/

如果(i==n)

{ printf(" \ t \ t \ t找不到!\ n ");/*輸入失敗信息*/

返回;

}

printf(" \ t \ t \ this(her)number:% s \ n ",stud[i]。num);/*輸出學生信息*/

printf(" \ t \ t \ this(her)score:% d \ n ",stud[i]。分數);

}

Void statistical (student study [],int n)/*新函數,輸出統計信息*/

{ int i,j=0,k=0,sum = 0;

浮動aver/*平均分數*/

for(I = 0;我& ltn;I++) /*循環輸入判斷*/

{

sum+=stud[i]。分數;

if(stud[j].得分& gtstud[i]。得分)j = I;

if(stud[k].得分& ltstud[i]。得分)k = I;

}

aver = 1.0 * sum/n;

printf(" \ t \ t \ t有%d條記錄。\n”,n);/*總共* * *條記錄*/

printf(" \ t \ t \ t最高分:\ n ");/*最高分*/

printf(" \ t \ t \ t編號:%s名稱:%s分數:%d\n ",stud[j]。num,stud[j]。姓名,螺柱[j]。分數);

printf(" \ t \ t \ t最低分:\ n ");/*最低分數*/

printf(" \ t \ t \ t編號:%s名稱:%s分數:%d\n ",stud[k]。num,stud[k]。名字,螺柱[k]。分數);

printf(" \ t \ t \ t平均分數為%5.2f\n ",aver);/*平均分數*/

}

intaddfromtext(studenttud[],int n)/*從文件中讀取數據*/

{ int i=0,num

FILE * fp/*定義文件指針*/

字符文件名[20];/*定義文件名*/

printf(" \ t \ t \ t輸入文件名:");

scanf("\t\t\t%s ",文件名);/*輸入文件名*/

If ((FP = fopen (filename," Rb))= = null)/*打開文件*/

{ printf(" \ t \ t \ t無法打開文件\ n ");/*打開失敗消息*/

printf(" \ t \ t \ t ");

系統(“暫停”);

返回(n);

}

fscanf(fp," %d ",& ampnum);/*讀入總記錄*/

而(我& ltNum) /*循環讀取數據*/

{

fscanf(fp," %s%s%d ",stud[n+i]。num,stud[n+i]。姓名& ampstud[n+i]。分數);

i++;

}

n+= num;

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

printf(" \ t \ t \ t成功!\ n ");

printf(" \ t \ t \ t ");

系統(“暫停”);

返回(n);

}

Void write to text (student stud [],int n)/*將所有記錄寫入文件*/

{

int I = 0;

FILE * fp/*定義文件指針*/

字符文件名[20];/*定義文件名*/

printf(" \ t \ t \ t將記錄寫入文本文件\ n ");/*輸入文件名*/

printf(" \ t \ t \ t輸入文件名:");

scanf("\t\t\t%s ",文件名);

If ((FP = fopen (filename," w)))= = null)/*打開文件*/

{

printf(" \ t \ t \ t無法打開文件\ n ");

系統(“暫停”);

返回;

}

fprintf(fp," %d\n ",n);/*循環寫入數據*/

而(我& ltn)

{

fprintf(fp," %-16s%-15s%d\n ",stud[i]。num,stud[i]。名字,種馬[i]。分數);

i++;

}

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

printf("成功!\ n ");/*返回成功信息*/

}

Void main() /* main函數*/

{

int n = 0;

for(;;)

{

Switch(menu_select()) /*選擇判斷*/

{

案例1:

printf(" \ t \ t \ t輸入記錄\ n ");/*輸入幾條記錄*/

n =輸入(stu,n);

打破;

案例二:

printf(" \ t \ t \ t顯示所有記錄\ n ");/*顯示所有記錄*/

Display(stu,n);

打破;

案例三:

printf(" \ t \ t \ t sort \ n ");

Sort_by_num(stu,n);/*按學號排序*/

printf(" \ t \ t \ t排序成功!\ n ");

printf(" \ t \ t \ t ");

系統(“暫停”);

打破;

案例4:

printf(" \ t \ t \ t插入記錄\ n ");

n =插入_ a _記錄(stu,n);/*插入記錄*/

printf(" \ t \ t \ t ");

系統(“暫停”);

打破;

案例5:

printf(" \ t \ t \ t刪除記錄\ n ");

n=Delete_a_record(stu,n);/*按名稱搜索並刪除記錄*/

printf(" \ t \ t \ t ");

系統(“暫停”);

打破;

案例6:

printf(" \ t \ t \ t query \ n ");

Query_a_record(stu,n);/*查找並顯示記錄*/

printf(" \ t \ t \ t ");

系統(“暫停”);

打破;

案例7:

printf(" \ t \ t \ t statistic \ n ");

統計量(stu,n);/*新功能,輸出統計信息*/

printf(" \ t \ t \ t ");

系統(“暫停”);

打破;

案例8:

printf(" \ t \ t \ t從文本文件添加記錄\ n ");

n=AddfromText(stu,n);/*新功能,輸出統計信息*/

打破;

案例9:

printf(" \ t \ t \ t寫入文本文件\ n ");

WritetoText(stu,n);/*循環寫入數據*/

printf(" \ t \ t \ t ");

系統(“暫停”);

打破;

案例0:

祝妳好運,再見!\ n ");/*結束程序*/

printf(" \ t \ t \ t ");

系統(“暫停”);

退出(0);

}

}

}

四、函數調用圖

註:“→”代表通話

輸入函數

打印鏈接列表記錄

顯示功能

輸入幾條記錄

Menu_select()函數

選擇菜單

按數量排序函數

顯示所有記錄

刪除記錄功能

按名稱搜索並刪除記錄。

Query_a_record查找並顯示壹條記錄。

統計函數

產出統計(新)

AddfromText函數

將正文中的數據添加到結構數組中。

主要功能

插入壹條記錄。

WritetoText函數將所有數據寫入壹個文件。

退出程序

反向(頭部)功能

按學號排序

動詞 (verb的縮寫)設計測試流程

1,進入界面

2.輸入選項1,回車;

根據提示輸入數據:

3.返回主菜單;

輸入選項7,回車;

輸入文件名:data.txt,回車;

如果出現成功提示,則文件讀取操作成功。

4.返回主菜單,輸入2並按回車鍵。

每隔10暫停顯示數據。

5.返回主菜單,輸入3並按回車鍵。

出現排序成功消息。

6.返回主菜單,輸入4並按回車鍵。

根據提示插入壹組數據。

7.返回主菜單,輸入5並按回車鍵。

根據提示輸入名稱以刪除數據。

出現成功刪除的消息。

8.返回主菜單,輸入6並按回車鍵。

輸入要查詢的名稱。

9.返回主菜單,輸入7並按回車鍵。

出現統計信息

10,返回主菜單,輸入9,回車。

輸入result.txt並按Enter鍵。

將顯示文件已成功寫入的消息。

11,返回主菜單,輸入0,回車退出系統。

被調查人:king key 001-試用期壹級7-14 22:38。

修改回復:kingkey001,妳要修改的回復如下:積分規則關閉。

c語言課程設計報告——學生成績的簡單管理程序

壹、系統菜單的主要功能

(1)輸入若幹記錄。

(2)顯示所有記錄

(3)按學號排序

(4)插入壹條記錄

(5)按名稱搜索並刪除壹條記錄。

(6)查找並顯示記錄

(7)輸出統計信息(新增)

(8)將文本中的數據添加到結構數組中。

(9)將所有數據寫入文件。

(0)退出程序

二、話題分析

這個題目主要考察學生對結構、指針、文件的操縱,以及對C語言算法的掌握,所以完成這個題目需要很強的設計能力,尤其是大局意識。如何調試程序也很重要。通過這個程序,妳可以學到在調試短程序之前沒有的經驗。

菜單中的每個選項都對應壹個子程序,子程序的算法幾乎囊括了C語言所學的所有技能。以下是每個子程序中的函數:

函數1的算法類似於函數4的算法。將壹條記錄輸入到結構中,其中有壹條很關鍵,就是通過gets輸入所有多余的字符,否則就會出錯。

功能2是顯示所有記錄,通過循環輸出,格式也很重要。

函數3是按學號排序,因為學號定義為字符數組,所以用冒泡法排序時,要用到strcmp,strcpy等函數。

功能5是按名稱刪除記錄。先輸入名字,然後壹個壹個對比。如果沒有名稱,將返回壹條失敗消息。如果找到,則所有記錄前移壹位,返回n-1。

函數6的算法已經在5中實現了。輸入名字,壹個壹個比較。

函數7是壹個新函數,因為原來的函數中沒有學生成績的統計函數,所以添加這個函數可以得到所有的記錄,最高分,最低分,平均分,輸出相關的學生信息。

函數8和9是對文件的操作,數據是預先準備好的。

第三,程序的主體

# include & ltstdio.h & gt/*參考庫函數*/

# include & ltstdlib.h & gt

# include & ltctype.h & gt

# include & ltstring.h & gt

Typedef struct /*定義結構數組*/

{

字符編號[10];/*學生ID */

char name[20];/*姓名*/

int分數;/*成就*/

}學生;

學生stu[80];/*結構數組變量*/

Int menu_select() /*菜單函數*/

{

char c;

做{

系統(“cls”);/*運行之前清除屏幕*/

printf(" \ t \ t * * * *學生成績管理系統* * * * \ n ");/*菜單選擇*/

printf("\t\t | 1。輸入記錄| \ n ");

printf("\t\t | 2。顯示所有記錄| \ n ");

printf("\t\t | 3。sort | \ n ");

printf("\t\t | 4。插入記錄| \ n ");

printf("\t\t | 5。刪除記錄| \ n ");

printf("\t\t | 6。query | \ n ");

printf("\t\t | 7。統計| \ n ");

printf("\t\t | 8。從文本文件添加記錄| \ n ");

printf("\t\t | 9。寫入文本文件| \ n ");

printf("\t\t | 0。退出| \ n ");

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

printf(" \ t \ t \ t給出您的選擇(0-9):");

c = getchar();/*閱讀選擇*/

} while(c & lt;0 ' | | c & gt'9');

return(c-' 0 ');/*返回選擇*/

}

Intinput (student study [],int n)/*輸入幾條記錄*/

{ int I = 0;

字符符號,x[10];/*x[10]用於清除冗余數據*/

而(簽!= ' n ' & amp& amp簽字!='N') /*判斷*/

{ printf(" \ t \ t \ t學生編號:");/*交互式輸入*/

scanf("\t\t\t%s ",stud[n+i]。num);

printf(" \ t \ t \ t學生姓名:");

scanf("\t\t\t%s ",stud[n+i]。姓名);

printf(" \ t \ t \ t學生的分數:");

scanf("\t\t\t%d ",& ampstud[n+i]。分數);

獲取(x);/*清除冗余輸入*/

printf(" \ t \ t \ t是否有更多記錄?(Y/N)");

scanf("\t\t\t%c ",& amp簽字);/*輸入判斷*/

i++;

}

return(n+I);

}

Void display (student study [],int n)/*顯示所有記錄*/

{

int I;

printf(" \ t \ t \ t-\ n ");/*格式頭*/

printf(" \ t \ t \ t number name score \ n ");

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

for(I = 1;我& ltn+1;I++) /*循環輸入*/

{

printf(" \ t \ t \ t %-16s %-15s % d \ n ",stud[i-1]。編號,螺柱[識別號1]。名稱,螺柱[i-1]。分數);

如果(i & gt1。& ampI%10==0) /*每十次暫停*/

{ printf(" \ t \ t \ t-\ n ");/*格式*/

printf(" \ t \ t \ t ");

系統(“暫停”);

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

}

}

printf(" \ t \ t \ t ");

系統(“暫停”);

}

void Sort _ by _ num(study[],int n)/*按學號排序*/

{ int i,j,*p,*q,s;

char t[10];

for(I = 0;我& ltn-1;I++) /*冒泡排序*/

for(j = 0;j & ltn-1-I;j++)

if(strcmp(stud[j].編號,螺柱[j+1]。num)>0)

{strcpy(t,stud[j+1])。num);

strcpy(螺柱[j+1])。num,stud[j]。num);

strcpy(stud[j].num,t);

strcpy(t,stud[j+1])。姓名);

strcpy(螺柱[j+1])。姓名,螺柱[j]。姓名);

strcpy(stud[j].姓名,t);

p = & amp螺柱[j+1]。分數;

q = & amp螺柱[j]。分數;

s = * p;

* p = * q;

* q = s;

}

}

int Insert _ a _ record(studenttud[],int n)/*插入壹條記錄*/

{ char x[10];/*用於清除冗余輸入*/

printf(" \ t \ t \ t學生編號:");/*交互式輸入*/

scanf("\t\t\t%s ",stud[n]。num);

printf(" \ t \ t \ t學生姓名:");

scanf("\t\t\t%s ",stud[n]。姓名);

printf(" \ t \ t \ t學生的分數:");

scanf("\t\t\t%d ",& amp螺柱。分數);

獲取(x);

n++;

Sort_by_num(stud,n);/*呼叫排序功能*/

printf(" \ t \ t \ t插入成功!\ n ");/*返回成功信息*/

返回(n);

}

int delete _ a _ record(student stud[],int n)/*按名稱搜索並刪除壹條記錄*/

{ char s[20];

int i=0,j;

printf(" \ t \ t \ t告訴我他(她)的名字:");/*互動探索*/

scanf("%s ",s);

while(strcmp(stud[i].姓名,s)!= 0 & amp& amp我& ltn)i++;/*尋找並判斷*/

如果(i==n)

{ printf(" \ t \ t \ t找不到!\ n ");/*返回失敗信息*/

返回(n);

}

for(j = I;j & ltn-1;J++) /*刪除操作*/

{

strcpy(stud[j].編號,螺柱[j+1]。num);

strcpy(stud[j].名稱,螺柱[j+1]。姓名);

螺柱[j]。分數=stud[j+1]。分數;

}

printf(" \ t \ t \ t刪除成功!\ n ");/*返回成功信息*/

返回(n-1);

}

void query _ a _ record(studenttud[],int n)/*查找並顯示壹條記錄*/

{ char s[20];

int I = 0;

printf(" \ t \ t \ t輸入他(她)的姓名:");/*交互式輸入*/

scanf("\t\t\t%s ",s);

while(strcmp(stud[i].姓名,s)!= 0 & amp& amp我& ltn)i++;/*尋找並判斷*/

如果(i==n)

{ printf(" \ t \ t \ t找不到!\ n ");/*輸入失敗信息*/

返回;

}

printf(" \ t \ t \ this(her)number:% s \ n ",stud[i]。num);/*輸出學生信息*/

printf(" \ t \ t \ this(her)score:% d \ n ",stud[i]。分數);

}

Void statistical (student study [],int n)/*新函數,輸出統計信息*/

{ int i,j=0,k=0,sum = 0;

浮動aver/*平均分數*/

for(I = 0;我& ltn;I++) /*循環輸入判斷*/

{

sum+=stud[i]。分數;

if(stud[j].得分& gtstud[i]。得分)j = I;

if(stud[k].得分& ltstud[i]。得分)k = I;

}

aver = 1.0 * sum/n;

printf(" \ t \ t \ t有%d條記錄。\n”,n);/*總共* * *條記錄*/

printf(" \ t \ t \ t最高分:\ n ");/*最高分*/

printf(" \ t \ t \ t編號:%s名稱:%s分數:%d\n ",stud[j]。num,stud[j]。姓名,螺柱[j]。分數);

printf(" \ t \ t \ t最低分:\ n ");/*最低分數*/

printf(" \ t \ t \ t編號:%s名稱:%s分數:%d\n ",stud[k]。num,stud[k]。名字,螺柱[k]。分數);

printf(" \ t \ t \ t平均分數為%5.2f\n ",aver);/*平均分數*/

}

intaddfromtext(studenttud[],int n)/*從文件中讀取數據*/

{ int i=0,num

FILE * fp/*定義文件指針*/

字符文件名[20];/*定義文件名*/

printf(" \ t \ t \ t輸入文件名:");

scanf("\t\t\t%s ",文件名);/*輸入文件名*/

If ((FP = fopen (filename," Rb))= = null)/*打開文件*/

{ printf(" \ t \ t \ t無法打開文件\ n ");/*打開失敗消息*/

printf(" \ t \ t \ t ");

系統(“暫停”);

返回(n);

}

fscanf(fp," %d ",& ampnum);/*讀入總記錄*/

而(我& ltNum) /*循環讀取數據*/

{

fscanf(fp," %s%s%d ",stud[n+i]。num,stud[n+i]。姓名& ampstud[n+i]。分數);

i++;

}

n+= num;

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

printf(" \ t \ t \ t成功!\ n ");

printf(" \ t \ t \ t ");

系統(“暫停”);

返回(n);

}

Void write to text (student stud [],int n)/*將所有記錄寫入文件*/

{

int I = 0;

FILE * fp/*定義文件指針*/

字符文件名[20];/*定義文件名*/

printf(" \ t \ t \ t將記錄寫入文本文件\ n ");/*輸入文件名*/

printf(" \ t \ t \ t輸入文件名:");

scanf("\t\t\t%s ",文件名);

If ((FP = fopen (filename," w)))= = null)/*打開文件*/

{

printf(" \ t \ t \ t無法打開文件\ n ");

系統(“暫停”);

返回;

}

fprintf(fp," %d\n ",n);/*循環寫入數據*/

而(我& ltn)

{

fprintf(fp," %-16s%-15s%d\n ",stud[i]。num,stud[i]。名字,種馬[i]。分數);

i++;

}

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

printf("成功!\ n ");/*返回成功信息*/

}

Void main() /* main函數*/

{

int n = 0;

for(;;)

{

Switch(menu_select()) /*選擇判斷*/

{

案例1:

printf(" \ t \ t \ t輸入記錄\ n ");/*輸入幾條記錄*/

n =輸入(stu,n);

打破;

案例二:

printf(" \ t \ t \ t顯示所有記錄\ n ");/*顯示所有記錄*/

Display(stu,n);

打破;

案例三:

printf(" \ t \ t \ t sort \ n ");

Sort_by_num(stu,n);/*按學號排序*/

printf(" \ t \ t \ t排序成功!\ n ");

printf(" \ t \ t \ t ");

系統(“暫停”);

打破;

案例4:

printf(" \ t \ t \ t插入記錄\ n ");

n =插入_ a _記錄(stu,n);/*插入記錄*/

printf(" \ t \ t \ t ");

系統(“暫停”);

打破;

案例5:

printf(" \ t \ t \ t刪除記錄\ n ");

n=Delete_a_record(stu,n);/*按名稱搜索並刪除記錄*/

printf(" \ t \ t \ t ");

系統(“暫停”);

打破;

案例6:

printf(" \ t \ t \ t query \ n ");

Query_a_record(stu,n);/*查找並顯示記錄*/

printf(" \ t \ t \ t ");

系統(“暫停”);

打破;

案例7:

printf(" \ t \ t \ t statistic \ n ");

統計量(stu,n);/*新功能,輸出統計信息*/

printf(" \ t \ t \ t ");

系統(“暫停”);

打破;

案例8:

printf(" \ t \ t \ t從文本文件添加記錄\ n ");

n=AddfromText(stu,n);/*新功能,輸出統計信息*/

打破;

案例9:

printf(" \ t \ t \ t寫入文本文件\ n ");

WritetoText(stu,n);/*循環寫入數據*/

printf(" \ t \ t \ t ");

系統(“暫停”);

打破;

案例0:

祝妳好運,再見!\ n ");/*結束程序*/

printf(" \ t \ t \ t ");

系統(“暫停”);

退出(0);

}

}

}

四、函數調用圖

註:“→”代表通話

輸入函數

打印鏈接列表記錄

顯示功能

輸入幾條記錄

Menu_select()函數

選擇菜單

按數量排序函數

顯示所有記錄

刪除記錄功能

按名稱搜索並刪除記錄。

Query_a_record查找並顯示壹條記錄。

統計函數

產出統計(新)

AddfromText函數

將正文中的數據添加到結構數組中。

主要功能

插入壹條記錄。

WritetoText函數將所有數據寫入壹個文件。

退出程序

反向(頭部)功能

按學號排序

動詞 (verb的縮寫)設計測試流程

1,進入界面

2.輸入選項1,回車;

根據提示輸入數據:

3.返回主菜單;

輸入選項7,回車;

輸入文件名:data.txt,回車;

如果出現成功提示,則文件讀取操作成功。

4.返回主菜單,輸入2並按回車鍵。

每隔10暫停顯示數據。

5.返回主菜單,輸入3並按回車鍵。

出現

  • 上一篇:有哪些高質量的自學網站
  • 下一篇:如何拯救fanuc編程
  • copyright 2024編程學習大全網