㈠ 如何用c語言做一個簡單的成績查詢系統
現在一般使用的都是易查分系統哦,將製作好的excel表格上傳至易查分,3分鍾即可搭建好一個查分網站
㈡ 用C語言寫一個成績查詢系統。
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
#define N 10
/*****定義結構體*****/
typedef struct students /*標記為students*/
{
char num[10]; /*學生學號*/
char name[10]; /*學生姓名*/
int age; /*年齡*/
char sex[10]; /*性別*/
float cyy; /*C語言成績*/
float computer; /*計算機成績*/
float english; /*英語成績*/
float pj; /*平均成績*/
}STU;
STU temp;
void sort(STU students[],int n); //排序
void save(STU students[] ,int n);//導出
int Locate(STU students[],int n);//查詢
/*--------------顯示菜單--------------------*/
char displaymenu()
{
char k;
system("cls");
printf(" 學生成績管理 \n");
printf("-----------------------------------應用菜單-------------------------------------\n");
printf(" 1 輸入學生成績\n\n");
printf(" 2 輸出學生成績\n\n");
printf(" 3 查詢學生成績\n\n");
printf(" 4 修改學生成績\n\n");
printf(" 5 查看成績排序\n\n");
printf(" 6 查看成績統計\n\n");
printf(" 7 保存數據\n\n");
printf(" 8 讀取數據\n\n");
printf(" 9 退出系統\n\n");
printf(" 請選擇你想進行的操作:");
k=getchar();
return k;
}
/*****定義輸出函數*****/
void printheader() /*格式化輸出表頭*/
{
printf("\n\n************************學生成績管理系統****************************\n\n\n");
printf("| 學號 | 姓名 | 年齡 | 性別 | C語言成績 |計算機成績 | 英語成績| 平均成績 | \n");
}
void printdata(STU pp) /*格式化輸出表中數據*/
{
STU* p;
p=&pp;
printf("| %-5s| %-5s | %-4d| %-4s| %-6.0f| %-6.0f| %-5.0f| %-6.0f|\n",p->num,p->name,p->age,p->sex,p->cyy,p->computer,p->english,p->pj);
}
/*****添加學生信息*****/
int add(STU students[] ,int *n)
{
int i=0;
system("cls");
printf(" \n");
printf(" 請輸入學生信息 \n");
printf(" 退出請在學生號處輸入:0 \n");
printf("請輸入學生學號:\n ");
scanf("%s",students[i].num);
while(strcmp(students[i].num,"0") )//當輸入的學號為0時結束輸入
{
printf("請輸入學生姓名:\n ");
scanf("%s",students[i].name);
printf("****************\n\n\n");
printf("請輸入學生年齡:\n ");
scanf("%d",&students[i].age);
printf("****************\n\n\n");
printf("請輸入學生性別:\n");
scanf("%s",students[i].sex);
printf("****************\n\n\n");
printf("請輸入C語言成績:\n ");
scanf("%f",&students[i].cyy);
printf("****************\n\n\n");
printf("請輸入計算機成績:\n ");
scanf("%f",&students[i].computer);
printf("****************\n\n\n");
printf("請輸入英語成績:\n ");
scanf("%f",&students[i].english);
printf("****************\n\n\n");
students[i].pj=(students[i].cyy+students[i].computer+students[i].english)/3;
printf("學生平均成績: %-8.0f\n",students[i].pj);
i++;
printf("****************\n\n\n");
printf("請輸入學生學號:\n ");
scanf("%s",students[i].num);
}
*n=i;
save(students ,i);
return i;
}
/*****查詢學生信息函數*****/
int Locate(STU students[],int n)
{
int k,m=-1;
char num[10],name[20];
int i=0;
system("cls");
printf(" 退出請輸入:0 \n");
printf("請選擇以什麼方式查詢:1).按學生學號查詢 2).按學生姓名查詢 \n");
scanf("%d",&k);
if(k==1)
{
printf("請輸入你要查詢的學生學號:\n");
scanf("%s",num);
while(i<n)
{
if(strcmp(students[i].num,num)==0) /*若找到學號*/
{
printf(">>學生學號:%s\n*學生姓名:%s\n*學生年齡:%d\n*學生性別:%s\n>C語言成績:%-8.0f\n>計算機成績:%-8.0f\n>>英語成績:%-8.0f\n>>平均成績:%-8.0f\n",students[i].num,students[i].name,students[i].age,students[i].sex,students[i].cyy,students[i].computer,students[i].english,students[i].pj);
m=i;
getchar();
break;
}
i++;
}
if(i>=n)
printf("沒有所找學生信息\n");
getchar();
}
else if(k==2)
{
printf("請輸入你要查詢的學生姓名:\n");
scanf("%s",name);
while(i<n)
{
if(strcmp(students[i].name,name)==0) /*若找到姓名*/
{ printf("學生學號:%s\n學生姓名:%s\n學生年齡:%d\n學生性別:%s\n學生C語言成績:%-8.0f\n計算機成績:%-8.0f\n英語成績:%-8.0f\n平均成績:%-8.0f\n",students[i].num,students[i].name,students[i].age,students[i].sex,students[i].cyy,students[i].computer,students[i].english,students[i].pj);
m=i;
getchar();
break;
}
i++;
}
if(i>=n)
printf("沒有所找學生信息\n");
}
return m;/*返回一個根m便於修改學生信息*/
getchar();
}
/*****顯示函數*****/
void input(STU students[],int n)
{
int i;
system("cls"); //清屏
if(n==0) /*表示沒有學生信息記錄*/
{
printf("\n沒有學生記錄!\n");
}
printf("\n\n");
printheader(); /*輸出表格頭部*/
i=0;
while(i<n) /*逐條輸出數組中存儲的學生信息*/
{
printdata(students[i]);
i++;
}
getchar();
}
/*****修改子程序*****/
void Modify(STU students[],int n)
{
int i;
if(n<=0)
{
system("cls");
printf(" \n退出請輸入:0 \n");
printf("\n----------not found!----------\n");
getchar();
return ;
}
system("cls");
printf("修改學生信息");
input(students,n);
i=Locate(students,n); /*查詢到該數組元素,並返回下標值*/
if(i!=-1) /*若i!=-1,表明已經找到該數組元素*/
{
printf("請輸入新的學生信息: \n");
printf(" 學號: ");
scanf("%s",students[i].num);
printf(" 姓名: ");
scanf("%s",students[i].name);
printf(" 年齡: ");
scanf("%d",&students[i].age);
printf(" 性別: ");
scanf("%s",students[i].sex);
printf(" C語言: ");
scanf("%f",&students[i].cyy);
printf(" 英語: ");
scanf("%f",&students[i].english);
printf(" 計算機: ");
scanf("%f",&students[i].computer);
students[i].pj=(students[i].cyy+students[i].english+students[i].computer)/3;
printf("平均成績: %-9.0f\n",students[i].pj);
save(students ,n);
printf("\n-------------修改成功!-------------\n");
}
else
printf("not found!\n");
getchar();
}
/*****學生成績排序子程序*****/
void sort(STU students[],int n)
{
int i,j,a,b,c,d,e,f,k;
float p;
printf(" \n退出請輸入:0 \n");
printf("成績排序方式選擇: 1.按C語言 2.按英語 3.按平均 \n ");
scanf("%d",&k);
if(k==1) /*用選擇法對C語言排序*/
{
for(i=0; i<n; i++)
for(j=0;j<n-1;j++)
{
if(students[i].english<students[j+1].english)
{
temp=students[i];
students[i]=students[j+1];
students[j+1]=temp;
}
}
}
else if(k==2)/*英語用冒泡法*/
{
for(a=0; a<n-1; a++)
{
c=a;
//未完待續
㈢ c語言 學生成績查詢系統
C語言程序:
#include<stdio.h>
#defineMAX100
/*顯示菜單*/
voidShowMenu()
{
printf(" ");
printf("||===================================|| ");
printf("||-----------------------------------|| ");
printf("||-------學生成績查詢系統------------|| ");
printf("||-----------------------------------|| ");
printf("||-----------------------------------|| ");
printf("||-----------------------------------|| ");
printf("||===================================|| ");
printf(" ");
printf("|----------------------------------| ");
printf("|----------請輸入(0-6)-----------| ");
printf("|1.輸入成績------------| ");
printf("|2.顯示成績------------| ");
printf("|3.查詢平均分----------| ");
printf("|4.查詢最高分----------| ");
printf("|5.成績排名------------| ");
printf("|6.退出----------------| ");
printf("|----------------------------------|請輸入0-6:");
}
/*排序*/
voidSort(intarr[],intn)
{
inti,j,k;
inttemp;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if(arr[j]>arr[k])
{
k=j;
}
}
if(k!=i)
{
temp=arr[k];
arr[k]=arr[i];
arr[i]=temp;
}
}
}
voidmain(){
intchoice;
intscores[MAX]={80,78}; /*存儲成績*/
intn=2; /*人數*/
intback[MAX];
intmax; /*最高分*/
doubleavg; /*平均分*/
inti;
while(1)
{
ShowMenu();
scanf("%d",&choice);
switch(choice)
{
case1: /*輸入成績*/
{
printf("請輸入新成績:");
scanf("%d",&scores[n]);
n++;
break;
}
case2: /*顯示成績*/
{
printf("成績列表: ");
for(i=0;i<n;i++)
{
printf("%4d",scores[i]);
}
printf(" ");
break;
}
case3: /*查詢平均分*/
{
avg=0;
for(i=0;i<n;i++)
{
avg+=scores[i];
}
avg/=n;
printf("平均分:%.2lf ",avg);
break;
}
case4: /*查詢最高分*/
{
max=scores[0];
for(i=1;i<n;i++)
{
if(scores[i]>max)
{
max=scores[i];
}
}
avg/=n;
printf("最高分:%d ",max);
break;
}
case5: /*成績排名*/
{
for(i=0;i<n;i++)
{
back[i]=scores[i];
}
Sort(back,n);
printf("成績排名: ");
printf("%8s%8s ","名次","成績");
for(i=0;i<n;i++)
{
printf("%8d%8d ",i+1,back[i]);
}
printf(" ");
break;
}
case6: /*退出*/
{
return;
}
default: /*繼續*/
{
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<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<stdlib.h>
/*定義全局變數*/
int num;
struct student
{
l name[20];
charong id;
char sex[10];
int math;
int english;
int c_program;
int total;
}stu[41];
/*主菜單*/
void page_title()
{
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(" 0、請退出\n");
}
/*main()
{
system("cls");
pape_title();
}*/
void student_new()//1、錄入學生成績
{
int i;
printf("請輸入學生個數<1-41>:");
scanf("%d",&num);
printf("*****************************************************\n");
printf("學號 姓名 性別 數學 英語 C語言\n");
printf("*****************************************************\n");
for(i=0;i<num;i++)//num個學生
{
scanf("%ld%s%s%d%d%d",&stu[i].id,&stu[i].name,&stu[i].sex,&stu[i].math,&stu[i].english,&stu[i].c_program);
stu[i].total=stu[i].math+stu[i].english+stu[i].c_program;
printf("-----------------------------------------------------\n");
}
}
void show()//2、顯示學生成績
{
int i;
printf("*******************************************************\n");
printf("學號 姓名 性別 數學 英語 C語言 總成績\n");
printf("*******************************************************\n");
for(i=0;i<num;i++)
{
printf("%ld\t%s\t%s\t%d\t%d\t%d\t%d\t\n",stu[i].id,stu[i].name,stu[i].sex,stu[i].math,stu[i].english,stu[i].c_program,stu[i].total);
printf("-------------------------------------------------------\n");
}
}
void student_edit()//3、修改學生信息
{
int i,n;
long stunum;
printf("請輸入要修改的學號:");
scanf("%d",&stunum);
printf("==============以下選項可供選擇===============\n");
printf(" 1、請修改學號\n");
printf(" 2、請修改姓名\n");
printf(" 3、請修改性別\n");
printf(" 4、請修改數學成績\n");
printf(" 5、請修改英語成績\n");
printf(" 6、請修改c語言成績\n");
printf("請輸入要修改的選項:");
scanf("%d",&n);
for(i=0;i<num;i++)
{
if(stu[i].id==stunum)//查找
{
if(n==1)
{
printf("請修改學號:\n");
scanf("%ld",&stu[i].id);
}
if(n==2)
{
printf("請修改姓名:\n");
scanf("%s",&stu[i].name);
}
if(n==3)
{
printf("請修改性別:\n");
scanf("%s",&stu[i].sex);
}
if(n==4)
{
printf("請修改數學成績:\n");
scanf("%d",&stu[i].math);
}
if(n==5)
{
printf("請修改英語成績:\n");
scanf("%d",&stu[i].english);
}
if(n==6)
{
printf("請修改c語言成績:\n");
scanf("%d",&stu[i].c_program);
}
stu[i].total=stu[i].math+stu[i].english+stu[i].c_program;//求總成績
break;
}
if(i==num)
printf("該生信息不存在!");
}
}
void student_del()//*4、刪除一個學生的學號(把後面的數<i+1>往前移,把要刪除的那個數擠掉)【修改與之相似】
{
int i,j,t;
long stunum;
printf("請輸入您要刪除的學號:");
scanf("%d",&stunum);
for(i=0;i<num;i++)
{
if(stu[i].id==stunum)//查找
{
printf("確認要刪除該生信息!\n");
printf("輸入的數為0,其他則退出\n");
scanf("%d",&t);
if(t==0)
{
for(j=i+1;j<num;j++)//刪除
{
stu[j-1]=stu[j];
}
num--;//退學,減少了一個人
break;
}
}
}
if(i==num)
printf("該學生信息不存在\n");
}
void sore_search()//5、按學號查詢學生成績
{
int i=0;
long stunum;//定義學號
printf("請輸入您要查找的學號:");
scanf("%d",&stunum);//輸入要查找到的學號
for(i=0;i<num;i++)
{
if(stu[i].id==stunum)//輸入的學號和所有學生的學號比較,即查找
{
printf("*******************************************************\n");
printf("學號 姓名 性別 數學 英語 C語言 總成績\n");
printf("*******************************************************\n");
printf("%ld\t%s\t%s\t%d\t%d\t%d\t%d\t\n",stu[i].id,stu[i].name,stu[i].sex,stu[i].math,stu[i].english,stu[i].c_program,stu[i].total);
printf("-------------------------------------------------------\n");
break;//找到後馬上停止
}
}
if(i==num)//說明for都執行了一遍,for語句里沒有num;
printf("該生信息不存在");
}
void score_sort()//7、按總成績遞減排序
{
int i,j;
struct student t;
for(i=0;i<=num-2;i++)//輪數//
{
for(j=0;j<=num-2;j++)//相鄰兩個數進行比較
{
if(stu[j].total<stu[j+1].total)
{
t=stu[j];
stu[j]=stu[j+1];
stu[j+1]=t;
}
}
}
}
void save()//8、保存(通過代碼來控制文件,在C盤中)
{
int i;
FILE *fp=fopen("c:\\score.txt","w+");//FILE(一定要大寫):文件類型 *FP代表指針 .txt代表記事本文件 w+:既可以保存,又可以寫
if(fp==NULL)//fp文件若為空
{
printf("文件打開失敗");
exit(1);
}
for(i=0;i<num;i++)
fprintf(fp,"%ld\t%s\t%s\t%d\t%d\t%d\t%d\t\n",stu[i].id,stu[i].name,stu[i].sex,stu[i].math,stu[i].english,stu[i].c_program,stu[i].total);
fclose(fp);//fprintf:保存,fp:保存到fp文件中,fclose:關閉fp文件
}
void load()//1、載入文件函數
{
int i;
int n;//n:記錄數
FILE *fp=fopen("c:\\score.txt","r");//r->read的標志 fopen的功能是打開文件
if(fp==NULL)
{
printf("文件打開失敗");
exit(1);
}
printf("請輸入記錄數:");
scanf("%d",&n);
num=n;//把讀到的n的個數賦給num
for(i=0;i<num;i++)
{
fscanf(fp,"%ld\t%s\t%s\t%d\t%d\t%d\t%d\t\n",&stu[i].id,&stu[i].name,&stu[i].sex,&stu[i].math,&stu[i].english,&stu[i].c_program,&stu[i].total);
}//fscanf:從文件中讀取數據
fclose(fp);//關閉fp文件
}
main()
{
int select;//選擇選項
int flag=1;//退出標志
int user,admin;
printf("★◎★◎★◎====歡迎使用學生信息管理系統!====★◎★◎★◎\n");
printf("========請輸入您的賬號和密碼:========\n");
scanf("%d,%d",&user,&admin);
if(user==123&&admin==123)
{
system("cls");//清屏
page_title();
while(flag!=0)//只要flag!=0,就一直循環
{
printf("請輸出選項:");
scanf("%d",&select);
switch(select)
{
case 1:student_new();break;
case 2:show();break;//顯示
case 3:student_edit();show();break;//修改
case 4:student_del();show();break;
case 5:sore_search();break;
case 6:load();show();break;
case 7:score_sort();show();break;
case 8:save();show();break;
case 0:flag=0;break;
default:break;
}
}
}
else printf("對不起,您輸入的密碼不正確!");
}
㈦ 學生成績錄入查詢系統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"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);
}
}