| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 741 人关注过本帖
标题:我编了个小系统,可能是主函数有问题吧,操作界面显示有问题,高手帮我看看 ...
只看楼主 加入收藏
fanfan320
Rank: 3Rank: 3
来 自:运城
等 级:论坛游侠
帖 子:82
专家分:104
注 册:2010-5-12
结帖率:63.64%
收藏
已结贴  问题点数:20 回复次数:3 
我编了个小系统,可能是主函数有问题吧,操作界面显示有问题,高手帮我看看啊,谢谢!!!!
程序如下:
#include"stdio.h"
#include"string.h"
#include"stdlib.h"
#define max 100
int Interface(char (*x)[20],int n);//操作页面
int add(int start,struct staff *p);//增加会员
void display(struct staff *p,int start,int end);//显示已存在的信息
void sort(struct staff *p,int n);//信息排序
int search(struct staff *p,char *t,int n);//信息检索
int find(struct staff *p,int n);//信息查找
int modify(struct staff *p,int n);//信息修改
int Delete(struct staff *p,int n);//信息删除
void swap(struct staff *p1,struct staff *p2);//会员信息互换
char password[8]="1234567";
struct staff
{  
    char unit[60];
    char name[20];
    char sex[20];
    int age;
    int height;
    int weight;
};/*说明:《会员信息系统》基本信息包括单位,姓名,性别,年龄,身高,体重六个基本信息,可以根据实际情况有所增减*/
/***************************************************************\
                          主函数
/***************************************************************/
 main()
{
struct staff sta[max];//结构数组,即可输入的最大会员数,
int s;//设置变量,已用于用户输入信息的接收,并将其作为转向函数的参数
int n=0;
char menu[][20]={"添加","显示","排序","修改","删除"};
/************************系统密码管理***********************/
char choice;
char pass[8];
int flag=0;
int w=3;//设置密码输入次数
while(w>0)

{  printf("请输入管理员的密码:\n");
   scanf("%s",pass);
   if(!strcmp(pass,password))//验证密码
   {
   printf("PASS\n\n");
   flag=1;
   break;
   }
else
{
printf("密码错误,请重新输入:\n");
w--;
}
}
   if(!flag)
   {printf("你已连续三次输入错误,请确认后在使用本系统,谢谢!!!!\n");
   exit(0);
   }
system("cls");//使用system 调用dos命令清屏
/*****************欢迎界面****************/
printf("~~~~~~~~~~~~\t\t\t\t\t\t\t\t~~~~~~~~~~~~~~\n");
printf("~~~~~~~~~~~~\t\t\t\t\t\t\t\t~~~~~~~~~~~~~~\n");
printf("        欢迎进入极限俱乐部会员信息系统\n");
printf("%%%%%%%%%%%%%%%%%%%%\t\t\t\t\t\t\t%%%%%%%%%%%%%%%%\n");
printf("\n\n\n\n\n");
printf("作者:***\n");
printf("====================\t\t\t\t\t\t\t================\n");
scanf("%s",&choice);
 if(choice=='n'||choice=='N')
     exit(1);
 /**************************欢迎界面结束********************/
 system("cls");
while(s>=0&&s<=5)
{
 s=Interface(menu,6);
  switch(s)
  {
  case 0:n=add(n,sta);break;
  case 1:display(sta,0,n-1);break;
  case 2:sort(sta,n);break;
  case 3:find(sta,n);break;
  case 4:modify(sta,n);break;
  case 5:n=Delete(sta,n);break;
  }
 }
 system("pause");
 return 0;
}


/**************************************************************\
                          操作界面函数
\**************************************************************/
int Interface(char (*x)[20],int n)
{
int i,j;
printf("\nXXXXXXXXXXXX俱乐部会员信息系统XXXXXXXXXXXXXXX\n");
do
{
for(j=0;j<n;j++)
printf("%2d.%s\n",j+1,x[j]);
printf("%2d,返回\n",j+1);
printf("请从以上选择:\n");
scanf("%d",&i);
}
while(i<0||i>n+1);
return(i-1);
}

/*******************************************************************\
                                添加函数
\********************************************************************/
int add(int start,struct staff *p)
{
int n;
for(n=start;n<max;n++)
{
printf("\n[%d]请输入会员信息(按e退出):\n",n+1);
printf("单位:");
scanf("%s",(p+n)->unit);
if(strcmp((p+n)->unit,"e")==0)break;//若输入e则结束数据输入
printf("输入姓名:");
scanf("%s",(p+n)->name);
printf("性别(male/female):");
scanf("%s",(p+n)->sex);
printf("年龄:");
scanf("%d",&((p+n)->age));
printf("身高(cm):'");
scanf("%d",&((p+n)->height));
printf("体重(kg):");
scanf("%d",&((p+n)->weight));
}
return n;
}

/****************************************************************\
                       显示信息函数
\****************************************************************/
void display(struct staff *p,int start,int end)
{
int i;
printf("%10s%10s%10s","单位","姓名","性别");
printf("%10s%10s%10s","年龄","身高","体重");
printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
for(i=0;i<=end;i++)
{
printf("%10s%10s%10s",(p+i)->unit,(p+i)->name,(p+i)->sex);
printf("%10d%10d%10d",(p+i)->age,(p+i)->height,(p+i)->weight);
printf("\n");
}
}

/***************************************************************\
                     安姓名排序函数
\***************************************************************/
void sort(struct staff *p,int n)
{
int i,j,k;
for(i=0;i<n-1;i++)
{  
  k=i;
  for (j=i+1;j<n;j++)
      if(strcmp((p+k)->name,(p+j)->name)>0)k=j;
      if(i!=k)swap(p+k,p+i);/*交换会员信息*/

}
printf("\n完成排序");
}
/******************************************************************\
                          查找信息函数
\******************************************************************/
int find(struct staff *p,int n)
{
int i;
char str[20];
printf("请输入会员姓名:");
scanf("%s",str);
i=search(p,str,n);
if(i==-1)
printf("没有匹配信息,请重输入%s,!\n",str);
else
    display(p,i,i);
printf("按任意键会到主界面,\n");
getchar();
return i;
}
int search(struct staff *p,char *t,int n)
{
int i;
for(i=0;i<n;i++)
   if(!strcmp((p+i)->name,t))
       return -1;
   return 1;

}


/******************************************************************\
                           修改信息函数
\******************************************************************/
int modify(struct staff *p,int n)
{
int i;
i=find(p,n);
if(i>=0)
{
printf("请输入新信息:\n");
printf("单位:");
scanf("%s",(p+i)->unit);
printf("输入姓名:");
scanf("%s",(p+i)->name);
printf("性别(male/female):");
scanf("%s",(p+i)->sex);
printf("年龄:");
scanf("%d",&((p+i)->age));
printf("身高(cm):'");
scanf("%d",&((p+i)->height));
printf("体重(kg):");
scanf("%d",&((p+i)->weight));
printf("\n修改已完成!\n");}
return n;
}


/****************************************************************\
                        删除信息函数
\****************************************************************/
int Delete(struct staff *p,int n)
{
int i;
i=find(p,n);
if(i>=0)
{
p[i]=p[n-1];
n=n-1;
printf("\n信息已删除!\n");
}
return n;
}

/*****************************************************************\
                        信息互换函数
\*****************************************************************/
void swap(struct staff *p1,struct staff *p2)
{
struct staff temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}

[ 本帖最后由 fanfan320 于 2010-6-18 19:35 编辑 ]
搜索更多相关主题的帖子: 函数 界面 系统 
2010-06-18 19:32
fanfan320
Rank: 3Rank: 3
来 自:运城
等 级:论坛游侠
帖 子:82
专家分:104
注 册:2010-5-12
收藏
得分:0 
还有,怎么输入密码时,显示成**********
2010-06-18 19:38
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1705
专家分:4345
注 册:2007-12-27
收藏
得分:14 
变量s没有赋值,所以不能进入选择功能那个循环。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2010-06-18 19:42
fanfan320
Rank: 3Rank: 3
来 自:运城
等 级:论坛游侠
帖 子:82
专家分:104
注 册:2010-5-12
收藏
得分:0 
回复 3楼 forever74
谢谢,好了。
就那密码问题,怎么做,才可以输入密码时,显示*********啊!
2010-06-19 12:26
快速回复:我编了个小系统,可能是主函数有问题吧,操作界面显示有问题,高手帮我 ...
数据加载中...
 
   



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

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