C语言编写mn最大公约数,c语言课程设计编写函数求取两个整数mn的最大公约数和最小公倍数...

41528d3028836879cd698677c3999917.gifc语言课程设计编写函数求取两个整数mn的最大公约数和最小公倍数

C语言课程设计 专 业:电气工程及其自动化 班 级: 电气11 姓 名: 学 号: 指导教师: 兰州交通大学自动化与电气工程学院 2012 年 7月 6日 评语: 平时(40) 修改(30) 报告(30) 总成绩C程序设计课程设计报告 - 1 - 1 基本题目 1.1题目 编写函数,求取两个整数m,n的最大公约数和最小公倍数。 1.2 题目分析 开始 输入两个 数m,n p=m*n m是否不等于 n m int max(int a,int b);C程序设计课程设计报告 - 2 - int main() { printf(“请输入两个整数“); int m,n,p; scanf(“%d%d“, p=m*n; printf(“最大公约数为:%d 最小公倍数为:%d\n“,max(m,n),p/max(m,n)); return 0; } int max(int a,int b) { int c; while (a!=b) {if(a #include main() {int i=0,j;char ch;while((ch=getch())!= \r ){i++;C程序设计课程设计报告 - 3 -printf(“%c“,ch);}printf(“you type %d characters\n“,i); } 2.2 程序运行结果 图 3 正确程序运行结果 3 综合题目 3.1 题目 综合题目为:《班级通讯录》 。 3.2 数据结构 对上述题目进行分析,定义结构体数据结构如下: struct Person { char name[10]; //姓名 char num[15]; //号码 char age[8]; //年龄 char adds[20]; //住址 struct Person *next; }; 3.3 程序的主要功能 通过该系统实现对通讯录信息进行录入、显示、修改、删除、排序、保存等操 作的管理。 本系统采用链表的方式动态储存每个数据,每个数据结构包括姓名,电话号码, 年龄,地址,还有指向下一结构体的地址。 本系统显示这样的菜单: 1.新建联系人; 2. 打开文件; 3. 保存联系人; 4. 显示联系人; 5. 查找,删除联系人; 0. 退出程序;C程序设计课程设计报告 - 4 - 开始 打印主界 面 a==0? a==1? 否 结构体数 n==0? 是 调用s_first 函数 是 调用 s_next函 数 break a==2? 否 调用open()函数 是 break a==3? 否 调用creat()函 数 是 break a==4? 否 调用print(head) 函数 是 break a==5? 否 调用look_up() 函数 是 break 输出“您 的输入有 误” 否 否 结束 是 图3 主函数流程图 3.4 各函数的功能 (1) s_first()C程序设计课程设计报告 - 5 - 该函数用来创建第一个结构体,创建第一个内存单元,并写入其中的数据; (2) s_next() 该函数用来新建非第一个结构体,创建一个内存单元,写入数据到其中并使得 各个结构体之间能够单项链接; (3) prin() 此函数用来打印内存中链表内各内存单元内的数据到屏幕上,起到显示数据的 作用; (4 )creat() 此函数用来保存链表内数据到硬盘上,保存的标题提供两种方式,一个是保存 到默认文件,另一个是保存到自己命名的文件上。所保存的文件可以用记事本等软 件打开,并可以显示所有联系人信息; (5 )open() 此函数用来打开文件。既可以把文件的信息显示到屏幕上,而且可以把文件的 联系人信息输入到内存中形成链表,可供编辑。此函数也提供两种打开文件的方式, 一是打开默认文件,另一个是打开自己输入的文件; (6) look_up() 此函数用来查找和删除文件。此函数提供三种查找方式,第一是名字查找,第 二是电话号码查找,第三是地址查找。查找到联系人并显示信息之后,可选择是否 删除联系人。 3.5 源程序 #include #include # define LEN sizeof(struct Person) # include struct Person { char name[10]; //姓名 char num[15]; //号码 char age[8]; //年龄 char adds[20]; //住址 struct Person *next; }; int n=0; struct Person *head; struct Person *p1,*p2; struct Person *s_first(void)//创建首个联系人 { char ch; p1=p2=(struct Person *) malloc(LEN);C程序设计课程设计报告 - 6 - head=p1; printf(“请输入姓名:\n“); scanf(“%s“,p1->name); printf(“请输入号码:\n“); scanf(“%s“,p1->num); printf(“请输入年龄:“); scanf(“%s“,p1->age); printf(“请输入地址:“); scanf(“%s“,p1->adds); ch=getchar(); p1->next=NULL; n=1; return (head); system(“pause“); } struct Person *s_next(void)//创建新的联系人 { char ch; p1=(struct Person *) malloc(LEN);printf(“请输入姓名:\n“); scanf(“%s“,p1->name); printf(“请输入号码:\n“); scanf(“%s“,p1->num); printf(“请输入年龄:“); scanf(“%s“,p1->age); printf(“请输入地址:“); scanf(“%s“,p1->adds); ch=getchar(); p2->next=p1; p1->next=NULL; p2=p1; n++; return (head); } void print(struct Person *head)//输出链表函数 { char ch;ch=getchar(); struct Person *p; p=head; if(head!=NULL) do { printf(“%s %s %s %s\n“,p->name,p->num,p->age,p->adds); p=p->next;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值