當前位置:首頁 » 編程語言 » 輸入學生學號查成績c語言
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

輸入學生學號查成績c語言

發布時間: 2022-08-07 14:29:41

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

#include<stdio.h>
#include<stdlib.h>
#include<string.h>struct 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;<br>char s1[20];<br>printf("------------------\n");<br>printf("1.按學號查詢\n");<br>printf("2.退出本菜單\n");<br>printf("------------------\n");<br>while(1)<br>{ printf("請選擇子菜單編號:");<br>scanf("%d",&item);<br>flag=0;<br>switch(item)<br>{<br>case 1:<br>printf("請輸入要查詢的學生的學號:\n");<br>scanf("%s",s1);<br>for(i=0;i<n;i++)<br>if(strcmp(stu[i].xuehao,s1)==0)<br>{ flag=1;<br>printf("該學生學號,姓名,性別,數學,語文,英語 分別為:\n");<br>printf(" %s %s %s %d %d %d",stu[i].xuehao,stu[i].name,<br>stu[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;j<i;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(i<n+m);
n+=m;
printf("錄入完畢!\n\n");
}void del()
{ int i,j,flag=0;
char s1[20];
printf("請輸入要刪除學生的學號:\n");
scanf("%s",s1);
for(i=0;i<n;i++)
if(strcmp(stu[i].xuehao,s1)==0)
{ flag=1;
for(j=i;j<n-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;i<m;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;i<m;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].pin<stu[k].pin)
k=j;
if(k!=i)
{
t=stu[k].pin;
stu[k].pin=stu[i].pin;
stu[i].pin=t;
}
}
for(i=0;i<m;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語言~輸入5個學生的學號,成績,按成績排序(升序),查找90分以上的

代碼:

#include&lt;stdio.h&gt;

struct student

{

int num,score[3],age;

char name[20];

float aver;

}stu[1000];

main()

{

int i,j,n;

struct student temp;

/*注意:變數temp的類型與數組stu的元素類型為相同結構體的時候,才可交換兩個結構體數組元素,所以此處需要定義temp的類型*/

printf("請輸入學生人數: ");

scanf("%d",&n);

printf("請按順序輸入名字、學號、年齡、分數: ");

for(i=0;i&lt;n;i++)

{

scanf("%s",&stu&lt;i&gt;.name);

scanf("%d",&stu&lt;i&gt;.num);

scanf("%d",&stu&lt;i&gt;.age);

for(j=0;j&lt;3;j++)

scanf("%d",&stu&lt;i&gt;.score[j]);

}

for(i=0;i&lt;n;i++)

{int sum=0;

for(j=0;j&lt;3;j++)

sum+=stu&lt;i&gt;.score[j];

stu&lt;i&gt;.aver=sum/3.0;

}

for(i=0;i&lt;n-1;i++)/*利用冒泡排序法按平均分高低排序*/

{for(j=0;j&lt;n-i-1;j++)

{

if(stu[j].aver&gt;stu[j+1].aver)

{temp=stu[j];/*此處交換的應當是數組元素,而不是平均分*/

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

stu[j+1]=temp;

}

}

}

printf("學生信息如下(姓名、學號、年齡、成績、平均分): ");

for(i=0;i&lt;n;i++)

{

printf("%s%d%d",stu&lt;i&gt;.name,stu&lt;i&gt;.num,stu&lt;i&gt;.age);

for(j=0;j&lt;3;j++)

printf("%d",stu&lt;i&gt;.score[j]);

printf("%.2f ",stu&lt;i&gt;.aver);

}

}

(2)輸入學生學號查成績c語言擴展閱讀:

頭文件#include&lt;stdio.h&gt;中

stdio.h是stand input&output的縮寫,意思是標准輸入輸出頭文件。凡是用到標准輸入輸出函數,就要調用該頭文件。

查看stdio.h目錄下包含哪些函數:主要有文件訪問、二進制輸入/輸出、格式化和非格式化輸入/輸出、文件定位、錯誤處理、文件操作等。

具體打開自己的VS安裝目錄,找到include文件夾,打開include夾下面的stdio.h文件即可查看

(C:Program Files(x86)Microsoft Visual Studio 14.-1.1.10include)

常用標准輸入輸出函數:

scanf()從屏幕格式輸入

printf()格式輸出到屏幕

getchar()從屏幕得到一個字元

putchar()字元輸出到屏幕

gets()從屏幕得到一個字元串

puts()字元串輸出到屏幕

fscanf()從磁碟格式輸入

fprintf()格式輸出到磁碟

fgetc()從磁碟得到一個字元

fputc()字元輸出到磁碟

fgets()從磁碟得到一個字元串

fputs()字元串輸出到磁碟

#號是預處理語句,表明在編譯之前預先進行處理。

.h是header file的縮寫,表面這是一個頭文件。

include是文件包含命令,後面跟著引號""或者尖括弧&lt;&gt;,意思是將引號或尖括弧內指定的文件包含到本程序中,成為本程序的一部分,而包含的文件通常是由系統提供的。

『叄』 c語言大神幫幫忙,我只想要輸入學號查成績那個函數,提供思路也行,謝謝

定義一個結構體比如說
struct student
{
char no[10]; //學號

char name[10]; //姓名

double grade1; //成績

double garde2;

double grade3;

};
輸入n之後,定義一個結構體指針,
student a=(student*)malloc(n);
然後你可以遍歷指針指向的數值,完成需要的操作就行了
找到對應的學號時,使用 break; 語句就可以提前結束循環了,
這樣:
int i=0;
for( i=0; i<n;i++)
{
if( ... ) //找到你需要的學號

{

...//進行操作

break;

}
}

『肆』 C語言,按學號查詢學生成績

#include "stdio.h"
#include "string.h"
struct student
{
char num[10];
int cscore;//yu wen
int iscore;//ying yu
char name[20]
};
void main()
{
struct student qq[3];
int i;
for(i = 0;i < 3;i++)
{
printf("請輸入 語文成績 英語成績 學號 姓名:\n");
scanf("%d %d %s %s",&qq[i].cscore,&qq[i].iscore,qq[i].num,qq[i].name);
printf("語文成績%d 英語成績%d 學號%s 姓名%s\n",qq[i].cscore,qq[i].iscore,qq[i].num,qq[i].name);
printf("---%d ---%d --%s --%s\n",qq[i].cscore,qq[i].iscore,qq[i].num,qq[i].name);
}

//下面是查詢
char nnm[10];
printf("請輸入 學號:\n");
scanf("%s",nnm);
for(i = 0;i < 3;i++)
{
if(memcmp(nnm,qq[i].num,strlen(nnm)) == 0)
{
printf("語文成績%d 英語成績%d 學號%s 姓名%s\n",qq[i].cscore,qq[i].iscore,qq[i].num,qq[i].name);
break;
}
else
printf("未找到\n");
}
}

『伍』 C語言中 輸入學號 成績 輸出成績總和 平均值 再隨意輸入一個學號查找成績

#include
#define N 5
typedef struct student
{
int id; //號
float score; //績
}stu;
void ReadDat(stu a[],int n);//錄入信息
void jsSort(stu a[],int n); //按績排序
void WriteDat(stu a[],int n);//輸信息
void main()
{
stu s[N];
ReadDat(s,N);
jsSort(s,N);
WriteDat(s,N);
}

void ReadDat(stu a[],int n)
{
printf("面始錄入信息!\n\n");
for(int i=0;i<n;i++)
{
printf("請輸入第%d號:",i+1);
scanf("%d",&a[i].id);
printf("請輸入第%d績:",i+1);
scanf("%f",&a[i].score);
}
}
void jsSort(stu a[],int n)
{
int i,j;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i].score>a[j].score)
{
stu temp = a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
}
void WriteDat(stu a[],int n)
{
stu b[N];
int cnt = 0;
printf("所按績由低高排序:\n");
printf("號\t績\n");
for(int i=0;i<n;i++)
{
printf("%d\t%.1f\n",a[i].id,a[i].score);
if(a[i].score >= 90)
{
b[cnt]=a[i];
cnt++;
}
}
printf("90共%d信息:\n",cnt);
printf("號\t績\n");
for(i=0;i<cnt;i++)
{
printf("%d\t%.1f\n",b[i].id,b[i].score);
}
}

『陸』 學生成績錄入查詢系統C語言程序

#include<iostream>
#include<string.h>
using
namespace
std;
struct
student
{
char
name[50];
int
score;
};
void
teacherC(student
*stu)//老師錄入成績
{
int
i,n;
cout<<"請輸入需要錄入的學生的個數\n";
cin>>n;
cout<<"請依次輸入學生的姓名和成績\n";
for(i=0;i<n;i++)
{
cin>>stu[i].name>>stu[i].score;
}
stu[i].score=-1;
}
void
show(student
*stu)
{
int
i=0;
for(;i<100;i++)
{
if(stu[i].score==-1)
break;
cout<<stu[i].name<<"
"<<stu[i].score<<endl;
}
}
int
search(student
*stu,char
*name)
{
int
i=0,k=-1;
for(;i<100;i++)
{
if(stu[i].score==-1)
break;
if(strcmp(stu[i].name,name)==0)
{
k=i;
break;
}
}
return
k;
}
void
edit(student
*stu)
{
int
i=0,j=0;
char
name[30],an;
while(1)
{
cout<<"請輸入需要修改的學生名字\n";
cin>>name;
i=search(stu,name);
if(i>=0)
{
cout<<"該學生的信息為:\n";
cout<<stu[i].name<<"
"<<stu[i].score<<endl;
cout<<"確定要修改該學生的信息是的輸入Y不是輸入N:\n";
cin>>an;
if(an=='Y'||an=='y')
{
cout<<"請輸入修改後的姓名成績:\n";
cin>>stu[i].name>>stu[i].score;
cout<<"修改成功\n";
}
cout<<"繼續修改請輸入1退出輸入0:\n";
cin>>j;
if(j==0)
break;
}
else
cout<<"沒有該學生的信息\n";
}
}
void
dele(student
*stu)
{
int
i=0,j=0;
char
name[30],an;
while(1)
{
cout<<"請輸入需要刪除的學生名字\n";
cin>>name;
i=search(stu,name);
if(i>0)
{
cout<<"該學生的信息為:\n";
cout<<stu[i].name<<"
"<<stu[i].score<<endl;
cout<<"確定要刪除該學生的信息是的輸入Y不是輸入N:\n";
cin>>an;
if(an=='Y'||an=='y')
{
*stu[i].name=0;
cout<<"刪除成功\n";
}
cout<<"繼續刪除請輸入1退出輸入0:\n";
cin>>j;
if(j==0)
break;
}
else
cout<<"沒有該學生的信息\n";
}
}
int
main()
{
int
i,n;
char
name[30];
student
stu[100];//學生總數上限為100個
while(1)
{
cout<<"請做出以下的選擇:"<<endl;
cout<<"輸入
0
退出系統\n";
cout<<"輸入
1
教書錄入成績\n";
cout<<"輸入
2
學生查詢成績\n";
cout<<"輸入
3
修改學生成績\n";
cout<<"輸入
4
刪除學生成績\n";
cin>>i;
switch(i)
{
case
1:
teacherC(stu);break;
case
2:
cout<<"請輸入查詢的姓名\n";
cin>>name;n=search(stu,name);cout<<"該學生成績是:"<<stu[n].score<<endl;break;
case
3:
edit(stu);break;
case
4:
dele(stu);break;
default:if(i!=0)cout<<"請輸入有效數字\n";
}
if(i==0)
break;
}
return
0;
}

『柒』 用C語言編一個簡易學生成績管理系統,只要求能輸入學生姓名學號和3科成績,顯示這些信息,成績排序,

/*代碼已經做到簡潔扼要,按照你的要求,只有簡單的幾個功能*/
/*已經測試過,正常執行。希望能幫助你*/

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define NAME_LEN 10
#define ID_LEN 11
#define REC 5 /*記錄條數*/
/* 學生結構體*/
typedef struct student
{
char id[ID_LEN];/*學號*/
char name[NAME_LEN];/*姓名*/
int score[3];/*三科成績*/
} Stu;
/*成績輸入*/
void input(Stu s[],int n)
{
int i;
printf("請輸入學號姓名分數1 分數2 分數3\n");
for(i=0;i<n;i++)
scanf("%s%s%d%d%d",s[i].id,s[i].name,
&s[i].score[0],&s[i].score[1],&s[i].score[2]);
}
/*成績輸出*/
void print(Stu s[],int n)
{
int i;
printf("學號 姓名 分數1 分數2 分數3\n");
for(i=0;i<n;i++)
printf("%s %s %d %d %d\n",s[i].id,s[i].name,
s[i].score[0],s[i].score[1],s[i].score[2]);
}
/*按成績排序*/
void sort(Stu s[],int n,int no)
{
int i,j;
Stu temp;
for(i=0; i<n-1; i++)
for(j=i+1; j<n; j++)
if(s[i].score[no-1]<s[j].score[no-1])
{
temp=s[i];
s[i]=s[j];
s[j]=temp;
}
}
/*成績按學號查詢成績*/
void search(Stu s[], int n,char *id)
{
int i;
for(i=0; i<n; i++)
if(strcmp(s[i].id,id)==0)
{
printf("%s %s %d %d %d\n",s[i].id,s[i].name,
s[i].score[0],s[i].score[1],s[i].score[2]);
return;
}
printf("沒找到相應記錄\n");
}
void main()
{
Stu stu[REC];
int no,menu;
char id[ID_LEN];
printf("****************學生成績管理*****************\n\n");
printf("1.成績輸入\n");
printf("2.顯示所有學生成績\n");
printf("3.按成績排序輸出\n");
printf("4.按學號查詢成績\n");
printf("0.退出程序\n");
while(1)
{
printf("\n請輸入菜單號:");
scanf("%d",&menu);
switch(menu)
{
case 1:
input(stu,REC);
break;
case 2:
print(stu,REC);
break;
case 3:
printf("輸入要排序的分數號:");
scanf("%d",&no);
sort(stu,REC,no);
print(stu,REC);
break;
case 4:
printf("輸入要查詢的學號:");
scanf("%s",id);
search(stu,REC,id);
break;
case 0:
exit(0);
default:
printf("菜單號輸入錯誤\n");
break;
}
}
}

『捌』 C語言在鍵盤上輸入三個學生的信息(包含學號,姓名,三門課的成績)並在顯示器上輸

id, name, &m1

id, name, m1

voidprintScore(intscore[4][3])

{inti,j;for(i=0;i<4;i++)

{printf("學生%d的三門成績分別為:

",i+1);for(j=0;j<3;j++)

{printf("%d ",score<i>[j]);

if(j==2)printf(" ");}}printf(" ");}

printf()函數是格式化輸出函數,一般用於向標准輸出設備按規定格式輸出信息。格式輸出,它是c語言中產生格式化輸出的函數(在stdio.h中定義)。

函數介紹

printf()函數是格式化輸出函數,一般用於向標准輸出設備按規定格式輸出信息。在編寫程序時經常會用到此函數。函數的原型為:intprintf(constchar*format);

函數返回值為整型。若成功則返回輸出的字元數,輸出出錯則返回負值。

printf()函數的調用格式為:printf("<格式化字元串>",<參量表>);其中格式化字元串包括兩部分內容:一部分是正常字元,這些字元將按原樣輸出;另一部分是格式化規定字元,以"%"開始,後跟一個或幾個規定字元,用來確定輸出內容格式。

以上內容參考:網路-printf()

『玖』 急求c語言大神輸入成績學號姓名查詢成績

#include<stdio.h>
#include<string.h>

typedefstruct{
intqq;
charstring[1024];
}C語言;

intmain(){
C語言c={563337217,"計算機C語言課程設計有償助攻,看清楚了有償助攻再加好友! 總有窮逼和傻逼想不花錢讓爹給你白寫,你TMD以為你是誰啊。 想讓爹給你白寫的滾一邊去,省的挨罵!"};
printf("QQ:%d %s ",c.qq,c.string);
return0;
}

『拾』 C語言中用scanf輸入學號查詢成績

建個2緯數組,比如int a[10][2],裡面存檔學號和成績,定義一個變數接收scanf的輸入,然後循環遍歷數組找相同的學號就行了。