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

控制台编程

开发平台:

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_customer(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_customer(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. PR("save_customern");
  136. if((fp_customer=fopen("filename","wb"))==NULL)
  137. {
  138. printf("can not open file to write:%sn",filename);
  139. return ERROR;
  140. }
  141. for (;p->next !=NULL;p=p->next ){
  142. if(fwrite(p,sizeof(customer),1,fp_customer)!=1)
  143. {
  144. PR("customer_dat write errorn");
  145. fclose(fp_customer);
  146. return ERROR;
  147. }
  148. }
  149. fclose(fp_customer);
  150. return OK;
  151. }
  152. status load_airline(airline *l)
  153. {
  154. FILE *fp_airline;
  155. airline *p=l->next ;
  156. char filename[50]="c:\airline.dat";
  157. if((fp_airline=fopen("filename","rb"))==NULL)
  158. {
  159. printf("can not open file to load:%sn",filename);
  160. return ERROR;
  161. }
  162. for (;p->next !=NULL;p=p->next ){
  163. if(fread(p,sizeof(airline),1,fp_airline)!=1)
  164. {
  165. PR("airline_dat load errorn");
  166. fclose(fp_airline);
  167. return ERROR;
  168. }
  169. }
  170. fclose(fp_airline);
  171. return OK;
  172. }
  173. status load_customer(customer *l)
  174. {
  175. FILE *fp_customer;
  176. customer *p=l->next ;
  177. char filename[50]="c:\customer.dat";
  178. if((fp_customer=fopen("filename","rb"))==NULL)
  179. {
  180. printf("can not open file to load:%sn",filename);
  181. return ERROR;
  182. }
  183. for (;p->next !=NULL;p=p->next ){
  184. if(fread(p,sizeof(customer),1,fp_customer)!=1)
  185. {
  186. PR("customer_dat load errorn");
  187. fclose(fp_customer);
  188. return ERROR;
  189. }
  190. }
  191. fclose(fp_customer);
  192. return OK;
  193. }
  194. airline * creat_airline(airline *l)
  195. {
  196. airline *p=l;
  197. int i=0;
  198. char *line_num[3]={"bjnc01","bjsh02","shgz03"};
  199. char *plane_num[3]={"plane1","plane2","plane3"};
  200. char *end_place[3]={"南昌","上海","广州"};
  201. int total[3]={100,100,100};
  202. int left[3]={51,50,78};
  203. for (i=0;i<3;i++){
  204. insert_airline(&p,line_num[i],plane_num[i],end_place[i],total[i],left[i]);
  205. }
  206. return l;
  207. }
  208. customer * creat_customer(customer *l)
  209. {
  210. customer *p=l;
  211. int i=0;
  212. char *name[3]={"欧阳锦林","尹焕亮","付胜"};
  213. char *line_num[3]={"bjnc01","bjsh02","shgz03"};
  214. int seat_num[3]={1,5,10};
  215. for (i=0;i<3;i++){
  216. insert_customer(&p,name[i],line_num[i],seat_num[i]);
  217. }
  218. return l;
  219. }
  220. void main()
  221. {
  222. airline *air;
  223. customer *cus;
  224. PR("mainn");
  225. init_airline(air);
  226. init_customer(cus);
  227. PR("init finishn");
  228. air=creat_airline(air);
  229. cus=creat_customer(cus);
  230. save_airline(air);
  231. save_customer(cus);
  232. }