教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 教学研究 >

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

来源:网络收集 时间:2026-01-01
导读: C语言课程设计 专 业:电气工程及其自动化 班 级: 电气11 姓 名: 学 号: 指导教师: 兰州交通大学自动化与电气工程学院 2012 年 7月 6日 1 基本题目 1.1题目 编写函数,求取两个整数m,n的最大公约数和最小公倍数。 1.2 题目分析 图1 程序流程图 1.3 程序

C语言课程设计

专 业:电气工程及其自动化 班 级: 电气11 姓 名: 学 号: 指导教师:

兰州交通大学自动化与电气工程学院

2012 年 7月 6日

1 基本题目

1.1题目

编写函数,求取两个整数m,n的最大公约数和最小公倍数。 1.2 题目分析

图1 程序流程图

1.3 程序

# include<stdio.h> int max(int a,int b);

int main() { printf("请输入两个整数"); int m,n,p; scanf("%d%d",&m,&n); 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<b) { c=a; a=b; b=c; } a=a-b;} return b; }

1.4 程序的运行结果

图2 基本题目运行结果

2 改错题目

2.1 改正后程序

#include <stdio.h> #include <conio.h> main() {

int i=0,j; char ch;

while((ch=getch())!='\r') {

i++;

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. 退出程序;

图3 主函数流程图

3.4 各函数的功能

(1) inputs_first()

该函数用来创建第一个结构体,创建第一个内存单元,并写入其中的数据; (2) inputs_next()

该函数用来新建非第一个结构体,创建一个内存单元,写入数据到其中并使得各个结构体之间能够单项链接;

(3) prin()

此函数用来打印内存中链表内各内存单元内的数据到屏幕上,起到显示数据的作用;

(4 )creat()

此函数用来保存链表内数据到硬盘上,保存的标题提供两种方式,一个是保存到默认文件,另一个是保存到自己命名的文件上。所保存的文件可以用记事本等软件打开,并可以显示所有联系人信息;

(5 )open()

此函数用来打开文件。既可以把文件的信息显示到屏幕上,而且可以把文件的联系人信息输入到内存中形成链表,可供编辑。此函数也提供两种打开文件的方式,一是打开默认文件,另一个是打开自己输入的文件;

(6) look_up()

此函数用来查找和删除文件。此函数提供三种查找方式,第一是名字查找,第二是电话号码查找,第三是地址查找。查找到联系人并显示信息之后,可选择是否删除联系人。 3.5 源程序

#include<stdio.h> #include<stdlib.h>

# define LEN sizeof(struct Person) # include<string.h> 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 *inputs_first(void)//创建首个联系人 { char ch; p1=p2=(struct Person *) malloc(LEN);

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 *inputs_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;

}

while (p!=NULL);

printf("共有%d项记录",n); system("pause"); }

void creat()//创建新文件(保存) { char d,ch,e; FILE *fp; e=getchar(); printf("是否保存到默认文件?(Y/N)\n"); scanf("%c",&d); ch=getchar(); if(d=='Y') { if((fp=fopen("default.txt","w"))==NULL) { printf("无法打开此文件\n"); exit(0); }

} else {

char filename[10];

printf("请输入所用的文件名:"); scanf("%s",filename); if((fp=fopen(filename,"w"))==NULL) { printf("无法打开此文件\n"); exit(0); }

} struct Person *p; p=head; while(p) {

fprintf(fp,"%s %s %s %s\n",p->name,p->num,p->age,p->adds);

p=p->next; } fclose(fp); system("pause"); int open()//打开文件 { char ch,a[10],d;int i=0; FILE *fp;

printf("是否打开默认联系人列表(Y/N)"); d=getchar(); scanf("%c",&ch); getchar(); if(ch=='Y') { if((fp=fopen("default.txt","r"))==NULL) {printf("无法打开文件\n"); exit(0);} } else {printf("请输入要打开的文件名:"); scanf("%s",a); if((fp=fopen(a,"r"))==NULL) {

printf("无法打开文件\n");

exit(0);}

}

while (!feof (fp)) {

p1=(struct Person *) malloc(LEN); if (n==0) head=p1; else p2->next=p1; fscanf(fp,"%s %s %s %s",p1->name,p1->num,p1->age,p1->adds); printf("%s %s %s %s\n",p1->name,p1->num,p1->age,p1->adds); p2=p1; p1->ne …… 此处隐藏:4031字,全部文档内容请下载后查看。喜欢就下载吧 ……

C语言课程设计 编写函数,求取两个整数m,n的最大公约数和最小公倍.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1584857.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)