一、程序要求
該程序是由C語言編寫的一個宿舍管理查詢軟件,其主要功能是實現(xiàn)對學生信息的增加、刪除、修改、查詢、排序、存儲、加載。其中查詢可以分別以姓名、學號、寢室號為關(guān)鍵字查詢學生信息。排序可以分別以學號和寢室號為關(guān)鍵字進行從小到大的排序。方便舍管阿姨管理宿舍。
二、程序設(shè)計
2.1、總體設(shè)計:
①輸入的形式:根據(jù)用戶所選擇的功能,然后再依據(jù)程序相應的提示進行輸入:
選擇功能1(添加學生信息):按照從先到后的順序輸入學生姓名(30個字符以內(nèi)),學生學號(15個字符以內(nèi)),宿舍號碼(整數(shù),范圍在0~32767)。
選擇功能2(修改學生信息):按照從先到后的順序輸入要修改的學生姓名(30個字符以內(nèi)),修改后學生的姓名(30個字符以內(nèi)),修改后學生的學號(15個字符以內(nèi)),修改后學生的宿舍號(整數(shù),范圍在0~32767)。
選擇功能3(刪除學生信息):輸入要刪除的學生姓名(30個字符以內(nèi))。
選擇功能4(以姓名查詢學生信息):輸入要查找的學生的姓名(30個字符以內(nèi))。
選擇功能5(以學號查詢學生信息):輸入要查找的學生的學號(15個字符以內(nèi))。
選擇功能6(以寢室號查詢學生信息):輸入寢室號(整數(shù),范圍在0~32767)。
②輸出的形式:根據(jù)用戶所選擇的功能不同,會有不同的輸出:
選擇功能1(添加學生信息):根據(jù)程序的判斷會輸出添加成功或者添加失敗。
選擇功能2(修改學生信息):根據(jù)程序的判斷會輸出修改成功或者修改失敗。
選擇功能3(刪除學生信息):根據(jù)程序的判斷會輸出刪除成功或者刪除失敗。
選擇功能4(以姓名查詢學生信息):根據(jù)程序的判斷,如果查找成功,則會輸出相應的學生信息,反之,則會輸出查找失敗。
選擇功能5(以學號查詢學生信息):根據(jù)程序的判斷,如果查找成功,則會輸出相應的學生信息,反之,則會輸出查找失敗。
選擇功能6(以寢室號查詢學生信息):根據(jù)程序的判斷,如果查找成功,則會輸出相應的學生信息,反之,則會輸出查找失敗。
選擇功能7,8(以寢室號和學號為關(guān)鍵字進行從小到大的排序):程序會輸出排序成功。
選擇功能9(顯示所有學生的信息):程序會輸出所有以存學生的信息。
選擇功能10(保存操作):根據(jù)程序的判斷會輸出保存成功或者保存失敗。
選擇功能11(加載記錄):根據(jù)程序的判斷會輸出加載記錄成功或者加載記錄失敗。
2.2、詳細設(shè)計
2.本程序所包含的15個函數(shù)為:
(1).主函數(shù)main();
(2).菜單函數(shù)Menu();
(3).判斷學號是否重復函數(shù)S_number_Judge(Student S,int t);
(4).添加學生信息函數(shù)Add(Student S);
(5).修改學生信息函數(shù)Alter(Student S);
(6).刪除學生信息函數(shù)Delete(Student S);
(7).顯示所有學生信息函數(shù)Display_All(Student S);
(8).按照寢室號從小到大排序函數(shù)Sort_D_number(Student S);
(9).按照學號從小到大排序函數(shù)Sort_S_number(Student S);
(10).根據(jù)學生姓名查找函數(shù)Query_S_name(Student S);
(11).根據(jù)學生學號查找函數(shù)Query_S_number(Student S);
(12).根據(jù)寢室號查找函數(shù)Query_D_number(Student S)
(13).存儲函數(shù)Save(Student S);
(14).加載函數(shù)Load(Student S);
(15).判斷在退出程序時是否保存函數(shù)Judge_Save(int i,Student S);
各函數(shù)之間的調(diào)用關(guān)系如下:
添加圖片注釋,不超過 140 字(可選)
三、系統(tǒng)實現(xiàn)
部分程序代碼:
#include
#include
#include
#define M 100
int flag1=0,flag2=0; //判斷存儲是否成功
FILE *fp;
if((fp=fopen("宿舍管理.txt","w"))==NULL)
{
printf("打開文件失敗!nn");
flag1=1;
exit(0); //結(jié)束程序
}
for(i=1;i<=S->Total;i++)
if(fwrite(&S[i],sizeof(Std),1,fp)!=1)
{
printf("數(shù)據(jù)寫入錯誤nn");
flag2=1;
exit(0);
}
if(!flag1&&!flag2)
{
printf("數(shù)據(jù)存儲成功!nn");
dirty=0;
}
fclose(fp); //關(guān)閉一個流。關(guān)閉一個打開的文件, fp是此前通過調(diào)用fopen返回的文件指針。
}
void Menu()
{
//菜單
printf(" 宿舍管理nn");
printf("菜單n");
printf("1.添加新入住學生信息 | 8.按照班級號從小到大排序n");
printf("2.修改宿舍學生信息 | 9.按照寢室號從小到大排序n");
printf("3.刪除搬出宿舍學生信息 | 10.按照學號從小到大排序n");
printf("4.以姓名查詢學生信息 | 11.顯示所有學生的相關(guān)信息n");
printf("5.以學號查詢學生信息 | 12.保存操作n");
printf("6.以宿舍號查詢該宿舍中的全部學生信息 | 13.加載記錄n");
printf("7.以班級號查詢該班級中的全部學生信息 | 14.退出程序n");
printf("******************************************************************************n");
四、系統(tǒng)調(diào)試
1、初次使用在菜單中選1輸入入住學生信息
按照先后順序分別輸入:
姓名:吳武,學號:20132255,班級:高三1班,宿舍號:404 ,地址27#,號碼13878797218
姓名:周王,學號:20132551,班級:高三1班,宿舍號:402,地址:27#,號碼 15296812933
姓名:秦學,學號:20135599,班級:高三2班,宿舍號:403,地址:27#,號碼 15240662499
分別如下圖:
2、對功能2(修改學生信息)的測試:修改學生秦學的信息
3、對功能3(刪除學生信息)的測試:刪除搬出宿舍學生吳武的信息
4、對功能4(以姓名查詢學生信息)的測試:查詢學生秦學的信息
5、對功能6的測試:查詢宿舍402
6、對功能9進行測試:
評論
查看更多