#include "stdio.h"
#include "string.h"
#include "windows.h"
#include "conio.h"
void input();
void menu();
struct student
{
int code;
char name[20];
char sex;
int age;
int chinese;
int english;
int computer;
int math;
int total;
int average;
}stud[100];
struct student temp;
void input()
int num,i;
printf("請問您要輸入幾個學生的資訊?\n");
scanf("%d",&num);
for(i=0;i<num;i++)
printf("請輸入第%d個學生的學號:\n",i+1);
scanf("%d",&stud[i].code);
printf("請輸入第%d個學生的姓名:\n",i+1);
scanf("%s",&stud[i].name);
fflush(stdin);
printf("請輸入第%d個學生的性別(F為女,M為男):\n",i+1);
scanf("%c",&stud[i].sex);
printf("請輸入第%d個學生的年齡:\n",i+1);
scanf("%d",&stud[i].age);
printf("請輸入第%d個學生的語文成績:\n",i+1);
scanf("%d",&stud[i].chinese);
printf("請輸入第%d個學生的英語成績:\n",i+1);
scanf("%d",&stud[i].english);
printf("請輸入第%d個學生的計算機成績:\n",i+1);
scanf("%d",&stud[i].computer);
printf("請輸入第%d個學生的數學成績:\n",i+1);
scanf("%d",&stud[i].math);
stud[i].total = stud[i].chinese+stud[i].english+stud[i].computer+stud[i].math;
stud[i].average = stud[i].total/4;
}
printf("您已經輸入了%d個學生的資訊",num);
printf("\n請按任意鍵返回主選單!");
getch();
system("cls");
menu();
void find()
int choice,i,code;
printf("請問您需要按照哪一個方式來查詢學員:\n");
printf("查詢方式:1.按學號查詢。2.按姓名查詢。\n");
scanf("%d",&choice);
if(choice==1)
printf("請輸入您要查詢的同學的學號:\n");
scanf("%d",&code);
for(i=0;i<100;i++)
if(code == stud[i].code)
printf("\n第%d個學生的學號是:%d\n",i+1,stud[i].code);
printf("第%d個學生的姓名是:%s\n",i+1,stud[i].name);
printf("第%d個學生的性別是:%c\n",i+1,stud[i].sex);
printf("第%d個學生的年齡是:%d\n",i+1,stud[i].age);
printf("第%d個學生的語文成績是:%d\n",i+1,stud[i].chinese);
printf("第%d個學生的英語成績是:%d\n",i+1,stud[i].english);
printf("第%d個學生的計算機成績是:%d\n",i+1,stud[i].computer);
printf("第%d個學生的數學成績是:%d\n",i+1,stud[i].math);
printf("第%d個學生的總成績是:%d\n",i+1,stud[i].total);
printf("第%d個學生的平均分是:%d\n",i+1,stud[i].average);
printf("══════════════════════════════\n");
else if(choice==2)
printf("請輸入您要查詢的學生的姓名");
gets(name);
if(strcmp(name,stud[i].name)==0)
else
printf("請輸入1或者2,只能按照姓名或者學號來查詢學生資訊");
find();
printf("學生相關資訊列印完畢");
void insert()
int i,j=0;
printf("請輸入要插入學生的資訊:\n");
printf("請輸入學生的學號:\n");
scanf("%d",&temp.code);
printf("請輸入學生的姓名:\n");
scanf("%s",&temp.name);
printf("請輸入學生的性別(F為女,M為男):\n");
scanf("%c",&temp.sex);
printf("請輸入學生的年齡:\n");
scanf("%d",&temp.age);
printf("請輸入學生的語文成績:\n");
scanf("%d",&temp.chinese);
printf("請輸入學生的英語成績:\n");
scanf("%d",&temp.english);
printf("請輸入學生的計算機成績:\n");
scanf("%d",&temp.computer);
printf("請輸入學生的數學成績:\n");
scanf("%d",&temp.math);
temp.total = temp.chinese+temp.english+temp.computer+temp.math;
temp.average = temp.total/4;
if(temp.code<stud[i].code)
for(j=99;j>i;j--)
stud[j]=stud[j-1];
stud[j]=temp;
break;
printf("你成功已插入了學生的資訊!");
void del()
int code,i,j;
if(code==stud[i].code)
for(j=i;j<100;j++)
stud[j]=stud[j+1];
if(strlen(stud[i].name)>0)
void output()
int i;
void sort()
int i,j;
for(j=i+1;j<100;j++)
if(strlen(stud[i].name)>0 && strlen(stud[j].name)>0)
if(stud[i].average<stud[j].average)
temp=stud[i];
stud[i]=stud[j];
printf("學生資訊按照平均分降序排序完畢\n");
output();
void error()
printf("輸入錯誤,請輸入(1-7):\n");
printf("按任意鍵結束。。。。。\n");
void menu()
int choice;
printf("\t\t學生資訊管理系統\n");
printf("*************************************************\n");
printf("\t\t【1】輸入資料\n");
printf("\t\t【2】查詢資料\n");
printf("\t\t【3】插入資料\n");
printf("\t\t【5】輸出資料\n");
printf("\t\t【6】排序資料\n");
printf("\t\t【7】退出\n");
printf("請輸入您的選擇(1-7)\n");
switch(choice)
case 1:input();break;
case 2:find();break;
case 3:insert();break;
case 4:del();break;
case 5:output();break;
case 6:sort();break;
case 7:exit(0);break;
default:error();break;
void main()
#include "stdio.h"
#include "string.h"
#include "windows.h"
#include "conio.h"
void input();
void menu();
struct student
{
int code;
char name[20];
char sex;
int age;
int chinese;
int english;
int computer;
int math;
int total;
int average;
}stud[100];
struct student temp;
void input()
{
int num,i;
printf("請問您要輸入幾個學生的資訊?\n");
scanf("%d",&num);
for(i=0;i<num;i++)
{
printf("請輸入第%d個學生的學號:\n",i+1);
scanf("%d",&stud[i].code);
printf("請輸入第%d個學生的姓名:\n",i+1);
scanf("%s",&stud[i].name);
fflush(stdin);
printf("請輸入第%d個學生的性別(F為女,M為男):\n",i+1);
scanf("%c",&stud[i].sex);
fflush(stdin);
printf("請輸入第%d個學生的年齡:\n",i+1);
scanf("%d",&stud[i].age);
printf("請輸入第%d個學生的語文成績:\n",i+1);
scanf("%d",&stud[i].chinese);
printf("請輸入第%d個學生的英語成績:\n",i+1);
scanf("%d",&stud[i].english);
printf("請輸入第%d個學生的計算機成績:\n",i+1);
scanf("%d",&stud[i].computer);
printf("請輸入第%d個學生的數學成績:\n",i+1);
scanf("%d",&stud[i].math);
stud[i].total = stud[i].chinese+stud[i].english+stud[i].computer+stud[i].math;
stud[i].average = stud[i].total/4;
}
printf("您已經輸入了%d個學生的資訊",num);
printf("\n請按任意鍵返回主選單!");
fflush(stdin);
getch();
system("cls");
menu();
}
void find()
{
int choice,i,code;
char name[20];
printf("請問您需要按照哪一個方式來查詢學員:\n");
printf("查詢方式:1.按學號查詢。2.按姓名查詢。\n");
scanf("%d",&choice);
if(choice==1)
{
printf("請輸入您要查詢的同學的學號:\n");
scanf("%d",&code);
for(i=0;i<100;i++)
{
if(code == stud[i].code)
{
printf("\n第%d個學生的學號是:%d\n",i+1,stud[i].code);
printf("第%d個學生的姓名是:%s\n",i+1,stud[i].name);
printf("第%d個學生的性別是:%c\n",i+1,stud[i].sex);
printf("第%d個學生的年齡是:%d\n",i+1,stud[i].age);
printf("第%d個學生的語文成績是:%d\n",i+1,stud[i].chinese);
printf("第%d個學生的英語成績是:%d\n",i+1,stud[i].english);
printf("第%d個學生的計算機成績是:%d\n",i+1,stud[i].computer);
printf("第%d個學生的數學成績是:%d\n",i+1,stud[i].math);
printf("第%d個學生的總成績是:%d\n",i+1,stud[i].total);
printf("第%d個學生的平均分是:%d\n",i+1,stud[i].average);
printf("══════════════════════════════\n");
}
}
}
else if(choice==2)
{
printf("請輸入您要查詢的學生的姓名");
fflush(stdin);
gets(name);
for(i=0;i<100;i++)
{
if(strcmp(name,stud[i].name)==0)
{
printf("\n第%d個學生的學號是:%d\n",i+1,stud[i].code);
printf("第%d個學生的姓名是:%s\n",i+1,stud[i].name);
printf("第%d個學生的性別是:%c\n",i+1,stud[i].sex);
printf("第%d個學生的年齡是:%d\n",i+1,stud[i].age);
printf("第%d個學生的語文成績是:%d\n",i+1,stud[i].chinese);
printf("第%d個學生的英語成績是:%d\n",i+1,stud[i].english);
printf("第%d個學生的計算機成績是:%d\n",i+1,stud[i].computer);
printf("第%d個學生的數學成績是:%d\n",i+1,stud[i].math);
printf("第%d個學生的總成績是:%d\n",i+1,stud[i].total);
printf("第%d個學生的平均分是:%d\n",i+1,stud[i].average);
printf("══════════════════════════════\n");
}
}
}
else
{
printf("請輸入1或者2,只能按照姓名或者學號來查詢學生資訊");
fflush(stdin);
getch();
system("cls");
find();
}
printf("學生相關資訊列印完畢");
printf("\n請按任意鍵返回主選單!");
fflush(stdin);
getch();
system("cls");
menu();
}
void insert()
{
int i,j=0;
system("cls");
printf("請輸入要插入學生的資訊:\n");
printf("請輸入學生的學號:\n");
scanf("%d",&temp.code);
printf("請輸入學生的姓名:\n");
scanf("%s",&temp.name);
fflush(stdin);
printf("請輸入學生的性別(F為女,M為男):\n");
scanf("%c",&temp.sex);
fflush(stdin);
printf("請輸入學生的年齡:\n");
scanf("%d",&temp.age);
printf("請輸入學生的語文成績:\n");
scanf("%d",&temp.chinese);
printf("請輸入學生的英語成績:\n");
scanf("%d",&temp.english);
printf("請輸入學生的計算機成績:\n");
scanf("%d",&temp.computer);
printf("請輸入學生的數學成績:\n");
scanf("%d",&temp.math);
temp.total = temp.chinese+temp.english+temp.computer+temp.math;
temp.average = temp.total/4;
for(i=0;i<100;i++)
{
if(temp.code<stud[i].code)
{
for(j=99;j>i;j--)
{
stud[j]=stud[j-1];
}
}
stud[j]=temp;
break;
}
printf("你成功已插入了學生的資訊!");
printf("\n請按任意鍵返回主選單!");
fflush(stdin);
getch();
system("cls");
menu();
}
void del()
{
int code,i,j;
scanf("%d",&code);
for(i=0;i<100;i++)
{
if(code==stud[i].code)
{
for(j=i;j<100;j++)
{
stud[j]=stud[j+1];
}
}
if(strlen(stud[i].name)>0)
{
printf("\n第%d個學生的學號是:%d\n",i+1,stud[i].code);
printf("第%d個學生的姓名是:%s\n",i+1,stud[i].name);
printf("第%d個學生的性別是:%c\n",i+1,stud[i].sex);
printf("第%d個學生的年齡是:%d\n",i+1,stud[i].age);
printf("第%d個學生的語文成績是:%d\n",i+1,stud[i].chinese);
printf("第%d個學生的英語成績是:%d\n",i+1,stud[i].english);
printf("第%d個學生的計算機成績是:%d\n",i+1,stud[i].computer);
printf("第%d個學生的數學成績是:%d\n",i+1,stud[i].math);
printf("第%d個學生的總成績是:%d\n",i+1,stud[i].total);
printf("第%d個學生的平均分是:%d\n",i+1,stud[i].average);
printf("══════════════════════════════\n");
}
}
printf("學生相關資訊列印完畢");
printf("\n請按任意鍵返回主選單!");
fflush(stdin);
getch();
system("cls");
menu();
}
void output()
{
int i;
for(i=0;i<100;i++)
{
if(strlen(stud[i].name)>0)
{
printf("\n第%d個學生的學號是:%d\n",i+1,stud[i].code);
printf("第%d個學生的姓名是:%s\n",i+1,stud[i].name);
printf("第%d個學生的性別是:%c\n",i+1,stud[i].sex);
printf("第%d個學生的年齡是:%d\n",i+1,stud[i].age);
printf("第%d個學生的語文成績是:%d\n",i+1,stud[i].chinese);
printf("第%d個學生的英語成績是:%d\n",i+1,stud[i].english);
printf("第%d個學生的計算機成績是:%d\n",i+1,stud[i].computer);
printf("第%d個學生的數學成績是:%d\n",i+1,stud[i].math);
printf("第%d個學生的總成績是:%d\n",i+1,stud[i].total);
printf("第%d個學生的平均分是:%d\n",i+1,stud[i].average);
printf("══════════════════════════════\n");
}
}
printf("學生相關資訊列印完畢");
printf("\n請按任意鍵返回主選單!");
fflush(stdin);
getch();
system("cls");
menu();
}
void sort()
{
int i,j;
for(i=0;i<100;i++)
{
for(j=i+1;j<100;j++)
{
if(strlen(stud[i].name)>0 && strlen(stud[j].name)>0)
{
if(stud[i].average<stud[j].average)
{
temp=stud[i];
stud[i]=stud[j];
stud[j]=temp;
}
}
}
}
printf("學生資訊按照平均分降序排序完畢\n");
output();
}
void error()
{
printf("輸入錯誤,請輸入(1-7):\n");
printf("按任意鍵結束。。。。。\n");
fflush(stdin);
getch();
system("cls");
menu();
}
void menu()
{
int choice;
system("cls");
printf("\t\t學生資訊管理系統\n");
printf("*************************************************\n");
printf("\t\t【1】輸入資料\n");
printf("\t\t【2】查詢資料\n");
printf("\t\t【3】插入資料\n");
printf("\t\t【5】輸出資料\n");
printf("\t\t【6】排序資料\n");
printf("\t\t【7】退出\n");
printf("*************************************************\n");
printf("請輸入您的選擇(1-7)\n");
scanf("%d",&choice);
switch(choice)
{
case 1:input();break;
case 2:find();break;
case 3:insert();break;
case 4:del();break;
case 5:output();break;
case 6:sort();break;
case 7:exit(0);break;
default:error();break;
}
}
void main()
{
menu();
}