c語言做的學生成績管理系統,c語言程序學生成績管理系統

本文目錄一覽:

c語言編寫查詢學生成績管理程序。

#includestdio.h

#includestdlib.h

#includestring.hstruct record

{

char xuehao[10];//學號

char name[20]; //姓名

char sex[3];//性別

int ke1;//數學

int ke2 ;//語文

int ke3;//英語

int pin;

}stu[50];

int k=1,n,m;void readfile();

void seek();

void insert();

void del();

void save();

void menu();

void seek()

{int i,j,item,flag;brchar s1[20];brprintf(“——————\n”);brprintf(“1.按學號查詢\n”);brprintf(“2.退出本菜單\n”);brprintf(“——————\n”);brwhile(1)br{ printf(“請選擇子菜單編號:”);brscanf(“%d”,item);brflag=0;brswitch(item)br{brcase 1:brprintf(“請輸入要查詢的學生的學號:\n”);brscanf(“%s”,s1);brfor(i=0;in;i++)brif(strcmp(stu[i].xuehao,s1)==0)br{ flag=1;brprintf(“該學生學號,姓名,性別,數學,語文,英語 分別為:\n”);brprintf(” %s %s %s %d %d %d”,stu[i].xuehao,stu[i].name,brstu[i].sex,stu[i].ke1,stu[i].ke2,stu[i].ke3);br}

if(flag==0)

printf(“該學號不存在!\n”); break;

case 2:return;

default:printf(“請在1-2之間選擇\n”);

}

}

}

void insert()

{ int i=n,j,flag;

printf(“請輸入待增加的學生數:\n”);

scanf(“%d”,m);

do

{ flag=1;

while(flag)

{ flag=0;

printf(“請輸入第 %d 個學生的學號:\n”,i+1);

scanf(“%s”,stu[i].xuehao);

for(j=0;ji;j++)

if(strcmp(stu[i].xuehao,stu[j].xuehao)==0)

{ printf(“已有該學號,請檢查後重新錄入!\n”);

flag=1;

break;

}

}

printf(“請輸入第 %d 個學生的姓名:”,i+1);

scanf(“%s”,stu[i].name);

printf(“\n請輸入第 %d 個學生的性別:”,i+1);

scanf(“%s”,stu[i].sex);

printf(“\n請輸入第 %d 個學生的數學成績:”,i+1);

scanf(“%d”,stu[i].ke1);

printf(“\n請輸入第 %d 個學生的語文成績:”,i+1);

scanf(“%d”,stu[i].ke2);

printf(“\n請輸入第 %d 個學生的英語成績:”,i+1);

scanf(“%d”,stu[i].ke3);if(flag==0)

{ i=i;

i++;

}

}while(in+m);

n+=m;

printf(“錄入完畢!\n\n”);

}void del()

{ int i,j,flag=0;

char s1[20];

printf(“請輸入要刪除學生的學號:\n”);

scanf(“%s”,s1);

for(i=0;in;i++)

if(strcmp(stu[i].xuehao,s1)==0)

{ flag=1;

for(j=i;jn-1;j++)

stu[j]=stu[j+1];

}

if(flag==0)

printf(“該學號不存在!\n”);

if(flag==1)

{ printf(“刪除成功,顯示結果請選擇菜單6\n”);

n–;

}

}

void readfile()

{

char buf[80],*p=”student.dat”;

FILE *fp;

int i=0;

if ((fp=fopen(“student.dat”,”r”))==NULL)

{ printf(“Open file %s error! Strike any key to exit!”,p);

system(“pause”);

exit(0);

}

while(fscanf(fp,”%s%s%s%d%d%d”,stu[i].xuehao,stu[i].name,

stu[i].sex,stu[i].ke1,stu[i].ke2,stu[i].ke3)==6)

{ i++;

i=i;

}

fclose(fp);

n=i;

printf(“錄入完畢!\n”);

}void save()

{ int i,j,k,flag=0;

FILE *fp;

fp=fopen(“student.dat”,”w”);

for(i=0;im;i++)

{

fprintf(fp,”%s%s%d%d%d”,stu[i].xuehao,stu[i].name,stu[i].sex,stu[i].ke1,

stu[i].ke2,stu[i].ke3);

fclose(fp);

printf(“已儲存”);

}

}

void paixu()

{

int i,j,k,t;

for(i=0;im;i++)

{

stu[i].pin=(stu[i].ke1+stu[i].ke2+stu[i].ke3)/3;

}

for(i=0;i=m-2;i++)

{

k=i;

for(j=i+1;j=m-1;j++)

if(stu[j].pinstu[k].pin)

k=j;

if(k!=i)

{

t=stu[k].pin;

stu[k].pin=stu[i].pin;

stu[i].pin=t;

}

}

for(i=0;im;i++)

{printf(“第 %d 個學生的姓名%s:”,i+1,stu[i].name);br printf(“\n第 %d 個學生的性別:%s”,i+1,stu[i].sex);br printf(“\n第 %d 個學生的數學成績:%d”,i+1,stu[i].ke1);br printf(“\n第 %d 個學生的語文成績:%d”,i+1,stu[i].ke2);br printf(“\n第 %d 個學生的英語成績:%d”,i+1,stu[i].ke3);br printf(“\n第 %d 個學生的平均成績:%d”,i+1,stu[i].pin);br }

}

void menu()

{ int nub;

printf(” \n\n學生成績管理系統\n\n”);

printf(“*****系統功能菜單*****\n”);

printf(“———————-\n”);

printf(“1.輸入學生信息\n”);

printf(“2.查詢學生信息\n”);

printf(“3.按學號刪除信息\n”);

printf(“4.讀入學生信息\n”);

printf(“5.保存信息(要把修改保存到文件,退出程序前必須執行本項)\n”);

printf(“6.查詢學生平均成績信息\n”);

printf(“0.退出系統\n”);

printf(“———————-\n”);

printf(“請選擇菜單編號:”);

scanf(“%d”,nub);

switch(nub)

{

case 1:insert();break;

case 2:seek();break;

case 3:del();break;

case 4:readfile();break;

case 5:save();break;

case 6:paixu();break;

case 0:k=0;break;

default:printf(“請在0-6之間選擇\n”);

}}

void main()

{

while(k)

menu();

}

//平均數是排序後,輸出的,如果你不想直接輸入,那就不要對每個學生進行選擇排序了

怎樣用C語言寫學生成績管理系統?

程序如下: #includestdio.h

void main()

{

float student[100][7];

//student[][0]存放學號,student[][1]到student[][4]存放四門成績,

//student[][5]存放總分,student[][6]存放平均分,student[][7]存放排名

int n,i,j,k,p,t,count,flag;

int a[100],b[100],c[100];

//a[]存放排序後的下標,b[]存放總分(備份),c[]存放排名的數據

printf(“輸入學生的個數:\n”);

scanf(“%d”,n);

for(i=0;i=n-1;i++)

{

printf(“輸入第%d個學生的學號:”,i+1);

scanf(“%f”,student[i][0]);

for(j=0,student[i][5]=0;j=3;j++)

{

printf(“輸入第%d個學生的第%d門成績:”,i+1,j+1);

scanf(“%f”,student[i][j+1]);

student[i][5]+=student[i][j+1]; //計算總分

}

b[i]=student[i][5]; //把總分再賦給b[]數組,以後排序用

student[i][6]=student[i][5]/4; //計算平均分

}

for(i=0;i=n-2;i++) //對數組b[](即總分)進行排序

for(j=0;j=n-2-i;j++)

{

if(b[j]b[j+1])

{

t=b[j];

b[j]=b[j+1];

b[j+1]=t;

}

}

for(i=0,k=0;i=n-1;i++)//用數組a[]取得排序後總分的下標

{

for(j=0,flag=0;j=n-1;j++)

{

if(b[i]==student[j][5])

{

if(0==k) //如果數組a[]中有零個元素,就把j直接賦給a[]

{

a[k]=j;

k++;

flag=1;

}

else //如果數組a[]中有元素了,則判斷

{

for(p=0;p=k-1;p++)

if(a[p]!=j)

{

a[k]=j;

k++;

flag=1;

break;

}

}

}

if(1==flag)

break;

}

}

for(count=1,i=0;i=n-1;i++) //對c[](排名)進行處理

{

if(b[i]==b[i+1])

{

c[i]=count;

}

else

if(b[i]b[i+1])

{

c[i]=count;

count++;

}

}

printf(“\n以下是統計結果:\n”);

printf(“學號 s[1] s[2] s[3] s[4] 總分 平均分 排名\n”);

for(i=0;i=n-1;i++)

{

printf(“%.0f\t%.0f\t%.0f\t%.0f\t%.0f\t%.0f\t%f\t%d\n”,student[a[i]][0],student[a[i]][1],student[a[i]][2],student[a[i]][3],student[a[i]][4],student[a[i]][5],student[a[i]][6],c[i]);

}

} 有疑問提出

用c語言做一個學生成績管理系統。。。。。

自己製作成績查詢系統成本高昂,建議使用易查分系統,三分鐘即可搭建完成。

C語言 學生成績管理系統?

附錄* 綜合實例——學生成績查詢系統

這是一個用c語言編寫的小軟件——學生成績查詢系統,同學們可以將其作為一個綜合實例,對其進行仔細的閱讀和研究,體驗編程處理問題的過程,加深對編程語言的理解,提高處理問題的綜合能力。

1、程序的功能:

1)可以根據用戶輸入的輸入、輸出文件名,讀入學生成績,完成數據的初始化。

2)可以查詢指定學生的成績,可以是指定科目的成績,也可以是全部科目的成績。

3)友好退出。

2、使用說明:

1)將輸入文件放到指定的目錄下(即../student/)

圖1

2)啟動管理程序student.exe

3)在程序的使用界面,首先輸入輸入文件名和輸出文件名,完成程序的初始化,操作如下圖所示

圖2

然後,按照按照提示,輸入學生姓名和需要程序的成績(此軟件暫時只設置了五成成績,同學們可以按照需要擴展)科目代碼,也可以輸入查詢所有成績的代碼。程序成績,如下圖所示

圖3

4)輸入代碼「q」退出程序。

3、程序代碼

#include

#include

#include

FILE *f1,*f2;

char file1[20],file2[20],name[200][20],name1[15];

int n,m,data[200][10];

void init(){

int i,j;

char ch=’ ‘;

printf(“%20c歡迎使用班級成績管理系統\n\n”,ch);

printf(“請輸入輸入和輸出文件名(中間用一個空格隔開):\n”);

scanf(“%s %s”,file1,file2);// 1)該條語句的功能是什麼?

f1=fopen(file1,”r”);

f2=fopen(file2,”w”);

fscanf(f1,”%d%d”,n,m); // 2)該條語句的功能是什麼?

for(i=1;i=n;i++)

{

fscanf(f1,”%s”,name[i]); // 3)該條語句的功能是什麼?

data[i][0]=0; // 4)該條語句的功能是什麼?沒有這條語句可不可以?

for(j=1;j=m;j++)

{

fscanf(f1,”%d”,data[i][j]);

data[i][0]+=data[i][j]; // 5)該條語句的功能是什麼?

}

}

fprintf(f2,”name\tyuwen\tshuxue\tyingyu\twuli\thuaxue\tzongfen\n “);

for(i=1;i=n;i++)

{

fprintf(f2,”%s\t”,name[i]);

for(j=1;j=m;j++)

fprintf(f2,”%d\t”,data[i][j]);

fprintf(f2,”%d\n”,data[i][0]);

}

fclose(f1);// 6)問什麼可以在這關閉輸入文件?

fclose(f2);

}

void search(char na[],char num){

int i=1,j;

while((i=n)(strcmp(na,name[i])!=0))i++;

if(i=n){

switch(num){

case ‘1’:printf(“%s的語文成績為%d!\n”,na,data[i][1]);break;

case ‘2’:printf(“%s的數學成績為%d!\n”,na,data[i][2]);break;

case ‘3’:printf(“%s的英語成績為%d!\n”,na,data[i][3]);break;

case ‘4’:printf(“%s的物理成績為%d!\n”,na,data[i][4]);break;

case ‘5’:printf(“%s的化學成績為%d!\n”,na,data[i][5]);break;

case ‘a’:

printf(“%s的各科成績為:\n”,name[i]);

printf(“語文\t數學\t英語\t物理\t化學\t總成績\n”);

for(j=1;j=m;j++)

printf(“%d\t”,data[i][j]);

printf(“%d\n”,data[i][0]);

break;

default: printf(“沒有這種查詢方式,請確認後再次輸入!\n”);

}

}

else printf(“查無此人,請確認後再次查詢!\n”);

printf(“\n\n”);

}

main(){

init();//數據初始化

printf(“數據初始化結束!\n\n”);

printf(“————————————————\n\n”);

char na[20];

char num;

while(1){ // 7)該條語句的功能是什麼?

//scanf(“%s%c%c”,na,num,num); // 8)此處的輸入可不可以用這條語句?

printf(“請輸入學生的姓名和要查詢成績的科目代碼(中間用一個空格隔開):\n(1 語文 2 數學 3 英語 4 物理 5 化學 a 所有科目成績 q 退出)\n”);

scanf(“%s”,na);

if(strcmp(na,”q”)==0)break; // 9)問什麼要用這條語句strcmp(na,”q”)==0?

scanf(“%c%c”,num,num); // 10)為什麼用了兩次num?

search(na,num);

printf(“————————————————\n\n”);

printf(“\n請輸入新的查詢:\n\n”);

}

system(“pause”);

}

這是我以前的一個程序,你改改吧,應該很好改

如何用C語言編寫”學生成績管理系統”

#includestdio.h

#includestdlib.h

#includeconio.h

#includestring.h

struct student{

int id;

char name[10];

int age;

char sex[10];

char birthady[20];

int tel;

char nativeplace[50];

}st[50];

int i=0;

void shuru() {

char a;

do{

printf(“\n請輸入學號:”);

scanf(“%d”,st[i].id);

fflush(stdin);

printf(“\n請輸入姓名:”);

gets(st[i].name);

printf(“\n”) ;

printf(“請輸入年齡:”);

scanf(“%d”,st[i].age);

fflush(stdin);

printf(“\n請輸入姓別:”);

gets(st[i].sex);

fflush(stdin);

printf(“\n請輸入生日:”);

gets(st[i].birthady);

printf(“\n請輸入電話:”);

scanf(“%d”,st[i].tel);

fflush(stdin);

printf(“\n請輸入籍貫:”);

gets(st[i].nativeplace);

printf(“\n是否繼續輸入另外一個學生信息?(y/n)”);

fflush(stdin);

a=getchar();

i++;

}while(a==’y’ i=50);

}

void xianshi()

{

int j;

printf(“\t學號\t姓名\t年齡\t性別\t生日\t\t電話\t籍貫\n”);

for(j=0;ji;j++)

printf(“\t%d\t%s\t%d\t%s\t%s\t%d\t%s\n”,

st[j].id,st[j].name,st[j].age,st[j].sex,st[j].birthady,st[j].tel,st[j].nativeplace);

}

void paixu() //按年齡從大到小排序函數

{

int j,k;

int temp;

for(j=0;ji;j++)

{

for(k=0;ki-1-j;k++)

{

if(st[k].agest[k+1].age)

{

temp=st[k].age;

st[k].age=st[k+1].age;

st[k+1].age=temp;

}

}

}

xianshi(); //排序後輸出

}

void chazhao()

{

int m;

char name[20],b;

do

{

printf(“\n請輸入想查找的學生姓名:”);

fflush(stdin);

gets(name);

for(m=0;mi;m++)

{

if(strcmp(name,st[m].name)==0)

{

printf(“\n\t您查找的學生在第%d個位置找到了!!!\n”,m+1);

break;

}

}

if(m=20)

printf(“\n\t沒有找到這個學生!!!\n”);

else

{

printf(“\t學號\t姓名\t年齡\t性別\t生日\t\t電話\t籍貫\n”);

printf(“\t%d\t%s\t%d\t%s\t%s\t%d\t%s\n”,

st[m].id,st[m].name,st[m].age,st[m].sex,st[m].birthady,st[m].tel,st[m].nativeplace);

}

printf(“\n是否查找另一個學生的信息?(y/n)”);

fflush(stdin);

b=getchar();

}while(b==’y’);

}

void shanchu()

{

char name[20],c;

int a,b;

do

{

printf(“\n請輸入要刪除的學生姓名:\n”);

fflush(stdin);

gets(name);

for(a=0;ai;a++)

{

if(strcmp(name,st[a].name)==0)

break;

}

for(b=a;bi;b++)

st[b]=st[b+1];

if(ai)

printf(“\t沒有找到這個學生!!!\n”);

else

{

i–;

xianshi();

}

printf(“\n是否繼續刪除另一個學生信息?(y/n) “);

fflush(stdin);

c=getchar();

}while(c==’y’);

}

void charu()

{

shuru();

paixu();

}

void main() //主函數

{

int change;

do{

system(“cls”);

printf(“============================學生信息管理系統===================================\n”);

printf(“\t\t一: 輸入學生信息\n”);

printf(“\t\t二: 顯示學生信息\n”);

printf(“\t\t三: 查找學生信息\n”);

printf(“\t\t四: 刪除學生信息\n”);

printf(“\t\t五: 插入學生信息\n”);

printf(“\t\t六: 退出程序\n”);

fflush(stdin);

printf(“\t\t請輸入功能選項:”);

scanf(“%d”,change);

switch(change)

{

case 1:

shuru(); break;

case 2:

xianshi(); break;

case 3:

chazhao(); break;

case 4:

shanchu(); break;

case 5:

charu(); break;

case 6:

break;

}

getch();

}while(change!=6);

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/158093.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-19 00:39
下一篇 2024-11-19 00:39

相關推薦

  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • Python程序文件的拓展

    Python是一門功能豐富、易於學習、可讀性高的編程語言。Python程序文件通常以.py為文件拓展名,被廣泛應用於各種領域,包括Web開發、機器學習、科學計算等。為了更好地發揮P…

    編程 2025-04-29
  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python購物車程序

    Python購物車程序是一款基於Python編程語言開發的程序,可以實現購物車的相關功能,包括商品的添加、購買、刪除、統計等。 一、添加商品 添加商品是購物車程序的基礎功能之一,用…

    編程 2025-04-29
  • 爬蟲是一種程序

    爬蟲是一種程序,用於自動獲取互聯網上的信息。本文將從如下多個方面對爬蟲的意義、運行方式、應用場景和技術要點等進行詳細的闡述。 一、爬蟲的意義 1、獲取信息:爬蟲可以自動獲取互聯網上…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • Vb運行程序的三種方法

    VB是一種非常實用的編程工具,它可以被用於開發各種不同的應用程序,從簡單的計算器到更複雜的商業軟件。在VB中,有許多不同的方法可以運行程序,包括編譯器、發佈程序以及命令行。在本文中…

    編程 2025-04-29
  • Python一元二次方程求解程序

    本文將詳細闡述Python一元二次方程求解程序的相關知識,為讀者提供全面的程序設計思路和操作方法。 一、方程求解 首先,我們需要了解一元二次方程的求解方法。一元二次方程可以寫作: …

    編程 2025-04-29

發表回復

登錄後才能評論