• 大小: 277KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-20
  • 语言: 其他
  • 标签: 数据结构  

资源简介

里面有文档,有需自取,里面有文档,有需自取,里面有文档,有需自取

资源截图

代码片段和文件信息

#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


评论

共有 条评论