1、C语言课程设计沈阳理工大学 (信息科学与技术学院)2013/12/31C语言课程设计成 绩 评 定 表学生姓名班级学号专 业电子信息工程课程设计题目C语言课程设计任务(三十一)数组应用、查找字符、旅游景点信息管理程序的设计评语组长签字:成绩日期 20 年 月 日课程设计任务书学 院信息科学与工程学院专 业电子信息工程学生姓名马斌班级学号1303030331课程设计题目C语言课程设计任务(三十一) 数组应用、查找字符、旅游景点信息管理程序的设计实践教学要求与任务:1.编写函数,求一个二维数组两条对角线上元素的最大值和最小值;主函数中初始化一个4X4的数组,输出该数组,并调用函数后,输出结果。2.
2、请编写一个函数fun(char *s, char c),其功能是:求出s所指字符串中,包含c中字符的个数。例如,若输入字符串为:1234aasdd233, 输入的字符为3, 则输出 3 。3.旅游景点信息管理程序设计设计结构体数组,结构中包数据为:编号、景点名称、旅游地名、所需费用等。设计各个函数,分别实现以下功能: (1)输入数据 (2)显示所有信息 (3) 输入旅游地名,显示符合该条件的记录,并所需总费用。设计菜单,通过选择菜单调用以上各函数。工作计划与进度安排:第一天:开题,系统设计。第二天:设计数据库,设计网页。第三天:编码实现,测试系统。第四天:书写设计报告。第五天:系统评价、验收、
3、答辩。指导教师: 201 年 月 日专业负责人:201 年 月 日学院教学副院长:201 年 月 日1 数组应用 1.数组应用1.1题目内容编写函数,求一个二维数组两条对角线上元素的最大值和最小值;主函数中初始化一个4X4的数组,输出该数组,并调用函数后,输出结果。1.2算法图框图1.1为数组应用算法图框1.3源程序及注释#include#define N 4void max(int strN)int i,j,m1,m2;int str1N=0,str2N=0; /*定义了两个一维数组,负初值为0,用于承载量对角线上的数*/for(i=0;iN;i+) /*两层循环,用于查找*/for(j=0
4、;jN;j+)if(i=j) /*查找主对角线数,行标等于列表*/str1i=strij; /*将二维数组的主对角线数依次负给一维数组*/if(i+j=N-1) /*查找副对角线数*/str2i=strij;m1=str10;for(i=1;iN;i+)if(m1str1i) /*if语句,用于寻找最大值*/m1=str1i; /*将最大值负给m1*/m2=str20;for(i=1;iN;i+)if(m2str2i)m2=str2i;printf(主对角线中最大值:%dn,m1);printf(副对角线中最大值:%dn,m2);void min(int strN)int i,j,m1,m2;
5、int str1N=0,str2N=0;for(i=0;iN;i+)for(j=0;jN;j+)if(i=j)str1i=strij;if(i+j=N-1)str2i=strij;m1=str10;for(i=1;istr1i)m1=str1i;m2=str20;for(i=1;istr2i)m2=str2i;printf(主对角线中最小值:%dn,m1);printf(副对角线中最小值:%dn,m2); void main() int strNN=0; /*定义一个二维数组用于承载输入数据*/ int i,j; printf(请输入一个%d*%d的数组:n,N,N); for(i=0;iN;
6、i+) /*外层循环控制行数*/ for(j=0;jN;j+) /*内层循环控制输入数据*/ scanf(%d,&strij); printf(该数组是:n); for(i=0;iN;i+) for(j=0;jN;j+) printf(%4d,strij); printf(n); /*每输出四个输出一个换行符*/ max(str); /*调用函数,求对角线最大值*/ min(str); /*调用函数,求对角线最小值*/1.4运行结果 图1.2 为数组应用结果运行结果截图2.查找字符2.1题目内容请编写一个函数fun(char *s, char c),其功能是:求出s所指字符串中,包含c中字符的
7、个数。例如,若输入字符串为:1234aasdd233, 输入的字符为3, 则输出 3 。2.2算法图框 图2.1为查找字符算法图框2.3源程序及注释#include#define N 50int fun(char *s,char c) /*定义了一个指针型数组变量,一个字符*/int n=0;while(*s!=0) /*while循环用于循环结构的结束*/if(*s=c) /*if语句用于判断指针指向的字符是否与输入字符相同*/n+; /*n计算要统计字符的个数*/s+;return n;void main() char strN,ch; int num;printf(请输入一串字符串:);
8、gets(str);printf(请输入一个字符:);scanf(%c,&ch);num=fun(str,ch); /*调用函数*/printf(%c在字符串%s中出现的次数是:%d次n,ch,str,num);2.4程序结果图2.2 字符查找的运行结果截图3.旅游景点信息管理程序设计3.1题目内容设计结构体数组,结构中包数据为:编号、景点名称、旅游地名、所需费用等。设计各个函数,分别实现以下功能: (1)输入数据 (2)显示所有信息 (3) 输入旅游地名,显示符合该条件的记录,并所需总费用。设计菜单,通过选择菜单调用以上各函数。3.2算法图框 图3.1.1为旅游景点信息管理程序设计主调函数算
9、法图框图3.1.2为旅游景点信息管理程序设计被调函数查找部分算法图框3.3源程序及注释#include#include#define N 20struct travel int num; /*定义整型变量num表示编号*/ char sightN; /*定义字符串数组,用于承载景点名称*/ char addressN; /*定义字符串数组,用于承载旅游地名称*/ int price; /*定义整型变量price表示所需费用*/;int n=0;struct travel tN;void set(struct travel *p) /*此处为被调函数,用于数据输入*/ printf(第%d个旅游
10、地点:n,n+1); scanf(%d,&pn.num); scanf(%s,&pn.address); scanf(%s,&pn.sight); scanf(%d,&pn.price); pn.num=n+1; n+;void show(struct travel *p) /*此处为被调函数,用于显示所有输入信息*/ int i=0; printf(n编号t景点名称t旅游地名t所需费用n); for(i=0;in;i+) /*for循环,用于控制输出*/ printf(%dt%stt%st%dn,pi.num,pi.sight,pi.address,pi.price); void fun(s
11、truct travel *p) /*此处为被调函数,用于查找信息*/ char sortN; /*定义一个字符串数组,用于承载需查找的旅游地名*/ int m=0; printf(n请输入旅游地名:); scanf(%s,sort); printf(n编号t景点名称t旅游地名t所需费用n); for(m=0;mn;m+) if(!strcmp(sort,pm.address)/*比较所输入旅游地名与指针指向的字符串是否相同*/ printf(%dt%stt%st%dn,pm.num,pm.sight,pm.address,pm.price); void main() int a; Do /*
12、dowhile循环控制程序运行于结束*/ printf(n*请选择菜单*n); printf(n1.输入数据 2.显示所有信息 3.显示符合条件信息n); printf(n输入一个数字:); scanf(%d,&a); switch(a) /*switch()结构,用于选择调用哪个被调函数*/ case 1:set(t); break; case 2:show(t); break; case 3:fun(t); break; default:printf(not fountn); while(1);3.4运行结果图3.3为旅游景点信息管理程序的设计的运行结果截图4.总结我的课程设计是数组应用、
13、查找字符、旅游景点信息管理程序的设计。经过近两天的设计和同学的帮助,我的程序终于完成了!达到了要求的目的。对于我们这些新手来说,这是很大的考验,我一次次的问自己,怎么才能找到课堂所学与实际应用的最佳结合点?怎么才能让自己的程序在篇幅上简单,在使用价值上丰富?怎样让自己的计划更具有序性,而不会忙无一用?经过自己的琢磨,听取了同学的建议,还查阅了很多书籍,才做到了心中有数,才了解了C语言课程设计的真正用意培养自学能力,养成程序编辑的好习惯。我从来不相信车到山前必有路的说法,认为那只是懒惰者自寻懒惰的借口,我要积极,要把握,要努力。我们自己能做到的仅此而已,因为人力也有所不能及。在课程设计过程中,我
14、学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪,黑夜过去了,我们收获的是黎明。在本次实践中,给我印象最为深刻的是在文件删除程序的编译过程中,先有我的各个子程序都已经编辑成功,那么这最后的程序就将是我成功的关键。老天不会让我太过顺利,他在这最后的时刻设置的障碍,是要考验我的能力,他要置我于死地?在这个问题的解决上,我打了退堂鼓,我不能忍受长时间的无功而反,时间正在消磨我的意志。没有了柳暗花明的一天,那么我怎么能说经受住了考验?谢谢老师的那句话,她说:人力有所不能及,然而,人的精神是不会败倒的。我鼓起勇气,到处问,到处查资料,黄天
15、不负有心人,在一篇文章上,终于看到了我所特别要求的函数,我实现了组合是关键的理论。不得不说这是精神的胜利,是永不言败的精神让我夺得胜利。谢谢给我指点迷津的老师!5.参考文献 马秀丽,刘志妩,李筠C语言程序设计北京清华大学出版社C语言课程设计任务(三十一)题目名称:数组应用、查找字符、旅游景点信息管理程序的设计内容及要求:5.编写函数,求一个二维数组两条对角线上元素的最大值和最小值;主函数中初始化一个4X4的数组,输出该数组,并调用函数后,输出结果。6.请编写一个函数fun(char *s, char c),其功能是:求出s所指字符串中,包含c中字符的个数。例如,若输入字符串为:1234aasdd233, 输入的字符为3, 则输出 3 。7.旅游景点信息管理程序设计设计结构体数组,结构中包数据为:编号、景点名称、旅游地名、所需费用等。设计各个函数,分别实现以下功能: (1)输入数据 (2)显示所有信息 (3) 输入旅游地名,显示符合该条件的记录,并所需总费用。设计菜单,通过选择菜单调用以上各函数。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1