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

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

C语言课程设计 专 业电气工程及其自动化 班 级 电气11 姓 名 学 号 指导教师 兰州交通大学自动化与电气工程学院 2012 年 7月 6日 评语 平时40 修改30 报告30 总成绩C程序设计课程设计报告 - 1 - 1 基本题目 1.1题目 编写函数,求取两个整数m,n的最大公约数和最小公倍数。 1.2 题目分析 开始 输入两个 数m,n pm*n m是否不等于 n m int maxint a,int b;C程序设计课程设计报告 - 2 - int main { printf“请输入两个整数“; int m,n,p; scanf“dd“, pm*n; printf“最大公约数为d 最小公倍数为d\n“,maxm,n,p/maxm,n; return 0; } int maxint a,int b { int c; while ab {ifa include main {int i0,j;char ch;whilechgetch\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 - 开始 打印主界 面 a0 a1 否 结构体数 n0 是 调用s_first 函数 是 调用 s_next函 数 break a2 否 调用open函数 是 break a3 否 调用creat函 数 是 break a4 否 调用printhead 函数 是 break a5 否 调用look_up 函数 是 break 输出“您 的输入有 误” 否 否 结束 是 图3 主函数流程图 3.4 各函数的功能 1 s_firstC程序设计课程设计报告 - 5 - 该函数用来创建第一个结构体,创建第一个内存单元,并写入其中的数据; 2 s_next 该函数用来新建非第一个结构体,创建一个内存单元,写入数据到其中并使得 各个结构体之间能够单项链接; 3 prin 此函数用来打印内存中链表内各内存单元内的数据到屏幕上,起到显示数据的 作用; 4 creat 此函数用来保存链表内数据到硬盘上,保存的标题提供两种方式,一个是保存 到默认文件,另一个是保存到自己命名的文件上。所保存的文件可以用记事本等软 件打开,并可以显示所有联系人信息; 5 open 此函数用来打开文件。既可以把文件的信息显示到屏幕上,而且可以把文件的 联系人信息输入到内存中形成链表,可供编辑。此函数也提供两种打开文件的方式, 一是打开默认文件,另一个是打开自己输入的文件; 6 look_up 此函数用来查找和删除文件。此函数提供三种查找方式,第一是名字查找,第 二是电话号码查找,第三是地址查找。查找到联系人并显示信息之后,可选择是否 删除联系人。 3.5 源程序 include include define LEN sizeofstruct Person include struct Person { char name[10]; //姓名 char num[15]; //号码 char age[8]; //年龄 char adds[20]; //住址 struct Person *next; }; int n0; struct Person *head; struct Person *p1,*p2; struct Person *s_firstvoid//创建首个联系人 { char ch; p1p2struct Person * mallocLEN;C程序设计课程设计报告 - 6 - headp1; printf“请输入姓名\n“; scanf“s“,p1-name; printf“请输入号码\n“; scanf“s“,p1-num; printf“请输入年龄“; scanf“s“,p1-age; printf“请输入地址“; scanf“s“,p1-adds; chgetchar; p1-nextNULL; n1; return head; system“pause“; } struct Person *s_nextvoid//创建新的联系人 { char ch; p1struct Person * mallocLEN;printf“请输入姓名\n“; scanf“s“,p1-name; printf“请输入号码\n“; scanf“s“,p1-num; printf“请输入年龄“; scanf“s“,p1-age; printf“请输入地址“; scanf“s“,p1-adds; chgetchar; p2-nextp1; p1-nextNULL; p2p1; n; return head; } void printstruct Person *head//输出链表函数 { char ch;chgetchar; struct Person *p; phead; ifheadNULL do { printf“s s s s\n“,p-name,p-num,p-age,p-adds; pp-next;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值