#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") 清屏
不知道你这个问题是否已经解决, 如果还没有解决的话:要实现在运行每个分程序时隐藏主菜单,只保留分程序页面,可以通过以下步骤来实现:
具体步骤:
需要注意的是,由于问题描述中未提供具体的代码和环境信息,以上为一般的解决思路和步骤,具体实现方式可能因实际情况而异。在实施解决方案之前,建议根据实际情况进行进一步的调研和分析,并根据实际需求和技术要求做出相应的调整和修改。