古树名木管理系统.docx
- 文档编号:3595477
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:29
- 大小:230.72KB
古树名木管理系统.docx
《古树名木管理系统.docx》由会员分享,可在线阅读,更多相关《古树名木管理系统.docx(29页珍藏版)》请在冰豆网上搜索。
古树名木管理系统
工程学院国脉信息学院
《C语言程序设计》课程设计
实验报告
题目:
城区古树名木信息管理系统
专业:
电子信息工程
班级:
(1)班
学号:
姓名:
成绩:
指导教师:
完成日期:
2011年4月20日
四、系统结构图
五、功能模块说明
古树名木信息的录入、查询、修改、删除模块如下:
1)、列表模块2)、录入模块
3)查询模块
4).修改模块5).删除模块
*城区信息模块与古树名木养护信息的录入、查询、删除模块雷同。
六、运行情况
1)、主菜单
一、课程设计目的
1)对C各部分知识的综合应用能力
2)提高程序设计的能力
3)提升对于较大程序的抽象分析设计能力
4)学习调试和测试的技巧
二、课程设计内容
1)熟悉C实验环境,按给定的上机步骤练习完成;
2)熟悉C程序的编辑,编译,链接和运行的过程。
3)编译一个应用系统程序,形成一个软件系统。
三、数据结构设计及用法说明
1、本程序使用到了三个struct,分别是
(1)structtree/*古树名木养护信息*/
{charnumber[5];/*编号*/
chararea[10];/*区号*/
charname[100];/*树名*/
charxueming[100];/*学名*/
charbranch[100];/*科属*/
intage;/*树龄*/
charday[11];/*确认时间*/
intrank;/*保护级别*/
charplace[100];/*栽植地点*/
}tree[MAX];
(2)structcity/*城区信息*/
{charcityarea[7];/*区号*/
charareaname[20];/*区名*/
charmanagement[30];/*主管部门*/
charaddress[30];/*地址*/
chartel[13];/*电话*/
charworker[20];/*负责人*/
}city[MAX];
(3)structprotection/*古树名木养护信息*/
{charcityareas[7];/*区号*/
chartreenumber[5];/*古树名木编号*/
charprotecter[30];/*养护人*/
chardata[11];/*养护日期*/
charmeasure[30];/*养护措施*/
charstate[20];/*生长状况*/
}pro[MAX];
2、本段程序在main函数中嵌套了所有子函数,包括“voidInput();/*古树基本信息录入*/”、“voidDisplay();/*古树信息浏览*/、“voidFind();/*古树信息查询*/”、“voidModify();/*删除*/”、“voidChange();/*修改*/”、“voidInputcity();/*城区信息录入*/”、“voidDisplaycity();/*城区信息浏览*/”、“voidChangecity();/*城区信息修改*/”、“voidInputprotection();/*养护信息录入*/”、“voidDisplayprotection();/*养护信息浏览*/”、“voidChangeprotection()/*修改*/”。
2)录入古树名木信息
3)浏览古树名木信息
4)查询古树名木信息(按古树名查找)
(按编号查找)
5)删除古树信息
(删除后的信息浏览)
6)录入城区信息
6)城区信息浏览
7)从城区信息中查询某城区的古树名木
8)从城区信息中删除某古树名木
9)录入古树名木养护信息
10)浏览古树名木养护信息
11)修改古树名木养护信息
(修改后的古树名木养护信息浏览)
12)退出系统
七、设计体会和反思
#include
#include
#include
#include
#defineMAX1000
structtree
{
charnumber[5];/*编号*/
chararea[10];/*区号*/
charname[100];/*树名*/
charxueming[100];/*学名*/
charbranch[100];/*科属*/
intage;/*树龄*/
charday[11];/*确认时间*/
intrank;/*保护级别*/
charplace[100];/*栽植地点*/
}tree[MAX];
structcity
{
charcityarea[7];/*区号*/
charareaname[20];/*区名*/
charmanagement[30];/*主管部门*/
charaddress[30];/*地址*/
chartel[13];/*电话*/
charworker[20];/*负责人*/
}city[MAX];
structprotection
{
charcityareas[7];/*区号*/
chartreenumber[5];/*古树名木编号*/
charprotecter[30];/*养护人*/
chardata[11];/*养护日期*/
charmeasure[30];/*养护措施*/
charstate[20];/*生长状况*/
}pro[MAX];
main()/*主函数*/
{
voidInput();/*古树名木基本信息录入*/
voidDisplay();/*浏览*/
voidFind();/*查询*/
voidModify();/*删除*/
voidChange();/*修改*/
voidInputcity();/*城区基本信息录入*/
voidDisplaycity();/*城区基本信息浏览*/
voidChangecity();/*城区基本信息修改*/
voidInputprotection();/*古树名木养护基本信息录入*/
voidDisplayprotection();/*古树名木养护基本信息浏览*/
voidChangeprotection();/*古树名木养护基本信息修改*/
intm,n;
printf("\n");
printf("欢迎进入'城区古树名木信息管理系统'\n");
printf("\n");
printf("进入请按'1':
");
scanf("%d",&m);
if(m==1)
{for(;;)
{
printf("\n");
printf("主菜单\n");
printf("\n");
printf("【1.古树信息录入】\n");
printf("【2.古树信息浏览】\n");
printf("【3.古树信息查询】\n");
printf("【4.古树信息删除】\n");
printf("【5.古树信息修改】\n");
printf("【6.城区基本信息录入】\n");
printf("【7.城区基本信息浏览】\n");
printf("【8.城区基本信息修改】\n");
printf("【9.古树名木养护基本信息录入】\n");
printf("【10.古树名木养护基本信息浏览】\n");
printf("【11.古树名木养护基本信息修改】\n");
printf("【12.退出系统】\n");
printf("请输入选择项(1-12):
");
scanf("%d",&n);
printf("\n\n");
if(n>0&&n<13)
{
switch(n)
{
case1:
Input();break;
case2:
Display();break;
case3:
Find();break;
case4:
Modify();break;
case5:
Change();break;
case6:
Inputcity();break;
case7:
Displaycity();break;
case8:
Changecity();break;
case9:
Inputprotection();break;
case10:
Displayprotection();break;
case11:
Changeprotection();break;
case12:
printf("谢谢使用!
\n");
printf("\n");
printf("再见!
\n");
printf("\n");
exit(0);
}
}
else
{
printf("\n");
printf("输入错误!
\n");
printf("\n");
printf("请退出!
\n");
printf("\n");
break;
}
}}
else
{printf("\n\n\n\n");
printf("输入错误!
\n");
printf("\n");
printf("再见!
\n");
}
}
voidFind()/*查询*/
{
FILE*fp;
inti;
intchoose,t;
charans[100];
do
{
printf("1.按古树名查找\n");
printf("\n");
printf("2.按编号查找\n");
printf("\n");
printf("返回主菜单(其他数字)\n");
printf("\n");
scanf("%d",&choose);
if(choose==1)
{
printf("输入所查古树名:
\n");
scanf("%s",ans);
t=-1;
if(choose==1)
{
for(i=0;i { t=i; fp=fopen("tree","rb"); for(i=0;fread(&tree[i],sizeof(structtree),1,fp)==1;i++) printf("%5s%5s%8s%8s%8s%2d%8s%8d%8s\n",tree[t].number,tree[t].area,tree[t].name,tree[t].xueming,tree[t].branch,tree[t].age,tree[t].day,tree[t].rank,tree[t].place); } } if(t==-1)printf("不存在该信息\n"); } elseif(choose==2) { printf("输入所查编号: \n"); scanf("%s",ans); t=-1; if(choose==2) { for(i=0;i if(strcmp(ans,tree[i].number)==0) {t=i; fp=fopen("tree","rb"); for(i=0;fread(&tree[i],sizeof(structtree),1,fp)==1;i++) printf("%5s%5s%8s%8s%8s%2d%8s%8d%8s\n",tree[t].number,tree[t].area,tree[t].name,tree[t].xueming,tree[t].branch,tree[t].age,tree[t].day,tree[t].rank,tree[t].place); } } if(t==-1)printf("不存在该信息\n"); } elsereturn; }while (1); } voidDisplay()/*浏览*/ { FILE*fp; inti; fp=fopen("tree","rb"); printf("\n\n\n\n"); printf("古树信息\n"); printf("--------------------------------------------------------------------------------\n"); printf("编号区号树名学名科属树龄确认时间保护级别栽植地点\n"); printf("--------------------------------------------------------------------------------\n"); for(i=0;fread(&tree[i],sizeof(structtree),1,fp)==1;i++) { printf("%5s%5s%8s%8s%8s%2d%8s%8d%8s\n",tree[i].number,tree[i].area,tree[i].name,tree[i].xueming,tree[i].branch,&tree[i].age,tree[i].day,&tree[i].rank,tree[i].place); } fclose(fp); } voidInput()/*输入*/ { FILE*fp; intn; fp=fopen("tree","wb"); for(n=0;n { printf("n=%d输入序号n(当输入n=-1时,返回),n=",n++); scanf("%d",&n); printf("\n"); if(n==-1) { fclose(fp); return; } else { printf("编号区号树名学名科属树龄确认时间保护级别栽植地点\n"); scanf("%s%s%s%s%s%d%s%d%s",&tree[n].number,tree[n].area,tree[n].name,tree[n].xueming,tree[n].branch,&tree[n].age,&tree[n].day,&tree[n].rank,tree[n].place); printf("\n"); fwrite(&tree[n],sizeof(structtree),1,fp); } } fclose(fp); } voidModify()/*删除*/ { FILE*fp; inti,flag,n,j; chars[5]; fp=fopen("tree","rb+"); rewind(fp); printf("\n\n"); printf("古树信息\n"); printf("--------------------------------------------------------------------------------\n"); printf("编号区号树名学名科属树龄确认时间保护级别栽植地点\n"); printf("--------------------------------------------------------------------------------\n"); for(i=0;fread(&tree[i],sizeof(structtree),1,fp)==1;i++) { printf("%5s%5s%8s%8s%8s%2d%8s%8d%8s\n",tree[i].number,tree[i].area,tree[i].name,tree[i].xueming,tree[i].branch,tree[i].age,tree[i].day,tree[i].rank,tree[i].place); } n=i; printf("输入待删除古树编号: \n"); scanf("%s",&s); for(i=0,flag=1;flag&&i { if(strcmp(s,tree[i].number)==0) { for(j=i;j { strcpy(tree[j].area,tree[j+1].area); strcpy(tree[j].number,tree[j+1].number); strcpy(tree[j].name,tree[j+1].name); strcpy(tree[j].xueming,tree[j+1].xueming); strcpy(tree[j].branch,tree[j+1].branch); tree[j].age=tree[j+1].age; strcpy(tree[j].day,tree[j+1].day); tree[j].rank=tree[j+1].rank; strcpy(tree[j].place,tree[j+1].place); } flag=0; } } if(! flag) n=n-1; else printf("没有此号\n"); fp=fopen("tree","wb"); for(i=0;i fwrite(&tree[i],sizeof(structtree),1,fp); fclose(fp); fp=fopen("tree","r"); printf("\n\n"); printf("古树信息\n"); printf("--------------------------------------------------------------------------------\n"); printf("编号区号树名学名科属树龄确认时间保护级别栽植地点\n"); printf("--------------------------------------------------------------------------------\n"); for(i=0;i { fread(&tree[i],sizeof(structtree),1,fp); printf("%5s%5s%8s%8s%8s%2d%8s%8d%8s\n",tree[i].number,tree[i].area,tree[i].name,tree[i].xueming,tree[i].branch,tree[i].age,tree[i].day,tree[i].rank,tree[i].place); printf("\n"); } fclose(fp); } voidChange()/*修改*/ { FILE*fp; inti,n; charnumber[5]; intflag=0; printf("请输入要修改的古树编号: "); scanf("%d",&number); for(i=0;i<=MAX;i++) if(strcmp(number,tree[i].number)==0) { printf("\n\n"); printf("古树信息\n"); printf("--------------------------------------------------------------------------------\n"); printf("编号区号树名学名科属树龄确认时间保护级别栽植地点\n"); printf("--------------------------------------------------------------------------------\n"); printf("%5s%5s%8s%8s%8s%2d%8s%8d%8s\n",tree[i].number,tree[i].area,tree[i].name,tree[i].xueming,tree[i].branch,tree[i].age,tree[i].day,tree[i].rank,tree[i].place); printf("--------------------------------------------------------------------------------------------------\n\n"); n=i; flag=1; break; } if(flag==0) { printf("\n\n"); printf("输入错误! \n"); printf("\n"); printf("请返回! \n"); printf("\n"); return; } printf("\n\n"); fp=fopen("tree","rb+"); fseek(fp,n*sizeof(structtree),0); printf("编号区号树名学名科属树龄确认时间保护级别栽植地点\n"); scanf("%s%s%s%s%s%d%s%d%s",&tree[n].number,tree[n].area,tree[n].name,tree[n].xueming,tree[n].branch,&tree[n].age,&tree[n].day,&tree[n].rank,tree[n].place); fwrite(&tree[i],sizeof(structtree),1,fp); fclose(fp); fp=fopen("tree","rb"); printf("\n\n"); printf("古树信息\n"); p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 树名 木管 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)