记事本(代码)

#include
#include
#include
struct student
{
int xuehao; //学号
char name[10]; //名字
char xingbie[10]; //性别
int chengji[100]; //成绩
}; //个体
struct data
{
char kemu[10]; //科目名
}; //科目

int fum_luru(struct student gt[100],struct data km[100],int a,int *pm) //录入
{

char t; //选择是否继续输入
flag:
printf("请输入第%d个学生信息\n",a+1);
printf("学号:");
scanf("%d",>[a].xuehao);
printf("姓名:");
scanf("%s",>[a].name);
printf("性别:");
scanf("%s",>[a].xingbie);
for (int i = 0; i < *pm; i++)
{
printf("%s:",km[i].kemu);
scanf("%d",>[a].chengji[i]);
}
a++;
printf("Y/y 继续输入;其他任意键结束输入。");
scanf("%s",&t);
if (t =='y' || t =='Y')goto flag;
return a;
}
void fum_liulan(struct student gt[100],struct data km[100],int a,int *pm) //浏览
{
printf("学号 姓名 性别 ");
for (int j = 0; j < *pm; j++)
printf("%s ",km[j].kemu);
printf("\n");
for (int i = 0; i {
printf("%-10d ",gt[i].xuehao);
printf("%-6s ",gt[i].name);
printf("%-5s ",gt[i].xingbie);
for(int k=0;k<*pm;k++)
printf("%d ",gt[i].chengji[k]);
printf("\n");

}

}

int fum_tianjia(struct student gt[100],struct data km[100],int a,int *pm) //添加
{
printf("请输入第%d个学生信息\n",a+1);
printf("学号:");
scanf("%d",>[a].xuehao);
printf("姓名:");
scanf("%s",>[a].name);
printf("性别:");
scanf("%s",>[a].xingbie);
for (int k = 0; k < *pm; k++)
{
printf("%s:",km[k].kemu);
scanf("%d",>[a].chengji[k]);
}
printf("添加完毕");
a++;
return a;
}

int fum_shanchu(struct student gt[100],struct data km[100],int a,int *pm) //删除
{
int l; //用于for循环
int i; //用于表示删除编号
int x; //选择
char q[10]; //被删除的姓名
int cx; //被删除的学号
printf("1.按学号删除\n");
printf("2.按姓名删除\n");
flag:
scanf("%d",&x);
if(x==1)
{
printf("请输入该学生的学号\n");
scanf("%s",&cx);
for (i=0;iif(cx==gt[i].xuehao)
{
for(l=0;l{
gt[l]=gt[l+1];
}
}
}
if(x==2)
{
printf("请输入该学生的姓名\n");
scanf("%s",&q);
for (i=0;iif(q==gt[i].name)
{
for(l=0;l{
gt[l]=gt[l+1];
}
}
}
if(x>2)
{
printf("输入错误,请重新输入\n");
goto flag;
}
a--;
printf("删除完毕");
return a;
}

void fum_xiugai(struct student gt[100],struct data km[100],int a,int *pm) //修改
{
int x; //选择
char q[10]; //被修改的姓名
int cx; //

被修改的学号
printf("1.按学号修改\n");
printf("2.按姓名修改\n");
flag: scanf("%d",&x);
if(x==1)
{
printf("请输入该学生的学号\n");
scanf("%d",&cx);
for (int i=0;i{
if(cx==gt[i].xuehao)
{
printf("请输入\n");
printf("学号:");
scanf("%d",>[i].xuehao);
printf("姓名:");
scanf("%s",>[i].name);
printf("性别:");
scanf("%s",>[i].xingbie);
for (int k = 0; k < *pm; k++)
{
printf("%s:",km[k].kemu);
scanf("%d",>[i].chengji[k]);
}
}
else
printf("没找到该学号\n");
}
}
if(x==2)
{
printf("请输入该学生的姓名\n");
scanf("%s",&q);
for (int j=0;j{ if(strcmp(q,gt[j].name)==0)
{
printf("请输入\n");
printf("学号:");
scanf("%d",>[j].xuehao);
printf("姓名:");
scanf("%s",>[j].name);
printf("性别:");
scanf("%s",>[j].xingbie);
for (int k = 0; k < *pm; k++)
{
printf("%s:",km[k].kemu);
scanf("%d",>[j].chengji[k]);
}
}
else
printf("没找到该姓名\n");
}
}
if(x>2)
{
printf("输入错误,请重新输入\n");
goto flag;
}
printf("修改完成");
}

void fum_paixu(struct student gt[100],struct data km[100],int a,int *pm) //排序
{
struct student gts; //打擂法 中间量
int r; //选择排序方法
printf("1.按学号排序(从小到大)\n");
printf("2.按成绩排序(从高到低)\n");
flag:
scanf("%d",&r);
if(r==1)
{
for(int i=0;ifor(int k=i;kif(gt[i].xuehao>gt[k].xuehao)
{
gts=gt[i];
gt[i]=gt[k];
gt[k]=gts;
}
}
if(r==2)
{
char ming[10];
printf("请输入所依据的科目名\n");
scanf("%s",&ming);
for(int k=0;k<*pm;k++)
if(strcmp(ming,km[k].kemu)==0)
break;
for(int i=0;ifor(int j=0;jif(gt[i].chengji[k]>gt[j].chengji[k])
{
gts=gt[i];
gt[i]=gt[k];
gt[k]=gts;
}
}
if(r>2)
{
printf("输入错误,请重新输入\n");
goto flag;
}
printf("排序完毕\n");
}

void fum_chaxun(struct student gt[100],struct data km[100],int a,int *pm) //查询
{
int x; //选择
char q[10]; //被修改的姓名
int cx; //被修改的学号
printf("1.按学号查询\n");
printf("2.按姓名查询\n");
flag:
scanf("%d",&x);
if(x==1)
{
printf("请输入该学生的学号\n");
scanf("%d",&cx);
for (int i=0;i{ if(cx==gt[i].xuehao)
{
printf("学号 姓名 性别 ");
for (int j = 0; j < *pm; j++)
printf("%s ",km[j].kemu);
printf("\n");


printf("%-10d ",gt[i].xuehao);
printf("%-6s ",gt[i].name);
printf("%-5s ",gt[i].xingbie);
for(int k=0;k<*pm;k++)
printf("%d ",gt[i].chengji[k]);
printf("\n");
break;
}

else
if(i==(a-1))
printf("没找到该学号\n");
}
}
if(x==2)
{
printf("请输入该学生的姓名\n");
scanf("%s",&q);
for (int l=0;l{
if(strcmp(q,gt[l].name)==0)
{
printf("学号 姓名 性别 ");
for (int j = 0; j < *pm; j++)
printf("%s ",km[j].kemu);
printf("\n");

printf("%-10d ",gt[l].xuehao);
printf("%-6s ",gt[l].name);
printf("%-5s ",gt[l].xingbie);
for(int k=0;k<*pm;k++)
printf("%d ",gt[l].chengji[k]);
printf("\n");
break;
}
else
if(l==(a-1))
printf("没找到该姓名\n");
}
}
if(x>2)
{
printf("输入错误,请重新输入\n");
goto flag;
}
}

int fum_charu (struct student gt[100],struct data km[100],int a,int *pm)
{
a=fum_tianjia(gt,km,a,pm);
struct student gts; //打擂法 中间量
for(int i=0;ifor(int k=i;kif((gt[i].xuehao)>(gt[k].xuehao))
{
gts=gt[i];
gt[i]=gt[k];
gt[k]=gts;
}
printf("已按学号顺序插入\n");
return a;
}
void main()
{
int j ;
struct student gt[100];
struct data km[100];
int m; //科目数 后面也用
int *pm;
pm=&m;
int a = 0; //学生编号 后面也用
int xuanze;//菜单选择
flag:
system("cls");
printf("*******************(^o^)*************************\n");
printf("*************欢迎登陆学生教务系统****************\n\n");
printf("*\t\t1.输入学生成绩 \t\t*\n");
printf("*\t\t2.浏览学生成绩 \t\t*\n");
printf("*\t\t3.添加学生成绩 \t\t*\n");
printf("*\t\t4.删除学生成绩 \t\t*\n");
printf("*\t\t5.修改学生成绩 \t\t*\n");
printf("*\t\t6.排序学生成绩 \t\t*\n");
printf("*\t\t7.查询学生成绩 \t\t*\n");
printf("*\t\t8.插入学生成绩 \t\t*\n");
printf("*\t\t9.退出系统\n");
printf("\n*************************************************\n");

printf("请输入您的选择<1~9>: ");
scanf("%d",&xuanze);

switch(xuanze)
{
case 1:
printf("请输入科目数\n");
scanf("%d",pm);
for (j = 0; j<*pm; j++)
{
printf("科目%d",j+1);
scanf("%s",&km[j].kemu);
}
a=fum_luru(gt,km,a,pm);
system("pause");goto flag; break;
case 2:
fum_liulan(gt,km,a,pm);
system("pause");goto flag; break;
case 3:
a=fum_tianjia(gt,km,a,pm);
system("pause");goto flag; break;
case 4:
a=fum_shanchu(gt,km,a,pm);
system("pause");goto flag; break;
case 5:
fum_xiugai(gt,km,a,pm);
system("pause");goto flag; break;
case 6:
fum_pai

xu(gt,km,a,pm);
system("pause");goto flag; break;
case 7:
fum_chaxun(gt,km,a,pm);
system("pause");goto flag; break;
case 8:
a=fum_charu(gt,km,a,pm);
system("pause");goto flag; break;
case 9:
printf("\n程序结束\n"); break;
default:printf("\n请重新输入\n");main(); break;
}
}

相关文档
最新文档