C语言实习报告范文
设计报告
一, 实验目的:
通过上机实习,熟练掌握循环语句、选择语句、指针以及结构体的运用技巧。在实习中通过实际操作,编写程序,发现问题,最后解决问题,提升对c语言实用性的理解,在实践中巩固各知识点。
C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点,上机实习可以帮助我们更好地理解这种结构式的中级语言以及其各式各样的数据类型和高效率的运算程序,为我们进一步学习C++打下坚实基础。
同时,在实习过程中,通过互相发现问题,共同解决问题,不仅锻炼了我们的合作能力,而
且也让我们发现了一些自己的个人误区以及其他人容易犯的错误,从而在今后的学习中更加谨慎,达到事半功倍的效果;通过询问老师,也让我们养成了不耻下问的好习惯,这将很有利于以后的学习。
闲乐-一个人闲。不如大家一块儿乐/retype/zoom/9861aabdfd0a79563c1e72ad?pn=2&x=0&y=0&raww=312&rawh=443&o=jpg_6_0_______&type=pic&aimh=443&md5sum=5742db4fcffa47783d15ae929b606fc2&sign=17301cfe1e&zoom=&png=276-8578&jpg=0-25354" target="_blank">点此查看
<通过冒泡法对数组进行排序>
<测试时由于循环语句循环次数的错误导致部分数据没有排序,修改for语言中的条件即可调试成功>
2,程序:
#includeint main() { int a[11],i,j,t,b,c,temp1,temp2,temp3; //定义一个数组a[11],用以存放学生的成绩 printf("从键盘输入10个学生成绩: "); for(i=0;i<10;i++)scanf("%d",&a[i]);//输入10个学生成绩 for(i=0;i<9;i++)for(j=0;j<9-i;j++) if(a[j]<a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;} //采用冒泡法,将学生成绩按照从高到低进行排序
printf("10个学生成绩数组: "); for(i=0;i<10;i++)printf("%5d",a[i]);
printf(" "); printf("再输入一个学生的成绩 ");
scanf("%d",&b); //再输入一个学生的成绩c=a[9]; if(b<c)//将此成绩按照排序规律插入原学生成绩数组a[10]=b; else {for(i=0;i<10;i++) {if(a[i]<b) {temp1=a[i];a[i]=b; for(j=i+1;j<11;j++) {temp2=a[j];a[j]=temp1;temp1=temp2; }break; } } }
printf("11个学生成绩数组: "); for(i=0;i<11;i++) printf("%5d",a[i]);printf(" ");
for(i=0;i<5;i++) {temp3=a[i];a[i]=a[10-i];a[10-i]=temp3; }
printf("排好序的成绩单进行反序存放为: ");
for(i=0;i<11;i++) printf("%5d",a[i]);printf(" ");return 0; }
3,运行结果:
//输入11个学生成绩 //排好序的成绩单进行反序存放 //输出反序存放后的学生成绩数组
课题名称: 通讯录管理系统
专 业:计算机信息管理
班 级:09信管(1)班
学 号:
姓 名:
指导教师:
2010 年 7 月 1 日
目 录
1 课程设计目的??????????????????? 1
2 课程设计题目??????????????????? 1
3 课程设计报告内容????????????????? 1
4 结论??????????????????????? 10
5 结束语?????????????????????? 10
6 参考书目????????????????????? 10
7 程序运行????????????????????? 10
8 附录:(源程序清单)???????????????? 12
一、课程设计题目
《通讯录管理系统》
二、实训目的
(1)掌握结构化程序设计的基本方法,基本掌握面向对象程序设计的基本思路和方法。
(2)掌握C的基本概念和基础知识。
(3)通过训练能够读懂较为复杂的C语言源程序并具备基本C语言程序设计的能力。
(4)熟练掌握各种常用类的定义,继承,文件的应用,为更好的理解面向对象打下更好的基础。
(5)通过实训,培养自己编写、调试、分析大型应用程序的.能力。
(6)掌握面向对象的基本原理,提高学生综合程序设计的能力。
(7)培养自己独立解决问题,查找资料的能力。同学之间相互帮助,相互交流,相互合作的团队精神。
(8) 培养自己良好的学习兴趣,独立的编程风格。
(9) 通过实训检查自己学习上的不足,达到熟练掌握C语言的基本知识和技能。
三、课程设计报告内容
3.1功能要求
该系统运行在DOS环境下,人机界面为命令行文本界面。完成的任务是对若干人的通信录信息进行管理,且数据保存到文件中。
实现的主要功能是:
? 添加:增加一个或几个人的通信录信息。
? 删除:删除已输入的通信录信息。
? 查询:根据输入的姓名查找通信录信息。
? 修改:根据输入的姓名修改通信录信息。
? 显示:输出所有通信录信息。
3.2 设计环境
所使用的语言采用标准C,开发工具选用在Windows环境下的C-free、Win-TC或者Visual C++ 6.0。
3.3 数据结构
本系统是对通信录的信息进行管理,通信录记录的信息采用C的结构体数据类型描述,定义如下:
struct ren /*定义个人资料结构体类型*/
{
char name[10];/*姓名*/
int age; /*年龄*/
char tel[12]; /*电话号码*/
char city[20];/*城市 */
char units[30] ; /*所在单位*/
char note[20]; /*备注*/
};
3.4实现方法及主要算法分析
(1)主界面的设计:主界面采用文本菜单的形式,各功能调用通过菜单进行选择。采用循环处理,以便执行完某项处理后,仍可选择其他项处理。在循环内先显示提示信息,然后读取用户输入,使用switch语句对用户的输入进行判断,分别调用相应的模块,当某模块结束后再次回到文本菜单,直到用户选择结束程序菜单,才退出循环,从而退出系统。
(2) 外部文件的类型:文件采用的二进制的文件,对文件的读写采用顺序文件的方式,并使用fread和fwrite等函数对文件进行操作。
(3)清屏函数:一般由上一级菜单屏幕进入下一级菜单屏幕或由下一级菜单屏幕返回上一级菜单屏幕都需要清除屏幕原来显示的内容。同时在调用程序的过程中,记录需要清屏的位置,然后修改代码,加入clrscr()函数清屏。
(4)提示信息:一般的输入与输出需有相应的提示信息,以增加用户的交互性,增加输出的可读性,以帮助用户使用程序。
(5)设置颜色:textbackground()、textcolor()函数设置背景和前景颜色
(6)光标定位:gotoxy(列,行); 光标定位
3.5模块设计
根据功能要求,本系统为五大主要模块,具体模块如表所示。
表 通讯录管理管理系统的模块
3.6处理流程
C课程设计
一、课程设计目的
《C语言课程设计》是信息类专业的重要实践性课程。目的在于学习完《C语言程序设计》课程后进行的一次全面的综合练习。通过课程设计,一方面可以结合课程的教学内容循序渐进地进行设计方面的实践训练,另一方面,在参与一系列子项目的实践过程中,还能提高如何综合运用所学知识解决实际问题的能力,以及获得相关项目管理和团队合作等众多方面的具体经验。为后续课程:面向对象程序设计、Visual C++,数据结构,软件工程,软件技术基础等奠定必要的实践基础。
设计目的如下:
1、进一步培养学生结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解。
2、针对C语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。
3、掌握C语言的编程技巧和上机调试程序的方法。
4、掌握程序设计中的常用算法。
二、课程设计题目及要求
1、基础训练题目
1.1基础
1.1.1写出下面程序的输出结果。
1)#include
main( )
{
int x;
x=-3+4*5-6;printf(“%d ”,x);
x=3+4%5-6; printf(“%d ”,x);
x=-3*4%4-6/5; printf(“%d ”,x);
x=(7+6)%5/2; printf(“%d ”,x);
}
2)# include
main()
{
int x=5;
int y=6;
int z=7;
printf(" %d %d %d %d %d %d %d ",x>y,y>x,x!=y,x==z-2,x=x-2,x>=z,x<=z);
}
3 ) #include
main()
{
int x=0,y=-1,z=1;
printf("%d,%d,%d,%d,%d,%d",x&&y,x||y,y&&z,y||z,x&y,x|y);
}
1.2顺序结构
1)已知三角形的底和高,求三角形的面积
法一、 #include
main()
{
float a,b;
scanf("a=%f,b=%f",&a,&b);
printf("MJ=%.2f",(a*b)/2.0);
}
法二、 #include
main()
{
float a,b,s;
scanf("a=%f,b=%f",&a,&b);
s=a*b/2;
printf("s=%.1f",s);
}
2)若已知某银行一年定期的存款年利率,输入存款额,计算三年后本利之和并输出。 年利率rate,存款期n,存款本金capital,本利之和deposit。
#include
#include
main()
{
int n=3;
double rate=0.02;
double capital;
double deposit;
printf("Please ente capital:");
scanf("%lf",&capital);
deposit=capital*pow(1+rate,n);
printf("deposit=%.2f ",deposit);
}
#define N 3 改4
#define RATE 0.02 改0..01
#include
#include
main()
{
double capital;
double deposit;
printf("Please ente capital:");
scanf("%lf",&capital);
deposit=capital*pow(1+RATE,N);
printf("deposit=%.2f ",deposit);
}
改
1.3选择结构
1)输入四个整数,要求按大小顺序输出
# include
main()
{
int a,b,c,d,t;
printf("please input 四个整数 ");
scanf("%d%d%d%d ",&a,&b,&c,&d);
if(a<b)
{t=a;a=b;b=t;}
if(a<c)
{t=a;a=c;c=t;}
if(a<d)
{t=a;a=d;d=t;}
if(b<c)
{t=b;b=c;c=t;}
if(b<d)
{t=b;b=d;d=t;}
if(c<d)
{t=c;c=d;d=t;}
printf("%d %d %d%d ",a,b,c,d);
}
# include
main()
{
int a,b,c,d,t;
printf("please input 四个整数 ");
scanf("%d%d%d%d ",&a,&b,&c,&d);
if(a<b)
{t=a;a=b;b=t;}
if(a<c)
{t=a;a=c;c=t;}
if(a<d)
{t=a;a=d;d=t;}
if(b<c)
{t=b;b=c;c=t;}
if(b<d)
{t=b;b=d;d=t;}
if(c<d)
{t=c;c=d;d=t;}
printf("%d %d %d%d ",a,b,c,d);
getch();
}
2)编写程序实现:输入一个百分制成绩。要求书出成绩的等级‘A? ?B? ?C? ?D? ?E?,90分以上为 ?A?,81~89分为 ?B?,70~79为 ?C?,60~69为 ?D?,60分一下为 ?E?。
#include
main()
{
int x;
printf("Please chengji: ");
scanf("%d",&x);
if(x>=90)
{
printf("A ");