C语言课程设计 编写函数,求取两个整数m,n的最大公约数和最小公倍
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字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [教学研究]2012西拉科学校团少队工作总结
- [教学研究]建筑工程公司档案管理制度
- [教学研究]小学数学人教版六年级上册圆的周长和面
- [教学研究]ERP电子行业解决方案
- [教学研究]钢支撑租赁合同范本
- [教学研究]预应力自动张拉系统用户手册Rev1.0
- [教学研究]MOOC课程:金瓶梅人物写真(每章节课后
- [教学研究]追加被执行人申请书(适用追加夫妻关系)
- [教学研究]2014年驾考科目一考试最新题库766
- [教学研究]2013-2014学年度九年级物理第15章《电
- [教学研究]新版中日交流标准日本语初级下26课-客
- [教学研究]小导管注浆施工作业指导书
- [教学研究]一般财务人员能力及人岗匹配评估表
- [教学研究]打1.2.页 小学一年级暑假口算100以内加
- [教学研究]学习贯彻《中国共产党党和国家机关基层
- [教学研究]2012年呼和浩特市中考试卷_35412
- [教学研究]最简易的电线电缆购销合同范本
- [教学研究]如何开展安全标准化建设
- [教学研究]工作分析与人岗匹配
- [教学研究]2016-2017学年高中历史第七单元现代中
- 山东省义务教育必修地方课程小学三年级
- 台湾宜兰大学互联网交换技术课程 01_In
- 思想品德:第一课《我知我家》课件(人
- SAR合成孔径雷达图像点目标仿真报告(附
- 利辛县“十三五”规划研究报告
- 2015-2020年中国手机APP行业市场发展趋
- 广告策略、创意表现、媒体方案
- 企业如何申请专利的的几点思考
- 《中国教育简史》网上作业
- 高中历史第二单元西方人文精神的起源及
- 年终晚会必备_精彩的主持稿_精心整理_
- 信息工程专业自荐书
- 2019高考历史人教版一轮练习:第十二单
- JAVA俱乐部管理系统软件需求规格说明书
- 2016-2021年中国小型板料折弯机行业市
- (人教新课标)六上_比的基本性质课件PPT
- 辽宁省公务员考试网申论备考技巧:名言
- 神经阻滞麻醉知情同意书
- 施工企业信息填报、审核和发布的相关事
- 初一(七年级)英语完形填空100篇




