c城市区号查询-课程设计报告.doc_第1页
c城市区号查询-课程设计报告.doc_第2页
c城市区号查询-课程设计报告.doc_第3页
c城市区号查询-课程设计报告.doc_第4页
c城市区号查询-课程设计报告.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机学院高级语言程序设计课程设计报告学号2016-2017学年 第二学期1608220203高级语言程序设计课程设计报告题目:城市区号查询专业:网络工程班级16(3)班姓名:代应豪指导教师:代美丽成绩:计算机学院2017年4月25日目录1 设计内容及要求11.1设计内容11.2设计任务及具体要求12 概要设计22.1系统的功能简介22.2 总体程序框图22.3各个模块之间的主要关系33设计过程或程序代码33.1各个模块的程序流程图31、 菜单函数42 、输入区号43、显示区号查询54、find函数65、删除城市名称76、查找城市区号84设计结果与分析115总结12参考文献13源程序141 设计内容及要求1.1设计内容本课程设计主要运用C语言中的结构体、数组、链表、等数据结构,设计一个简单的管理系统应用程序。本程序设计出了区号查询系统的基本功能,并设计了简单的界面,主要考察对自定义函数的熟悉程度,使用的是数组的相关操作,包括结构体数组的输入、输出、查找、删除等。通过完成本课题进一步熟悉C语言基本知识,并掌握数据结构的一些基本算法思想,进一步熟悉指针的用法,数组的建立运用和函数调用,加深对数据结构的理解,提高算法设计的能力,锻炼编程的能力。1.2设计任务及具体要求用C语言编程的区号查询系统,要求实现区号查询系统中,添加新记录、删除记录、显示记录信息、按城市查找信息和退出系统等功能。录入有关城市的名称和区号。显示所有城市的信息。通过输入城市名称查找对应城市的区号。通过输入城市名称查找到要删除的城市信息,然后可以进行删除,会显当前该城市信息。 通过输入城市名称查找到要修改的城市信息,然后依次进行信息修改。添加城市信息。2 概要设计2.1系统的功能简介本系统设计的函数是由一个主函数几个子函数组成的。首先构思大局编出一个主函数,然后根据要实现的功能逐步细分设计,分别解决输入、显示、查找、删除、修改,退出功能的子函数编程中遇到的问题。首先通过结构体的定义,确定城市区号的项目和大小。首先通过输入函数添加信息,然后再逐步编写和验证其它功能。显示函数的设计利用C语言的循环功能依次输出信息。查找是用一个字符串比较得出两个相同的字符串的方法找出用户要查找的人。删除函数的设计是通过指定位置以后的数组下标减一实现删除目的的,for循环和 while循环在这此设计中也起了很大的作用。2.2 总体程序框图主菜单输入城市名称和区号退出查询系统添加城市名称和区号修改城市名称删除城市名称查找城市区号显示城市名称和区号图(1)总体框图2.3各个模块之间的主要关系该程序的功能主要是实现城市区号查询,各个模块之间的关系是相互联系的。首先,必须输入城市名称和区号才能进一步显示城市的名称和区号,然后才能查找城市和删除城市,是一环套一环的。并且修改城市名称和查找城市区号两个模块查找城市需要在修改城市名称后再对新的名称进行查找。3设计过程或程序代码3.1各个模块的程序流程图 1)主函数程序(N-S)流程图及运行界面主函数程序(N-S)流程图(见图(2)输入错误,重新操作结束menu()=6?menu()=1?menu()=0?menu()=2?m=0?menu()=5?menu()=4?menu()=3?开始int length,m=0调用输入函数调用显示函数调用输出函数调用退出函数调用添加函数调用修改函数调用查找函数图(2)主函数流程图真假真假真假真假真假真假真真假假31、 菜单函数菜单函数首先标出欢迎使用区号查询管理系,然后给出用户可选择的项目,用户可以通过选择该项前的代码来实现想要实现的功能,其流程图如图(3)所示: int mm6 返回 m 结束开始输入选项06666真假图(3)菜单函数流程图2 、输入区号将结构体数组分成几个数组分别对每个数组赋值,用for循环对不同地址的数组分别赋值。其流程图如图(4)所示: i=0 in? i+ 返回 n 结束 开始 输入信息 输入数目n真假图(4)输入函数流程图3、显示区号查询 显示区号通过循环函数将全部的区号信息以此显示出来,其流程图如图(5)所示: int ii=0i=n-1?i+结束开始显示i位置信息真假 图(5)显示函数流程图4、find函数find函数通过输入姓名与原区号中存储的姓名,两字符串的比较,找到与输入姓名相同的城市的位置,其流程图如图(6)所示:i=0in-1ch=1return n调用删除函数是否重新输入j=i+1jn-1?没有找到是否继续调用查找函数真开始输出信息结束真假假图(8)简单说明:该功能主要显示的是给用户一个进入界面,它主要的是显示该程序主要能够执行的有哪些功能。下面是显示给用户的界面。主函数程序运行界面:图(9)在主菜单中输入3后,输入要找的城市。在系统没有要找信息时,系统会给出提示,确认用户是否继续查找,如图下图所示:图(10) 在确认修改并输入修改后信息以后,系统便能按用户意愿修改的城市的信息如:图(11)在主菜单中输入4后输入要删除的城市,再按4键确定,系统便自动删除要删的市的信息,如图(12)所示:图(12) 在主菜单中按6键,便显示出系统,如图所示:图(13) 在主菜单中按0键,便可退出系统,如图所示:图(14)4设计结果与分析当把程序写好并进行调试时,并不是一帆风顺的,总会遇到很多在调试时遇到的错误。1. 首先在定义函数时,不能输入汉字。否则会程序会显示错误。2.在程序中,如果定义城市名称和区号等为float型,而后面其相应的返回值为双精度浮点型,会出现相应的警告3.前后定义变量要统一。4.如果要调用添加函数,修改函数,修改函数,查找函数,统计函数等要在主函数前面进行申明。否则会显示警告。5.对背景颜色设置的时候,当你输入的颜色在内存中不存在时,运行程序过后,系统会告诉你相应的颜色符号常数及数值。6.如果程序在运行的过程中,对于一个循环语句,如果你返回的值始终是真的,那么程序将进如死循环。7. 未注意int,float型数据的数值范围,int型数据的数值范围(-3276832768)。对定义工资变量时,如果将职工工资定义为float型,将会出现警告。8.对应该有花括弧的复合语句,忘记加花括弧。9. 所调用的函数在调用语句之后才定义,而又在调用前未加说明。5总结从刚开始的不知道如何下手到最后看到自己的程序按自己的想法运行,心里时不时的有一种喜悦。通过这次课程设计,我认识到书上和老师教的内容是有限的,要想掌握更多的知识我们必须多动脑,多思考,不断地靠自己去学习,同时我们还应向他人请教,从而了解更多自己不知道的知识。回头看来,编写这个程序并不像原来想像的那么难,我们要相信自己,无论做什么事,只要我们仔细的思考了,认真的去做了,我们就一定能做好。通过这次的编程我发现了自己的一些不足,在编写时经常犯一些低级错误,由于自己的马虎而浪费了不少时间。在不知如何进行的时候有一种不自信,总想别人正在做什么,这些不足既然被发现就得在以后的做事中注意,争取改掉。经过一周的努力我掌握了一些基本的C语言进行程序设计的技巧,更深的理解和运用结构化程序设计的思想和方法,掌握开发一个小型实用系统的基本方法,同时学会了一些调试一个较长程序的基本方法,提高了书写程序设计开发文档的能力。这一周的实践让我受益匪浅,在此我要感谢孜孜不倦指导我们的老师,感谢在我困惑时给我帮助的同学,感谢学校给我们一个这样动手动脑的机会,使我们在理论与实践相结合方面又得到了一次很好的锻炼,其中我真的受益良多。 参考文献1姜灵芝,余健.C语言课程设计案例精编.北京:清华大学出版社,20082王新,孙雷.C语言课程设计.北京:清华大学出版社,20093游洪跃、彭骏、谭斌.C语言程序设计实验与课程设计教程.北京:清华大学出版社,20114王连相.C/C+程序设计上机指导与测试.北京:中国铁道出版社,20065C语言函数手册,机械工业出版社,1999源程序#include #include #include typedef struct PersonalInfo char name50; char address30; char telno30; char postcode30; struct PersonalInfo *next;INFO;INFO *head;void Initiate();void Menu();void Create();/的功能是:创建新的区号查询。void Add();/ 在系统的末尾,写入新的信息,并返回选单void Find();/查找记录void Alter();/修改记录如果未找到要修改的人,则提示系统中没有此人的信息,并返回选单。void Delete();/删除某人的信息,如果未找到要删的人,提示系统中没有此人的信息,并返回选单。void List();/的功能是:显示系统中的所有记录。/初始化void Initiate() if(head=(INFO *)malloc(sizeof(INFO)=NULL) exit(1); head-next=NULL;/显示菜单void Menu() printf(*欢迎使用区号查询系统*); printf(n); printf(n); printf( 1.创建区号系统。n); printf( 2.插入信息。n); printf( 3.查询记录n); printf( 4.修改记录n); printf( 5.删除记录!n); printf( 6.显示所有记录n); printf( 0.退出区号查询n); printf( 请输入06 n);/创建系统void Create() INFO *p1100,*p2; int m,i; printf(请输入创建个数:); scanf(%d,&m); for(i=1;iname); printf(区号:n); scanf(%s,&p1i-postcode); p1i-next=NULL; if(head-next=NULL) head-next=p1i; else for(p2=head;p2-next!=NULL;p2=p2-next); /找到结点尾 p2-next=p1i; printf(信息已添加!n); return; void Add() INFO *p,*q; if(q=(INFO *)malloc(sizeof(INFO)=NULL) exit(1); printf(请输入要添加的信息!n); printf(城市:n); /添加信息 scanf(%s,&q-name); printf(区号:n); scanf(%s,q-postcode); for(p=head;p-next!=NULL;p=p-next) ; p-next=q; q-next=NULL; printf(此信息已添加!); return;/查找系统信息 void Find() INFO *p; char name50; if(head-next=NULL) printf(此区号域为空!n); return; printf(请输入要查找的城市:n); scanf(%s,&name); for(p=head-next;p!=NULL;p=p-next) if(strcmp(p-name,name)=0) printf(城市t区号n); printf(%st%stn,p-name,p-postcode); else if(p-next=NULL) return; /修改系统信息 void Alter() char name50; /先查找 后删除 INFO *p, *p1; if (head-next = NULL) printf(此系统为空!n); return; printf(请输入要修改的城市:n); scanf(%s,name); for(p=head-next;p!=NULL;p=p-next) if(strcmp(p-name,name)=0) break; else if(p-next=NULL) return; p1=(INFO *)malloc(sizeof(INFO); printf(城市:n); /添加信息 scanf(%s,p1-name); strcpy(p-name,p1-name); printf(区号:n); scanf(%s,p1-postcode); strcpy(p-postcode,p1-postcode); printf(此信息已修改!n); /显示修改的信息 printf(城市t区号tn); printf(%st%stn,p-name,p-postcode); free(p1);/删除系统信息 void Delete() char name50; /先查找 后删除 INFO *p = head-next, *p1 =head-next,*p2; if (head-next = NULL) printf(此系统为空!n); return; printf(请输入要删除的城市:n); scanf( %s,name); while (strcmp(p-name,name)!=0 )& p-next != NULL) p1=p; p =p-next; if (strcmp(name, p-name)=0) /输出删除信息 if (p = head-next&p-next!=NULL) head-next = p-next; else if(p=head-next&p-next=NULL) head-next=p-next; printf(信息已删除,先此系统为空!n); return; else p1-next = p-next; else printf(此信息不存在!n); return; printf(此信息已删除!); printf(城市t区号tn); for(p2=head-next;p2!=NULL;p2=p2-next) printf(%st%stn,p2-name,p2-p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论