本文目錄一覽:
成績管理系統用C語言做
#include stdio.h
#include stdlib.h
#include string.h
#include math.h
#include windows.h
#include conio.h
typedef struct student
{
//1、數據結構:學號 姓名 數學 英語 語文 C語言 總分 平均分
int num;
char name[10];
int math;
int english;
int chinese;
int cl;
int mark;
double average;
} student;
void Menu(); //主菜單
void Password(char *password);//密碼驗證
void Student_file(student people[]);//輸入數據
void Save(student people[]);//保存檔案
void Search();//查找學生檔案
void Search_Name(student people[]);//按照姓名查找學生信息
void Search_Num(student people[]);//按照學號查找學生信息
void Student_Add(); //添加學生檔案
void Student_Del(); //刪除學生檔案
void Student_Pass_Rate(); //學科及格概率
void Student_Sort(); //總分由高到低排序
void Student_Average(); //學科平均分
void Student_All_Del(); //刪除所有學生檔案
//void Student_Change_Password(); //修改密碼
void Student_Stat();//統計各分數段人數並輸出各科補考名單
int main()
{
FILE *fpn;
int s,n; //選項和人數
char password[50]=”123456″; //初始密碼
student people[50]; //支持的最大人數
system(“color 4e”);
system(“title 學生信息管理系統”);
Password(password);
for(;;)
{
Menu();
printf(“請輸入選項:”);
scanf(“%d”,s);
switch(s)
{
case 1:
printf(“請輸入人數:”);
scanf(“%d”,n);
if((fpn=fopen(“n.dat”,”wb”))==NULL)
{
printf(“Error!”);
exit(0);
}
fputc(n,fpn);
fclose(fpn);
Student_file(people);
break;
case 2:
Search_Name(people);
break;
case 3:
Search_Num(people);
break;
case 4:
Student_Add();
break;
case 5:
Student_Del();
break;
case 6:
Student_Pass_Rate();
break;
case 7:
Student_Sort();
break;
case 8:
Save(people);
break;
case 9:
Search();
system(“pause”);
break;
case 10:
Student_Average();
break;
case 11:
Student_All_Del();
break;
case 12:
Student_Stat();
break;
case 0:
exit(0);
break;
}
}
return 0;
}
void Menu()
{
system(“cls”);
printf(” 學生信息管理系統\n”);
printf(“**********************菜單****************************\n”);
printf(“按1鍵:讀入學生檔案 按6鍵:學科及格概率\n”);
printf(“按2鍵:按照姓名查詢 按7鍵:學生檔案排序\n”);
printf(“按3鍵:按照學號查詢 按8鍵:保存學生檔案\n”);
printf(“按4鍵:添加學生檔案 按9鍵: 查看學生檔案\n”);
printf(“按5鍵:刪除學生檔案 按10鍵:求各科平均分\n”);
printf(“按0鍵:退出管理系統 按11鍵:刪除所有學生檔案\n”);
printf(“按12鍵:統計各分數段人數並輸出各科補考名單\n”);
printf(“******************************************************\n”);
}
void Password(char *password)
{
int i,j;
char p;
char password2[50];
printf(“請輸入登錄密碼:”);
for(i=2; i=0; i–)
{
j=0;
while((p=getch())!=’\r’)
{
password2[j]=p;
printf(“*”);
j++;
}
password2[j]=’\0′;
if((strcmp(password,password2))==0)
{
printf(“密碼輸入正確!\n”);
break;
}
else
{
if(i0)
printf(“\n密碼輸入錯誤,請重新輸入(還有%d次機會):”,i);
else
printf(“密碼輸入錯誤,退出程序!\n”);
}
}
if(i0)
{
exit(0);
}
}
void Student_file(student people[])
{
int i,flag,j;
FILE *fpn;
int n,NUMS;
if((fpn=fopen(“n.dat”,”rb”))==NULL)
{
printf(“Error!\n”);
exit(0);
}
n=fgetc(fpn);
fclose(fpn);
for(i=0; in; i++)
{
system(“cls”);
printf(“請輸入第%d個同學的數據:\n”,i+1);
printf(“學號:”);
//scanf(“%d”,people[i].num);
//Inputnum(people,n,i);
scanf(“%d”,NUMS); //外面聲明一個int型變量NUM
for(flag=0,j=0; ji; j++)
{
if(people[j].num==NUMS)
{
flag=1; //標誌位,有重複就置1,需要外面聲明
break;
}
}
if(flag==1)
{
i–;
printf(“學號重複!請按任意鍵重新輸入!\n”);
system(“pause”);
continue;
}
else
{
people[i].num = NUMS;
}
printf(“姓名:”);
scanf(“%s”,people[i].name);
printf(“數學成績:”);
for(;;)
{
scanf(“%d”,NUMS);
if(NUMS0||NUMS100)
{
printf(“成績超出程序規定範圍,請重新輸入數學成績:”);
flag=0;
}
else
{
flag=1;
}
if(flag==1)
break;
}
people[i].math=NUMS;
printf(“英語成績:”);
for(;;)
{
scanf(“%d”,NUMS);
if(NUMS0||NUMS100)
{
printf(“成績超出程序規定範圍,請重新輸入英語成績:”);
flag=0;
}
else
{
flag=1;
}
if(flag==1)
break;
}
people[i].english=NUMS;
printf(“語文成績:”);
for(;;)
{
scanf(“%d”,NUMS);
if(NUMS0||NUMS100)
{
printf(“成績超出程序規定範圍,請重新輸入語文成績:”);
flag=0;
}
else
{
flag=1;
}
if(flag==1)
break;
}
people[i].chinese=NUMS;
printf(“C語言成績:”);
for(;;)
{
scanf(“%d”,NUMS);
if(NUMS0||NUMS100)
{
printf(“成績超出程序規定範圍,請重新輸入C語言成績:”);
flag=0;
}
else
{
flag=1;
}
if(flag==1)
break;
}
people[i].cl=NUMS;
people[i].mark=people[i].math + people[i].english + people[i].chinese + people[i].cl;
people[i].average=(double)(people[i].math+people[i].english+people[i].chinese+people[i].cl)/4.0;
}
Save(people);
}
void Search()
{
FILE *fpn,*fp1;
int i;
int n;
student people2[50];
if((fpn=fopen(“n.dat”,”rb”))==NULL)
{
printf(“Error!”);
exit(0);
}
n=fgetc(fpn);
fclose(fpn);
if((fp1=fopen(“stu.dat”,”rb”))==NULL)
{
printf(“查看檔案失敗!\n”);
exit(0);
}
fread(people2,sizeof(student),n,fp1);
fclose(fp1);
printf(“學號 姓名 數學 英語 語文 C語言 總分 平均分\n”);
for(i=0; in; i++)
{
printf(“%-8d\t%-8s\t%-8d\t%-8d\t%-8d\t%-8d\t%-8d\t%-8.2lf\n”,people2[i].num,people2[i].name,people2[i].math,people2[i].english,people2[i].chinese,people2[i].cl,people2[i].mark,people2[i].average);
}
}
void Save(student people[])
{
FILE *fp,*fpn;
int n;
if((fpn=fopen(“n.dat”,”rb”))==NULL)
{
printf(“Error!\n”);
exit(0);
}
n=fgetc(fpn);
fclose(fpn);
if((fp=fopen(“stu.dat”,”wb”))==NULL)
{
printf(“保存檔案失敗!\n”);
exit(0);
}
fwrite(people,sizeof(student),n,fp);
fclose(fp);
printf(“保存成功!\n”);
system(“pause”);
}
void Search_Name(student people[])
{
FILE *fpn,*fp1;
int i;
int n;
student people2[50];
char Name2[20];
printf(“請輸入要查找的姓名:”);
scanf(“%s”,Name2);
if((fpn=fopen(“n.dat”,”rb”))==NULL)
{
printf(“Error!”);
exit(0);
}
n=fgetc(fpn);
fclose(fpn);
if((fp1=fopen(“stu.dat”,”rb”))==NULL)
{
printf(“查看檔案失敗!\n”);
exit(0);
}
fread(people2,sizeof(student),n,fp1);
fclose(fp1);
printf(“學號 姓名 數學 英語 語文 C語言 總分 平均分 \n”);
for(i=0; in; i++)
{
if(strcmp(people2[i].name,Name2)==0)
{
printf(“%-8d\t%-8s\t%-8d\t%-8d\t%-8d\t%-8d\t%-8d\t%-8.2lf\n”,people2[i].num,people2[i].name,people2[i].math,people2[i].english,people2[i].chinese,people2[i].cl,people2[i].mark,people2[i].average);
break;
}
}
if(i==n)
{
printf(“您要查找的姓名不存在!\n”);
}
system(“pause”);
}
void Search_Num(student people[])
{
FILE *fpn,*fp1;
int i;
int n;
student people2[50];
int Num2;
printf(“請輸入要查找的學號:”);
scanf(“%d”,Num2);
if((fpn=fopen(“n.dat”,”rb”))==NULL)
{
printf(“Error!”);
exit(0);
}
n=fgetc(fpn);
fclose(fpn);
if((fp1=fopen(“stu.dat”,”rb”))==NULL)
{
printf(“查看檔案失敗!\n”);
exit(0);
}
fread(people2,sizeof(student),n,fp1);
fclose(fp1);
printf(“學號 姓名 數學 英語 語文 C語言 總分 平均分 \n”);
for(i=0; in; i++)
{
if(people2[i].num==Num2)
{
printf(“%-8d\t%-8s\t%-8d\t%-8d\t%-8d\t%-8d\t%-8d\t%-8.2lf\n”,people2[i].num,people2[i].name,people2[i].math,people2[i].english,people2[i].chinese,people2[i].cl,people2[i].mark,people2[i].average);
break;
}
}
if(i==n)
{
printf(“您要查找的學號不存在!\n”);
}
system(“pause”);
}
void Student_Add()
{
FILE *fp,*fpn;
int n,NUMS,i,flag;
//int b;
student people2[50];
if((fpn=fopen(“n.dat”,”rb”))==NULL)
{
printf(“Error!\n”);
exit(0);
}
n=fgetc(fpn);
fclose(fpn);
n=n+1;
if((fpn=fopen(“n.dat”,”wb”))==NULL)
{
printf(“Error!\n”);
exit(0);
}
n=fputc(n,fpn);
fclose(fpn);
if((fp=fopen(“stu.dat”,”rb”))==NULL)
{
printf(“查看檔案失敗!\n”);
exit(0);
}
fread(people2,sizeof(student),n,fp);
fclose(fp);
printf(“請輸入第%d個同學的數據:\n”,n);
printf(“學號:”);
for(;;)
{
scanf(“%d”,NUMS);
for(i=0;in-1;i++)
{
if(NUMS==people2[i].num)
{
flag=1;
break;
}
else
{
flag=0;
}
}
if(flag==1)
{
printf(“學號重複!請重新輸入學號:”);
}
if(flag==0)
{
break;
}
}
people2[n-1].num=NUMS;
printf(“姓名:”);
scanf(“%s”,people2[n-1].name);
printf(“數學成績:”);
for(;;)
{
scanf(“%d”,NUMS);
if(NUMS0||NUMS100)
{
printf(“成績超出程序規定範圍,請重新輸入數學成績:”);
flag=0;
}
else
{
flag=1;
}
if(flag==1)
break;
}
people2[n-1].math=NUMS;
printf(“英語成績:”);
for(;;)
{
scanf(“%d”,NUMS);
if(NUMS0||NUMS100)
{
printf(“成績超出程序規定範圍,請重新輸入英語成績:”);
flag=0;
}
else
{
flag=1;
}
if(flag==1)
break;
}
people2[n-1].english=NUMS;
printf(“語文成績:”);
for(;;)
{
scanf(“%d”,NUMS);
if(NUMS0||NUMS100)
{
printf(“成績超出程序規定範圍,請重新輸入語文成績:”);
flag=0;
}
else
{
flag=1;
}
if(flag==1)
break;
}
people2[n-1].chinese=NUMS;
printf(“C語言成績:”);
for(;;)
{
scanf(“%d”,NUMS);
if(NUMS0||NUMS100)
{
printf(“成績超出程序規定範圍,請重新輸入C語言成績:”);
flag=0;
}
else
{
flag=1;
}
if(flag==1)
break;
}
people2[n-1].cl=NUMS;
people2[n-1].mark=people2[n-1].math + people2[n-1].english + people2[n-1].chinese + people2[n-1].cl;
people2[n-1].average=(double)(people2[n-1].math+people2[n-1].english+people2[n-1].chinese+people2[n-1].cl)/4.0;
if((fp=fopen(“stu.dat”,”wb”))==NULL)
{
printf(“查看檔案失敗!\n”);
exit(0);
}
fwrite(people2,sizeof(student),n,fp);
fclose(fp);
printf(“添加成功!\n”);
/*printf(“是否繼續添加?0(否) / 1(是):”);
scanf(“%d”,b);
switch(b)
{
case 1:
Student_Add();
break;
case 0:
break;
}*/
system(“pause”);
}
void Student_Del()
{
FILE *fp,*fpn;
int n,nums,i,j;
student people2[50];
if((fpn=fopen(“n.dat”,”rb”))==NULL)
{
printf(“Error!\n”);
exit(0);
}
n=fgetc(fpn);
fclose(fpn);
if((fp=fopen(“stu.dat”,”rb”))==NULL)
{
printf(“查看檔案失敗!\n”);
exit(0);
}
fread(people2,sizeof(student),n,fp);
fclose(fp);
printf(“請輸入要刪除學生的學號:”);
scanf(“%d”,nums);
for(i=0; in; i++)
{
if(people2[i].num==nums)
{
for(j=i; jn-1; j++)
{
people2[j]=people2[j+1];
}
break;
}
}
n=n-1;
if((fpn=fopen(“n.dat”,”wb”))==NULL)
{
printf(“Error!\n”);
exit(0);
}
n=fputc(n,fpn);
fclose(fpn);
if((fp=fopen(“stu.dat”,”wb”))==NULL)
{
printf(“打開檔案失敗!\n”);
exit(0);
}
fwrite(people2,sizeof(student),n,fp);
fclose(fp);
printf(“刪除檔案成功!\n”);
system(“pause”);
}
void Student_Pass_Rate()
{
FILE *fp,*fpn;
int n,smp=0,sep=0,scp=0,sclp=0,i;//數學 英語 語文 c語言的及格的人數
double mp,ep,cp,clp;// 及格率
int count1=0,count2=0,count3=0,count4=0;//及格的人數
student people2[50];
if((fpn=fopen(“n.dat”,”rb”))==NULL)
{
printf(“Error!\n”);
exit(0);
}
n=fgetc(fpn);
fclose(fpn);
if((fp=fopen(“stu.dat”,”rb”))==NULL)
{
printf(“查看檔案失敗!\n”);
exit(0);
}
fread(people2,sizeof(student),n,fp);
fclose(fp);
for(i=0; in; i++)
{
if(people2[i].math = 60)
{
smp++;
count1++;
}
if(people2[i].english = 60)
{
sep++;
count2++;
}
if(people2[i].chinese = 60)
{
scp++;
count3++;
}
if(people2[i].cl = 60)
{
sclp++;
count4++;
}
}
//mp,ep,cp,clp
mp=((double)(smp))/n;
ep=((double)(sep))/n;
cp=((double)(scp))/n;
clp=((double)(sclp))/n;
printf(“總人數為:%d\n”,n);
printf(“各科的及格率和不及格率分別為:\n”);
printf(“\n數學:\n及格率%.2lf\t不及格率%.2lf\t不及格人數為:%d\n”,mp,1-mp,n-count1);
printf(“\n英語:\n及格率%.2lf\t不及格率%.2lf\t不及格人數為:%d\n”,ep,1-ep,n-count2);
printf(“\n語文:\n及格率%.2lf\t不及格率%.2lf\t不及格人數為:%d\n”,cp,1-cp,n-count3);
printf(“\nC語言:\n及格率%.2lf\t不及格率%.2lf\t不及格人數為:%d\n”,clp,1-clp,n-count4);
system(“pause”);
}
void Student_Sort()
{
FILE *fp,*fpn;
int n,i,j;
student people2[50];
student temp;
if((fpn=fopen(“n.dat”,”rb”))==NULL)
{
printf(“Error!\n”);
exit(0);
}
n=fgetc(fpn);
fclose(fpn);
if((fp=fopen(“stu.dat”,”rb”))==NULL)
{
printf(“查看檔案失敗!\n”);
exit(0);
}
fread(people2,sizeof(student),n,fp);
fclose(fp);
for(i=0; in-1; i++)
{
for(j=0; jn-i; j++)
{
if(people2[j].markpeople2[j+1].mark)
{
temp=people2[j];
people2[j]=people2[j+1];
people2[j+1]=temp;
}
}
}
printf(“學號 姓名 數學 英語 語文 C語言 總分 平均分 \n”);
for(i=0; in; i++)
{
printf(“%-8d\t%-8s\t%-8d\t%-8d\t%-8d\t%-8d\t%-8d\t%-8.2lf\n”,people2[i].num,people2[i].name,people2[i].math,people2[i].english,people2[i].chinese,people2[i].cl,people2[i].mark,people2[i].average);
}
system(“pause”);
}
void Student_Average()
{
FILE *fp,*fpn;
int n,i;
double smp=0,sep=0,scp=0,sclp=0; //數學 英語 語文 c語言的總分
student people2[50];
if((fpn=fopen(“n.dat”,”rb”))==NULL)
{
printf(“Error!\n”);
exit(0);
}
n=fgetc(fpn);
fclose(fpn);
if((fp=fopen(“stu.dat”,”rb”))==NULL)
{
printf(“查看檔案失敗!\n”);
exit(0);
}
fread(people2,sizeof(student),n,fp);
fclose(fp);
for(i=0; in; i++)
{
smp+=people2[i].math;
sep+=people2[i].english;
scp+=people2[i].chinese;
sclp+=people2[i].cl;
}
smp=smp/n;
sep=sep/n;
scp=scp/n;
sclp=sclp/n;
printf(“各科的平均分為:\n”);
printf(“數學: %.2lf\n”,smp);
printf(“英語: %.2lf\n”,sep);
printf(“語文: %.2lf\n”,scp);
printf(“C語言: %.2lf\n”,sclp);
system(“pause”);
}
void Student_All_Del()
{
FILE *fpn,*fp1;
int i;
int n=0;
student people2[50];
printf(“是否選擇刪除所有學生的檔案? 0(否) / 1(是):”);
scanf(“%d”,i);
switch(i)
{
case 1:
if((fpn=fopen(“n.dat”,”wb”))==NULL)
{
printf(“Error!”);
exit(0);
}
fputc(n,fpn);
fclose(fpn);
if((fp1=fopen(“stu.dat”,”wb”))==NULL)
{
printf(“刪除檔案失敗!\n”);
exit(0);
}
fwrite(people2,sizeof(student),0,fp1);
fclose(fp1);
printf(“刪除成功!\n”);
break;
case 0:
printf(“已經取消刪除操作!\n”);
break;
}
system(“pause”);
}
void Student_Stat()
{
FILE *fp,*fpn;
int n,i,j,k,l,p;//數學 英語 語文 c語言的及格的人數
int count[4][4]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};//人數分布:0~59 60~74 75~89 90~100
/*count[1]shuxue count[2]yingyu count[3]yuwen count[4]cyuyan*/
int swap[4][50];
student people2[50];
if((fpn=fopen(“n.dat”,”rb”))==NULL)
{
printf(“Error!\n”);
exit(0);
}
n=fgetc(fpn);
fclose(fpn);
if((fp=fopen(“stu.dat”,”rb”))==NULL)
{
printf(“查看檔案失敗!\n”);
exit(0);
}
fread(people2,sizeof(student),n,fp);
fclose(fp);
for(i=0,j=0,k=0,l=0,p=0; in; i++)
{
if(0 = people2[i].math people2[i].math 60)
{
count[0][0]++; //記錄不及格的人數
swap[0][j]=i; //記錄不及格人數的位置
j++;
}
if(60 = people2[i].math people2[i].math 75)
{
count[0][1]++;
}
if(75 = people2[i].math people2[i].math 90)
{
count[0][2]++;
}
if(90 = people2[i].math people2[i].math = 100)
{
count[0][3]++;
}
if(0 = people2[i].english people2[i].english 60)
{
count[1][0]++; //記錄不及格的人數
swap[1][k]=i; //記錄不及格人數的位置
k++;
}
if(60 = people2[i].english people2[i].english 75)
{
count[1][1]++;
}
if(75 = people2[i].english people2[i].english 90)
{
count[1][2]++;
}
if(90 = people2[i].english people2[i].english =100)
{
count[1][3]++;
}
if( 0 = people2[i].chinese people2[i].chinese 60)
{
count[2][0]++; //記錄不及格的人數
swap[2][l]=i; //記錄不及格人數的位置
l++;
}
if( 60 = people2[i].chinese people2[i].chinese 75)
{
count[2][1]++;
}
if( 75 = people2[i].chinese people2[i].chinese 90)
{
count[2][2]++;
}
if( 90 = people2[i].chinese people2[i].chinese = 100)
{
count[2][3]++;
}
if(0 = people2[i].cl people2[i].cl 60)
{
count[3][0]++; //記錄不及格的人數
swap[3][p]=i; //記錄不及格人數的位置
p++;
}
if(60 = people2[i].cl people2[i].cl 75)
{
count[3][1]++;
}
if(75 = people2[i].cl people2[i].cl 90)
{
count[3][2]++;
}
if(90 = people2[i].cl people2[i].cl = 100)
{
count[3][3]++;
}
}
printf(“總人數為:%d\n”,n);
printf(“在0-59範圍內的各科人數:\n”);
printf(“數學:%d\t英語:%d\t語文:%d\tC語言:%d\n”,count[0][0],count[1][0],count[2][0],count[3][0]);
printf(“在60-74範圍內的各科人數:\n”);
printf(“數學:%d\t英語:%d\t語文:%d\tC語言:%d\n”,count[0][1],count[1][1],count[2][1],count[3][1]);
printf(“在75-89範圍內的各科人數:\n”);
printf(“數學:%d\t英語:%d\t語文:%d\tC語言:%d\n”,count[0][2],count[1][2],count[2][2],count[3][2]);
printf(“在90-100範圍內的各科人數:\n”);
printf(“數學:%d\t英語:%d\t語文:%d\tC語言:%d\n”,count[0][3],count[1][3],count[2][3],count[3][3]);
printf(“**********************************************************************\n”);
printf(“補考名單\n”);
printf(“\n數學的補考名單為:\n”);
printf(“\n學號 姓名 數學成績\n”);
for(i=0;icount[0][0];i++)//循環不及格人數次
{
printf(“%-10d%-22s%-10d\n”,people2[swap[0][i]].num,people2[swap[0][i]].name,people2[swap[0][i]].math);//找到不及格人數的位置進行讀取
}
printf(“**********************************************************************\n”);
printf(“\n學號 姓名 英語成績\n”);
for(i=0;icount[1][0];i++)
{
printf(“%-10d%-22s%-10d\n”,people2[swap[1][i]].num,people2[swap[1][i]].name,people2[swap[1][i]].english);
}
printf(“**********************************************************************\n”);
printf(“\n學號 姓名 語文成績\n”);
for(i=0;icount[2][0];i++)
{
printf(“%-10d%-22s%-10d\n”,people2[swap[2][i]].num,people2[swap[2][i]].name,people2[swap[2][i]].chinese);
}
printf(“**********************************************************************\n”);
printf(“\n學號 姓名 C語言成績\n”);
for(i=0;icount[3][0];i++)
{
printf(“%-10d%-22s%-10d\n”,people2[swap[3][i]].num,people2[swap[3][i]].name,people2[swap[3][i]].cl);
};
printf(“**********************************************************************\n”);
system(“pause”);
}
/*void Student_Change_Password()
{
FILE *fp;
int i,j;
char ps[50];
printf(“是否修改密碼?0(否) / 1(是):”);
scanf(“%d”,j);
switch(j)
{
case 1:
printf(“請輸入新密碼:”);
scanf(“%s”,ps);
if((fp=fopen(“password.dat”,”wb”))==NULL)
{
printf(“修改密碼失敗!\n”);
exit(0);
}
fprintf(fp,”%s”,ps);
fclose(fp);
printf(“修改密碼成功!\n”);
break;
case 0:
printf(“成功取消修改操作!\n”);
break;
}
system(“pause”);
}*/
大一中學期做的,你可以稍微修改一下,其中可能還有不同,自己看着改改吧,修改密碼就沒寫
用c語言編寫 學生成績管理
#includestdio.h
#includestring.h
#includestdlib.h
#includeconio.h
#define max 20
typedef struct student //學生
{
char sno[max]; // 學號
char sname[max]; //姓名
char sex[max]; //性別
char age[max]; //年齡
char depart[max]; //系
char classs[max]; //班
char grade[max]; //年級
struct student* next;
} student;
student* head;
int LogOn() //登錄模塊,已實現輸入密碼不回顯,如果中途發現輸錯某幾位,可退格鍵重輸
{
char username[max],password[max];
printf(“\n請輸入用戶名:”);
scanf(“%s”,username);
printf(“\n請輸入密碼(最多15位):”);
//開始以不回顯且支持退格方式獲取輸入密碼
int i=0;
while((i=0)(password[i++]=getch())!=13)//條件i=0是用於限制退格的範圍
{
if(password[i-1]==’\b’)//對退格鍵的處理
{
printf(“%c%c%c”,’\b’,’\0′,’\b’);
i=i-2;
}
else
printf(“*”);
}
password[–i]=’\0′;
//已獲取密碼。驗證用戶身份
if(!strcmp(username,”zhang”)!strcmp(password,”8147086″))
{
printf(“\n登錄成功!”);
return 1;
}
else
return 0;
}
void regist()
{
char ch;
student *s,*ptr; //s用來建新結點,ptr用來暫存頭結點
do
{
s=(student*)malloc(sizeof(student)); // 新建一個學生結點
printf(“\n開始註冊…”); //開始註冊
printf(“\n請輸入該學生的學號:”);
scanf(“%s”,s-sno);
printf(“\n請輸入該學生的姓名:”);
scanf(“%s”,s-sname);
printf(“\n請輸入該學生的性別:”);
scanf(“%s”,s-sex);
printf(“\n請輸入該學生的年齡:”);
scanf(“%s”,s-age);
printf(“\n請輸入該學生的系:”);
scanf(“%s”,s-depart);
printf(“\n請輸入該學生所在的班:”);
scanf(“%s”,s-classs);
printf(“\n請輸入該學生所在的年級”);
scanf(“%s”,s-grade);
ptr=head;
head=s;//將新結點插入隊頭
s-next=ptr;
fflush(stdin);
printf(“\n請問是否繼續註冊?(Y/N)”);
scanf(“%c”,ch);
}while(ch==’Y’||ch==’y’);
return;
}
void ElePrint(char str[]) //輸出單個元素
{
if(str==NULL) exit(0);
printf(“%s”,str);
for(unsigned int i=0;i12-strlen(str);i++) printf(” “);//為了對齊輸出,需插入一些空格
return;
}
int LinePrint(student *ptr) //輸出一行
{
if(ptr==NULL) //檢查傳進來的指針
return 0;
printf(“\n”);
ElePrint(ptr-sno);
ElePrint(ptr-sname);
ElePrint(ptr-age);
ElePrint(ptr-sex);
ElePrint(ptr-depart);
ElePrint(ptr-classs);
ElePrint(ptr-grade);
return 1;
}
void print() //輸出全部學生信息
{
student *ptr=head;
printf(“\n學號 姓名 年齡 性別 系 班 年級 “);
while(ptr)
{
LinePrint(ptr);
ptr=ptr-next;
}
printf(“\n”);
return;
}
void search()//查詢模塊
{
int method;//查詢方式
char no[max],name[max],departm[max],clss[max],grades[max]; //用來接收查詢關鍵字
while(1)
{
printf(“\n請選擇查詢方式”);
printf(“\n1.按學號查詢”);
printf(“\n2.按姓名查詢”);
printf(“\n3.按所在系查詢”);
printf(“\n4.按所在班級查詢”);
printf(“\n5.按所在年級查詢”);
printf(“\n6.打印全部學生信息”);
printf(“\n7.返回主菜單\n”);
scanf(“%d”,method);
student *p=head,*temp;
switch(method)
{
case 1:
printf(“\n請輸入要查詢的學號:”);
scanf(“%s”,no);
while(p)
{
if(!strcmp(p-sno,no))
break;
else
{
temp=p;
p=p-next;
}
}
printf(“\n學號 姓名 年齡 性別 系 班 年級 “);
LinePrint(p);
break;
case 2:
printf(“\n請輸入要查詢的姓名:”);
scanf(“%s”,name);
printf(“\n學號 姓名 年齡 性別 系 班 年級 “);
while(p)
{
if(!strcmp(p-sname,name))
LinePrint(p);
p=p-next;
}
break;
case 3:
printf(“\n請輸入學生所在的系:”);
scanf(“%s”,departm);
printf(“\n學號 姓名 年齡 性別 系 班 年級 “);
while(p)
{
if(!strcmp(p-depart,departm))
LinePrint(p);
p=p-next;
}
break;
case 4:
printf(“\n請輸入學生所在的班:”);
scanf(“%s”,clss);
printf(“\n請輸入學生所在的年級:”);
scanf(“%s”,grades);
printf(“\n學號 姓名 年齡 性別 系 班 年級 “);
while(p)
{
if(!strcmp(p-classs,clss)!strcmp(p-grade,grades))
LinePrint(p);
p=p-next;
}
break;
case 5:
printf(“\n請輸入學生所在的年級:”);
scanf(“%s”,grades);
printf(“\n學號 姓名 年齡 性別 系 班 年級 “);
while(p)
{
if(!strcmp(p-grade,grades))
LinePrint(p);
p=p-next;
}
break;
case 6:
print();
break;
case 7:
return;
default:
printf(“很抱歉,暫無此查詢方式!”);
break;
}
}
}
void modify()//修改學生信息
{
char num[max];
student *p=head;
printf(“\n請輸入要修改的學生的學號:”);
scanf(“%s”,num);
while(p)
{
if(!strcmp(p-sno,num))
break;
else
p=p-next;
}
if(p==NULL)
{
printf(“\n錯誤:沒有此學生的信息!\n”);
return;
}
LinePrint(p);
printf(“\n請輸入要修改的該學生的信息:”);
printf(“\n1.姓名”);
printf(“\n2.性別”);
printf(“\n3.年齡”);
printf(“\n4.所在的系”);
printf(“\n5.所在的班”);
printf(“\n6.所在的年級”);
char name1[max],sex1[max],age1[max],depart1[max],class1[max],grade1[max];
int select;
fflush(stdin);
scanf(“%d”,select);
printf(“\n請輸入新的信息:”);
switch(select)
{
case 1:
scanf(“%s”,name1);
strcpy(p-sname,name1);
break;
case 2:
scanf(“%s”,sex1);
strcpy(p-sex,sex1);
break;
case 3:
scanf(“%s”,age1);
strcpy(p-age,age1);
break;
case 4:
scanf(“%s”,depart1);
strcpy(p-depart,depart1);
break;
case 5:
scanf(“%s”,class1);
strcpy(p-classs,class1);
break;
case 6:
scanf(“%s”,grade1);
strcpy(p-grade,grade1);
break;
default:
printf(“\nError!”);
break;
}
LinePrint(p);
return;
}
void del()// 刪除某學生的信息
{
student *p=head,*temp=head,*s;
char num1[max];
printf(“\n請輸入要刪除的學生的學號:”);
scanf(“%s”,num1);
while(p)//查找該學生所在的結點
{
if(!strcmp(p-sno,num1))
break;
else
{
temp=p;
p=p-next;
}
}//while
if(!p)
{
printf(“\n不存在此學生的信息.”);
return;
}
LinePrint(p);//輸出該學生的信息
printf(“\n請問真的要刪除該學生的信息嗎?(Y/N)”);
char ch;
fflush(stdin);
scanf(“%c”,ch);
if(ch==’Y’||ch==’y’)
{
s=p-next;
temp-next=s;
free(p);
printf(“\n已經刪除該學生的信息.”);
}
return;
}
void sort() //排序模塊。將學生記錄按學號從小到大排列。用起泡排序算法實現
{
student *ptr,*s=head,*p;
int count=0,count1;
while(s)//統計鏈表結點個數
{
count++;
s=s-next;
}
for(int i=1;icount;i++)
{
ptr=head;
p=NULL;
count1=count-i; //用來控制每輪起泡排序的終點,即每次把學號最小的結點移到倒數第i個結點
while(ptrptr-next(count1–))
{
if(strcmp(ptr-sno,ptr-next-sno)0)
{
s=ptr-next;
ptr-next=s-next;
if(p==NULL) //ptr處於隊頭時
head=s;
else
p-next=s;
s-next=ptr;
p=s;
}
else
{
ptr=ptr-next;
if(p==NULL) //ptr處於隊頭時
p=head;
else
p=p-next;
}
}
}
return;
}
void quit()
{
char ch;
printf(“\n真的要退出?(Y/N)”);
fflush(stdin);
scanf(“%c”,ch);
if(ch==’Y’||ch==’y’)
exit(0);
return;
}
int main()
{
int option;
printf(“\nCopyright@2005 KongXinCai All rights reserved.”);
printf(“\n歡迎使用學生信息管理系統!\n”);
//登錄模塊
int icheck=0;
while(icheck3)
{
if(LogOn()==0)
icheck++;
else
break;
}
if(icheck==3)
{
printf(“\n連續登錄三次不成功,退出!”);
exit(0);
}
//系統界面
while(1)
{
printf(“\n\n請選擇需要的服務:”);
printf(“\n1.註冊”);
printf(“\n2.查詢”);
printf(“\n3.修改”);
printf(“\n4.刪除”);
printf(“\n5.排序”);
printf(“\n7.求平均”);
printf(“\n6.退出\n”);
scanf(“%d”,option);
switch(option)
{
case 1:
regist();
break;
case 2:
search();
break;
case 3:
modify();
break;
case 4:
del();
break;
case 5:
sort();
break;
case 6:
quit();
break;
}
}
return 0;
}
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
#includemalloc.h
#includestring.h
typedef struct Student
{
int no;
char name[10];
float score[3]; //three scores
float average; //average score
struct Student *next;
}Student;
void Initial(Student *p)
{
p=(Student*)malloc(sizeof(Student));//the head of the linklist
p-next=NULL;
}
void Input(Student *p)
{
Student *stu=(Student*)malloc(sizeof(Student));
printf(“學號:”); scanf(“%d”,stu-no);
printf(“姓名:”); scanf(“%s”,stu-name);
printf(“成績1:”); scanf(“%f”,stu-score[0]);
printf(“成績2:”); scanf(“%f”,stu-score[1]);
printf(“成績3:”); scanf(“%f”,stu-score[2]);
stu-average=(stu-score[0]+stu-score[1]+stu-score[2])/3;
stu-next=NULL;
Student *ps=(Student*)malloc(sizeof(Student));
ps=p;
while(ps-next)
ps=ps-next;
ps-next=stu;
//free(ps);
}
void Output(Student *p)
{
Student *ps=(Student*)malloc(sizeof(Student));
ps=p-next;
printf(“學號\t姓名\t成績1\t成績2\t成績3\t平均分\n”);
while(ps!=NULL)
{
printf(“%d\t”,ps-no);
printf(“%s\t”,ps-name);
printf(“%.1f\t”,ps-score[0]);
printf(“%.1f\t”,ps-score[1]);
printf(“%.1f\t”,ps-score[2]);
printf(“%.1f\t\n”,ps-average);
ps=ps-next;
}
free(ps);
}
void Find(Student *p)
{
Student *ps=(Student*)malloc(sizeof(Student));
ps=p-next;
char name[10];
printf(“輸入要查詢的學生姓名:”);
scanf(“%s”,name);
while(strcmp(ps-name,name)!=0) //相同時為0
ps=ps-next;
printf(“學號\t姓名\t成績1\t成績2\t成績3\t平均分\n”);
printf(“%d\t”,ps-no);
printf(“%s\t”,ps-name);
printf(“%.1f\t”,ps-score[0]);
printf(“%.1f\t”,ps-score[1]);
printf(“%.1f\t”,ps-score[2]);
printf(“%.1f\t\n”,ps-average);
}
void swap(Student *p1, Student *p2) //swap two nodes for sorting
{
Student *temp=(Student*)malloc(sizeof(Student));
temp-no=p1-no;
strcpy(temp-name,p1-name);
temp-score[0]=p1-score[0];
temp-score[1]=p1-score[1];
temp-score[2]=p1-score[2];
temp-average=p1-average;
p1-no=p2-no;
strcpy(p1-name,p2-name);
p1-score[0]=p2-score[0];
p1-score[1]=p2-score[1];
p1-score[2]=p2-score[2];
p1-average=p2-average;
p2-no=temp-no;
strcpy(p2-name,temp-name);
p2-score[0]=temp-score[0];
p2-score[1]=temp-score[1];
p2-score[2]=temp-score[2];
p2-average=temp-average;
free(temp);
}
void Sort(Student *p) //sort by average
{
Student *p1=(Student*)malloc(sizeof(Student));
Student *p2=(Student*)malloc(sizeof(Student));
p1=p-next;
while(p1)
{
float avg=p1-average;
p2=p1-next;
while(p2)
{
if( avg (p2-average))
{
swap(p1,p2);
avg=p2-average;
}
p2=p2-next;
}
p1=p1-next;
}
}
void Insert(Student *p)
{
printf(“按平均分高低插入數據!\n”);
Student *stu=(Student*)malloc(sizeof(Student));//the data being inserted
printf(“學號:”); scanf(“%d”,stu-no);
printf(“姓名:”); scanf(“%s”,stu-name);
printf(“成績1:”); scanf(“%f”,stu-score[0]);
printf(“成績2:”); scanf(“%f”,stu-score[1]);
printf(“成績3:”); scanf(“%f”,stu-score[2]);
stu-average=(stu-score[0]+stu-score[1]+stu-score[2])/3;
stu-next=NULL;
Student *p1=(Student*)malloc(sizeof(Student));//temp
p1=p;
while(p1-next ((p1-next)-average) (stu-average))
p1=p1-next;
//p1=p1-next;
stu-next=p1-next;
p1-next=stu;
}
void Menu(Student *p)
{
int select;
printf(“您好,歡迎使用學生成績管理系統!\n”);
printf(“1:輸入學生成績數據\n2:輸出全部學生信息\n3:按姓名查找學生記錄\n4:按平均成績進行排序\n5:按平均成績高低插入數據\n6:退出\n”);
scanf(“%d”,select);
while(select=6 select0)
{
switch(select)
{
case 1: Input(p);break;
case 2: Output(p);break;
case 3: Find(p); break;
case 4: Sort(p); break;
case 5: Insert(p); break;
case 6: printf(“成功退出,歡迎再次使用!\n”); return ; break;
}
printf(“1:輸入學生成績數據\n2:輸出全部學生信息\n3:按姓名查找學生記錄\n4:按平均成績進行排序\n5:按平均成績高低插入數據\n6:退出\n”);
scanf(“%d”,select);
}
}
int main()
{
Student *head=(Student*)malloc(sizeof(Student));
Menu(head);
}
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”);
}
這是我以前的一個程序,你改改吧,應該很好改
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/237829.html