包括
包括
整數N = 2;//全局變量。輸入的學生人數會自行改變其值。
結構學生
{
字符數【10】;
角色名【10】;
浮動分數【3】《/平均持股;
}學生【200】;
/ ******************************* ************************************************** ************* /
無效輸入(structure student t【】)//輸入數據
{
INT I,J,K,
系統(“CLS”);
Printf(“輸入由輸入數據的數量決定\ n您已經確定了壹些數據“);
Printf(“請輸入1繼續\ n不輸入0退出程序,並更改全局變量的值\ n“);
Scanf函數(“%d“,& a);
(A!= 1 )
退出(0);
(I = 0;& ltn;+ +)
{
系統(“CLS”);//清除屏幕BR/& gt;Printf(“請輸入% d名學生的人數:\ n“,I+1);
Scanf函數(“%s”,T【I】的個數);
is(j = 0j
if(STRCMP(T【I】。數,T【J】。NUM)= 0)//避免學生數量相同。
{/& gt;-
Of printf(“學生人數已存在,請重新輸入:“);
睡眠(3000);
突破;
}
}
is(I = 0;& ltn;+ +)
{
系統(“CLS”);
printf‘s(“請輸入學號% s:(用空格分隔)\ n第二門的第壹次成績和第二門的第三次成績\ n“,T【I】NUM);
//T【I】。score【0】= 0,T【I】。score【1】= 0,T【I】。score【2】= 0;
Scanf函數(“%s% f% f% f,T【I】。名稱,& t【I】。score【0】,score of & t【I】【1】,score of & t【I】【2】);
AVG。score【0】+T【I】score【1】+【I】。score【2】)/3.0;
}
}
/ ************************************************* ********************************************* /
註釋列表(student t【】)//顯示所有信息。
{
我;
系統(“CLS”);
printf的信息(“%d學生如下:\ n \ n“,n);
Printf的(“學生證名字第壹門成就第二門,第三門得分平均\ n“);
(I = 0;I++)
{
(T【I】strlen的編號)!= 0)//判斷是否結束。
printf(“% % S \ t where % S \ t % 5.2f \ t % 5.2f \ t % 5.2f \ t \ t“,
t【I】。數字,T【我的名字,T【I】分數【0】,T【I】。score【1】,T【I】score【2】,T【I】。平均);
其他的
突破;
}
putchar(10);
}
/ ************* ************************************************** ******** /
無效的研究(學生t【】)//學生id查找信息。
{
INT I,Y;
字符【10】;
(1)
{系統(“CLS”);
printf‘s(“請輸入您的學號:“);
Scanf函數(“%s“,& s);
is(I = 0;i + +)
{
系統(“CLS”);
((STRCMP(S,T【I】)。num))//如果找到學生人數,則輸出。
{
printf‘s(“學號為%的學生成績如下:\ n \ n“,T【】NUM);
printf的名稱(“第二個成績的第壹個成績的平均學生人數\ n”表示第三個成績);
printf(“% \ t其中% s \ t % 5.2f \ t % 5.2f \ t % 5.2f \ t % 5.2f \ t“,
T【我】號。名字,T【我】。得分【0】,T【I】得分【1】,T【I】【2分】,T【I】。平均);
putchar(10);
休息;
}
否則為if((STRCMP(S,T【I】)。NUM)!= 0 & amp& ampstrlen(T【I】。NUM)= 0)//搜索完成後不是最終結果
{
printf(“\ n無計數信息:\ n \ n“);
突破;
}
}
printf(“please * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n“);} output(繼續查詢並輸入回車\ n“);
(“of printf返回主菜單,輸入2並輸入\ n”);
Output(退出程序並輸入任何回車\ n“);
printf(“please * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n“);
(scanf的“%d“,& a;
(== 1)
研究(學生,n);
否則,如果(== 2)
突破;
其他的
{
系統(“CLS”);
Printf(“退出並輸入回車以退出並保存數據”);
Scanf函數(“% d”的& y);BR/& gt;if(= = 1)
退出(0);
否則,如果(Y == 2)
Save(斯圖);
其他的
Lord();
}
}
();
}
/ ******************* ************************************************** ************************* /
invalid Del(student t【】)//刪除壹個學生信息。
{
INT I,J,A,Z,Y;
字符B【10】;
系統(“CLS”);
Printf(“請輸入您要刪除的學校數量:);
Scanf函數(“%s“,b);
(I = 0;i + +)
STRCMP(B,T【。people)= 0)
突破;
否則為if((STRCMP(B,T【I】)。NUM)!= 0 & amp& ampstrlen(T【I】。NUM)= 0)
{
Of printf(“編號信息:\ n \ n“);
睡眠(3000);
突破;
}
(strlen(T【NUM】!= 0)
{
系統(“CLS”);
Printf(“請確認刪除?輸入回車符\ n“);/& gt;scanf的(“%d“,& z);
(Z == 1)
is(J = I,J++)
{
(strlen(T【J】)。NUM)= 0)
打破;
其他的
{
T【J】= T【J+1】;
= N-1;
}
}
}
系統(“CLS”);
printf(“* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n“);
(of printf繼續刪除並輸入回車\ n‘);...../output(“返回主菜單並輸入\ n“);
Printf(“請退出程序並輸入任何回車\ n“);
printf(“please * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n“);
scanf的(“%d“,& a);
(== 1)
斯圖;
否則,如果(== 2)
();
其他BR /》。{
系統(“CLS”);
Printf(“請直接退出,輸入回車,保存輸入和退出的數據,並進入主菜單22次\ n建議退出之前保存的金額,否則數據將丟失);
Scanf函數(“%d“,& y);
(== 1)
退出(0);
否則,如果(Y == 2)
Save(斯圖);
其他的
();
}
} & lt//* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
INT I,J,M,A,Y;
系統(* * *
CLS“);
Of printf(“請輸入添加的記錄數:\ nm =“);
scanf的(“%d“,& m);
for(I = N,我是N+M;+ +)
{
系統(“CLS”);
Printf的(“請輸入學生的ID #% d的新同學:+1);
Scanf的(“T【I】。NUM);
is(J = 0;;J + +)
(STRCMP(T【】min,T【J】min)= = 0)//避免重復的學生編號。
{
-
Printf的(“該學生的學生已經存在,請重新輸入:)。
睡眠(3000);
突破;
}
}
當(i = n,I
{
(《CLS》);
printf‘s(“請輸入% s中的學生人數以增加學校:(用空格分隔)\第三門的名稱,第壹門的分數,第二門的成績\ n“,T【】NUM);
//T【I】【0】= 0,T【I】的分數。with【1】= 0,T【I】。score【2】= 0;
Scanf函數(“%s% f% f% f,T【I】。名稱,& t【I】。score【0】,score of & t【I】【1】,score of & t【I】【2】);
AVG。score【0】+T【I】score【1】+【I】【2點】)/3.0;
}
N = N+m//學生人數等於已經出生的學生人數加上新增加的學生人數。
printf(“* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n“);& lt/Output(“Add“,輸入壹個回車符,\ n“);
Of printf(“返回主菜單,輸入2並輸入\ N“);
(“of printf退出程序並輸入任何回車符\ n“);
printf(“* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n“);
(scanf的“%d“,& a;
(= = 1)/》;Add(斯圖);
否則,如果(== 2)
();
其他的
{
系統(“CLS”);....../& gt;Printf(“您想退出嗎?進入後,進入2號出口進入汽車,保存數據,並進入主菜單22次\ nI建議您在退出前保存壹些,否則數據將丟失“);
if scanf‘s(“% d“,& y)(y = = 1)
退出(0);
否則,如果(Y == 2)
Save(斯圖);
其他的
主要是();
}
}
/ ************ ************************************************** ******************************** /
integer save(student t【】)//保存數據的文件。
{
FILE * FP
CHar【20】,ch;
我是壹,y;
系統(“CLS”);
Printf(“請保存到新文件並輸入回車,\ n保存現有文件並輸入2 \ n“);
scanf的(“%d“,& a);關於
CH = getchar function()//接收回車,否則,您會得到()函數空間被分配到的錯誤。
if(a = = 1)
{
Output(“請輸入新文件名:\ n(包括擴展名,不超過20個字符)\ n“);
獲取;
((FP的FOPEN(S)=(S,“w+“)= = null)//FP指向的文件。
{
printf(“this file \ n“);
退出(0);
}
}
否則,如果(== 2)
{
printf(“請輸入現有文件名:\ N(包括不超過20個字符的擴展名)\ N“);
獲取;
((FP = FOPEN(“w+“)= = NULL)
{
系統(CLS)”;
printf(“Please \ n“;};
退出(0);
}
}
用fprintf(FP)而不是文件“%%d \ N“,N)//寫入的文件
is(I = 0;I++)
strlen的T【I。NUM)!= 0)//如果學生人數不為空,則將數據寫入指定文件。
{
fprintf(FP,“% S \ T % S \ T %-5.2f \ T % 5.2f \ T % 5.2f \ T % 5.2f“,
t【I】。編號,T【】。,T【】【0】,T【I】得分【1】,T【I】得分【2】,T【I】平均值);
fprintf(FP,“\ n“);
}
其他的
;
FCLOSE(FP);
系統(“CLS”;);
Printf(“請\ n保存它,然後就完成了!\ n“);
}
/ * ************************************************** ******************************************* /
無效讀取(student t【】)//讀取文件數據
{
FILE * FP
解釋y、m、I、x;
CHar【20】,ch;
CH = getchar function()//接收輸入字符,否則將()函數空間分配給S. Error。
系統(“CLS”);
Printf(“請輸入要讀取數據的文件名:\ n(包括其擴展名,20個字符或更少)\ n“);
獲取;
((FP = FOPEN(“R“))= = NULL)
{
系統(“CLS”);
printf(“Please this file \ n“);
睡眠(3000)
系統(“CLS”);
Printf(“請退出?退出並輸入回車保存在退出2中輸入的數據,輸入22返回主菜單\ nI建議您在退出前保存號碼,否則數據將丟失“);
(“%d“,& y of scanf
(Y == 1)
退出(0);
否則,如果(Y == 2)
保存(
其他的
();
}
fscanf(FP,“%d“,& x);//註冊學生人數
(斯圖);I = 0;I x,i++)//讀取所有數據。
fscanf(FP,“%f% f% f of% s% s,T【I】min,T【I】的名稱,& T【I】。得分【0】,
得分為& t【I】【1】,& t【I】。分數【2】,& t【I】。平均);
FCLOSE(FP);
系統(“CLS”);
N-= N//n將被設置為0。
n = X;
printf(“\ n閱讀完成!\ n“);
}
/ ******** ************************************************** ************************************ /
Menu()//選擇菜單BR/& gt;{
解釋x;
Of printf(“請選擇相應的菜單:\ n“);
printf(“* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n“);
(“請輸入新記錄,輸入0並輸入\ n”)的printf
& gtPrintf(“所有學生,請輸入回車\ n“);
Printf(“請查詢相應的記錄,輸入2並輸入\ n“);
Printf(“請刪除相應的記錄,輸入3並輸入\ n“);
(“of printf添加新記錄,並輸入4 input \ n“);
Printf(“從文件中讀取的記錄,輸入5,輸入\ n“);
Printf(“請平均從最高到最低進行排名和輸出,輸入6輸入\ n“);
Printf(“學生ID從低到高,並輸出,輸入7輸入\ n“);
& gtOutput(每門課分數最高的壹門,輸入回車\ n“);
(“printf的分數保存到文本輸入9 input \ n“);
(“of printf退出程序,輸入11,輸入\ n“);
printf(“please * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n“);
scanf(“% d”和x);
返回x;
}
/ ***** ************************************************** *************************************** /
無效的to _ exit()//exit。
{
解讀;
系統(“CLS”);
Printf(“請直接退出,輸入回車並保存數據,退出輸入2並進入主菜單22次\ nI建議您在退出前保存數字,否則您將丟失數據“);
(“%d“,& y of scanf
(Y == 1)
退出(0);
其他(Y == 2)
Save(斯圖);
其他的
();....../& gt;}
/ ****************************************** ************************************************** * /
無效的avg _ arrange(student t【】)//平均高到低排序。
{
I、J;
結構學生溫度【1】;BR/& gt;(I = 0;我& ltn-1;i + +)
(J = I +1,J <n,J + +)
(T【I】)。AVG & lt;t【J】。平均)
{
TEMP【0】= T【】;
T【】= T【J】;
噸【J】= TEMP【0】;
}
List(斯圖);
}
/ ******************** ************************************************** ************************ /
無效的num _ arrange(student t【】)//學生人數從小到大的順序。
& gt{
解讀IJ;
結構學生溫度【1】;
is(I = 0;我& ltn;I++)
(J = 0、J & ltN-1,J + +)
(STRCMP(T【J】)。數字,T【j+1】。NUM)& gt;0)
{
溫度【0】= T【J】。
T【J】= T【J+1】;
= TEMP【0】in T【j+1】;
}
列表(t);
}
/ **************************************** ************************************************** **** /
invalid high(student t【】)//搜索科目得分最高。
{
INT I,J,K,
結構生最多【1】;
最大值【0】= T【0】;
系統(“CLS”);
printf(“請輸入您要查找的主題:1或2或3 \ n“);
Scanf函數(“% d”的&k個);
(I = 1;我
最大值【0】=【0】。score【K-1】》;T【I】【k-1】的分數最大【0】:【I】
系統(“CLS”);
output(“% d的科目分為:% %5.2f的學生人數為\ n“,k【0】的最高分為【k-1】,最高分為【0】NUM);
}
/ ********************************************* ************************************************* /
()
{
已解釋;
(1)
{
壹個菜單();
開關(A)//根據相應的動作選擇菜單。
{
在本例中,0:input(STU);突破;
案例1:列表(STU);突破;
案例、研究(斯圖);突破;
案例三:德爾(斯圖);突破;
情況4:添加(STU);突破;
萬壹,5:讀書(斯圖);休息;
場景6:avg _ arrange(stu);突破;
案例七:num _ arrange(stu);突破;
案例八:斯圖;突破;
情況:保存(斯圖);突破;
默認值:to _ exit();
}
}
}
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *