| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 932 人关注过本帖
标题:求大神帮助 学生号码管理系统 不知道咋修改TAT求帮简化帮修改谢谢!!
只看楼主 加入收藏
AlanXMX
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2016-12-29
收藏
 问题点数:0 回复次数:1 
求大神帮助 学生号码管理系统 不知道咋修改TAT求帮简化帮修改谢谢!!
#include<stdio.h>
#include<string.h>
/*定义学生结构体*/
struct Student
{
 char ID[20];  
 char Name[20];  
 long n;
  };  
/*声明学生数组及学生数量*/                                                                                                                                                                                      
 struct Student students[1000];  
  int num=0;  
  
/*通过学号返回数组下标*/  
 int Student_SearchByIndex(char id[])  
  
{  
   int i;  
for (i=0;i<num;i++)  
 
{  
    if (strcmp(students[i].ID,id)==0)  
  
       {  
        return i;  
        }  
    }  
    return -1;  
  
}  
 
/*通过姓名返回数组下标*/  
  
int Student_SearchByName(char name[])  
  
{  
  int i;  
 for (i=0;i<num;i++)  
 
    {  
     if (strcmp(students[i].Name,name)==0)  
     {
              return i;  
 
        }   
     }  
     return -1;  
  
}  
  
/*显示单条学生记录*/  
  
void Student_DisplaySingle(int index)  
  
{   
     printf("%10s%10s%s\n","学号","姓名","电话");  
 
     printf("**************************************************\n");  
  
     printf("%10s%10s%s\n",students[index].ID,students[index].Name,students[index].n );  
  
}  
  /*插入学生信息*/  
  
void Student_Insert()  
  
{  
  while(1)  
  
    {  
      printf("请输入学号:");  
      scanf("%s",&students[num].ID);  
      getchar();  
      printf("请输入姓名:");  
      scanf("%s",&students[num].Name);  
      getchar();  
      printf("请输入号码:");  
      scanf("%f",&students[num].n);  
      getchar();  
     
         printf("是否继续?(y/n)");  
         if (getchar()=='n')  
  
         {  
           break;  
  
         }  
 
     }  
}
  /*修改学生信息*/  
  
void Student_Modify()  
  {  
 
    //float n1,n2,n3;  
  
     while(1)  
  
     {  
         char id[20];  
         int index;  
         printf("请输入要修改的学生的学号:");  
         scanf("%s",&id);  
         getchar();   
         index=Student_SearchByIndex(id);  
         if (index==-1)  
         {  
           printf("学生不存在!\n");  
 
         }  
           else
  
         {  
           printf("你要修改的学生号码为:\n");  
           Student_DisplaySingle(index);  
           printf("** 请输入新值**\n");  
           printf("请输入学号:");  
           scanf("%s",&students[index].ID);  
           getchar();  
           printf("请输入姓名:");  
           scanf("%s",&students[index].Name);  
  
              getchar();  
           printf("请输入号码:");  
  
              scanf("%f",&students[index].n);   
             getchar();  
   
            
        }  
  
         printf("是否继续?(y/n)");  
  
         if (getchar()=='n')  
  
         {  
  
              break;  
  
         }  
  
     }  
  
}  
  
/*删除学生信息*/  
  
void Student_Delete()  
  
{  
  
     int i;  
  
     while(1)  
  
     {  
  
         char id[20];  
  
         int index;  
 
         printf("请输入要删除的学生的学号:");  
  
         scanf("%s",&id);  
  
         getchar();  
  
         index=Student_SearchByIndex(id);  
  
         if (index==-1)  
         {  
  
              printf("学生不存在!\n");  
  
         }  
  
         else  
  
         {  
 
              printf("你要删除的学生号码为:\n");  
  
              Student_DisplaySingle(index);  
  
              printf("是否真的要删除?(y/n)");  
  
              if (getchar()=='y')  
  
              {  
  
                   for (i=index;i<num-1;i++)  
  
                   {  
  
                       students[i]=students[i+1];//把后边的对象都向前移动  
  
                  }  
  
                  num--;  
  
              }  
  
              getchar();  
  
         }  
  
         printf("是否继续?(y/n)");  
 
         if (getchar()=='n')  
  
         {  
  
             break;  
  
         }  
  
     }  
  
}  
 
   
  
/*按姓名查询*/  
  
void Student_Select()  
 
{  
  
     while(1)  
  
     {  
  
        char name[20];  
  
        int index;  
  
        printf("请输入要查询的学生的姓名:");  
  
         scanf("%s",&name);  
  
         getchar();  
  
        index=Student_SearchByName(name);  
  
         if (index==-1)  
 
         {  
  
              printf("学生不存在!\n");  
  
        }  
  
         else  
  
         {  
  
              printf("你要查询的学生号码为:\n");  
  
              Student_DisplaySingle(index);  
  
         }  
  
         printf("是否继续?(y/n)");  
  
         if (getchar()=='n')   
         {  
 
              break;  
 
         }  
  
     }  
  
}  
  
   
  


   
  
/*显示学生信息*/  
  
void Student_Display()  
  
{  
  
     int i;
     printf("%10s%10s%s\n","学号","姓名","号码");  
  
     printf("\n");  
  
     for (i=0;i<num;i++)  
  
     {  
 
        printf("%10s%10s%s\n",students[i].ID,students[i].Name,  
 
             students[i].n);  
  
     }  
  
}  
  
   
  
/*将学生信息从文件读出*/  
  
void IO_ReadInfo()  
  
{  
  
     FILE *fp;  
 
     int i;  
  
     if ((fp=fopen("Database.txt","rb"))==NULL)  
  
    {  
         printf("不能打开文件!\n");  
  
         return;  
  
     }  
  
     if (fread(&num,sizeof(int),1,fp)!=1)  
  
     {  
 
        num=-1;  
  
     }  
  
     else  
  
     {  
  
         for(i=0;i<num;i++)  
  
         {  
          fread(&students[i],sizeof(struct Student),1,fp);  
 
         }  
 
     }  
  
     fclose(fp);  
  
}  
  
/*将学生信息写入文件*/  
  
void IO_WriteInfo()  
  
{  
    FILE *fp;  
    int i;  
   if ((fp=fopen("Database.txt","wb"))==NULL)  
  {  
   printf("不能打开文件!\n");  
  
   return;  
 
     }  
   if (fwrite(&num,sizeof(int),1,fp)!=1)  
   {  
     printf("写入文件错误!\n");  
  
     }  
      for (i=0;i<num;i++)  
  
     {  
 
         if (fwrite(&students[i],sizeof(struct Student),1,fp)!=1)  
         {  
  
              printf("写入文件错误!\n");  
  
         }  
  
     }      
  
     fclose(fp);  
 
}  
  
   
  
   
  
/*主程序*/  
  
void main()  
  
{  
  
     int n;  
  
     IO_ReadInfo();  
  
     while(1)
        
     
  
     {  
       /*主菜单*/  
  
         printf("\n************欢迎来到学生手机号码管理系统************\n");  
  
         printf(" ************1.录入学生号码**********\n");  
  
         printf(" ************2.修改学生号码**********\n");  
  
         printf(" ************3.删除学生号码**********\n");  
  
         printf(" ************4.按姓名查询学生号码**********\n");  
  
   
         printf(" ************5.退出*************\n");  
  
         printf("请选择(1-5):");  
         scanf("%d",&n);  
         getchar();  
  
         switch(n)  
  
         {  
  
         case 1: Student_Insert();break;  
         case 2:Student_Modify();  break;  
         case 3:Student_Delete();  break;  
         case 4:Student_Select();  break;  
         case 5: exit(0);break;   
         }  
          IO_WriteInfo();  
  
     }  
  
}  
搜索更多相关主题的帖子: 管理系统 include 结构体 
2016-12-29 20:44
倾听心跳
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:39
专家分:153
注 册:2016-6-22
收藏
得分:0 
去掉exit(0)
2016-12-29 20:55
快速回复:求大神帮助 学生号码管理系统 不知道咋修改TAT求帮简化帮修改谢谢!! ...
数据加载中...
 
   



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

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