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

下载本文档

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

文档简介

1、学号16082202032016-2017学年第二学期高级语言程序设计课程设计报告题目:城市区号查询专业:网络工程班 级16 (3)班姓名:代应豪指导教师:代美丽成绩:2017耳彳月防日3设计过程或程序代码3.1各个模块的程序流程图1、菜单函数42、输入区号43、显示区号查询54find 函数 65、删除城市名称76、查找城市区号84设计结果与分析115总结12参考文献131 殺针內容及要痂1.1设计内容本课程设计主要运用c语言中的结构体、数组、链表、等数据结构,设计一 个简单的管理系统应用程序。本程序设计出了区号查询系统的基本功能,并设计 了简单的界面,主要考察对自定义函数的熟悉程度,使用的

2、是数组的相关操作, 包括结构体数组的输入、输出、查找、删除等。通过完成本课题进一步熟悉c 语言基木知识,并掌握数据结构的一些基木算法思想,进一步熟悉指针的用法, 数组的建立运用和函数调用,加深对数据结构的理解,提高算法设计的能力,锻 炼编程的能力。1.2设计任务及具体要求用c语言编程的区号查询系统,要求实现区号查询系统中,添加新记录、删 除记录、显示记录信息、按城市查找信息和退出系统等功能。 录入有关城市的名称和区号。 显示所有城市的信息。 通过输入城市名称查找对应城市的区号。 通过输入城市名称查找到要删除的城市信息,然后可以进行删除,会显当 前该城市信息。 通过输入城市名称查找到要修改的城市

3、信息,然后依次进行信息修改。 添加城市信息。2槪要殺针2.1系统的功能简介本系统设计的函数是由一个主函数儿个子函数组成的。首先构思大局编出一 个主函数,然后根据要实现的功能逐步细分设计,分别解决输入、显示、查找、 删除、修改,退出功能的子函数编程屮遇到的问题。首先通过结构体的定义,确 定城市区号的项目和大小。首先通过输入函数添加信息,然后再逐步编写和验证 其它功能。显示函数的设计利用c语言的循环功能依次输出信息。查找是用一个 字符串比较得出两个相同的字符串的方法找出用户要查找的人。删除函数的设计 是通过指定位置以后的数组下标减一实现删除目的的,for循环和while循环在 这此设计屮也起了很大

4、的作用。2.2总体程序框图主菜单退出杳询系统添加城市名称和区号 修改城市名称 删除城市名称 查找城市区号 显示城市名称和区号 输入城市名称和区号图总体框图2.3各个模块之间的主要关系该程序的功能主要是实现城市区号查询,各个模块之间的关系是相互联系 的。首先,必须输入城市名称和区号才能进一步显示城市的名称和区号,然后才 能查找城市和删除城市,是一环套一环的。并且修改城市名称和查找城市区号两 个模块查找城市需要在修改城市名称后再对新的名称进行查找。3殺针过程或程為代码3.1各个模块的程序流程图1)主函数程序(n-s)流程图及运行界面主函数程序(n-s)流程图(见图(2)开始int lcngth,

5、m=0调用查找函数menu ()=3?1、菜单函数菜单函数首先标出欢迎使用区号查询管理系,然后给出用户可选择的项 目,用户可以通过选择该项前的代码来实现想要实现的功能,其流程图如图(3) 所示:结束图(3)菜单函数流程图2、输入区号将结构体数组分成几个数组分别对每个数组赋值,用for循环对不同地址的数组分别赋值。其流程图如图(4)所示:开始7结束图(4)输入函数流程图3、显示区号查询显示区号通过循环函数将全部的区号信息以此显示岀来,其流程图如图(5) 所示:f开始:、 一丿int i图(5)显示函数流程图4、find函数find函数通过输入姓名与原区号中存储的姓名,两字符串的比较,找到与输入姓

6、名相同的城市的位置,其流程图如图(6)所示::开始 :./5、删除城市名称删除城市名称通过数组中该位置之后的数据存放位置向前移一位来实现删除功能,其流程图如图(7)所示:(开始j图(7)删除函数流程图6、查找城市区号查找系统通过find函数找到所查城市的位置,再将该位置的城市的信息显示 如图:图(8)简单说明:该功能主要显示的是给用户一个进入界面,它主要的是显示该程 序主要能够执行的有哪些功能。下面是显示给用户的界面。主函数程序运行界面:h:新逹文件夬(2)debugt.exe“"回逐字统系0录询!记查匕 号息璽着号旷妇 区信记记记所 建入询改除一 舅杳猛显退请0 12 3 4 5

7、6 0图(9)在主菜单中输入3后,输入要找的城市。在系统没有要找信息时,系统会给出提示,确认用户是否继续查找,如图下图所示:y or n?*欢迎使用区号查询系统一 lrrl cp幺b 区否4 5 6 0录询!淀查"6学 求录壽号旷烷 总记记养x一入谱 宜修删显退请0-统 录询 系。 记查 号息录录壽号岭 区信记记駕区胡 建入询改讎笛爲 谱查修豐退请0- 12 3 4 5 6 0 p 选% tz图(10)在确认修改并输入修改后信息以后,系统便能按用户意愿修改的城市的信息 如:h:芳1 丈件夹 2)debugt.exe*炎迎使用区号查询系纟/统 录询 系。 !记查6# 号息录录看号旷匸

8、区信记记记所区 建入询改除一頁 書逢嗑甩腿谙-0-12 3 4 5 6 0 择青枫入要修改的城市,苔肥区号:0551览信息已修改!城帀 卤号台起 0551是否继续v or n?图(11)在主菜单中输入4后输入要删除的城市,再按4键确定,系统便自动删除要 删的市的信息,如图(12)所示:or n?兴欢迎使用 区号查询 系统*m*(t 汨:膺建文件夹(2)debugt.exe *'1口 | 回区号请输入要删除的城帀: 此生息已删除!城市進南 0554sifmo疋占址義 v or n?已信帀肥否 12够目疋12 3 4 5 6 04j 选录询|暮 号息录录号 区信记记记所区、 建入询改除一笛

9、爲 常查修删显退请0-f图(12)在主菜单中按6键,便显示出系统,如图所示:统 录询 系。 !记查卞# 号息录录nlz号旷 蚪 区信记记记所区 建入询改除一金 查修刪显退请0- ?主冃 boole 12 3 4 5 6 0o 号54y 区05也)()()(xmxmxxmxxx;咕 观傅 ffl 区巧晋询糸宅亓xxxxmxmxx-xtextex图(13)在主菜单中按0键,便可退出系统,如图所示:xxxxxxxx 覺xxx.画 j§fj齧的忖 用 * press any key to continue.m:*% 迎使用 区吕杳询糸 疣 *图(14)12 3 4 5 6 0录询査 口|r息

10、录录号z宀于 区宿记记记加区 建入询改除一 6 查修删显退请卜e jv 选 主冃4裁针箱皋鸟今新当把程序写好并进行调试时,并不是一帆风顺的,总会遇到很多在调试时遇 到的错谋。1. 首先在定义函数时,不能输入汉字。否则会程序会显示错误。2. 在程序中,如果定义城市名称和区号等为float型,而后面其相应的返回 值为双精度浮点型,会出现相应的警告3. 前后定义变量要统一。4如果要调用添加函数,修改函数,修改函数,查找函数,统计函数等要在 主函数前面进行申明。否则会显示警告。5. 对背景颜色设置的时候,当你输入的颜色在内存中不存在吋,运行程序过 后,系统会告诉你相应的颜色符号常数及数值。6. 如果程

11、序在运行的过程中,对于一个循环语句,如果你返回的值始终是真 的,那么程序将进如死循环。7. 未注意int, float型数据的数值范围,int型数据的数值范围 (-3276832768) o对定义工资变量吋,如果将职工工资定义为float型,将会出 现警告。8. 对应该有花括弧的复合语句,忘记加花括弧。9. 所调用的函数在调用语句之后才定义,而又在调用前未加说明。5 “从刚开始的不知道如何下手到最后看到自己的程序按自己的想法运行,心里 时不时的有一种喜悦。通过这次课程设计,我认识到书上和老师教的内容是有限 的,要想掌握更多的知识我们必须多动脑,多思考,不断地靠自己去学习,同时 我们还应向他人请

12、教,从而了解更多自己不知道的知识。回头看来,编写这个程 序并不像原来想像的那么难,我们要相信自己,无论做什么事,只要我们仔细的 思考了,认真的去做了,我们就一定能做好。通过这次的编程我发现了 a己的一些不足,在编写时经常犯一些低级错误, 由于自己的马虎而浪费了不少时间。在不知如何进行的时候有一种不自信,总想 别人正在做什么,这些不足既然被发现就得在以后的做事屮注意,争取改掉。经过一周的努力我掌握了一些基本的c语言进行程序设计的技巧,更深的理 解和运用结构化程序设计的思想和方法,掌握开发一个小型实用系统的基本方 法,同吋学会了一些调试一个较长程序的基本方法,提高了书写程序设计开发文 档的能力。这

13、一周的实践让我受益匪浅,在此我要感谢孜孜不倦指导我们的老师, 感谢在我困惑时给我帮助的同学,感谢学校给我们一个这样动手动脑的机会,使 我们在理论与实践相结合方而又得到了一次很好的锻炼,其中我真的受益良多。泰考夂献1. 姜灵芝,余健.c语言课程设计案例精编.北京:清华大学出版社,20082. 王新,孙雷.c语言课程设计北京:清华大学出版社,20093. 游洪跃、彭骏、谭斌.c语言程序设计实验与课程设计教程.北京:清华大学出版社,20114. 王连相.c/c+程序设计上机指导与测试.北京:中国铁道出版社,20065. c语言函数手册,机械工业岀版社,1999ttinclude <stdio.

14、h>include <stdlib. h>#inelude <string.h>typedef struct personal info char name50;char address30;char telno30;char postcode30;struct personal info *next;info;info *head;void initiate();void mcnu();void create() ;/的功能是:创建新的区号查询。void addo;/在系统的末尾,写入新的信息,并返回选单void find() ;/查找记录void altero

15、;/修改记录如果未找到要修改的人,则提示系统中没有此人的信 息,并返回选单。voiddclctco;/删除某人的信息,如果未找到要删的人,提示系统中没有此人 的信息,并返回选单。void list () ;/的功能是:显示系统中的所有记录。/初始化void initiat e() if(head=(info *)malloc(sizeof(info)=null)exit(1);head->next=?wll 汀 /显示菜单void menu() printf (*欢迎使用区号查询系统才 iprintf ("n");printf rn,z)printf (“1创建区号系

16、统。n);printf (“2.插入信息。n);printf (“3.查询记录n);printfc4修改记录n);printf(v5删除记录! n);printf (“6.显示所有记录n);printf (“0退出区号查询);printf (“请输入06)/创建系统void creatc() info *pl100,*p2;int m, i;printf c请输入创建个数:);scanf ("%d", &m);for (i=l;i<=m;i+)pli = (inf0 *)malloc(sizeof(info);printf c请输入第%d条信息! n, i);

17、printf (/z城市:n);scanf("%s",&pli->namc);printf (“区号:n);seanf("%s", &pli-poslcode);pli-next二null;if(head->next=null)hcad->ncxt二pli;elsefor(p2=head;p2-next!=null;p2二p2-next); p2->next二pli;iiprintf (z,信息已添加! n);return;void add() info *p, *q;if(q二(info *)malloc(siz

18、eof(tnfo)=null) exit (1);printf (/z请输入要添加的信息!n);printf c城市:n);seanf(s", &q->name);printf (z,区号:n);找到结点尾添加信息scanf (s", q->postcode);for (p=hcad;p->ncxt!二null;p=p->ncxt);p_next=q;q->next=null;printf c此信息已添加!);return; /查找系统信息void find() info *p;char name50;if(head->next=

19、null)printfc此区号域为空!);return; printf ("请输入要查找的城市:n);seanf ("%s", &name);for (p二head-next;p!二null;p=p->next)if (stremp (p->name, name) =0)printf c城市t 区号n);printf("%st%stn,p->name, p-postcode);!else if(p-next二二null)return;ii/修改系统信息void alter()/先查找后删 char name50;除info *p

20、, *pl;if (head->next = null)printfc此系统为空!n);return;iprintf (,z请输入要修改的城市:n);scanf(s", name);for (p=head->next;p!=null;p=p->next) if (strcmp(p->name, name)=0) break;elseif (p-next二二null)return;i!pl=(inf0 *)malloc(sizeof(info);printf (/z城市:n);scanf("%s", pl->namc);strcpy (

21、p->name, pl->name);printfc 区号:n);scanf ("%s", pl->postcodc);strcpy (p->postcode, pl>postcode);printfc此信息已修改! n);显示修改的信息printf c城市t 区号tn);printf cz%st%stn,p->name, p->postcode);free (pl) ;/删除系统信息void delete() char name50;/添加信息/先查找后删除info *p = head-next,*pl 二head->nex

22、t, *p2;if (head->next = null)printfc此系统为空! );return; printfc请输入要删除的城市:n);seanf (“ s", name);whi1e (strcmp(p>name, name)!=0 )&& p->next != null)pl二p;p 二p-next;if (stremp(name, p->name) =0)/输出删除信息辻(p = head->next&&p->ncxt!=null)head->next = p->next;else i f (p=head->next&&p->next=null)head->next=p->next;printf (z,信息已删除,先此系统为空! n);return;ielsepl->next 二 p->next; elseprintf (,z此信息不存在! ! n);return; printfc此信息已删除! “);printf c城市t 区号tn);for (p2=head->next;p2!二null;p2=p2->next)printf (/z%st%stn/z, p2-

温馨提示

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

评论

0/150

提交评论