标题:[求助]程序可以运行,但所运行显示结果与说明部分不对称。。。
只看楼主
酷狗e族
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-12-16
 问题点数:0 回复次数:2 
[求助]程序可以运行,但所运行显示结果与说明部分不对称。。。
大家帮我修改下,我都不知道怎样。。
空格了一个对应了,另外一个又不对应拉

#include "stdio.h" /*I/O函数*/
#include "string.h"/*字符串函数*/
#include "ctype.h" /*字符操作函数*/
#include "conio.h"
#define M 100 /*定义常数表示记录数*/
typedef struct /*定义数据结构*/
{
char name[20]; /*姓名*/
char qq[15];/*QQ号码*/
char tele[11]; /*电话*/
char addr[20];/*地址*/
}Contacts;
/******以下是函数原型*******/
int enter(Contacts t[]); /*输入记录*/
void list(Contacts t[],int n); /*显示记录*/
void search(Contacts t[],int n); /*按姓名查找显示记录*/
int delete(Contacts t[],int n); /*删除记录*/
int add(Contacts t[],int n); /*插入记录*/
void print(Contacts temp); /*显示单条记录*/
int find(Contacts t[],int n,char *s) ; /*查找函数*/
int menu_select(); /*主菜单函数*/
/******主函数开始*******/
main()
{
int i;
Contacts stu[M]; /*定义结构体数组*/
int length; /*保存记录长度*/
clrscr(); /*清屏*/
for(;;)/*无限循环*/
{
switch(menu_select()) /*调用主菜单函数,返回值整数作开关语句的条件*/
{
case 0:length=enter(stu);break;/*输入记录*/
case 1:list(stu,length);break; /*显示全部记录*/
case 2:search(stu,length);break; /*查找记录*/
case 3:length=delete(stu,length);break; /*删除记录*/
case 4:length=add(stu,length); break; /*插入记录*/
case 5:exit(0); /*如返回值为5则程序结束*/
}
}
}
/*菜单函数,函数返回值为整数,代表所选的菜单项*/
menu_select()
{
char s[80];
int c;
textcolor(YELLOW); /*设置文本显示颜色为黄色*/
textbackground(BLUE); /*设置背景颜色为蓝色*/
printf("\n\n\n ★★★★★★★★★★欢迎使用Ghosts通讯录系统★★★★★★★★★★★\n\n");
printf("\n\n 程序作者 \n");
printf(" 商务信息:◆张山凤 \n");
printf(" ◆流氓兔 \n");
printf(" ◆李山红 \n");
printf(" ◆韩国菜 \n\n");
printf(" 如有雷同,纯属于巧合。 \n");
printf(" (*^__^*)按任意键进入主界面(*^__^*)\n");/*提示压任意键继续*/
getch(); /*读入任意字符*/
clrscr(); /*清屏*/
gotoxy(1,1);
printf("\n\n ***************************通讯录主界面****************************\n\n\n");
printf("\n\n ※ 0. 输入数据 ※ \n");
printf(" ※ 1. 显示数据 ※ \n");
printf(" ※ 2. 按名查询 ※ \n");
printf(" ※ 3. 删除记录 ※ \n");
printf(" ※ 4. 增加记录 ※ \n");
printf(" ※ 5. 退出 ※ \n");
printf("************************************************************************\n");
do{
printf("\n 输入你的选择(0~5):"); /*提示输入选项*/
scanf("%s",s); /*输入选择项*/
c=atoi(s); /*将输入的字符串转化为整型数*/
}while(c<0||c>5); /*选择项不在0~5之间重输*/
return c; /*返回选择项,主程序根据该数调用相应的函数*/
}
int enter(Contacts t[])
{
int i,n;
char *s;
clrscr(); /*清屏*/
printf("\n请输入你想输入的数据条数 \n"); /*提示信息*/
scanf("%d",&n); /*输入记录数*/
printf("请输入数据 \n"); /*提示输入记录*/
printf("姓名\tQQ\t电话号码\t地址\n");
printf("--------------------------------------------------------------\n");
for(i=0;i<n;i++)
{
scanf("%s%s%s%s",t[i].name,t[i].qq,t[i].tele,t[i].addr); /*输入记录*/
printf("---------------------------------------------------------------\n");
}
return n; /*返回记录条数*/
}
/*显示记录,参数为记录数组和记录条数*/
void list(Contacts t[],int n)
{
int i;
clrscr();
printf("\n\n*******************通讯录*********************\n");
printf(" 姓名\tQQ\t电话号码\t地址\n");
printf("------------------------------------------------\n");
for(i=0;i<n;i++)
printf("%-20s%-15s%-15s%-15s\n",t[i].name,t[i].qq,t[i].tele,t[i].addr);
if((i+1)%20==0) /*判断输出是否达到20条记录*/
{
printf("按任意键回到主界面\n"); /*提示信息*/
getch(); /*压任意键继续*/
}
printf("************************结束***********************\n");
}
/*查找记录*/
void search(Contacts t[],int n)
{
char s[20]; /*保存待查找姓名字符串*/
int i; /*保存查找到结点的序号*/
clrscr(); /*清屏*/
printf("请键入你要查找的姓名\n");
scanf("%s",s); /*输入待查找姓名*/
i=find(t,n,s); /*调用find函数,得到一个整数*/
if(i>n-1) /*如果整数i值大于n-1,说明没找到*/
printf("没有找到\n");
else
print(t[i]); /*找到,调用显示函数显示记录*/
}
/*显示指定的一条记录*/
void print(Contacts temp)
{
clrscr();
printf("\n\n*********************************************\n");
printf(" 姓名\tQQ\t电话号码\t地址\n");
printf("------------------------------------------------\n");
printf("%-20s%-15s%-15s%-15s\n",temp.name,temp.qq,temp.tele,temp.addr);
printf("**********************结束***********************\n");
}
/*查找函数,参数为记录数组和记录条数以及姓名s */
int find(Contacts t[],int n,char *s)
{
int i;
for(i=0;i<n;i++)/*从第一条记录开始,直到最后一条*/
{
if(strcmp(s,t[i].name)==0) /*记录中的姓名和待比较的姓名是否相等*/
return i; /*相等,则返回该记录的下标号,程序提前结结束*/
}
return i; /*返回i值*/
}
/*删除函数,参数为记录数组和记录条数*/
int delete(Contacts t[],int n)
{
char s[20]; /*要删除记录的姓名*/
int ch=0;
int i,j;
printf("请键入你要删除的姓名\n"); /*提示信息*/
scanf("%s",s);/*输入姓名*/
i=find(t,n,s); /*调用find函数*/
if(i>n-1) /*如果i>n-1超过了数组的长度*/
printf("没有找到数据删除\n"); /*显示没找到要删除的记录*/
else
{
print(t[i]); /*调用输出函数显示该条记录信息*/
printf("你真的确认你要删除吗?(1/0)\n"); /*确认是否要删除*/
scanf("%d",&ch); /*输入一个整数0或1*/
if(ch==1) /*如果确认删除整数为1*/
{
for(j=i+1;j<n;j++) /*删除该记录,实际后续记录前移*/
{
strcpy(t[j-1].name,t[j].name); /*将后一条记录的姓名拷贝到前一条*/
strcpy(t[j-1].qq,t[j].qq); /*将后一条记录的单位拷贝到前一条*/
strcpy(t[j-1].tele,t[j].tele);/*将后一条记录的电话拷贝到前一条*/
strcpy(t[j-1].addr,t[j].addr);
}
n--; /*记录数减1*/
}
}
return n; /*返回记录数*/
}
/*插入记录函数,参数为结构体数组和记录数*/
int add(Contacts t[],int n)/*插入函数,参数为结构体数组和记录数*/
{
Contacts temp; /*新插入记录信息*/
int i,j;
char s[20]; /*确定插入在哪个记录之前*/
printf("请输入数据\n");
printf("************************************************\n");
printf(" 姓名\tQQ\t电话号码\t地址\n");
printf("--------------------------------------------------\n");
scanf("%s%s%s%s",temp.name,temp.qq,temp.tele,temp.addr); /*输入插入信息*/
printf("------------------------------------------------\n");
printf("请输入本通讯录存在的人名 \n");
scanf("%s",s); /*输入插入位置的姓名*/
i=find(t,n,s); /*调用find,确定插入位置*/
for(j=n-1;j>=i;j--) /*从最后一个结点开始向后移动一条*/
{
strcpy(t[j+1].name,t[j].name); /*当前记录的姓名拷贝到后一条*/
strcpy(t[j+1].qq,t[j].qq); /*当前记录的单位拷贝到后一条*/
strcpy(t[j+1].tele,t[j].tele); /*当前记录的电话拷贝到后一条*/
strcpy(t[j+1].addr,t[j].addr);/*当前记录的地址拷贝到后一条*/
}
strcpy(t[i].name,temp.name); /*将新插入记录的姓名拷贝到第i个位置*/
strcpy(t[i].qq,temp.qq); /*将新插入记录的单位拷贝到第i个位置*/
strcpy(t[i].tele,temp.tele); /*将新插入记录的电话拷贝到第i个位置*/
strcpy(t[i].addr,temp.addr);/*将新插入记录的地址拷贝到第i个位置*/
n++; /*记录数加1*/
return n; /*返回记录数*/
}

[此贴子已经被作者于2006-12-20 20:24:33编辑过]

搜索更多相关主题的帖子: 不对称 结果 运行 
2006-12-20 18:32
酷狗e族
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-12-16
得分:0 
就是所有有关显示的部分都显示不对应啊、。
2006-12-20 18:33
酷狗e族
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-12-16
得分:0 
为什么没有人呢?
I am waiting for you.....
2006-12-20 19:23



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-110891-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.051082 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved