想将每个分程序运行时将主菜单不显示,只保留分程序运行页面


#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define SIZE 2
struct student 
{
    int number; 
    char name[20];
    char sex[20];
    char  cla[20];
    char score[20];
    char sum[20];
} stu[SIZE];
void menu();
void write();
void save(int x);
void SaveOneStudent(int i);
void SaveAllStudent(int n);
void inturn (struct student c[]);
void save2();
int AddStudent(int n);
void InputOnestudent(int i);
int DelStudent(int n);
void ModifyStudent(int n);
void OutputOneStudent(int i);
void SearchMenu(int n);
void SearchNumber(int n);
void SearchName(int n);
void SearchXueyuan(int n);
void SearchCla(int n);
void search();
void read();
void look();
int  main()
{
    int n=SIZE;
    int choice;
    printf("\n\n\n\n\n");
    printf("****************************欢迎使用学生档案管理系统****************************\n");
    while (1)
    {
        menu();
        printf("请选择0~5:");
        scanf("%d", &choice);
        if ( choice==0 )
        {
            printf("\t\t\t\t谢谢使用!!!");
            break;
        }
        switch(choice)
        {
        case 1:
            write();
            save(SIZE);
            break;
        case 2:
            look();
            break;
        case 3:
            DelStudent(n);
            break;
        case 4:
            ModifyStudent(n);
            break;
        case 5:
            SearchMenu(n);
            break;
        case 0:
            printf("\n谢谢使用!再见!\n");
        default:
            printf("\n按键错误!请重新选择!\n");
        }
    }
    return 0;
}
void menu()
{
    printf("\n\t\t\t\t请输入所需操作\n");
    printf("*************************************\n");
    printf("\t\t\t\t1.录入学生信息并保存\n");
    printf("\t\t\t\t2.浏览学生信息\n");
    printf("\t\t\t\t3.删除学生信息\n");
    printf("\t\t\t\t4.修改学生信息\n");
    printf("\t\t\t\t5.查询学生信息(按姓名查询)or(按生源地查询)\n");
printf("\t\t\t\t0.退出系统\n");
printf("**************组长:钱翼龙、组员:李明达、杨癸强**************\n");
    printf("\n\n\n");
}
void write()
{
    int i;
    for(i=0; i<SIZE; i++)
    {
        printf("学号:");
        scanf("%d",&stu[i].number);
        printf("姓名:");
        scanf("%s",&stu[i].name);
        printf("性别:");
        scanf("%s",&stu[i].sex);
        printf("出生年月:");
        scanf("%s",&stu[i].cla);
        printf("生源地:");
        scanf("%s",&stu[i].score);
        printf("电话:");
        scanf("%s",&stu[i].sum);
    }
    printf("\n\n\n");
}
void save(int x)
{
    FILE *fp;
    int i;
    if((fp=fopen("student.dat","w"))==NULL)
    {
        printf("cannot open file\n");
        exit(1);
    }
    for(i=0; i<SIZE; i++)
        if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
            printf("file write error\n");
    fclose(fp);
    printf("\n信息保存成功!\n");
    printf("\n\n\n");
}
void SaveOneStudent(int i)
{
    FILE *fp;
    if((fp=fopen("student.dat","rb+"))==NULL)
    {
        printf("文件打开失败!\n");
        exit(1);
    }
    fseek(fp,i,0);
    fwrite(&stu[i],sizeof(struct student),1,fp);
    fclose(fp);
    printf("\n\n\n");
}
void SaveAllStudent(int n)
{
    FILE *fp;
    if((fp=fopen("student.dat","wb"))==NULL)
    {
        printf("文件打开失败!\n");
        exit(1);
    }
    fwrite(stu,sizeof(struct student),n,fp);
    fclose(fp);
    printf("\n\n\n");
}
void look()
{
    FILE *fp;
    if((fp=fopen("student.dat","r"))==NULL)
    {
        printf("文件打开失败!\n");
        exit(1);
    }
    int d=0,ans=0,i=0;
    while(!feof(fp))
    {
        if(stu[i].number==0) break;
fscanf(fp,"%d%s%s%s%s%s",&stu[i].number,stu[i].name,stu[i].sex,stu[i].cla,stu[i].score,stu[i].sum);
        printf("学号: ");
        printf("%d\n",stu[i].number);
        printf("姓名: ") ;
        printf("%s\n",stu[i].name);
        printf("性别: ");
        printf("%s\n",stu[i].sex);
        printf("出生时间:");
        printf("%s\n",stu[i].cla);
        printf("生源地:");
        printf("%s\n",stu[i].score);
        printf("电话: ");
        printf("%s\n\n\n\n",stu[i].sum);
        i++;
    }
    fclose(fp);
    printf("请输入任意键退出\n");
    {
        getchar();
        getchar();
        return;
    }
    printf("\n\n\n");
}
int AddStudent(int n)
{
    char c='y';
    FILE *fp;
    if((fp=fopen("student.dat","ab"))==NULL)
    {
        printf("文件打开失败!\n");
        exit(1);
    }
    while(c=='y')
    {
        printf("\n请输入要增加的同学的信息:");
        InputOnestudent(n);
        fwrite(&stu[n],sizeof(struct student),1,fp);        n++;        
printf("\n继续输入其他同学信息吗?\n");
        printf("确定进行增加请按1;不进行增加请按2\n");
        c=getchar();
        getchar();
    }
    printf("\n按任意键继续!\n");
    getchar();
    fclose(fp);
    return(n);
}
void InputOnestudent(int i)
{
    printf("学号\t姓名\性别\t出生日期\t生源地\t电话\n"); scanf("%d\t%s\t%s\t%s\t%s\t%s\n",&stu[i].number,stu[i].name,stu[i].sex,stu[i].cla,stu[i].score,stu[i].sum);
}
void OutputOneStudent(int i)
{
    printf("学号:%d  姓名:%s  性别:%s  \n",stu[i].number,stu[i].name,stu[i].sex);
    printf("出生日期:%s 生源地:%s  电话:%s \n",stu[i].cla,stu[i].score,stu[i].sum);
}
int DelStudent(int n)
{
    void OutputOneStudent(int i);
    int i,k=-1,x;
    char c1='y',c2;
    c2='n';
    printf("\n请输入要删除的同学的学号:");
    scanf("%d",&x);
    for(i=0; i<n; i++)
    {
        if(x==stu[i].number)
        {
            k=i;
            printf("\n该同学信息如下:\n");
            OutputOneStudent(k);
            printf("\n确定删除?\n");
            printf("确定进行删除请按1;不进行删除请按2\n");
            getchar();
            c2=getchar();
            if(c2=='1')
            {
                for(i=k; i<n; i++)
                    stu[i]=stu[i+1];
                n--;
                printf("删除成功!\n");
            }
        }
    }
if(k<0)
                printf("\n输入学号有误,请重新输入!");
save(n);
printf("\n按任意键继续!\n");
getchar();
return(n);
printf("\n\n\n");
}
void ModifyStudent(int n)
{
    struct student temp;
    int k=-1,x,i;
    char c1='y',c2;
    while(c1=='y')
    {
        c2='y';
        printf("\n请输入要修改的同学的学号:");
        scanf("%d",&x);
        for(i=0; i<n; i++)
            if(x==stu[i].number)
            {
                k=i;
                break;
            }
        if(k<0)
            printf("\n输入学号有误,请重新输入!");
        else
        {
            printf("请输入要修改学生修改后的的信息\n");
            printf("学号: ");
            scanf("%d",&temp.number);
            printf("姓名: ") ;
            scanf("%s",temp.name);
            printf("性别: ");
            scanf("%s",temp.sex);
            printf("出生时间:");
            scanf("%s",temp.cla);
            printf("生源地:");
            scanf("%s",temp.score);
            printf("电话: ");
            scanf("%s",temp.sum);
            stu[k]=temp;
            printf("\n修改成功!\n");
            break;
        }
        SaveAllStudent(k);
        printf("\n继续修改操作吗?");
        printf("\n继续修改请按1;不进行修改请按2\n");
        c1=getchar();
        getchar();
    }
    printf("\n按任意键继续!\n");
    getchar();
    printf("\n\n\n");
}
void SearchMenu(int n)
{
    int selet;
    while(1)
{
printf("**********************************************************\n");
        printf("******************** 欢迎进入查询系统  *******************\n");
        printf("**********************************************************\n");
        printf("\n");
        printf("*********************  请输入所需操作  *******************\n");  printf("**********************************************************\n");
        printf("1.按姓名查询\n");
        printf("2.按生源地查询\n");
        printf("0.返回主菜单\n"); printf("**********************************************************\n");
        printf("请输入操作选项:");
        scanf("%d",&selet);
        getchar();
        switch(selet)
        {
        case 1:
            SearchName(n);
            break;
        case 2:
            SearchNumber(n);
            break;
        case 0:
            return;
        default:
            printf("输入错误!请重新输入!\n");
        }
    }
    printf("\n\n\n");
}
void SearchName(int n)
{
    int i,j,k;
    char xname[20],c='y';
    k=-1;
    printf("\n请输入学生姓名:");
    gets(xname);
    for(i=0,j=1; i<n; i++) 
    {
        if(strcmp(stu[i].name,xname)==0)
        {
            k=i;
            printf("学生%d的信息:\n",j++);
            OutputOneStudent(k);
        }
        if(k==-1)
        {
            printf("\n抱歉!没有该学生信息!\n");
        }
        printf("\n按任意键继续!\n");
        getchar();
        printf("\n\n\n");
    }
}
void SearchNumber(int n)
{
    int i,j,k;
    char xname[20],c='y';
    k=-1;
    printf("\n请输入生源地:");
    gets(xname);
    for(i=0,j=1; i<n; i++) 
    {
        if(strcmp(stu[i].score,xname)==0)
        {
            k=i;
            printf("学生%d的信息:\n",j++);
            OutputOneStudent(k);
        }
        if(k==-1)
        {
            printf("\n抱歉!没有该学生信息!\n");
        }
        printf("\n按任意键继续!\n");
        getchar();
        printf("\n\n\n");
    }
}

win下system("cls") 清屏

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7639225
  • 你也可以参考下这篇文章:编写程序,读取文件的内容并在屏幕上显示出来
  • 除此之外, 这篇博客: 基于蓝牙的室内定位硬件部分设计中的 运行结果展示 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    运行结果

  • 您还可以看一下 朱有鹏老师的内存这个大话题-4.1.C语言专题第一部分课程中的 4.1.2.程序运行为什么需要内存2小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    要实现在运行每个分程序时隐藏主菜单,只保留分程序页面,可以通过以下步骤来实现:

    1. 首先,需要了解分程序页面和主菜单页面的具体代码实现和结构。
    2. 找到主菜单的代码位置,将其隐藏或注释掉。
    3. 在各个分程序页面的代码中添加必要的页面元素和功能,确保用户可以完成所需操作。

    具体步骤:

    1. 分析代码结构和功能确定主菜单和分程序页面的实现方式。根据参考资料中的段落6错误分析,可以尝试使用指针变量来操作数组元素。
    2. 找到主菜单的代码位置,根据代码结构和注释将其隐藏或注释掉。具体的操作方式可能因实际情况而异,可以通过在代码中添加条件判断语句或注释掉主菜单相关的代码块来实现。
    3. 在各个分程序页面的代码中添加必要的页面元素和功能。根据需求,添加与分程序功能相关的页面元素,例如按钮、输入框等。根据实际需求和技术要求,可以使用相关的前端技术如HTML、CSS和JavaScript来实现用户界面。
    4. 在分程序页面的代码中实现所需功能。根据分程序的具体功能,编写相应的代码来实现用户操作和数据处理。根据实际需求和技术要求,可以使用相关的编程语言和框架来实现分程序的逻辑。

    需要注意的是,由于问题描述中未提供具体的代码和环境信息,以上为一般的解决思路和步骤,具体实现方式可能因实际情况而异。在实施解决方案之前,建议根据实际情况进行进一步的调研和分析,并根据实际需求和技术要求做出相应的调整和修改。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^