qq_22860609
2021-07-02 08:21
采纳率: 50%
浏览 31

求各位帮我看看 为什么只有录入的模块能正常使用??

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<Windows.h>
#include<conio.h>
#define MAX_LEN 20
#define STU_tel 200
#define MAX_Add 20
#define N 30
typedef struct Student
{
_int64 id; //学号
char name[MAX_LEN]; //姓名
char sex[8]; //性别
int dorm; //宿舍号
char Class; //班级
char add[MAX_Add]; //院系
_int64 tel; //手机号码
}STU;
STU stu[STU_NUM];
int ch = -1;
int Menu(void);
int n = 0; /* 学生人数为n */

int Menu(); //主菜单
void choose(int ch); //选择
void ReadData(); //读入数据
void Searchbyid(); //通过学号搜索信息
void SortByid(); //按学号从小到大排序
void Modifydata(); //修改信息
void Deletedatd(); //删除信息

void main()
{
printf("请输入要录入的学生数量(n<=200):\n");
scanf("%d", &n);
while (1) {
ch = Menu();
choose(ch);
ch = -1;
}
}

int Menu()
{
int ch;
printf("*********************┍ -----------------------┑ \n");
printf("
欢迎使用学生通信管理系统 *********************\n");
printf("**********************┕------------------------┙ *********************\n");
printf("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx菜单xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n");
printf("======================================================================\n");
printf("....... 1.录入信息 ..... 2.查询信息 .......\n");
printf("....... 3.排序功能 ..... 4.删除信息 .......\n");
printf("....... 5.修改数据 ..... 0.退出系统 .......\n");

printf("请输入你的选择:\n");
scanf("%d", &ch);
return ch;

}

void choose(int ch)
{
switch (ch)
{
case 1:
printf("请输入 学号,姓名,性别,宿舍号,班级,院系,手机号码(Pause:0):\n");
ReadData();
break;
case 2:
printf("请输入你想要搜索的学生学号 : \n");
Searchbyid();
break;
case 3:
SortByid();
break;
case 4:
Modifydata();
break;
case 5:
Deletedatd();
break;
case 0:
printf("结束程序!");
exit(0);
default: printf("输出错误!\n");
}
}

void ReadData() //读入数据
{
int i;
for (i = 0; i < n; i++)
{
printf("学号:");
scanf("%lld", &stu[i].id);
if (stu[i].id == 0)break;
getchar();
printf("姓名:");
gets(stu[i].name);
printf("性别:");
scanf("%s", &stu[i].sex);
getchar();
printf("宿舍号:");
scanf("%d", &stu[i].dorm);
printf("班级:");
scanf("%s", &stu[i].Class);
printf("院系:");
scanf("%s", &stu[i].add);
getchar();
printf("手机号码:");
scanf("%lld", &stu[i].tel);
printf("\n");
}
}

void Searchbyid() //2.查找
{
_int64 term = -1;
int i;
scanf("%lld", &term);
for (i = 0; i < n; i++)
{
if (term == stu[i].id)
{
printf("学号:%lld\n", stu[i].id);
printf("姓名:%s\n", stu[i].name);
printf("性别:%s\n", stu[i].sex);
printf("宿舍号:%d\n", stu[i].dorm);
printf("班级:%s\n", stu[i].Class);
printf("院系:%s\n", stu[i].add);
printf("手机号码:%lld\n", stu[i].tel);
term = -2;
}
}
if (term != -2)
{
printf("查无此人!\n");
}
getch();
}

void SortByid() //3.排序
{
STU temp1 = { 0 };
int i, j;
for (i = 0; i < n - 1; i++)
{
if (stu[i].id > stu[i + 1].id)
{
temp1 = stu[i];
stu[i] = stu[i + 1];
stu[i + 1] = temp1;
}
}
for (j = 0; j < n; j++)
{
printf("学号:%lld\n", stu[j].id);
printf("姓名:%s\n", stu[j].name);
printf("性别:%s\n", stu[j].sex);
printf("宿舍号:%d\n", stu[j].dorm);
printf("班级:%s\n", stu[j].Class);
printf("院系:%s\n", stu[j].add);
printf("手机号码:%lld\n", stu[j].tel);
printf("\n");
}
getch();
}

void Deletedatd()//4.删除信息
{
int i, j, flag = 0;
_int64 id1;
printf("请输入学号:\n");
scanf("%lld", &id1);
for (i = 0; i < n; i++)
{
if (stu[i].id == id1)
{
flag = 1;
for (j = i; j < n - 1; j++)
{
stu[j] = stu[j + 1];
}

    }
}
getch();

}

void Modifydata() //5.修改信息
{

int i, item, j = -1;
_int64 s1;
printf("请输入想要修改的学生学号:\n");
scanf("%lld", &s1);
for (i = 0; i < n; i++)
{
    if (stu[i].id == s1)
    {
        j = i;
        printf("1.修改姓名:\n");
        printf("2.修改性别:\n");
        printf("3.修改宿舍号:\n");
        printf("4.修改班级:\n");
        printf("5.修改院系:\n");
        printf("6.修改手机号码:\n");
        printf("0.结束程序!\n");
        while (1)
        {
            printf("请选择:");
            scanf("%d", &item);
            switch (item)
            {
            case 1:
                printf("请输入新的名字:\n");
                scanf("%s", &stu[j].name);
                break;
            case 2:
                printf("请输入新的性别:\n ");
                scanf("%s", &stu[j].sex);
                break;
            case 3:
                printf("请输入新的宿舍号:\n");
                scanf("%d", &stu[j].dorm);
                break;
            case 4:
                printf("请输入新的班级:\n");
                scanf("%", &stu[j].Class);
                break;
            case 5:
                printf("请输入新的院系:\n");
                scanf("%s", &stu[j].add);
                break;
            case 6:
                printf("请输入新的手机号码:\n");
                scanf("%lld", &stu[j].tel);
                break;
            default: printf("输入错误!\n");
            }
            if (item == 0)
                break;
        }
    }
}
getch();

}

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

2条回答 默认 最新

  • qzjhjxj 2021-07-02 09:46
    最佳回答

    修改完善如下,供参考对照:

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<Windows.h>
    #include<conio.h>
    
    #define MAX_LEN 20
    #define STU_tel 200
    //#define MAX_Add 20
    #define N 30
    
    typedef struct Student
    {
         __int64 id; //学号
         char    name[MAX_LEN]; //姓名
         char    sex[8]; //性别
         int     dorm; //宿舍号
         char    Class[MAX_LEN];//班级
         char    add[MAX_LEN]; //院系
         __int64 tel; //手机号码
    }STU;
    
    STU stu[STU_tel];
    int n = 0; /* 学生人数为n */
    
    int  Menu(void);
    int  Menu(); //主菜单
    void choose(int ch); //选择
    void ReadData(); //读入数据
    void Searchbyid(); //通过学号搜索信息
    void SortByid(); //按学号从小到大排序
    void Modifydata(); //修改信息
    void Deletedatd(); //删除信息
    
    void main()
    {
        int ch;
        while (1) {
                  ch = Menu();
                  choose(ch);
                  //ch = -1;
        }
    }
    
    int Menu()
    {
        int ch;
        printf("*********************┍ -----------------------┑ ********************\n");
        printf("                       欢迎使用学生通信管理系统                       \n");
        printf("*********************┕------------------------┙ ********************\n");
        printf("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx菜单xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n");
        printf("======================================================================\n");
        printf("\t....... 1.录入信息 ..... 2.查询信息 .......\n");
        printf("\t....... 3.排序功能 ..... 4.删除信息 .......\n");
        printf("\t....... 5.修改数据 ..... 0.退出系统 .......\n");
        printf("请输入你的选择:\n");
        scanf("%d", &ch);
        return ch;
    }
    
    void choose(int ch)
    {
        switch (ch){
               case 1:
                     printf("请输入 学号,姓名,性别,宿舍号,班级,院系,手机号码(Pause:0):\n");
                     ReadData();
                     break;
               case 2:
                    printf("请输入你想要搜索的学生学号 : \n");
                    Searchbyid();
                    break;
               case 3:
                    SortByid();
                    break;
               case 4:
                    Deletedatd();
                    break;
               case 5:
                    Modifydata();
                    break;
               case 0:
                    printf("结束程序!");
                    exit(0);
               default: printf("输出错误!\n");
        }
    }
    
    void ReadData() //读入数据
    {
       int i;
       printf("请输入要录入的学生数量(n<=200):");
       scanf("%d", &n);
       for (i = 0; i < n; i++)
       {
           printf("学号:");
           scanf("%lld", &stu[i].id);
           getchar();
           printf("姓名:");
           gets(stu[i].name);
           printf("性别:");
           scanf("%s",stu[i].sex);
           getchar();
           printf("宿舍号:");
           scanf("%d", &stu[i].dorm);
           printf("班级:");
           scanf("%s", stu[i].Class);
           printf("院系:");
           scanf("%s", stu[i].add);
           getchar();
           printf("手机号码:");
           scanf("%lld", &stu[i].tel);
           printf("\n");
       }
    }
    
    void Searchbyid() //2.查找
    {
        __int64 term = -1;
        int i;
        scanf("%I64d", &term);
        for (i = 0; i < n; i++)
        {
           if (term == stu[i].id)
           {
               printf("学号:%lld\n", stu[i].id);
               printf("姓名:%s\n", stu[i].name);
               printf("性别:%s\n", stu[i].sex);
               printf("宿舍号:%d\n", stu[i].dorm);
               printf("班级:%s\n", stu[i].Class);
               printf("院系:%s\n", stu[i].add);
               printf("手机号码:%I64d\n", stu[i].tel);
               term = -2;
               break;
           }
        }
        if (term != -2)
        {
            printf("查无此人!\n");
        }
        getch();
    }
    
    void SortByid() //3.排序
    {
        STU temp1;
        int i, j;
        for(j=0;j<n-1;j++)
        {
            for (i = 0; i < n-1-j; i++)
            {
                 if (stu[i].id > stu[i + 1].id)
                 {
                         temp1 = stu[i];
                        stu[i] = stu[i + 1];
                    stu[i + 1] = temp1;
                 }
            }
        }
        for (j = 0; j < n; j++)
        {
            printf("学号:%lld\n", stu[j].id);
            printf("姓名:%s\n", stu[j].name);
            printf("性别:%s\n", stu[j].sex);
            printf("宿舍号:%d\n", stu[j].dorm);
            printf("班级:%s\n", stu[j].Class);
            printf("院系:%s\n", stu[j].add);
            printf("手机号码:%I64d\n", stu[j].tel);
            printf("\n");
        }
        getch();
    }
    
    void Deletedatd()//4.删除信息
    {
       int i, j, flag = 0;
        __int64 id1;
        printf("请输入学号:\n");
        scanf("%I64d", &id1);
        for (i = 0; i < n; i++)
        {
            if (stu[i].id == id1)
            {
                flag = 1;
                for (j = i; j < n - 1; j++)
                {
                    stu[j] = stu[j + 1];
                }
                n--;
                printf("删除成功!\n");
                break;
            }
        }
        if(flag==0) printf("无此记录!\n");
        getch();
    }
    
    void Modifydata() //5.修改信息
    {
        int i, item, j = -1;
        __int64 s1;
        printf("请输入想要修改的学生学号:\n");
        scanf("%I64d", &s1);
        for (i = 0; i < n; i++)
        {
             if (stu[i].id == s1)
             {
                 j = i;
                 while (1)
                 {
                      printf("请选择:\n");
                      printf("1.修改姓名:\n");
                      printf("2.修改性别:\n");
                      printf("3.修改宿舍号:\n");
                      printf("4.修改班级:\n");
                      printf("5.修改院系:\n");
                      printf("6.修改手机号码:\n");
                      printf("0.结束修改!\n");
                      scanf("%d", &item);
                      switch (item)
                      {
                         case 1:
                                printf("请输入新的名字:\n");
                                scanf("%s", &stu[j].name);
                                break;
                         case 2:
                                printf("请输入新的性别:\n ");
                                scanf("%s", &stu[j].sex);
                                break;
                         case 3:
                                printf("请输入新的宿舍号:\n");
                                scanf("%d", &stu[j].dorm);
                                break;
                         case 4:
                                printf("请输入新的班级:\n");
                                scanf("%s", stu[j].Class);
                                break;
                         case 5:
                                printf("请输入新的院系:\n");
                                scanf("%s", stu[j].add);
                                break;
                         case 6:
                                printf("请输入新的手机号码:\n");
                                scanf("%I64d", &stu[j].tel);
                                break;
                         case 0:break;
                        default:printf("输入错误!\n");
                                break;
                      }
                      if (item == 0) break;
                 }
                 printf("完成修改信息!\n");
                 break;
             }
        }
        if(j == -1) printf("无此记录!\n");
        getch();
    }
    
    评论
    解决 1 无用
    打赏 举报
查看更多回答(1条)

相关推荐 更多相似问题