城区古树名木信息管理系统

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include "file.h"
#include "DataStruct.h"
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
#include "print.h"
#include
struct AreaTable *ptr, *head, *current, *prev;
struct TreeTable *ptr2,*head2,*current2,*prev2;
struct ManagerTable *ptr3,*head3,*current3,*prev3;

void read_func1()
{
FILE * fptr;

head=(struct AreaTable *) malloc(sizeof(struct AreaTable));
head->NextArea=NULL;

if((fptr=fopen("table1.txt","r"))==NULL)
{
printf(" 表中没数据,按任意键插入!!");
getch();
system("cls");
Title();
printf(" 城区基本信息表数据录入:");
insert_func1();
}
else
{
ptr=(struct AreaTable *) malloc(sizeof(struct AreaTable));
while(fscanf(fptr,"%s %s %s %s %s %s \n",&ptr->AreaNum,&ptr->AreaName,&ptr->Department,&ptr->Address,&ptr->Tel,&ptr->Manage)!=EOF)
{
sort_func1();
ptr=(struct AreaTable *) malloc(sizeof(struct AreaTable));
}
fclose(fptr);
}

}

void write_func1()
{
FILE *fptr;
fptr=fopen("table1.txt","w");
current=head->NextArea;
while(current != NULL)
{
fprintf(fptr, "%s %s %s %s %s %s \n", current->AreaNum, current->AreaName,current->Department,
current->Address,current->Tel,current->Manage);
current = current->NextArea;
}
fclose(fptr);
}

void insert_func1()
{
fflush(stdin);
ptr=(struct AreaTable *)malloc(sizeof(struct AreaTable));
ptr->at_n++;//城区计数加1
printf("\n 区号:");
gets(ptr->AreaNum);
printf("\n 区名:");
gets(ptr->AreaName);
printf("\n 主管部门:");
gets(ptr->Department);
printf("\n 地址:");
gets(ptr->Address);
printf("\n 电话:");
gets(ptr->Tel);
printf("\n 负责人:");
gets(ptr->Manage);

sort_func1();
}

//升序排列
void sort_func1()
{
prev=head;
current=head->NextArea;
while(current!=NULL && ( atof(current->AreaNum) < atof(ptr->AreaNum))) //把字符型想转换成浮点型
{
prev=current;
current=current->NextArea;
}
ptr->NextArea=current;
prev->NextArea=ptr;
}


void delete_func1()
{
fflush(stdin);
char del_area[20];
printf(" 需删除的区号: ");
gets(del_area);

prev = head;
current = head->NextArea;
while ((current != NULL) && (strcmp(current->AreaNum , del_area)!=0))
{
prev = current;
current = current->NextArea;
}
if (current != NULL)
{
prev->NextArea = current->NextArea;
free(current);
prev->at_n--;//城区计数减一
printf("\n %s 区号记录删除\n",del_area);
}
else
printf(" 区号 %s 不存在\n",del_area);
}

void display_func1()
{
int count=0;
system("cls");
if(head->NextArea == NULL)
{
printf(" No student record\n");
}
else
{
printf(" 区号, 区名, 管理部门, 地址,

电话, 管理员 \n");
printf(" ------------------------------------------\n");
current=head->NextArea;
while(current != NULL)
{
printf(" %s %s %s %s %s %s\n", current->AreaNum, current->AreaName,current->Department,
current->Address,current->Tel,current->Manage);
count++;
current=current->NextArea;
// if(count % 20 == 0) getch();
}
printf(" -------------------------------------------\n");
printf(" Total %d record(s) found\n", count);
}
}

void modify_func1()
{
}



void read_func2()
{
FILE * fptr2;

head2=(struct TreeTable *) malloc(sizeof(struct TreeTable));
head2->NextTree=NULL;

if((fptr2=fopen("table2.txt","r"))==NULL)
{
printf(" 表中没数据,按任意键插入!!");
getch();
system("cls");
Title();
printf(" 古树名木基本信息表数据录入:");
insert_func2();
}
else
{
ptr2=(struct TreeTable *) malloc(sizeof(struct TreeTable));
while(fscanf(fptr2,"%s %s %s %s %s %d %s %c %s\n",&ptr2->AreaNum,&ptr2->TreeNum,&ptr2->Name,&ptr2->SName,
&ptr2->Property,&ptr2->Age,&ptr2->ConTime,&ptr2->ProLevel,&ptr2->Distribution )!=EOF)
{
sort_func2();
ptr2=(struct TreeTable *) malloc(sizeof(struct TreeTable));
}
fclose(fptr2);
}

}

void write_func2()
{
FILE *fptr2;
fptr2=fopen("table2.txt","w");
current2=head2->NextTree;
while(current2 != NULL)
{
fprintf(fptr2, "%s %s %s %s %s %d %s %c %s\n", current2->AreaNum, current2->TreeNum,current2->Name,current2->SName,
current2->Property,current2->Age,current2->ConTime,current2->ProLevel,current2->Distribution);
current2 = current2->NextTree;
}
fclose(fptr2);
}

void insert_func2()
{
fflush(stdin);
ptr2=(struct TreeTable *)malloc(sizeof(struct TreeTable));
printf("\n 区号:");
gets(ptr2->AreaNum);
printf("\n 古树名木编号:");
gets(ptr2->TreeNum);
printf("\n 名称:");
gets(ptr2->Name);
printf("\n 学名:");
gets(ptr2->SName);
printf("\n 科属:");
gets(ptr2->Property);
printf("\n 树龄:");
scanf("%d",&ptr2->Age);
printf("\n 确认时间:");
fflush(stdin);
gets(ptr2->ConTime);
printf("\n 保护级别:");
ptr2->ProLevel=getchar();
fflush(stdin);
printf("\n 栽植地点:");
gets(ptr2->Distribution);
fflush(stdin);
sort_func2();
}

//升序排列
void sort_func2()
{
prev2=head2;
current2=head2->NextTree;
while(current2!=NULL && ( atof(current2->TreeNum) < atof(ptr2->TreeNum))) //把字符型想转换成浮点型
{
prev2=current2;
current2=current2->NextTree;
}
ptr2->NextTree=current2;
prev2->NextTree=ptr2;
}


void delete_func2()
{
fflush(stdin);
char del_num[20];
printf("

需删除的古树名木编号: ");
gets(del_num);

prev2 = head2;
current2 = head2->NextTree;
while ((current2 != NULL) && (strcmp(current2->TreeNum , del_num)!=0))
{
prev2 = current2;
current2 = current2->NextTree;
}
if (current2 != NULL)
{
prev2->NextTree = current2->NextTree;
free(current2);
printf("\n %s 选定的古树名木记录删除\n",del_num);
}
else
printf(" 记录 %s 不存在\n",del_num);
}

void display_func2()
{
int count=0;
system("cls");
if(head2->NextTree == NULL)
{
printf(" No student record\n");
}
else
{
printf(" 区号,古树名木编号,名称,学名,科属,树龄,确认时间,保护级别,栽植地点 \n");
printf(" ------------------------------------------\n");
current2=head2->NextTree;
while(current2 != NULL)
{
printf(" %s %s %s %s %s %d %s %c %s\n", current2->AreaNum, current2->TreeNum,current2->Name,current2->SName,
current2->Property,current2->Age,current2->ConTime,current2->ProLevel,current2->Distribution);
count++;
current2=current2->NextTree;
// if(count % 20 == 0) getch();
}
printf(" -------------------------------------------\n");
printf(" Total %d record(s) found\n", count);
}
}

void modify_func2()
{
}

//信息表3


void read_func3()
{
void insert_func3();
void sort_func3();
FILE * fptr3;

head3=(struct ManagerTable *) malloc(sizeof(struct ManagerTable));
head3->NextTree=NULL;

if((fptr3=fopen("table3.txt","r"))==NULL)
{
printf(" 表中没数据,按任意键插入!!");
getch();
system("cls");
Title();
printf(" 古树名木基本信息表数据录入:");
insert_func3();
}
else
{
ptr3 = (struct ManagerTable *) malloc(sizeof(struct ManagerTable));
while(fscanf(fptr3,"%s %s %s %s %s %s \n",&ptr3->AreaNum,&ptr3->TreeNum,&ptr3->Manage,&ptr3->ConTime,
&ptr3->ConMethod,&ptr3->State)!=EOF)
{
sort_func3();
ptr3=(struct ManagerTable *) malloc(sizeof(struct ManagerTable));
}
fclose(fptr3);
}

}

void write_func3()
{
FILE *fptr3;
fptr3=fopen("table3.txt","w");
current3=head3->NextTree;
while(current3 != NULL)
{
// fprintf(fptr3, "%s %s %s %s %s %d %s %c %s\n", current3->AreaNum, current3->TreeNum,current3->Name,current3->SName,///??
// current3->Property,current3->Age,current3->ConTime,current3->ProLevel,current3->Distribution);

fprintf(fptr3,"%s %s %s %s %s %s \n",&ptr3->AreaNum,&ptr3->TreeNum,&ptr3->Manage,&ptr3->ConTime,
&ptr3->ConMethod,&ptr3->State);
current3 = current3->NextTree;
}
fclose(fptr3);
}

void insert_func3()
{
void sort_func3();
fflush(stdin);
ptr3=(struct ManagerTable *)malloc(sizeof(struct ManagerTable));///????
printf("\n 区号:");
gets(ptr3->AreaNum);
printf("\n

古树名木编号:");
gets(ptr3->TreeNum);
printf("\n 养护人:");
gets(ptr3->Manage);
//printf("\n 学名:");
//gets(ptr3->SName);
//printf("\n 科属:");
//gets(ptr3->Property);
//printf("\n 树龄:");
//scanf("%d",&ptr3->Age);
printf("\n 养护日期:");
fflush(stdin);
gets(ptr3->ConTime);
printf("\n 养护措施:");
//ptr3->ProLevel=getchar();
fflush(stdin);
scanf("%d",&ptr3->ConMethod);
printf("\n 生长状况:");
scanf("%d",&ptr3->State);
// gets(ptr3->Distribution);
fflush(stdin);
sort_func3();
}

//升序排列
void sort_func3()
{
prev3=head3;
current3=head3->NextTree;
while(current3!=NULL && ( atof(current3->TreeNum) < atof(ptr3->TreeNum))) //把字符型想转换成浮点型
{
prev3=current3;
current3=current3->NextTree;
}
ptr3->NextTree=current3;
prev3->NextTree=ptr3;
}


void delete_func3()
{
fflush(stdin);
char del_num[30];
printf(" 需删除的古树名木编号: ");
gets(del_num);

prev3 = head3;
current3 = head3->NextTree;
while ((current3 != NULL) && (strcmp(current3->TreeNum , del_num)!=0))
{
prev3 = current3;
current3 = current3->NextTree;
}
if (current3 != NULL)
{
prev3->NextTree = current3->NextTree;
free(current3);
printf("\n %s 选定的古树名木记录删除\n",del_num);
}
else
printf(" 记录 %s 不存在\n",del_num);
}

void display_func3()
{
int count=0;
system("cls");
if(head3->NextTree == NULL)
{
printf(" No student record\n");
}
else
{
printf(" 区号,古树名木编号,名称,学名,科属,树龄,确认时间,保护级别,栽植地点 \n");
printf(" ------------------------------------------\n");
current3=head3->NextTree;
while(current3 != NULL)
{
printf("%s %s %s %s %s %s \n",&ptr3->AreaNum,&ptr3->TreeNum,&ptr3->Manage,&ptr3->ConTime,
&ptr3->ConMethod,&ptr3->State);

count++;
current2=current2->NextTree;
// if(count % 30 == 0) getch();
}
printf(" -------------------------------------------\n");
printf(" Total %d record(s) found\n", count);
}
}

void modify_func3()
{
}

相关文档
最新文档