-
大小: 277KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-05-20
- 語言: 其他
- 標(biāo)簽: 數(shù)據(jù)結(jié)構(gòu)??
資源簡介
里面有文檔,有需自取,里面有文檔,有需自取,里面有文檔,有需自取

代碼片段和文件信息
#include
#include
#include
#include?
typedef?struct?pnode??????????//結(jié)構(gòu)體定義?用于存放學(xué)生信息的節(jié)點(diǎn)
{
char?name?[10];???????????//姓名
char?num[16];?????????????//學(xué)號
char?dor[30];?????????????//房號
char?group[20];???????????//班級
}student;
char?filename[20];????????????//文件名
FILE?*fp;?????????????????????//指向文件的指針
void?creat()??????????????????//?創(chuàng)建一個二進(jìn)制文件???用于存放學(xué)生數(shù)據(jù)
{???student?*person;
????person=(student?*)malloc(sizeof(student));???//為節(jié)點(diǎn)分配內(nèi)存
????printf(“\n?請您輸入文件名:\n“);
????scanf(“%s“filename);
????if((fp=fopen(filename“w+“))==NULL)??
{printf(“\n?您沒有輸入文件名?不能找到文件“);exit(0);}
printf(“\n請輸入學(xué)生的姓名?學(xué)號?房號?班級?用空格隔開?以#結(jié)束\n“);
scanf(“%s“person->name);
while(strcmp(person->name“#“))??{??//該循環(huán)用于控制學(xué)生信息的錄入?遇#結(jié)束 {??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()?????????????????????????????//文件讀取函數(shù)??
{???printf(“\n請輸入文件名:\n“);
????scanf(“%s“filename);???????????????????//此處輸入為文件的路徑??????
if((fp=fopen(filename“r+“))==NULL)
{printf(“\n無法打開該文件:\n“);exit(0);}
fclose(fp);
}
void??output()????????????????????????????//輸出函數(shù)?用于輸出文件的全部信息
{???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))?????//此循環(huán)用于對文件數(shù)據(jù)中關(guān)鍵字學(xué)號進(jìn)行從小到大冒泡排序
????{???int?abcd;????//a為循環(huán)結(jié)束判定變量??b,c,d用于起泡排序?qū)W號交換的替換
if((fp=fopen(filename“r+“))==NULL)?????????//冒泡排序
{printf(“\n?無法打開該文件“);exit(0);}
while(!feof(fp))???????????????????????????//?外部循環(huán)
?{
?while(!feof(fp))??????????????????//內(nèi)部循環(huán)
?{
?offset1=ftell(fp);????????????//獲取文件內(nèi)部當(dāng)前指針位置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;???????????????????//文件結(jié)束?跳出循環(huán)
?????????????????????offset2=ftell(fp);???????????//獲取文件內(nèi)部下一指針位置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)??//如果?學(xué)號1大于等于學(xué)號2?則交換全部數(shù)據(jù)
?{???strcpy(name3name1);
?????????????????????????strcpy(name1name2);
?????????????????????????strcpy(name2name3);
?????????????????????????strcpy(num3num1);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????12462??2017-06-25?21:58??宿舍管理系統(tǒng)\F1683108_張巖\宿舍管理系統(tǒng).c
?????文件?????388096??2017-11-27?22:01??宿舍管理系統(tǒng)\F1683108_張巖\宿舍管理系統(tǒng).doc
?????目錄??????????0??2017-11-27?22:01??宿舍管理系統(tǒng)\F1683108_張巖
?????目錄??????????0??2017-11-27?22:00??宿舍管理系統(tǒng)
-----------?---------??----------?-----??----
???????????????400558????????????????????4
評論
共有 條評論