9512.net
甜梦文库
当前位置:首页 >> 其它课程 >>

《编程实习》(S0603010)授课2



No. S060130

编程实习
(第一讲)
杭州电子科技大学 自动化学院

版权所有!

?

指导教师联系方式

?甘海涛 Tel: 15158156724 Email: htgan@hdu.edu.cn
?张启忠 Tel: 83919130(

office) Email: zqz@hdu.edu.cn

?
?实习题目 ?考核要求 ?程序实现

主要内容

?
?实习题目

三、实习题目

?任务要求 ? 功能分析与设计,画出功能结构图和数据流程图 ? 根据系统的要求,设计名片文件的格式 ? 详细设计,针对每个功能,选择合适的数据结构,设 计必要的计算方法,分析设计各个功能的程序流程图 ? 根据详细设计,完成系统的编码和调试 ? 对系统进行功能、可操作性、稳定性测试 ? 编写编程实习报告(需打印),并在答辩时上交。

?

三、实习题目

?考核要求 ? 编程实习报告。要求内容充实,如实体现本人的分析 问题能力,解决问题方法;系统功能图、程序流程图 绘制正确;格式规范,图档设计美观,字数在2500以 上。(50分) ? 通讯录管理程序代码。要求运行正确,功能符合任务 要求;代码规范严谨,逻辑合理;能够正确回答教师 针对代码提出的问题。(30分) ? 平时上机考勤与学习。要求上机、上课期间不得迟到 与早退;上机时不得玩游戏或聊天;能够主动多与指 导教师交流程序设计方面问题。(20分)

?

读取学生成绩文件

例 已知一个数据文件f.txt中保存了5个学生的计算机等级考 试成绩,包括学号、姓名和分数,文件内容如下,请将文 件的内容读出并显示到屏幕中。
301101 301102 301103 301104 301105 张文 陈慧 王卫东 郑伟 郭温涛 91 85 76 69 55

?

#include "stdio.h" int main(void) { FILE * fp; /* 定义文件指针*/ long num; char stname[20]; int score; if((fp = fopen("f.txt", "r")) == NULL) /* 打开文件 */ { printf("File open error!\n"); exit(0); }
while( !feof(fp) ) { fscanf(fp, “%ld%s%d\n", &num, stname, &score); printf("%ld %s %d\n", num, stname, score); }; if( fclose(fp) ) /* 关闭文件 */ { printf( "Can not close the file!\n" ); exit(0); }

程序解析

}

? 构建手机通讯录程序解析
例 构建简单的手机通讯录
? 联系人的基本信息:姓名、年龄和联系电话 ? 最多容纳50名联系人的信息 ? 具有新建和查询功能

? 程序解析-程序结构
main()

NewFriend()

SearchFriend()

?程序结构
? 主函数main:程序的总体控制 ? 函数NewFriend:新建联系人功能 ? 函数SearchFriend:查询联系人功能

? 程序解析-数据类型/变量
?数据类型/变量
? 结构体类型struct friends_list:在程序首部定义,其中的成员分别代 表联系人的基本信息 struct friends_list{ char name[10]; /* 姓名 */ int age; /* 年龄 */ char telephone[13]; /* 联系电话 */ }; ? 结构体数组friends:每个元素就是一个结构变量,对应一个联系人 struct friends_list friends[50];

? 程序解析-全局变量/函数参数
? 全局变量Count:记录当前的联系人总数 ? 函数new_friend和search_friend的参数之一是结构体数组: void new_friend(struct friends_list friends[ ] ); void search_friend(struct friends_list friends[ ], char *name); 结构体数组名作为函数实参与普通数组名作函数参数一样,将数组 首地址传递给函数形参

? 程序解析-源程序
#include<stdio.h> #include<string.h> /*手机通讯录结构定义*/ struct friends_list{ char name[10]; /* 姓名 */ int age; /* 年龄 */ char telephone[13]; /* 联系电话 */ }; int Count = 0; /* 全局变量记录当前联系人总数 */ void NewFriend(struct friends_list friends[ ] ); void SearchFriend(struct friends_list * friends, char *name);

?

int main(void) { int choice; char name[10]; struct friends_list friends[50]; /* 包含50个人的通讯录 */ do{ printf("手机通讯录功能选项:1:新建 2:查询 0:退出\n"); printf("请选择功能:"); scanf("%d", &choice); switch(choice){ case 1: NewFriend(friends); break; case 2: printf("请输入要查找的联系人名:"); scanf("%s", name); SearchFriend(friends, name); break; case 0: break; } }while(choice != 0); printf("谢谢使用通讯录功能!\n"); return 0; }

源程序

?

/*新建联系人*/ void NewFriend(struct friends_list friends[ ]) { struct friends_list f; if(Count == 50){ printf("通讯录已满!\n"); return; } printf("请输入新联系人的姓名:"); scanf("%s", f.name); printf("请输入新联系人的年龄:"); scanf("%d", &f.age); printf("请输入新联系人的联系电话:"); scanf("%s", f.telephone); friends[Count] = f; Count++; }

源程序

?

/*查询联系人*/ void SearchFriend(struct friends_list * friends, char *name) { int i, flag = 0; if(Count == 0){ printf("通讯录是空的!\n"); return; } for(i = 0; i < Count; i++) if(strcmp(name, friends[i].name) == 0){ /* 找到联系人*/ flag=1; break; } if(flag){ printf("姓名: %s\t", friends[i].name); printf("年龄: %d\t", friends[i].age); printf("电话: %s\n", friends[i].telephone); } else printf("无此联系人!"); }

源程序

?
本次课结束
谢谢大家!



更多相关文章:
更多相关标签:

All rights reserved Powered by 甜梦文库 9512.net

copyright ©right 2010-2021。
甜梦文库内容来自网络,如有侵犯请联系客服。zhit325@126.com|网站地图