c语言程序设计实习报告程序_c程序设计实习报告1

实习报告 时间:2020-02-28 10:33:02 收藏本文下载本文
【www.daodoc.com - 实习报告】

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语言程序设计实习报告

实习报告题 目: C语言程序设计 所属系、部 : 电气工程学院 班 级: 电子商务131 姓 名:贺道君 学号: 20***5 指 导 教 师: 费 玲 玲2014年6月一、实习目的加深理解C......

C语言程序设计报告

C语言程序设计报告(二)第一章:使用数组和指针统计成绩1.设计题目:假设给定班级各科考试平均成绩的原始资料如下数学:75 物理:80 外语:83 政治:85 体育:86 人数:30 要求统计出全班学......

C语言程序设计上级实习报告01

2、了解C语言基本构成及结构3、简单的C程序二、实验环境(调试程序所使用的软硬件环境)清华同光台式机Windows xp三、实验内容、结果及分析第一章:1.5,1.6,1.71、题目请参照本......

C语言程序设计实习心得

刀豆文库小编为你整合推荐7篇C语言程序设计实习心得,也许这些就是您需要的文章,但愿刀豆文库能带给您一些学习、工作上的帮助。......

C语言程序设计实习心得

C语言程序设计实习心得C语言程序设计实习心得在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实习学习。在这之前,我们已经对c语言这门课程学习了一个学期,对其......

下载c语言程序设计实习报告程序word格式文档
下载c语言程序设计实习报告程序.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

热门文章
点击下载本文