宿舍管理系统 链表 C语言 C++ 数据结构 链表 课程设计.docVIP

  • 25
  • 0
  • 约4.47千字
  • 约 10页
  • 2018-01-02 发布于河南
  • 举报

宿舍管理系统 链表 C语言 C++ 数据结构 链表 课程设计.doc

宿舍管理系统链表C语言C数据结构链表课程设计

宿舍管理系统 链表 C语言 C++ 数据结构 链表 课程设计 #include stdio.h #include stdlib.h #include string.h #include conio.h /* 采用双向链表结构,方便添加删除和排序 */ typedef struct node{ /* 定义结构体类型dnode */ long id; /* 楼号和房间号,因为一个楼号加一个房间号才能唯一定位一个房间,前两个字节存楼号,后两个字节存房间号 */ int area; /* 面积 */ int max; /* 所容纳人数 */ int current; /* 已入住人数 */ struct node *prior,*next; /* 前驱和后继指针 */ }dnode; dnode* head = NULL; void output_one(dnode* n) /* 输出一条记录 */ { int lou; int room; room = n-id 0xffff; lou = n-id 16; printf(%d\t%d\t%d\t%d\t%d\n, lou, room, n-area, n-max,n-current); } void output() /* 输出所有记录 */ { dnode* pos = head; if(head == NULL) { printf(no record\n); return; } printf(lou\troom\tarea\tmax\tcurrent\n); while (pos) { output_one(pos); /* 循环调用output_one */ pos = pos-next; } } void sort() { int max = 0, i; dnode* pos = head; if(head == NULL) { printf(no record\n); return; } while(pos) { if(pos-currentmax) max = pos-current; pos = pos-next; } printf(lou\troom\tarea\tmax\tcurrent\n); for(i=max; i=0; i--) { pos = head; while (pos) { if(pos-current == i) output_one(pos); /* 循环调用output_one */ pos = pos-next; } } } int insert() /* 插入一条数据 */ { int lou; int room; long louL; dnode* pos = head; dnode* n = malloc(sizeof(dnode)); n-prior = NULL; n-next = NULL; //楼号、房间号、面积、所容纳人数、已入住人数 printf(building:); scanf(%d, lou); printf(room:); scanf(%d, room); printf(area:); scanf(%d, n-area); printf(max:); scanf(%d, n-max); printf(current:); scanf(%d, n-current); louL = lou; louL = louL16; n-id = louL + room; if(head==NULL) /* 如果还没有头节点,就作为头节点 */ { head = n; return 1; } while (pos) { if(pos-id n-id) /* 按顺序查找,如果找到比自己大的,就插在它前面 */ { if(pos-prior) pos-prior-next = n; n-prior = pos-prior; pos-prior = n; if(pos-next) pos-next-prior = n; n-next = pos; if(pos == head) head = n; return 1; } else if(pos-id == n-i

文档评论(0)

1亿VIP精品文档

相关文档