c语言程序报告
A. c语言实验报告怎么写
#include <stdio.h>
int main()
{
unsigned long a;
char c;
printf("Input a binary number: ");
for(a=0;(c=getchar())!=' ';)
a=a*2+c-'0';
printf("The number is %lu in decimal ",a);
printf("The number is %lo in octal ",a);
printf("The number is %lX in Hexadecimal ",a);
return 0;
}
B. 求完整C语言程序设计报告!!
C语言课程设计报告--学生成绩管理系
C语言课程设计报告:
学生成绩管理系统
系统需求
一、 当前学生信息:通过结构体struct student 来保存学生的姓名,学号,性别,语文,数学,英语和计算机等等相关信息,并且通过cin函数来进行给当前学生输入初始信息.
二、学生成绩查询: 输入一个学号, 在文件中查找此学生, 若找到则输出此学生的全部信息和成绩; 若找不到则输出查找失败的信息. 同时也可以全部把各科的平均成绩,最高和最低分输出。
三、新生插入 :通过给该生的学号来和原班上的学生的学号比较大小,若大就在后,若小则靠前排,将此生的信息保存下来。
四、输出全部学生信息和全部学生成绩。
五、退出系统.
六、附加说明:系统将来完善的功能有:可以通过性别来模糊查询,也可以通过姓名的姓来先进行模糊查询,以便后面精确查找。
总体设计
一、 仔细阅读系统要求,首先将此系统化分为如下模块(即如下函数)
1、输入初始的学生信息:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu *p1)来实现此操作。
2、查询模块:可用stu *lookdata(stu *p1) 来实现。找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。
3、插入模块:可用insert( )函数来实现。其中通过学号的大小来比较的,并且以此来排序。
4、输出学生的信息以及成绩:通过学生的姓名来查看学生的语文、数学、英语和计算机等相关成绩,同时也可以分别通过caverage() 、 maverage() 、eaverage() 和comaverage() 来输出语文、数学、英语和计算机等成绩的平均分数、最高和最低分数。
5、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。
二、系统主模块结构图:
详细设计
一、 界面设计
此系统界面采用图形和数字化菜单设计。
主界面设计如下:
学生成绩管理系统
请选择相应的数字执行相应的功能:
1:是否输入其他数据
2:查看数据
3:插入数据
4:查找数据
5:更新数据
6:保留数据
7:显示或打印数据
8:语文成绩状况
9:数学成绩状况
10:英语成绩状况
11:计算机成绩状况
12:?
13:退出系统
二、 数据结构设计:
程序设计中用到的结构体类型:
学生信息结构体类型:
typedef struct student{
char name[MAX];
int num[MAX];
char sex[MAX];
int chinese;
int mathematic;
int english;
int computer;
struct student *next;
}
程序代码:
//原始密码是123456
#include"stdio.h"
#include"stddef.h"
#include"stddef.h"
#include"string.h"
#define MAX 10
typedef struct student{ /*定义结构体*/
char name[MAX]; /*姓名*/
int num[MAX]; /* 学号*/
char sex[MAX]; /*性别*/
int chinese; /*语文*/
int mathematic; /* 数学*/
int english; /*英语*/
int computer; /*计算机*/
struct student *next; /*结构体指针*/
}stu;
stu *head; /*头指针*/
void print() /*显示或打印函数*/
{
system("cls");
printf("\t\t\tScore Manage System\n"); /*成绩管理系统*/
printf("<1>Enter Record\t"); /*输入数据*/
printf("<2>Display\t"); /*显示*/
printf("<3>Insert\t"); /*插入数据*/
printf("<4>Quest\t"); /*访问数据*/
printf("<5>Update\t"); /*以前数据*/
printf("<6>Save\t"); /*保留数据*/
printf("<7>Fresh\t"); /*更新数据*/
printf("<8>Chinese Average\t"); /*语文平均成绩*/
printf("<9>Math Average\t"); /*数学平均成绩*/
printf("<10>English Average\t"); /*英语平均成绩*/
printf("<11>Computer Average\t"); /*计算机平均成绩*/
printf("<12>Quit\t\n"); /*退出*/
}
void cin(stu *p1) /*输入相关数据的函数*/
{ printf("Enter name:\n");
scanf("%s",&p1->name);
printf("Enter num:\n");
scanf("%d",&p1->num);
printf("Enter sex:\n");
scanf("%s",&p1->sex);
printf("Enter score:\n");
printf("Enter chinese:\n");
scanf("%d",&p1->chinese);
printf("Enter math:\n");
scanf("%d",&p1->mathematic);
printf("Enter English:\n");
scanf("%d",&p1->english);
printf("Enter Computer:\n");
scanf("%d",&p1->computer);
}
stu *cindata() /*其他数据是否继续输入的函数*/
{ stu *p1,*p2;
int i=1;
char ch;
p1=(stu *)malloc(sizeof(stu));
head=p1;
while(i)
{
cin(p1);
printf("Do you Want to Continue?yes or no"); /*是否继续输入数据*/
ch=getchar();
ch=getchar();
if(ch=='n'||ch=='N')
{ i=0;
p1->next=NULL;
}
else
{ p2=p1;
p1=(stu *)malloc(sizeof(stu));
p2->next=p1;
}
}
return(p1->next);
}
stu *lookdata(stu *p1) /*查看数据的函数*/
{
while(p1!=NULL)
{ printf("Num:%d\t",p1->num);
printf("Name:%s\t",p1->name);
printf("Sex:%s\t",p1->sex);
printf("\n");
printf("Chinese:%d\t",p1->chinese);
printf("Math:%d\t",p1->mathematic);
printf("English:%d\t",p1->english);
printf("Computer:%d\t",p1->computer);
printf("\n");
p1=p1->next;
}
return p1;
}
void insert() /*通过比较学号来插入数据的函数*/
{ stu *p1,*p3,*p2;
char ch;
p1=head;
p3=(stu *)malloc(sizeof(stu));
p3->next=NULL;
if(head==NULL){ head=p3; return;}
cin(p3);
while(p1!=NULL&&(p1->num<p3->num)) /*通过学号的比较来插入*/
{ p2=p1;p1=p1->next;}
if(p2==head) {p3->next=head; head=p3; return;}
p3->next=p1;
p2->next=p3;
}
find(stu *p2) /*通过姓名查找查看数据的函数*/
{ char name[20];
int b=0;
printf("Enter the name of the student you want to find:"); /*通过姓名查看*/
scanf("%s",name);
while(p2!=NULL)
{if(strcmp(name,p2->name)==0)
{
printf("The data you want has be found\n");
printf(" Name:%s\t",p2->name);
printf("Num:%d\t",p2->num);
printf("sex%s\t",p2->sex);
printf("\n");
printf("Chinese:%d\t",p2->chinese);
printf("Math:%d\t",p2->mathematic);
printf("English:%d\t",p2->english);
printf("Computer:%d\t",p2->computer);
printf("\n");
b=1;
}
else if(b==0)
printf("sorry not find data!");
p2=p2->next;
}
if(b==1)
{
print();
printf("Find one\n");}
else
{print();
printf("Not find\n");
}
}
void caverage() /*求各学生语文平均分、最高和最低分成绩的函数*/
{ stu *p1;
int i;
float max=0.0,min=200.0;
float sum=0.0,aver=0;
p1=head;
if(p1==NULL)
printf("not data!");
else
{for(i=0;p1!=NULL;i++,p1=p1->next)
sum+=p1->chinese;
aver=sum/i;
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
{if(max<p1->chinese)
max=p1->chinese;
}
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
if(min>p1->chinese)
min=p1->chinese;
}
printf("Chinese Average:%f",aver);
printf("Chinese Max:%f",max);
printf("Chinese Min:%f",min);
}
void maverage() /*求各学生数学平均分、最高和最低分成绩的函数*/
{ stu *p1;
int i;
float max=0.0,min=200.0;
float sum=0.0,aver=0;
p1=head;
if(p1==NULL)
printf("not data!");
else
{for(i=0;p1!=NULL;i++,p1=p1->next)
sum+=p1->mathematic;
aver=sum/i;
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
{if(max<p1->mathematic)
max=p1->mathematic;
}
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
if(min>p1->mathematic)
min=p1->mathematic;
}
printf("Mathe Average:%f",aver);
printf("Mathe Max:%f",max);
printf("Mathe Min:%f",min);
}
void eaverage() /*求各学生英语平均分、最高和最低分成绩的函数*/
{ stu *p1;
int i;
float max=0.0,min=200.0;
float sum=0.0,aver=0;
p1=head;
if(p1==NULL)
printf("not data!");
else
{for(i=0;p1!=NULL;i++,p1=p1->next)
sum+=p1->english;
aver=sum/i;
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
{if(max<p1->english)
max=p1->english;
}
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
if(min>p1->english)
min=p1->english;
}
printf("English Average:%f",aver);
printf("English Max:%f",max);
printf("English Min:%f",min);
}
void comaverage() /*求各学生计算机平均分、最高和最低分成绩的函数*/
{ stu *p1;
int i;
float max=0.0,min=200.0;
float sum=0.0,aver=0;
p1=head;
if(p1==NULL)
printf("not data!");
else
{for(i=0;p1!=NULL;i++,p1=p1->next)
sum+=p1->computer;
aver=sum/i;
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
{if(max<p1->computer)
max=p1->computer;
}
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
if(min>p1->computer)
min=p1->computer;
}
printf("Computer Average:%f",aver);
printf("Computer Max:%f",max);
printf("Computer Min:%f",min);
}
update(stu *p2) /*通过姓名查找来更新数据*/
{
char name[10]; /*p2为指向结构体struct student的指针*/
int b=0;
printf("Enter The Name"); /*输入姓名*/
scanf("%s",name);
while(p2!=NULL)
{if(strcmp(name,p2->name)==0)
{
printf("Find you data\n");
scanf("Name:%s",p2->name);
scanf("Num:%s",p2->num);
scanf("Sex:%s",p2->sex);
scanf("Chinese:%d",p2->chinese);
scanf("Math:%d",p2->mathematic);
scanf("english:%d",p2->english);
scanf("Computer:%d",p2->computer);
printf("Success!");
b=1;}
else if(b==0)
printf("Sorry not Find data!");
p2=p2->next;}
if(b==0)
{print();
printf("Sorry not Find data!");
}
else
{
print();
printf("Finish!");
}
}
save(stu *p2) /*保留数据函数*/
{
FILE *fp;
char file[10];
printf("Enter file name"); /*输入文件名*/
scanf("%s",file);
fp=fopen(file,"w");
while(p2!=NULL)
{
fprintf(fp,"%s",p2->name);
fprintf(fp,"%s",p2->num);
fprintf(fp,"%s",p2->sex);
fprintf(fp,"%d",p2->chinese);
fprintf(fp,"%d",p2->mathematic);
fprintf(fp,"%d",p2->english);
fprintf(fp,"%d",p2->computer);
p2=p2->next;
}
fclose(fp);
}
char password[7]="123456"; /*定义初始密码*/
void main() /*主函数*/
{ int choice;
stu *p2;
char s[8];
int flag=0,i; /*标志项*/
int n=3;
do{ printf("Enter password:\n");
scanf("%s",s);
if(!strcmp(s,password)) /*进行密码匹配验证*/
{ printf("PASS\n\n\n");
flag=1;
break;
}
else{
printf("Error Enter again:\n");
n--;
}
}
while(n>0);
if(!flag)
{printf("you have Enter 3 times!"); /*输入密码超过了3次!!*/
exit(0); /*自动退出*/
}
/*密码验证成功后进入的界面*/
printf("~~~~~~~~~~\t\t\t~~~~~~~~~~~~\n"); /*操作界面*/
printf("\t\tWelcom to the Mis\n");
printf("Author:-----\tClass:------\tNum:------\n"); /*作者,班级和号码*/
printf("Adress:HG\n"); /*地址*/
printf("%%%%%%%%%%%%%%%%%%%%%%%%%%%\n");
printf("\t\tEnter OP:\n");
printf("\n\n\n\n");
printf("==============\t\t==============\n");
printf("==============\t\t==============\n");
printf("\t\tEnter the MIS yes or no\n"); /*问进入系统与否*/
scanf("%d",&choice);
if(choice=='n'||choice=='N')
exit(1);
print();
while(1)
{
printf("Enter choice:");
scanf("%d",&i);
if(i<1||i>13)
{
printf("Enter num from 1 to 13:\n"); /*再从1-13中进行选择*/
exit(1);
}
switch(i)
{ case 1:
p2=cindata(); /*其他数据是否继续输入的函数*/
break;
case 2:
p2=lookdata(head); /*查看数据的函数*/
break;
case 3:
insert(); /*通过比较学号来插入数据的函数*/
break;
case 4:
find(head); /*通过姓名查找查看数据的函数*/
break;
case 5:
update(head); /*通过姓名查找来更新数据*/
break;
case 6:
save(head); /*保留数据函数*/
break;
case 7:
print(); /*显示或打印函数*/
break;
case 8:
caverage(); /*求各学生语文平均分、最高和最低分成绩的函数*/
break;
case 9:
maverage(); /*求各学生数学平均分、最高和最低分成绩的函数*/
break;
case 10:
eaverage(); /*求各学生英语平均分、最高和最低分成绩的函数*/
break;
case 11:
comaverage(); /*求各学生计算机平均分、最高和最低分成绩的函数*/
break;
case 12:
; /*空操作*/
case 13:
exit(1); /*退出*/
break;
}
scanf("%d",&i);
}
}
程序中出现的问题及解决方法
问题一、学生初始信息模块:
其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu *p1)来实现此操作。当正确输入存在的学生学号,系统进行判断时,提示不存在此学生。
解决办法及步骤:
1、一个个输出所有的学生的学号,检查文件中是否有此学生,发现有。
2、既然有此学生,那么检查循环判断是否有此学生的语句发现没有错
3、输出用于循环检查语句中的学生信息,发现乱码
4、仔细分析乱码的原因,最后发现是变量的类型错误,错将学生类型的结构体指针变量定义为了其他类型的指针变量。
问题二、查询模块:
可用stu *lookdata(stu *p1) 来实现。找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。当正确输入查找信息时,系统却不能够得到所要查找的学生信息以及学生的语文、数学、英语和计算机的成绩。
解决办法及步骤:
1、检查所编写的程序代码是否完全正确,若不是,则改之,然后再继续正确输入查找信息看能否得到所要查找的学生信息以及学生的语文、数学、英语和计算机的成绩。
2、检查当我们在输入查找信息时,看是否我们输入的信息有误,若是这样的话,我们应当仔细输入查找信息。
问题三、插入模块:
可用insert( )函数来实现。其中通过学号的大小来比较的,并且以此来排序。当我们输入插入信息时,系统却提示插入不进数据。
解决办法及步骤:
1、检查所编写的程序代码是否完全正确,若不是,则改之,然后再继续正确输入插入信息看能否插入进去得到所要插入的学生信息以及学生的语文、数学、英语和计算机的成绩。
2、检查当我们在输入插入信息时,看是否我们输入的插入信息有
C. 计算机c语言实训报告范文
计算机c语言实训御盯报告范文实训教学是培养计算机专业学生C语言的基本能力、职业能力、技术应用能力、创新能力的重要途径。本文是我为大家整理的计算机c语言实训报告范文,仅供参考。
一、 课题名称:简单计算器
设计一个简单的程序来模拟计算器的功能。
二、 设计目的:
1、通过理论知识与实际需求相结合,编辑解决一些日镇迟和常中的实际问题,培养初步的独立分析和设计能力。 2、了解应用程序设计解决实际问题的具体过程和实现方法,掌握应用C语言进行程序设计的基本规范; 3、重点掌握C语言的程序编写、函数设计、算法设计和程序调试方法; 4、旦毕初步掌握系统开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。
三、 设计任务:
1、通过结构体数组和共用体数组来存放输入的每一数字或运算符号的记录(包括1、2、3等数字,+、--、_、等运算符号),然后将其信息存入文件中。输入一个算术计算式,就在屏幕上显示结果。 2、输入简单的加减乘除算术计算式,并在屏幕上显示计算结果;
四、 设计要求:
1、用C语言实现程序设计并进行调试; 2、画出查询模块的流程图;
3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机互交)。 5、完成设计说明书(A4)。
五、代码设计:
#include "stdio.h" main() { float x,y;
char operator;
printf("x,yun suan fu ,y: "); scanf("%f%c%f",&x,&operator,&y); switch(operator)
{case '+': printf("%.2f+%.2f=%.2f",x,y,x+y); break; case '-':printf("%.2f-%.2f=%.2f",x,y,x-y); break; case '_':printf("%.2f_%.2f=%.2f",x,y,x_y); break; case '/': if(y==0)
printf("chushushilingwuyiyi"); else
printf("%.2f/%.2f=%.2f",x,y,x/y); break;
default: printf("yunsunfuwuxiao"); } }?
七、设计总结:
学习C程序这门课一个学期了,这是我们学的第一门专业课,所以作为我这个计算机系的学生来说当然十分重要,老师在第一节课说过,C语言是计算机的基础,大多数软件都需要用C语言来编写,通过一个学期的学习,使我初步掌握了一些关于这门课的知识
这次的课程设计是对我们一个学期来所学的知识的综合考察,里面涉及到了我们大多数所学知识。记得刚开始学这门课的时候,对这门课充满了希望,自己有信心学好这门课,但是经过一段时间的学习之后。才发现程序设计并不好学,它既要你有很强的领悟能力,还要你课后的努力,也许是自己之前太有信心学好
这门课了吧,中间遇到了很大的瓶颈,一度陷入无休止的烦恼中编程序时没有一次是成功的,总会遇到很多的error,改完一个又有一个,这时我会想到一句古话“天将降大人于斯人也,必先苦其心志,劳其筋骨,饿其体肤”,也许以后会有些许光明吧。之后,随着时间的推移,慢慢掌握了这门课学习的一些窍门,学习起来也比刚开始的时候好了一点,至于编程序吗还是有错误,但比以前少了,总让我看到希望了。这次的课程设计要求我们编一个简易计算器,刚开始的时候我一头雾水,丈二摸不着头脑,不知从哪里下手,后来经过老师和同学的帮助,从最简单的编框开始,慢慢的到最关键的算法,这其中经历了很多弯路,也犯过了很多错误,但是还是一一攻克了,好比红军长征两万五千里终于到达了终点。看到最后自己编写出来的计算器感到格外的高兴,暂且不说计算器的功能方面吧,但毕竟是自己写的第一个正式的程序,感到格外的高兴。
在编写程序的过程中受到了其他同学的指点,也许在某些程序方面会和有的同学想类似,另外老师也帮助了很多,一个好的学生离不开一个好老师吗,虽说我不算一个好学生,但是老师在我编程序过程中也起到了很大的作用,就像老师说的一句话一样“革命尚未成功,同志仍需努力”,我们在C语言这门课上还会继续走下去,以后还会经常碰到,我会努力的。
实验一 工作平台
一、目的和要求
1、熟悉C语言程序的支持运行环境,了解所用计算机系统的软、硬件配置和使用方法。
2、初步了解运行一个C语言程序的过程。
二、实验环境
硬件环境:计算机(windows xp系统) 软件环境:Turbo C3.0或VC++6.0
三、实验内容
1.1请编写一个程序,显示以下两行文字。
I am a student.
I love China.
源程序代码:
#include
int main(void)
{printf(“I am a student. ”);printf(“I love China. ”); return 0;}
数据输入与运行结果:
1.2编写一个程序,从键盘输入两个整数,输出这两个数之和。
源程序代码:
#include
int main(void)
{int a,b,c; printf(“input two integers: ”);
scanf(“%d %d”,&a,&b);c=a+b;printf(“The sum is %d: ”,c); 数据输入与运行结果:
1.3编写一个程序,求3个整数之和。
源程序代码:
#include
int main(void)
{int a,b,c,sum;a=12,b=34,c=56;sum=a+b+c;
printf(“sum is %d ”,sum);}
数据输入与运行结果:
1.4编写一个程序,从5个整数中找出最小的数。
源程序代码:
#include
int main(void)
{int a,b,c,d,e,min;
scanf(“%d %d %d %d %d”,&a,&b,&c,&d,&e);
min=a;if(min>b) min=b;if(min>c) min=c;if(min>d) min=d;
if(min>e) min=e;printf(“min is %d ”,min);}
数据输入与运行结果:
1.5写出下列程序的输出结果。
(1)#include
int main(void)
{printf(“%d%d%d%d ”,1+2,5/2,-2_4,11%3);
printf(“%.5f%.5f%.5f ”,1.+2.,5./2.,-2._4.);
(2)#include
int main(void)
{int i=8,j=10,m=0,n=0;
printf(“%d,%d,%d,%d”,i,j,m=++i,n=j++);
(3) #include
int main(void)
{int x;
x=-3+4_5-6;printf(“%d ”,x); x=3+4%5-6;printf(“%d ”,x);
x=-3_4%-6/5;printf(“%d ”,x);x=(7+6)%5/2;printf(“%d ”,x); }
数据输入与运行结果:
1.6分析比较下面两个程序的输出结果。
(1) #include
int main(void)
{int x,y,z; x=y=2;z=3; y=x++ -1;printf(“%d %d ”,x,y);
y=++x-1; printf(“%d %d ”,x,y); y=z-- +1; printf(“%d %d ”,z,y); y=--z+1; printf(“%d %d ”,z,y); return 0;}
(2) #include
int main(void)
{int x,y,z; x=y=2;z=3; y=x + +-1;printf(“%d %d ”,x,y);
y=+ + x-1; printf(“%d %d ”,x,y); y=z - - +1; printf(“%d %d ”,z,y); y=- -z+1; printf(“%d %d ”,z,y); return 0;}
数据输入与运行结果:
实验二 C语言基础
一、目的和要求
1、进一步掌调试的方法。
2、掌握数据的输入和输出方法。
3、掌握有关运算符与表达式的运用。
二、实验环境
硬件环境:计算机(windows xp系统) 软件环境:Turbo C3.0或VC++6.0
三、实验内容
2.1 上机调试下面的程序,给出运行结果。
(1) #include
int main(void)
{float x=234.89;double y=-123.4567;printf(“%.3f,%.3e ”,x,x); printf(“%08.3f,%010.3e,%015.3e ”,x,x,x);
printf(“%g,%e ”,y,y,y);}
(2) #include
int main(void)
{char c;short i;c=’A’;i=65;
printf(“c:dec=%d oct=%o hex=%x ASCII=%c ”,c,c,c,c); printf(“i:dec=%d oct=%o hex=%x unsigned=%u ”,i,i,i,i); c=’X’;i=-4;
printf(“c:dec=%d oct=%o hex=%x ASCII=%c ”,c,c,c,c); printf(“i:dec=%d oct=%o hex=%x unsigned=%u ”,i,i,i,i);}
(3) #include
int main(void)
{char c1,c2; c1=’A’+’5’-’3’; c2=’A’+’5’-’3’; printf(“%d,%c ”,c1,c2); }
数据输入与运行结果:
2.2指出下面程序段中的错误,并加改正。
#include
int main(void)
{int a; float b; char c; scanf("%c%d%c%f";c,a,a,b);}
数据输入与运行结果:
改正后的程序:
#include
int main(void)
{int a; float b; char c; scanf("%c,%d,%f",&c,&a,&b);
printf("%c,%d,%f",c,a,b);}
运行结果:
2.3写出下面程序段执行后变量a,b,c的值。
char a=’2’,b=’a’;int c;c=a+b;a=c;
数据输入与运行结果:
程序:#include
int main(void)
{char a='2';char b='a';int c;c=a+b;a=c;
printf("%d,%d,%d",a,b,c);}
运行结果:
D. c语言实验报告总结怎么写
c语言实验报告总结这样写:
在科技高度发展的今天,计算机在人们之中的作用越来越突出。而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。
在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。
由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。包括了程序模块处理.简单界面程序.高级界面程序.程序的添加修改.用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。
上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。
学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。
为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:
1、加深对课堂讲授内容的'理解
课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。然而要使用c语言这个工具解决实际问题,又必须掌握它。
通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。
学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。
通过上机实验来验证自己编制的程序是否正确,恐怕是大多数同学在完成老师作业时的心态。但是在程序设计领域里这是一定要克服的传统的、错误的想法。因为在这种思想支配下,可能你会想办法去"掩盖"程序中的错误,而不是尽可能多地发现程序中存在的问题。
自己编好程序上机调试运行时,可能有很多你想不到的情况发生,通过解决这些问题,可以逐步提高自己对c语言的理解和程序开发能力。
2、熟悉程序开发环境、学习计算机系统的操作方法
一个c语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行。所谓"环境"就是所用的计算机系统硬件、软件条件,只有学会使用这些环境,才能进行程序开发工作。
通过上机实验,熟练地掌握c语言开发环境,为以后真正编写计算机程序解决实际问题打下基础。同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。
3、学习上机调试程序
完成程序的编写,决不意味着万事大吉。你认为万无一失的程序,实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆错误。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。
开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。有时候一个消耗你几个小时时间的小小错误,调试高手一眼就看出错误所在。
通过这次为数不多的几天计算机实践学习,我们了解了一些关于c语言的知识,理解巩固了我们c语言的理论知识,着对我们将来到社会工作将会有莫大的帮助。同时它让我知道,只要你努力,任何东西都不会太难!
E. c语言设计程序报告
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
void cut();
void in();
void display();
int keep();
int enter();
struct msg
{
int num;
char name[20];
float score1;
float score2;
float score3;
double ave;
}
main()
{
struct msg student[10];
int i,n=0,k,m;
printf("请输入学员信息.\n");
n=enter(student);
printf("\n排序前学员信息如下:\n");
printf("\t学号 \t姓名 \t平均成绩\n");
for(i=0;i<n;i++)
printf("\t%d \t%s \t%f\n",student[i].num,student[i].name,student[i].ave);
printf("\n");
printf("\n排序后学员信息如下:\n");
display(student,n);
printf("\n\n是否要插入新学员?<y or n>");
k=keep();
if(k==0) exit(k); //如果输入的不是y退出程序
else
{
in(student,n);
}
printf("\n\n是否要删除某个学员?<y or n>");
k=keep();
if(k==0) exit(k);
else
{
m=n+1; //之前插入了一个学生,所以数组增加1
cut(student,m);
}
}
int keep() //是否继续条件判断函数
{
char ans;
fflush(stdin);
ans=getchar();
if (ans=='y')
return 1;
else
return 0;
}
int enter(struct msg student[10]) //录入结构数据函数
{
int i,k,n=0;
for(i=0;;i++)
{
student[i].num=i+1;
printf("\n学号:%d\n",student[i].num);
printf("姓名: ");
fflush(stdin);
gets(student[i].name);
if(i==0) printf("\n三门成绩:\n");
printf("成绩1:");
scanf("%f",&student[i].score1);
printf("成绩2:");
scanf("%f",&student[i].score2);
printf("成绩3:");
scanf("%f",&student[i].score3);
student[i].ave=(student[i].score1+student[i].score2+student[i].score3)/3.0;
n++;
printf("是否要继续?<y or n>");
k=keep();
if(k==1)
continue;
else
{
break;
}
}
return n;
}
void display(struct msg student[],int n) //排序函数,多次调用
{
int i,j,temp1;
char temp2[20];
double temp;
printf("\t学号 \t姓名 \t平均成绩\n");
for(i=0;i<n;i++)
{
for(j=0;j<n-i-1;j++)
{
if(student[j].ave<student[j+1].ave)
{
temp=student[j].ave;
student[j].ave=student[j+1].ave;
student[j+1].ave=temp;
temp1=student[j].num;
student[j].num=student[j+1].num;
student[j+1].num=temp1;
strcpy(temp2,student[j].name);
strcpy(student[j].name,student[j+1].name);
strcpy(student[j+1].name,temp2);
}
}
}
for(i=0;i<n;i++)
printf("\t%d \t%s \t%f\n",student[i].num,student[i].name,student[i].ave);
}
void in(struct msg student[],int n) //插入函数
{
int k;
k=n+1;
printf("\n请输入要插入学员的信息\n");
student[n].num=k;
printf("\n学号:%d\n",student[n].num);
printf("姓名:");
fflush(stdin);
gets(student[n].name);
printf("\n三门成绩:");
printf("\n成绩1:");
scanf("%f",&student[n].score1);
printf("成绩2:");
scanf("%f",&student[n].score2);
printf("成绩3:");
scanf("%f",&student[n].score3);
student[n].ave=(student[n].score1+student[n].score2+student[n].score3)/3.0;
printf("\n插入新学员后学员的信息如下\n");
display(student,k);
}
void cut(struct msg student[],int n)//删除函数
{
int i,k1,j,m;
printf("输入要删除的学员的学号:");
scanf("%d",&k1);
for(i=0;i<n;i++)
{
if(student[i].num==k1)
break;
}
for(j=i;j<n-1;j++)
{
student[j].num=student[j+1].num;
strcpy(student[j].name,student[j+1].name);
student[j].ave=student[j+1].ave;
}
m=n-1;
printf("\n删除后学员的信息如下:\n");
display(student,m);
}
这个也是和你差不多的学生成绩设计,对其进行排序,删除,添加,研究一下你那个应该就差不多了
F. C语言程序设计报告的格式
课程设计(实践周)报告书一般有如下内容:
1. 目录
目录是将报告书内的章节标题依次排列。
2. 需求分析
主要内容包括本课程设计(实践周)题目、课程设计(实践周)任务及要求、课程设计(实践周)思想、软硬件运行环境及开发工具。
3. 概要设计
主要叙述本课题设计的流程图(各功能模块)、主要的数据结构、完成本课程设计(实践周)所用方法及其原理的简要说明。
4. 详细设计
主要是本课题所需要的硬件设计与软件设计,包含建立设计所需的数学模型并列出必要的计算公式、计算过程及说明,主要算法的设计与实现,写出设计计算结果;绘出计算机程序框图,写出自编的程序。
5. 调试与操作说明
系统调试分析与操作使用说明。
6. 课程设计(实践周)总结与体会
主要对本课题开发过程进行归纳和总结,本课题在设计过程中所遇到的技术难点及解决方法。还应包括本课题尚存在的问题,以及进一步开发的见解与建议。并写出通过本次课程设计(实践周)的收获和体会。
7. 致谢
以简短的文字对在设计研究和设计报告撰写过程中曾直接给予帮助的人员表示自己的谢意
8. 参考文献
为了反映论文的科学依据和作者尊重他人研究成果的严肃态度以及向读者提供有关信息的出处,应列出本课程设计(实践周)所涉及的主要参考文献。
9. 附录
有些材料编入文章主体会有损于编排的条理性和逻辑性,或有碍于文章结构的紧凑和突出主题思想等,可将这些材料作为附录编排于全文的末尾。