班级通讯录管理系统课程设计报告

合集下载

通讯录管理系统课程设计报告

通讯录管理系统课程设计报告

通讯录管理系统课程设计报告一、课程设计背景随着信息化时代的到来,通讯录管理系统已经成为了人们日常生活中必不可少的一部分。

在这个快节奏的社会中,人们需要随时随地地获取和管理自己的联系人信息。

因此,设计一个高效、方便、易用的通讯录管理系统就显得尤为重要。

二、需求分析1.功能需求(1)用户注册与登录:用户可以通过注册账号并登录到系统中。

(2)通讯录添加:用户可以添加联系人,包括姓名、电话号码、电子邮件等信息。

(3)通讯录查询:用户可以根据姓名或电话号码等信息查询特定联系人。

(4)通讯录修改:用户可以对已有联系人信息进行修改。

(5)通讯录删除:用户可以删除指定的联系人。

2.非功能需求(1)易用性:系统应该具有良好的界面设计和操作逻辑,使用户能够快速上手使用。

(2)安全性:系统应该具有安全防护措施,保护用户的数据不被非法获取或篡改。

(3)稳定性:系统应该具有高可靠性和稳定性,确保在任何情况下都能正常运行。

三、技术选型本次课程设计采用Java语言进行开发,使用MySQL数据库作为数据存储后端。

前端采用Java Swing框架进行设计,实现用户界面的构建和交互。

后端采用JDBC技术进行与数据库的交互。

四、系统设计1.系统架构本系统采用MVC(Model-View-Controller)架构模式,将业务逻辑、数据存储和用户界面分离开来,提高了代码的可维护性和可扩展性。

2.模块设计(1)用户管理模块:实现用户注册、登录等功能。

(2)通讯录管理模块:实现通讯录添加、查询、修改、删除等功能。

(3)数据存储模块:负责与数据库进行交互,实现数据的持久化存储。

五、系统实现1.前端实现本系统采用Java Swing框架进行开发,通过调用Swing组件库中的各种控件来构建用户界面。

其中包括登录窗口、注册窗口、主窗口等界面。

2.后端实现本系统采用JDBC技术进行与MySQL数据库的交互。

通过编写SQL语句来完成对数据库中表格的增删改查操作,并将结果返回给前端界面显示。

班级通讯录管理系统课程设计分析报告

班级通讯录管理系统课程设计分析报告

高级语言程序设计(1)课程设计专业班级学号姓名完成日期指导教师:1.程序设计说明书【设计题目】班级通讯录管理系统【问题描述】信息1002班上学生的通讯基本信息包含姓名、电话号码、QQ号和宿舍号。

对信息1002班学生的基本通讯信息进行统一整理,并可以按电话号码或姓名等查到学生个人基本通讯信息。

可以显示所有的通讯记录,并对现有的通讯记录进行修改和增删等处理。

【基本要求】1.通过此软件可以直接录入各个学生的基本通讯信息,并且会将所有信息自动保存到磁盘上。

2.通过此软件可以直接对已录入的各个学生的通讯基本信息进行修改,并且修改完成后会将更改后的信息情况自动保存到原磁盘文件中。

3.通过此软件可以直接对信息1002班每个同学的基本信息情况进行查询。

【算法思想】1.根据要求,通讯录数据以文本文件存放在文件中:2.需要提供文件的输入输出的等操作:3.还需要保存记录已进行修改,删除,查找的操作:4.另外还需提供键盘式选择菜单实现功能的选择。

【总体设计】图1系统功能模块图【详细设计】主函数主函数设计要求简洁,只提供部分提示语和函数的调用【程序】图2.主函数流程图Voidmenu()/*主界面*/{intn,w1;voidenter();voidadd();voidmodify();voidbrowse();voiddelete();voidsearch(); do{puts("\t*******菜单**************\t\n\n");puts("\t\t\t\t1.新建联系人");puts("\t\t\t\t2.添加联系人");puts("\t\t\t\t3.修改");puts("\t\t\t\t4.删除");puts("\t\t\t\t5.浏览");puts("\t\t\t\t6.查找");puts("\t\t\t\t7.退出");puts("\n\n\t*****信息1002班通讯录*************\t\n");printf("请选择服务种类(1-7):[]\b\b");scanf("%d",&n);if(n<1||n>7){w1=1;getchar();}elsew1=0;}while(w1==1);switch(n){case1:enter();break;/*输入模块*/case2:add();break;/*添加模块*/【模块流程图】main函数delete函数search函数1”,进入新建联系人。

学生通讯录管理系统课程设计

学生通讯录管理系统课程设计

学生通讯录管理系统课程设计一、引言学生通讯录管理系统是一种能够有效管理学生通信信息的软件工具。

在当今信息化社会中,为了更好地维护学生通信信息和便于学校管理,设计一个高效、实用的学生通讯录管理系统至关重要。

本文将围绕学生通讯录管理系统的设计与实现展开讨论。

二、需求分析1. 用户需求•管理员需要能够对学生信息进行增删查改操作;•学生要能够方便地修改个人信息;•教师需要便捷地查看学生信息;•系统需要有良好的用户权限管理机制。

2. 功能需求•学生信息管理:包括学生基本信息的录入、修改和删除。

•通讯录管理:实现学生通讯录的管理和分类。

•查询功能:实现对学生信息的快速查询。

•权限管理:分管理员和普通用户,管理员有更高的权限控制。

三、系统设计1. 系统架构学生通讯录管理系统采用典型的客户-服务器架构,后端基于MySQL数据库存储学生信息,前端通过Web页面进行展示和操作。

2. 数据库设计设计数据库表格包括:学生信息表(包括学号、姓名、性别、年级等字段)、用户表、通讯录表等。

3. 页面设计•登录页面:对用户进行身份验证。

•学生信息管理页面:实现对学生基本信息的增删查改。

•通讯录管理页面:实现通讯录的分类和管理。

四、系统实现1. 环境配置•使用Python语言编写后端代码。

•前端采用HTML、CSS、JavaScript。

•数据库采用MySQL。

2. 实现步骤1.搭建后端框架,实现数据的增删查改功能。

2.设计前端页面,实现用户交互和数据展示。

3.进行系统测试和优化。

五、功能演示1. 登录功能输入正确的用户名和密码,用户可以成功登录系统。

2. 学生信息管理管理员可以添加、删除、修改学生信息,普通用户只能查看。

3. 通讯录管理实现对通讯录的添加、分类和管理。

六、总结与展望通过本次学生通讯录管理系统课程设计,我学到了如何进行系统设计、数据库设计和前后端分离开发的方法。

未来,还可以进一步改进系统功能,增加权限管理模块、优化界面交互等,使系统更加稳健和实用。

通讯录管理系统课程设计报告系统存储结构

通讯录管理系统课程设计报告系统存储结构

通讯录管理系统课程设计报告系统存储结构一、引言通讯录管理系统是一种方便快捷地存储和管理联系人信息的应用程序。

在该系统中,数据的存储结构至关重要,它直接关系到系统的性能和稳定性。

本文将介绍通讯录管理系统的系统存储结构设计,包括数据的组织方式、存储介质选择等内容。

二、存储结构设计1. 数据的组织方式在通讯录管理系统中,联系人信息是系统中最主要的数据之一。

为了高效地存储和管理这些信息,我们选择采用数据库的方式进行组织。

数据库将联系人信息按照一定的结构进行组织和存储,方便系统对数据的检索和更新。

2. 数据库的选择在选择数据库时,我们考虑到系统的使用特点和性能要求,最终选择了关系型数据库。

关系型数据库具有良好的数据一致性和完整性,能够满足系统的数据管理需求。

同时,支持 SQL 查询语言的特性也使得对数据进行灵活的操作成为可能。

3. 数据表设计在关系型数据库中,数据是以表的形式进行存储的。

针对通讯录管理系统的需求,我们设计了以下几张表:•用户表:用于存储系统的用户信息,包括用户名、密码等;•联系人表:用于存储用户的联系人信息,包括姓名、电话号码、邮箱地址等;•分组表:用于将联系人进行分类管理,方便用户对联系人信息进行组织。

每张表之间通过外键进行关联,确保数据的一致性和完整性。

三、存储介质选择除了数据库存储外,系统还需要选择适当的存储介质来保存一些系统配置信息和用户的登录状态等数据。

我们选择了文件系统作为存储介质,将这些数据以文件的形式进行存储。

四、存储结构的优化为了提高系统的性能和响应速度,我们对存储结构进行了一定的优化。

主要包括以下几点:•索引设计:对关键字段建立索引,加快检索速度;•归档策略:定期对系统中的数据进行归档,减少存储空间的占用;•缓存机制:使用缓存技术对频繁访问的数据进行缓存,减少数据库访问的频率。

五、总结系统存储结构的设计对于通讯录管理系统的性能和稳定性具有重要影响。

通过合理选择数据库和存储介质,并对存储结构进行优化,可以有效提高系统的用户体验和响应速度。

通讯录管理系统课程设计报告

通讯录管理系统课程设计报告

通讯录管理系统课程设计报告(总7页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--设计课题题目一、课程设计目的与要求1.课程设计目的(1)综合运用之前所学知识(选择控制,循环控制,数组,函数,指针,结构体和文件等)来完成一个简单的信息管理程序的设计。

(2)充分体现和体会函数在程序设计中的必要性和实用性,并反映主函数main()在程序设计中的实现思路和方法。

2. 课程设计要求制作一个通讯录系统。

(1)该程序具有查找、添加、修改、删除功能。

(2)通讯录包括:姓名、电话、街道、城市、省、邮编等。

二、总体设计根据系统的要求,系统总体设计如图1所示。

三、详细设计1、数据结构设计#include<> /*标准输入输出函数库*/ #include<> /*标准函数库*/#include<> /*字符串函数库*/#define FILENAME ""struct date退出printf("\t--------------------\n");printf("\t请您选择(0-7):");scanf("%d",&c);}while(c>7&&c<0);return(c);}int Input(struct date per[10],int n){ int i=0;char sign,x[10];while(sign!='n'&&sign!='N'){ printf("\t姓名:");scanf("%s",per[n+i].name);printf("\t电话号码:");scanf("%s",per[n+i].phone);printf("\t电子邮箱:");scanf("%s",per[n+i].email);printf("\tQQ:");scanf("%s",per[n+i].QQ);gets(x);printf("\n\t是否继续添加(Y/N)");fflush(stdin); ame,per[i-1].phone,per[i-1].QQ,per[i-1].email);if(i>1&&i%10==0){ printf("\t-----------------------------------\n");printf("\t");system("pause");printf("\t-----------------------------------\n");}}printf("----------------------------------------------------------------------\n");system("pause");}int Delete_a_record(struct date per[10],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){printf("\t通讯录中没有此人!\n");return(n);}for(j=i;j<n-1;j++){ strcpy(per[j].phone,per[j+1].phone);strcpy(per[j].name,per[j+1].name);strcpy(per[j].QQ,per[j+1].QQ);strcpy(per[j].email,per[j+1].email);}printf("\t\t\t已经成功删除!\n");return(n-1);}void Query_a_record(struct date per[10],int n){ int m;printf("\t\n请选择查询方式:\n");printf("\t┌──────┐\n");printf("\t│1------姓名│\n");printf("\t│2------电话│\n");printf("\t│3------返回│\n");printf("\t└──────┘\n");printf("请选择:");scanf("%d",&m);while(m!=1&&m!=2&&m!=3&&m!=4){printf("输入错误,请重新选择:");scanf("%d",&m);}if(m==1){ char s[20];int i=0;printf("\t请输入想查询的姓名:");scanf("\t%s",s);while(strcmp(per[i].name,s)!=0&&i<n) i++;if(i==n){printf("\t通讯录中没有此人!\n");return;}printf("\t此人QQ: %s\n",per[i].QQ);printf("\t电话号码: %s\n",per[i].phone);printf("\t电子邮箱: %s\n",per[i].email);} ;if(m==2){ char s[20];int i=0;printf("\t请输入想查询的电话:");scanf("\t%s",s);while(strcmp(per[i].phone,s)!=0&&i<n) i++;if(i==n){printf("\t通讯录中没有此人!\n");return;}printf("\t此人姓名: %s\n",per[i].name);printf("\t此人QQ: %s\n",per[i].QQ);printf("\t电子邮箱: %s\n",per[i].email);} ;}void Change(struct date per[10],int n){ char s[20];int i=0;printf("\t请输入想修改的记录中的名字:");scanf("%s",s);while(strcmp(per[i].name,s)!=0&&i<n) i++;if(i==n){ printf("\t通讯录中没有此人!\n");return;}printf("姓名:");scanf("%s",per[i].name);printf("电话号码:");scanf("%s",per[i].phone);printf("QQ:");scanf("%s",per[i].QQ);printf("电子邮箱:");scanf("%s",per[i].email);printf("\n修改成功!");}void WritetoText(struct date per[10],int n){ int i=0;FILE *fp;ame,per[i].phone,per[i].QQ,per[i].email);i++;}fprintf(fp,"-------------------------------------------------------------------------\n");fprintf(fp,"********************************共有%d条记录***************************\n",n);fclose(fp);其是在调试过程中,会因为某些原因出不来结果,也会因为个别错误而导致运行不出来,在这个过程中,遇到问题是不可避免的,但是在遇到困难是我们不退缩。

班级通讯录管理系统 课程设计报告

班级通讯录管理系统 课程设计报告

高级语言程序设计(1)课程设计专业 班级 学号姓名 完成日期 指导教师:1. 程序设计说明书【设计题目】 班级通讯录管理系统【问题描述】信息1002班上学生的通讯基本信息包含姓名、电话号码、QQ 号和宿舍号。

对信息1002班学生的基本通讯信息进行统一整理,并可以按电话号码或姓名等查到学生个人基本通讯信息。

可以显示所有的通讯记录,并对现有的通讯记录进行修改和增删等处理。

【基本要求】1. 通过此软件可以直接录入各个学生的基本通讯信息,并且会将所有信息自动保存到磁盘上。

2. 通过此软件可以直接对已录入的各个学生的通讯基本信息进行修改,并且修改完成后会将更改后的信息情况自动保存到原磁盘文件中。

3. 通过此软件可以直接对信息1002班每个同学的基本信息情况进行查询。

【算法思想】1. 根据要求,通讯录数据以文本文件存放在文件中:2. 需要提供文件的输入输出的等操作:3. 还需要保存记录已进行修改,删除,查找的操作:4. 另外还需提供键盘式选择菜单实现功能的选择。

【总体设计】图1 系统功能模块图【详细设计】通讯录管理系统数据输入 数据修改 删除 数据添加 查找 浏览主函数设计要求简洁,只提供部分提示语和函数的调用【程序】开始显示一系列功能选项n输入n,判断n是否是1~7 ?根据n的值调用各功能模块函数结束图2. 主函数流程图Void menu() /*主界面*/{int n, w1;void enter(); void add(); void modify(); void browse(); void delete(); voidsearch();do{puts("\t*******菜单**************\t\n\n");puts("\t\t\t\t1.新建联系人");puts("\t\t\t\t2.添加联系人");puts("\t\t\t\t3.修改");puts("\t\t\t\t4.删除");puts("\t\t\t\t5.浏览");puts("\t\t\t\t6.查找");puts("\t\t\t\t7.退出");puts("\n\n\t*****信息1002班通讯录*************\t\n");printf("请选择服务种类(1-7) : [ ]\b\b");scanf("%d",&n);if(n<1||n>7){w1=1;getchar();}else w1=0;}while(w1==1);switch(n){case 2: add(); break; /*添加模块*/【模块流程图】main函数开始显示一系列功能选项n输入n,判断n是否是1~7 ?根据n的值调用各功能模块函数结束enter函数输入选择服务类型1输入要新建学生数量n(n<N)输入第一个,第二个.......第n个学生信息记录What do you want to do?1>.浏览所有 2.>..返回modify函数输入选择服务类型3输入要修改学生姓名,选择修改选项1>.姓名 5.>.所有数据2.>.电话3.>.QQ号4.>.宿舍号 6.>.取消返回是否确定修改?1.>.是2.>.不,重新修改3.>.保存并返回browse函数输入浏览服务号5浏览所有学生基本通讯信息返回主菜单delete函数输入服务选项4输入要删除学生的姓名是否删除1.>.是2.>.否,返回search函数选择服务类型6选择查找类别1.>.姓名2.>.QQ号查看已查找到地通讯信息1.>继续2.>.返回【程序使用方法】1. 执行程序,按照界面提示进行选择。

班级通讯录课程设计

班级通讯录课程设计

班级通讯录课程设计一、课程目标知识目标:1. 让学生掌握班级通讯录的基本构成要素,包括姓名、性别、联系方式等。

2. 培养学生运用现代信息技术,如电子表格、数据库等,管理和更新通讯录的能力。

3. 使学生了解通讯录在班级管理和人际交往中的重要性。

技能目标:1. 培养学生收集、整理和分类信息的能力。

2. 提高学生使用电子设备、办公软件等工具进行信息处理的能力。

3. 培养学生团队协作、沟通表达的能力。

情感态度价值观目标:1. 培养学生关爱他人、尊重隐私的良好品质。

2. 增强学生的班级荣誉感和归属感,促进班级团结。

3. 培养学生主动参与班级管理,提高责任感和主人翁意识。

课程性质:本课程为信息技术与班级管理相结合的实践性课程,注重培养学生的实际操作能力和团队协作能力。

学生特点:学生处于具备一定信息素养和班级管理意识的阶段,具有较强的学习能力和探索精神。

教学要求:教师需结合学生特点,采用任务驱动法、小组合作法等教学方法,引导学生主动参与课程实践,确保课程目标的达成。

同时,注重对学生的学习过程进行评价,及时调整教学策略,提高教学效果。

通过本课程的学习,使学生能够掌握通讯录的制作与管理技能,提升班级管理和人际交往能力。

二、教学内容1. 班级通讯录的基本概念与构成:- 介绍通讯录的定义、作用及其在班级管理中的应用。

- 学习通讯录的基本构成要素:姓名、性别、联系方式、住址等。

2. 通讯录的制作与信息收集:- 教授如何使用电子表格软件(如Microsoft Excel)制作通讯录。

- 引导学生收集并整理班级同学的个人信息。

3. 通讯录的管理与更新:- 掌握电子表格的基本操作,如排序、筛选、查找等。

- 学习定期更新通讯录信息,保证信息的准确性。

4. 信息技术在通讯录中的应用:- 介绍数据库的基本概念,了解其在通讯录管理中的作用。

- 学习利用数据库软件进行通讯录信息的存储、检索与管理。

5. 班级通讯录的实际应用与讨论:- 分析通讯录在班级日常管理、活动组织等方面的具体应用。

通讯录管理系统课程设计报告

通讯录管理系统课程设计报告

通讯录管理系统课程设计报告一、引言通讯录管理系统是一种用于存储和管理联系人信息的应用程序,它可以帮助用户方便地记录和查找各种联系人信息。

在本课程设计报告中,我们将讨论通讯录管理系统的设计和实现过程,以及系统的功能特点和操作流程。

二、需求分析通讯录管理系统需要具备以下基本功能: 1. 添加联系人信息:用户可以输入姓名、电话号码、电子邮件地址等信息来添加新的联系人。

2. 查找联系人信息:用户可以通过姓名或电话号码等关键词来查找已添加的联系人信息。

3. 修改联系人信息:用户可以对已有联系人信息进行修改和更新。

4. 删除联系人信息:用户可以选择删除不需要的联系人信息。

5. 显示所有联系人信息:系统可以按照一定的格式将所有联系人信息展示给用户。

三、系统设计1. 数据结构为了存储联系人信息,我们可以使用一个包含姓名、电话号码、电子邮件地址等字段的结构体来表示每个联系人。

可以使用链表或数组来组织所有联系人信息。

2. 模块设计通讯录管理系统可以划分为以下几个模块: - 添加联系人模块:实现添加新联系人信息的功能。

- 查找联系人模块:实现根据关键词查找联系人信息的功能。

- 修改联系人模块:实现对已有联系人信息进行修改和更新的功能。

- 删除联系人模块:实现删除不需要的联系人信息的功能。

- 显示联系人模块:实现将所有联系人信息按照一定格式展示给用户的功能。

3. 用户界面设计用户界面应该简洁明了,包括各个功能的按钮或选项,以及输入框和显示信息的区域。

用户应该能够方便地进行各种操作和查看联系人信息。

四、系统实现1. 数据存储可以使用文件来存储联系人信息,也可以使用数据库来进行数据持久化。

2. 界面实现可以使用图形界面或命令行界面来实现用户交互功能,不同的界面设计会影响用户体验。

3. 功能实现根据需求分析中的功能,实现各个模块的功能代码,确保系统可以正确地完成相关操作。

五、功能测试在系统实现完毕后,需要进行功能测试,确保系统的各个功能都能正常运行,并且符合需求。

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

班级通讯录管理系统课程设计报告Coca-cola standardization office【ZZ5AB-ZZSYT-ZZ2C-ZZ682T-ZZT18】高级语言程序设计(1)课程设计专业班级学号姓名完成日期指导教师:1.程序设计说明书【设计题目】班级通讯录管理系统【问题描述】信息1002班上学生的通讯基本信息包含姓名、电话号码、QQ号和宿舍号。

对信息1002班学生的基本通讯信息进行统一整理,并可以按电话号码或姓名等查到学生个人基本通讯信息。

可以显示所有的通讯记录,并对现有的通讯记录进行修改和增删等处理。

【基本要求】1.通过此软件可以直接录入各个学生的基本通讯信息,并且会将所有信息自动保存到磁盘上。

2.通过此软件可以直接对已录入的各个学生的通讯基本信息进行修改,并且修改完成后会将更改后的信息情况自动保存到原磁盘文件中。

3.通过此软件可以直接对信息1002班每个同学的基本信息情况进行查询。

【算法思想】1.根据要求,通讯录数据以文本文件存放在文件中:2.需要提供文件的输入输出的等操作:3.还需要保存记录已进行修改,删除,查找的操作:4.另外还需提供键盘式选择菜单实现功能的选择。

图1系统功能模块图【详细设计】主函数主函数设计要求简洁,只提供部分提示语和函数的调用【程序】图2.主函数流程图Voidmenu()/*主界面*/{intn,w1;voidenter();voidadd();voidmodify();voidbrowse();voiddelete();voidsearch(); do{puts("\t*******菜单**************\t\n\n");puts("\t\t\t\t1.新建联系人");puts("\t\t\t\t2.添加联系人");puts("\t\t\t\t3.修改");puts("\t\t\t\t4.删除");puts("\t\t\t\t5.浏览");puts("\t\t\t\t6.查找");puts("\t\t\t\t7.退出");puts("\n\n\t*****信息1002班通讯录*************\t\n");printf("请选择服务种类(1-7):[]\b\b");scanf("%d",&n);if(n<1||n>7){w1=1;getchar();}elsew1=0;}while(w1==1);switch(n){case1:enter();break;/*输入模块*/case2:add();break;/*添加模块*/【模块流程图】main函数delete函数search函数2.按照程序提示,分别输入信息1002班所有同学的通讯基本信息。

(注:这里默认为信息1002班有30名同学,可以通过宏定义进行修改。

)3.输入成功后,自动返回主界面。

输入“5”,进入通讯录预览,程序自动将各个已录入同学的基本通讯信息输出到屏幕上。

4.输入“2”返回主界面。

输入“3”,进入基本通讯信息修改,按照提示进行输入。

5.输入成功后,输入“1”浏览输入信息,输入“2”返回主界面。

输入“4”,进行删除根据提示操作。

6.输入“6”进行查找,根据提示“1”按姓名查找,“2”按电话号码查找。

7.输入“1”浏览所查找信息,“2”返回主界面。

输入“7”退出程序。

2.程序上机调试报告【语法错误及其排除】1、单词拼写错误,导致出现没有定义的变量。

2、宏定义时在末尾处加上了分号,应该不加分号。

3、菜单输出时不整齐。

【算法错误及其排除】1、逐个检查,用查找替换等。

2、在修改个人通讯信息时,不小心将姓名删除。

3.程序测试结果1.新建联系人;图一2.添加联系人;图二3.修改,删除联系人信息;图三4.浏览,查找。

图四图一图二图三图四【收获及体会】通过为期十多天的设计,我对《C语言》这门有了更深一步的了解。

它是程序设计的重要理论技术基础,在我们专业的学习中占据着十分重要的地位。

同时也使我们知道,要学好这门,仅学习书本上的知识是不够的,还要有较强的实践能力。

因为我们学习知识就是为了实践。

而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。

运用《C语言》中的算法思想作数据结构,结合C语言基本知识,编写一个通讯录管理。

通过完成本课题,进一步熟悉C语言的基本知识,并掌握数据结构的一些基本算法思想,掌握C语言的文件操作(包括从磁盘读入和向磁盘写入内容),进一步熟悉指针的用法,数组的建立运用和函数的调用等。

4.源程序代码#defineN30ame,stu[i].phone,stu[i].QQnum,stu[i].dorm);}voidprintf_n(intn){intj;for(j=0;j<n;j++){if((j!=0)&&(j%10==0)){printf("\n\nPressanykeytocontinue...:");getchar();puts(" \n\n");}printf_one(j);}getchar();intload(){FILE*fp;inti;if((fp=fopen("file","rb"))==NULL){printf("\nCannotopenfile\n");exit(0);}for(i=0;!feof(fp);i++)fread(&stu[i],sizeof(structstudent),1,fp);fclose(fp);return(i-1);}intmodify_data(inti,intn){intc,w1;voidinput(inti);voidmenu();do{puts("\n修改选项=>\n\n1).姓名2).电话号码3).QQ号4).宿舍号5).所有数据6).取消并返回");printf("请选择:[]\b\b");scanf("%d",&c);if(c>6||c<1){puts("\nChooseerror!Pleaseagain!");getchar();}}while(c>6||c<1);do{switch(c){case1:printf("name:");scanf("%s",stu[i].name);break;case2:printf("phone:");scanf("%s",stu[i].phone);break;case3:printf("QQnum:");scanf("%s",stu[i].QQnum);break;case4:printf("dorm:");scanf("%s",stu[i].dorm);break;case5:input(i);break;case6:menu();}puts("\nNow:\n");printf_face();printf_one(i);printf("\n确定\n\n\t1).是2).不,重新修改3).返回不保存[]\b\b");scanf("%d",&w1);}while(w1==2);return(w1);}voidinput(inti){printf_face();printf("\t");scanf("%s\t%s\t%s\t%s",stu[i].name,stu[i].phone,stu[i].QQnum,stu[i].dorm);} voidsave(intn){FILE*fp;inti;if((fp=fopen("file","wb"))==NULL){printf("\nCannotopenfile\n");exit(0);for(i=0;i<n;i++)if(stu[i].name[0]!='\0')if(fwrite(&stu[i],sizeof(structstudent),1,fp)!=1)printf("filewriteerror\n");fclose(fp);}voidprintf_back(){intw;voidbrowse();voidmenu();printf("\n\n\t^_^.Successful.^_^\n\n");printf("Whatdoyouwanttodo\n\n\t1).浏览所有\t2).返回:[]\b\b");scanf("%d",&w);if(w==1)browse();elsemenu();}voidmain(){voidmenu();建联系人*******************");puts("\t\t*******************2.添加联系人*******************"); puts("\t\t*******************3.修改*******************");puts("\t\t*******************4.删除*******************");puts("\t\t*******************5.浏览*******************");puts("\t\t*******************6.查找*******************");puts("\t\t*******************7.退出*******************");puts("\n\n\t**************信息1002班通讯录*********************"); printf("请选择服务种类(1-7):[]\b\b");scanf("%d",&n);if(n<1||n>7){w1=1;getchar();}elsew1=0;}while(w1==1);switch(n){case1:enter();break;case2:add();break;case3:modify();break;case4:delete();break;case5:browse();break;case6:search();break;case7:exit(0);}}voidenter()n",i+1);input(i);}printf_back();}voidadd()n",i-n+1);input(i);}save(k);printf_back();}voidmodify()ame)==0){k=i;s=stu[i];}if(k==-1)printf("\n\n没有记录请重新输入!");}while(k==-1);printf_face();printf_one(k);w1=modify_data(k,n);if(w1==1){printf("\n\t^_^.Successful^_^.\n\n是否继续\n\n\t1).是2).保存返回\t[]\b\b");scanf("%d",&w0);w2=1;}else{w0=0;if(w2==0)stu[k]=s;}if((w0!=1)&&(w2==1))save(n);}while(w0==1);menu();}voidbrowse()n",n);printf("\nPressanykeytoback...");getchar();menu();}voidsearch()名2).电话号码[]\b\b");scanf("%d",&w1);if(w1<1||w1>2){printf("输入错误!请重新输入!\n");w2=1;}}while(w2==1);if(w1==1){do{k=-1;do{printf("\n\nEnternamethattouwanttosearch!\nName:");scanf("%s",;for(i=0;i<n;i++)if(strcmp,stu[i].name)==0){k=i;s=stu[i];}if(k==-1)printf("\n\n没有记录请重新输入!");}while(k==-1);printf_face();printf_one(k);printf("\nWhatdoyouwanttodo\n\t1).继续2).返回菜单[]\b\b");scanf("%d",&w0);}while(w0==1);menu();}else{do{k=-1;{printf("\n\nEnterphonenumberthattouwanttosearch!\nphone:"); scanf("%s",;for(i=0;i<n;i++)if(strcmp,stu[i].phone)==0){k=i;s=stu[i];}if(k==-1)printf("\n\n没有记录请重新输入!");}while(k==-1);printf_face();printf_one(k);printf("\nWhatdoyouwanttodo\n\t1).继续2).返回菜单[]\b\b"); scanf("%d",&w0);}while(w0==1);menu();}}voiddelete()ame)==0){k=i;s=stu[i];}if(k==-1)printf("\n\n没有记录请重新输入!");}while(k==-1);printf_face();printf_one(k);printf("\n确定\n\t1).是2).返回[]\b\b");scanf("%d",&w0);if(w0==1){stu[k].name[0]='\0';save(n);}elsebreak;printf("\n\t^_^.Successful^_^.\n");printf("Whatdoyouwanttodo\n\t1).继续2).返回[]\b\b");scanf("%d",&w1);}while(w1==1);menu();}。

相关文档
最新文档