c语言实习报告

时间:2024.3.31

C语言课程实习报告

  数理学院     

    121091-13  

               

程序已存档                

        

                       

  

二零##年七月十五

.题目要求…………………………….3

.需求分析……………………………. 3

.总体设计……………………………. 3掌握

.详细设计…………………………… 4

1. 主函数…………………………………4          

1)流程图…………………………………………. 4

2)主函数程序……………………………………. 5

2.各功能模块…………………………  7

1.查询模块……………………………………… 7

1〉流程图…………………………………………………….. 7

2〉程序……………………………………………………….. 8

2机位预定模块……………………………….  9

1〉流程图…………………………………………. 9

2〉程序……………………………………………. 10

(3)退出预定模块………………………………… 11

1〉流程图…………………………………………. 11

2〉程序……………………………………………. 11

.总结…………………………………14

.题目要求

设计“机房机位预约系统”,要实现查询,机位预定,退出预定,查询是否有等待信息等功能模块,机位信息一文件存放,功能选择用菜单实现,要求:有20台机器,从早8点到晚8点,每两小时为一个时间段。

.需求分析

   根据题目要求,由于机位信息是存放在文件中,所以应提供文件输入输出等操作;在程序中需要查询机位信息和预定机位,应提供显示,查找等操作,另外还要提供键盘式选择菜单实现功能选择。

                 

.总体设计

 

.详细设计

1.      主函数

主函数一般设计的比较简洁,只提供输入,功能处理和输出部分的函数调用。其中各功能模块用菜但方式选择;另外,菜单部分也可以写成函数。流程图如下:

 


                                                N

                

                           Y

                                               

                                                                                                    

                                                                    程序:#include<stdio.h>

#include<string.h>

void search();

void place();

void call();

struct cinformation

{

       int number;

       int condition[6];

}computer[21];

int d[20];

char b[ ]="placed";

void main( )

{int n,w1;

int i,j;

for(i=1;i<=20;i++)

{

       computer[i].number=i;

    for(j=0;j<6;j++)computer[i].condition[j]=0;

}

while(1)

{

do

{puts("\t\t***************主菜单****************\n\n");

 puts("\t\t\t\t 1.机位查询");

 puts("\t\t\t\t 2.机位预定");

 puts("\t\t\t\t 3.退出预定");

 puts("\t\t\t\t 4.退出");

 puts("\n\n\t\t************************************\n");

 printf("Choice your number(1-4):[ ]\b\b");

scanf("%d",&n);

if(n<1||n>4)

{

w1=1;

getchar();}

else w1=0;

}while(w1==1);

switch(n)

{case 1:search();break;/*查询*/

case 2:place();break;/*机位预定*/

case 3:call();break;/*退出预定*/

case 4:return;/*退出*/

}

}

}

运行结果:

2. 各功能模块设计

(1) 查询

[流程图]

 

          

                                           

 

         

                                                                    [程序] void search()

{

int i,j;

for(i=1;i<=20;i++)

{ printf("computer %2d: ",i);

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

if(computer[i].condition[j]==0)

printf("time %2d ",j);

printf("\n");}

getchar();getchar();

}

运行结果:

(2) 机位预定模块

 [流程图]

                

 

                                 

  

                                    

[程序] void place()

{int m,n;

printf("选择预约机号:[ ]\b\b");

scanf("%d",&m);

printf("选择预约时间段:[ ]\b\b");

scanf("%d",&n);

if(computer[m].condition[n]==0)

{computer[m].condition[n]=1;

 printf("预约成功\n");}

else if(computer[m].condition[n]==1)

printf("已被预约");

return;

}

运行结果:

(3)退出预定模块

[流程图]

[程序] void call()

{char x;int i,j;

printf("输入欲退出预约的机号:[ ]\b\b");

scanf("%d",&i);

printf("输入欲退出预约的时间段:[ ]\b\b");

scanf("%d",&j);

printf("确定退出预约:“是”输入y),“否”输入n):[ ]\b\b");getchar();

scanf("%c",&x);

if(x=='y')

  {  

    computer[i].condition[j]=0;

    printf("退出预约成功");

  }

 if(x=='n')

  {

     computer[i].condition[j]=computer[i].condition[j];

  }

     getchar();getchar();

}

运行结果:

五.总结

一周的实习终于结束了,经过一个星期的实践,我才发现原来我的c语言掌握得并不象期末考试成绩反映的那样,通过这一次实习,让我感受到了上课听课的重要性,最典型的就是如果上课不听课,我就不知“b\b”是什么了。不仅如此,这次实习还锻炼了我的毅力,教会了我凡事要亲自动手。记得实习刚开始老师说这几天就编一个程序,乐得我们都以为这次实习只是一种形式,还可以免费上网,当我开始干的时候才发现我们错了,刚拿到题目,我一脸茫然,毫无头绪,于是前两天不是上网就是翻纸牌,心想到时候百度一下就完了,但后来我想想,如果是这样的话来了就没意义了,于是便开始自己试着编。由于知识掌握不够牢固,在编写的过程中发现愈发的无聊,但我还是坚持自己编,不懂的地方问同学,最后实在没思路了,只能求救老师了,最后在老师的帮助下终于完成了。

我想,这次实习一定会给我留下很深的印象,虽然最后没有自己完成,但我依旧可以骄傲的说我没有抄袭,我问心无愧,而且我能在极度无聊的情况下坚持天天来,并自己编,这在一定程度上锻炼了我的毅力,单凭这一点我就可以说我这几天没白来,而且过得很有意义!


第二篇:C语言上机实习报告


一、系统题目

简易教学管理系统的设计与实现

二、摘要

1.准备数据

用记事本创建两个文本文件,分别存放各学生各科成绩及各课程学分。 2.程序功能

程序执行后,生成一个菜单,通过菜单调用各个函数,从而实现所需要的各种功能.这些功能包括:

1.生成班级成绩表;

2.分析各课程成绩,并生成各科成绩分析表; 3.打印学生成绩条; 4.显示不及格学生名单; 5.显示优等生名单。

三、系统设计

1.系统功能模块框图

2.菜单结构图

C语言上机实习报告

计算机上机实习报告

3.数据结构说明

本程序定义了两个结构体,分别为student和kecheng。结构体student用来存放各学生的学号、姓名、各课程分数、平均分及名次;结构体kecheng用来存放各门课程编号、课程名称、学分、平均分、标准差及各分数段人数。 4.输入界面

C语言上机实习报告

要实现菜单中的各种功能,输入相应数字并按回车即可。

四、系统实现

几个主要函数流程图:

1.求加权平均分函数流程图

C语言上机实习报告

1

计算机上机实习报告

C语言上机实习报告

2.

C语言上机实习报告

2

计算机上机实习报告

3.求各课程标准差流程图

五、系统使用说明

程序执行后,会生成一个菜单,通过输入相应数字,完成各项功能。 操作步骤如下:

输入数字1回车,屏幕上会显示原始文件1;

输入数字2回车,屏幕上会显示原始文件2;

输入数字3回车,清空屏幕;

输入数字4回车,生成班级成绩表,保存路径:F//课程设计//MingC29.txt; 输入数字5回车,生成班级成绩分析表,保存路径:F//课程设计//KC29.txt; 输入数字6回车,打印成绩条,保存路径:F//课程设计//CJYG10708.txt; 输入数字7回车,屏幕显示不及格学生名单;

输入数字8回车,屏幕显示优等生名单,

输入数字0回车,退出程序。

六、测试数据

七、结论

八、附录

程序源代码:

#define M 20

#define N 5

#include <stdio.h>

C语言上机实习报告

3

计算机上机实习报告

#include <stdlib.h>

#include <math.h>

struct student

{

int num;

char name[20];

int score[N];

float ave;

int mingci;

}st[M];

struct kecheng

{

int num;

char kcname[20];

float xuefen;

float aver;

float bzhuncha;

int a;

int b;

int c;

int d;

int e;

}course[N];

void ReadDat1() /*读取并在屏幕上显示文件1*/ {

int i,j;

char str1[100];

FILE *fp;

if((fp=fopen("F:\\课程设计\\YG10708-29.txt","r"))==NULL) {

printf("cannot open the file!\n");

exit(0);

}

fgets(str1,100,fp);

printf("%s",str1);

for(i=0;i<M;i++)

{

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

printf("%2d%10s",st[i].num,st[i].name);

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

{

fscanf(fp,"%d",&st[i].score[j]);

printf("%8d",st[i].score[j]);

4

计算机上机实习报告

}

printf("\n");

}

fclose(fp);

}

void ReadDat2() /*读取并在屏幕上显示文件2*/

{

FILE *fp;

int k;

char str2[50];

fp=fopen("F:\\课程设计\\YG10708.txt","r");

fgets(str2,50,fp);

printf("%s",str2);

for(k=0;k<N;k++)

{

fscanf(fp,"%d%s%f",&course[k].num,course[k].kcname,&course[k].xuefen); printf("%-8d%-10s%7.2f\n",course[k].num,course[k].kcname,course[k].xuefen); }

fclose(fp);

}

void Read1() /*读取文件1*/

{

int i,j;

char str1[100];

FILE *fp;

if((fp=fopen("F:\\课程设计\\YG10708-29.txt","r"))==NULL)

{

printf("cannot open the file!\n");

exit(0);

}

fgets(str1,100,fp);

for(i=0;i<M;i++)

{

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

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

{

fscanf(fp,"%d",&st[i].score[j]);

}

}

5

计算机上机实习报告

fclose(fp);

}

void Read2() /*读取文件2*/

{

FILE *fp;

int k;

char str2[100];

fp=fopen("F:\\课程设计\\YG10708.txt","r");

fgets(str2,100,fp);

for(k=0;k<N;k++)

{

fscanf(fp,"%d%s%f",&course[k].num,course[k].kcname,&course[k].xuefen); }

fclose(fp);

}

void Jqave() /*求加权平均分*/

{

int i,j;

float s=0,sum;

for(i=0;i<N;i++)

s+=course[i].xuefen;

for(i=0;i<M;i++)

{

sum=0;

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

sum+=st[i].score[j]*course[j].xuefen;

st[i].ave=(int)(sum*10.0/s+0.5)/10.0;

}

}

void sort() /*排名次*/

{

int i,j;

for(i=0;i<M;i++)

{

st[i].mingci=1;

}

for(i=0;i<M;i++)

6

计算机上机实习报告

{

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

{if(st[i].ave<st[j].ave)

st[i].mingci++;}

}

}

void WriteCjd() /*打印成绩单*/

{

FILE *fp;

int i,j;

if((fp=fopen("F:\\课程设计\\MingC29.txt","w"))==NULL)

{

printf("Faile to build a new file!\n");

exit(0);

}

fprintf(fp,"名次 学号 姓名 英语 C语言 数学 制图 体育 平均成绩\n"); for(i=0;i<M;i++)

{

fprintf(fp,"%3d%4d%7s",st[i].mingci,st[i].num,st[i].name);

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

fprintf(fp,"%5d",st[i].score[j]);

fprintf(fp,"%8.2f\n",st[i].ave);

}

fclose(fp);

}

void WriteCjt() /*打印成绩条*/

{

FILE *fp;

int i,j;

if((fp=fopen("F:\\课程设计\\CJYG10707.txt","w"))==NULL)

{

printf("Faile to build a new file!\n");

exit(0);

}

for(i=0;i<M;i++)

{

fprintf(fp,"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");

fprintf(fp,"\n名次 学号 姓名 英语 C语言 数学 制图 体育 平均成绩\n"); fprintf(fp,"%3d%4d%7s",st[i].mingci,st[i].num,st[i].name);

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

7

计算机上机实习报告

fprintf(fp,"%5d",st[i].score[j]);

fprintf(fp,"%8.2f\n\n",st[i].ave);

fprintf(fp,"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n\n"); }

fclose(fp);

}

void Ave() /*求各课程平均分*/

{

int i,j;

float sum;

for(i=0;i<N;i++)

{

sum=0;

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

sum=sum+st[j].score[i];

course[i].aver=(int)(sum*10.0/M+0.5)/10.0;

}

}

void BZcha() /*求各课程标准差*/

{

int i,j;

float sum,t;

for(i=0;i<N;i++)

{

sum=0;

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

{t=(st[j].score[i]-course[i].aver)*(st[j].score[i]-course[i].aver);

sum=sum+t;}

course[i].bzhuncha=sqrt(sum/M);

}

}

void Level() /*求各分数段人数*/

{

int i,j;

for(i=0;i<N;i++)

{ course[i].e=0;

course[i].d=0;

course[i].c=0;

8

计算机上机实习报告

course[i].b=0;

course[i].a=0;}

for(i=0;i<N;i++)

{

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

{if(st[j].score[i]<60) course[i].e++;

else if(st[j].score[i]<70) course[i].d++;

else if(st[j].score[i]<80) course[i].c++;

else if(st[j].score[i]<90) course[i].b++;

else if(st[j].score[i]<100) course[i].a++;}

}

}

void WriteKC() /*生成班级成绩分析表*/

{

FILE *fp;

int i;

if((fp=fopen("F:\\课程设计\\KC29.txt","w"))==NULL)

{

printf("Faile to build a new file!\n");

exit(0);

}

fprintf(fp,"编号 课程名称 课程平均分 标准差 优秀 良好 中等 及格 不及格\n"); for(i=0;i<N;i++)

{fprintf(fp,"%3d%7s%10.2f%10.2f",course[i].num,course[i].kcname,course[i].aver,course[i].bzhuncha);

fprintf(fp,"%5d%5d%5d%5d%5d\n",course[i].a,course[i].b,course[i].c,course[i].d,course[i].e);}

fclose(fp);

}

void fail() /*屏幕显示不及格学生名单*/

{

int i,j;

printf("不及格学生名单:\n");

printf("学号 姓名 不及格课程 课程学分 成绩\n");

for(i=0;i<N;i++)

{

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

if(st[j].score[i]<60)

printf("%3d%6s%8s%9.1f%7d\n",st[j].num,st[j].name,course[i].kcname, course[i].xuefen,st[j].score[i]);

9

计算机上机实习报告

}

}

void youxiu() /*屏幕显示优等生名单*/

{

int i,j,f[M];

printf("优等生名单:\n");

printf("名次 学号 姓名 英语 C语言 数学 制图 体育 平均成绩\n"); for(i=0;i<M;i++)

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

{f[i]=st[i].ave>=91||st[i].mingci<=4||st[i].ave>=85&&st[i].score[j]>=99; if(f[i]) break;}

for(i=0;i<M;i++)

{

if(f[i])

{printf("%2d%6d%6s",st[i].mingci,st[i].num,st[i].name);

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

printf("%5d",st[i].score[j]);

printf("%8.1f\n",st[i].ave);}

}

}

void menu() /*屏幕显示菜单*/

{

int c;

do

{

do

{

printf("\n\n ^_^ ^_^ ^_^简易教学管理系统^_^ ^_^ ^_^ \n"); printf(" @ 1.读取文件1 @\n"); printf(" @ 2.读取文件2 @\n"); printf(" @ 3.清空屏幕 @\n"); printf(" @ 4.生成班级成绩表 @\n"); printf(" @ 5.生成各课程成绩分析表 @\n"); printf(" @ 6.打印学生成绩条 @\n"); printf(" @ 7.不及格学生名单 @\n"); printf(" @ 8.优等生名单 @\n"); printf(" @ 0.退出系统 @\n"); printf(" ^_^ ^_^ ^_^^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ \n"); printf("\n请输入相应数字:");

10

计算机上机实习报告

scanf("%d",&c);

printf("\n");

if(c==0) system("cls"); printf("王俊致力于为您做最好的系统!\n欢迎再次使用! ^_~\n\n\n");

} while(c<0||c>8);

switch(c)

{

case 1:printf("文件1:\n");ReadDat1();break;

case 2:printf("文件2:\n");ReadDat2();break;

case 3:system("cls");printf("已完成!\n\n!");break;

case 4:WriteCjd();printf("已完成!\n\n");break;

case 5:WriteKC();printf("已完成!\n\n");break;

case 6:WriteCjt();printf("已完成!\n\n!");break;

case 7:fail();break;

case 8:youxiu();break;

}

} while (c);

}

void main()

{

Read1();

Read2();

Jqave();

sort();

Ave();

BZcha();

Level();

menu();

}

11

更多相关推荐:
C语言实训报告

C语言程序设计实训报告课题名称通讯录管理系统专业计算机信息管理班级09信管1班学号姓名指导教师20xx年7月1日目录1课程设计目的12课程设计题目13课程设计报告内容14结论105结束语106参考书目107程序...

C语言实习报告

新疆昌吉学院C语言程序设计教学实习报告部门信息技术分院专业计算机应用技术班级20xx高职应用姓名指导教师1C语言程序设计教学实习报告20xx高职应用班一实习时间20xx年6月13日至20xx年6月17日二实习地...

c语言实习报告

目录一前言2二引言221系统开发工具222实习目的323实习基本内容与要求324实习时间安排325实习地点326实习内容3三学生成绩管理系统分析431系统概况432需求分析433总体功能要求5331总体功能模块...

C语言专业认识实习报告

目录一实习目的及意义2二实习任务目的2三实习时间2四实习地点2五实习企业概况2六实习内容3一实习的具体内容3二实习中资料的收集与总结3七实习感想4专业认识实习报告一实习目的及意义从此次认知实习中虽然只有短短的几...

C语言程序设计实习报告

手机通讯录管理系统一设计题目的任务和内容任务本程序是非数值计算型算法设计我设计出了通讯录管理系统的基本功能并设计了简单的界面本程序主要考察对自定义函数的熟悉程度本程序主要使用的是数组的相关操作包括结构体数组的输...

C语言实训报告

C语言程序设计与数据结构实训报告课题名称通讯录管理系统专业软件技术开发方向班级软件G083学号姓名徐阳指导教师黄爽20xx年12月25日目录1课程设计目的12课程设计题目13课程设计报告内容14结论105结束语...

C语言实训报告

北京联合大学课程设计报告课程名称C语言程序设计实训项目名称电子生词库系统学院管理学院专业信息管理与信息系统姓名邹冬梅张晶缐珊珊学号20xx11030212920xx11030211120xx110302115指...

C语言程序设计实习报告---学生信息管理系统

C程序设计报告数据结构课程设计报告姓名学号班级20xx年6月8日C程序设计报告1题目和要求11问题提出与要求学生成绩管理系统要求设计一个学生成绩管理系统对在校某班学生几门课程的考试成绩进行统一管理每个学生记录包...

物业管理系统C语言程序实习报告

本科生课程论文封面课程名称C语言程序课程设计教师姓名本科生姓名本科生学号本科生专业材料科学与工程所在院系材化学院类别工科日期20xx年7月29日课程设计评语注1无评阅人签名成绩无效2必须用钢笔或圆珠笔批阅用铅笔...

C语言实习报告

C语言课程设计系部电子工程系专业计算机应用101班姓名邢莹莹指导老师赵生智徐巧格高杰陕西能源职业技术学院20xx0624目录一实习目的3二实习任务3三实习要求3四实习计划3五实习框架图3六对程序的描述4七实习小...

C语言实习报告书

生命科学学院C语言大作业报告二学期报告题目C语言功能库姓名魏嘉呈专业生物科学类年级班级1403班指导教师晁晓菲完成日期6月20日1目录一大作业的目的和要求3二大作业任务内容3三总体设计4四程序代码6五主要用到的...

《C语言程序设计》综合实习报告

11课题一用指针优化学生成绩排名一目的1熟悉变量的指针和指向变量的的指针变量的概念和使用2熟悉数组的指针和指向数组的的指针变量的概念和使用3掌握冒泡法或选择法排序的算法4掌握函数的定义调用声明以及参数的两种传递...

c语言实习报告(20篇)