002任务书域名服务器管理系统学号姓名.docx
《002任务书域名服务器管理系统学号姓名.docx》由会员分享,可在线阅读,更多相关《002任务书域名服务器管理系统学号姓名.docx(16页珍藏版)》请在冰豆网上搜索。
002任务书域名服务器管理系统学号姓名
中南大学计算机科学学院本科课程设计
任务书
设计名称:
域名服务器管理系统
指导教师:
帖军下达时间:
2009-6-10
学生姓名:
学号:
年级专业:
自动化
一、课程设计的基本要求
根据所学知识,编写指定题目的C语言程序,并规范地完成课程设计报告。
通过课程设计,加深对《C语言程序设计》和《数据结构》课程所学知识的理解,熟练掌握和巩固C语言的基本知识和语法规范,包括:
数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);库函数应用等;复杂任务功能分解方法(自顶向下逐步求精、模块化设计、信息隐藏等),熟练掌握和巩固三种基本的数据结构(线性结构、树形结构、图形结构)的逻辑结构、存储结构以及相关运算和应用。
学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备利用计算机编程分析解决综合性实际问题的初步能力。
具体要求如下:
1、采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体结构设计合理。
学生也可根据自己对题目的理解增加新的功能模块(视情况可另外加分)。
2、系统以菜单界面方式(至少采用文本菜单界面,如能采用图形菜单界面更好)工作,运行界面友好,演示程序以用户和计算机的对话方式进行。
3、程序算法说明清晰,理论分析与计算正确,运行情况良好,实验测试数据无误,容错性强(能对错误输入进行判断控制)。
4、编程风格良好(包括缩进、空行、适当注释、变量名和函数名见名知意,程序容易阅读等);
5、写出规范的课程设计报告,具体要求见相关说明文档。
二、课程设计的主要内容
题目描述:
域名的形式为<>,即其数据形式是由4个字符串组成的:
www.*********.*****.***
题目要求:
编写一个域名服务器管理系统程序,使之能提供以下功能:
1.系统以菜单方式工作
2.域名信息录入功能
3.域名信息浏览和显示功能
4.域名信息查询功能
5.域名信息的删除与修改
三、课程设计的进程安排
1.2009年6月10日:
布置并下达课程设计题目。
2.2009年7月1日之前:
联系指导教师,理解课程设计题目及相关要求,查阅相关资料,进行课程设计(地点:
9-503,9-504)。
3.2009年9月28日至10月5日(第5周):
课程设计源程序的调试、修改与检查,书写设计报告(地点:
计算机科学学院实验机房)。
4.2009年10月5日之前:
上交、检查设计报告(地点:
计算机科学学院实验机房)。
指导教师:
帖军
2009年6月10日
程序代码:
#include
#include
#defineN20
#defineL20
voidM_menu();
intinput(chara[N][L],intn);/*输入一个新的地址,返回已输入地址的个数;*/
voidscan(chara[N][L],intn);/*流览记录*/
voidreserch(chara[N][L],intn);/*查询*/
voidrefine(chara[N][L],intn);/*修改地址*/
intdel(chara[N][L],intn);/*删除某个已输入地址*/
intmain()
{
chara[N][L]={"0"};
intn=0,i;
charchoose;
do
{
clrscr();
M_menu();
choose=getch();
putchar(choose);
getch();
while(choose>'5'||choose<'0')
{
clrscr();
printf("\n\n\n\n\n\n\n\n\n\n\t\tSorry,%cisnotin0~5!
Pressanykeytocontinue...",choose);
getch();
clrscr();
M_menu();
choose=getch();
putchar(choose);
getch();
}
switch(choose)
{
case'1':
n=input(a,n);break;
case'2':
scan(a,n);getch();;break;
case'3':
reserch(a,n);break;
case'4':
refine(a,n);break;
case'5':
n=del(a,n);break;
case'0':
return0;
}
}while
(1);
}
voidM_menu()
{
printf("\t\t\n\n\n\n\n\n");
printf("\t\t|---------------------------------------|\n");
printf("\t\t|Pleaseinputyourchoose:
|\n");
printf("\t\t|---------------------------------------|\n");
printf("\t\t|1.Enterthewebaddress|\n");
printf("\t\t|2.Scanandshowtherecord|\n");
printf("\t\t|3.Reserchthewebaddress|\n");
printf("\t\t|4.Changetherecord|\n");
printf("\t\t|5.Deletetherecord|\n");
printf("\t\t|0.Exit|\n");
printf("\t\t|---------------------------------------|\n");
printf("\t\tyourchoose:
");
}
intinput(chara[N][L],intn)
{
chartemp[L];
char*check_char;
charyesno;
intcheck_int,i;
intflag;/*输入的地址是否重复的标志,其中重复时flag=0*/
do
{
check_int=0;
flag=1;
clrscr();
printf("Plesseinputanewwebaddress:
\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{
if(!
strcmp(a[i],temp))/*判断是否已有同样的地址输入*/
{
flag=0;
break;
}
}
if(flag==0)
{
clrscr();
printf("\n\n\n\n\n\n\n\n\n\n\t\tNotice:
theaddress\"%s\"youhadentered!
Pressanykeytocontine...\n",temp);
getch();
}
else
{
strcpy(a[n],temp);
n++;
clrscr();
printf("\n\n\n\n\n\n\n\n\n\n\t\tSucceedtoadd!
Pressanykeytocontinue...");
getch();
}
}
else
{
clrscr();
printf("\n\n\n\n\n\n\n\n\n\n\t\tSorry,youenteraerrorwebaddress!
Pressanykeytocontinue...");
getch();
}
do
{
clrscr();
printf("Doyouwanttoenteranother?
(Y/N)\n");
yesno=getch();
putchar(yesno);
getch();
}while(yesno!
='Y'&&yesno!
='y'&&yesno!
='N'&&yesno!
='n');
}while(yesno=='Y'||yesno=='y');
returnn;
}
voidscan(chara[N][L],intn)
{
inti=0;
clrscr();
while(i{
if(!
(i%10))printf("Therecordis:
\n");
printf("%s//%s>\n",a[i],a[i]);
if(i%2==9)
{
printf("Pressanykeytocontinue...");
getch();
clrscr();
}
i++;
}
}
voidreserch(chara[N][L],intn)
{
chartemp[L];
char*check_char;
charyesno;
intcheck_int,i;
intflag;/*要查询的地址是否存在的标志,其中存在时flag=0*/
do
{
check_int=0;
flag=1;
clrscr();
printf("Plesseenterthewebaddressyouwanttoreserch:
\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{
if(!
strcmp(a[i],temp))/*判断是否存在要查找的地址*/
{
flag=0;
break;
}
}
if(flag==0)
{
printf("Theresultis:
\n");
printf("%s//%s>\n",temp,temp);
printf("Pressanykeytocontine...\n");
getch();
}
else
{
clrscr();
printf("\n\n\n\n\n\n\n\n\n\n\t\tSorry,can'tfindthewebaddress\"%s\"!
\n",temp);
printf("\n\n\t\tPressanykeytocontinue...");
getch();
}
}
else
{
printf("Sorry,youenteraerrorwebaddress!
Pressanykeytocontinue...");
getch();
}
do
{
clrscr();
printf("Doyouwanttofindanother?
(Y/N)\n");
yesno=getch();
putchar(yesno);
getch();
}while(yesno!
='Y'&&yesno!
='y'&&yesno!
='N'&&yesno!
='n');
}while(yesno=='Y'||yesno=='y');
}
voidrefine(chara[N][L],intn)
{
chartemp[L];
char*check_char;
charyesno;
intcheck_int,i;
intflag;/*要修改的地址是否存在的标志,其中存在时flag=0*/
inttarget;/*要修改的目标字符串的下标*/
do
{
check_int=0;
flag=1;
clrscr();
printf("Plesseenterthewebaddressyouwanttorefine:
\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{
if(!
strcmp(a[i],temp))/*判断是否存在要查找的地址*/
{
flag=0;
target=i;
break;
}
}
if(flag==0)
{
do/*判断找到的地址是否是打算要修改的地址*/
{
clrscr();
printf("%s//%s>\n",temp,temp);
printf("Isittheaddressthatyouwanttorefine?
(Y/N)\n");
yesno=getch();
putchar(yesno);
getch();
}while(yesno!
='Y'&&yesno!
='y'&&yesno!
='N'&&yesno!
='n');
if(yesno=='Y'||yesno=='y')
{
clrscr();
printf("Pleaseenteranewwebaddress:
\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{
if(!
strcmp(a[i],temp))/*判断是否已有同样的地址输入*/
{
flag=0;
break;
}
}
if(flag==0)
{
clrscr();
printf("\n\n\n\n\n\n\n\n\n\n\t\tNotice:
theaddress\"%s\"youhadentered!
Pressanykeytocontine...\n",temp);
getch();
}
else
{
strcpy(a[target],temp);
n++;
clrscr();
printf("\n\n\n\n\n\n\n\n\n\n\t\tSucceedtorefine!
Pressanykeytocontinue...");
getch();
}
}
else
{
clrscr();
printf("\n\n\n\n\n\n\n\n\n\n\t\tSorry,youenteraerrorwebaddress!
Pressanykeytocontinue...");
getch();
}
}
}
else
{
clrscr();
printf("\n\n\n\n\n\n\n\n\n\n\t\tSorry,can'tfindthewebaddressyouhadenter!
\nPressanykeytocontinue...");
getch();
}
}
else
{
printf("Sorry,youenteraerrorwebaddress!
Pressanykeytocontinue...");
getch();
}
do
{
clrscr();
printf("Doyouwanttorefineanother?
(Y/N)\n");
yesno=getch();
putchar(yesno);
getch();
}while(yesno!
='Y'&&yesno!
='y'&&yesno!
='N'&&yesno!
='n');
}while(yesno=='Y'||yesno=='y');
}
intdel(chara[N][L],intn)
{
chartemp[L];
char*check_char;
charyesno;
intcheck_int,i;
intflag;/*要修改的地址是否存在的标志,其中存在时flag=0*/
inttarget;/*要修改的目标字符串的下标*/
do
{
check_int=0;
flag=1;
clrscr();
printf("Plesseenterthewebaddressyouwanttodelete:
\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{
if(!
strcmp(a[i],temp))/*判断是否存在要查找的地址*/
{
flag=0;
target=i;
break;
}
}
if(flag==0)
{
do/*判断找到的地址是否是打算要修改的地址*/
{
clrscr();
printf("%s//%s>\n",temp,temp);
printf("Isittheaddressthatyouwanttodelete?
(Y/N)\n");
yesno=getch();
putchar(yesno);
getch();
}while(yesno!
='Y'&&yesno!
='y'&&yesno!
='N'&&yesno!
='n');
if(yesno=='Y'||yesno=='y')
{
clrscr();
for(;target{
strcpy(a[target],a[target+1]);
}
strcpy(a[--n],"0");
clrscr();
printf("\n\n\n\n\n\n\n\n\n\n\t\tSucceedtodelete!
Pressanykeytocontinue...");
getch();
}
}
else
{
clrscr();
printf("\n\n\n\n\n\n\n\n\n\n\t\tSorry,can'tfindthewebaddressyouhadenter!
\nPressanykeytocontinue...");
getch();
}
}
else
{
clrscr();
printf("\n\n\n\n\n\n\n\n\n\n\t\tSorry,youenteraerrorwebaddress!
Pressanykeytocontinue...");
getch();
}
do
{
clrscr();
p