C语言实验报告材料 通讯录
C语言程序设计报告 通讯录

C语言程序设计课程设计报告设计题目:通讯录学号2010211766班级通信与信息类0101012班姓名万同堂2011年12月03日录入联系人信息(包括姓名、电话号码、地址等信息);通讯录管理系统要求实现以下功能:1、输入每一位联系人记录,将其信息存入文件中。
2、查询所有联系人的信息,并按可选的自定义规则进行排序;3、记录修改,将修改的记录信息保存于文件中。
1、设一个通信录由以下几项数据信息构成:数据项类型姓名字符串地址字符串邮政编码字符串电话号码字符串试为通信录数据定义类型和定义通信录变量,实现功能:存取、显示、删除记录、查询记录等功能。
2、要求:界面友好,易于操作系统功能模块图:添加:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱等后,会提示是否继续添加。
显示:可以以表格形式输出所有通讯录里的记录删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容查询:可以选择用姓名、电话、地址三种方式查询修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改保存:,输入文件名(带后缀名)后,即可将通讯录信息保存到文件(1).通讯录:主要代码struct user{char name[20];//用户名char adr[20];//地址char numb[20];//手机号char code[20];//邮政编码};typedef struct user user;int main(){int key,m ;int n = 0;user u[N];char num[20];// double insert;printf("\n\n\n"); /*欢迎界面*/printf("\t\t\t\t欢迎光临 \n");printf("\t\t\t 我的个人通讯管理系统\n");printf("\t\t\t 完成日期:2011年12月4日\n\n");using namespace std;time_t t = time(0);printf("\t\t\t您正进入添加界面...\r");Sleep(1000);printf(" \r");char tmp[64];int i=1;while(i<2){i++;strftime( tmp, sizeof(tmp), "\t %Y/%m/%d %X %A 本年第%j 天 %z",localtime(&t) );printf("%s",tmp); /*输出系统时间*/ }printf("\n\n\n\t\t\t\t正在进入...\n\n\n");Sleep(800);printf("\t 本产品已经通过金山、卡巴、江民、360等多款杀毒软件检测,\n");Sleep(800);printf("\t 安全无毒,绿色无插件,请大家放心使用。
C语言实验报告

C语言集中上机实习报告指导教师:纪良浩姓名:梁皓学号: 2012211516班级: 0401204时间: 2013年5月27日实验题目通讯录一、实验目的为综合应用C语言程序设计理论知识、进一步提高自己综合解决问题、协调工作的能力和良好的软件开发习惯,所以设计一个个人通讯录管理系统,拥有对数据的各种操作功能,实现对通讯录的管理,从而巩固C语言程序设计。
二、实验内容1.通讯录需求分析2.通讯录总体设计3.通讯录算法设计4.通讯录代码编写5. 程序测试6.实验心得体会三、实践过程1.通讯录应实现以下功能:添加:添加通讯录记录显示:显示通讯录记录删除:删除通讯录记录查询:查询通讯录记录修改:修改通讯录记录保存:将信息保存到文件2.功能实现分析首先该程序需要一个主菜单设计如下主菜单添加显示删除查询修改保存添加:可以添加通讯录记录,依次输入姓名、电话号码、通讯地址、邮政编码后,会提示是否继续添加。
显示:可以以表格形式输出所有通讯录里的记录删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容查询:可以选择用姓名、电话、地址三种方式查询修改:输入欲修改的那个人的名字后,再依次输入姓名、电话号码、通讯地址、邮政编码即可完成修改保存:输入文件名(带后缀名)后,即可将通讯录信息保存到文件分别将其设计后大概为:① 添加: ②显示: Y YN N开始结束输出一个记录i<=n+1int i;i=1;开始return(n+1)输入信息sign!=’n ’&&sing!=’Ni=0结束 i++③删除:④查询(以姓名为例):⑤修改:当然在编写代码中业余到了很难四.程序测试 1.主菜单显示当然在代码的实现方面我也遇到了很多困难,毕竟这也是有一定难度的,也别是对于我这种很低端的人来说。
首先遇到的困难是程序该如何设计,第一步真的很难迈出。
做一件事情首先要有完整计划才能事半功倍,当然写一个程序,一个良好的程序设计是必须的。
c语言通讯录实验报告

c语言通讯录实验报告C语言通讯录实验报告一、实验目的通讯录是我们日常生活中常用的工具,可以帮助我们管理联系人信息。
本次实验旨在通过使用C语言编写一个简单的通讯录程序,加深对C语言的理解和运用。
二、实验环境本次实验使用的开发环境是Visual Studio Code,编程语言为C语言。
三、实验过程1. 通讯录数据结构设计在开始编写程序之前,我们需要先设计好通讯录的数据结构。
通讯录的基本信息包括姓名、电话号码和电子邮件地址。
我们可以使用结构体来表示一个联系人的信息,然后使用数组来存储多个联系人的信息。
2. 程序主体框架设计接下来,我们需要设计程序的主体框架。
首先,我们可以定义一个数组来存储通讯录中的联系人信息。
然后,我们可以使用一个循环来提供用户操作的选项,比如添加联系人、查找联系人、删除联系人等。
用户可以通过输入相应的数字来选择不同的操作。
3. 添加联系人功能在程序中添加联系人的功能可以通过用户输入联系人的姓名、电话号码和电子邮件地址来实现。
我们可以通过循环遍历通讯录数组,找到第一个空闲的位置,将新的联系人信息存储到该位置。
4. 查找联系人功能查找联系人的功能可以通过用户输入联系人的姓名来实现。
我们可以通过遍历通讯录数组,逐个比较联系人的姓名,找到匹配的联系人并输出其详细信息。
5. 删除联系人功能删除联系人的功能可以通过用户输入联系人的姓名来实现。
我们可以通过遍历通讯录数组,找到匹配的联系人并将其从数组中删除。
6. 修改联系人功能修改联系人的功能可以通过用户输入联系人的姓名来实现。
我们可以通过遍历通讯录数组,找到匹配的联系人,并允许用户修改其电话号码和电子邮件地址。
7. 显示通讯录功能显示通讯录的功能可以通过遍历通讯录数组,逐个输出联系人的详细信息来实现。
四、实验结果经过编写和调试,我们成功实现了一个简单的C语言通讯录程序。
用户可以通过输入相应的数字来选择不同的操作,包括添加联系人、查找联系人、删除联系人、修改联系人和显示通讯录。
C语言课程设计实习报告——通讯录管理系统

毕业论文(设计)论文(设计)题目:通讯录管理系统二级学院:计算机学院学科专业:信息管理专业学号:姓名:班级:试点本科三班指导教师:论文提交时间: 2011年3月教务处制2011年3 月13 日毕业论文(设计)内容介绍论文(设计)题目通讯录管理系统选题时间2010年12月完成时间2011年3月论文(设计)字数4685关键词通信录信息管理,管理信息系统,数据库论文(设计)题目的来源、理论和实践意义:课题来源:本课题是来自辅导老师的提议和日常所学内容的总结,使用 MICROSOFT公司的 VISUAL C++6.0开发工具,利用其提供的各种面向对象的开发工具,在短时间内未系统建立应用原形,并不断进行修正和改进。
理论依据:1、VISUAL C++的上机学习及实践。
2、、数据库原理的课程内容。
3、学校所开课程的学习以及领悟,理论及实践相结合。
实践意义:通过实践证实了通讯录管理系统的重要性,突显了通讯录管理系统是我们日常生活中不可缺少的一部分。
论文(设计)的主要内容及创新点:本文论述了通讯录系统的整个开发过程,包括系统分析、系统设计、系统实现等方面。
实现对通讯录信息的增、删、改、查等功能,以多文档界面形式实现。
通过对通讯录管理系统必要性和可行性的介绍阐述他的作用,并应用大量图例进行说明,使表达的内容更加清楚易于理解,整体更加简明。
附:论文(设计)本人签名:2011 年 3 月13 日通讯录管理系统 (4)摘要 (4)Abstract (5)引言 (6)一、设计系统的必要性和可行性 (7)1.1设计系统的必要性 (7)1.2设计系统的可行性 (7)1.1.1经济可行性 (7)1.1.2技术可行性 (7)二、系统总体设计 (8)2.1题目要求 (8)2.2需求分析 (8)2.3总体设计 (8)2.3.1系统总体功能单元: (8)2.3.2系统总体流程图(局部): (9)三、详细设计 (10)3.1通讯录信息输入模块 (10)3.2信息浏览及排序模块 (11)3.3通讯录查询模块 (12)3.4通讯录的更改 (14)3.5通讯录及文件操作 (16)四、系统功能的实现与运行 (18)4.1个人档案数据维护表单 (18)4.2通讯信息数据维护表单 (18)4.3个人信息数据查询表单 (19)4.4 个人通讯录报表 (20)4.5系统登录表单 (20)4.6设计系统主菜单 (21)4.7系统主界面表单 (22)4.8连编 (22)五、结论 (23)七、参考文献 (24)通讯录管理系统摘要通信录信息管理系统是用计算机管理电子通信录的一种计算机应用技术的创新,在计算机还未普及之前通信管理都是由联系人采用名片,笔录手工记帐的方式来操作的.现在一般的通信录管理都是采用计算机作为工具的实用的计算机通信录管理程序来帮助人们进行更有效的通信录信息管理。
C语言课程设计通讯录实验报告

太原学院计算机工程系课程设计报告课程名称:数据结构课程设计姓名:苏建花学号: 20140903336专业班级:计算机工程系网络三班指导教师:翟婷婷2015年12 月30日计算机工程系课程设计报告课程名称:C语言课程设计课程设计题目:通讯录管理系统目录(参考)1.设计目的与要求 (X)1.1题目与设计要求 (X)1.2本程序涉及的知识点 (X)2.功能设计 (X)2.1总体设计 (X)2.2详细设计 (X)3.程序实现 (X)3.1程序实现时应考虑的问题 (X)3.2 XX模块核心代码 (X)4.测试分析 (X)4.1 测试结果及分析 (X)4.总结 (X)参考文献 (X)1、设计目的与要求这次课程设计的目的在于:1.熟练的掌握C语言课程中所学的理论知识,并对其进行应用;2.通过综合C语言的基本知识来解决实际问题;3.加强分析和解决问题的能力;4.提高实践动手能力,将知识化为实际成果1.1 题目与设计要求(1)题目:通讯录(2)设计要求a、建立通讯录信息,信息至少包含姓、名、电话号码、住址、分类(如同事、朋友、同学、家人等)等。
b、该系统提供添加、删除、修改和查找功能,其中按姓名方式删除、修改,按姓名、姓氏方式查找。
c、将通讯录保存在文件中。
d、能够输出通讯录中的信息。
1.2 本程序设计的知识点(1)采用结构体数组。
struct Person{char a[16];char s[16];char d[16];char f[24];struct Person *next;}stu;(2)运用函数之间的调用主函数可以调用子函数,子函数之间可以相互调用,子函数不能调用主函数,主函数可以多次调用一个子函数,也可以一次调用多个子函数。
(3)利用指针变量struct Person *head;struct Person *p1,*p22 、功能设计添加:添加通讯录记录修改:修改通讯录记录删除:删除通讯录记录查找:查询通讯录记录显示:显示通讯录记录统计:统计通讯录数目2.1需求分析信息记录要存放到文件中去,因而要实现文件的输入输出操作;要实现数据的插入、删除、修改和显示功能,因而要实现插入、删除、修改和显示操作;要实现按人名或姓氏进行查询的功能,因而要提供查找操作;另外还应该提供键盘式选择菜单以实现功能选择。
C语言课程设计通讯录实验报告

C语言课程设计通讯录实验报告实验目的:本实验旨在通过设计一个通讯录程序,加深理解和掌握结构体、函数和文件操作等C语言知识,并培养学生的实践能力和解决问题的能力。
实验要求:设计一个通讯录程序,能够实现添加联系人、删除联系人、查找联系人、修改联系人信息等基本功能,并能够将联系人信息保存到文件中,实现数据的持久化存储。
实验原理:通讯录程序的数据结构可以设计为一个结构体数组,每个元素表示一个联系人,结构体包含姓名、电话号码、地址等信息。
通过使用不同的函数实现不同的功能,如添加联系人函数addContact()、删除联系人函数deleteContact()、查找联系人函数searchContact()等。
实验步骤:1. 定义一个结构体类型,包含姓名、电话号码和地址等信息。
2. 声明并实现各个功能函数,如添加联系人函数addContact()、删除联系人函数deleteContact()、查找联系人函数searchContact()等。
3. 在主函数中使用循环菜单来实现用户的各种操作选择。
4. 将联系人信息保存到文件中,实现数据的持久化存储。
5. 编译并运行程序,验证程序的正确性和功能完整性。
实验结果:通过实验,成功设计并实现了一个通讯录程序,能够实现添加联系人、删除联系人、查找联系人、修改联系人信息等基本功能,并能够将联系人信息保存到文件中,实现数据的持久化存储。
实验总结:本实验通过设计一个通讯录程序,加深了对结构体、函数和文件操作等C语言知识的理解和掌握,同时也培养了解决问题的能力和实践能力。
通过实验,我进一步理解了结构体的定义和使用、函数的声明和调用、文件的打开和关闭等操作。
在实验过程中,我也遇到了一些问题,如如何优化查找联系人的算法、如何处理文件打开失败的情况等,通过思考和调试逐步解决了这些问题。
实验过程中的问题和解决方法不仅加深了对C 语言的理解,也提高了解决问题的能力。
c语言简易通讯录报告

实习报告①需求分析建立一个通讯系统,系统中保存着人员的姓名,电话,住址,邮编等信息,通过该系统的界面可以浏览这些信息,也可以插入,添加及删除某个人的信息1)录入人员信息,创建通讯录文件2)进行相应的插入,添加,删除操作,并输出相应的结果(1)确定设计程序接收的输入数据和输出数据的形式、取值范围;每条通讯录包含姓名,街道,城市,邮编,电话号码。
都以字符型数组存储,分别定义为15、30、20、20、20字节长。
输入同输出。
(2)初步列出测试数据以及测试目的;②程序设计说明程序中用到的所有数据类型的定义。
绘制主程序的流程图,以及各子程序模块间的调用关系流程图:③调式分析(1)列出调式过程中遇到的主要问题,并说明解决方法;链表和结构体在实习刚开始时理解不透彻,只知道大概需要用到程序中,翻阅了一些资料后基本学会使用了。
开始用if,else语句轮寻菜单中用户输入的数字对应功能,后来发现用swith,case更方便灵活。
(2)分析算法的时间和空间复杂度,如果有给出算法改进思想;作为一个完整可用的通讯录还缺少保存信息到硬盘功能。
但本人基础较薄,有限的实习时间内无法完成。
希望今后有机会继续完善。
④使用说明说明编写程序的使用方法,详细列出每一操作步骤;⑤测试结果列出若干输入的测试数据、测试目的、产生的结果;简易通讯录系统:Designed by Irene=================================输入纪录-----------------0显示所有纪录-------------1查询纪录-----------------2删除纪录-----------------3退出---------------------4=================================请输入数字(0~4)选择,enter确定并输入:姓名街道城市邮编------------------------------------- Irenedfbj100034110------------------------------------- 继续输入吗?(Y/N)y姓名街道城市邮编------------------------------------- ericfdbj100076119------------------------------------- 继续输入吗?(Y/N)y姓名街道城市邮编------------------------------------- rareijbj100056120------------------------------------- 继续输入吗?(Y/N)n简易通讯录系统:Designed by Irene================================= 输入纪录-----------------0显示所有纪录-------------1查询纪录-----------------2删除纪录-----------------3退出---------------------4=================================请输入数字(0~4)选择,enter确定并输入: 1显示所有记录如下:-------------------------------------姓名街道城市邮编------------------------------------- Irene df bj 100034-------------------------------------eric fd bj 100076-------------------------------------rare ij bj 100056-------------------------------------简易通讯录系统:Designed by Irene================================= 输入纪录-----------------0显示所有纪录-------------1查询纪录-----------------2删除纪录-----------------3退出---------------------4=================================请输入数字(0~4)选择,enter确定并输入:2请输入姓名进行查询:Irene------------------------------------- 姓名街道城市邮编------------------------------------- Irene df bj 100034------------------------------------- 查询成功!继续查询?(Y/N)n简易通讯录系统:Designed by Irene================================= 输入纪录-----------------0显示所有纪录-------------1查询纪录-----------------2删除纪录-----------------3退出---------------------4=================================请输入数字(0~4)选择,enter确定并输入: 3请输入姓名删除纪录:eric确定要删除吗?(Y/N)ySuccess to delete!简易通讯录系统:Designed by Irene=================================输入纪录-----------------0显示所有纪录-------------1查询纪录-----------------2删除纪录-----------------3退出---------------------4=================================请输入数字(0~4)选择,enter确定并输入: ⑥其他(1)注释源程序代码;#include <stdio.h>#include <string.h>#include <malloc.h>typedef struct txl{char name[15];char street[30];char city[20];char eip[20];char phone[20];}dtxl; /*建立通讯录信息结构体;*/ typedef struct dlnode{dtxl data;struct dlnode *prior;struct dlnode *next;}dnode; /*建立双向链表结构体;*/ dnode *head;void enter(void){dnode *p,*rear;char flag='Y';head=(dnode *)malloc(sizeof(dnode));rear=head;head->next=head;head->prior=head; /*建立双链表空头节点;*/while(flag=='Y'||flag=='y'){p=(dnode *)malloc(sizeof(dnode));printf(" 姓名街道城市邮编电话\n");printf("-----------------------------------------------\ n");scanf("%s %s %s %s %s",&p->,&p->data.street,&p->data.city,&p->data.eip,&p->data.phone);rear->next=p;p->prior=rear;rear=p;p->next=head; /*向双链表中动态增加节点数据;*/printf("-----------------------------------------------\ n");printf("继续输入吗?(Y/N)\n");scanf("%s",&flag);}printf("\n");}//显示子程序void display(dnode *head){dnode *p;p=head->next;printf("显示所有记录如下:\n");printf("-----------------------------------------------\n");printf(" 姓名街道城市邮编电话\n");printf("-----------------------------------------------\n");while(p!=head){printf("%s %8s %8s %8s %8s",p->,p->data.street, p->data.city,p->data.eip,p->data.phone);printf("\n");printf("-----------------------------------------------\ n\n");p=p->next;}}dnode *search(dnode *head){dnode *p;char name[9];p=head->next;scanf("%s",name);while(p!=head&&p&&strcmp(p->,name)!=0){p=p->next;}return p;}//删除子程序void delete(dnode *head){char f;dnode *p;p=search(head);if(p==head){printf("没有找到要删除的数据!!!\n\n");return;}else{printf("确定要删除吗?(Y/N)\n");scanf("%s",&f);if(f=='Y'||f=='y'){p->prior->next=p->next;p->next->prior=p->prior;free(p);printf("Success to delete!\n");}}}//退出子程序void quit(void){exit(0);}//主程序void main(){ char flag='Y';for(;;){dnode *q;int ch;printf("简易通讯录系统:\n");printf(" Designed by Irene\n\n");printf("=================================\n");printf(" 输入纪录-----------------0\n");printf(" 显示所有纪录-------------1\n");printf(" 查询纪录-----------------2\n");printf(" 删除纪录-----------------3\n");printf(" 退出---------------------4\n"); /*通讯录提示信息;*/printf("=================================\n");printf("请输入数字(0~4)选择,enter确定并输入:\n");scanf("%d",&ch);//菜单分支选择switch(ch){case 0:enter();break;case 1:display(head);break;case 2:jmp: printf("请输入姓名进行查询:\n");q=search(head);if(q!=head){printf("-----------------------------------------------\ n");printf(" 姓名街道城市邮编电话\n");printf("-----------------------------------------------\ n");printf("%s %8s %8s %8s %8s",q->,q->data.street, q->data.city,q->data.eip,q->data.phone);printf("\n-----------------------------------------------\n");printf("查询成功!\n");printf("\n继续查询?(Y/N)\n");scanf("%s",&flag);if(flag=='Y'||flag=='y')goto jmp;}elseprintf("对不起,没有此数据相关的纪录!!!\n\n");break;case 3:printf("请输入姓名删除纪录:\n");delete(head);break;case 4:quit();break;default:printf("\n\n按错键了吧?请输入数字0-6!\n\n\n");} /*用SWITCH函数选择菜单;*/}}(2)如果结果中有多个文件,列出文件名清单,注明每个程序的作用。
c语言通讯录管理实验报告及源程序代码

C语言程序设计实训报告课程名称 C语言程序设计实训课题名称通讯录管理专业软件工程班级 K软件151学号姓名指导教师2016年 1 月 1 日汽车工业学院科技学院C语言程序设计实训任务书课程名称 C语言程序设计实训课题通讯录管理专业班级软件工程学生学号指导老师审批一、设计容与设计要求1.设计容:设计课题:通讯录管理一、问题描述:该设计实现对通讯录得管理功能,具体包括从键盘输入通讯录的信息、从指定的文件中读入通讯录的信息、按查询通讯录的信息、按分类查询通讯录的信息、删除指定的通讯录的信息、将通讯录信息保存在指定的文件中等。
二、功能要求:1)能从键盘输入通讯录的信息(增加,输入时需要能检查该的通讯录的记录是否已经存在,如果存在,需要询问是否是覆盖还是增加,需要判断输入的类型是否存在)2)能从指定的文件中读入通讯录的信息3)能按查询通讯录的信息4)能按分类查询通讯录的信息5)能删除指定的通讯录的信息6)能将通讯录信息保存在指定的文件中7)所有数据符合实际应用要求2.设计要求:1)设计正确,方案合理。
2)界面友好,使用方便。
3)程序精炼,结构清晰。
4)上机演示。
3.设计报告要求:课程设计报告格式如下:1)正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体,行距为22。
2)正文的容:课题的主要功能、课题的功能模块的划分、主要功能的实现、程序调试、总结、附件(所有程序的源代码,要求对程序写出必要的注释)。
3)课程设计报告装订顺序:封面、任务书、目录、正文、评分、程序清单附件。
二、进度安排汽车工业学院科技学院2015年12月 20 日目录1 系统需求分析 (6)2 概要设计 (6)3 详细设计 (6)4 系统测试 (14)5 课程设计总结 (15)1 系统需求分析本系统首先设计出了主函数,然后根据去要实现的功能分别设计,添加、显示、删除、查找、修改功能的子函数。
在现实的函数设计过程中首先运用文件的读取等必要的知识通过把文件的容读取到存然后打印出来。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
六
源程序:
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#define LEN sizeof(struct people)
void show();
void delete(char *);
void query(char *);
int main(int argc, char const *argv[])
{
struct people * peo;
char nam[10];
int i, choose = 0;
for (i = 0; i < 60; ++i)
C语言集中上机报告
院系:班级:
姓名:
合作者:
指导教师:
2015年6月1日
一
课程设计的目的
实现个人通讯录管理,录入包括姓名、地址、邮政编码、电话号码的信息。其中:
1、对n名学生包括姓名、地址、邮政编码、电话号码等信息进行输入;
2、显示所有记录的信息,若无记录,则给出提示信息;
3、可以按姓名进行查询;
4、可以按姓名进行删除;
show();
break;
case 3:
printf("\n请输入要删除联系人的姓名:");
scanf("%s", nam);
delete(nam);
break;
case 4:
printf("\n请输入要查询联系人的姓名:");
scanf("%s", nam);
query(nam);
break;
case 5:
struct people
{
char name[10];
char address[50];
char postcode[7];
char phonenum[12];
struct people * next;
};
int n = 0, c;
static struct people * head;
void insert();
p = p -> next;
} while (p != NULL);
}
}
void delete(char * name)
{
struct people * p1, * p2;
if (head == NULL)
{
printf("没有数据\n");
}
p1 = head;
while(strcmp(name, p1 -> name) && p1 -> next != NULL)
4、学会调试一个较长程序的基本方法;
5、学会利用流程图或N-S图表示算法;
6、掌握书写程序设计开发文档的能力。
2.课程设计的主要设计思想
整个程序的设计是通过对每一个功能的设计,然后,再对每一个功能的程序进行模块化,从而形成一个完整的管理系统。自顶向下、逐步细化、逐步求精。在对于给定问题进行透彻的了解和详细的分析的基础上,把问题分解成若干个按顺序执行的逻辑部分(称为“模块”)。每个子任务如果仍很复杂,还可以再分解为若干个子任务。对于每个模块的设计都采用这种“自顶向下、逐步细化”的方法,将它们分解成为基本结构为止,就如同写文章先拟出题目和中心内容,再确定分为几大部分,每一大部分又分哪几节,每一节分为几段,每一段包括哪几个意思,这就是“自顶向下,逐步细化”的方法。
整体框图:
三
主界面和菜单:
输入“1”新建联系人
输入“2”显示所有联系人:
输入“3”删除联系人:
入“4”查找联系人
四
通过本次课程的学习我知道了我在C语言方面明显的不足,看了实验要求后我很茫然,不知道哪些题目我有把握做出来。选好了题目之后我就开始着手准备,想制作程序,可我不知道从哪里着手,于是我开始将大困难细化,先解决小功能再解决主界面的困难。全都写完了之后,编译后有好多错误,感觉很烦躁,我开始上网查资料、看书等等,每少一个错误我都有成就感。最后编译成功了,正常运行了的时候我真的觉得自己很不错。但是在这之间我也深刻体会到了我在C语言方面的不足,还有很多要学习。
}
void show()
{
struct people * p;
printf("姓名\t地址\t邮政编码\t电话号码\n");
p = head;
if (head != NULL)
{
do
{
printf("%s \t %s %s \t %s \n", p ->name, p -> address, p -> postcode, p -> phonenum);
五
C语编程设计终于告个段落,疯狂地查找资料和看书也随之而结束了。此时此刻我深深吸了一口气,感觉心里的那块大石头终于落下去了。同时,感悟颇深。
写程序时,一定要有耐心而且谨慎,不急于上机运行,待检查觉得无误后,方可上机调试。如果一写完后就急于运行,这不仅得不到想要的结果,反而会打击积极性。因为写完后一定存在很多由于疏忽而存在的错误,上机运行时会浪费更多的时间去查找错误。因此一定要谨慎。
} else {
p1 = head;
while(p1 -> next != NULL)
{
p1 = p1 -> next;
}
p2 = p1;
p1 = (struct people *)malloc(LEN);
printf("姓名:");
scanf("%s", &p1->name);
printf("地址:");
exit(0);
break;
}
} while (1);
return 0;
}
void insert()
{
struct people * p1, * p2;
p1 = (struct people *)malloc(LEN);
if (n == 0)
{
printf("姓名:");
scanf("%s", &p1->name);
n = n - 1;
} else {
printf("找不到这个人\n");
}
}
void query(char * name)
{
struct people * p;
p = head;
if (head != NULL)
{
do
{
if (!strcmp(name, p -> name))
{
printf("姓名:%s\n", p -> name);
{
p2 = p1;
p1 = p1 -> next;
}
if (!strcmp(name, p1 -> name))
{
if (p1 == head)
{
head = p1 ->next;
} else
{
p2 -> next = p1 -> next;
}
printf("已经删除%s的数据\n", name);
}
}
参考文献
[1]谭浩强,C程序设计题解与上机指导(第二版),北京,清华大学出版社,2000年9月。
6、退出程序
1.课程设计的要求
教师要求:
1、为通信录数据定义类型和定义通信录变量,实现功能:存取、显示、删除记录、查询记录等功能。
2、要求:界面友好,易于操作。(本题目限最多一个人完成)
需要的基本知识和技能:
1、利用C语言进行程序设计的能力;
2、理解和运用结构化程序设计的思想和方法;
3、初步掌握开发一个小型实用系统的基本方法;
printf("地址:");
);
printf("邮编:");
scanf("%s", &p1->postcode);
printf("电话:");
scanf("%s", &p1->phonenum);
head = p1;
p1 -> next = NULL;
scanf("%s", &p1->address);
printf("邮编:");
scanf("%s", &p1->postcode);
printf("电话:");
scanf("%s", &p1->phonenum);
p2 -> next = p1;
p1 -> next = NULL;
}
n += 1;
二
整体设计思路:程序主要运用到了文本文件的打开和读取,文件中存取信息的格式为结构体数组,一个主函数下面分为个子函数。此程序运行的前提是必须首先在编译器的子文件中建立一个文本文件,则可以在运行程序的过程中对这个文本文件进行相关读取。
主要特点及具备功能:简洁明了,易于读者阅读。运用了链表结构,可以自动开辟内存空间储存,操作简单,运用了while循环。
printf("地址:%s\n", p -> address);