系统分为九种功能
1、录入 学生信息
2. 增加 学生信息
3. 删除 学生信息
4. 修改 学生信息
5. 查询 学生信息
6. 显示 学生信息
7. 备注 学生信息
8. 排列 学生信息
0. 退出系统
(1)首先进入系统,整了个密码登录
代码:
printf("请输入密码:\n");
while(flag)
{
if(cs>3)
{
printf("输入次数过多,无法登录!\n");
return 0;
}
scanf("%d",&mima2);
if(mima2==mima1)
{
flag=0;
}
if(mima2!=mima1)
{
if(cs<3)
{
printf("第%d次错误,请重新输入:\n",cs);
}
if(cs>=3)
{
printf("第%d次错误\n",cs);
}
flag=1;
cs++;
}
}
运行过程及结果:
(2)随后进入正题——录入功能
void luru()
{
int i=0,j,flag;
printf("\n请输入录入学生数量:\n");
scanf("%d",&n);
if(n>0)
{
for(int k=0;k<n;k++)
{
flag=1;
while(flag)
{
flag=0;
printf("请输入第%d位学生的学号:\n",i+1);
scanf("%s",stu[i].xh);
for (j=0;j<i;j++)
{
if(strcmp(stu[i].xh,stu[j].xh)==0)
{
printf("该学号已经存在,请重新输入!\n");
flag=1;
break;
}
}
}
printf("请输入第%d位学生姓名:\n",i+1);
scanf("%s",stu[i].xm);
printf("请输入第%d位学生性别:\n",i+1);
scanf("%s",stu[i].xb);
printf("请输入第%d位学生年龄:\n",i+1);
scanf("%d",&stu[i].nl);
printf("请输入第%d位学生的专业:\n",i+1);
scanf("%s",stu[i].zy);
printf("请输入第%d位学生的专业成绩:\n",i+1);
scanf("%f",&stu[i].cj);
printf("请输入第%d位学生的原神id:\n",i+1);
scanf("%s",stu[i].ys);
i++;
}
}
printf("*录入成功*\n");
}
运行过程及结果:
(3)结果展示当然用的是——显示功能
void xianshi()
{
int i;
if(n==0)
{
printf("您好,现在没有学生信息!\n");
}
else
{
printf("现在共有%d名学生:\n",n);
printf("学号\t\t姓名\t\t性别\t\t年龄\t\t专业\t\t成绩\t\t原神id\t\t备注\t\t\n");
for (i=0;i<n;i++)
{
printf("%s\t\t%s\t\t%s\t\t%d\t\t%s\t\t%f\t\t%s\t\t%s\n",stu[i].xh,stu[i].xm,stu[i].xb,stu[i].nl,stu[i].zy,stu[i].cj,stu[i].ys,stu[i].bz);
}
}
}
结果不多说。
(4)接下是——增加功能
void zengjia()
{
int i=n,flag,m=0;
printf("\n请输入增加学生数量:\n");
scanf("%d",&m);
if(m>0)
{
for(int k=0;k<m;k++)
{
flag=1;
while(flag)
{
flag=0;
printf("请输入第%d位学生的学号:\n",i+1);
scanf("%s",stu[i].xh);
for(int j=0;j<i;j++)
{
if(strcmp(stu[i].xh,stu[j].xh)==0)
{
printf("该学号已经存在,请重新输入!\n");
flag=1;
break;
}
}
}
printf("请输入第%d位学生姓名:\n",i+1);
scanf("%s",stu[i].xm);
printf("请输入第%d位学生性别:\n",i+1);
scanf("%s",stu[i].xb);
printf("请输入第%d位学生年龄:\n",i+1);
scanf("%d",&stu[i].nl);
printf("请输入第%d位学生的专业:\n",i+1);
scanf("%s",stu[i].zy);
printf("请输入第%d位学生的专业成绩:\n",i+1);
scanf("%f",&stu[i].cj);
printf("请输入第%d位学生的原神id:\n",i+1);
scanf("%s",stu[i].ys);
i++;
}
}
n=m+n;
printf("*增加成功*\n");
}
运行过程及结果:
(5)有增就有减,接下是——删除功能
void shanchu()
{
int i,j,flag=0;
char ch[20];
printf("请输入需要删除的学生学号:\n");
scanf("%s",ch);
for (i=0;i<n;i++)
{
if(strcmp(stu[i].xh,ch)==0)
{
flag=1;
for (j=i;j<n-1;j++)
{
stu[j]=stu[j+1];
}
}
if(flag==1)break;
}
if(flag==0)
{
printf("该学号不存在!!!\n");
}
if(flag==1)
{
printf("删除成功\n");
n--;
}
}
运行过程及结果:
(6)好像有点输入错了,我今年99999岁——修改功能
void xiugai()
{
int i,flag=1,flag2=1,num;
char xh[20],xm[20];
char xb[10],zy[50];
char ys[15],bz[100];
int nl;
float cj;
while(flag)
{
printf("请输入需要修改的学生学号:\n");
scanf("%s",xh);
for(i=0;i<n;i++)
{
if (strcmp(xh,stu[i].xh)==0)
{
flag=0;
break;
}
}
if(flag==1)
{
printf("该学号不存在!\n");
}
}
if(flag==0)
{
while(flag2)
{
printf("************************\n");
printf("* 1.修改学号 *\n");
printf("* 2.修改姓名 *\n");
printf("* 3.修改性别 *\n");
printf("* 4.修改专业 *\n");
printf("* 5.修改原神id *\n");
printf("* 6.修改年龄 *\n");
printf("* 7.修改成绩 *\n");
printf("*------8.退出本菜单----*\n");
printf("************************\n");
printf("请输入子菜单:");
scanf("%d", &num);
if(num==1)
{
printf("请输入新的学号:\n");
scanf("%s",xh);
strcpy(stu[i].xh,xh);
}
else if(num==2)
{
printf("请输入新的姓名:\n");
scanf("%s",xm);
strcpy(stu[i].xm,xm);
}
else if(num==3)
{
printf("请输入新的性别:\n");
scanf("%s",xb);
strcpy(stu[i].xb,xb);
}
else if(num==4)
{
printf("请输入新的专业:\n");
scanf("%s",zy);
strcpy(stu[i].zy,zy);
}
else if(num==5)
{
printf("请输入新的原神id:\n");
scanf("%s",ys);
strcpy(stu[i].ys,ys);
}
else if(num==6)
{
printf("请输入新的年龄:\n");
scanf("%d",&nl);
stu[i].nl=nl;
}
else if(num==7)
{
printf("请输入新的成绩:\n");
scanf("%f",cj);
stu[i].cj=cj;
}
else if(num==8)
{
flag2=0;
}
else
{
printf("请在1~~8之间选择!\n");
flag2=1;
}
if(num>0&&num<8)
printf("*修改成功*\n");
}
}
}
运行过程及结果:
(7)按成绩排个序吧——排序功能
void paixun()
{
if(n==0)
{
printf("您好,现在没有学生信息!\n");
}
if(n>0)
{
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-i-1;j++)
{
if(stu[j].cj<stu[j+1].cj)
{
tt=stu[j+1];
stu[j+1]=stu[j];
stu[j]=tt;
}
}
}
printf("学号\t\t姓名\t\t性别\t\t年龄\t\t专业\t\t成绩\t\t原神id\t\t备注\t\t\n");
for(int i=0;i<n;i++)
{
printf("%d.%s\t\t%s\t\t%s\t\t%d\t\t%s\t\t%f\t\t%s\t\t%s\n",i+1,stu[i].xh,stu[i].xm,stu[i].xb,stu[i].nl,stu[i].zy,stu[i].cj,stu[i].ys,stu[i].bz);
}
}
printf("*排序成功*");
}
运行过程及结果:
(8)查询、备注,就差着俩了
void chaxun()
{
int i,num,flag=1;
char ch[20];
printf("*****************************\n");
printf("** 1.按学号查询 **\n");
printf("** 2.按姓名查询 **\n");
printf("** 3.退出菜单 **\n");
printf("*****************************\n");
while(flag)
{
printf("请输入子菜单:");
scanf("%d",&num);
if(num==1)
{
printf("请输入需要查找学生的学号:\n");
scanf("%s",ch);
for (i=0;i<n;i++)
{
if(strcmp(stu[i].xh,ch)==0)
{
printf("学号\t\t姓名\t\t性别\t\t年龄\t\t专业\t\t成绩\t\t原神id\t\t备注\t\t\n");
printf("%s\t\t%s\t\t%s\t\t%d\t\t%s\t\t%f\t\t%s\t\t%s\n",stu[i].xh,stu[i].xm,stu[i].xb,stu[i].nl,stu[i].zy,stu[i].cj,stu[i].ys,stu[i].bz);
flag=0;
break;
}
}
if(flag!=0)
{
printf("未查找该学生信息!\n");
}
flag=1;
}
else if(num==2)
{
printf("请输入需要查找学生的姓名:\n");
scanf("%s",ch);
for (i=0;i<n;i++)
{
if(strcmp(stu[i].xm,ch)==0)
{
printf("学号\t\t姓名\t\t性别\t\t年龄\t\t专业\t\t成绩\t\t原神id\t\t备注\n");
printf("%s\t\t%s\t\t%s\t\t%d\t\t%s\t\t%f\t\t%s\t\t%s\n",stu[i].xh,stu[i].xm,stu[i].xb,stu[i].nl,stu[i].zy,stu[i].cj,stu[i].ys,stu[i].bz);
flag=0;
break;
}
}
if(flag!=0)
{
printf("未查找该学生信息!\n");
}
flag=1;
}
else if(num==3)
{
printf("*退出成功*\n");
return;
}
else
{
printf("请在1~~3中选择!\n");
flag=1;
}
}
}
void beizhu()
{
int flag=1,i;
char xh[20];
if(n==0)
{
printf("您好,现在没有学生信息!\n");
}
if(n>0)
{
while(flag)
{
printf("请输入该学生的学号:\n");
scanf("%s",xh);
for (i=0;i<n;i++)
{
if(strcmp(xh,stu[i].xh)==0)
{
flag=0;
break;
}
}
if(flag==1)
{
printf("该学号不存在!\n");
}
if(flag==0)
{
printf("请输入该学生备注:\n");
scanf("%s",stu[i].bz);
printf("*备注成功*\n");
}
}
}
}
最后,像退出游戏一下,要挽留一下下的那种——退出功能
void tuichu()
{
int bh1=-1,bh2=-1,flag1=1,flag2=1;
printf("**************************\n");
printf("** **\n");
printf("** 请输入功能序号 **\n");
printf("** **\n");
printf("**************************\n");
printf("** 1.遗憾退出 **\n");
printf("** 2.再玩一会 **\n");
printf("**************************\n");
while(flag1)
{
scanf("%d",&bh1);
if(bh1==1)
{
printf("***************************\n");
printf("** 确定是否忍心退出 **\n");
printf("** 确定请按【1】 **\n");
printf("** 不确定请按【2】 **\n");
printf("***************************\n");
while(flag2)
{
scanf("%d",&bh2);
if(bh2==1)
{
flag2=0;
flag1=0;
t=0;
}
else if(bh2==2)
{
flag2=0;
flag1=0;
t=1;
printf("*(启动)成功*\n");
}
else
{
flag2=1;
printf("请在1~~2中选择!\n");
}
}
}
else if(bh1==2)
{
flag1=0;
t=1;
printf("*(启动)成功*\n");
}
else
{
flag1=1;
printf("请在1~~2中选择!\n");
}
}
}
要输两遍“1”才能退哦!
全部代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int n=0,t=1;
void page();//主菜单函数
void zengjia();//增
void shanchu();//删
void xiugai();//改
void chaxun();//查
void luru();//录入
void xianshi();//显示
void tuichu();//退出函数
void paixun();//排序
void beizhu();//备注
void chongzhi();//重置
struct student
{
char xh[20];//学号
char xm[20];//姓名
char xb[10];//性别
char zy[50];//专业
char ys[15];//原神id
char bz[100];//备注
float cj; //成绩
int nl;//年龄
}stu[100],tt;
int main()
{
int num,flag=1,mima1=12345,mima2,cs=1;
printf("请输入密码:\n");
while(flag)
{
if(cs>3)
{
printf("输入次数过多,无法登录!\n");
return 0;
}
scanf("%d",&mima2);
if(mima2==mima1)
{
flag=0;
}
if(mima2!=mima1)
{
if(cs<3)
{
printf("第%d次错误,请重新输入:\n",cs);
}
if(cs>=3)
{
printf("第%d次错误\n",cs);
}
flag=1;
cs++;
}
}
printf("*******************——登录成功——******************\n");
while(t)
{
page();
printf("您好,请输入菜单编号:");
scanf("%d",&num);
switch(num)
{
case 1: luru(); break;
case 2: zengjia();break;
case 3: shanchu();break;
case 4: xiugai();break;
case 5: chaxun();break;
case 6: xianshi();break;
case 7: beizhu();break;
case 8: paixun();break;
case 0:tuichu();break;
default:printf("输入有误,请重新输入!");
}
}
return 0;
}
void page()
{
printf("\n\n");
printf("*****************************************************\n");
printf("** **\n");
printf("** 学生信息管理系统 **\n");
printf("** **\n");
printf("*****************************************************\n");
printf("** 1. 录入 学生信息 **\n");
printf("** 2. 增加 学生信息 **\n");
printf("** 3. 删除 学生信息 **\n");
printf("** 4. 修改 学生信息 **\n");
printf("** 5. 查询 学生信息 **\n");
printf("** 6. 显示 学生信息 **\n");
printf("** 7. 备注 学生信息 **\n");
printf("** 8. 排列 学生信息 **\n");
printf("** 0. 退出系统 **\n");
printf("*****************************************************\n");
}
void zengjia()
{
int i=n,flag,m=0;
printf("\n请输入增加学生数量:\n");
scanf("%d",&m);
if(m>0)
{
for(int k=0;k<m;k++)
{
flag=1;
while(flag)
{
flag=0;
printf("请输入第%d位学生的学号:\n",i+1);
scanf("%s",stu[i].xh);
for(int j=0;j<i;j++)
{
if(strcmp(stu[i].xh,stu[j].xh)==0)
{
printf("该学号已经存在,请重新输入!\n");
flag=1;
break;
}
}
}
printf("请输入第%d位学生姓名:\n",i+1);
scanf("%s",stu[i].xm);
printf("请输入第%d位学生性别:\n",i+1);
scanf("%s",stu[i].xb);
printf("请输入第%d位学生年龄:\n",i+1);
scanf("%d",&stu[i].nl);
printf("请输入第%d位学生的专业:\n",i+1);
scanf("%s",stu[i].zy);
printf("请输入第%d位学生的专业成绩:\n",i+1);
scanf("%f",&stu[i].cj);
printf("请输入第%d位学生的原神id:\n",i+1);
scanf("%s",stu[i].ys);
i++;
}
}
n=m+n;
printf("*增加成功*\n");
}
void luru()
{
int i=0,j,flag;
printf("\n请输入录入学生数量:\n");
scanf("%d",&n);
if(n>0)
{
for(int k=0;k<n;k++)
{
flag=1;
while(flag)
{
flag=0;
printf("请输入第%d位学生的学号:\n",i+1);
scanf("%s",stu[i].xh);
for (j=0;j<i;j++)
{
if(strcmp(stu[i].xh,stu[j].xh)==0)
{
printf("该学号已经存在,请重新输入!\n");
flag=1;
break;
}
}
}
printf("请输入第%d位学生姓名:\n",i+1);
scanf("%s",stu[i].xm);
printf("请输入第%d位学生性别:\n",i+1);
scanf("%s",stu[i].xb);
printf("请输入第%d位学生年龄:\n",i+1);
scanf("%d",&stu[i].nl);
printf("请输入第%d位学生的专业:\n",i+1);
scanf("%s",stu[i].zy);
printf("请输入第%d位学生的专业成绩:\n",i+1);
scanf("%f",&stu[i].cj);
printf("请输入第%d位学生的原神id:\n",i+1);
scanf("%s",stu[i].ys);
i++;
}
}
printf("*录入成功*\n");
}
void chaxun()
{
int i,num,flag=1;
char ch[20];
printf("*****************************\n");
printf("** 1.按学号查询 **\n");
printf("** 2.按姓名查询 **\n");
printf("** 3.退出菜单 **\n");
printf("*****************************\n");
while(flag)
{
printf("请输入子菜单:");
scanf("%d",&num);
if(num==1)
{
printf("请输入需要查找学生的学号:\n");
scanf("%s",ch);
for (i=0;i<n;i++)
{
if(strcmp(stu[i].xh,ch)==0)
{
printf("学号\t\t姓名\t\t性别\t\t年龄\t\t专业\t\t成绩\t\t原神id\t\t备注\t\t\n");
printf("%s\t\t%s\t\t%s\t\t%d\t\t%s\t\t%f\t\t%s\t\t%s\n",stu[i].xh,stu[i].xm,stu[i].xb,stu[i].nl,stu[i].zy,stu[i].cj,stu[i].ys,stu[i].bz);
flag=0;
break;
}
}
if(flag!=0)
{
printf("未查找该学生信息!\n");
}
flag=1;
}
else if(num==2)
{
printf("请输入需要查找学生的姓名:\n");
scanf("%s",ch);
for (i=0;i<n;i++)
{
if(strcmp(stu[i].xm,ch)==0)
{
printf("学号\t\t姓名\t\t性别\t\t年龄\t\t专业\t\t成绩\t\t原神id\t\t备注\n");
printf("%s\t\t%s\t\t%s\t\t%d\t\t%s\t\t%f\t\t%s\t\t%s\n",stu[i].xh,stu[i].xm,stu[i].xb,stu[i].nl,stu[i].zy,stu[i].cj,stu[i].ys,stu[i].bz);
flag=0;
break;
}
}
if(flag!=0)
{
printf("未查找该学生信息!\n");
}
flag=1;
}
else if(num==3)
{
printf("*退出成功*\n");
return;
}
else
{
printf("请在1~~3中选择!\n");
flag=1;
}
}
}
void shanchu()
{
int i,j,flag=0;
char ch[20];
printf("请输入需要删除的学生学号:\n");
scanf("%s",ch);
for (i=0;i<n;i++)
{
if(strcmp(stu[i].xh,ch)==0)
{
flag=1;
for (j=i;j<n-1;j++)
{
stu[j]=stu[j+1];
}
}
if(flag==1)break;
}
if(flag==0)
{
printf("该学号不存在!!!\n");
}
if(flag==1)
{
printf("删除成功\n");
n--;
}
}
void xianshi()
{
int i;
if(n==0)
{
printf("您好,现在没有学生信息!\n");
}
else
{
printf("现在共有%d名学生:\n",n);
printf("学号\t\t姓名\t\t性别\t\t年龄\t\t专业\t\t成绩\t\t原神id\t\t备注\t\t\n");
for (i=0;i<n;i++)
{
printf("%s\t\t%s\t\t%s\t\t%d\t\t%s\t\t%f\t\t%s\t\t%s\n",stu[i].xh,stu[i].xm,stu[i].xb,stu[i].nl,stu[i].zy,stu[i].cj,stu[i].ys,stu[i].bz);
}
}
}
void xiugai()
{
int i,flag=1,flag2=1,num;
char xh[20],xm[20];
char xb[10],zy[50];
char ys[15],bz[100];
int nl;
float cj;
while(flag)
{
printf("请输入需要修改的学生学号:\n");
scanf("%s",xh);
for(i=0;i<n;i++)
{
if (strcmp(xh,stu[i].xh)==0)
{
flag=0;
break;
}
}
if(flag==1)
{
printf("该学号不存在!\n");
}
}
if(flag==0)
{
while(flag2)
{
printf("************************\n");
printf("* 1.修改学号 *\n");
printf("* 2.修改姓名 *\n");
printf("* 3.修改性别 *\n");
printf("* 4.修改专业 *\n");
printf("* 5.修改原神id *\n");
printf("* 6.修改年龄 *\n");
printf("* 7.修改成绩 *\n");
printf("*------8.退出本菜单----*\n");
printf("************************\n");
printf("请输入子菜单:");
scanf("%d", &num);
if(num==1)
{
printf("请输入新的学号:\n");
scanf("%s",xh);
strcpy(stu[i].xh,xh);
}
else if(num==2)
{
printf("请输入新的姓名:\n");
scanf("%s",xm);
strcpy(stu[i].xm,xm);
}
else if(num==3)
{
printf("请输入新的性别:\n");
scanf("%s",xb);
strcpy(stu[i].xb,xb);
}
else if(num==4)
{
printf("请输入新的专业:\n");
scanf("%s",zy);
strcpy(stu[i].zy,zy);
}
else if(num==5)
{
printf("请输入新的原神id:\n");
scanf("%s",ys);
strcpy(stu[i].ys,ys);
}
else if(num==6)
{
printf("请输入新的年龄:\n");
scanf("%d",&nl);
stu[i].nl=nl;
}
else if(num==7)
{
printf("请输入新的成绩:\n");
scanf("%f",cj);
stu[i].cj=cj;
}
else if(num==8)
{
flag2=0;
}
else
{
printf("请在1~~8之间选择!\n");
flag2=1;
}
if(num>0&&num<8)
printf("*修改成功*\n");
}
}
}
void paixun()
{
if(n==0)
{
printf("您好,现在没有学生信息!\n");
}
if(n>0)
{
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-i-1;j++)
{
if(stu[j].cj<stu[j+1].cj)
{
tt=stu[j+1];
stu[j+1]=stu[j];
stu[j]=tt;
}
}
}
printf("学号\t\t姓名\t\t性别\t\t年龄\t\t专业\t\t成绩\t\t原神id\t\t备注\t\t\n");
for(int i=0;i<n;i++)
{
printf("%d.%s\t\t%s\t\t%s\t\t%d\t\t%s\t\t%f\t\t%s\t\t%s\n",i+1,stu[i].xh,stu[i].xm,stu[i].xb,stu[i].nl,stu[i].zy,stu[i].cj,stu[i].ys,stu[i].bz);
}
}
printf("*排序成功*");
}
void beizhu()
{
int flag=1,i;
char xh[20];
if(n==0)
{
printf("您好,现在没有学生信息!\n");
}
if(n>0)
{
while(flag)
{
printf("请输入该学生的学号:\n");
scanf("%s",xh);
for (i=0;i<n;i++)
{
if(strcmp(xh,stu[i].xh)==0)
{
flag=0;
break;
}
}
if(flag==1)
{
printf("该学号不存在!\n");
}
if(flag==0)
{
printf("请输入该学生备注:\n");
scanf("%s",stu[i].bz);
printf("*备注成功*\n");
}
}
}
}
void tuichu()
{
int bh1=-1,bh2=-1,flag1=1,flag2=1;
printf("**************************\n");
printf("** **\n");
printf("** 请输入功能序号 **\n");
printf("** **\n");
printf("**************************\n");
printf("** 1.遗憾退出 **\n");
printf("** 2.再玩一会 **\n");
printf("**************************\n");
while(flag1)
{
scanf("%d",&bh1);
if(bh1==1)
{
printf("***************************\n");
printf("** 确定是否忍心退出 **\n");
printf("** 确定请按【1】 **\n");
printf("** 不确定请按【2】 **\n");
printf("***************************\n");
while(flag2)
{
scanf("%d",&bh2);
if(bh2==1)
{
flag2=0;
flag1=0;
t=0;
}
else if(bh2==2)
{
flag2=0;
flag1=0;
t=1;
printf("*(启动)成功*\n");
}
else
{
flag2=1;
printf("请在1~~2中选择!\n");
}
}
}
else if(bh1==2)
{
flag1=0;
t=1;
printf("*(启动)成功*\n");
}
else
{
flag1=1;
printf("请在1~~2中选择!\n");
}
}
}