《C语言课程设计》实验报告
c语言实验报告实验

c语言实验报告实验C 语言实验报告实验一、实验目的本次 C 语言实验的主要目的是通过实际操作和编程实践,加深对 C 语言基本语法、数据类型、控制结构、数组、指针等重要概念的理解和掌握,提高编程能力和解决实际问题的能力。
二、实验环境本次实验使用的编程环境为 Visual Studio 2019,操作系统为Windows 10。
三、实验内容1、基本数据类型和运算符的使用定义不同类型的变量,如整数型(int)、浮点型(float、double)、字符型(char)等,并进行赋值和运算操作。
熟悉各种运算符的优先级和结合性,包括算术运算符(+、、、/、%)、关系运算符(>、<、>=、<=、==、!=)、逻辑运算符(&&、||、!)、位运算符(&、|、^、~、<<、>>)等。
2、控制结构的应用使用ifelse 语句实现条件判断,根据不同的条件执行相应的代码块。
运用 switch 语句进行多分支选择,处理不同的情况。
利用 for 循环、while 循环和 dowhile 循环实现重复执行的操作,例如计算数列的和、打印特定的图案等。
3、数组和字符串的操作定义和使用一维数组、二维数组,进行数组元素的访问、赋值和遍历。
掌握字符串的存储和处理方式,使用字符数组和字符串函数(如strlen、strcpy、strcmp 等)进行字符串的操作。
4、指针的应用理解指针的概念和指针变量的定义,通过指针访问变量和数组元素。
实现指针与数组、指针与函数的结合使用,体会指针在程序中的灵活运用。
5、函数的定义和调用编写自定义函数,实现特定的功能,如计算阶乘、判断素数等。
掌握函数的参数传递方式(值传递和地址传递),理解函数的返回值。
6、结构体和共用体的使用定义结构体类型,创建结构体变量,访问结构体成员。
了解共用体的概念和使用场景,比较结构体和共用体的区别。
四、实验步骤1、实验准备打开 Visual Studio 2019 开发环境,创建一个新的 C 语言项目。
2023最新-c语言程序设计实验报告【2篇】

c语言程序设计实验报告【2篇】c语言程序设计实验报告篇一实验名称计算出1000以内10个最大素数之和实验目的1、熟练掌握if、if…else、if…else if语句和witch语句格式及使用方法,掌握if语句中的嵌套关系和匹配原则,利用if语句和switch语句实现分支选择结构。
2、熟练掌握while语句、do…while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。
3、掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。
进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。
实验内容计算并输出1000以内最大的10个素数以及它们的和。
要求:在程序内部加必要的注释。
由于偶数不是素数,可以不考虑对偶数的处理。
虽然在1000以内的素数超过10个,但是要对1000以内不够10个素数的情况进行处理。
输出形式为:素数1+素数2+素数3+…+素数10=总和值。
算法描述流程图main函数:判断素数:源程序#include#includeint sushu(int n)/* 判断素数的函数*/{int t,i;t=sqrt(n);for(i=2;i=t;i++)if(n%i==0)/* 如果不是素数,返回0 */return 0;return n;/* 如果是素数,返回该数*/}void main(){int i,j=0,n,m=0,a[1000],x;/*clrscr();*/printf(please input a number form 1 to 1000:);scanf(%d,amp;x);if(x==2)/* x=2时的处理*/printf(%dn,x);else if(x=1) /* x在1~1000范围外时的处理*/printf(error!n);else{if(x%2==0)/* x为偶数时,把x变为奇数*/x--;for(i=x;i1;i-=2)/* x为奇数时,做函数计算*/{n=sushu(i);/* 做判断素数的函数调用*/if(n!=0)/* 对素数的处理*/{a[j]=n;/* 把素数由大至小存入数组a[ ]中*/j++;if(j11)m+=n; /* 统计前10个素数之和*/}}if(j10)/* 当素数个数小于10个时,结果输出*/{for(i=0;i{n=a[i];printf(%d,n);printf(+);}printf(2=);printf(%dn,m+2);}else for(i=0;i10;i++)/* 当素数个数大于等于10个时,结果输出*/{n=a[i];printf(%d,n);if(i9)printf(+);else{printf(=);printf(%dn,m);}}}}测试数据分别输入1000、100、10测试。
C语言课程实习(优秀范文5篇)

C语言课程实习(优秀范文5篇)第一篇:C语言课程实习课程实习一、C程序上机操作方法及运行环境编写一个C程序,输入a, b, c,d四个值,输出其中最小者。
#includemain(){int a,b,c,d,t;printf(“Please input numbers:”);scanf(“%d,%d,%d,%d”,&a,&b,&c,&d);t=min(min(min(a,b),c),d);printf(“min number is:%dn”,t);}int min(int x,int y){int z;if(xz=x;elsez=y;return(z);}运行结果:Please input numbers:4,6,3,9min number is:3课程实习二、C程序上机操作方法及运行环境从键盘输入三个字符,要求输出这三个字符,并输出它们的ASCII 码及其ASCII码的平方根和的平方。
#include#includevoid main(){char ch1,ch2,ch3;float t;scanf(“%c,%c,%c”,&ch1,&ch2,&ch3);t=sqrt(ch1)+sqrt(ch2)+sqrt(ch3);printf(“%c,%dn”,ch1,ch1);printf(“%c,%dn”,ch2,ch2);printf(“%c,%dn”,ch3,ch3);printf(“%fn”,t*t);}运行结果:a,b,ca,97b,98c,99881.984683课程实习三、循环结构程序设计1)输入两个正整数m和n;2)如果m=n输出最大公约数m程序结束;3)若m>n则m=m-n否则n=n-m;4)返回到2)(循环)。
#includevoid main(){int m,n;scanf(“%d%d”,&m,&n);while(m!=n){if(m>n)m=m-n; else n=n-m;}printf(“%dn”,m); }运行结果:34,24课程实习四、循环结构程序设计打印下面的图案# # # # ## # # ## # ## ##includevoid main(){int i,j;for(i=1;i<=4;i++) {for(j=1;jprintf(“ ”);for(j=5;j>=i;j--) printf(“*”); putchar('n');}}课程实习五、数组的应用输入一个0到150之间的十进制整数,要求把此数转化为二进制形式。
c语言程序设计实验报告

c语言程序设计实验报告一、实验目的本次实验旨在通过设计C语言程序来加深对于C语言的理解和掌握,同时也可以掌握一些实用的编程技巧和方法。
通过编写程序实现对于输入输出的处理、循环语句和条件语句的运用以及函数调用等内容的练习。
二、实验内容本次实验涉及以下三个方面的内容:1. 程序的的输入输出我们通过编写程序来实现一个简单的输入输出功能,即用户输入任意一个整数,程序输出该整数的两倍。
2. 循环语句和条件语句的运用我们通过编写程序来实现以下两个功能:(1)输入一个正整数,计算该数的阶乘。
(2)输入一个正整数n,输出n行的杨辉三角形。
3. 函数调用我们通过编写程序来实现以下两个功能:(1)输入三个整数a、b和c,求其中最大的一个数。
(2)输入一个字符串,程序输出该字符串中每个字母在字符串中出现的次数。
三、实验过程1. 程序的输入输出我们通过使用scanf函数来实现输入一个整数的功能:int n;scanf("%d", &n);然后我们可以通过printf函数来输出该整数的两倍的值:printf("%d", n*2);2. 循环语句和条件语句的运用(1)计算阶乘我们可以利用for循环语句来实现计算阶乘的功能:long long ans = 1;for(int i = 1; i <= n; i ++){ans *= i;}printf("%lld", ans);(2)输出杨辉三角我们可以利用嵌套的for循环语句来实现输出杨辉三角的功能:for(int i = 1; i <= n; i ++){for(int j = 1; j <= i; j ++){if(j == 1 || j == i)printf("1 ");elseprintf("%d ", a[i-2][j-2]+a[i-2][j-1]);}printf("\n");}3. 函数调用(1)求最大值我们可以利用函数调用来实现求最大值的功能:int max(int a, int b, int c){int temp = a > b ? a : b;return temp > c ? temp : c;}然后我们可以通过调用该函数来求解三个数中的最大值:int a, b, c;scanf("%d%d%d", &a, &b, &c);printf("%d", max(a, b, c));(2)计算字符次数我们可以利用一个数组来记录每个字母出现的次数,然后通过遍历输入的字符串来对应更新数组。
c语言课程设计实习报告

c语言课程设计实习报告一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据结构、算法和编程思想,培养学生运用C语言解决实际问题的能力。
具体分为以下三个层面:1.知识目标:学生需要掌握C语言的基本语法、关键字、数据类型、运算符、控制结构、函数、数组、指针、结构体等基本概念。
2.技能目标:学生需要能够运用C语言进行程序设计,熟练使用C语言编写和调试程序,掌握常用的调试技巧。
3.情感态度价值观目标:培养学生对计算机科学的兴趣和热情,提高学生独立思考、解决问题的能力,培养学生的团队协作精神和创新意识。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、算法和编程思想。
具体安排如下:1.C语言的基本语法:介绍C语言的基本规则,包括关键字、数据类型、运算符、控制结构等。
2.数据结构:讲解常用的数据结构,如数组、链表、栈、队列、树等。
3.算法:介绍常见的排序算法、查找算法、递归算法等。
4.编程思想:培养学生面向对象编程的思想,讲解面向对象编程的基本概念,如类、对象、封装、继承、多态等。
三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性。
具体方法如下:1.讲授法:教师讲解C语言的基本语法、数据结构、算法和编程思想,帮助学生建立知识体系。
2.案例分析法:通过分析实际案例,让学生了解C语言在实际应用中的优势和局限。
3.实验法:安排上机实验,让学生动手编写C语言程序,培养学生的编程能力。
4.讨论法:学生进行小组讨论,分享学习心得,互相促进,提高学习效果。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。
具体如下:1.教材:选用权威、实用的C语言教材,如《C程序设计语言》、《CPrimer Plus》等。
2.参考书:提供丰富的参考书籍,如《C语言入门教程》、《C语言编程实践》等。
3.多媒体资料:制作精美的PPT,提供视频教程、在线编程练习等资源,帮助学生更好地理解和掌握C语言。
c语言课程设计设计报告

c语言课程设计设计报告c语言课程设计设计报告「篇一」c语言课程设计实验报告第一章基础掌握1.1 实验目的掌握C程序设计编程环境Visual C++,掌握运行一个C程序的基本步骤,包括编辑、编译、链接和运行。
(]1.2 实验要求在报告中记录建立、保存C程序实习过程。
1.3 实验基本内容编写程序,在屏幕上显示一个短句“Hello World”(1)程序:1)编译如下程序:#includeVoid main{printf (“Hello World! ”);}2)链接。
执行Build-命令。
3)运行。
执行Build Execute 命令。
显示结果。
4)关闭程序工作区。
(2)运行结果:输出结果:Hello World!总结:掌握C语言程序设计的基本框架,能够编写简单的程序。
第二章数据类型2.1 实验目的(1)掌握C语言的运算符和表达式的正确使用以及C语言的几种基本数据类型和基本输入输出函数的使用方法。
()(2)通过编程进一步理解和掌握运算符的确切含义和功能。
2.2 实验要求(1)在报告中记录建立、保存C程序实习过程。
(2)完成典型题目,分析遇到的困难和实验中的收获。
2.3 实验基本内容输入程序,观察输出结果 1>./*test2.1c*/1)编译如下程序: #includevoid main{char ch; int k;ch='a',k='b';printf("%d,%x,%c",ch,ch,ch,ch,k); printf("k=%%d ",k) }2)链接。
执行Build-命令。
3)运行。
执行Build Execute 命令。
显示结果。
4)关闭程序工作区。
2>./*test2.2c*/1)编译如下程序: #includevoid main{float a1,a2; double b1,b2; a1=1234.12; a2=0.000001; b1=1234.12; b2=0.000001;printf("%f,%l f ",a1+a2,b1+b2);}2)链接。
c语言课程设计实训报告

c语言课程设计实训报告一、教学目标本课程旨在通过C语言的实训,使学生掌握C语言的基本语法、数据结构、算法以及编程技巧,培养学生独立编程和解决问题的能力。
具体的教学目标如下:1.理解C语言的基本语法和编程规范。
2.掌握基本数据类型、运算符和表达式。
3.熟悉控制结构、函数、数组和指针的概念及应用。
4.理解面向对象编程的基本概念。
5.能够使用C语言编写简单的程序,解决实际问题。
6.掌握程序调试和运行的基本方法。
7.学会查阅相关资料,具备一定的自主学习能力。
情感态度价值观目标:1.培养学生的团队合作精神和良好的编程习惯。
2.激发学生对计算机科学和程序设计的兴趣。
3.培养学生的创新思维和问题解决能力。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、算法和编程技巧。
具体的教学大纲如下:1.C语言概述:介绍C语言的发展历程、特点和基本语法。
2.基本数据类型和运算符:整型、浮点型、字符型数据及其运算符。
3.控制结构:顺序结构、选择结构和循环结构。
4.函数:函数的定义、声明和调用,递归函数。
5.数组和指针:一维、二维数组,指针的概念和应用。
6.面向对象编程:类、对象、封装、继承和多态。
7.编程技巧:代码规范、调试方法、算法分析和优化。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
1.讲授法:通过讲解C语言的基本概念和语法,使学生掌握知识要点。
2.讨论法:学生进行小组讨论,培养学生的团队合作精神和问题解决能力。
3.案例分析法:分析实际案例,让学生了解C语言在实际应用中的重要作用。
4.实验法:让学生动手编写程序,培养学生的实际编程能力和创新思维。
四、教学资源为了支持教学内容和教学方法的实施,本课程将采用以下教学资源:1.教材:《C程序设计语言》(K&R著)或《C Primer Plus》(Stephen Prata著)。
2.参考书:《C语言程序设计》(谭浩强著)、《C++ Primer》(Stanley B. Lippman著)。
C语言课程设计实验报告

C语言课程设计实验报告1前言........................................................................................................ 错误!未定义书签。
2需求分析.. (1)2.1要求 (1)2.2任务 (1)2.1运行环境 (1)2.1开发工具 (1)3系统分析3系统分析 (1)2.1要求 (1)2.1要求 (1)2.1要求 (1)4总体设计2.1要求 (1)2.1流程图 (1)2.1要求 (1)1 前言用C语言编写一个约为两千行的程序来实现图形化界面下的海空模拟作战系统。
建立简单的海军与空军交战场景,有较好的舰船、地空导弹、飞机、炸弹等图形模型,可人人对战或人机对战,具有计分、判胜负等具体功能。
首先,通过C语言中图形化操作的函数画出比较逼真的战舰群与飞机群,并将画图的程序写成模块,将画出战舰与飞机的程序模块分开分别存入不同个文件;其次,在各自的文件中用C语言中定位屏幕坐标与图形动画的函数实现发射导弹或投弹的功能,并通过参数的变化控制其发动攻击;再者,编程实现战舰与飞机接受攻击的次数并设定其被击沉或击落的状态,即将其从屏幕上清除掉,在此环节中设定接受攻击次数最多的战舰或飞机为指挥中心,并实现战舰或飞机的移动;在模式一下,随着指挥中心前进,指挥中心的移动随操作者用鼠标而动,这一功能通过C语言中移动屏幕的程序完成;模式二下,舰队或机队可分为两或三部分,这一功能可由调用画图的模块完成,主机所在的队仍由操作者通过鼠标指挥,其他两部分可在战斗前先设定行进路线,在行进过程中用按键控制其攻击,也可在战斗过程中按键暂停请入指挥模式,对其攻击路线尽心临时设置,但暂停次数有限;最后,编写程序对系统进行总体控制,包括进入战斗模式,选择模式(人人,人机),并调用各个模块通过各个模块之间的参数传递时整个系统可以有效的运行,战斗状态用一个循环来实现,并记录战斗双方的损失,最后根据哪一方的指挥中心先被击毁来判断输赢,任一方指挥中心被毁战斗就结束,即程序跳出循环,最后输出双方损失。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C语言课程设计》报告学院:信息工程学院专业:信息管理与信息系统设计题目:通讯录程序设计班级:2016级一班学号:201601510138 姓名:张进步指导教师:杨菲菲时间:12.24学生通讯管理系统1.1 设计目的学习如何实现一个复杂的信息管理系统——学生通讯管理系统,能够实现老师对学生基本信息的记录、查询、修改。
通过本次学习,读者能够掌握:(1)如何设计主菜单和子菜单,以及各级菜单的响应与返回操作;(2)如何合理设计不同的结构体对系统中多个实体进行封装;(3)如何合理设计多个结构体数组管理不同实体对应的数据;(4)如何对复杂的函数过程进行拆分,用多个子函数进行封装;(5)进一步熟悉文件读取的相关操作。
1.2需求分析本章的学生信息管理系统的主要功能面向老师,能够实现对学生信息进行录入、修改、查询。
学生信息方面的功能需求如下。
(1)新增学生信息,包括姓名、籍贯、电话号码(2)、电子邮箱。
(2)修改学生信息,可以选择对某个学生的某个属性值进行修改。
(3)查找学生信息,即输入要查找的学生学号,实现学生信息查询。
(4)显示所有学生信息,并以列表的形式清晰呈现。
1.3总体设计系统功能结构图如图所示;学生信息管理系统学生信息管理模块:包括4个子模块,分别是学生信息的录入,学生信息的修改,学生信息的查询,学生信息的浏览。
1.4详细设计与实现1.4.1 预处理及数据结构1.头文件本项目涉及4个头文件,其中#include<string.h>使用字符串的函数的时候需要添加此头文件,#include<stdio.h>#include<stdlib.h> /*system使用的函数*/#include<conio.h> /*getchar、getch函数使用的头文件*/#include<string.h> /*strcmp比较2个字符串是否一样*/2.宏定义LEN sizeof(struct student)表示struct student的长度。
DATA是按格式输出结构体的各项数据,能够方便输出操作,减少代码量。
#define_CRT_SECURE_NO_W ARNINGS#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<string.h>#define LEN sizeof(struct student)#define FORMAT "%-8d%-15s%-15s%-15d%-15d%-15s\n"#define DATA stu[i].numb,stu[i].name,stu[i].nat,stu[i].num1,stu[i].num2,stu[i].mail3.结构体利用一个结构体struct studentstruct student/*定义学生信息结构体*/{int numb;/*学号*/char name[15];/*姓名*/char nat[16];/*籍贯*/int num1;/*电话号码1*/int num2;/*电话号码2*/char mail[40];/*邮箱*/};4.全局变量分别利用全局变量结构体数组struct student stu[50];来记录所有学生的基本信息,避免程序运行过程中多次初始化,方便各个式子函数调用。
struct student stu[50];1.4.2 主函数1.功能设计主函数显示系统主界面,提供5个选项供用户选择,分别是退出、录入信息、修改信息、查询信息、浏览信息。
子系统功能执行完还可以回到主界面,供用户执行其他操作。
用户输入0可以直接退出系统,输入不在0-4之间的数字,不显示信息,等待用户输入正确数字。
2.实现代码1)函数声明部分void in();/*录入学生通讯信息*/void show();/*浏览学生通讯信息*/void modify();/*修改学生通讯信息*/void menu();/*主菜单*/void search();/*查找学生通讯信息*/2)函数实现部分(1)main函数主函数首先调用void menu()函数绘制主界面,在主界面中会提示用户输入数字,然后利用switch 语句根据用户的输入,执行相应的操作,比如用户输入1,系统会进入录入学生信息界面。
Switch语句被镶嵌在一个while循环中,用于执行完某个子系统的功能后,自动回到主界面,等待输入新的操作选项,周而复始,指导用户输入0退出系统结束程序。
void main()/*主函数*/{ int n;menu();scanf("%d",&n);/*输入选择的编号*/while(n){ switch(n){ case 1: in();break;case 2: search();break;case 3: modify();break;case 4: show();break;default:break;}_getch();menu();/*执行完功能再次回到主界面*/scanf("%d",&n);}}(2)void menu()函数该函数绘制系统主界面的菜单选项。
其中,system(“cls”)函数实现了清屏的功能,执行完子系统功能后再次回到系统主界面时,需要先清屏后绘制。
void menu(){system("cls");/*清屏函数*/printf("\n\n\n\n\n");printf("\t\t|---------------------STUDENT-------------------|\n");printf("\t\t|\t 0.退出|\n");printf("\t\t|\t 1.录入信息|\n");printf("\t\t|\t 2.查询信息|\n");printf("\t\t|\t 3.修改信息|\n");printf("\t\t|\t 4.浏览信息|\n");printf("\t\t|-----------------------------------------------|\n\n");printf("\t\t\tchoose(0-4):");}核心界面系统主界面如图所示,提供四个选项,分别可以进入四个子系统,输入0直接退出系统。
输入不在0-4之间的数字,不显示信息,等待用户输入正确数字。
(3)void search()函数该函数实现查找学生信息的功能,该函数作为修改学生信息的基础,首先需要查询到该学生,然后才能进行修改操作。
void search()/*自定义查找函数*/{ FILE *fp;int snum,i,m=0;char ch[2];if((fp=fopen("D:data.txt","rb"))==NULL){ printf("不能打开\n");return;}while(!feof(fp)) if(fread(&stu[m],LEN,1,fp)==1) m++;fclose(fp);if(m==0) {printf("没有记录\n");return;}printf("请输入学号:");scanf("%d",&snum);for(i=0;i<m;i++)if(snum==stu[i].numb)/*查找输入的学生信息是否在记录*/{ printf("查找到该学生信息是否显示?(y/n)");scanf("%s",ch);if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0){printf("学号姓名籍贯电话1 电话2 电子邮箱\t\n");printf(FORMAT,DATA);/*将查找到的结果按指定形式输出*/break;}}if(i==m) printf("为查找到该生信息\n");/*未找到要查找的信息*/}(4)void modify()修改函数该函数实现修改学生信息的功能。
首先search()查找函数是基础,找到后询问是否修改,修改时重新输入该生信息,输入完毕后,调用save函数将修改后的信息存入文件。
并提示用户学生信息修改成功,结束函数。
void modify()/*自定义修改函数*/{ FILE *fp;int i,j,m=0,snum;if((fp=fopen("D:data.txt","r+"))==NULL){ printf("不能打开\n");return;}while(!feof(fp))if(fread(&stu[m],LEN,1,fp)==1) m++;if(m==0){printf("没有记录\n");fclose(fp);return;}show();printf("请输入要修改的学生的学号\n");printf("要修改的学号:");scanf("%d",&snum);for(i=0;i<m;i++){if(snum==stu[i].numb)/*检索记录中是否有要修改的信息*/{printf("找到学生信息您可以修改\n");printf("姓名:");scanf("%s",stu[i].name);/*输入名字*/printf("籍贯:");scanf("%s",&stu[i].nat);/*输入籍贯*/printf("电话号码1:");scanf("%d",&stu[i].num1);/*输入电话号码1*/printf("电话号码2:");scanf("%d",&stu[i].num2);/*输入电话号码2*/printf("电子邮箱:");scanf("%s",&stu[i].mail);/*输入电子邮箱*/printf("修改成功!");if((fp=fopen("D:data.txt","wb"))==NULL){ printf("不能打开\n");return;}for(j=0;j<m;j++)/*将新修改的信息写入指定的磁盘文件中*/ if(fwrite(&stu[j] ,LEN,1,fp)!=1){ printf("未能保存"); _getch(); }fclose(fp);return ;}}printf("没有找到匹配信息\n");}(5)void show()函数该函数是为了按格式显示所有学生的信息。