城区古树名木信息管理系统《C语言程序设计》课程设计.docx

上传人:b****8 文档编号:10920605 上传时间:2023-02-23 格式:DOCX 页数:36 大小:248.31KB
下载 相关 举报
城区古树名木信息管理系统《C语言程序设计》课程设计.docx_第1页
第1页 / 共36页
城区古树名木信息管理系统《C语言程序设计》课程设计.docx_第2页
第2页 / 共36页
城区古树名木信息管理系统《C语言程序设计》课程设计.docx_第3页
第3页 / 共36页
城区古树名木信息管理系统《C语言程序设计》课程设计.docx_第4页
第4页 / 共36页
城区古树名木信息管理系统《C语言程序设计》课程设计.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

城区古树名木信息管理系统《C语言程序设计》课程设计.docx

《城区古树名木信息管理系统《C语言程序设计》课程设计.docx》由会员分享,可在线阅读,更多相关《城区古树名木信息管理系统《C语言程序设计》课程设计.docx(36页珍藏版)》请在冰豆网上搜索。

城区古树名木信息管理系统《C语言程序设计》课程设计.docx

城区古树名木信息管理系统《C语言程序设计》课程设计

福建工程学院国脉信息学院

 

《C语言程序设计》课程设计

实验报告

 

题目:

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

 

专业:

电子信息工程

班级:

(2)班

学号:

08300102xx

姓名:

苏水哥

成绩:

 

完成日期:

2011年4月30日

一、课程设计目的

1)对C各部分知识的综合应用能力

2)提高程序设计的能力

3)提升对于较大程序的抽象分析设计能力

4)学习调试和测试的技巧

二、课程设计内容

1)设计一个城区古树名木信息管理系统;

2)要求可以实现各种基本数据的录入、修改、插入、删除、查询等;

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()/*修改*/”。

四、系统结构图

五、功能模块说明

古树名木信息的录入、查询、修改、删除模块如下:

1)、列表模块2)、录入模块

 

 

3)查询模块

 

 

 

4).修改模块5).删除模块

 

 

 

*城区信息模块与古树名木养护信息的录入、查询、删除模块雷同。

 

六、运行情况

1)、主菜单

2)录入古树名木信息

3)浏览古树名木信息

4)查询古树名木信息(按古树名查找)

(按编号查找)

5)删除古树信息

(删除后的信息浏览)

6)录入城区信息

7)城区信息浏览

7)从城区信息中查询某城区的古树名木

8)从城区信息中删除某古树名木

9)录入古树名木养护信息

10)浏览古树名木养护信息

11)修改古树名木养护信息

(修改后的古树名木养护信息浏览)

12)退出系统

七、设计体会和反思

回顾此次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整一个星期的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,这毕竟独立做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识重新温故。

这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在谢老师的辛勤指导下,终于游逆而解。

同时,在李老师的身上我学得到很多实用的知识,在次我表示感谢!

同时,对给过我帮助的所有同学和指导老师再次表示忠心的感谢!

八、参考文献

[1]谭浩强.C程序设计(第三版)[M].北京:

清华大学出版社,2005.

[2]戴建华,等.C语言开发技术详解[M].北京:

电子工业出版社,2009.

九、附录:

程序清单

#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("------------------------------------------------------------------

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 互联网

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1