c語言成績查詢程序
⑴ 用c語言寫一個成績查詢的程序
//分數序列如:2\1,3\2.5\3,8\5.13\8,21\13.......的前20項之和。
#include//直接看這一組數列有什局咐么規律,很容易發現,從2/1開始,後一組的分母為前一組的一個分子
//後一項的分子為前一項的分母分子之和,如果用An表示分母,Bn表示分子,則有遞推工式,B(n+1)=An::A(n+1)=An+Bn知道這個就很桐前純好辦了
float getMe(int n)//這個函數就是求第n項的那個數的值
{
float An=2.0;float Bn=1.0;
float temp;
while(--n)
{
temp=Bn;
Bn=An;
An=An+temp;
}
return(An/Bn);}
void main()
{
int n;
float theSum=0.0;
printf("請輸入你想要求的前悔腔n項的和:");
scanf("%d",&n);
for(;n>0;n--)
{
theSum=theSum+getMe(n);
}
printf("%f",theSum);
}
⑵ 學生成績錄入查詢系統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語言編寫查詢學生成績管理程序。
#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語言程序設計學生成績查詢系統
#include"stdio.h"
#include"string.h"
#define
N
1000
void
menu();
int
password();
int
de();
int
uninque(struct
STUDENT
shu[],int
len,int
xuehao);
void
shuchu(struct
STUDENT
shu[],int
len);
void
send(struct
STUDENT
shu[],int
len);
int
readFromFile(struct
STUDENT
shu[]);
void
chaxun(struct
STUDENT
shu[],int
len);
void
paixu(struct
STUDENT
shu[],int
len);
struct
STUDENT
{
int
num;
char
name[10];
int
score;
}
shu[N];
main()
{
int
len=0,key,choice;
do
{
key=password();
}while(key==0);
while(1)
{
menu();
printf("請輸入選項<1,2,3,4,5,6,7>\n");
scanf("%d",&choice);
switch(choice)
{
case
1:printf("輸入信息函數\n");
len=de(shu,len);
break;
case
2:printf("輸出函數被調用\n");
shuchu(shu,len);
break;
case
3:printf("保存到文件函數被調用\n");
send(shu,len);
break;
case
4:printf("從文件讀函數被調用\n");
len=readFromFile(
shu);
break;
case
5:printf("按學號查詢函數被調用\n");
chaxun(shu,len);
break;
case
6:printf("按成績排序函數被調用\n");
paixu(shu,len);
break
;
case
7:exit(0);break;
}
}
}
void
menu()
{
printf("\n");
printf("
*******************************************\n");
printf("
*
學生成績管理系統2.0
*\n");
printf("
*
1.輸入信息
*\n");
printf("
*
2.輸出信息
*\n");
printf("
*
3.保存到文件
*\n");
printf("
*
4.從文件讀
*\n");
printf("
*
5.按學號查詢
*\n");
printf("
*
6.按成績排序(由大到小)
*\n");
printf("
*
7.程序結束
*\n");
printf("
*******************************************\n");
}
int
password()
{
char
a[100];
char
key[]="asd";
printf("請輸入密碼\n");
scanf("%s",&a);
if(strcmp(a,key)==0)
return
1;
else
return
0;
}
int
de(struct
STUDENT
shu[],int
len)
{
int
i=len;
int
flag=0;
int
xuehao,bank,chengji;
while(i<N)
{
while(1)
{
printf("學號");
scanf("%d",&xuehao);
if(xuehao==0)
{
flag=1;
break;
}
bank=uninque(shu,i,xuehao);
if(bank==0)
{
shu[i].num=xuehao;
break;}
}
if(flag==1)
break;
printf("姓名");
scanf("%s",&shu[i].name);
while
(1)
{
printf("成績");
if(scanf("%d",&chengji)==1)
{break;}
printf("輸入格式錯誤,請重新輸入!");
while(getchar()!='\n')
continue;
}
while(getchar()!='\n')
continue;
shu[i].score=chengji;
i++;
}
return
i;
}
int
uninque(struct
STUDENT
shu[],int
len,int
xuehao)
{
int
i;
int
bank=0;
for
(i=0;i<len;i++)
{
if(xuehao==shu[i].num)
bank=1;
}
return
bank;
}
void
shuchu(struct
STUDENT
shu[],int
len)
{
int
i;
printf("%-4s
%-10s
%-3s","學號","姓名","成績\n\n");
for(i=0;i<len;i++)
{
printf("%-4d
%-10s
%-3d",shu[i].num,shu[i].name,shu[i].score);
printf("\n");
}
printf("\n\n");
}
void
send(struct
STUDENT
shu[],int
len)
{
int
i;
FILE
*fp;
fp=fopen("d:\\chegnji.txt","wb");
if(fp==NULL)
{
printf("打開文件出錯!\n");
exit(0);
}
for(i=0;i<len;i++)
fwrite(shu+i,sizeof(struct
STUDENT),1,fp);
fclose(fp);
}
int
readFromFile(struct
STUDENT
shu[])
{
FILE
*fp=NULL;
int
i=0;
fp=fopen("d:\\chegnji.txt","rb");
if(fp!=NULL)
{
printf("%-4s
%-10s
%-3s","學號","姓名","成績\n\n");
while(!feof(fp))
{
if(i>=N)
break;
if(fread(shu+i,sizeof(struct
STUDENT),1,fp))
printf("%-4d
%-10s
%-3d",shu[i].num,shu[i].name,shu[i].score);
printf("\n");
i++;
}
fclose(fp);
}
i=i-1;
return
i;
}
void
chaxun(struct
STUDENT
shu[],int
len)
{
int
i,nue,b=0;
while(1)
{printf("input
the
student
number
(input'0'
close)
");
scanf("%d",&nue);
b=0;
if(nue==0)
break;
for
(i=0;i<len;i++)
{
if(nue==shu[i].num)
{
printf("%-4s
%-10s
%-3s","學號","姓名","成績\n\n");
printf("%-4d
%-10s
%-3d\n",shu[i].num,shu[i].name,shu[i].score);
b=1;
}
}
if(b==0)
printf("The
number
is
not
exist!\n");
}
}
void
paixu(struct
STUDENT
shu[],int
len)
{
int
i,j;
struct
STUDENT
temp;
printf("%-4s
%-10s
%-3s","學號","姓名","成績\n\n");
for(i=0;i<len;i++)
{
for(j=i;j<len;j++)
{
if(shu[j].score>shu[i].score)
{
temp=shu[j];
shu[j]=shu[i];
shu[i]=temp;
}
}
printf("%-4d
%-10s
%-3d\n",shu[i].num,shu[i].name,shu[i].score);
}
}