高级语言程序的设计实训报告.doc_第1页
高级语言程序的设计实训报告.doc_第2页
高级语言程序的设计实训报告.doc_第3页
高级语言程序的设计实训报告.doc_第4页
高级语言程序的设计实训报告.doc_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

. . . . .目 录实训一 基本结构程序设计1实训二 函数程序设计12实训三 数组程序设计23实训四 简单指针程序设计30实训五宾馆住客信息管理程序41实训一 基本结构程序设计一、任务与目的了解C语言程序的开发环境,掌握VC+6.0环境下,C语言源程序的编辑、编译和执行的过程。二、原理(条件)掌握C程序的顺序、分支和循环三种基本结构及相应的语句、运算符和表达式,能够用它们编制出简单的C程序并上机调试和通过。能够使用嵌套条件和嵌套循环实现常见算法。三、内容与步骤编写程序并上机调试以下题目。实训内容:1、 输入圆环的内径r1、外径r2和厚度h,求圆环体积和表面积。2、 输入任意一个字符,若为小写字符则转变为大写字符输出;若为大写字符则转变为变小写字符输出。3、 编程模拟简单的计算器,进行两个整数的加、见、减、乘、除四则运算。(若输入12-45,则输出=-32)4、 输入一个不多于4位正整数,输出它是几位数,按逆序输出该整数的各位数子。5、 输出ASCII码值为33至127的字符和其十六进制ASCII码值。6、 从键盘上输入若干个学生的计算机成绩,当输入为-1时结束输入。统计出学生人数、最高分、最低分和平均分。7、 输出10-100之间的全部素数。8、 计算的近似值,当下式中的累加项绝对值小于10-6时停止累加,输出计算结果。 9、设两个球队进行比赛,各出3人。甲队为A、B、C 3人,乙队为X、Y、Z 3人。由抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和X比赛,C说他不和X、Z比赛,请编写程序找出3对赛手的名单。10、打印如下图形。 * * * * *四、程序实现1、(1)代码运行结果2、程序代码运行结果3、程序代码运行结果4、程序代码 运行结果5、程序代码运行结果6、程序代码运行结果7、程序代码运行结果8、程序代码运行结果9、程序代码运行结果10、程序代码运行结果实训2基本结构程序设计一、任务与目的掌握函数定义、说明和调用的规则。掌握C语言程序中主调函数和被调函数之间的数据传递规则。理解函数的递归调用。熟练模块化编程。二、原理(条件)函数就是功能,每一个函数用来实现一个特定的功能,函数的名字应反映其代表的功能。在设计一个较大的程序时,往往把它分为若干个程序模块,每一个模块包括一个或多个函数,每个函数实现一个特定的功能。三、内容与步骤编写程序并上机调试以下题目。实训内容:1、编写求长方体体积的函数 float v(float x,float y,float ),主函数调用该函数求任意长方体的体积。2、编写递归函数fac(int n)求s=1+2+3+n, 主函数调用fac(n)函数求 s=1+2+3+100。3、编写一个函数f(float a,float b,float c)用于求一元二次方程的根。主函数输入数据分别测试同根、异根和复根三种情况。4、编写函数int isleapyear(int year);判某年是否为闰年,如该年为闰年返回1,否则返回0。编写主函数输入年份给出该年是否为闰年。5、编写函数int dayofmonth(int year ,int month);计算某年某月有几天。主函数中输入任意的年和月,给出此年该月有几天。6、编写万年历。(请利用上述4、5已编写的函数和下边已提供的函数来完成)(1)输入年打印出此年的日历。(2)输入年和月打印给出此年该月的日历。/*参考代码*/int firstdayofyear(int year) /*求某年的第一天是星期几*/ int i; long n,days=year; days=days*365; /* printf(n%ld,days);*/ for(i=1;iyear;i+)days=days+isleapyear(i); /*printf(n%ld,days);*/ n=days%7; return n;int firstdayofmonth(int year ,int month ) /* 求某年某月的第一天是星期*/ int i,days=0, weekdays; weekdays=firstdayofyear(year); for(i=1;imonth;i+)days+=dayofmonth(year,i); return (days+weekdays)%7;四、程序实现1、(1)代码运行结果 2、程序代码运行结果 3、程序代码运行结果4、程序代码运行结果5、程序代码运行结果6、程序代码(1)运行结果6、程序代码(2)运行结果实训三 数组程序设计一、任务与目的熟练掌握一和二维数组的定义、初始化及元素的引用方法。了解一和二维数组基本算法。掌握字符数组的定义、初始化及元素的引用方法。掌握C函数库中提供的字符串函数。掌握一和二数组做函数的参数。二、原理(条件)把具有相同一属性的若干个数据组成一个整体,用同一个统一的数组名和下标来确定唯一数组中的元素。三、内容与步骤编写程序并上机调试以下题目。实训内容:1、 编写程序,计算出fibnaci(0,1,2,3,5,8,13)数列的前20项的值,并将结果存放到数组f(已知 int f20;)中,并将其输出到屏幕上,且每行5项。2、 编写int inver(int x,int n)将数组中元素逆序排列;编写线性查找函数int Lfind(int x,int n);查找n是否在数组x中,如果在返回数组的下标值,否则返回-1。主函数利用随机函数 srand()和 rand()(使用方法见参考程序)生成20个100以内的整型数存入数组中,调用inver()函数将其逆序并输出;再从键盘输入任意整型数n,调用Lfind(a,n)给出查找结果。找到打印n在数组中的位置,并在数组中删除该数,删除否则打印“没找到!”。3、 随机生成4行4列二维数组中元素的值,求该二维数组中的最大元素值及所在的位置(行、列号);再把该二维数组进行转置并输出。4、 有若干计算机图书,请按字母顺序,从小到大输出书名。5、 随机生成4名学生的5门成绩,求出每个学生的总成绩,计算每门成绩的平均分,最后按总分排序输出(高分在前)。/*随机数参考程序*/#include#include#includevoid main() int x,y; srand(time(NULL);/*生成随机数种子*/ x=rand()%100;/*生成100以内的随机数*/ y=rand()%100; printf(nx=%d,y=%d n ,x,y);四、程序实现1、(1)代码运行结果:2、程序代码运行结果:3、程序代码3、运行结果:4、程序代码运行结果:5、程序代码运行结果:实训四 指针程序设计一、任务与目的掌握指针定义和指针运算符的正确使用。正确而灵活地运用指针访问不同类型的数据。掌握指针与数组和字符串的关系。理解指针作为函数的参数的参数传递关系。二、原理(条件)内存的每一个字节有一个编号,就是内存单元的“地址”,。在地址所标志的内存单元中存放的数据。三、内容与步骤编写程序并上机调试以下题目。实训内容:1、定义两个函数:分别为void swap(int a,int b)和 void pswap(int *a,int *b),用于交换a,b的数值。从主函数中输入两个整数a,b,分别调用上述两个函数并打印出对换结果。2、输入10个数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写指针三个函数:(1)输入10个数void input(int *p,int n);(2)进行处理void M_value(int *p,int n);(3)输出10个数void output(int *p,int n)。3、用指针编写一函数void sort(int *p,int n),对10个整型数从小到大排序。4、用指针编写一函数将3*3的矩阵转置。主函数中调用该函数并输出结果。5、用指针编写一个函数void link(char *str1,*str2),连接两个字符串。主函数中输入2个字符串,调用该函数连接并输出。6、完成单链表的建立、打印、插入、删除等操作。四、程序实现1、(1)代码运行结果:2、程序代码运行结果:3、程序代码运行结果:4、程序代码运行结果:5、程序代码运行结果:6、程序代码运行结果:综合实训五:宾馆住客信息管理程序一、 综合实训任务本题目要求使用结构体数组或链表存储旅客的基本信息,包括姓名、性别、身份证号码、入住房间、入住时间、退房时间;要求能够实现对住客登记、删除、修改、查询、并将数据保存成文件或从文中读取等功能。我的任务是实现住客登记、删除。并显示在屏幕上。二、设计要求(1)利用结构体进行相关信息处理;(2)系统的各个功能模块要求用函数的形式实现;(3)界面友好(良好的人机互交),程序要有注释。三、运行环境及开发工具(1)WINDOWS2000/XP系统(2)VC+6.0编译环境四、实现步骤(1)定义一个结构体类型数组,输入姓名、性别、身份证号码、入住房间、入住时间、退房时间(2)编写对住客登记、删除。模块,给流程图;(3)代码调试及程序执行。五、详细设计(1) 数据结构本系统是对宾馆住客信息管理,住客信息记录采用C的结构体数据类型描述,定义如下: typedef struct /*定义住房信息资料结构体类型*/ char name40; /*姓名*/char sex40; /*性别(s)*/int number; /*身份证号码*/int roomnumber; /*入住房间*/ float st; /*入住时间*/float at; /*退房时间 */(2)模块设计根据功能要求,宾馆住房管理管理系统包含模块如下图所示main()主控函数add()增加个人资料del()删除个人资料pause()等待Y、N键输入(3)系统处理流1、信息登记输入姓名打开数据文件将所有记录读入到数组struct中关闭文件在数组struct中搜索姓名相同的字段查找到?显示该记录登记ngji 打开数据文件将所有记录读入到数组struct中关闭文件返回开始函数2、删除记录提示输入姓名输入姓名打开数据文件将所有记录读入到数组struct中关闭文件在数组struct中搜索姓名相同的字段查找到?显示该记录删除?删除该记录打开数据文件将所有记录读入到数组struct中关闭文件返回开始函数3、具体代码实现#include #include #include #define MAX 100/结构体定义typedef struct char name40; /姓名char sex40; /性别(s) int number; /身份证号码 int roomnumber; /入住房间float st; /入住时间float at; /退房时间 Employee ;Employee empMAX;void init_list(); /初始化int find_free();/查找未定义的成员void enter();/输入void dele();/删除void showlist(); /显示int menu_select();/菜单void chaxun();int main() char choice; init_list(); while (1) choice = menu_select(); switch(choice) case 1: enter(); break; case 2: dele(); break; case 4: showlist(); break; default: exit(0); return 0;/初始化void init_list() int i; for (i=0; iMAX; +i) strcpy(,);strcpy(empi.sex,);empi.number=0; empi.roomnumber=0;empi.st=0;empi.at=0; int menu_select(void) int n; printf(n); printf(tt 主菜单ttn); printf(tt=ttn); printf(tt1,添加登记信息ttn); printf(tt2,删除登记信息ttn); printf(tt4,显示成员ttn); printf(tt=ttn); printf(n); do printf(ttEnter your choice:); scanf(%d,&n);/printf( %dn,n); while (n8); return n;/未定义的成员的位置int find_free() int t; for (t=0; (strlen(empt.sex) & tMAX; +t); if (t = MAX) return -1; return t;/输入void enter() int i,slot,n; printf(ntt要输入的入住人数:); scanf(%d, &n); for(i=0;in;i+) slot = find_free(); if (slot=-1) printf(n表已满!); exit(1); printf(ntt输入姓名:); scanf(%s,); printf(tt输入性别:); scanf(%s,empslot.sex); printf(tt输入身份证号码:); scanf(%d,&empslot.number); printf(tt输入入住房间:); scanf(%d,&empslot.roomnumber); printf(tt输入入住时间:); scanf(%f,&empslot.st); printf(tt输入退房时间:); scanf(%f,&empslot.at); /删除一个成员void dele() int i,num; char sp80; printf(n输入要删除的房间号:); scanf(%d,&num); for(i=0;i=MAX) printf(这个房间没住人!n);void showlist() int t,n=0; printf(%-10s%-10s%-10s%-10s%-10s%-10sn,姓名,性别,身份证号码,入住房间,入住时间,退房时间 ); printf(-n); for (t=0; tMAX; +t) if (strlen()!= 0) printf(%-10s ,); printf(%-10s ,empt.sex); printf(%-10d ,empt.number); printf(%-10d ,empt.roomnumber); printf(%-10.2f ,empt.st); printf(%-10.2fn,empt.at); n+; printf(Total records : %dn,n);getchar();4、运行结果六、 实训总结通过这次实训,增加了我学习软件技术的兴趣,在学习C语言的过程中也学到了许多计算机应用基础知识,在具体操作中对这学期所学的C语言的理论知识得到巩固,达到实训的基本目的,也发现自己的不足之出,在以后的上机中应更加注意,同时体会到C语言具有的语句简洁,使用灵活,执行效率高等特点。发现上机实训的重要作用,特别是对数组和循环有了深刻的理解。通过实际操作,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论