c语言程序设计实习报告程序由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c程序设计实习报告1”。
#include “stdio.h” /*定义学生结构体*/ struct Student {
char ID[20];
char Name[20];
float Mark1;/*计算机*/
float Mark2;/*英语*/
float Mark3;/*数学*/
float Zongfen;/*总分*/
float Average;};/*平均分*/ /*声明学生数组及学生数量*/ struct Student students[2000];int num=0;/*求总分*/ float Zong(struct Student stu){ return(stu.Mark1+stu.Mark2+stu.Mark3);} /*求平均值*/ float Avg(struct Student stu){return(stu.Mark1+stu.Mark2+stu.Mark3)/3;} /*通过学号返回数组下标*/ int Student_SearchByIndex(char id[]){
int i;
for(i=0;i
int i;
for(i=0;i
{if(strcmp(students[i].Name,name)==0)
{return i;}}
return-1;}
/*通过学号返回数组下标*/ int Student_SearchID(char id[]){
int i;
for(i=0;i
{if(strcmp(students[i].ID,id)==0)
{return i;}}
return-1;} /*显示单条学生记录*/ void Student_DisplaySingle(int index){printf(“%10s%10s%8s%8s%8s%8s%10sn”,“学号”,“姓名”,“计算机”,“英语”,“数学”,“总分”,“平均成绩”);printf(“------------------------------n”);printf(“%10s%10s%8.0f%8.0f%8.0f%8.0f%10.2fn”,students[index].ID,students[index].Name, students[index].Mark1,students[index].Mark2,students[index].Mark3,students[index].Zongfen,students[index].Average);}void Student_DisplaySingle1(int index){printf(“------------------------------n”);printf(“%10s%10s%8.0f%8.0f%8.0f%8.0f%10.2fn”,students[index].ID,students[index].Name, students[index].Mark1,students[index].Mark2,students[index].Mark3,students[index].Zongfen,students[index].Average);} /*插入学生信息*/ void Student_Insert(){while(1){printf(“请输入学号:”);scanf(“%s”,&students[num].ID);getchar();printf(“请输入姓名:”);scanf(“%s”,&students[num].Name);getchar();printf(“请输入计算机成绩:”);scanf(“%f”,&students[num].Mark1);getchar();printf(“请输入英语成绩:”);scanf(“%f”,&students[num].Mark2);getchar();printf(“请输入数学成绩:”);scanf(“%f”,&students[num].Mark3);getchar();
students[num].Average=Avg(students[num]);
students[num].Zongfen=Zong(students[num]);
num++;
printf(“是否继续?(y/n)”);
if(getchar()=='n'){break;} }} void exit();/*修改学生信息*/ void Student_Modify(){
float mark1,mark2,mark3;
while(1)
{
char id[20];
int index;
printf(“请输入要修改的学生的学号:”);
scanf(“%s”,&id);
getchar();
index=Student_SearchByIndex(id);
if(index==-1)
{
printf(“学生不存在!n”);
}
else
{
printf(“你要修改的学生信息为:n”);
Student_DisplaySingle(index);
printf(“--请输入新值--n”);
printf(“请输入学号:”);
scanf(“%s”,&students[index].ID);
getchar();
printf(“请输入姓名:”);
scanf(“%s”,&students[index].Name);
getchar();
printf(“请输入成绩:”);
scanf(“%f”,&students[index].Mark1);
getchar();
printf(“请输入成绩:”);
scanf(“%f”,&students[index].Mark2);
getchar();
printf(“请输入成绩:”);
scanf(“%f”,&students[index].Mark3);
getchar();
students[index].Zongfen=Zong(students[index]);
students[index].Average=Avg(students[index]);
printf(“是否继续?(y/n)”);
if(getchar()=='n')
{
break;
}
} } /*删除学生信息*/
void Student_Delete(){
int i;
while(1)
{
char id[20];
int index;
printf(“请输入要删除的学生的学号:”);
scanf(“%s”,&id);
}
getchar();
index=Student_SearchByIndex(id);
if(index==-1)
{
printf(“学生不存在!n”);
}
else
{
printf(“你要删除的学生信息为:n”);
Student_DisplaySingle(index);
printf(“是否真的要删除?(y/n)”);
if(getchar()=='y')
{
for(i=index;i
{
students[i]=students[i+1];
}
num--;
}
getchar();
}
printf(“是否继续?(y/n)”);
if(getchar()=='n')
{
break;
}
} } /*按姓名或学号查询*/ void Student_Select(){
int sel;
printf(“1--------------------按姓名查询n”);
printf(“2--------------------按学号查询n”);
scanf(“%d”,&sel);
if(sel==2){
while(1)
{
char id[20];
int index;
printf(“请输入要查询的学生的学号:”);
scanf(“%s”,&id);
getchar();
index=Student_SearchID(id);
if(index==-1)
{
printf(“学生不存在!n”);
}
else
{
printf(“你要查询的学生信息为:n”);
Student_DisplaySingle(index);
}
printf(“是否继续?(y/n)”);
if(getchar()=='n')
{
break;
}
}}else if(sel==1)
{while(1)
{
char name[20];
int index;
printf(“请输入要查询的学生的姓名:”);
scanf(“%s”,&name);
getchar();
index=Student_SearchByName(name);
if(index==-1)
{
printf(“学生不存在!n”);
}
else
{
printf(“你要查询的学生信息为:n”);
Student_DisplaySingle(index);
}
printf(“是否继续?(y/n)”);
if(getchar()=='n')
{
break;
}
}}
else printf(“信息错误!n”);} /*排序*/ void Student_SortByAverage(){
int a,sel;
printf(“1--------------------按学号排序n”);
printf(“2--------------------按姓名排序n”);
printf(“3--------------------按计算机排序n”);
printf(“4--------------------按英语排序n”);
printf(“5--------------------按数学排序n”);
printf(“6--------------------按总分排序n”);
printf(“7--------------------按平均分排序n”);
scanf(“%d”,&sel);
if(sel==1)
{int i,j;
struct Student tmp;
for(i=0;i
{
for(j=1;j
{
if(strcmp(students[j-1].ID,students[j].ID)>0)
{
tmp=students[j-1];
students[j-1]=students[j];
students[j]=tmp;
}
}
}}
else if(sel==2)
{int i,j;
struct Student tmp;
for(i=0;i
{
for(j=1;j
{
if(strcmp(students[j-1].Name,students[j].Name)>0)
{
tmp=students[j-1];
students[j-1]=students[j];
students[j]=tmp;
}
}
}}
else if(sel==3)
{int i,j;
struct Student tmp;
for(i=0;i
{
for(j=1;j
{
if(students[j-1].Mark1>students[j].Mark1)
{
tmp=students[j-1];
students[j-1]=students[j];
students[j]=tmp;
}
}
}}
else if(sel==4)
{int i,j;
struct Student tmp;
for(i=0;i
{
for(j=1;j
{
if(students[j-1].Mark2>students[j].Mark2)
{
tmp=students[j-1];
students[j-1]=students[j];
students[j]=tmp;
}
}
}}
else if(sel==5)
{int i,j;
struct Student tmp;
for(i=0;i
{
for(j=1;j
{
if(students[j-1].Mark3>students[j].Mark3)
{
tmp=students[j-1];
students[j-1]=students[j];
students[j]=tmp;
}
}
}}
else if(sel==6)
{int i,j;
struct Student tmp;
for(i=0;i
{
for(j=1;j
{
if(students[j-1].Zongfen>students[j].Zongfen)
{
tmp=students[j-1];
students[j-1]=students[j];
students[j]=tmp;
}
}
}}
else if(sel==7)
{int i,j;
struct Student tmp;
for(i=0;i
{
for(j=1;j
{
if(students[j-1].Average>students[j].Average)
{
tmp=students[j-1];
students[j-1]=students[j];
students[j]=tmp;
}
}
}}
else printf(“信息错误!n”);} /*显示学生信息*/ void Student_Display(){
int i;
printf(“%10s%10s%8s%8s%8s%8s%10sn”,“学号”,“姓名”,“计算机”,“英语”,“数学”,“总分”,“平均成绩”);
printf(“------------------------------n”);
for(i=0;i
{
printf(“%10s%10s%8.0f%8.0f%8.0f%8.0f%10.2fn”,students[i].ID,students[i].Name,students[i].Mark1,students[i].Mark2,students[i].Mark3,students[i].Zongfen,students[i].Average);
} } /*将学生信息从文件读出*/ void IO_ReadInfo(){
FILE *fp;
int i;
if((fp=fopen(“Database.txt”,“rb”))==NULL)
{
printf(“不能打开文件!n”);
return;
}
if(fread(&num,sizeof(int),1,fp)!=1)
{
num=-1;
}
else
{
for(i=0;i
{
fread(&students[i],sizeof(struct Student),1,fp);
}
}
fclose(fp);} /*将学生信息写入文件*/ void IO_WriteInfo(){
FILE *fp;
int i;
if((fp=fopen(“Database.txt”,“wb”))==NULL)
{
printf(“不能打开文件!n”);
return;
}
if(fwrite(&num,sizeof(int),1,fp)!=1)
{
printf(“写入文件错误!n”);
}
for(i=0;i
{
if(fwrite(&students[i],sizeof(struct Student),1,fp)!=1)
{
printf(“写入文件错误!n”);
}
}
fclose(fp);} /*统计不同分数段的学生*/ void Student_TJ(){
while(1)
{
int a,sel;
float m,n;
printf(“1--------------------按计算机统计不同分数段的学生n”);
printf(“2--------------------按英语统计不同分数段的学生n”);
printf(“3--------------------按数学统计不同分数段的学生n”);
printf(“4--------------------按总分统计不同分数段的学生n”);
printf(“5--------------------按平均分统计不同分数段的学生n”);
scanf(“%d”,&sel);
printf(“输入所需查询的分数段[m,n]”);
scanf(“%f%f”,&m,&n);
printf(“%10s%10s%8s%8s%8s%8s%10sn”,“学号”,“姓名”,“计算机”,“英语”,“数学”,“总分”,“平均成绩”);
if(sel==1)
{int j;
for(j=0;j
{
if(students[j].Mark1>=m&&students[j].Mark1
Student_DisplaySingle1(j);
}}
else if(sel==2)
{int j;
for(j=0;j
{
if(students[j].Mark2>=m&&students[j].Mark2
Student_DisplaySingle1(j);
}}
else if(sel==3)
{int j;
for(j=0;j
{
if(students[j].Mark3>=m&&students[j].Mark3
Student_DisplaySingle1(j);
}}else if(sel==4)
{int j;
for(j=0;j
{
if(students[j].Zongfen>=m&&students[j].Zongfen
Student_DisplaySingle1(j);
}}else if(sel==5)
{int j;
for(j=0;j
{
if(students[j].Average>=m&&students[j].Average
Student_DisplaySingle1(j);
}}
else printf(“信息错误!n”);
printf(“是否继续?(y/n)”);
a=getchar();
if(getchar()=='n'){break;} } } /*主程序*/ main(){ int choice;
IO_ReadInfo();
fflush(stdin);while(1)
{ /*主菜单*/ 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(“
*
9.退出
*n”);printf(“
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ n”);printf(“
请选择(1-9):”);scanf(“%d”,&choice);getchar();switch(choice){ case 1:Student_Insert();break;case 2:Student_Insert();break;case 3:Student_Modify();break;case 4:Student_Delete();break;case 5:Student_Select();break;case 6:Student_SortByAverage();Student_Display();break;case 7:Student_TJ();break;case 8:Student_Display();break;} IO_WriteInfo();
} }
实习报告题 目: C语言程序设计 所属系、部 : 电气工程学院 班 级: 电子商务131 姓 名:贺道君 学号: 20***5 指 导 教 师: 费 玲 玲2014年6月一、实习目的加深理解C......
C语言程序设计报告(二)第一章:使用数组和指针统计成绩1.设计题目:假设给定班级各科考试平均成绩的原始资料如下数学:75 物理:80 外语:83 政治:85 体育:86 人数:30 要求统计出全班学......
2、了解C语言基本构成及结构3、简单的C程序二、实验环境(调试程序所使用的软硬件环境)清华同光台式机Windows xp三、实验内容、结果及分析第一章:1.5,1.6,1.71、题目请参照本......
刀豆文库小编为你整合推荐7篇C语言程序设计实习心得,也许这些就是您需要的文章,但愿刀豆文库能带给您一些学习、工作上的帮助。......
C语言程序设计实习心得C语言程序设计实习心得在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实习学习。在这之前,我们已经对c语言这门课程学习了一个学期,对其......