#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define N 100
int iNumOfStu=0;
struct score
{
float math;
float english;
float computer;
};
struct student
{
int number;
char name[20];
struct score sco;
float average;
};
struct student stu[N];
void print_menu(void);//輸出菜單
void choosemenu(void);//菜單選擇
void input_student1(int);//輸入學生信息
void input_student2(void);//輸入總函數
void input_student3(int &,int);//判斷學號是否重復
void input_student4(int,int);//覆蓋原信息
void sort_student3(student s[],int);//按照英語成績排序
void sort_student4(student s[],int);//按照計算機成績排序
void sort_student2(student s[],int);//按照數學成績排序
void sort_student5(student s[],int);//按照平均成績排序
float input_score2(int);//計算學生平均成績
void print_student2(void);//顯示表頭
void print_student3(int);//顯示學生信息
void print_student1(int);//顯示全部學生資料
void sort_student1(void);//排序總函數
void menu(void);//菜單調度總函數
int search_student2(int);//按學號查詢學生信息并輸出
void search_student3(int);//按平均分最高查詢并輸出
void search_student1(void);//查詢總函數
void delete_student2(int,int);//刪除學生信息
void delete_student1(void);//刪除總函數
void change_student2(int);//修改學生資料
void change_student1(void);//修改總函數
void input_score3(int);//統計成績
void input_score1(void);//統計成績總函數
void print_help(void);//輸出幫助信息
void exit_student(void);//退出系統
void save_student(student *,int);//保存學生信息
void main()
{
menu();
}
void save_student(student *s,int a)//保存學生信息
{
FILE *fp;
if((fp=fopen("d:\\學生信息.txt","wb"))==NULL)
{
printf("不能打開文件!\n");
}
else
{
printf("保存信息到D盤\n");
fprintf(fp,"本班所有學生具體信息如下:\r\n");
fprintf(fp," 學號 姓名 數學成績 英語成績 計算機成績 平均成績\r\n");
for(int i=0;i<a;i++)
{
fprintf(fp,"%8d%12s%14.2f%14.2f%14.2f%14.2f\n",stu[i].number,stu[i].name,stu[i].sco.math,stu[i].sco.english,stu[i].sco.computer,stu[i].average);
fprintf(fp,"\r\n");
}
fclose(fp);
printf("信息保存成功!\n");
}
}
void exit_student(void)//退出系統
{
exit(1);
}
void print_help(void)//輸出幫助信息
{
printf("本系統所能容納的最大學生數為%d人\n學生信息保存在D盤根目錄下,保存文件為“學生信息.txt”。\n感謝使用!\n",N);
}
void input_score1(void)//統計成績總函數
{
int c;
c=search_student2(iNumOfStu);
printf("學號:%d\n",stu[c].number);
printf("姓名:%s\n",stu[c].name);
input_score3(c);
printf("新成績錄入成功!\n");
stu[c].average=input_score2(c);
}
void input_score3(int a)//統計成績
{
printf("數學新成績:");
scanf("%f",&stu[a].sco.math);
printf("英語新成績:");
scanf("%f",&stu[a].sco.english);
printf("計算機新成績:");
scanf("%f",&stu[a].sco.computer);
}
void change_student2(int a)//修改學生資料
{
printf("學號:%d----修改為:",stu[a].number);
scanf("%d",&stu[a].number);
getchar();
printf("姓名:%s----修改為:",stu[a].name);
gets(stu[a].name);
printf("數學成績:%.2f----修改為:",stu[a].sco.math);
scanf("%f",&stu[a].sco.math);
printf("英語成績:%.2f----修改為:",stu[a].sco.english);
scanf("%f",&stu[a].sco.english);
printf("計算機成績:%.2f----修改為:",stu[a].sco.computer);
scanf("%f",&stu[a].sco.computer);
}
void change_student1(void)//修改總函數
{
int c;
c=search_student2(iNumOfStu);
getchar();
printf("是否要修改此學生信息?(“y”代表是)");
char d;
scanf("%c",&d);
if(d=='y'||d=='Y')
{
change_student2(c);
stu[c].average=input_score2(c);
printf("信息修改成功!\n");
}
}
void delete_student1(void)//刪除總函數
{
int c;
c=search_student2(iNumOfStu);
getchar();
printf("是否刪除此條記錄?(“y”代表是)");
char d;
scanf("%c",&d);
if(d=='y'||d=='Y')
{
delete_student2(c,iNumOfStu);
printf("記錄已刪除!\n");
}
}
void delete_student2(int a,int b)//刪除學生信息
{
for(int i=a;i<b-1;i++)
{
stu[i]=stu[i+1];
}
--iNumOfStu;
}
void search_student1(void)//查詢總函數
{
printf("1、按學號查詢\n2、按平均分最高查詢\n請選擇:");
int c;
scanf("%d",&c);
switch(c)
{
case 1:
{
search_student2(iNumOfStu);
break;
}
case 2:
{
search_student3(iNumOfStu);
break;
}
default: break;
}
}
void menu(void)//菜單調度總函數
{
print_menu();
choosemenu();
}
void sort_student1(void)//排序總函數
{
printf("1、按數學成績排序\n2、按英語成績排序\n3、按計算機成績排序\n4、按平均成績排序\n請選擇:");
int c;
scanf("%d",&c);
switch(c)
{
case 1:
{
sort_student2(stu,iNumOfStu);
break;
}
case 2:
{
sort_student3(stu,iNumOfStu);
break;
}
case 3:
{
sort_student4(stu,iNumOfStu);
break;
}
case 4:
{
sort_student5(stu,iNumOfStu);
break;
}
default: break;
}
}
void print_student1(int a)//顯示全部學生資料
{
printf("本班所有學生具體信息如下\n");
print_student2();
for(int i=0;i<a;i++)
{
print_student3(i);
}
}
void print_student3(int a)//顯示學生信息
{
printf("%8d%12s%14.2f%14.2f%14.2f%14.2f\n",stu[a].number,stu[a].name,stu[a].sco.math,stu[a].sco.english,stu[a].sco.computer,stu[a].average);
}
void print_student2(void)//顯示表頭
{
printf(" 學號 姓名 數學成績 英語成績 計算機成績 平均成績\n");
}
void input_student4(int a,int b)//覆蓋原信息
{
stu[a]=stu[b-1];
--iNumOfStu;
}
void input_student3(int &a,int b)//判斷學號是否重復
{
if(a!=0)
{
int i=0;
do
{
if(stu[a].number==stu[i].number)
{
printf("此學號代表的學生已錄入\n1、覆蓋原信息\n2、重新輸入\n請選擇:");
int c;
scanf("%d",&c);
switch(c)
{
case 1:
{
input_student4(i,iNumOfStu);
a=iNumOfStu-1;
printf("信息已替換!\n");
break;
}
case 2:
{
printf("請重新輸入學生信息:\n");
input_student1(iNumOfStu-1);
break;
}
default: break;
}
break;
}
++i;
}
while(i<b-1);
}
}
void print_menu(void)//輸出菜單
{
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(" 9、獲取幫助信息\n");
printf(" 10、退出系統\n");
printf("====================================\n");
printf("請選擇:");
}
void input_student2(void)//輸入總函數
{
char end;
printf("請輸入學生信息(在最后一個學生信息錄入完成后以“/”結束錄入):\n");
for(int i=0;(end=getchar())!='/';i++)
{
input_student1(i);
++iNumOfStu;
input_student3(i,iNumOfStu);
}
for(int j=0;j<iNumOfStu;j++)
{
stu[j].average=input_score2(j);
}
}
void input_student1(int a)//輸入學生信息
{
printf("學號:");
scanf("%d",&stu[a].number);
getchar();
printf("姓名:");
gets(stu[a].name);
printf("數學成績:");
scanf("%f",&stu[a].sco.math);
printf("英語成績:");
scanf("%f",&stu[a].sco.english);
printf("計算機成績:");
scanf("%f",&stu[a].sco.computer);
}
float input_score2(int a)//計算學生平均成績
{
return (stu[a].sco.math+stu[a].sco.english+stu[a].sco.computer)/3;
}
void search_student3(int a)//按平均分最高查詢并輸出
{
int max=0;
for(int i=0;i<a;i++)
{
if(stu[max].average<stu[i].average)
{
max=i;
}
}
print_student2();
print_student3(max);
}
void sort_student2(student s[],int a)//按照數學成績排序
{
struct student temp;
for(int i=0;i<a-1;i++)
{
int max=i;
for(int j=i+1;j<a;j++)
if(stu[j].sco.math>stu[max].sco.math)
{
max=j;
}
if(max!=i)
{
temp=stu[max];
stu[max]=stu[i];
stu[i]=temp;
}
}
print_student2();
for(int k=0;k<a;k++)
{
print_student3(k);
}
}
void sort_student3(student s[],int a)//按照英語成績排序
{
struct student temp;
for(int i=0;i<a-1;i++)
{
int max=i;
for(int j=i+1;j<a;j++)
if(stu[j].sco.english>stu[max].sco.english)
{
max=j;
}
if(max!=i)
{
temp=stu[max];
stu[max]=stu[i];
stu[i]=temp;
}
}
print_student2();
for(int k=0;k<a;k++)
{
print_student3(k);
}
}
void sort_student4(student s[],int a)//按照計算機成績排序
{
struct student temp;
for(int i=0;i<a-1;i++)
{
int max=i;
for(int j=i+1;j<a;j++)
if(stu[j].sco.computer>stu[max].sco.computer)
{
max=j;
}
if(max!=i)
{
temp=stu[max];
stu[max]=stu[i];
stu[i]=temp;
}
}
print_student2();
for(int k=0;k<a;k++)
{
print_student3(k);
}
}
void sort_student5(student s[],int a)//按照平均成績排序
{
struct student temp;
for(int i=0;i<a-1;i++)
{
int max=i;
for(int j=i+1;j<a;j++)
if(stu[j].average>stu[max].average)
{
max=j;
}
if(max!=i)
{
temp=stu[max];
stu[max]=stu[i];
stu[i]=temp;
}
}
print_student2();
for(int k=0;k<a;k++)
{
print_student3(k);
}
}
int search_student2(int a)//按照學號查找學生并輸出
{
int num;
int c;
printf("請輸入要查詢的學號:");
scanf("%d",&num);
for(int i=0;i<a;i++)
{
if(num==stu[i].number)
{
c=i;
}
}
printf("此學生的信息是:\n");
print_student2();
print_student3(c);
return c;
}
void choosemenu(void)//菜單選擇
{
int i;
scanf("%d",&i);
switch(i)
{
case 1:
{
input_student2();
printf("按回車鍵返回主菜單");
getchar();
getchar();
menu();
break;
}
case 2:
{
delete_student1();
printf("按回車鍵返回主菜單");
getchar();
getchar();
menu();
break;
}
case 3:
{
search_student1();
printf("按回車鍵返回主菜單");
getchar();
getchar();
menu();
break;
}
case 4:
{
change_student1();
printf("按回車鍵返回主菜單");
getchar();
getchar();
menu();
break;
}
case 5:
{
print_student1(iNumOfStu);
printf("按回車鍵返回主菜單");
getchar();
getchar();
menu();
break;
}
case 6:
{
input_score1();
printf("按回車鍵返回主菜單");
getchar();
getchar();
menu();
break;
}
case 7:
{
sort_student1();
printf("按回車鍵返回主菜單");
getchar();
getchar();
menu();
break;
}
case 8:
{
save_student(stu,iNumOfStu);
printf("按回車鍵返回主菜單");
getchar();
getchar();
menu();
break;
}
case 9:
{
print_help();
printf("按回車鍵返回主菜單");
getchar();
getchar();
menu();
break;
}
case 10:
{
exit_student();
}
default: break;
}
}
運行結果:
源文件下載地址:
http://115.com/file/clnq138g#一個簡單的學生成績管理系統.rar
(請將此地址復制到瀏覽器地址欄中訪問下載頁面)
資源簡介:成績查詢系統,用于初學
上傳時間: 2015-03-07
上傳用戶:hakim
資源簡介:綜合學生成績查詢系統
上傳時間: 2014-01-12
上傳用戶:huql11633
資源簡介:沒事自己做的一個簡單的中考成績查詢系統(帶源碼),不妨看看.
上傳時間: 2013-12-11
上傳用戶:cc1
資源簡介:一個高考成績查詢系統,源代碼非常少,非常簡單的一個程序
上傳時間: 2015-05-23
上傳用戶:924484786
資源簡介:成績查詢系統 1. 打開壓縮包,直接上傳至服務器或者本地WEB目錄. 2. 首頁地址 INDEX.asp 3. 后臺管理地址 login.asp 默認用戶名:admin 密碼:admin 4. 數據庫名稱 hljcar.com.mdb
上傳時間: 2015-06-21
上傳用戶:黑漆漆
資源簡介:這是一個用java編寫的學生成績查詢系統,很好用
上傳時間: 2015-06-21
上傳用戶:我干你啊
資源簡介:成績查詢系統套學生成績查詢系統,由李國榮老師制作,轉載使用請注明出處。
上傳時間: 2014-01-02
上傳用戶:wpwpwlxwlx
資源簡介:ASP 綜合學生成績查詢系統 v2.05
上傳時間: 2015-08-15
上傳用戶:CSUSheep
資源簡介:學生成績查詢系統,java+SQLServer
上傳時間: 2015-09-03
上傳用戶:1159797854
資源簡介:一款自己制作的成績查詢系統,不很成熟,希望大家多交流
上傳時間: 2013-12-13
上傳用戶:思琦琦
資源簡介:在線成績查詢系統 v1.0 在線成績查詢系統 v1.0
上傳時間: 2014-01-15
上傳用戶:zhuimenghuadie
資源簡介:這是學生成績查詢系統.用C語言編寫的,是學習C語言的課程設計
上傳時間: 2014-08-30
上傳用戶:王者A
資源簡介:北京市公交車查詢,基于ASP的開發環境!數據庫是ACCESS [成績查詢.rar] - 網上成績查詢系統 把學生姓名成績輸入數據庫...[
上傳時間: 2013-12-10
上傳用戶:hopy
資源簡介:北京市公交車查詢,基于ASP的開發環境!數據庫是ACCESS [成績查詢.rar] - 網上成績查詢系統 把學生姓名成績輸入數據庫...[
上傳時間: 2016-01-03
上傳用戶:kernaling
資源簡介:查詢,基于ASP的開發環境!數據庫是ACCESS [成績查詢.rar] - 網上成績查詢系統 把學生姓名成績輸入數據庫...[
上傳時間: 2014-01-23
上傳用戶:sclyutian
資源簡介:畢業設計題目,學生成績查詢系統,包括管理員和普通用戶兩級管理
上傳時間: 2013-12-22
上傳用戶:diets
資源簡介:用C語言編寫的成績查詢系統,它是按姓名和學號進行查詢的.
上傳時間: 2014-08-12
上傳用戶:宋桃子
資源簡介:成績查詢系統(學校期末的作業) Struts+jdbc+mysql+tomcat 開發工具為BEA WORKSHOP 功能無非就是增刪查改加用戶權限判斷
上傳時間: 2013-12-02
上傳用戶:sz_hjbf
資源簡介:使用JSP、Servlet以及JavaBean來實現學生成績查詢系統,簡單好用
上傳時間: 2016-05-28
上傳用戶:fhzm5658
資源簡介:電話成績查詢系統是通過電話公布成績的自動服務系統.
上傳時間: 2014-01-01
上傳用戶:氣溫達上千萬的
資源簡介:運動員成績查詢系統,希望對大家有所幫助。
上傳時間: 2013-12-31
上傳用戶:米卡
資源簡介:這是一個成績查詢系統. 是個很好的在線查分系統,具體使用方法內詳
上傳時間: 2013-11-30
上傳用戶:cxl274287265
資源簡介:設計一個小的成績查詢系統(*) 任務:有M個學生,學習N門課程,已知所有學生的各科成績,分別輸出每個學生的平均成績和每門課程的平均成績。
上傳時間: 2016-07-27
上傳用戶:heart520beat
資源簡介:這是一個用java做的高考成績查詢系統,比較簡潔點,以后會更新的!
上傳時間: 2013-12-19
上傳用戶:a673761058
資源簡介:學生成績查詢系統.幫忙大家學生和提升對VC++的學生和認識.
上傳時間: 2014-01-04
上傳用戶:亞亞娟娟123
資源簡介:思燕大學成績查詢系統 具有很高的參考價值 大家可以看一看
上傳時間: 2013-11-29
上傳用戶:aappkkee
資源簡介:超級簡單的25175學生成績查詢系統,適合初學者學習之用。
上傳時間: 2014-12-06
上傳用戶:yd19890720
資源簡介:匯編語言課程設計 學生成績查詢系統
上傳時間: 2017-02-03
上傳用戶:chenlong
資源簡介:學生成績查詢系統,運用結構體,struct ,sort ,Clrscr(),textcolor()函數,用for()循環語句,switch和ifelse作為條件測試語句。 程序實現了學生成績查詢功能,有20個我們班學生的數據信息,每個包含: 學號 — num [10](字符串)、姓名(拼音)— name...
上傳時間: 2014-01-01
上傳用戶:cx111111
資源簡介:學校成績查詢系統是一個非常好的軟件請大家試試
上傳時間: 2017-02-21
上傳用戶:ddddddos