大学计算机C语言实习报告Word格式文档下载.docx

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

大学计算机C语言实习报告Word格式文档下载.docx

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

大学计算机C语言实习报告Word格式文档下载.docx

一设计分析和说明

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

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"

conio.h"

#include"

stdio.h"

string.h"

stdlib.h"

#defineM32

structstudent

{

intnum;

charname[20];

floatscore[5];

floataver;

introw;

intm1;

intm2;

}stu[M];

structstutent

{longnum;

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("

\\cc\\xinxi2.txt"

if((fp3=fopen("

\\cc\\xinxi3.txt"

if((fp1=fopen("

\\学生成绩表.txt"

w"

fgets(str,100,fp);

for(i=0;

i<

M;

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);

{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);

fscanf(fp3,"

%d%s%f"

course[j].num,course[j].name,&

course[j].fen);

sum1=0;

sum1+=course[j].fen;

/*pingjun*/

{sum=0;

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

stu[i].aver=sum/sum1;

i++)/*paiming*/

stu[i].row=1;

{for(j=0;

if(stu[i].aver<

stu[j].aver)

stu[i].row++;

printf("

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

fprintf(fp1,"

\n"

fprintf(fp1,"

%-7d%s"

stu1[i].num,stu1[i].name);

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

{printf("

"

%s%s"

stu1[i].sex,stu1[i].work);

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

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

%10.1f"

stu[i].score[j]);

printf("

%8.1f%5d"

stu[i].aver,stu[i].row);

%8.2f%5d"

fclose(fp);

fclose(fp1);

fclose(fp2);

getch();

function1_2()

加入计算平均分及名次的程序内容\n"

*********按Enter键继续**********\n"

{inti,j,t;

FILE*fp,*fp1,*fp7;

charstr[130];

charstr1[150];

if((fp7=fopen("

\\个人分数及名次.txt"

fgets(str,130,fp);

fgets(str1,150,fp1);

fscanf(fp1,"

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

fprintf(fp7,"

{printf("

%-5d%s"

stu[i].num,stu[i].name);

fprintf(fp7,"

%-7d%s"

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

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

%-8.1f"

%-10.1f"

%-6.1f%d"

%-8.2f%d"

fclose(fp7);

getch();

}}

function1_3()

加入计算课程平均分和分数段人数程序内容\n"

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

floatsum;

charstr[100];

floata[5];

FILE*fp,*fp5,*fp6;

if((fp=fopen("

cannotopenthisfile\n"

exit(0);

if((fp5=fopen("

\\分数段统计表.txt"

if((fp6=fopen("

\\课程平均分.txt"

{sum=0;

for(i=0;

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

a[j]=sum/M;

for(j=0;

{course[j].P=0;

course[j].Q=0;

course[j].R=0;

course[j].S=0;

course[j].L=0;

{if(stu[i].score[j]>

=90)course[j].P++;

elseif(stu[i].score[j]>

=80)course[j].Q++;

=70)course[j].R++;

=60)course[j].S++;

elsecourse[j].L++;

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

fprintf(fp6,"

{if(j==0)printf("

课程平均分%-8.2f"

a[j]);

elseprintf("

%-7.2f"

if(j==0)fprintf(fp6,"

elsefprintf(fp6,"

}printf("

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

fprintf(fp5,"

>

=90%-3d%-5d%-7d%-8d%-7d\n"

course[0].P,course[1].P,course[2].P,course[3].P,course[4].P);

80--89%-3d%-5d%-7d%-8d%-7d\n"

course[0].Q,course[1].Q,course[2].Q,course[3].Q,course[4].Q);

70--79%-3d%-5d%-7d%-8d%-7d\n"

course[0].R,course[1].R,course[2].R,course[3].R,course[4].R);

60--69%-3d%-5d%-7d%-8d%-7d\n"

course[0].S,course[1].S,course[2].S,course[3].S,course[4].S);

<

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);

}}

function1_4()

加入计算男

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

当前位置:首页 > 幼儿教育 > 育儿知识

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

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