域名服务器管理系统一、目的熟悉C语言的基本容从而掌握C语言的基本知识以及了解C程序的基本编写及运行;了解程序的分模块编写并对程序的每个模块进行详细的设计并且能理解一般C语言编写的程序。
编写一个域名服务管理系统程序,根据目录要求执行多种操作,可以录入一个或者多个域名信息,能够提供浏览和显示功能,也可以查询所录入的域名信息,然后也可对于所录入的域名进行删除或者修改,能够重复进行操作。
二、需求分析1、功能需求:编写一个域名服务器管理系统程序,本程序要求创建数据形式是由4个字符串组成的.*********.*****.***域名管理系统。
能够提供域名信息的录入,浏览,查询,修改,删除的功能。
2、输入:用户通过从键盘输入符合格式要求的域名并保存在数组里。
3、输出:从数组里读取函数并输出显示在屏幕上。
4、具体要求:1)本程序要求系统按照目录菜单方式工作。
域名的形式为: ,即其数据形式是由4个字符串组成的:.*********.*****.***。
域名输入时必须符合格式要求。
2)本程序提供以下功能:域名信息录入:用户根据提示输入新的域名,然后判断域名是否合法,是否存在,如果合法且不存在则提示域名录入成功,若输入不合法则提示你输入的域名有误,提示继续输入,如果已经存在则会提醒你输入的域名已经存在,提示继续输入或者选择退出。
域名信息浏览:对于已经录入的域名信息进行浏览,根据提示操作,将你录入的所有的域名信息输出显示到屏幕上浏览。
域名信息查询:对于已经录入的域名信息进行查询,先输入你想要查询的域名,然后判断用户所输入的信息是否存在,如果存在,则输出显示到屏幕上,若不存在则提示你输入的域名有误,然后继续输入查询。
域名信息修改:对于已经录入的域名信息进行修改,先输入你想要修改的域名,然后判断用户所输入的信息是否存在,如果存在,则提示输入一个新的域名,若输入的域名合法则提示修改成功,如果输入的域名不合法则提示你输入的域名有误,然后继续输入;如果你是输入想要修改的域名信息不合法则提示你输入的域名有误然后提示重新输入。
域名信息删除:对于已经录入的域名信息进行删除,先输入你想要修改的域名,然后判断用户所输入的信息是否存在,如果存在,则将其成功删除,若不存在,则提示你输入的域名有误然后继续输入。
三、概要设计1、本程序主要模块:(1)main(){定义及初始化;展示主菜单;读取用户的输入数据;调用相关功能函数;}2、函数部分:本程序定义了一个菜单函数以及五个功能函数(包括录入函数,浏览函数,查询函,数,修改函数,删除函数)(1)void menu();//菜单函数(2)int input(char a[N][L], int n); //域名信息录入char a[N][L]是一个二维数组,存储所有录入的域名地址,n是代表域名个数,返回已经输入的地址个数(3)void scan(char a[N][L], int n); //域名信息浏览char a[N][L]是一个二维数组,存储所有录入的域名地址,n是代表域名个数,没有返回值。
(4)void reserch(char a[N][L], int n);// 域名信息查询char a[N][L]是一个二维数组,存储所有录入的域名地址,n是代表域名个数,没有返回值(5)void refine(char a[N][L], int n);// 域名信息修改char a[N][L]是一个二维数组,存储所有录入的域名地址,n是代表域名个数,没有返回值(6)int del(char a[N][L], int n);// 域名信息删除char a[N][L]是一个二维数组,存储所有录入的域名地址,n是代表域名个数,返回值是剩下的域名个数四、详细设计我们要求编写一个域名服务器管理系统程序,本程序定义了一个二维数组,以数组的方式对域名进行存储,以下是具体设计:1.域名信息录入:用户根据提示输入新的域名,然后判断域名是否合法,是否存在,如果合法且不存在则提示域名录入成功,若输入不合法则提示你输入的域名有误,提示继续输入,如果已经存在则会提醒你输入的域名已经存在,提示继续输入或者选择退出。
伪代码如下:do{用户根据提示进行操作,然后判断是否正确If输入正确成功录入else提示你输入的域名有误并重新输入询问用户是否继续录入}while(条件为真)实现如下:int input(char a[N][L], int n){char temp[L];char *check_char;char yesno;int check_int,i;int flag;/*输入的地址是否重复的标志,其中重复时flag=0*/do{check_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(a[i], temp))/*判断是否已有同样的地址输入*/flag = 0;break;}}if(flag == 0){system("cls");printf("注意: 域名 \" %s\" 已存在!\n\n\n按任意键返回...\n", temp); getch();}else{strcpy(a[n], temp);n++;system("cls");printf("添加成功! \n\n\n按任意键返回...");getch();}else{system("cls");printf("你输入的域名有误! \n\n\n按任意键返回...");getch();}do{system("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;}对于已经录入的域名信息进行浏览,根据提示操作,将你录入的所有的域名信息输出显示到屏幕上浏览。
伪代码如下:do{提示用户输入想要浏览的域名信息,并判断其是否存在if存在将要浏览的域名信息输出显示在屏幕上else提示你输入的域名有误或者不存在提示用户继续输入}while(条件为真)具体实现如下:void scan(char a[N][L], int n){int i=0;system("cls");while(i < n){if(!(i%10)) printf("域名浏览:\n");printf("%s <%s>\n",a[i],a[i]);if(i%2==9){printf("按任意键返回...");getch();system("cls");}i++;}}void reserch(char a[N][L], int n){char temp[L];char *check_char;char yesno;int check_int,i;int flag;/*要查询的地址是否存在的标志,其中存在时flag=0*/ do{check_int=0;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(a[i], temp))/*判断是否存在要查找的地址*/ {flag = 0;break;}if(flag == 0){printf("搜索结果:\n");printf("%s <%s>\n",temp,temp);printf("按任意键返回...\n");getch();}else{system("cls");printf("查询不到域名\"%s\"!\n",temp);printf("按任意键返回...");getch();}}else{printf("你输入的域名有误!\n\n\n按任意键返回..."); getch();do{system("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.域名信息查询:对于已经录入的域名信息进行查询,先输入你想要查询的域名,然后判断用户所输入的信息是否存在,如果存在,则输出显示到屏幕上,若不存在则提示你输入的域名有误,然后继续输入查询。