C语言实训_c语言实训
C语言实训由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言实训”。
#include #include #include #define N 100
struct student { char claname[40];int num;
char major[40];
char name[30];char cla1[40];int score1;char cla2[40];int score2;char cla3[40];int score3;}stu[N];
void menu();void add();void search();void change();void deleted();void sort();void show();void back();void input();void output();
int main(void){ menu();void add();
void search();
void change();
void deleted();
void sort();
void show();
void back();
void input();void output();return 0;}//需要调用的函数
void menu(){ int n;printf(“nnnnnn”);do{
printf(“
printf(”
*n“);
printf(”
*n“);
printf(”
printf(“
*n”);
************欢迎使用学生信息管理系统************n“);
*
*
功能菜单************************************************n”);
*
printf(“
*
1.添加成绩表信息
*n”);
printf(“
*
2.查询成绩信息
*n”);
printf(“
*
3.修改成绩信息
*n”);
printf(“
*n”);
printf(“
*n”);
printf(“
*n”);
printf(“
*n”);
printf(“
*n”);
printf(“
*n”);
printf(“
*n”);
printf(“
printf(”
*
4.删除信息记录
*
5.排序成绩表信息
*
6.显示成绩表所有信息
*
7.从指定的文件中读入成绩表的信息
*
8.将成绩表的信息写入指定的文件中
*
9.退出学生信息管理系统
*
************************************************nn“);
请输入数字: ”);
scanf(“%d”,&n);switch(n){
case 1:
add();
break;
case 2:
search();
break;
case 3:
change();
break;
case 4:
deleted();
break;
case 5:
sort();
break;
case 6:
show();
break;
case 7:
}
input();
break;
case 8:
output();
break;
case 9:
back();
break;
default: }
printf(“nn抱歉!您的输入有误,请在1到9之间选择!”);}while(n9);int n=2;//全局变量在这里!
void add(){
system(“cls”);int i;char a;for(i=0;i
printf(“nnn请输入学生信息:nnn”);
printf(“请输入班级:”);scanf(“n%s”,stu[i].claname);printf(“请输入姓名:”);scanf(“%s”,stu[i].name);printf(“请输入学号:”);scanf(“n%d”,&stu[i].num);printf(“请输入专业:”);scanf(“n%s”,stu[i].major);printf(“请输入课程1名称:”);scanf(“n%s”,stu[i].cla1);printf(“请输入课程1成绩:”);scanf(“n%d”,&stu[i].score1);printf(“请输入课程2名称:”);
scanf(“n%s”,stu[i].cla2);
printf(“请输入课程2成绩:”);
scanf(“n%d”,&stu[i].score2);printf(“请输入课程3名称:”);scanf(“n%s”,stu[i].cla3);printf(“请输入课程3成绩:”);scanf(“nnn%d”,&stu[i].score3);}
printf(“nn信息添加成功!!nn”);printf(“nn学生的信息如下:nn”);printf(“ntt班级
姓名
学号
专业
课程1 课程1成绩
课程2 课程2成绩
课程3 课程3成绩”);
for(i=0;i
printf(“nntt%st%st%dt%st%st%dt%st%dt%st%d”,stu[i].claname,stu[i].name,stu[i].num,stu[i].major,stu[i].cla1,stu[i].score1,stu[i].cla2,stu[i].score2,stu[i].cla3,stu[i].score3);
} printf(“nn按任意键返回主菜单!n”);getchar();scanf(“%c”,&a);}
menu();void search(){
{ case 1: //按姓名查找 printf(“nn请输入您想要查找的姓名:
”);system(“cls”);int i=0;int choice,s,score;int flag=0;char sname[20];char a;printf(“1.按姓名查找n2.按学号查找n3.查找总成绩相等的学生nn”);printf(“请输入您想要的查找方式(序号):”);scanf(“%d”,&choice);switch(choice)
scanf(“%s”,sname);for(i=0;i
printf(“%s %d %s %d %s %d”,stu[i].cla1,stu[i].score1,stu[i].cla2,stu[i].score2,stu[i].cla3,stu[i].score3);
case 2: //按学号查找 printf(“nn请输入您想要查找的学号:
”);} if(flag==0)//找不到该姓名
printf(“nn您搜索的该生信息不存在,请确认后再重新输入!n”);break;scanf(“%d”,&s);for(i=0;i
if(stu[i].num==s){ flag=1;printf(“nn该学生成绩信息如下:n”);
printf(“%s %s %d %s %d %s %d”,stu[i].name,stu[i].cla1,stu[i].score1,stu[i].cla2,stu[i].score2,stu[i].cla3,stu[i].score3);
case 3: //查找总成绩相等的学生
printf(“nn请输入您想要查找的学生成绩:
”);scanf(“%d”,&score);for(i=0;i
{
flag=1;printf(“nn总成绩相等的学生成绩信息如下:n”);if((stu[i].score1+stu[i].score2+stu[i].score3)==score)}
if(flag==0)//找不到该学号
printf(“nn您搜素的该生信息不存在,请确认后再重新输入!n”);break;printf(“%s %s %d %s %s %d %s %d %s %d”,stu[i].claname,stu[i].name,stu[i].num,stu[i].major,stu[i].cla1,stu[i].score1,stu[i].cla2,stu[i].score2,stu[i].cla3,stu[i].score3);}
}
if(flag==0)printf(“nn没有学生位于该分数,请重新输入!n”);break;default://输入不是1,2,3 printf(“nn您的输入有误!请在1到3之间进行选择!n”);}//这个才是switch的啦~(≧▽≦)/~
printf(“nn按任意键返回主菜单!”);getchar();scanf(“%c”,&a);menu();void change(){ system(“cls”);int i=0,item,n,sco1,sco2,sco3;
char name[30];char smajor[40];char sclaname[40];char a;printf(“请输入需要修改信息的学生学号:”);scanf(“%d”,&n);
for(i=0;i
if(n==stu[i].num)
{
printf(“*--------------------*n”);
printf(“1.修改课程1成绩;n”);
printf(“2.修改课程2成绩;n”);
printf(“3.修改课程3成绩;n”);printf(“4.修改学生的姓名;n”);printf(“5.修改学生的专业;n”);printf(“6.修改学生的班级;n”);
printf(“*--------------------*n”);printf(“nn请输入需要修改的信息(序号):”);scanf(“%d”,&item);
switch(item){ case 1:
printf(“nn请重新输入课程1成绩:
”);scanf(“%d”,&sco1);stu[i].score1=sco1;printf(“n”);break;case 2:
printf(“nn请重新输入课程2成绩:”);scanf(“%d”,&sco2);stu[i].score2=sco2;printf(“n”);break;case 3:
printf(“nn请重新输入课程3成绩:
”);scanf(“%d”,&sco3);stu[i].score3=sco3;printf(“n”);break;case 4:
printf(“nn请重新输入学生姓名:
”);scanf(“%s”,name);strcpy(stu[i].name,name);//将姓名代替 printf(“n”);break;case 5:
printf(“nn请重新输入学生专业:
”);scanf(“%s”,smajor);strcpy(stu[i].major,smajor);printf(“n”);break;case 6:
printf(“nn请重新输入学生班级:
”);scanf(“%s”,sclaname);strcpy(stu[i].claname,sclaname);printf(“n”);break;default: printf(“您的输入有误!请在1到6之间进行选择!”);}//这是switch的 printf(“修改后该学生信息如下:n”);
printf(“ntt班级
姓名
学号
专业
课程1 课程1成绩
课程2 课程2成绩
课程3 课程3成绩”);
printf(“nntt%st%st%dt%st%st%dt%st%dt%st%d”,stu[i].claname,stu[i].name,stu[i].num,stu[i].major,stu[i].cla1,stu[i].score1,stu[i].cla2,stu[i].score2,stu[i].cla3,stu[i].score3);break;
printf(“nnn”);
printf(“nn按任意键返回主菜单!”);getchar();scanf(“%c”,&a);menu();
}//这是if的
if(i==n)printf(“nn无法找到该生信息,请确认后重新输入!”);//找不到学生学号
}//这是void的void deleted(){
for(i=0;i
if(strcmp(stu[i].name,name)==0)//找得到学生姓名
{ flag=1;printf(“请输入需要删除信息的学生姓名:”);scanf(“%s”,name);system(“cls”);int flag=0;int i;char b;char a;char name[30];
printf(“ntt班级
姓名
学号
专业
课程1 课程1成绩
课程2 课程2成绩
课程3 课程3成绩”);
printf(“nntt%st%st%dt%st%st%dt%st%dt%st%d”,stu[i].claname,stu[i].name,stu[i].num,stu[i].major,stu[i].cla1,stu[i].score1,stu[i].cla2,stu[i].score2,stu[i].cla3,stu[i].score3);
if(flag==0)//找不到学生姓名
if(a=='n')printf(“nn已退出!n”);
if(a=='y'){
for(i=0;i
printf(“nn是否要删除该生所有信息?(y or n):”);getchar();
scanf(“%c”,&a);}//这是第二个if的}//这是第一个if的}//这是for的}
printf(“nn该生信息不存在!请确认后重新输入!nn”);printf(“nn请按任意键返回主菜单!n”);getchar();scanf(“%c”,&b);menu();void sort(){
system(“cls”);int i,j;int choice;struct student temp;char a;printf(“nn*--------------------*nn”);printf(“1.按总成绩升序排序nn2.按学号升序排序nn”);printf(“n*--------------------*n”);printf(“nn请输入您想要的排序方式:
”);
scanf(“%d”,&choice);switch(choice){ case 1: for(i=0;i
for(j=i+1;j
if((stu[i].score1+stu[i].score2+stu[i].score3)
{
temp=stu[i];stu[i]= stu[j];stu[j]=temp;}//这是for(j)的printf(“nn按总成绩升序排序后的信息为:n”);for(i=0;i
printf(“nntt班级t姓名t学号t专业t课程1tt课程1成绩t课程2tt课程2成绩t课程3tt课程3成绩”);
printf(“nntt%st%st%dt%st%st%dt%st%dtt%stttt%dnnn”,stu[i].claname,stu[i].name,stu[i].num,stu[i].major,stu[i].cla1,stu[i].score1,stu[i].cla2,stu[i].score2,stu[i].cla3,stu[i].score3);}//这是for排序的 }//这是for(i)的 case 2:
for(i=0;i
break;
for(j=i+1;j
if((stu[i].score1+stu[i].score2+stu[i].score3)
{
temp=stu[i];stu[i]= stu[j];stu[j]=temp;}//这是for(j)的printf(“nn按总成绩升序排序后的信息为:n”);for(i=0;i
printf(“nntt班级t姓名t学号t专业t课程1tt课程1成绩t课程2tt课程2成绩t课程3tt课程3成绩”);
printf(“nntt%st%st%dt%st%st%dt%st%dtt%stttt%dnnn”,stu[i].claname,stu[i].name,stu[i].num,stu[i].major,stu[i].cla1,stu[i].score1,stu[i].cla2,stu[i].score2,stu[i].cla3,stu[i].score3);}//这是for排序的 }//这是for(i)的 }//这是switch的printf(“nn按任意键返回主菜单!n”);getchar();scanf(“%c”,&a);menu();
default:
printf(“nn抱歉!您输入的数据有误,请在1和2之间进行选择!n”);
break;}//这是void的 void show()//这是显示显示显示显示显示 {
system(“cls”);int i;char a;printf(“nn所有学生的信息如下:n”);
printf(“ntt班级
姓名
学号
专业
课程1 课程1成绩
课程2 课程2成绩
课程3 课程3成绩”);
for(i=0;i
printf(“nntt%st%st%dt%st%st%dt%st%dt%st%d”,stu[i].claname,stu[i].name,stu[i].num,stu[i].major,stu[i].cla1,stu[i].score1,stu[i].cla2,stu[i].score2,stu[i].cla3,stu[i].score3);
} } printf(“nn按任意键返回主菜单!n”);getchar();scanf(“%c”,&a);menu();
void input(){
system(“cls”);int i;char a;FILE*fp=fopen(“file1”,“w+”);if(fp==NULL){
} printf(“ntt班级
姓名
学号
专业
课程1 课程1成绩
课程2 课程2成绩
课printf(”文件打开失败!n“);exit(1);程3 课程3成绩”);
fscanf(fp,“nntt%st%st%dt%st%st%dt%st%dt%st%d”,stu[i].claname,stu[i].nfor(i=0;i
}
} fclose(fp);printf(“nn按任意键返回主菜单!”);getchar();scanf(“%c”,&a);menu();void output(){
system(“cls”);int i;char a;FILE*fp=fopen(“file1”,“r”);if(fp==NULL){
} printf(“文件打开失败!n”);exit(1);printf(“ntt班级
姓名
学号
专业
课程1 课程1成绩
课程2 课程2成绩
课程3 课程3成绩”);
fprintf(fp,“nntt%st%st%dt%st%st%dt%st%dt%st%d”,stu[i].claname,stu[i].nfor(i=0;i
}
void back(){ system(“cls”);} printf(“nn按任意键返回主菜单!”);getchar();scanf(“%c”,&a);menu();fclose(fp);
int t;int a;printf(“确定退出学生成绩管理系统请按1,否则按0: ”);scanf(“%d”,&t);if(t==0){ printf(“nnn请输入任意数字返回首页: scanf(”%d“,&a);system(”cls“);menu();} if(t==1){
exit(1);} }
”);