test_file_read.c
上传用户:janny_wxd
上传日期:2010-02-03
资源大小:261k
文件大小:4k
源码类别:

控制台编程

开发平台:

C/C++

  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<stdlib.h>
  4. #define SIZE 3
  5. #define MAX 13
  6. #define OK 1
  7. #define TRUE 1
  8. #define FALSE 0
  9. #define ERROR 0
  10. #define OVERFLOW -2
  11. #define OPSETSIZE 7
  12. #define STACK_INIF_SIZE 50
  13. #define STACKINCREMENT 10
  14. #define PR printf
  15. //FILE *fp_airline,*fp_customer,*fp;
  16. typedef int status;
  17. typedef struct airline{
  18. char line_num[8];//航班号
  19. char plane_num[8];//飞机号
  20. char end_place[20];//目的的
  21. int total;//座位总数
  22. int left;//剩余座位
  23. struct airline *next;//下一个结点
  24. }airline;
  25. typedef struct customer{
  26. char name[9];//顾客名
  27. char line_num[8];//航班号
  28. int seat_num;//座位号
  29. struct customer *next;//下一个结点
  30. }customer;
  31. status init_airline(airline *l){//初始化链表
  32. l=(airline*)malloc(sizeof(airline));
  33. if(l==NULL){
  34. exit(OVERFLOW);
  35. }
  36. l->next=NULL;
  37. return OK;
  38. }
  39. status init_cus(customer *l){//初始化链表
  40. l=(customer*)malloc(sizeof(customer));
  41. if(l==NULL){
  42. exit(OVERFLOW);
  43. }
  44. l->next=NULL;
  45. return OK;
  46. }
  47. status insert_airline(airline **p,char *line_num,char *plane_num,char *end_place,int total,int left){//airline链表插入操作
  48. airline *q;
  49. q=(airline*)malloc(sizeof(airline));
  50. strcpy(q->line_num , line_num);
  51. strcpy(q->plane_num , plane_num);
  52. strcpy(q->end_place , end_place);
  53. q->total  =total;
  54. q->left =left;
  55. q->next=NULL;
  56. (*p)->next=q;
  57. (*p)=(*p)->next;
  58.  //   printf("insert %d ,%dis succssed!n",e,bl);
  59. return OK;
  60. }
  61. status insert_cus(customer **p,char *name,char *line_num,int seat){//customer链表插入操作
  62. customer *q;
  63. q=(customer*)malloc(sizeof(customer));
  64. strcpy(q->name , name);
  65. strcpy(q->line_num , line_num);
  66. q->seat_num =seat;
  67. q->next=NULL;
  68. (*p)->next=q;
  69. (*p)=(*p)->next;
  70.  //   printf("insert %d ,%dis succssed!n",e,bl);
  71. return OK;
  72. }
  73. customer *delete_cus(customer *h,char *name)
  74. {
  75. customer *p,*pr,*q,*qr;
  76. qr=pr=h;
  77. p=pr->next ;
  78. q=qr->next ;
  79. while(p!=NULL)
  80. {
  81. if(strcmp(name,p->name )==0)
  82. {
  83. qr->next =q->next ;
  84. PR("delet %sn",q->name );
  85. return h;
  86. }
  87. qr=qr->next ;
  88. q=qr->next ;
  89. }
  90. PR("没有这用户,无法完成删除任务!n");
  91. return 0;
  92. }
  93. airline *modefy_airline(airline *l,char *line_num)
  94. {
  95. airline *q;
  96. q=l->next ;
  97. for(;q->next !=NULL;q=q->next )
  98. {
  99. if(strcmp(line_num,q->line_num )==0)
  100. {
  101. q->left ++;
  102. PR("modefy %sn",q->line_num );
  103. return l;
  104. }
  105. }
  106. PR("没有这个航线,无法完成修改任务!n");
  107. return 0;
  108. }
  109. status save_airline(airline *l)
  110. {
  111. FILE *fp_airline;
  112. airline *p=l->next ;
  113. char filename[50]="c:\airline.dat";
  114. if((fp_airline=fopen("filename","wb"))==NULL)
  115. {
  116. printf("can not open file to write:%sn",filename);
  117. return ERROR;
  118. }
  119. for (;p->next !=NULL;p=p->next ){
  120. if(fwrite(p,sizeof(airline),1,fp_airline)!=1)
  121. {
  122. PR("airline_dat write errorn");
  123. fclose(fp_airline);
  124. return ERROR;
  125. }
  126. }
  127. fclose(fp_airline);
  128. return OK;
  129. }
  130. status save_customer(customer *l)
  131. {
  132. FILE *fp_customer;
  133. customer *p=l->next ;
  134. char filename[50]="c:\customer.dat";
  135. if((fp_customer=fopen("filename","wb"))==NULL)
  136. {
  137. printf("can not open file to write:%sn",filename);
  138. return ERROR;
  139. }
  140. for (;p->next !=NULL;p=p->next ){
  141. if(fwrite(p,sizeof(customer),1,fp_customer)!=1)
  142. {
  143. PR("customer_dat write errorn");
  144. fclose(fp_customer);
  145. return ERROR;
  146. }
  147. }
  148. fclose(fp_customer);
  149. return OK;
  150. }
  151. status load_airline(airline *l)
  152. {
  153. FILE *fp_airline;
  154. airline *p=l->next ;
  155. char filename[50]="c:\airline.dat";
  156. if((fp_airline=fopen("filename","rb"))==NULL)
  157. {
  158. printf("can not open file to load:%sn",filename);
  159. return ERROR;
  160. }
  161. for (;p->next !=NULL;p=p->next ){
  162. if(fread(p,sizeof(airline),1,fp_airline)!=1)
  163. {
  164. PR("airline_dat load errorn");
  165. fclose(fp_airline);
  166. return ERROR;
  167. }
  168. }
  169. fclose(fp_airline);
  170. return OK;
  171. }
  172. status load_customer(customer *l)
  173. {
  174. FILE *fp_customer;
  175. customer *p=l->next ;
  176. char filename[50]="c:\customer.dat";
  177. if((fp_customer=fopen("filename","rb"))==NULL)
  178. {
  179. printf("can not open file to load:%sn",filename);
  180. return ERROR;
  181. }
  182. for (;p->next !=NULL;p=p->next ){
  183. if(fread(p,sizeof(customer),1,fp_customer)!=1)
  184. {
  185. PR("customer_dat load errorn");
  186. fclose(fp_customer);
  187. return ERROR;
  188. }
  189. }
  190. fclose(fp_customer);
  191. return OK;
  192. }
  193. void main()
  194. {
  195. PR("mainn");
  196. }