C语言通讯录设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

char age[8];
/*年龄*/
char adds[20];
/*住址*/
}Person;
2)全局变量:Person pe[80] 定义结构体变量
3. 函数原型设计
1)int menu_select()
函数功能:菜单界面,供用户选择不同的功能
2)int Input(Person per[],int n)
电子邮箱即可完成修改 保存:,输入文件名(带后缀名)后,即可将通讯录信息保存到文件
1.2 数据结构设计
1)自定义的数据类型:
typedef struct
{
char score;
/*编号*/
char name[10];
/*姓名*/
char num[15];
/*号码*/
char email[20];
/*邮箱*/
printf("\t 通讯录中没有此人!\n"); return(n); } for(j=i;j<n-1;j++) { strcpy(per[j].num,per[j+1].num); strcpy(per[j].name,per[j+1].name); strcpy(per[j].age,per[j+1].age); strcpy(per[j].adds,per[j+1].adds); strcpy(per[j].email,per[j+1].email); per[j].score=per[j+1].score;
5)void Change(Person per[],int n)
函数功能:修改记录 输入参数:n 用于判断是否有此记录,Person per[]用于接收学生信息
6)void WritetoText(Person per[],int n)
函数功能:保存Βιβλιοθήκη Baidu录 输入参数:n 为学生的个数,Person per[]用于接收学生信息
int Input(Person per[],int n) {
int i=0; char sign,x[10]; while(sign!='n'&&sign!='N') {
printf("\t 编号:"); scanf("\t%d",&per[n+i].score); printf("\t 姓名:"); scanf("\t%s",per[n+i].name); printf("\t 年龄:"); scanf("\t%s",per[n+i].age); printf("\t 电话号码:"); scanf("\t%s",per[n+i].num); printf("\t 通讯住址:"); scanf("\t%s",per[n+i].adds); printf("\t 电子邮箱:"); scanf("\t%s",per[n+i].email);
/*编号*/ /*姓名*/ /*号码*/ /*邮箱*/ /*年龄*/ /*住址*/
Person pe[80]; int menu_select()
{ char c; do{ system("cls"); printf("\t\t *****通讯录***** \n"); printf("\t\t┌───────┐\n");
C 语言课程设计报告
设计题目:写自己任务书上的题目
专业 班级 学生 指导教师 设计时间
设计任务:C 语言课程设计任务书 8
题目:通讯录管理系统 功能:录入联系人信息(包括姓名、电话号码、地址、备注等);通讯录管理系统要求
实现以下功能: 1、输入每一位联系人记录,将其信息存入文件中。 2、查询所有联系人的信息,并按可选的自定义规则进行排序; 3、记录修改,将修改的记录信息保存于文件中。 4、保存:将相关数据写入磁盘文件,便于存、取操作。 分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数。 2、完成信息的录入和显示(即通过编程创建文件,输入学生信息并可将文件内 容显示出来) 3、完成查询功能(可按姓名、电话号码等进行查询) 4、完成信息删除与修改功能,输入联系人姓名后可删除或修改该条信息。 5、进一步要求,在使用修改功能时要求输入密码,密码正确才能修改信息否则 不行。 要求:1、用 C 语言实现程序设计; 2、利用结构体进行相关信息处理; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机交互),程序要有注释。 课程设计实验报告要求: 1、预习报告:仔细分析客户需求、进行模块划分、设计每个模块的算法和数据 结构。 2、实验总结报告:按照模板的格式。
请选择:
2.1.5 修改功能的界面
*****通讯录***** 1 添加记录 2 显示记录 3 删除记录 4 查询记录 5 修改记录 6 保存记录 0 退出程序
请您选择(0-6): 5 修改通讯录中的记录 请输入想修改的记录中的名字:
2.1.6 保存功能的界面
*****通讯录***** 1 添加记录 2 显示记录 3 删除记录 4 查询记录 5 修改记录 6 保存记录 0.退出程序
附录:源程序
#include<stdio.h> #include<stdlib.h> #include<string.h>
typedef struct { char score; char name[10]; char num[15]; char email[20]; char age[8]; char adds[20]; }Person;
3)int Delete_a_record(Person per[],int n)
函数功能:删除记录 输入参数:n 用于判断是否有此记录,Person per[]用于接收学生信息 返回值:用于检验是否截止
4)void Query_a_record
函数功能:查找记录 输入参数:n 用于判断是否有此记录,Person per[]用于接收学生信息
/*格式*/
printf("编号 姓名 年龄 电话号码
通讯地址
电子邮箱
\n");
printf("----------------------------------------------------------------------\n");
for(i=1;i<n+1;i++)
{
printf("%-5d%-8s%-6s%-13s%-15s%-15s\n",per[i-1].score,per[i-1].name,per[i-1]. age,per[i-1].num,per[i-1].adds,per[i-1].email);
请您选择(0-6): 6 保存文件 请输入保存到的文件名:
2.1.7 退出功能的界面
*****通讯录***** 1. 添加记录 2. 显示记录 3. 删除记录 4. 查询记录 5. 修改记录 6. 保存记录 0. 退出程序
请您选择(0-6):0 谢谢使用,再见! 请按任意键继续...
2.2 算法流程图
2.1.3 添加功能的界面
请您选择(0-6):1 添加记录到通讯录 编号:
*****通讯录***** 1 添加记录 2 显示记录 3 删除记录 4 查询记录 5 修改记录 6 保存记录 0. 退出程序
2.1.4 删除功能的界面
*****通讯录***** 1 添加记录 2 显示记录 3 删除记录 4 查询记录 5 修改记录 6 保存记录 0 退出程序
gets(x); printf("\n\t 是否继续添加?(Y/N)"); scanf("\t%c",&sign); i++; } return(n+i); }
void Display(Person per[],int n) {
int i;
printf("----------------------------------------------------------------------\n");
①添加:添加通讯录记录
②显示:显示通讯录记录
③删除:删除通讯录记录
④查询:查询通讯录记录 先选择查询方式,以姓名查询方式
为例
⑤修改:修改通讯录记录
三、测试及运行效果 3.1 运行进入程序主菜单
主选单具有所有函数的功能实现的选择功能,通过主选单的操作进入各个功能。主选单主要 由主函数提供,其功能由子函数实现。
printf("\t\t│ 1. 添加记录 │\n"); printf("\t\t│ 2. 显示记录 │\n"); printf("\t\t│ 3. 删除记录 │\n"); printf("\t\t│ 4. 查询记录 │\n"); printf("\t\t│ 5. 修改记录 │\n"); printf("\t\t│ 6. 保存记录 │\n"); printf("\t\t│ 0. 退出程序 │\n"); printf("\t\t└───────┘\n"); printf("\t\t 请您选择(0-6):"); c=getchar(); }while(c<'0'||c>'6'); return(c-'0'); }
行,解决其中大部分问题,当然还存在一些问题没有解决。我相信在以后的学习
能够解决好它们。但是,收获还是不小的,我不仅对 C 的操作有了进一步的掌 握,还了解到了程序设计的书写风格及其注释的格式。 2.当我选择通讯录这个题目时,一开始想运用大量链表及指针来完成,但是在慢 慢琢磨之后,觉得这个不一定要用链表,于是改变了编程思路。当然还有不少文 件的读写问题,不过还是通过不断测试之后顺利解决了。另外一点要说的就是这 个程序用了很多的循环,因此对于循环的控制要十分小心,有时 while 和 do-while 的区别也是十分重要的。
int Delete_a_record(Person per[],int n) {
char s[20]; int i=0,j; printf("\t 请输入想删除记录中的名字:"); scanf("%s",s); while(strcmp(per[i].name,s)!=0&&i<n) i++; if(i==n) {
二、详细设计
2.1 界面设计
2.1.1 开始界面
*****通讯录***** 1 添加记录 2 显示记录 3 删除记录 4 查询记录 5 修改记录 6 保存记录 0 退出程序
2.1.2 显示功能的界面
选择 2 后系统出现现有的所有人员名单:
2
1 何洁 20 2 高亮 21 3 许飞 19
15923456781 湖北 123@126.com 13532465667 安徽 456@126.com 15889643235 海南 789@126.com
if(i>1&&i%10==0) {
printf("\t-----------------------------------\n"); printf("\t"); system("pause"); printf("\t-----------------------------------\n"); } } printf("----------------------------------------------------------------------\n"); system("pause"); }
平时: 验收: 报告:
总评成绩:
指导教师签名:
一、总体设计
1.1 功能模块设计
1.系统功能模块图:
添加:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱 后,会提示是否继续添加。
显示:可以以表格形式输出所有通讯录里的记录 删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容 查询:可以选择用姓名、电话、地址三种方式查询 修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、
3.2 显示模块
3.3 删除模块
3.4 查 找 模 块
3.4 修改模块
3.5 添加模块 3.6 保存模块
四、总结
1.这次的程序实设计实验是对我们进入大学以来学习程序设计语言结果的一次
大检验。自己动手,自己发现和解决问题。发现了自己的许多不足。平时没有掌
握好的知识在这次实验中彻底暴露出来,经过不断思考,不断查阅资料和上机运
请您选择(0-6): 3 从通讯录中删除记录 请输入名字:
2.1.5 查询功能的界面
*****通讯录***** 1 添加记录 2 显示记录 3 删除记录 4 查询记录 5 修改记录 6 保存记录 0 退出程序
请您选择(0-6):4 在通讯录中查找记录
请选择查询方式:1 姓名 2 电话 3 地址 4 返回
函数功能:添加记录 输入参数:当输入的值不等于 n 或 N 时就继续添加,Person per[]用于接收输入的
学生信息 返回值:返回值代表添加的学生个数 void Display(Person per[],int n) 函数功能:显示记录 输入参数:当 n 为 2 时则显示记录,Person per[]用于接收学生信息
相关文档
最新文档