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

绝世美人儿
510次浏览
2021年02月01日 12:48
最佳经验
本文由作者推荐

赤朱丹彤-正确的握笔方法

2021年2月1日发(作者:理财是一种习惯)

C
语言课程设计




业:电气工程及其自动化



级:

电气
11



名:





号:





指导教师:






评语:








平时
(40)

修改
(30)

报告
(30)

总成绩



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

2012


7


6


C
程序设计课程设计报告

1
基本题目

1.1
题目

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

1.2
题目分析

开始
输入两个

m,n
p=m*n
m
是否不等于
n


m=m-n
m< n?
输出最大
公约数
n
c=m
m=n
n=c
输出最 小
公倍数
p/n
结束


1
程序流程图

1.3
程序

# include
int max(int a,int b);

-
1 -
int main()
{

printf(
请输入两个整数


int m,n,p;

scanf(

p=m*n;


printf(
最大公约数为:
%d
最小公倍数为:
%dn

return 0;
}
int max(int a,int b)
{

int c;

while (a!=b)

{if(a
{


c=a;


a=b;


b=c;

}

a=a-b;}

return b;
}

1.4
程序的运行结果



2
基本题目运行结果

2
改错题目

2.1
改正后程序

#include
#include
main()
{



int i=0,j;



char ch;



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



{






i++;

-
2 -
C
程序设计课程设计报告







printf(



}



printf(
}
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 -
开始
打印主界

a==0?


调用
inputs_next



结束
a==1?

结构体数
n==0?
是< br>调用
inputs_first
函数
break

a==2?

调用
open()
函数
break

a==3?

调用
creat()


break

a==4?

调用
print(head)
函数
break

a==5?

调用
look_up()
函数
break< br>否
输出“您
的输入有
误”


3
主函数流程图

3.4
各函数的功能

(1) inputs_first()


-
4 -
C
程序设计课程设计报告

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

(2) inputs_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 *inputs_first(void)//
创建首个联系人

{


char ch;

p1=p2=(struct Person *) malloc(LEN);

-
5 -

head=p1;

printf(
请输入姓名
:n

scanf(

printf(
请输入号码
:n

scanf(

printf(
请输入年龄
:

scanf(

printf(
请输入地址:


scanf(

ch=getchar();

p1->next=NULL;

n=1;

return (head);

system(
}
struct Person *inputs_next(void)//
创建新的联系人

{
char ch;
p1=(struct Person *) malloc(LEN);




printf(
请输入姓名
:n

scanf(

printf(
请输入号码
:n

scanf(

printf(
请输入年龄
:

scanf(

printf(
请输入地址:


scanf(

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(

p=p->next;

-
6 -

赤朱丹彤-正确的握笔方法


赤朱丹彤-正确的握笔方法


赤朱丹彤-正确的握笔方法


赤朱丹彤-正确的握笔方法


赤朱丹彤-正确的握笔方法


赤朱丹彤-正确的握笔方法


赤朱丹彤-正确的握笔方法


赤朱丹彤-正确的握笔方法