域名服务器管理系统实验报告《数据结构》课程设计

上传人:豆*** 文档编号:129544437 上传时间:2022-08-03 格式:DOC 页数:39 大小:757KB
返回 下载 相关 举报
域名服务器管理系统实验报告《数据结构》课程设计_第1页
第1页 / 共39页
域名服务器管理系统实验报告《数据结构》课程设计_第2页
第2页 / 共39页
域名服务器管理系统实验报告《数据结构》课程设计_第3页
第3页 / 共39页
点击查看更多>>
资源描述
域名服务器管理系统一、目的 熟悉C语言的基本内容从而掌握C语言的基本知识以及理解C程序的基本编写及运营;理解程序的分模块编写并对程序的每个模块进行具体的设计并且能理解一般C语言编写的程序。编写一种域名服务管理系统程序,根据目录规定执行多种操作,可以录入一种或者多种域名信息,可以提供浏览和显示功能,也可以查询所录入的域名信息,然后也可对于所录入的域名进行删除或者修改,可以反复进行操作。 二、需求分析1、功能需求:编写一种域名服务器管理系统程序,本程序规定创立数据形式是由4个字符串构成的www*域名管理系统。可以提供域名信息的录入,浏览,查询,修改,删除的功能。2、输入:顾客通过从键盘输入符合格式规定的域名并保存在数组里。3、输出:从数组里读取函数并输出显示在屏幕上。4、具体规定:1)本程序规定系统按照目录菜单方式工作。域名的形式为: ,即其数据形式是由4个字符串构成的:www*。域名输入时必须符合格式规定。2)本程序提供如下功能:域名信息录入:顾客根据提示输入新的域名,然后判断域名与否合法,与否存在,如果合法且不存在则提示域名录入成功,若输入不合法则提示你输入的域名有误,提示继续输入,如果已经存在则会提示你输入的域名已经存在,提示继续输入或者选择退出。域名信息浏览:对于已经录入的域名信息进行浏览,根据提示操作,将你录入的所有的域名信息输出显示到屏幕上浏览。域名信息查询:对于已经录入的域名信息进行查询,先输入你想要查询的域名,然后判断顾客所输入的信息与否存在,如果存在,则输出显示到屏幕上,若不存在则提示你输入的域名有误,然后继续输入查询。域名信息修改:对于已经录入的域名信息进行修改,先输入你想要修改的域名,然后判断顾客所输入的信息与否存在,如果存在,则提示输入一种新的域名,若输入的域名合法则提示修改成功,如果输入的域名不合法则提示你输入的域名有误,然后继续输入;如果你是输入想要修改的域名信息不合法则提示你输入的域名有误然后提示重新输入。域名信息删除:对于已经录入的域名信息进行删除,先输入你想要修改的域名,然后判断顾客所输入的信息与否存在,如果存在,则将其成功删除,若不存在,则提示你输入的域名有误然后继续输入。三、概要设计1、本程序重要模块:(1)main()定义及初始化;展示主菜单;读取顾客的输入数据;调用有关功能函数;2、函数部分:本程序定义了一种菜单函数以及五个功能函数(涉及录入函数,浏览函数,查询函,数,修改函数,删除函数)(1)void menu();/菜单函数(2)int input(char aNL, int n); /域名信息录入char aNL是一种二维数组,存储所有录入的域名地址,n是代表域名个数,返回已经输入的地址个数(3)void scan(char aNL, int n); /域名信息浏览char aNL是一种二维数组,存储所有录入的域名地址,n是代表域名个数,没有返回值。(4)void reserch(char aNL, int n);/ 域名信息查询char aNL是一种二维数组,存储所有录入的域名地址,n是代表域名个数,没有返回值(5)void refine(char aNL, int n);/ 域名信息修改char aNL是一种二维数组,存储所有录入的域名地址,n是代表域名个数,没有返回值(6)int del(char aNL, int n);/ 域名信息删除char aNL是一种二维数组,存储所有录入的域名地址,n是代表域名个数,返回值是剩余的域名个数四、具体设计我们规定编写一种域名服务器管理系统程序,本程序定义了一种二维数组,以数组的方式对域名进行存储,如下是具体设计:1. 域名信息录入:顾客根据提示输入新的域名,然后判断域名与否合法,与否存在,如果合法且不存在则提示域名录入成功,若输入不合法则提示你输入的域名有误,提示继续输入,如果已经存在则会提示你输入的域名已经存在,提示继续输入或者选择退出。伪代码如下:do顾客根据提示进行操作,然后判断与否对的If输入对的成功录入else提示你输入的域名有误并重新输入询问顾客与否继续录入while(条件为真)实现如下:int input(char aNL, int n)char tempL;char *check_char;char yesno;int check_int,i;int flag;/*输入的地址与否反复的标志,其中反复时flag=0*/docheck_int=0;flag = 1;system(cls);printf(请输入一种新的域名:n);scanf(%s,temp);/*检查输入与否对的*/check_char = temp;while(*check_char != 0)if(*check_char = .) check_int+;check_char+;if(check_int = 3 & *(check_char-1) != .)for(i = 0; i n; i+)if(!strcmp(ai, temp)/*判断与否已有同样的地址输入*/flag = 0;break;if(flag = 0)system(cls);printf(注意: 域名 %s 已存在!nnn按任意键返回.n, temp);getch();elsestrcpy(an, temp);n+;system(cls);printf(添加成功! nnn按任意键返回.);getch();elsesystem(cls);printf(你输入的域名有误! nnn按任意键返回.);getch();dosystem(cls);printf(与否继续录入域名?(Y/N)n);yesno = getch();putchar(yesno);getch();while(yesno != Y & yesno != y & yesno != N & yesno != n);while(yesno = Y | yesno = y);return n;2. 域名信息浏览:对于已经录入的域名信息进行浏览,根据提示操作,将你录入的所有的域名信息输出显示到屏幕上浏览。伪代码如下:do提示顾客输入想要浏览的域名信息,并判断其与否存在if存在将要浏览的域名信息输出显示在屏幕上else提示你输入的域名有误或者不存在提示顾客继续输入while(条件为真)具体实现如下:void scan(char aNL, int n)int i=0;system(cls);while(i n)if(!(i%10) printf(域名浏览:n);printf(%s n,ai,ai);if(i%2=9)printf(按任意键返回.);getch();system(cls);i+;void reserch(char aNL, int n)char tempL;char *check_char;char yesno;int check_int,i;int flag;/*要查询的地址与否存在的标志,其中存在时flag=0*/docheck_int=0;flag = 1;system(cls);printf(请输入想要搜索的域名:n);scanf(%s,temp);/*检查输入与否对的*/check_char = temp;while(*check_char != 0)if(*check_char = .) check_int+;check_char+;if(check_int = 3 & *(check_char-1) != .)for(i = 0; i n; i+)if(!strcmp(ai, temp)/*判断与否存在要查找的地址*/flag = 0;break;if(flag = 0)printf(搜索成果:n);printf(%s n,temp,temp);printf(按任意键返回.n);getch();elsesystem(cls);printf(查询不到域名%s!n,temp);printf(按任意键返回.);getch();elseprintf(你输入的域名有误!nnn按任意键返回.);getch();dosystem(cls);printf(与否继续搜索域名?(Y/N)n);yesno = getch();putchar(yesno);getch();while(yesno != Y & yesno != y & yesno != N & yesno != n);while(yesno = Y | yesno = y);3. 域名信息查询:对于已经录入的域名信息进行查询,先输入你想要查询的域名,然后判断顾客所输入的信息与否存在,如果存在,则输出显示到屏幕上,若不存在则提示你输入的域名有误,然后继续输入查询。伪代码如下:do提示顾客输入想要查询的域名信息,然后判断与否存在If存在将所查询的域名信息输出显示到屏幕上else提示你输入的域名有误提示与否继续输入域名while(条件为真)具体如下:void reserch(char aNL, int n)char tempL;char *check_char;char yesno;int check_int,i;int flag;/*要查询的地址与否存在的标志,其中存在时flag=0*/docheck_int=0;flag = 1;system(cls);printf(请输入想要搜索的域名:n);scanf(%s,temp);/*检查输入与否对的*/check_char = temp;while(*check_char != 0)if(*check_char = .) check_int+;check_char+;if(check_int = 3 & *(check_char-1) != .)for(i = 0; i n; i+)if(!strcmp(ai, temp)/*判断与否存在要查找的地址*/flag = 0;break;if(flag = 0)printf(搜索成果:n);printf(%s n,temp,temp);printf(按任意键返回.n);getch();elsesystem(cls);printf(查询不到域名%s!n,temp);printf(按任意键返回.);getch();elseprintf(你输入的域名有误!nnn按任意键返回.);getch();dosystem(cls);printf(与否继续搜索域名?(Y/N)n);yesno = getch();putchar(yesno);getch();while(yesno != Y & yesno != y & yesno != N & yesno != n);while(yesno = Y | yesno = y);4. 域名信息修改:对于已经录入的域名信息进行修改,先输入你想要修改的域名,然后判断顾客所输入的信息与否存在,如果存在,则提示输入一种新的域名,若输入的域名合法则提示修改成功,如果输入的域名不合法则提示你输入的域名有误,然后继续输入;如果你是输入想要修改的域名信息不合法则提示你输入的域名有误然后提示重新输入。伪代码如下:do提示顾客输入想要修改的域名信息,并判断其与否存在if存在 提示顾客输入新域名,并判断该域名与否符合格式规定,与否有反复else提示顾客重新输入询问顾客与否继续修改while(条件为真)具体实现如下:void refine(char aNL, int n)char tempL;char *check_char;char yesno;int check_int,i;int flag;/*要修改的地址与否存在的标志,其中存在时flag=0*/int target;/*要修改的目的字符串的下标*/docheck_int=0;flag = 1;system(cls);printf(请输入想要修改的域名:n);scanf(%s,temp);/*检查输入与否对的*/check_char = temp;while(*check_char != 0)if(*check_char = .) check_int+;check_char+;if(check_int = 3 & *(check_char-1) != .)for(i = 0; i n; i+)if(!strcmp(ai, temp)/*判断与否存在要查找的地址*/flag = 0;target = i;break;if(flag = 0)do/*判断找到的地址与否是打算要修改的地址*/system(cls);printf(%s n,temp,temp);printf(与否修改此域名?(Y/N)n);yesno = getch();putchar(yesno);getch();while(yesno != Y & yesno != y & yesno != N & yesno != n);if(yesno = Y | yesno = y)system(cls);printf(请输入一种新的域名:n);scanf(%s,temp);/*检查输入与否对的*/check_char = temp;check_int = 0;flag = 1;while(*check_char != 0)if(*check_char = .) check_int+;check_char+;if(check_int = 3 & *(check_char-1) != .)for(i = 0; i n; i+)if(!strcmp(ai, temp)/*判断与否已有同样的地址输入*/flag = 0;break;if(flag = 0)system(cls);printf(注意: 域名 %s 已存在!nnn按任意键返回.n, temp);getch();elsestrcpy(atarget, temp);n+;system(cls);printf(修改成功!nnn按任意键返回.);getch();elsesystem(cls);printf(你输入的域名有误!nnn按任意键返回.);getch();elsesystem(cls);printf(t无法找到此域名!nn按任意键返回.);getch();elseprintf(你输入的域名有误!nnn按任意键返回.);getch();dosystem(cls);printf(与否继续修改域名?(Y/N)n);yesno = getch();putchar(yesno);getch();while(yesno != Y & yesno != y & yesno != N & yesno != n);while(yesno = Y | yesno = y);5. 域名信息删除:对于已经录入的域名信息进行删除,先输入你想要修改的域名,然后判断顾客所输入的信息与否存在,如果存在,则将其成功删除,若不存在,则提示你输入的域名有误然后继续输入。伪代码如下:do提示顾客输入想要删除的域名信息,然后判断与否存在If存在成功删除else提示无法找到此域名询问与否继续输入while(条件为真)具体如下:int del(char aNL, int n)char tempL;char *check_char;char yesno;int check_int,i;int flag;/*要修改的地址与否存在的标志,其中存在时flag=0*/int target;/*要修改的目的字符串的下标*/docheck_int=0;flag = 1;system(cls);printf(请输入你要删除的域名:n);scanf(%s,temp);/*检查输入与否对的*/check_char = temp;while(*check_char != 0)if(*check_char = .) check_int+;check_char+;if(check_int = 3 & *(check_char-1) != .)for(i = 0; i n; i+)if(!strcmp(ai, temp)/*判断与否存在要查找的地址*/flag = 0;target = i;break;if(flag = 0)do/*判断找到的地址与否是打算要修改的地址*/system(cls);printf(%s n,temp,temp);printf(确认与否删除此域名?(Y/N)n);yesno = getch();putchar(yesno);getch();while(yesno != Y & yesno != y & yesno != N & yesno != n);if(yesno = Y | yesno = y)system(cls);for(; target n; target+)strcpy(atarget, atarget+1);strcpy(a-n,0);system(cls);printf(t删除成功!nnn按任意键返回.);getch();elsesystem(cls);printf(无法找到此域名!nnn按任意键返回.);getch();elsesystem(cls);printf(你输入的域名有误!nnn按任意键返回.);getch();dosystem(cls);printf(与否继续删除其她域名?(Y/N)n);yesno = getch();putchar(yesno);getch();while(yesno != Y & yesno != y & yesno != N & yesno != n);while(yesno = Y | yesno = y);return n;流程图如下:五. 调试分析 程序在调试过程中浮现错误,反复调节也无法改正,具体如下: 最后多种网上查询和征询学长,才发现问题出目前clrscr()的使用,clrscr()在vc6.0中无法使用,那是tc的的库函数,由于在tc下是有conio.h里的clrscr()清屏函数的,但是在VC下,conio.h里没有clrscr(),只能用system(cls);因此最后将所有clrscr()替代成system(cls);,并加上#include。然后程序调试成功,后来应当注意函数与环境的相应与否对的。六 . 测试成果1. 域名服务器管理系统菜单界面2.2.域名信息的录入:1)输入一种合法域名:www.百度.格式合法,因此显示“添加成功”。2)输入一种不合法的域名如.com,明显与规定的格式不符,因此程序提示“你输入的域名有误!”。3.域名信息的浏览:1)提前让系统录入www.百度和俩个域名,目前选择2,域名信息浏览,然后浏览成果如下:4.域名信息的查询1)先输入一种已经存在的域名例如:www.百度进行查询,因此查询成果存在,并将域名信息显示出来,成果如下:2)又输入一种不存在的记录()进行查询,由于记录不存在因此成果显示“”。5.域名信息的修改 将本来的域名www.百度修改为。操作如下:此时再次浏览系统记录,成果就会变为:此时,域名信息浏览就会变为:6.域名信息的删除目前想要删除域名 ,具体操作环节如下:然后显示修改成功:此时,域名信息浏览变为:7.退出选择0表达退出操作,成果如下:七 顾客使用阐明:本程序是有关域名服务器管理系统,可以实现域名信息的录入,浏览,查询,修改,删除的功能,顾客根据输出提示进行相应合法的操作。 1.本程序在VC和TC下都可以运营。 2.具体分为如下几步: 1)域名信息录入:根据菜单目录,顾客输入1便可选择此项,然后系统提示输入域名,输入符合规定的域名在按回车键后将被保存,提示录入成功,顾客可选择多次添加不同域名,固然若输入的域名不合法将提示你输入的域名有误,顾客选择重新输入或者返回菜单界面。 2)域名信息浏览:根据菜单目录,顾客输入2便可对于之前录入的所有域名进行浏览,所有的域名将被输出显示到屏幕上。 3)域名信息查询:根据菜单目录,顾客输入3便可对于之前录入的域名信息进行查询,按照提示输入你所要查询的域名,输入合法即可查询到你所想要查询的域名,并输出显示到屏幕上,若输入的域名不合法或者不存在,系统会提示有误,顾客可进行重新输入或者返回菜单。 4)域名信息修改:根据菜单目录,顾客输入4便可对于之前录入的域名信息进行修改,一方面系统会提示输入你想要修改的域名,输入成功后,然后提示输入新的域名进行替代,输入合法则修改成功,反之则可选择继续输入,若在输入想要修改的域名时输入不合法或者域名不存在系统均会进行提示然后让顾客重新输入或者返回菜单。 5)域名信息删除:根据菜单目录,顾客输入5便可对于之前录入的域名信息进行修改,按照提示输入你想要删除的域名,输入对的则提示删除成功,输入不合法或者域名不存在系统均会提示然后让顾客重新输入或者返回菜单。 6)退出:顾客选择0便可退出系统。八. 课程设计总结 本次课程设计的题目是域名服务器管理系统,规定我们用CC+语言进行课程设计。距离C语言的学习已有一段时间,刚拿到这个题目时,感觉略陌生,对于我而言已经稍显吃力,原本懒散的我觉得可以轻松过关,因此看待它比较散漫,而后对于课程设计严格规定的张教师对我敲响了警钟,让我明白学习不也许不劳而获,只有通过自己认认真真的努力才干获得通过与承认。于是接下来的时间我用了比平常更加认真的心态看待课程设计,向同窗提问或者从网上查询,尽量让自己对代码进行所有的理解,反复认真地完善和修改实验报告,尽量达到教师规定的水准,在此期间,最起码我又重新复习了C语言,又理解指针和数组的使用,也学会了如何对的看待自己的问题,收获颇多。都说课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节。如今看来,果真如此,至少我在次过程中学习到不少东西,对于自身有提高,有进步。这次的课程设计也让我明白,看待任何事情一方面要有一颗积极认真的心态,为之付诸努力,然后你才干得到你想要的。
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!