資源簡介
里面有文檔,有需自取,里面有文檔,有需自取,里面有文檔,有需自取

代碼片段和文件信息
#include
#include
#include
#include?
typedef?struct?pnode??????????//結構體定義?用于存放學生信息的節點
{
char?name?[10];???????????//姓名
char?num[16];?????????????//學號
char?dor[30];?????????????//房號
char?group[20];???????????//班級
}student;
char?filename[20];????????????//文件名
FILE?*fp;?????????????????????//指向文件的指針
void?creat()??????????????????//?創建一個二進制文件???用于存放學生數據
{???student?*person;
????person=(student?*)malloc(sizeof(student));???//為節點分配內存
????printf(“\n?請您輸入文件名:\n“);
????scanf(“%s“filename);
????if((fp=fopen(filename“w+“))==NULL)??
{printf(“\n?您沒有輸入文件名?不能找到文件“);exit(0);}
printf(“\n請輸入學生的姓名?學號?房號?班級?用空格隔開?以#結束\n“);
scanf(“%s“person->name);
while(strcmp(person->name“#“))??{??//該循環用于控制學生信息的錄入?遇#結束 {??scanf(“%s?%s?%s“person->numperson->dorperson->group);
fprintf(fp“%-10s%-10s%-10s%-10s\n“person->nameperson->numperson->dorperson->group);scanf(“%s“person->name);
????}
fclose(fp);
}
void?readfile()?????????????????????????????//文件讀取函數??
{???printf(“\n請輸入文件名:\n“);
????scanf(“%s“filename);???????????????????//此處輸入為文件的路徑??????
if((fp=fopen(filename“r+“))==NULL)
{printf(“\n無法打開該文件:\n“);exit(0);}
fclose(fp);
}
void??output()????????????????????????????//輸出函數?用于輸出文件的全部信息
{???student?*person;
????long?offset1offset2;
????char?name1[10]name2[10]name3[10];
????char?num1[16]num2[16]num3[16];
????char?dor1[30]dor2[30]dor3[30];
????char?group1[20]group2[20]group3[20];
person=(student?*)malloc(sizeof(student));
????if((fp=fopen(filename“r“))==NULL)
{printf(“\n?無法打開該文件“);exit(0);}
????while(!feof(fp))?????//此循環用于對文件數據中關鍵字學號進行從小到大冒泡排序
????{???int?abcd;????//a為循環結束判定變量??b,c,d用于起泡排序學號交換的替換
if((fp=fopen(filename“r+“))==NULL)?????????//冒泡排序
{printf(“\n?無法打開該文件“);exit(0);}
while(!feof(fp))???????????????????????????//?外部循環
?{
?while(!feof(fp))??????????????????//內部循環
?{
?offset1=ftell(fp);????????????//獲取文件內部當前指針位置fscanf(fp“%s%s%s%s\n“person->nameperson->numperson->dorperson->group);
?????????????????????strcpy(name1person->name);
?strcpy?(num1person->num);
?????????????????????strcpy(dor1person->dor);
?????????????????????strcpy(group1person->group);
?????????????????????if(feof(fp))???
?break;???????????????????//文件結束?跳出循環
?????????????????????offset2=ftell(fp);???????????//獲取文件內部下一指針位置fscanf(fp“%s%s%s%s\n“person->nameperson->numperson->dorperson->group);
?????????????????????strcpy?(name2person->name);
?????????????????????strcpy(num2person->num);
?????????????????????strcpy(dor2person->dor);
?????????????????????strcpy(group2person->group);
?????????????????????b=strlen(num1);
?????????????????????c=strlen(num2);
?????????????????????d=strcmp(num1num2);
?????????????????????if(b==c&&d>0)??//如果?學號1大于等于學號2?則交換全部數據
?{???strcpy(name3name1);
?????????????????????????strcpy(name1name2);
?????????????????????????strcpy(name2name3);
?????????????????????????strcpy(num3num1);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????12462??2017-06-25?21:58??宿舍管理系統\F1683108_張巖\宿舍管理系統.c
?????文件?????388096??2017-11-27?22:01??宿舍管理系統\F1683108_張巖\宿舍管理系統.doc
?????目錄??????????0??2017-11-27?22:01??宿舍管理系統\F1683108_張巖
?????目錄??????????0??2017-11-27?22:00??宿舍管理系統
-----------?---------??----------?-----??----
???????????????400558????????????????????4
評論
共有 條評論