當前位置:股票大全官網 - 財經新聞 - c語言寫的壹個教務管理系統註:妳能把這個程序發給我嗎?

c語言寫的壹個教務管理系統註:妳能把這個程序發給我嗎?

# include & ltstdio.h & gt

# include & ltstdlib.h & gt

# include & ltconio.h & gt

# include & ltdos.h & gt

# include & ltstring.h & gt

#定義?萊恩。sizeof(struct?學生)

#定義?格式?“%-8d %-15s %-12.1lf %-12.1lf %-12.12.1lf %-12。1lf \ n“

#定義?數據?斯圖【我】。數字,斯圖【我】。姓名,斯圖【我】。elec,斯圖【I】。expe,stu【I】熱區,斯圖【我】。總和

結構?Student/*定義學生成績的結構*/

{?int?num/*學生ID */

夏爾。名稱【15】;/*姓名*/

雙份?elec/*選修課*/

雙份?expe/*實驗班*/

雙份?熱區;/*必修課*/

雙份?總和;/*總分*/

};

結構?學生?stu【50】;/*定義結構數組*/

虛空?in();/*輸入學生成績信息*/

虛空?show();/*顯示學生信息*/

虛空?order();/*按總分排序*/

虛空?del();/*刪除學生成績信息*/

虛空?modify();/*修改學生成績信息*/

虛空?menu();/*主菜單*/

虛空?insert();/*插入學生信息*/

虛空?total();/*計算總人數*/

虛空?search();/*查找學生信息*/

虛空?main()/*主函數*/

{?int?n;

menu();

scanf(“% d“,& ampn);/*輸入所選功能的編號*/

{?開關(n)

{?案子?1:?in();打破;

案子?2:?search();打破;

案子?3:?del();打破;

案子?4:?modify();打破;

案子?5:?insert();打破;

案子?6:?order();打破;

案子?7:?total();打破;

?案子?8:?show();打破;

默認值:break

}

getch();

menu();/*執行該功能後再次顯示菜單界面*/

scanf(“% d“,& ampn);

}

}

虛空?in()/*輸入學生信息*/

{?int?I,m = 0;/*m是記錄的數量*/

夏爾。ch【2】;

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

if((FP = fopen(“data。txt““,“a+““)= null)/*打開指定的文件*/

{?

printf(“可以嗎?不是嗎?open \ n“);

返回;

}

而(!feof(FP))

{

if(fread(& amp;斯圖【m】?,LEN,1,FP)= = 1)

m++;/*計算當前記錄的數量*/

}

fclose(FP);

如果(m==0)

printf(“沒有?記錄!\ n ");

其他

{

系統(“cls”);

show();/*調用show函數顯示原始信息*/

}

if((FP = fopen(“data . txt“,“WB“))= = NULL)

{

printf(“可以嗎?不是嗎?open \ n“);

返回;

}

for(I = 0;我& ltm;i++)

fwrite(& amp;斯圖【我】?,LEN,1,FP);/*將信息寫入指定的磁盤文件*/

printf(“拜托?輸入(是/否):“;

scanf(“% s“,ch);

while(strcmp(ch,“y“)= = 0 | | strcmp(ch,“y“)= = 0)/*判斷是否輸入新信息*/

{

printf(“number:“);

scanf(“% d“,& amp斯圖【m】。num);/*輸入學生ID */

for(I = 0;我& ltm;i++)

if(stu【I】。num = =斯圖【m】。num)

{

printf(“the?號碼?是嗎?現有的,按?有嗎?去哪?繼續!”);

getch();

fclose(FP);

返回;

}

printf(“name:“);

?scanf(“% s“,stu【m】。姓名);/*輸入學生姓名*/

printf(“elective:“);

scanf(“% lf“,& amp斯圖【m】。elec);/*輸入選修課的分數*/

printf(“實驗:“);

?scanf(“% lf“,& amp斯圖【m】。expe);/*輸入實驗課的結果*/

printf(“必需?課程:“);

?scanf(“% lf“,& amp斯圖【m】。熱區);/*輸入必修課程分數*/

斯圖【m】。sum = stu【m】。電子+學生【m】。expe+stu。熱區;/*計算總分*/

if(fwrite(& amp;斯圖【m】,LEN,1,fp)!= 1)/*將新輸入的信息寫入指定的磁盤文件*/

{

?printf(“可以嗎?不是嗎?救人啊!”);

?getch();

?}

其他

?{

?printf(“% s?得救了!\n“,斯圖【m】。姓名);

?m++;

?}

printf(“繼續嗎?(是/否):);/*詢問是否繼續*/

scanf(“% s“,ch);

}

fclose(FP);

printf(“好!\ n ");

}

虛空?顯示()

{?文件?* fp

int?I,m = 0;

FP = fopen(“data . txt“,“Rb“);

而(!feof(FP))

{

if(fread(& amp;斯圖【m】?,LEN,1,FP)= 1)?

m++;

}

fclose(FP);

printf(“number name?electiveexperimentrequiredsum \ t \ n“);

for(I = 0;我& ltm;i++)

{?

?printf(格式,數據);/*以指定格式打印信息*/

}

}

虛空?menu()/*自定義函數實現菜單功能*/

{

系統(“cls”);

printf(“\ n \ n \ n \ n“);

printf(“\ t \ t |-STUDENT-| \ n“);

printf(“\ t \ t | \ t?0.?退出| \ n“);

printf(“\ t \ t | \ t?1.?輸入?記錄| \ n“);

printf(“\ t \ t | \ t?2.?搜索?記錄?| \ n“);

printf(“\ t \ t | \ t?3.?刪除?記錄?| \ n“);

printf(“\ t \ t | \ t?4.?修改?記錄?| \ n“);

printf(“\ t \ t | \ t?5.?插入?記錄?| \ n“);

printf(“\ t \ t | \ t?6.?訂單?| \ n“);

printf(“\ t \ t | \ t?7.?number | \ n“);

printf(“\ t \ t | \ t?8.?顯示| \ n“);

printf(“\ t \ t |-| \ n \ n“);

printf(“\ t \ t \ t choose(0-8):“);

}

虛空?order()/*自定義排序函數*/

{?文件?* fp

結構?學生?t;

int?i=0,j=0,m = 0;

if((FP = fopen(“data . txt“,“r+“)= = NULL)

{?

printf(“可以嗎?不是嗎?打開!\ n ");

返回;

}

而(!feof(FP))?

if(fread(& amp;斯圖【m】?,LEN,1,FP)= 1)?

m++;

fclose(FP);

if(m = = 0)?

{

printf(“沒有?記錄!\ n ");

返回;

}

if((FP = fopen(“data . txt“,“WB“))= = NULL)

{

printf(“可以嗎?不是嗎?open \ n“);

返回;}

for(I = 0;我& ltm-1;i++)

for(j = I+1;j & ltm;j++)/*雙循環成就比較和交換*/

if(stu【I】。sum<斯圖【j】。總和)

{?t = stu【I】;斯圖【I】=斯圖【j】;stu【j】= t;}

if((FP = fopen(“data . txt“,“WB“))= = NULL)

{?printf(“可以嗎?不是嗎?open \ n“);返回;}

for(I = 0;我& ltm;i++)/*將重新排列的內容重寫到指定的磁盤文件中*/

if(fwrite(& amp;斯圖【我】?,LEN,1,fp)!=1)

{?

printf(“% s?可以嗎?不是嗎?保存!\ n ");?

getch();

}

fclose(FP);

printf(“保存?成功地\ n“);

}

虛空?del()/*自定義刪除函數*/

{文件?* fp

int?snum,I,j,m = 0;

夏爾。ch【2】;

if((FP = fopen(“data . txt“,“r+“)= = NULL)

{?printf(“可以嗎?不是嗎?open \ n“);返回;}

而(!feof(FP))if(fread(& amp;stu【m】,LEN,1,FP)= = 1)?m++;

fclose(FP);

if(m = = 0)?

{

printf(“沒有?記錄!\ n ");

返回;

}

printf(“拜托?輸入?那個?編號:“);

scanf(“% d“,& ampsnum);

for(I = 0;我& ltm;i++)

if(snum = = stu【I】。num)

?打破;

printf(“find?那個?學生,刪除?(是/否“);

scanf(“% s“,ch);

if(strcmp(ch,“y“)= = 0 | | strcmp(ch,“y“)= = 0)/*判斷是否刪除*/

for(j = I;j & ltm;j++)

stu【j】= stu【j+1】;/*將最後壹條記錄移動到前壹條記錄的位置*/

m-;/*記錄總數減去1*/

if((FP = fopen(“data . txt“,“WB“))= = NULL)

{?printf(“可以嗎?不是嗎?open \ n“);返回;}

for(j = 0;j & ltm;j++)/*將更改的記錄重寫到指定的磁盤文件*/

if(fwrite(& amp;斯圖【j】?,LEN,1,fp)!=1)

{?printf(“可以嗎?不是嗎?保存!\ n ");

getch();}

fclose(FP);

printf(“刪除?成功了!\ n ");

}

虛空?search()/*自定義查找函數*/

{?文件?* fp

int?snum,I,m = 0;

夏爾。ch【2】;

if((FP = fopen(“data . txt“,“Rb“))= = NULL)

{?printf(“可以嗎?不是嗎?open \ n“);返回;}

而(!feof(FP))if(fread(& amp;stu【m】,LEN,1,FP)= = 1)?m++;

fclose(FP);

if(m = = 0)?{ printf(“no?記錄!\ n ");返回;}

printf(“拜托?輸入?那個?編號:“);

scanf(“% d“,& ampsnum);

for(I = 0;我& ltm;i++)

if(snum = = stu【I】。num)/*查找輸入的學生編號是否在記錄中*/

{?printf(“find?那個?學生,表演?(是/否“);

scanf(“% s“,ch);

if(strcmp(ch,“Y“)= = 0 | | strcmp(ch,“Y“)= = 0)?

{

printf(“number name?electiveexperimentrequiredsum \ t \ n“);

printf(格式,數據);/*以指定格式輸出找到的結果*/

打破;

}

}?

if(I = = m)?printf(“可以嗎?不是嗎?找到嗎?那個?學生!\ n ");/*未找到任何信息*/

}

虛空?modify()/*用戶定義的修改函數*/

{?文件?* fp

int?I,j,m=0,snum

if((FP = fopen(“data . txt“,“r+“)= = NULL)

{?printf(“可以嗎?不是嗎?open \ n“);返回;}

而(!feof(FP))

if(fread(& amp;stu【m】,LEN,1,FP)= = 1)?m++;

if(m = = 0)?{ printf(“no?記錄!\ n ");

fclose(FP);

返回;

}

show();

printf(“拜托?輸入?那個?號碼?的?那個?學生?哪個?做什麽?妳呢。想要嗎?去哪?修改!\ n ");

printf(“修改?編號:“);

scanf(“% d“,& ampsnum);

for(I = 0;我& ltm;i++)

if(snum = = stu【I】。num)/*檢索記錄中是否有需要修改的信息*/

打破;

printf(“find?那個?學生!妳呢。可以嗎?修改!\ n ");

printf(“name:“);

scanf(“% s“,stu【I】。姓名);/*輸入姓名*/

printf(“elective:“);

scanf(“% lf“,& amp斯圖【我】。elec);/*輸入選修課的分數*/

printf(“實驗:“);

scanf(“% lf“,& amp斯圖【我】。expe);/*輸入實驗課的結果*/

printf(“必需?課程:“);

scanf(“% lf“,& amp斯圖【我】。熱區);/*輸入必修課程分數*/

printf(“修改?成功了!”);

斯圖【我】。sum = stu【I】。elec+stu【I】expe+stu【I】。熱區;

if((FP = fopen(“data . txt“,“WB“))= = NULL)

{?printf(“可以嗎?不是嗎?open \ n“);返回;}

for(j = 0;j & ltm;j++)/*將新修改的信息寫入指定的磁盤文件*/

if(fwrite(& amp;斯圖【j】?,LEN,1,fp)!=1)

{?printf(“可以嗎?不是嗎?救人啊!”);?getch();?}

fclose(FP);

}

虛空?insert()/*自定義插入函數*/

{?文件?* fp

int?I,j,k,m=0,snum

if((FP = fopen(“data . txt“,“r+“)= = NULL)

{?printf(“可以嗎?不是嗎?open \ n“);返回;}

而(!feof(FP))

if(fread(& amp;stu【m】,LEN,1,FP)= = 1)?m++;

if(m = = 0)?{ printf(“no?記錄!\ n ");

fclose(FP);

返回;

}

printf(“拜托?輸入?位置?在哪裏?做什麽?妳呢。想要嗎?去哪?插入!(輸入?那個?number)\ n“);

scanf(“% d“,& ampsnum);/*輸入要插入的位置*/

for(I = 0;我& ltm;i++)

if(snum = = stu【I】。num)

打破;

for(j = m-1;j & gt我;j -)

斯圖【j+1】=斯圖【j】;/*從最後壹條記錄向後移動壹位*/

printf(“現在?拜托了。輸入?那個?新的?信息。\ n ");

printf(“number:“);

scanf(“% d“,& amp斯圖【i+1】。num);

for(k = 0;k & ltm;k++)

if(stu【k】。num = = stu【I+1】。num)

{

printf(“the?號碼?是嗎?現有的,按?有嗎?去哪?繼續!”);

getch();

fclose(FP);

返回;

}

printf(“name:“);

scanf(“% s“,stu【I+1】。姓名);

printf(“elective:“);

scanf(“% lf“,& amp斯圖【i+1】。elec);

printf(“實驗:“);

scanf(“% lf“,& amp斯圖【i+1】。expe);

printf(“必需?課程:“);

scanf(“% lf“,& amp斯圖【i+1】。熱區);

斯圖【i+1】。sum = stu【I+1】。elec+stu【I+1】。expe+stu【I+1】。熱區;

if((FP = fopen(“data . txt“,“WB“))= = NULL)

{?printf(“可以嗎?不是嗎?open \ n“);返回;}

for(k = 0;k & lt= m;k++)

if(fwrite(& amp;斯圖【k】?,LEN,1,fp)!= 1)/*將修改後的記錄寫入磁盤文件*/

{?printf(“可以嗎?不是嗎?救人啊!”);?getch();?}

fclose(FP);

}

虛空?總計()

{?文件?* fp

int?m = 0;

if((FP = fopen(“data . txt“,“r+“)= = NULL)

{?printf(“可以嗎?不是嗎?open \ n“);返回;}

而(!feof(FP))

if(fread(& amp;stu【m】,LEN,1,FP)= = 1)?

m++;/*統計記錄的數量表示學生數量*/

if(m = = 0)?{ printf(“no?記錄!\ n ");fclose(FP);返回;}

printf(“the?班級?是嗎?%d?同學們!\n“,m);/*輸出統計數據*/

fclose(FP);

}