#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define Max 40
/*
*/
struct score
{
int xuehao;
char name[30];
float Chinese;
float Math;
float English;
float Major_one;
float Major_two;
float Sum;
};
struct score Score[Max];
int Student_num = 0;
// 選單
void Menu(void);
// 得到選單中的選項
char get_num(void);
// 添加學生
void Insert_Score(void);
// 洗掉學生
void Delete_Score(void);
//修改學生成績
void Update_Score(void);
//查找學生成績
void Lookup_Score(void);
//遍歷學生成績
void Find_Score(void);
int main()
{
char ch;
do
{
Menu();
ch = get_num();
switch(ch)
{
case '1' :
system("cls");
Insert_Score();
break;
case '2' :
system("cls");
Delete_Score();
break;
case '3' :
system("cls");
Update_Score();
break;
case '4' :
system("cls");
Lookup_Score();
break;
case '5' :
system("cls");
Find_Score();
break;
case '6' :printf("\n謝謝你的使用,再見!");
break;
}
}while(ch != '6');
return 0;
}
// 選單
void Menu()
{
printf("\n——————————學生成績管理系統——————————\n");
printf("\n 1、添加學生成績");
printf("\n 2、洗掉學生成績");
printf("\n 3、修改學生成績");
printf("\n 4、查看學生成績");
printf("\n 5、遍歷學生成績");
printf("\n 6、退出系統");
printf("\n\n請輸入你的選項:");
}
//得到選單中的選項
char get_num()
{
char ch;
while(ch = getchar())
{
if(ch == '\n')
continue;
if((ch >= '1'&& ch <= '6'))
return ch;
else
printf("您輸入不合法請重新輸入:");
}
}
//添加學生
void Insert_Score()
{
int i;
int xuehao; //學號
char name[30]; //姓名
float Chinese; //語文
float Math; // 數學
float English; //英語
float Major_one; //專業1
float Major_two; // 專業2
float Sum;
printf("\n請輸入你的學號:");
scanf("%d",&xuehao);
for(i=0;i<Max;i++)
{
if(Score[i].xuehao == xuehao)
{
printf("\n該學號已經存在,請重新輸入:");
scanf("%d",&xuehao);
i = 0;
}
}
printf("\n請輸入你的姓名:");
scanf("%s",name);
printf("\n語文成績:");
scanf("%f",&Chinese);
printf("\n數學成績:");
scanf("%f",&Math);
printf("\n英語成績:");
scanf("%f",&English);
printf("\n專業1成績:");
scanf("%f",&Major_one);
printf("\n專業2成績:");
scanf("%f",&Major_two);
Sum = Chinese + Math + English + Major_one + Major_two;
Score[Student_num].xuehao = xuehao;
strcpy(Score[Student_num].name, name);
Score[Student_num].Chinese = Chinese;
Score[Student_num].Math = Math;
Score[Student_num].English = English;
Score[Student_num].Major_one = Major_one;
Score[Student_num].Major_two = Major_two;
Score[Student_num].Sum = Sum;
printf("\n—————————————添加成功—————————————\n");
printf("學號\t姓名\t語文\t數學\t英語\t專業1\t專業2\t總分\n");
printf("%d\t",Score[Student_num].xuehao);
printf("%s\t",Score[Student_num].name);
printf("%.2f\t",Score[Student_num].Chinese);
printf("%.2f\t",Score[Student_num].Math);
printf("%.2f\t",Score[Student_num].English);
printf("%.2f\t",Score[Student_num].Major_one);
printf("%.2f\t",Score[Student_num].Major_two);
printf("%.2f\t",Score[Student_num].Sum);
Student_num ++;
}
//洗掉學生
void Delete_Score()
{
int i;
int j;
int flag=1;
int xuehao;
printf("\n請輸入要洗掉學生的學號:");
scanf("%d",&xuehao);
for(i=0;i<Max;i++)
{
if(Score[i].xuehao == xuehao)
{
for(j=i;j<Max;j++)
{
Score[j] = Score[j+1];
}
}
flag = 0;
}
if(flag == 1)
{
printf("\n沒有該學號的學生!");
}
else
{
printf("\n洗掉成功!");
Student_num--;
}
}
void Update_Score()
{
int i,j;
int flag=1;
int xuehao; //學號
char name[30]; //姓名
float Chinese; //語文
float Math; // 數學
float English; //英語
float Major_one; //專業1
float Major_two; // 專業2
float Sum;
printf("\n輸入要洗掉學生的學號:");
scanf("%d",&xuehao);
for(i = 0;i < Student_num;i++)
{
if(Score[i].xuehao == xuehao)
{
printf("\n請輸入學號:");
scanf("%d",&xuehao);
for(j=0;j<Max;j++)
{
if( j != i && Score[j].xuehao == xuehao)
{
printf("\n該學號已經存在,請重新輸入:");
scanf("%d",&xuehao);
j = 0;
}
}
flag = 0;
}
}
if(flag==1)
{
printf("\n沒有該學號的學生!");
}
if(flag == 0)
{
printf("\n請輸入你的學號:");
scanf("%d",&xuehao);
for(i=0;i<Max;i++)
{
if(Score[i].xuehao == xuehao)
{
printf("\n該學號已經存在,請重新輸入:");
scanf("%d",&xuehao);
i = 0;
}
}
printf("\n請輸入你的姓名(原姓名%s):",Score[Student_num].name);
scanf("%s",name);
printf("\n語文成績(原成績%.2f):",Score[Student_num].Chinese);
scanf("%f",&Chinese);
printf("\n數學成績(原成績%.2f):",Score[Student_num].Math);
scanf("%f",&Math);
printf("\n英語成績(原成績%.2f):",Score[Student_num].English);
scanf("%f",&English);
printf("\n專業1成績(原成績%.2f):",Score[Student_num].Major_one);
scanf("%f",&Major_one);
printf("\n專業2成績(原成績%.2f):",Score[Student_num].Major_two);
scanf("%f",&Major_two);
Sum = Chinese + Math + English + Major_one + Major_two;
Score[Student_num].xuehao = xuehao;
strcpy(Score[Student_num].name, name);
Score[Student_num].Chinese = Chinese;
Score[Student_num].Math = Math;
Score[Student_num].English = English;
Score[Student_num].Major_one = Major_one;
Score[Student_num].Major_two = Major_two;
Score[Student_num].Sum = Sum;
printf("\n—————————————修改成功—————————————\n");
printf("學號\t姓名\t語文\t數學\t英語\t專業1\t專業2\t總分\n");
printf("%d\t",Score[Student_num].xuehao);
printf("%s\t",Score[Student_num].name);
printf("%.2f\t",Score[Student_num].Chinese);
printf("%.2f\t",Score[Student_num].Math);
printf("%.2f\t",Score[Student_num].English);
printf("%.2f\t",Score[Student_num].Major_one);
printf("%.2f\t",Score[Student_num].Major_two);
printf("%.2f\t",Score[Student_num].Sum);
}
}
//查找學生
void Lookup_Score()
{
int i;
int j;
int flag = 1;
int xuehao;
printf("\n請輸入要查找學生的學號:");
scanf("%d",&xuehao);
for(i=0;i<Student_num+1;i++)
{
if(Score[i].xuehao == xuehao)
{
printf("學號\t姓名\t語文\t數學\t英語\t專業1\t專業2\t總分\n");
printf("%d\t",Score[i].xuehao);
printf("%s\t",Score[i].name);
printf("%.2f\t",Score[i].Chinese);
printf("%.2f\t",Score[i].Math);
printf("%.2f\t",Score[i].English);
printf("%.2f\t",Score[i].Major_one);
printf("%.2f\t",Score[i].Major_two);
printf("%.2f\t",Score[i].Sum);
flag = 0;
}
}
if(flag == 1)
{
printf("\n沒有該學號學生!");
}
}
//遍歷學生成績
void Find_Score()
{
int i,j;
float temp;
char ch;
printf("\n1、默認排序\n");
printf("\n2、按總分降序排序\n");
printf("請選擇:");
while(ch = getchar())
{
if(ch == '\n')
continue;
if((ch == '1')|| (ch == '2'))
break;
else
printf("您輸入不合法請重新輸入:");
}
printf("學號\t姓名\t語文\t數學\t英語\t專業1\t專業2\t總分\n");
if(ch == '1')
{
for(i = 0;i < Student_num; i++)
{
printf("%d\t",Score[i].xuehao);
printf("%s\t",Score[i].name);
printf("%.2f\t",Score[i].Chinese);
printf("%.2f\t",Score[i].Math);
printf("%.2f\t",Score[i].English);
printf("%.2f\t",Score[i].Major_one);
printf("%.2f\t",Score[i].Major_two);
printf("%.2f\t\n",Score[i].Sum);
}
}
if(ch == '2')
{
for(i = 0;i < Student_num ; i++)
for(j = 0; j < Student_num - i; j++)
{
if(Score[j].Sum < Score[j+1].Sum)
{
temp = Score[j].Sum;
Score[j].Sum = Score[j+1].Sum;
Score[j+1].Sum = temp;
}
}
for(i = 0;i < Student_num; i++)
{
printf("%d\t",Score[i].xuehao);
printf("%s\t",Score[i].name);
printf("%.2f\t",Score[i].Chinese);
printf("%.2f\t",Score[i].Math);
printf("%.2f\t",Score[i].English);
printf("%.2f\t",Score[i].Major_one);
printf("%.2f\t",Score[i].Major_two);
printf("%.2f\t\n",Score[i].Sum);
}
}
}
uj5u.com熱心網友回復:
是有問題要問嗎?uj5u.com熱心網友回復:
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/156986.html
標籤:新手樂園
上一篇:C語言初學者求助!!!
下一篇:大一學c求點建議,謝謝大家!
