c语言上机实习报告

  • 格式:doc
  • 大小:122.73 KB
  • 文档页数:21

精品文档 . <> 实习报告

班 级 学号/序号 姓 名 指导教师 完成日期 精品文档

. 第一部分:分析设计与说明 第二部分:程序框图 第三部分:源程序清单 第四部分:原始数据 第五部分:运行结果 第六部分:实习心得

第一部分:分析设计与说明 第一步:建立一个机械10704班的学生成绩信息文件和学分文件,采用文本文档格式。 第二步:程序设计思定义一个结构体用于存放chengji文件中的数据。 1 .编写菜单,,在主函数中编写菜单,采用二级菜单形式,相应的选项对应相应的函数。 2 .编写第一个函数,用于读取文件chengji中的数据。 3 .编写第一个函数,用于读取文件xuefen中的数据。 4 .编写第二个函数,用于计算平均分和排名次,并将结果保存。 5 .编写第三个函数,计算各分数段的人数,并将结果保存。 6 .编写第四个函数,统计不及格的情况,并将结果保存。 7. 编写第六个函数,作各科成绩的饼状图。 8. 编写第八个函数,矩形表示。 9. 编写第九个函数,用于解线性方程组。 10.编写第九个函数,编写五角星动画函数。 精品文档 . 说明: 十个函数中,前七个函数属于学生信息管理函数,在第一个二级菜单下,后三个保存在第二个二级菜单下。主函数起调配其他函数的功能。

第二部分:程序框架

主函数 函数1:学生管理 函数2:解线性方程组 动画制作 菜单1 菜单2 菜单3 1.计算平均分和名次 2.计算分数段人数 3.统计不及格情况 4.输入优秀学生 5.作分布图 6.查找 1.解线性方程组 1.线性图

7.删除 2.作动画 精品文档

. 第三部分:源程序清单 # include "stdio.h" # include"conio.h" #include"math.h" #include "stdlib.h" #include "dos.h" # include"graphics.h" #define PI 3.14159 #define H PI/180 #define N 4 struct stu {int num,mingci; char name[20]; int score[5]; float aver; }stu1[40];

struct xuefen { int num; char kcname[20]; int xf,a,b,c,d,e; float courseaver ; }course[5]; struct chengji { float kcave; float bzcha; int exc; int good; int mid; int pass; int nopass; }chengji[5];

main () /*主菜单*/ { char ch1; do{ clrscr(); 精品文档 . printf("\n\n\n\n\n\n\n\n\n"); printf(" **********c语言程序设计上机实习**********\n"); printf(" ---------------------\n\n"); printf(" 1 学生成绩管理\n\n") ; printf(" 2 解线性方程组 \n\n") ; printf(" 3 动画\n\n"); printf(" 4 退 出\n\n"); printf(" 输出选择序号\n"); while ((ch1=getchar(),ch1!='1'&&ch1!='2'&&ch1!='3'&&ch1!='4')); switch(ch1) {case'1': section1(); break; case'2': section2(); break; case'3': section3(); break; case'4': exit(0);} }while(1); } section1() /*第1个2级菜单*/ {char ch21; do{ clrscr();printf("\n\n\n\n\n\n\n\n\n\n"); printf(" **********学生成绩管理系统***********\n"); printf(" ---------------------\n\n"); printf(" 1. 输入原始数据并显示 2. 计算平均分及名次\n\n") ; printf(" 3. 计算分数段人数 4. 输出课程平均分 \n\n") ; printf(" 5. 统计不及格情况 6. 输出优秀学生 \n\n"); printf(" 7. 作分布图 8. 返回上级菜单 \n\n"); printf(" 输入选择序号\n"); while ((ch21=getchar(),ch21!='1'&&ch21!='2'&&ch21!='3'&&ch21!='4'&&ch21!='5'&&ch21!='6' &&ch21!='7'&&ch21!='8')); switch(ch21) {case'1': function1_1(); break; case'2': function1_2(); break; case'3': function1_3(); break; case'4': function1_4(); break; case'5': function1_5(); break; case'6': function1_6(); break; case'7': function1_7(); break; case'8': return(0);} }while(1); } section2() /*第2个2级菜单*/ {char ch22; do{ clrscr();printf("\n\n\n\n\n\n\n\n\n\n"); 精品文档 . printf(" **********解线性方程组***********\n"); printf(" ---------------------\n\n"); printf(" 1.解方程组\n\n"); printf(" 2.返回上级菜单\n\n"); printf(" 输入选择序号\n"); while ((ch22=getchar(),ch22!='1'&&ch22!='2')); switch(ch22) {case'1': function2_1(); break; case'2': return(0);} }while(1); } section3() /*第3个2级菜单*/ {char ch23; do{ clrscr();printf("\n\n\n\n\n\n\n\n\n\n"); printf(" **********作动画***********\n"); printf(" ---------------------\n\n"); printf(" 1.作 动 画\n\n"); printf(" 2.返回上级菜单\n\n"); printf(" 输入选择序号\n"); while ((ch23=getchar(),ch23!='1'&&ch23!='2')); switch(ch23) {case'1': function3_1(); break; case'2': return(0);} }while(1); }

function1_1() {FILE *fp,*fp1,*fp2,*fp3; char strr1[200], strr2[200]; int i,j; printf("加入读入原始数据并显示的程序内容\n"); if((fp=fopen("C:\\chengji.txt","r"))==NULL) {printf("cannot open the file\n"); exit(0);}

if((fp1=fopen("C:\\chengji1.txt","w"))==NULL) {printf("cannot open the file\n"); exit(0);}

if((fp2=fopen("C:\\xuefen.txt","r"))==NULL) {printf("cannot open the file\n"); exit(0);}

if((fp3=fopen("C:\\xuefen1.txt","w"))==NULL) 精品文档 . {printf("cannot open the file\n"); exit(0);}

/*fgets(strr,50,fp);*/ fgets(strr1,200,fp); for(i=0;i<40;i++) { fscanf(fp,"%d%s",&stu1[i].num,stu1[i].name); for(j=0;j<5;j++) fscanf(fp,"%d",&stu1[i].score[j]); }

/*fputs(strr,50,fp1;*/ fprintf(fp1,"学号 姓名 毛邓三 近代史 听力 英语 高数\n ");

for(i=0;i<40;i++) { fprintf(fp1,"%-5d%-10s",stu1[i].num,stu1[i].name); for(j=0;j<5;j++) fprintf(fp1,"%-8d",stu1[i].score[j]); fprintf(fp1,"\n"); } for(i=0;i<40;i++) { printf("%-5d%-10s",stu1[i].num,stu1[i].name); for(j=0;j<5;j++) printf("%-5d",stu1[i].score[j]); }

fgets(strr2,200,fp2); for(i=0;i<5;i++) { fscanf(fp2,"%d%s%d",&course[i].num,course[i].kcname,&course[i].xf);

}

fprintf(fp3,"编号 课程名称 课程学分\n "); for(i=0;i<5;i++) { fprintf(fp3,"%-5d%-10s%-5d",course[i].num,course[i].kcname,course[i].xf);

fprintf(fp3,"\n");