大学计算机C语言实习报告.docx

上传人:b****5 文档编号:8308782 上传时间:2023-01-30 格式:DOCX 页数:36 大小:744.64KB
下载 相关 举报
大学计算机C语言实习报告.docx_第1页
第1页 / 共36页
大学计算机C语言实习报告.docx_第2页
第2页 / 共36页
大学计算机C语言实习报告.docx_第3页
第3页 / 共36页
大学计算机C语言实习报告.docx_第4页
第4页 / 共36页
大学计算机C语言实习报告.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

大学计算机C语言实习报告.docx

《大学计算机C语言实习报告.docx》由会员分享,可在线阅读,更多相关《大学计算机C语言实习报告.docx(36页珍藏版)》请在冰豆网上搜索。

大学计算机C语言实习报告.docx

大学计算机C语言实习报告

答辩记录

运行情况

原始数据

成绩排名

平均分和分数段统计

不及格统计

优秀生统计

优秀学生干部统计

破译密码

组成大字符

回答问题

1.

2.

3.

4.

5.

附一

 

计算机上机实习

 

实习报告

 

班级

学号

姓名

指导教师

完成日期

 

目录

一设计分析与说明…………………………………………………………3

二课程设计框图…………………………………………………………5

三课程设计的任务与数据…………………………………………………6

四程序清单………………………………………………………………7

五运行结果…………………………………………………………………23

六总结………………………………………………………………………25

 

 

一设计分析和说明

第一步原始数据(建立三个数据文件)

1.文件1用来存放学生成绩

2.文件2用来存放学生信息

3.文件3用来存放课程学分

4.文件4用来存放密码文件内容。

第二步程序设计思想

1.定义三个结构体数组用来存放文件1文件2和文件3的内容。

2.编写1个函数对应3个应实现的功能:

学生成绩管理、破译密码和组成大字符。

3.同时编写section1()、section2()、section3(),实现相应的功能。

一.在section1()中调用以下几个函数实现各个功能。

1.编写第一个函数function1_1()用fscanf读取文件1(xinxi1.txt)学生成绩,文件2(xinxi2.txt)学生信息和文件3(xinxi3.txt)课程学分,并计算平均分和名次,开始令每名同学的名次为1,后逐个和其他同学比较,若平均分低于其他,则自加1,同时创建txt文本文件(学生成绩表.txt)用fprintf写入数据,包括各个学生的学号、姓名、性别、各科成绩、加权平均值、名次。

2.编写第二个函数function1_2()读取文件1(xinxi1.txt)和文件3(xinxi3.txt),计算平均分和名次,算法同1,同时创建txt文本文件(个人分数及名次.txt)写入数据,包括各个学生的学号、姓名、各科成绩、加权平均值、名次。

3.编写第三个函数function1_3()计算课程平均分和分数段人数(60分以下;60~69;70~79;80~89;90),将学生每门课的成绩相加除以人数,便得到该门课的平均分;定义5个整型变量,分别对应5个分数段,皆赋初值为0,后每个学生这门课的分数满足分数段,则自加1,便得到这门课的分数段人数,同时创建txt文本文件(分数段统计表.txt)和(课程平均分.txt)写入数据。

(N代表学生人数)

4.编写第四个函数function1_4()计算男生和女生课程平均成绩,先判断性别,若为男,则计算男生的课程平均分;为女,则计算女生的课程平均分,同时创建文件(男生和女生每门课的平均分.txt)写入数据。

5.编写第五个函数function1_5()统计不及格情况,先用每个学生每门课的成绩与60分比较,若小于60,则输出该学生的相关信息,同时创建txt文本文件(不及格学生名单.txt)写入内容,包括各个学生的学号、姓名、性别、不及格课程、课程学分,成绩。

6.编写第六个函数function1_6()统计优秀学生名单,若学生满足其一:

平均分大于等于90;名次在本班前3;平均分大于等于85,但至少有一门课的成绩大于等于95;平均分大于等于85,但至少有二门课的成绩大于等于90。

则输出学生的相关信息,同时创建txt文本文件(优秀学生名单及成绩.txt)写入数据(含学号、姓名、性别、各课程学分、平均分、名次)。

7.编写第七个函数function1_7()屏幕显示优秀学生干部,先判断学生的职务,若不为无,学生若满足其一:

平均分大于等于85;名次在本班前20%;平均分大于等于80,但至少有一门课的成绩大于等于95;平均分大于等于80,但至少有二门课的成绩大于等于90。

则输出该学生的相关信息,同时创建txt文本文件(优秀学生干部名单及成绩.txt)写入数据(含学号、姓名、性别、职务、各课程学分、平均分、名次)。

二.在section2()中调用function2_1()函数实现破译密码功能,将密码文件写入xinxi4.txt

中,定义一个数组来存放所有100-200间的素数,然后将密码文件中的字母每3个分别减去一个素数对应的百十个位,超出范围加上26.得到所有可能的原文件写入创建的文本文件(wenjian.txt)中。

三.在section3()中调用function3_1()函数来实现输出大字符功能,先定义一个三维数组c[10][7][7],10代表0-9共10个数字,两个7,一个代表7行,一个代表7列,先将c[0][7][7]到c[9][7][7]的10种情况定义出来,以大字符的形式显示在屏幕上,通过键盘输入一个数来显示该数字的大字符,若输入的是0-9之间的数直接输出c[][7][7],若输入的是两位数,将其(/10)得到十位数,(%10)得到个位数。

再分别输出各自的大字符。

 

主函数

二.课程设计的框图

Section2()

Section3()

Section1()

函数1

输出学生全部信息

函数2

计算平均分和名次

Function2_1()破译密码

函数3

计算课程平均分和分数段人数

函数4

计算男生和女生课程平均成绩

函数5

统计不及格情况

函数6

统计优秀学生名单

函数7

统计

优秀学生干部

Function3_1()

组成大字符

1.平均分≥85

2.名次本班前20%

3.平均分≥80,至少一门课成绩≥95

4.平均分≥80,至少二门课成绩≥90

1.平均分≥90

2.名次本班前3

3.平均分≥85,至少一门课成绩≥95

4.平均分≥85,至少二门课成绩≥90

 

stu[i].score[j]<60

输出不及格学生相关信息

 

P,Q,R,S,T分别为各课程各分数段的人数,如果满足分数段条件,自增1,

最后得到各课程各分数段人数

N为男生人数时,其值为男生课程平均分

N为女生人数时,其值为女生课程平均分

 

求出每名同学的平均分,起初令每名同学的名次为1,后逐个同其他学生比较,若平均分小于其他同学,则自增1,相同则不变。

依次循环直到确定每名学生的班级名次。

最后输出相关信息。

 

三.课程设计任务与数据

1.原始文件

①用记事本新建一文本文件,文件名为:

“xinxi1”,将本班的M名学生在本学期的N门考试课的成绩(要求用真实的课程名、假想的分数、)输入到这个文件中。

②用记事本新建另一文本文件,文件名为:

“xinxi2”,将本班学生的学号、姓名、年龄、职务输入到这个数据文件中,建议按如下列形式存放:

 

③用记事本新建另一文本文件,文件名为:

“xinxi3”,将本班本学期的N门真实的课程名及其学分输入到这个数据文件中,建议按如下列形式存放:

④.用记事本新建另一文本文件,文件名为:

“xinxi4”,将密码文件放入文件中。

四.源程序清单

#include"math.h"

#include"conio.h"

#include"stdio.h"

#include"string.h"

#include"stdlib.h"

#defineM32

structstudent

{

intnum;

charname[20];

floatscore[5];

floataver;

introw;

intm1;

intm2;

}stu[M];

structstutent

{longnum;

charname[20];

charsex[5];

intage;

charwork[20];

}stu1[M];

structstunent

{intnum;

charname[20];

floatfen;

intP,Q,R,S,L;

}course[5];

function1_1()

{

inti,j;

floatsum,sum1;

FILE*fp,*fp1,*fp2,*fp3;

charstr[100],str1[100],str2[100];

if((fp=fopen("F:

\\cc\\xinxi1.txt","r"))==NULL)

{printf("cannotopenthisfile\n");

exit(0);

}

if((fp2=fopen("F:

\\cc\\xinxi2.txt","r"))==NULL)

{printf("cannotopenthisfile\n");

exit(0);

}

if((fp3=fopen("F:

\\cc\\xinxi3.txt","r"))==NULL)

{printf("cannotopenthisfile\n");

exit(0);

}

if((fp1=fopen("F:

\\学生成绩表.txt","w"))==NULL)

{printf("cannotopenthisfile\n");

exit(0);

}

fgets(str,100,fp);

for(i=0;i

{fscanf(fp,"%d%s",&stu[i].num,stu[i].name);

for(j=0;j<5;j++)

fscanf(fp,"%f",&stu[i].score[j]);}

fgets(str1,100,fp2);

for(i=0;i

{fscanf(fp2,"%d%s%s%d%s",&stu1[i].num,stu1[i].name,stu1[i].sex,&stu1[i].age,stu1[i].work);

}

fgets(str2,150,fp3);

for(j=0;j<5;j++)

fscanf(fp3,"%d%s%f",&course[j].num,course[j].name,&course[j].fen);

sum1=0;

for(j=0;j<5;j++)

sum1+=course[j].fen;/*pingjun*/

for(i=0;i

{sum=0;

for(j=0;j<5;j++)

{sum+=course[j].fen*stu[i].score[j];}

stu[i].aver=sum/sum1;}

for(i=0;i

stu[i].row=1;

for(i=0;i

{for(j=0;j

if(stu[i].aver

stu[i].row++;}

printf("学号姓名性别职务英语数学大学物理机械制图C程序设计平均分名次");

fprintf(fp1,"学号姓名性别职务英语数学大学物理机械制图C程序设计平均分名次");

printf("\n");

fprintf(fp1,"\n");

for(i=0;i

{printf("%-7d%s",stu1[i].num,stu1[i].name);

fprintf(fp1,"%-7d%s",stu1[i].num,stu1[i].name);

if(strlen(stu1[i].name)==4)

{printf("");

fprintf(fp1,"");}

printf("%s%s",stu1[i].sex,stu1[i].work);

fprintf(fp1,"%s%s",stu1[i].sex,stu1[i].work);

if(strlen(stu1[i].work)==2)

{printf("");

fprintf(fp1,"");}

if(strlen(stu1[i].work)==4)

{printf("");

fprintf(fp1,"");}

for(j=0;j<5;j++)

{printf("%10.1f",stu[i].score[j]);

fprintf(fp1,"%10.1f",stu[i].score[j]);}

printf("");

fprintf(fp1,"");

printf("%8.1f%5d",stu[i].aver,stu[i].row);

fprintf(fp1,"%8.2f%5d",stu[i].aver,stu[i].row);

printf("\n");

fprintf(fp1,"\n");

}

fclose(fp);fclose(fp1);fclose(fp2);

getch();

}

function1_2()

{printf("加入计算平均分及名次的程序内容\n");

printf("*********按Enter键继续**********\n");

{inti,j,t;

floatsum,sum1;

FILE*fp,*fp1,*fp7;

charstr[130];

charstr1[150];

if((fp=fopen("F:

\\cc\\xinxi1.txt","r"))==NULL)

{printf("cannotopenthisfile\n");

exit(0);

}

if((fp1=fopen("F:

\\cc\\xinxi3.txt","r"))==NULL)

{printf("cannotopenthisfile\n");

exit(0);}

if((fp7=fopen("F:

\\个人分数及名次.txt","w"))==NULL)

{printf("cannotopenthisfile\n");

exit(0);}

fgets(str,130,fp);

for(i=0;i

{fscanf(fp,"%d%s",&stu[i].num,stu[i].name);

for(j=0;j<5;j++)

fscanf(fp,"%f",&stu[i].score[j]);}

fgets(str1,150,fp1);

for(j=0;j<5;j++)

fscanf(fp1,"%d%s%f",&course[j].num,course[j].name,&course[j].fen);

sum1=0;

for(j=0;j<5;j++)

sum1+=course[j].fen;/*pingjun*/

for(i=0;i

{sum=0;

for(j=0;j<5;j++)

{sum+=course[j].fen*stu[i].score[j];}

stu[i].aver=sum/sum1;}

for(i=0;i

stu[i].row=1;

for(i=0;i

{for(j=0;j

if(stu[i].aver

stu[i].row++;}

printf("学号姓名英语数学大学物理机械制图C程序设计平均分名次\n");

fprintf(fp7,"学号姓名英语数学大学物理机械制图C程序设计平均分名次\n");

for(i=0;i

{printf("%-5d%s",stu[i].num,stu[i].name);

fprintf(fp7,"%-7d%s",stu[i].num,stu[i].name);

if(strlen(stu[i].name)==4)

{printf("");

fprintf(fp7,"");}

if(strlen(stu[i].name)==6)

{printf("");

fprintf(fp7,"");}

for(j=0;j<5;j++)

{printf("%-8.1f",stu[i].score[j]);

fprintf(fp7,"%-10.1f",stu[i].score[j]);}

printf("");

fprintf(fp7,"");

printf("%-6.1f%d",stu[i].aver,stu[i].row);

fprintf(fp7,"%-8.2f%d",stu[i].aver,stu[i].row);

printf("\n");

fprintf(fp7,"\n");

}

fclose(fp);fclose(fp1);fclose(fp7);

getch();}}

function1_3()

{printf("加入计算课程平均分和分数段人数程序内容\n");

printf("*********按Enter键继续**********\n");

{inti,j,c[5][M];

floatsum;

charstr[100];floata[5];

FILE*fp,*fp5,*fp6;

if((fp=fopen("F:

\\cc\\xinxi1.txt","r"))==NULL)

{printf("cannotopenthisfile\n");

exit(0);}

if((fp5=fopen("F:

\\分数段统计表.txt","w"))==NULL)

{printf("cannotopenthisfile\n");

exit(0);}

if((fp6=fopen("F:

\\课程平均分.txt","w"))==NULL)

{printf("cannotopenthisfile\n");

exit(0);

}

fgets(str,100,fp);

for(i=0;i

{fscanf(fp,"%d%s",&stu[i].num,stu[i].name);

for(j=0;j<5;j++)

fscanf(fp,"%f",&stu[i].score[j]);

}

for(j=0;j<5;j++)

{sum=0;

for(i=0;i

{sum+=stu[i].score[j];}

a[j]=sum/M;}

for(j=0;j<5;j++)

{course[j].P=0;course[j].Q=0;course[j].R=0;course[j].S=0;course[j].L=0;}

for(j=0;j<5;j++)

for(i=0;i

{if(stu[i].score[j]>=90)course[j].P++;

elseif(stu[i].score[j]>=80)course[j].Q++;

elseif(stu[i].score[j]>=70)course[j].R++;

elseif(stu[i].score[j]>=60)course[j].S++;

elsecourse[j].L++;}

printf("英语数学大学物理机械制图C程序设计\n");

fprintf(fp6,"英语数学大学物理机械制图C程序设计\n");

for(j=0;j<5;j++)

{if(j==0)printf("课程平均分%-8.2f",a[j]);

elseprintf("%-7.2f",a[j]);

if(j==0)fprintf(fp6,"课程平均分%-8.2f",a[j]);

elsefprintf(fp6,"%-7.2f",a[j]);

}printf("\n");

fprintf(fp6,"\n");

printf("范围英语数学大学物理机械制图C程序设计\n");

fprintf(fp5,"范围英语数学大学物理机械制图C程序设计\n");

printf(">=90%-3d%-5d%-7d%-8d%-7d\n",course[0].P,course[1].P,course[2].P,course[3].P,course[4].P);

fprintf(fp5,">=90%-3d%-5d%-7d%-8d%-7d\n",course[0].P,course[1].P,course[2].P,course[3].P,course[4].P);

printf("80--89%-3d%-5d%-7d%-8d%-7d\n",course[0].Q,course[1].Q,course[2].Q,course[3].Q,course[4].Q);

fprintf(fp5,"80--89%-3d%-5d%-7d%-8d%-7d\n",course[0].Q,course[1].Q,course[2].Q,course[3].Q,course[4].Q);

printf("70--79%-3d%-5d%-7d%-8d%-7d\n",course[0].R,course[1].R,course[2].R,course[3].R,course[4].R);

fprintf(fp5,"70--79%-3d%-5d%-7d%-8d%-7d\n",course[0].R,course[1].R,course[2].R,course[3].R,course[4].R);

printf("60--69%-3d%-5d%-7d%-8d%-7d\n",course[0].S,course[1].S,course[2].S,course[3].S,course[4].S);

fprintf(fp5,"60--69%-3d%-5d%-7d%-8d%-7d\n",course[0].S,course[1].S,course[2].S,course[3].S,course[4].S);

printf("<60%-3d%-5d%-7d%-8d%-3d\n",course[0].L,course[1].L,course[2].L,course[3].L,course[4].L);

fprintf(fp5,"<60%-3d%-5d%-7d%-8d%-3d\n",course[0].L,course[1].L,course[2].L,course[3].L,course[4].L);

fclose(fp);fclose(fp5);fclose(fp6);

getch();

}}

function1_4()

{printf("加入计算男

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 艺术创意

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1