c语言程序上机实习报告Word格式.docx
《c语言程序上机实习报告Word格式.docx》由会员分享,可在线阅读,更多相关《c语言程序上机实习报告Word格式.docx(40页珍藏版)》请在冰豆网上搜索。
完成日期2011/12/29
一、分析设计与说明
分别建立两个数据文件
文件1(bjcj.txt)用于存放学生成绩;
文件2(kcxf.txt)用于存放课程学分;
文件3(xsxx、txt)用于存放学生信息。
程序设计思想
(1)学生成绩管理系统
1读入原始数据并显示(将其读入另外的“grcj.txt”中);
2编写函数用于计算平均分及名次(将其读入另外的”bjnpm.txt”中);
每个学生各科分数乘以相应的学分并相加除以学分总和;
先令每个学生的名次都
是1,在把一个学生的加权平均分与其他的所有学生的进行比较,遇到一个比
该学生平均分高的,该学生的名次加1。
循环依次得出全班人的名次;
并将这种
结果输出到文本文件bjnpm.txt
3编写函数计算分数段人数(将其读入另外的”gkpjf.txt”中);
先令每一个分数段(>
=90;
>
=80;
=70;
=60;
<
60)的人数都是0,然后利用循环结
构,遇到一个在某个分数段的成绩,那个分数段的计数变量加1,最后可得每门
科目每个分数段人数;
并将这种结果输出到文本文件gkpjf.txt
4利用循环结构,将所有人的同一科成绩相加,再除以总人数,课程平均.txt中;
编写函数统计不及格情况(将其读入另外的”bjgxs.txt”中);
5利用循环,将每个人的各科成绩和60相比较,若小于60,则输出名单(学号、
姓名、不及格课程名称、课程学分及成绩)结果存放在文本文件:
bujige.txt
6编写函数输出优秀学生(将其读入另外的”优秀干部.txt”中);
1.平均分≥90,2.名次在本班前三名,3.平均分≥85,并且至少有一门课的成绩为100分,4平均分≥85,并且至少有二门课的成绩为≥90分。
将上述条件作为逻辑或的判别式,找到符合条件的所有学生,输出并同时存放到优秀干部.txt中;
程序实现功能
1)学生成绩管理系统
1.班级成绩单查看见文件(bjcj.txt);
2.课程学分详情见(kcxf.txt);
3.班级成绩排名表单(bjnpm.txt);
4.成绩分数分布段见(gkpjf.txt)
5.课程平均分见(bjxx.txt)
6.不及格学生的名单(bjgxs.txt);
7.优秀生的名单(优秀干部.txt);
8.退出。
(3).程序框
一.主菜单功能模块图
二.一级菜单结构图
9.返回上级菜单
3.计算分数段人数
作分布图
返回上一级菜单
大物
C语言
制图
英语
数学
四.源程序清单
#include<
stdio.h>
#include<
stdlib.h>
math.h>
string.h>
#defineM30
structstudent
{longnum;
charname[20];
floatscore[5];
floataver;
introw;
intp1;
intp2;
}stu[M];
structchengji
{intnum;
floatfen;
}course[5];
structinforma
charsex[3];
intage;
charpoisition[20];
}infor[M];
structfenduan
{intp;
intq;
intr;
ints;
intl;
}count[5];
voidmain()
{intsection1();
intsection2();
intsection3();
/*主菜单*/
charch1;
system("
graftabl936"
);
do{clrscr();
/*清屏*/
printf("
\n\n\n\n\n\n\n\n\n"
**************C语言程序设计上机实习****************\n"
---------------------------------------------------\n\n"
1学生成绩管理\n\n"
2破译密码\n\n"
3组成大字符\n\n"
4退出\n\n"
输入选择序号\n"
while((ch1=getchar(),ch1!
='
1'
&
ch1!
2'
&
ch1!
3'
4'
));
switch(ch1)
{case'
:
section1();
break;
case'
section2();
case'
section3();
exit(0);
}
}while
(1);
intsection1()/*第1个2级菜单*/
{charch21;
voidfunction1_1();
voidfunction1_2();
voidfunction1_3();
voidfunction1_4();
voidfunction1_5();
voidfunction1_6();
voidfunction1_7();
\n\n\n\n\n\n\n\n\n\n"
********************学生成绩管理系统**********************\n"
------------------------------------------------------------------\n\n"
1.读入原始数据并显示2.计算平均分及名次\n\n"
3.输出课程平均分和各分数段人数4输出男生和女生课程平均成绩\n\n"
5.统计不及格情况6.输出优秀学生\n\n"
7.输出优秀学生干部8.返回上级菜单\n\n"
while((ch21=getchar(),ch21!
ch21!
5'
6'
7'
8'
));
switch(ch21)
function1_1();
function1_2();
function1_3();
function1_4();
function1_5();
function1_6();
function1_7();
return(0);
}
intsection2()/*第2个2级菜单*/
{charch22;
voidfunction2_1();
printf("
*****************破译密码****************\n"
----------------------------------------------------------------\n"
1.运行\n\n"
2.返回上级菜单\n\n"
while((ch22=getchar(),ch22!
ch22!
));
switch(ch22)
function2_1();
intsection3()/*第3个2级菜单*/
{charch23;
voidfunction3_1();
*****************组成大字符****************\n"
-------------------------------------------------\n"
while((ch23=getchar(),ch23!
ch23!
switch(ch23)
function3_1();
voidfunction1_1()
{inti,j;
FILE*fp,*fp1;
charstr[100];
if((fp=fopen("
bjcj.txt"
"
r"
))==NULL)
{printf("
connotopenthisfile\n"
if((fp1=fopen("
grcj.txt"
w"
{printf("
exit(0);
fgets(str,100,fp);
for(i=0;
i<
M;
i++)
{
fscanf(fp,"
%ld%s"
&
stu[i].num,stu[i].name);
for(j=0;
j<
5;
j++)
%f"
stu[i].score[j]);
序号姓名英语数学大学物理机械制图C程序设计"
fprintf(fp1,"
\n"
{if(i%10==0)getch();
%-11