📄 text2.cpp
字号:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int INDEX[32];
struct STUDENT
{
int ID,Chinese,Math,English;
char name[21];
}students[32];
void page_title(char *menu_item)
{
printf("************************>>> 学 生 成 绩 管 理 系 统 <<<************************\n\n");
printf(" 制作人:赵晨/戴杰\n- %s -\n\n",menu_item);
}
void return_confirm()
{
printf("\n按任意键返回……\n");
getch();
}
void student_new()
{
int n;
page_title("录入学生基本信息");
for(n=0;n<32;n++)
if(students[n].ID==0) break;
printf("学号:");
scanf("%d",&students[n].ID);
printf("姓名:");
scanf("%s",&students[n].name);
return_confirm();
}
int search_id()
{
int n,i;
printf("请输入学生学号:");
scanf("%d",&i);
for(n=0;n<32;n++)
if(students[n].ID==i&&students[n].ID!=0)
{
printf("学号:%d\n",students[n].ID);
printf("姓名:%s\n",students[n].name);
return(n);
}
printf("\n输入错误或学号不存在.\n");
return(-1);
}
void student_del()
{
int n;
page_title("注销学生基本信息");
if((n=search_id())!=-1) students[n].ID=0;
printf("\n!该学生已注销.\n");
return_confirm();
}
void student_edit()
{
int n;
page_title("编辑学生基本信息");
if((n=search_id())!=-1)
{
printf("\n请重新输入新信息:\n学号:");
scanf("%d",&students[n].ID);
printf("姓名:");
scanf("%s",&students[n].name);
}
return_confirm();
}
void score_input()
{
int s,n,t;
page_title("录入成绩");
printf("\n请用数字键选择科目\n1-语文 2-数学 3-英语\n");
scanf("%d",&s);
for(n=0;n<32;n++)
{
if(students[n].ID!=0)
{
printf("学号:%d 姓名:%s 成绩:",students[n].ID,students[n].name);
scanf("%d",&t);
switch(s)
{
case 1 : students[n].Chinese=t;break;
case 2 : students[n].Math=t;break;
case 3 : students[n].English=t;break;
}
}
}
return_confirm();
}
void score_edit()
{
int n;
page_title("修改成绩");
if((n=search_id())!=-1)
{
printf("语文:%d 数学:%d 英语:%d\n",students[n].Chinese,students[n].Math,students[n].English);
printf("\n请重新输入成绩:\n语文:");
scanf("%d",&students[n].Chinese);
printf("数学:");
scanf("%d",&students[n].Math);
printf("英语:");
scanf("%d",&students[n].English);
}
return_confirm();
}
void sort_it(char nn)
{
int n,m,p,x,t[32];
for(n=0;n<32;n++)
{
switch(nn)
{
case '1' : t[n]=students[n].ID;break;
case '2' : t[n]=students[n].Chinese;break;
case '3' : t[n]=students[n].Math;break;
case '4' : t[n]=students[n].English;break;
case '5' : t[n]=students[n].Chinese+students[n].Math+students[n].English;break;
}
}
for(n=0;n<32;n++)
{
x=0;
p=-1;
for(m=0;m<32;m++)
{
if(t[m]>x)
{
x=t[m];
p=m;
}
}
t[p]=-1;
INDEX[n]=p;
}
}
void browser()
{
int n,x;
char k;
sort_it('1');
page_title("浏览");
printf("按数字键选择排序方式或按 0 返回\n");
printf("1-学号\t 姓名\t2-语文\t3-数学\t4-英语\t5-总分\n");
for(n=0;n<32;n++)
{
if(INDEX[n-1]!=-1&&students[n].ID!=0)
{
printf("%d\t %s\t ",students[n].ID,students[n].name);
printf("%d\t ",students[n].Chinese);
printf("%d\t %d\t ",students[n].Math,students[n].English);
printf("%d\n",students[n].Chinese+students[n].Math+students[n].English);
}
}
while(1)
{
k=getch();
if(k<'6'&&k>'0')
{
sort_it(k);
page_title("浏览");
printf("按数字键选择排序方式或按 0 返回\n");
printf("1-学号\t 姓名\t2-语文\t3-数学\t4-英语\t5-总分\n");
for(n=0;n<32;n++)
{
if(INDEX[n-1]!=-1)
{
x=INDEX[n];
if(students[x].ID!=0)
{printf("%d\t%s\t",students[x].ID,students[x].name);
printf("%d\t",students[x].Chinese);
printf("%d\t%d\t",students[x].Math,students[x].English);
printf("%d\n",students[x].Chinese+students[x].Math+students[x].English);
}
}
}
}
else if(k=='0') break;
else continue;
}
}
void save()
{FILE *in;
int i;
char save[10];
printf("请输入文件名:");
scanf("%s",save);
if((in=fopen(save,"wb"))==NULL)
{printf("cannot open file\n");
return;
}
for(i=0;i<32;i++)
if(fwrite(&students[i],sizeof(struct STUDENT),1,in)!=1)
printf("file write error\n");
fclose(in);
return_confirm();
}
void load()
{FILE *out;
int i;
char load[10];
printf("请输入文件名:");
scanf("%s",load);
if((out=fopen(load,"rb"))==NULL)
{printf("cannot open infle\n");
return;
}
printf("学号\t姓名\t语文\t数学\t英语\t总分\n");
for(i=0;i<32;i++)
{
fread(&students[i],sizeof(struct STUDENT),1,out);
if(students[i].ID!=0)
{
printf("%d\t%s\t",students[i].ID,students[i].name);
printf("%d\t",students[i].Chinese);
printf("%d\t%d\t",students[i].Math,students[i].English);
printf("%d\n",students[i].Chinese+students[i].Math+students[i].English);
}
}
fclose(out);
return_confirm();
}
void main()
{
while(1)
{
page_title("选择菜单");
printf("请用数字键选择操作\n\n");
printf("1 录入学生基本信息\n2 修改学生基本信息\n");
printf("3 注销学生基本信息\n4 录入成绩\n5 修改成绩\n");
printf("6 保存数据\n7 载入数据\n8 浏览...\n0 退出\n");
switch(getch())
{
case '1' : student_new();break;
case '2' : student_edit();break;
case '3' : student_del();break;
case '4' : score_input();break;
case '5' : score_edit();break;
case '6' : save();break;
case '7' : load();break;
case '8' : browser();break;
case '0' : exit(0);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -