C语言程序设计_通讯录管理系统

合集下载

通讯录管理系统课程设计c语言

通讯录管理系统课程设计c语言

通讯录管理系统课程设计c语言一、课程目标知识目标:1. 理解通讯录管理系统的基础概念,掌握C语言实现通讯录管理的核心功能;2. 学会使用结构体、数组、文件操作等C语言基础知识,实现数据的存储与读取;3. 掌握函数的定义与调用,能运用模块化编程思想设计通讯录管理系统。

技能目标:1. 能够运用所学知识独立设计并实现一个简单的通讯录管理系统;2. 培养良好的编程习惯,编写规范、可读性强的代码;3. 提高问题分析能力,通过编写程序解决实际问题。

情感态度价值观目标:1. 培养学生对C语言的兴趣,激发学习热情,树立编程自信心;2. 培养学生的团队协作意识,学会在团队中发挥个人优势,共同解决问题;3. 培养学生严谨、踏实的学术态度,养成勤奋思考、乐于探究的良好习惯。

课程性质:本课程为实践性较强的课程,旨在让学生通过实际操作,掌握C语言在通讯录管理系统中的应用。

学生特点:学生具备一定的C语言基础,对编程有一定了解,但实际操作能力有待提高。

教学要求:结合学生特点,注重理论与实践相结合,强调动手实践,培养学生实际编程能力。

通过分解课程目标为具体学习成果,使学生在完成课程学习后,能独立设计并实现一个简单的通讯录管理系统。

二、教学内容1. 通讯录管理系统概述- 了解通讯录管理系统的基本功能与需求;- 掌握系统设计的基本流程与模块划分。

2. C语言基础知识回顾- 结构体、数组的使用;- 文件操作(读写、打开、关闭文件);- 函数的定义与调用。

3. 通讯录管理系统核心功能实现- 设计并实现数据结构存储通讯录信息;- 编写功能函数,包括增加、删除、修改和查询联系人;- 实现数据的持久化存储。

4. 系统测试与优化- 学习测试方法,对系统进行功能测试;- 分析测试结果,优化代码与算法。

5. 编程规范与团队协作- 学习编程规范,编写高质量的代码;- 了解团队协作的重要性,培养团队协作能力。

教学内容安排与进度:第1周:通讯录管理系统概述与需求分析;第2周:C语言基础知识回顾;第3周:设计数据结构与功能函数;第4周:实现通讯录管理系统核心功能;第5周:系统测试与优化;第6周:总结与团队协作。

c语言学生通讯录管理系统设计

c语言学生通讯录管理系统设计

C语言学生通讯录管理系统设计1. 系统概述本文档描述了一个基于C语言的学生通讯录管理系统的设计。

该系统旨在提供一个简单而有效的方式来管理学校中学生的联系信息。

2. 功能需求学生通讯录管理系统需要满足以下功能需求:•添加学生信息:包括学生姓名、学号、年级、班级、电话号码等。

•删除学生信息:根据学号或姓名删除指定学生的信息。

•修改学生信息:根据学号或姓名修改指定学生的信息。

•查询学生信息:根据学号或姓名查询指定学生的信息。

•显示所有学生信息:展示学生通讯录中所有学生的信息。

3. 系统设计3.1 数据结构系统使用以下数据结构来表示学生通讯录:struct Student {char name[50];int studentID;int grade;int class;char phoneNumber[20];};struct StudentDirectory {struct Student students[100];int count;};学生通讯录使用一个结构体数组来存储学生信息,每个学生信息包含姓名、学号、年级、班级和电话号码。

StudentDirectory结构体用于存储整个学生通讯录,count表示当前学生通讯录中的学生数量。

3.2 模块设计系统的实现可以分为以下几个模块:•输入输出模块:负责从用户获取输入以及将结果输出给用户。

•添加学生信息模块:负责向学生通讯录中添加新的学生信息。

•删除学生信息模块:负责从学生通讯录中删除指定学生的信息。

•修改学生信息模块:负责修改学生通讯录中指定学生的信息。

•查询学生信息模块:负责查询学生通讯录中指定学生的信息。

•显示学生信息模块:负责展示学生通讯录中所有学生的信息。

3.3 系统流程下图展示了学生通讯录管理系统的基本流程:flowchart LRA[开始]B[用户输入选项]C{选项是添加学生信息?}D[执行添加学生信息模块]E{选项是删除学生信息?}F[执行删除学生信息模块]G{选项是修改学生信息?}H[执行修改学生信息模块]I{选项是查询学生信息?}J[执行查询学生信息模块]K{选项是显示所有学生信息?}L[执行显示学生信息模块]M[结束]A --> BB -- Yes --> CB -- No --> EC -- Yes --> DC -- No --> ED --> ME -- Yes --> FE -- No --> GF --> MG -- Yes --> HG -- No --> IH --> MI -- Yes --> JI -- No --> KJ --> MK -- Yes --> LK -- No --> ML --> M4. 系统实现系统的具体实现可以参考下面的示例代码:```c #include <stdio.h>struct Student { char name[50]; int studentID; int grade; int class; char phoneNumber[20]; };struct StudentDirectory { struct Student students[100]; int count; };void addStudent(struct StudentDirectory* directory) { // 从用户获取学生信息并添加到学生通讯录中 }void deleteStudent(struct StudentDirectory* directory) { // 从用户获取学生信息并从学生通讯录中删除 }void modifyStudent(struct StudentDirectory* directory) { // 从用户获取学生信息并修改学生通讯录中指定学生的信息 }void queryStudent(struct StudentDirectory* directory) { // 从用户获取学生信息并查询学生通讯录中指定学生的信息 }void showAllStudents(struct StudentDirectory* directory) { // 显示学生通讯录中所有学生的信息 }int main() { struct StudentDirectory directory; directory.count = 0;int option;while (1) {printf(\。

C语言程序设计课程设计---通讯录管理系统

C语言程序设计课程设计---通讯录管理系统

C语言程序设计实习报告题目:通讯录管理系统院系名称电子与信息工程院专业名称电子信息工程班级电子0902班内序号学生姓名指导教师时间2010年6月21日至2010年 7月2日一、课程设计目的.(1)加深对《C语言程序设计》课程所学知识的理解,进一步巩固C语言语法规则。

从实际问题出发,学会自己动手设计,编制结构清晰、风格良好、数据结构适当的C语言程序,从而提高自己根据实际问题设计编写程序的能级,进而能具备解决综合性实际问题的能力。

(2)通过课程设计了解并掌握C语言程序设计的方法,熟悉C程序设计的开发环境及C程序的调试过程。

二、课程设计内容用所学过的C语言知识(文件,结构体,函数,指针)编程一个通讯录管理系统的程序。

三、需求分析对所设计的通讯录管理系统的程序,要求具有以下这些功能:(1)通过键盘输入某位学生的信息。

信息包含,姓名,性别,年龄,班级,QQ,电话,学号,地址。

(2)给定学号,显示某位学生的信息;(3)给定某个班级的班号,显示该班所有学生的通讯录信息;(4)显示全部通讯录信息;(5)给定某位学生的学号,修改该学生的通讯录信息;(6)给定某位学生的学号,删除该学生的通讯录信息;(7)能够对学号进行升序排序;(8)用文件的形式将录入的数据进行存储,并从其中读取数据。

四、概要设计1.系统结构图根据设计要求,进行分析,给出系统结构图,即各功能的模块图,结构图如下2.功能模块说明对各个模块进行功能的描述。

(1)输入模块:实现学生基本信息的基本输入如姓名,性别,年龄,班级,QQ,电话,学号,地址。

(2)插入模块:实现对一个学生信息的插入。

(3)查询模块:根据需要,输出某一个学生的信息。

(4)浏览模块:输入班级号查询该班级中所有学生的信息,或浏览全部学生信息。

(5)修改模块:根据需要,修改指定学生的指定信息。

(6)删除模块:删除某个学生的全部信息。

(7)排序模块:①按学号排序,②按班级排序。

五、详细设计及运行结果六、调试情况,设计技巧及体会1、对自己设计进行评价,指出合理和不足之处,提出改进的方案。

通讯录管理系统c语言课程设计报告顺序储存

通讯录管理系统c语言课程设计报告顺序储存

通讯录管理系统C语言课程设计报告一、引言通讯录管理系统是一种能够对联系人信息进行存储、增删改查等管理操作的系统。

在本课程设计中,我设计并实现了一个基于C语言实现的通讯录管理系统,采用顺序储存的数据结构。

本报告将介绍通讯录管理系统的设计思路、功能特点以及实现过程。

二、需求分析通讯录管理系统主要包括以下功能:1.添加联系人信息2.删除联系人信息3.修改联系人信息4.查询联系人信息5.显示所有联系人信息在设计系统时,需要考虑如何高效地实现上述功能,并保证数据的准确性和一致性。

三、设计思路为了实现通讯录管理系统,我采用了顺序储存的方式存储联系人信息。

具体而言,我使用结构体数组来存储联系人的姓名、电话号码等信息,通过数组下标来实现对联系人信息的操作。

四、功能实现1. 添加联系人信息用户通过输入联系人的姓名、电话号码等信息,将新的联系人信息添加到通讯录中。

系统会提示用户输入相关信息,并将信息加入到结构体数组中。

2. 删除联系人信息用户可以根据联系人的姓名或电话号码来删除指定的联系人信息。

系统会遍历结构体数组,找到相应的联系人信息并删除。

3. 修改联系人信息用户可以选择需要修改的联系人信息,然后输入新的信息进行修改。

系统会在结构体数组中找到对应的联系人信息,并进行更新操作。

4. 查询联系人信息用户可以通过姓名或电话号码查询指定联系人的信息。

系统会输出符合条件的联系人信息。

5. 显示所有联系人信息系统会将通讯录中所有联系人的信息依次显示出来,方便用户查看。

五、总结通过本次课程设计,我深入理解了C语言的数据结构和实现原理,同时锻炼了对问题的分析与解决能力。

通讯录管理系统是一个简单且实用的应用,通过本次设计,我对通讯录系统的设计与实现有了更深入的认识,也提高了编程的能力。

六、参考文献暂无以上是对通讯录管理系统C语言课程设计报告的简要介绍,希望能够对您有所帮助。

c语言课程设计通讯录管理系统

c语言课程设计通讯录管理系统

c语言课程设计 通讯录管理系统一、课程目标知识目标:1. 理解C语言中结构体的概念和使用方法,掌握利用结构体创建复杂数据结构的能力;2. 学会使用数组存储结构体数据,实现对通讯录信息的有效管理;3. 掌握基本的文件操作,能够实现通讯录数据的存储和读取。

技能目标:1. 能够运用结构体和数组设计并实现一个简单的通讯录管理系统;2. 掌握在C语言中进行简单的输入输出操作,实现用户界面的友好交互;3. 学会使用调试工具进行程序调试,提高解决问题的能力。

情感态度价值观目标:1. 培养学生对编程的兴趣,激发其主动探索和创新的欲望;2. 培养学生的团队协作意识,学会在项目开发中与他人合作;3. 引导学生关注信息技术在生活中的应用,认识到编程对解决实际问题的重要性。

课程性质:本课程为实践性较强的课程,要求学生在掌握C语言基础知识的基础上,运用所学知识设计并实现一个通讯录管理系统。

学生特点:学生具备一定的C语言基础,对编程有一定的兴趣,但可能缺乏实际项目经验。

教学要求:通过本课程的学习,使学生能够将所学知识应用于实际项目中,提高其编程能力和解决实际问题的能力。

将课程目标分解为具体的学习成果,以便在教学过程中进行有效指导和评估。

二、教学内容1. 结构体和结构体数组的概念及应用- 课本章节:第五章 结构体与共用体- 内容:结构体的定义、结构体成员的访问、结构体数组的创建与使用。

2. 文件操作基础- 课本章节:第六章 文件- 内容:文件的打开与关闭、文件的读写操作、文件的定位。

3. 通讯录管理系统设计- 内容:系统需求分析、功能模块划分、系统设计、实现与测试。

4. 用户界面设计- 内容:菜单设计、命令行用户输入输出、简单的人机交互流程。

5. 项目实践与团队协作- 内容:项目分组、任务分配、代码共享与协作、项目评审。

教学进度安排:第一周:复习结构体和结构体数组相关知识,讲解通讯录管理系统需求。

第二周:学习文件操作基础,设计通讯录数据存储与读取功能。

学生通讯录管理系统c语言编程

学生通讯录管理系统c语言编程

学生通讯录管理系统C语言编程简介学生通讯录管理系统是一个帮助学生管理通讯录信息的应用程序。

通过该系统,学生可以添加、删除、查询和修改通讯录中的联系人信息,从而更好地组织和管理自己的通讯录信息。

功能需求1. 添加联系人学生可以通过输入联系人的姓名、电话号码、邮箱等信息,将联系人添加到通讯录中。

2. 删除联系人学生可以根据联系人的姓名或电话号码,从通讯录中删除指定的联系人信息。

3. 查询联系人学生可以通过姓名或电话号码查询通讯录中的联系人信息,并将查询结果显示出来。

4. 修改联系人学生可以修改通讯录中指定联系人的信息,如电话号码、邮箱等。

技术实现通讯录管理系统将使用C语言进行编程实现。

以下是系统的基本设计思路:1. 数据结构设计通讯录信息可以用结构体来表示,包含联系人的姓名、电话号码、邮箱等字段。

struct Contact {char name[50];char phone[20];char email[50];};2. 功能模块划分•添加联系人模块:用于添加新的联系人信息。

•删除联系人模块:用于删除指定联系人信息。

•查询联系人模块:用于根据姓名或电话号码查询联系人信息。

•修改联系人模块:用于修改指定联系人的信息。

3. 用户界面设计系统将使用控制台界面,通过菜单来实现各个功能模块的调用。

开发步骤1. 定义数据结构首先定义联系人结构体,包含姓名、电话号码、邮箱等字段。

2. 实现功能模块分别实现添加联系人、删除联系人、查询联系人、修改联系人等功能模块的具体代码。

3. 编写主程序编写主程序,通过调用功能模块来实现整体通讯录管理系统的运行。

总结学生通讯录管理系统C语言编程是一个实用的项目,通过这个项目,学生可以熟练掌握C语言编程的基本知识,并且实践项目开发的流程。

通过不断调试和完善,学生可以提升自己的编程能力和项目实现能力。

希望学生能够在这个项目中学到更多的知识,提升自己的编程技能。

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

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

c语言课程设计通讯录管理系统课程设计报告一、教学目标本课程旨在通过学习C语言通讯录管理系统的设计与实现,让学生掌握C语言编程的基本技能,培养其软件开发的基本思路与方法。

具体目标如下:1.知识目标:–理解C语言的基本数据类型、运算符、控制结构。

–学习C语言函数的定义与调用。

–掌握结构体、文件操作等高级C语言特性。

2.技能目标:–能够运用C语言实现简单的数据结构,如链表、数组。

–培养学生使用C语言进行程序设计的能力,能够独立完成程序编写、调试与优化。

–学会使用C语言实现文件操作,包括文件的读取与写入。

3.情感态度价值观目标:–培养学生对计算机科学的兴趣,增强其自主学习的动力。

–通过项目实践,培养学生的团队协作能力和解决问题的能力。

–引导学生理解技术对生活的影响,培养其对技术发展的责任感。

二、教学内容教学内容选取C语言编程的核心知识点,结合通讯录管理系统的实例进行讲解。

具体内容包括:1.C语言基础:数据类型、变量、运算符、控制结构。

2.函数:函数定义、调用、参数传递、返回值。

3.数据结构:数组、链表、栈和队列。

4.文件操作:文件读写、文件指针。

5.通讯录管理系统实现:结构体定义、系统功能实现、项目管理。

三、教学方法结合C语言特点和通讯录管理系统实例,采用以下教学方法:1.讲授法:系统讲解C语言基础知识和通讯录管理系统的设计理念。

2.案例分析法:通过分析典型代码案例,让学生理解程序设计逻辑。

3.实验法:学生在实验室进行编程实践,巩固理论知识。

4.讨论法:分组讨论问题,培养学生的团队协作和沟通能力。

四、教学资源1.教材:《C程序设计语言》(K&R)、《C Primer Plus》。

2.参考书:《C语言编程思想》、《C语言实践》。

3.多媒体资料:教学PPT、在线编程教程、视频讲解。

4.实验设备:计算机、网络环境、编程环境(如Code::Blocks、VisualStudio)。

五、教学评估本课程的教学评估将综合考虑学生的平时表现、作业、考试等方面,以全面、客观、公正地评价学生的学习成果。

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

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

c语言课程设计学生通讯录管理系统以下是一个简单的C语言课程设计学生通讯录管理系统的示例代码,可以实现对学生信息的基本操作,如添加、查找、修改和删除。

```c#include <stdio.h>#include <string.h>// 学生信息结构体struct Student {char name[20];int age;char phone[11];};// 学生信息数组struct Student students[100];int count = 0; // 学生数量// 添加学生信息函数void addStudent() {struct Student s;printf("请输入学生姓名:");scanf("%s", );printf("请输入学生年龄:");scanf("%d", &s.age);printf("请输入学生电话:");scanf("%s", s.phone);students[count++] = s;printf("添加成功!\n");}// 查找学生信息函数void findStudent() {char name[20];printf("请输入要查找的学生姓名:");scanf("%s", name);for (int i = 0; i < count; i++) {if (strcmp(students[i].name, name) == 0) {printf("姓名:%s,年龄:%d,电话:%s\n", students[i].name, students[i].age, students[i].phone);return;}}printf("未找到该学生!\n");}// 修改学生信息函数void modifyStudent() {char name[20];printf("请输入要修改的学生姓名:");scanf("%s", name);for (int i = 0; i < count; i++) {if (strcmp(students[i].name, name) == 0) { printf("请输入新的学生姓名:");scanf("%s", students[i].name);printf("请输入新的学生年龄:");scanf("%d", &students[i].age);printf("请输入新的学生电话:");scanf("%s", students[i].phone);printf("修改成功!\n");return;}}printf("未找到该学生!\n");}// 删除学生信息函数void deleteStudent() {char name[20];printf("请输入要删除的学生姓名:");scanf("%s", name);for (int i = 0; i < count; i++) {if (strcmp(students[i].name, name) == 0) {for (int j = i; j < count - 1; j++) {students[j] = students[j + 1]; // 将后面的学生信息往前移动一位,覆盖掉要删除的学生信息。

(完整word版)c语言程序设计通讯录管理系统

(完整word版)c语言程序设计通讯录管理系统

1.需求分析根据题目要求,通讯录保存在文件中,要提供文件的输入和输出功能;还有就是要提供通讯录添加(个人信息包括姓名、学号、年龄、住址、电子邮件等)、删除、显示、修改等基本功能。

2。

概要设计系统总体设计是信息的输入、信息的编辑和退出.系统功能模块如下:1.添加通讯录;2.输出通讯录;3.查找通讯录;4.修改通讯录;5.删除通讯录;6.退出通讯录;3.详细设计1.通讯录里无信息,所以要添加信息.用键盘逐个输入通讯录里联系人的信息.2.输出通讯录用于让使用者观看通讯录里所有的信息.3。

查找通讯录是让使用者可以通过电话或姓名来查找通讯录里的联系人.4。

修改通讯录是让使用者通过姓名查找到通讯录里的联系人,然后其作出修改。

5.删除通讯录是用来按照联系人的姓名或电话来单独删除通讯录中一些不想要的联系人。

还可以集体删除通讯录中的联系人.6.退出通讯录系统。

4.主要源程序代码#include 〈stdio。

h>#include 〈stdlib.h〉#include 〈string.h>#include 〈conio。

h〉struct record{char name[20];char age[20];char phone[20];char adress[40];char number[30];char e_mail[20];}contact[500];int NO=0;FILE *fp;void mainmenu();void newrecord();void browsemenu();void searchmenu();void searchname();void searchphone();void modifymenu();void deletemenu();void deleteall();void deletesingle();void deletename();void deletephone();int loadfile();void savefile();void main(){printf(”\n\t\t :)欢迎使用通讯录管理系统beta”);printf(”\n\t\t文件导入中……请稍后……\n\n\n\n\n");system(”cls”);loadfile();while (1){mainmenu();}}void mainmenu(){char choice;system(”cls");printf("\n\t\t******************** 主菜单********************");printf("\n\t\t****************** 1-新建菜单******************”);printf(”\n\t\t******************2—浏览菜单******************”);printf(”\n\t\t****************** 3—查找菜单******************”);printf("\n\t\t******************4—修改菜单******************”);printf(”\n\t\t******************5-删除菜单******************”);printf(”\n\t\t****************** 6-退出******************");printf("\n\t\t************************************************”); printf(”\n\t\t请选择:");choice=getch();switch (choice){case '1':newrecord();break;case ’2’:browsemenu();break;case ’3’:searchmenu();;break;case '4’:modifymenu();break;case ’5’:deletemenu();break;case '6’:exit(0);default:mainmenu();}}void newrecord(){printf(”\n\t\t****************请输入联系人信息****************\n”);printf(”\n\t\t输入姓名:”);scanf(”%s”,&contact[NO]。

基于c语言通讯录管理系统编程设计

基于c语言通讯录管理系统编程设计

基于c语言通讯录管理系统编程设计以下是一个基于 C 语言的简单通讯录管理系统的编程设计示例:```c#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX_CONTACTS 100// 联系人结构体struct Contact {char name[50];char phone[20];char address[100];};// 保存联系人信息的数组struct Contact contacts[MAX_CONTACTS];// 联系人数量int contactCount = 0;// 函数声明void addContact();void displayContacts();void searchContact();void updateContact();void deleteContact();int main() {// 主菜单int choice;do {printf("\n 通讯录管理系统\n\n");printf("1. 添加联系人\n");printf("2. 显示联系人\n");printf("3. 搜索联系人\n");printf("4. 更新联系人\n");printf("5. 删除联系人\n");printf("6. 退出\n\n");printf("请选择操作:");scanf("%d", &choice);switch (choice) {case 1:addContact();break;case 2:displayContacts();break;case 3:searchContact();break;case 4:updateContact();break;case 5:deleteContact();break;case 6:break;default:printf("无效选择,请重新输入。

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

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

C语言课程设计 - 学生通讯录管理系统1. 引言学生通讯录管理系统,简称STMS(Student Telephone Management System),是一款基于 C 语言开发的学生通讯信息管理系统。

该系统旨在帮助学校或其他机构方便地管理学生通讯录信息,包括学生的基本信息、联系方式等。

本文档将介绍该系统的设计要求、功能模块、数据结构、算法以及使用方法。

2. 设计要求学生通讯录管理系统应满足以下设计要求:•能够实现学生信息的添加、删除、修改和查询等基本操作;•提供用户友好的界面,方便用户进行操作;•数据存储应使用文件方式进行,确保数据可以持久保存;•提供合理的错误处理机制,提示用户操作引起的错误并给予相应的错误提示。

3. 功能模块学生通讯录管理系统包含以下功能模块:3.1 用户管理模块该模块用于管理系统注册的用户信息,包括用户的登录名、密码等。

•用户登录:用户输入用户名和密码,系统验证登录信息并提供相应权限;•用户注册:新用户可以通过该功能注册账号,并设置登录密码;•用户权限管理:系统根据用户不同的角色分配相应的权限。

3.2 学生信息管理模块该模块用于管理学生的基本信息和通讯录信息。

•添加学生信息:用户可以添加学生的基本信息和联系方式;•删除学生信息:用户可以根据学生的ID删除特定学生的信息;•修改学生信息:用户可以修改指定学生的信息;•查询学生信息:用户可以根据学生的姓名或其他关键词进行学生信息的查询。

3.3 通讯录管理模块该模块用于管理学生的通讯录信息,包括通讯录的名称、联系方式等。

•添加通讯录:用户可以添加新的通讯录,并指定通讯录的名称;•删除通讯录:用户可以根据通讯录的名称删除指定的通讯录;•修改通讯录:用户可以修改已存在的通讯录的名称;•查询通讯录:用户可以根据通讯录的名称查询对应的联系方式。

4. 数据结构学生通讯录管理系统采用以下数据结构:4.1 学生结构体typedef struct {int id; // 学生IDchar name[20]; // 学生姓名char gender; // 学生性别char phone[11]; // 学生电话号码char email[50]; // 学生电子邮箱} Student;4.2 通讯录结构体typedef struct {char name[50]; // 通讯录名称char phone[11]; // 通讯录联系方式} Directory;5. 算法学生通讯录管理系统采用以下算法实现部分功能:5.1 添加学生信息```c void addStudent() { Student student; // 用户输入学生信息 printf(。

c语言通讯录管理系统课程设计

c语言通讯录管理系统课程设计

c语言通讯录管理系统课程设计一、教学目标本课程旨在让学生掌握C语言编程基础,通过编写通讯录管理系统,培养学生的实际编程能力和问题解决能力。

具体目标如下:1.知识目标:学生能理解C语言的基本语法、数据类型、运算符、控制结构等,并掌握结构体、文件操作等高级概念。

2.技能目标:学生能运用C语言实现功能齐全的通讯录管理系统,包括但不限于添加、删除、查找、修改联系人信息等功能。

3.情感态度价值观目标:通过课程学习,学生能培养编程思维,增强对计算机科学的兴趣,理解技术对现代社会的重要性。

二、教学内容教学内容围绕C语言通讯录管理系统的设计与实现展开,具体包括:1.C语言基础知识:数据类型、变量、运算符、控制结构。

2.高级数据结构:结构体、指针、数组。

3.文件操作:文件的打开、读写、关闭。

4.通讯录管理系统设计:需求分析、系统设计、功能实现。

三、教学方法结合C语言的特点和学生实际情况,采用以下教学方法:1.讲授法:系统讲解C语言基础知识和编程技巧。

2.案例分析法:分析已有的通讯录管理系统案例,引导学生理解系统设计过程。

3.实验法:学生在实验室环境里动手编写代码,实践所学知识。

四、教学资源为确保教学质量,准备以下教学资源:1.教材:《C程序设计语言》(K&R)、《C Primer Plus》。

2.参考书:《C语言深度剖析》、《C语言编程实践》。

3.多媒体资料:教学PPT、在线编程教程、视频讲解。

4.实验设备:计算机、网络环境、编程环境(如Code::Blocks、Visual Studio)。

五、教学评估本课程采用多元化的评估方式,全面客观地评价学生的学习成果:1.平时表现:通过课堂参与、提问、小组讨论等评估学生的积极性与专注度。

2.作业:布置编程作业,评估学生的编程能力和对知识的理解应用。

3.实验:评估学生在实验室的编程实践表现,检查代码质量与创新性。

4.期中期末考试:设置包含选择题、填空题、编程题的试卷,全面测试学生的知识掌握和应用能力。

C语言程序设计通讯录管理系统

C语言程序设计通讯录管理系统

C语言程序设计通讯录管理系统/*设计一个学生通讯录,内容可自行设计如:姓名,家庭住址,邮编,电话号码等。

结构体类型,要求主函数是一功能选择菜单,其它用各自函数实现,要求:1能建立,修改,增删通讯录2能按多种方式查询3通讯录数据保存在文件中,运行程序时从文件读取到内存里,可以将修改后的数据重新保存至文件。

*/#include<stdio.h>#include<stdlib.h>#include<string.h>struct student//定义学生结构体{char name[10];char sex[4];char addr[30];char exl[10];char tel[12];}stu[100],s;void Initiate()//创建新的通讯录{FILE *fw;int n;if((fw=fopen("txl.text","wb"))==NULL){printf("cannot open file\n");}printf("请输入新建的条目:");scanf("%d",&n);for(int i=1;i<=n;i++){printf("请输入第%d条信息!\n",i);printf("姓名:");scanf("%s",&stu[i].name);printf("\n");printf("性别:");scanf("%s",&stu[i].sex);printf("\n");printf("地址:");scanf("%s",&stu[i].addr);printf("\n");printf("邮编:");scanf("%s",&stu[i].exl);printf("\n");printf("电话:");scanf("%s",&stu[i].tel); printf("\n");fwrite(&stu[i],sizeof(struct student),1,fw);}fclose(fw);}void Show()//显示通讯录{FILE *fr;int i=1;if((fr=fopen("txl.text","rb"))==NULL){printf("cannot open file\n");}printf("姓名\t性别\t地址\t邮编\t电话\n");while(!feof(fr)){fread(&stu[i],sizeof(struct student),1,fr);if(!feof(fr))//判断是否指针在文件的最后,如果在最后则不予执行{printf("%s\t%s\t%s\t%s\t%s\n",stu[i].name,stu[i].sex,stu[i].addr,stu[i].exl,stu[i].tel);i++;}}fclose(fr);}void Add(){FILE *fw;if((fw=fopen("txl.text","ab"))==NULL){printf("cannot open file\n");}printf("姓名:\n");scanf("%s",&);printf("性别:\n");scanf("%s",&s.sex);printf("地址:\n");scanf("%s",&s.addr);printf("邮编:\n");scanf("%s",&s.exl);printf("电话:\n");scanf("%s",&s.tel);fwrite(&s,sizeof(struct student),1,fw);fclose(fw);}void Del()//删除条目{char name[10];int i=1; FILE *fr;FILE *fw;printf("请输入姓名:");scanf("%s",name);if((fr=fopen("txl.text","rb"))==NULL){printf("cannot open file\n");}if((fw=fopen("txl1.text","wb"))==NULL){printf("cannot open file\n");}while(!feof(fr))//循环条件{fread(&s,sizeof(struct student),1,fr);if(!feof(fr))//判断是否指针在文件的最后,如果在最后则不予执行fwrite(&s,sizeof(struct student),1,fw);}fclose(fr);fclose(fw);remove("txl.text");if((fr=fopen("txl1.text","rb"))==NULL){printf("cannot open file\n");}if((fw=fopen("txl.text","wb"))==NULL){printf("cannot open file\n");}int j=1;while(!feof(fr))//循环条件{fread(&s,sizeof(struct student),1,fr);if(!feof(fr))//判断是否指针在文件的最后,如果在最后则不予执行{if(strcmp(name, )!=0)//相等等于0{fwrite(&s,sizeof(struct student),1,fw);//符合条件的才复制}}}fclose(fr);fclose(fw);remove("txl1.text");}void Queryname()//按姓名查询,先读出条目,在每个进行判断{char name[10];FILE *fr;int i=0;printf("请输入要查询的姓名:");scanf("%s",name);if((fr=fopen("txl.text","rb"))==NULL){printf("cannot open file\n");}printf("姓名\t性别\t地址\t邮编\t电话\n");while(!feof(fr)){ i++;fread(&stu[i],sizeof(struct student),1,fr);if(strcmp(name, stu[i].name)==0){printf("%s\t%s\t%s\t%s\t%s\n",stu[i].name,stu[i].sex,stu[i].addr,stu[i].exl,stu[i].tel);}}fclose(fr);}void Querysex()//按性别查询,先读出条目,在每个进行判断{char sex[4];FILE *fr;int i=0;printf("请输入要查询的性别:");scanf("%s",sex);if((fr=fopen("txl.text","rb"))==NULL){printf("cannot open file\n");}printf("姓名\t性别\t地址\t邮编\t电话\n");while(!feof(fr)){ i++;fread(&stu[i],sizeof(struct student),1,fr);if(strcmp(sex, stu[i].sex)==0){printf("%s\t%s\t%s\t%s\t%s\n",stu[i].name,stu[i].sex,stu[i].addr,stu[i].exl,stu[i].tel);}}fclose(fr);}void Alter(){Del();Add();}void Menu(){printf("**************欢迎使用通讯录系统**************");printf("\n");printf("\n");printf(" 1.创建通讯录\n");printf(" 2.插入信息\n");printf(" 3.姓名查询\n");printf(" 4.性别查询\n");printf(" 5.修改记录\n");printf(" 6.删除记录\n");printf(" 7.显示所有记录\n");printf(" 8.退出通讯录\n");printf("\n");printf("请予以选择");}void main(){int choice=1;while(choice<8){Menu();scanf("%d",&choice);system("cls");if(choice<9&&choice>0){switch(choice){case 1:Initiate();break;case 2:Add();break;case 3:Queryname();break;case 4:Querysex();break;case 5:Alter();break;case 6:Del();break;case 7:Show();break;case 8:printf("感谢你的使用!\n");exit(0);}}elseprintf("请正确选择\n");choice=1;}}。

通讯录管理系统c语言课程设计

通讯录管理系统c语言课程设计

通讯录管理系统 - C语言课程设计一、引言通讯录管理系统是一个基础而重要的应用程序,它可以帮助用户轻松地管理各种联系人信息。

本文将介绍一个使用C语言开发的通讯录管理系统的设计和实现过程。

二、系统设计1. 功能设计通讯录管理系统主要包括以下功能: - 添加联系人信息 - 删除联系人信息 - 修改联系人信息 - 查询联系人信息 - 显示所有联系人信息2. 数据结构设计为了实现通讯录管理系统的功能,我们需要设计合适的数据结构来存储联系人信息。

在本系统中,我们使用结构体来表示每个联系人的信息,结构体包括姓名、电话号码等字段。

typedef struct {char name[50];char phone[20];// 其他字段} Contact;3. 界面设计为了方便用户操作,通讯录管理系统的界面设计应该简洁明了。

在本系统中,我们采用命令行界面,用户通过键盘输入不同的命令来实现相应的功能。

三、系统实现1. 添加联系人信息用户可以通过输入联系人的姓名和电话号码来添加新的联系人信息。

系统将会将新的联系人信息存储到通讯录中。

2. 删除联系人信息用户可以通过输入联系人的姓名来删除特定联系人的信息。

系统将会从通讯录中删除对应的联系人记录。

3. 修改联系人信息用户可以通过输入联系人的姓名来修改特定联系人的信息。

系统将会根据用户输入的信息更新通讯录中相应联系人的记录。

4. 查询联系人信息用户可以通过输入联系人的姓名来查询特定联系人的信息。

系统将会显示出对应联系人的所有信息。

5. 显示所有联系人信息用户可以查看通讯录中所有联系人的信息。

系统将会按照一定的格式将所有联系人的信息逐条显示出来。

四、总结通过本文的介绍,我们了解了一个简单而实用的通讯录管理系统的设计和实现过程。

通讯录管理系统可以帮助用户方便地管理联系人信息,提高工作效率。

我们希望在学习C语言的过程中,通过实际项目的练习,提升自己的编程能力和解决问题的能力。

通讯录管理系统是一个不错的项目选择,希望读者可以从中获益良多。

c语言程序设计通讯录管理系统

c语言程序设计通讯录管理系统

c语言程序设计通讯录管理系统通讯录管理系统是一种常见的应用程序,用于管理个人或者组织的联系人信息。

本文将介绍一个基于C语言的通讯录管理系统的设计和实现。

一、需求分析通讯录管理系统需要满足以下功能需求:1. 添加联系人:可以添加新的联系人,包括姓名、电话号码、邮箱等信息。

2. 查找联系人:可以根据姓名或者电话号码查找已存在的联系人。

3. 删除联系人:可以根据姓名或者电话号码删除已存在的联系人。

4. 修改联系人:可以修改已存在联系人的信息,包括姓名、电话号码、邮箱等。

5. 显示所有联系人:可以显示当前通讯录中的所有联系人信息。

二、设计思路1. 数据结构:使用结构体来表示一个联系人的信息,包括姓名、电话号码、邮箱等字段。

使用数组来存储多个联系人的信息。

2. 添加联系人:通过用户输入的方式获取联系人信息,然后将联系人信息添加到联系人数组中。

3. 查找联系人:通过用户输入的姓名或者电话号码,在联系人数组中查找匹配的联系人,并显示其详细信息。

4. 删除联系人:通过用户输入的姓名或者电话号码,在联系人数组中查找匹配的联系人,并将其从数组中删除。

5. 修改联系人:通过用户输入的姓名或者电话号码,在联系人数组中查找匹配的联系人,并允许用户修改其信息。

6. 显示所有联系人:遍历联系人数组,逐个显示联系人的详细信息。

三、代码实现下面是一个简单的通讯录管理系统的C语言代码实现:```c#include <stdio.h>#include <string.h>#define MAX_CONTACTS 100typedef struct {char name[50];char phone[20];char email[50];} Contact;Contact contacts[MAX_CONTACTS];int numContacts = 0;void addContact() {printf("Enter name: ");scanf("%s", contacts[numContacts].name);printf("Enter phone number: ");scanf("%s", contacts[numContacts].phone);printf("Enter email: ");scanf("%s", contacts[numContacts].email);numContacts++;printf("Contact added successfully!\n");}void findContact() {char search[50];printf("Enter name or phone number to search: ");scanf("%s", search);int found = 0;for (int i = 0; i < numContacts; i++) {if (strcmp(contacts[i].name, search) == 0 || strcmp(contacts[i].phone, search) == 0) {printf("Name: %s\n", contacts[i].name);printf("Phone: %s\n", contacts[i].phone);printf("Email: %s\n", contacts[i].email);found = 1;break;}}if (!found) {printf("Contact not found!\n");}}void deleteContact() {char search[50];printf("Enter name or phone number to delete: ");scanf("%s", search);int found = 0;for (int i = 0; i < numContacts; i++) {if (strcmp(contacts[i].name, search) == 0 || strcmp(contacts[i].phone, search) == 0) {for (int j = i; j < numContacts - 1; j++) {strcpy(contacts[j].name, contacts[j + 1].name);strcpy(contacts[j].phone, contacts[j + 1].phone);strcpy(contacts[j].email, contacts[j + 1].email);}numContacts--;printf("Contact deleted successfully!\n");found = 1;break;}}if (!found) {printf("Contact not found!\n");}}void modifyContact() {char search[50];printf("Enter name or phone number to modify: ");scanf("%s", search);int found = 0;for (int i = 0; i < numContacts; i++) {if (strcmp(contacts[i].name, search) == 0 || strcmp(contacts[i].phone, search) == 0) {printf("Enter new name: ");scanf("%s", contacts[i].name);printf("Enter new phone number: ");scanf("%s", contacts[i].phone);printf("Enter new email: ");scanf("%s", contacts[i].email);printf("Contact modified successfully!\n");found = 1;break;}}if (!found) {printf("Contact not found!\n");}}void displayContacts() {printf("Contacts:\n");for (int i = 0; i < numContacts; i++) {printf("Name: %s\n", contacts[i].name); printf("Phone: %s\n", contacts[i].phone); printf("Email: %s\n", contacts[i].email); printf("\n");}}int main() {int choice;do {printf("1. Add contact\n");printf("2. Find contact\n");printf("3. Delete contact\n");printf("4. Modify contact\n");printf("5. Display all contacts\n"); printf("0. Exit\n");printf("Enter your choice: ");scanf("%d", &choice);switch (choice) {case 1:addContact();break;case 2:findContact();break;case 3:deleteContact();break;case 4:modifyContact();break;case 5:displayContacts();break;case 0:printf("Exiting...\n");break;default:printf("Invalid choice!\n");break;}} while (choice != 0);return 0;}```四、总结本文介绍了一个基于C语言的通讯录管理系统的设计和实现。

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

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

c语言课程设计通讯录管理系统课程设计报告一、教学目标本课程旨在通过学习C语言,使学生掌握通讯录管理系统的开发过程,培养学生的编程能力和逻辑思维能力。

具体目标如下:1.知识目标:学生能够理解C语言的基本语法和数据结构,掌握函数的定义和调用,了解面向过程的编程思想。

2.技能目标:学生能够使用C语言编写简单的程序,具备解决实际问题的能力,能够独立完成一个通讯录管理系统的开发。

3.情感态度价值观目标:学生通过课程学习,能够培养对编程的兴趣和热情,增强自我学习的动力,提高团队协作的能力。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、函数的定义和调用,以及面向过程的编程思想。

具体安排如下:1.C语言的基本语法:介绍变量、常量、运算符、表达式等基本概念。

2.数据结构:介绍整数、浮点数、字符等数据类型的使用,以及数组、指针等数据结构。

3.函数的定义和调用:介绍函数的声明、定义和调用,以及函数的参数传递和返回值。

4.面向过程的编程思想:介绍程序的执行流程、循环结构、条件判断等编程控制语句。

三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法,以激发学生的学习兴趣和主动性。

具体方法如下:1.讲授法:通过讲解C语言的基本语法、数据结构、函数的定义和调用等知识,使学生掌握课程的基本概念。

2.案例分析法:通过分析实际案例,让学生了解编程思想,培养学生的实际操作能力。

3.实验法:安排实验室实践环节,让学生动手编写程序,提高学生的实际编程能力。

四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。

具体资源如下:1.教材:选用权威、实用的C语言教材,为学生提供系统的学习资料。

2.参考书:推荐学生阅读一些优秀的编程书籍,丰富学生的知识储备。

3.多媒体资料:制作课件、视频等多媒体资料,提高课堂的教学效果。

4.实验设备:提供充足的计算机设备,确保学生能够进行实验和实践。

五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以全面客观地评价学生的学习成果。

C语言程序设计报告——通讯录管理系统

C语言程序设计报告——通讯录管理系统

C语言程序设计报告一.课题通讯录管理系统二.设计方案简介为了帮助广大人群解决笔记通讯录所带来的诸多不便,本人利用所学的专业知识,设计了一个简单,便利的系统供大家在线存储众多联系人信息。

这样做一来可以将自己的知识生活化,运用自己所学为他人做点事,二来,在完成这项任务的过程中,通过克服一道又一道难题,我巩固了自己的知识,发现了自己的不足,进而提升了自己的能力。

该方案从整体出发,化整为零。

各个功能都是通过独立函数实现。

其中设计了信息录入,信息查询,信息修改,信息删除,信息保存,信息显示等功能。

方案的结构一目了然,便于用户操作。

经过在Microsoft Visual C++ 6.0中多次测试,结果均与预期相符。

加上该程序要求的平台不是很高,一般用户均可方便使用。

三.算法与数据结构<一>运用的数据类型有:int, char, file,.<二>主要功能模块的算法设计思路如下:1、添加信息函数(void Add(Link l))(1)定义指向结构体变量的指针;(2)移动指针,找到插入结点;(3)在要插入的结点输入信息;(4)调用保存函数,打开文件,保存输入信息。

2、修改信息函数(void Modify(Link l))(1)定义指向结构体变量的指针;(2)用指针检验链表中是否有记录,若没记录,返回主函数;(3)根据要修改的编号查找对应结点;(4)修改信息;(5)打开文件,保存修改记录。

3、删除信息函数(void Del(Link l))(1)定义指向结构体变量的指针;(2)用指针检验链表中是否有记录,若没记录,返回主函数;(3)根据要修改的编号查找要删除的结点;(4)修改链表,删除对应结点。

4、显示记录函数(void Disp(Link l))(1)打开文件;(2)用指针检验是否有记录;(3)若无记录,输出提示信息,返回主函数;若有记录,移动指针,依次输出记录;(4)关闭文件。

5、查询通讯录信息(void Find(Link l))(1)选择查询方式(按姓名、编号或地址);(2)输入查询关键字:(3)在链表中寻找相应结点;(4)调用输出函数,输出结点信息。

C语言程序设计通讯录管理系统

C语言程序设计通讯录管理系统

#include<stdio.h>#include<stdlib.h>#include<string.h>#define N 10struct comm /*定义数据结构*/{char num[13]; /*学号*/char name[10]; /*姓名*/char sex[6]; /*性别*/int age; /*年龄*/char tel[11]; /*电话号码*/int year; /*入学年份*/}AddBook[N];int length=0,length1=0;int add;int *fp1=&add;int input_AddBook();void save_AddBook();int load_AddBook();int dele_AddBook();void inquire_AddBook();void revise_AddBook();void list_AddBook();int add_AddBook();void sort_AddBook();int main(){int choice;length1=load_AddBook();do{system("cls");printf("\n ***********通讯录管理系统************\n\n"); printf(" 1.录入信息\n");printf(" 2.修改信息\n");printf(" 3.删除信息\n");printf(" 4.查找信息\n");printf(" 5.显示信息\n");printf(" 6.增加信息\n");printf(" 7.排序信息\n");printf(" 0.退出\n");printf("\n ***********通讯录管理系统************\n\n"); printf(" 请选择:\n");scanf("%d",&choice);switch(choice){case 0: break;case 1: length=input_AddBook();break;case 2: revise_AddBook();break;case 3: length=dele_AddBook();break;case 4: inquire_AddBook();break;case 5: list_AddBook();break;case 6: length=add_AddBook();break;case 7: sort_AddBook();break;}}while(choice!=0);save_AddBook();system("pause");return 0;}/**********以下是保存文件函数*************/void save_AddBook(){FILE *fp;int i=0;if((fp=fopen("通讯录.txt","r"))==NULL){printf("can not open file\n");getchar();exit(0);}// fscanf(fp,"学号姓名性别年龄电话入学年份\n ");// printf(" 学号姓名性别年龄电话入学年份\n");do{fscanf(fp,"%s",AddBook[i].num);//printf("%-15s",AddBook[i].num);fscanf(fp,"%s",AddBook[i].name);//printf("%-10s",AddBook[i].name);fscanf(fp,"%s",AddBook[i].sex);//printf("%-6s",AddBook[i].sex);fscanf(fp,"%d",&AddBook[i].age);//printf("%-4d",AddBook[i].age);fscanf(fp,"%s",AddBook[i].tel);//printf("%-15s",AddBook[i].tel);fscanf(fp,"%d",&AddBook[i].year);//printf("%-4d\n",AddBook[i].year);i++;}while(i<length+length1);fclose(fp);if((fp=fopen("通讯录二进制数据.txt","w+"))==NULL){printf("can not open file.\n");getchar();exit(0);}for(i=0;i<length+length1;i++)fprintf(fp,"\n%-15s%-10s%-6s%-4d%-15s%-4d",AddBook[i].num, AddBook[i].name, AddBook[i].sex, AddBook[i].age, AddBook[i].tel, AddBook[i].year);//fwrite(&AddBook[i],sizeof(struct comm),1,fp);fclose(fp);//保存初识记录数fp=fopen("num.txt","w+");if(fp==NULL){ printf("can't open the file.\n");exit(0);}fprintf(fp,"%d",length+length1);fclose(fp);printf("*********************保存完成*********************\n");printf("以上信息已保存完毕!\n");}/**********以下是读文件函数*************/{FILE *fp,*fp2;int i=0,a;char ch;//读出原始记录数目fp=fopen("num.txt","r+");if(fp==NULL){printf("can't open the file!\n");exit(0);}fscanf(fp,"%d",&a);fclose(fp);//读出原始数据if((fp=fopen("通讯录二进制数据.txt","r"))==NULL){printf("can not open file\n");getchar();exit(0);}if((fp2=fopen("通讯录.txt","w"))==NULL){printf("can not open file\n");getchar();exit(0);}printf(" 学号姓名性别年龄电话入学年份\n");// dofor(i=0;i<a;i++){//fread(&AddBook[i],sizeof(struct comm),1,fp);//printf("%d\n",i);fscanf(fp,"%s%s%s%d%s%d",&AddBook[i].num, &AddBook[i].name, &AddBook[i].sex,&AddBook[i].age, &AddBook[i].tel, &AddBook[i].year);printf(" %s %s %s %d %s %d\n",AddBook[i].num, AddBook[i].name, AddBook[i].sex, AddBook[i].age, AddBook[i].tel, AddBook[i].year);//system("pause");fprintf(fp2,"%-15s%-10s%-6s%-4d%-15s%-4d\n",AddBook[i].num, AddBook[i].name, AddBook[i].sex, AddBook[i].age, AddBook[i].tel, AddBook[i].year);//printf(" %-15s%-10s%-6s%-4d%-15s%-4d\n",AddBook[i].num,AddBook[i].name,AddBook[i].sex,AddB ook[i].age,AddBook[i].tel,AddBook[i].year);}// i++;// }while(i<3);fclose(fp);fclose(fp2);printf("\n*************************读取完成*************************\n");printf("按任意键进入主菜单");getchar();return i;}/**********以下是删除信息函数*************/{FILE *fp;struct comm dele;int i=0,j=0,flag=0,a=0;char choice;do{system("cls");printf("************删除信息*************\n");printf("请输入您要删除的学生的学号:");scanf("%s",dele.num);for(i=0;i<length+length1;i++)if(strcmp(AddBook[i].num,dele.num) == 0)break;else{j++;if(j==length+length1)printf("您要删除的信息不存在!\n");}if((fp=fopen("通讯录.txt","wt"))==NULL){printf("Open file error");getchar();exit(0);}for(i=0;i<length+length1;i++)if(strcmp(AddBook[i].num,dele.num)!=0)fprintf(fp,"%-15s%-10s%-6s%-4d%-15s%-4d\n",AddBook[i].num,AddBook[i].name,AddBook[i].sex,AddBook [i].age,AddBook[i].tel,AddBook[i].year);a++;printf("\n 要继续吗?(Y/N)");choice=getchar();if (choice=='y'||choice=='Y'){printf("\n 继续!\n");flag=1;}elseflag=0;}while(flag==1);a=-a+1;fclose(fp);printf("\n***************删除完成**************");printf("%d",a);printf("\n 按任意键返回主菜单!");getchar();getchar();return a;}/**********以下是查找信息函数*************/void inquire_AddBook(){int choice;void inquire_name();void inquire_num();do{system("cls");printf("\n\n\n **********查询资料**********\n\n\n");printf(" 1.按姓名查询\n\n");printf(" 2.按学号查询\n\n");printf(" 0.退出查找系统\n\n");scanf("%d",&choice);switch(choice){ case 1: inquire_name();break; /* 为函数调用 */case 2: inquire_num();break; /* 同上 */case 0: break;}}while(choice!=0);getchar();}void inquire_name(){{ int i,choice,j=0;struct comm inquire;system("cls");printf("\n 请输入要查询的姓名:");scanf("%s",);for(i=0; i<length+length1; i++)if(strcmp(AddBook[i].name,)==0){printf(" 学号姓名性别年龄电话入学年份\n");printf("%-15s%-10s%-6s%-4d%-15s%-4d\n",AddBook[i].num,AddBook[i].name,AddBook[i].sex,AddBook[i]. age,AddBook[i].tel,AddBook[i].year);break;}else{j++;if(j==length+length1)printf("\n 查询信息不存在!");}getchar();getchar();}}void inquire_num(){{ int i,choice,j=0;struct comm inquire;system("cls");printf("\n 请输入要查询的学号:");scanf("%s",inquire.num);for(i=0;i<length+length1;i++)if(strcmp(AddBook[i].num,inquire.num)== 0){printf(" 学号姓名性别年龄电话入学年份\n");printf("%-15s%-10s%-6s%-4d%-15s%-4d\n",AddBook[i].num,AddBook[i].name,AddBook[i].sex,AddBook[i]. age,AddBook[i].tel,AddBook[i].year);break;}else{j++;if(j==length+length1)printf("\n 查询信息不存在!");}getchar();getchar();}}/**********以下是修改信息函数*************/void revise_AddBook(){struct comm revise;FILE *fp;int i=0,choice,flag;do{system("cls");printf("\n 输入要修改的学生学号:");scanf("%s",revise.num);for(i=0;i<length+length1;i++)if(strcmp(AddBook[i].num,revise.num)== 0){printf("\n ********************资料信息***********************\n");printf(" 学号姓名性别年龄电话入学年份\n");printf("%-15s%-10s%-6s%-4d%-15s%-4d\n",AddBook[i].num,AddBook[i].name,AddBook[i].sex,AddBook[i]. age,AddBook[i].tel,AddBook[i].year);printf("\n 您要修改哪一项?\n");printf("\n 0.修改完成\n");printf("\n 1.学号\n");printf("\n 2.姓名\n");printf("\n 3.性别\n");printf("\n 4.年龄\n");printf("\n 5.电话\n");printf("\n 6.入学年份\n");printf("\n 请选择:");scanf("%d",&choice);switch(choice){case 0: break;case 1: printf("\n 请输入修改后的学号:");scanf("%s",&AddBook[i].num);break;case 2: printf("\n 请输入修改后的姓名:");scanf("%s",&AddBook[i].name);break;case 3: printf("\n 请输入修改后的性别:");scanf("%s",&AddBook[i].sex);break;case 4: printf("\n 请输入修改后的年龄:");scanf("%d",&AddBook[i].age);break;case 5: printf("\n 请输入修改后的电话:");scanf("%s",&AddBook[i].tel);break;case 6: printf("\n 请输入修改后的入学年份:");scanf("%d",&AddBook[i].year);break;}break;}if(i==length+length1){printf("\n 无该资料!");getchar();}getchar();printf("\n\n 继续修改吗?(Y/N)");choice=getchar();if(choice=='Y'||choice=='y'){flag=1;printf("\n 继续!\n");}else{printf("修改后的信息为:\n");printf(" 学号姓名性别年龄电话入学年份\n");printf("%-15s%-10s%-6s%-4d%-15s%-4d\n",AddBook[i].num,AddBook[i].name,AddBook[i].sex,AddBook[i]. age,AddBook[i].tel,AddBook[i].year);flag=0;}}while(flag==1);if((fp=fopen("通讯录.txt","w"))==NULL){printf("Open file error");getchar();exit(0);}for(i=0;i<length+length1;i++)fprintf(fp,"%-15s%-10s%-6s%-4d%-15s%-4d\n",AddBook[i].num, AddBook[i].name, AddBook[i].sex, AddBook[i].age, AddBook[i].tel, AddBook[i].year);printf("\n 按任意键返回主菜单!");getchar();getchar();}/**********以下是显示信息函数*************/void list_AddBook(){FILE *fp;char ch;if((fp=fopen("通讯录.txt","r"))==NULL){printf("Open file error");system("pause");exit(0);}// rewind(fp);//ch=fgetc(fp);//while(ch!=EOF)//{// futchar(ch);//ch=fgetc(fp);//}int i=0;printf(" 学号姓名性别年龄电话入学年份\n");do{fscanf(fp,"%s%s%s%d%s%d",&AddBook[i].num, &AddBook[i].name, &AddBook[i].sex,&AddBook[i].age, &AddBook[i].tel, &AddBook[i].year);printf(" %s %s %s %d %s %d\n",AddBook[i].num, AddBook[i].name, AddBook[i].sex, AddBook[i].age, AddBook[i].tel, AddBook[i].year);//system("pause");// fprintf(fp2,"%-15s%-10s%-6s%-4d%-15s%-4d\n",AddBook[i].num, AddBook[i].name,AddBook[i].sex, AddBook[i].age, AddBook[i].tel, AddBook[i].year);//printf(" %-15s%-10s%-6s%-4d%-15s%-4d\n",AddBook[i].num,AddBook[i].name,AddBook[i].sex,AddB ook[i].age,AddBook[i].tel,AddBook[i].year);/*printf("%-15s",AddBook[i].num);printf("%-10s",AddBook[i].name);printf("%-6s",AddBook[i].sex);printf("%-4d",AddBook[i].age);printf("%-15s",AddBook[i].tel);printf("%-4d\n",AddBook[i].year);i++;*/i++;}while(i<length+length1);fclose(fp);printf("\n*************************显示完毕****************************");getchar();getchar();}/**********以下是增加信息函数*************/int add_AddBook(){FILE *fp,*fp2;int i,add1=0;if((fp=fopen("通讯录.txt","a"))==NULL){printf("Open file error");getchar();exit(0);}printf("请输入要增加的通讯录信息:");for(i=0;i<N;i++){printf("\n请输入学生姓名:(#->end)");scanf("%s",AddBook[i].name);if(AddBook[i].name[0]=='#')break;printf("\n请输入学生学号:");scanf("%s",AddBook[i].num);printf("\n请输入学生性别:");scanf("%s",AddBook[i].sex);printf("\n请输入学生年龄:");scanf("%d",&AddBook[i].age);printf("\n请输入学生联系方式:");scanf("%s",AddBook[i].tel);printf("\n请输入学生入学年份:");scanf("%d",&AddBook[i].year);}add1=i;for(i=0;i<add1;i++){fprintf(fp,"%-15s%-10s%-6s%-4d%-15s%-4d\n",AddBook[i].num, AddBook[i].name, AddBook[i].sex, AddBook[i].age, AddBook[i].tel, AddBook[i].year);//fprintf(fp,"%c",10);/*fprintf(fp,"%-11s ",AddBook[i].num);fprintf(fp," %-10s",AddBook[i].name);fprintf(fp," %-8s",AddBook[i].sex);fprintf(fp," %-8d",AddBook[i].age);fprintf(fp," %-11s ",AddBook[i].tel);fprintf(fp," %-4d",AddBook[i].year);fprintf(fp,"%c",10); /*换行*/}fclose(fp);// printf("i+add=%d\n",i+add);system("pause");//return i+add;// add=i+*fp1;save_AddBook();getchar();return add1;}/**********以下是排序信息函数*************/void sort_AddBook(){FILE *fp;struct comm temp;int i,j;if((fp=fopen("通讯录.txt","rt"))==NULL){printf("Open file error");getchar();exit(0);}//fscanf(fp,"学号姓名性别年龄电话入学年份");//printf("学号姓名性别年龄电话入学年份 \n");for(i=0;i<length+length1;i++){fscanf(fp,"%s",AddBook[i].num);fscanf(fp,"%s",AddBook[i].name);fscanf(fp,"%s",AddBook[i].sex);fscanf(fp,"%d",&AddBook[i].age);fscanf(fp,"%s",AddBook[i].tel);fscanf(fp,"%d",&AddBook[i].year);}for(i=0;i<length+length1-1;i++)for(j=i+1;j<length+length1;j++)if(strcmp(AddBook[j].num,AddBook[i].num)<0){temp=AddBook[i];AddBook[i]=AddBook[j];AddBook[j]=temp;}printf("学号姓名性别年龄电话入学年份 \n"); for(i=0;i<length+length1;i++){printf("%-11s ",AddBook[i].num);printf("%-10s",AddBook[i].name);printf("%-8s",AddBook[i].sex);printf("%-8d",AddBook[i].age);printf("%-11s ",AddBook[i].tel);printf("%-4d",AddBook[i].year);printf("\n");}printf("\n*********************排序完成**********************\n");fclose(fp);system("pause");}/**********以下是输入信息函数*************/int input_AddBook(){int i;printf("\n 请输入通讯录信息: \n");for(i=0;i<N;i++){printf("\n请输入学生姓名:(#->end)");scanf("%s",AddBook[i].name);if(AddBook[i].name[0]=='#')break;printf("\n请输入学生学号:");scanf("%s",AddBook[i].num);printf("\n请输入学生性别:");scanf("%s",AddBook[i].sex);printf("\n请输入学生年龄:");scanf("%d",&AddBook[i].age);printf("\n请输入学生联系方式:");scanf("%s",AddBook[i].tel);printf("\n请输入学生入学年份:");scanf("%d",&AddBook[i].year);}return i;}。

c语言程序设计通讯录管理系统

c语言程序设计通讯录管理系统

c语言程序设计通讯录管理系统通讯录管理系统文档⒈引言本文档旨在提供C语言程序设计通讯录管理系统的详细说明和操作指南。

该系统可用于管理个人或组织的通讯录信息,包括联系人姓名、方式号码、地质等。

⒉系统需求⑴硬件需求●一台支持C语言编程的计算机●充足的内存和存储空间⑵软件需求●C编译器(例如gcc)●操作系统(例如Windows、Linux)⒊功能设计⑴添加联系人●输入联系人姓名、方式号码、地质等信息●将联系人信息储存到通讯录中⑵修改联系人信息●根据姓名或其他唯一标识查找联系人●修改联系人的姓名、方式号码、地质等信息⑶删除联系人●根据姓名或其他唯一标识查找联系人●从通讯录中删除指定的联系人⑷查找联系人●根据姓名或其他关键词查找联系人●显示与关键词匹配的联系人列表⑸显示所有联系人●显示通讯录中的所有联系人信息⒋系统设计⑴数据结构●通讯录联系人结构体:包含姓名、方式号码、地质等字段⑵主要函数●addContact:用于添加联系人信息到通讯录●editContact:用于修改指定联系人的信息●deleteContact:用于删除指定联系人●searchContact:用于根据关键词查找联系人●displayAllContacts:用于显示所有联系人信息⒌界面设计●该系统无GUI界面,通过命令行界面与用户交互⒍使用说明⑴安装●安装C编译器和操作系统,确保系统满足软硬件需求⑵编译和运行●使用C编译器将源代码编译为可执行文件●运行可执行文件以启动通讯录管理系统⑶操作指南●运行系统后,根据命令行提示进行相应的操作●可通过输入数字或关键词来执行不同的功能⒎附件本文档无附件。

⒏法律名词及注释⑴未指明的法律名词及注释,均按照通用法律理解解释。

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

三、系统的详细设计
系统实现的基本功能是通讯录数据管理,包括:添加数据记录、显示数据 记录、删除数据记录、查找数据记录,修改数据记录以及保存数据记录。(分 别使用了 insert ( ) 、seek ( )、delete ( )、show ( )、sort ( ) 等函数) 。 其中数据的查找、数据的删除又可通过不同的方式如按学号或姓名等进行操作。 主要函数实现说明: 1、insert() 该函数可对文件的数据进行添加。在进行添加的时候需要首先打开数据文 件,在该函数中调用了 file1()函数将数据文件打开。之后同 creatfile() 中一样的形式输入数据,输入完之后进行保存,对插入的数据进行保存前要先 确定插入点,该函数在设计时将插入点放在了文件末尾,即将添加的数据加到 文件的最后。同样以上操作为一循环过程,最后根据用户的选择决定循环操作
二、系统概要设计
1、系统的主要功能 系统的主要功能是实现基本的通讯录的数据管理和维护。主要包括: (1)增加数据记录:可以添加通讯录记录,依次输入编号、姓名、年龄、电话 号码、通讯地址后,会提示是否继续添加。 (2)显示数据记录:可以以表格形式输出所有通讯录里的记录。 (3)删除数据记录:输入欲删除的那个人的姓名后,会自动删除他(她)的记 录内容。 (4)查找数据记录:可以选择用姓名,电话,地址三种方式查询。 (5)修改数据记录:输入欲修改的那个人的名字后,再依次输入编号、姓名、 年龄、电话号码、通讯地址。 (6)保存数据记录:输入文件明(带后缀名)后,即可将通讯录信息保存到文 件。 2、系统的总体结构
四、系统的主要源程序
#include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct { char score; char name[10]; char num[15]; char age[8]; char adds[20]; } Person; Person per[80]; int menu_select() { char c; do{ system("cls"); printf("\t\t*****通讯录***** \n"); printf("\t\t┍ -------------- ┒\n");
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].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); per[j].score=per[j+1].score; } printf("\t\t\t 已经成功删除!\n"); return(n-1); } void Query_a_record(Person per[],int n) { int m; printf("\\n 请选择查询方式:\n"); printf("\t┍ -------------- ┒\n"); printf("\t| 1-----printf("\t| 2-----printf("\t| 3-----printf("\t| 4-----姓名 |\n"); 电话 |\n"); 地址 |\n"); 返回 |\n");
//
printf("\t\t| printf("\t\t| printf("\t\t| printf("\t\t| printf("\t\t| printf("\t\t| printf("\t\t|
1.添加记录 2.显示记录 3.删除记录 4.查询记录 5.修改记录 6.保存记录 0.退出程序
|\n"); |\n"); |\n"); |\n"); |\n"); |\n"); |\n");
printf("\n\t 是否继续添加?(Y/N)"); scanf("\t%c",&sign); i++; } return(n+i); } void Display(Person per[],int n) { int i; printf("----------------------------------------\n"); printf("编号 姓名 年龄 电话号码 通讯地址 \n");
C 语言课程设计


通讯录管理系统
指导教师 学生姓名 程晓华 学 专 刘志刚 王建民
号 201380802015 201380802012 201380802010 业 电子信息工程(本科) 物理系 (盖章)
教学单位
课程设计题目:通讯录管理系统
一、系统需求分析
1、建立通讯录新年系,信息至少包含编号、姓名、年龄、电话号码、通讯地址 等; 2、能够提供添加、删除、查找、修改和显示通讯录信息等功能; 3、能够提供按不同方式查询的功能,如按姓名或年龄等查询; 4、将通讯录保存到文件中; 5、能够按表格方式输出通讯录信息。
辅助函数: 以上介绍的是完成班级通讯录管理这个功能,程序主要包含的函数,为了 使程序更有条理性或者更加完整形象,可以将主要函数经常使用的一些功能编 成一个函数,这样便可在多处很方便调用,如此程序中的 file1()(用来打开 数据文件的操作)、file2()(用来保存数据)、prt()函数等便起到这个 作用。另外还加了 jm1()、jm2()进入界面、退出界面这两个函数,使本程 序显得更加完整。
通讯录管理系统
增 加 数 据 记 录
显 示 数 据 记 录
删 除 数 据 记 录
查 找 数 据 记 录
ห้องสมุดไป่ตู้
修 改 数 据 记 录
保 存 数 据 记 录
3、系统软件环境 本程序所适用的计算机系统软硬件环境要求为: 硬件环境: <1> 486,586 及兼容机,640K 基本内存; <2> 1M 以上扩充内存,10M 以上的显示内存. 软件环境: 内置 MS-DOS 5.0 或者 Windows 98 ,且有中文平台.如:UCDOS 等。 4、数据结构设计 (1)通讯录: typedef struct { Char score; Char name[10]; Char num[15]; Char age[8]; Char adds[20]; } Person; Void main(0 { int n=0; for(;;) //编号,姓名,号码,年龄,住址
printf("----------------------------------------\n"); for(i=1;i<n+1;i++) {
printf("%-5d%-8s%-6s%-13s%-15s\n",per[i-1].score,per[i-1]. name,per[i-1].age,per[i-1].num,per[i-1].adds); if(i>1&&i%10==0) { printf("\t----------------------------------\n"); printf("\t");system("pause"); printf("\t----------------------------------\n"); } } printf("------------------------------------\n");system("pause"); } int Delete_a_record(Person per[],int n) { char s[20]; int i=0,j;
printf("\t\t┕ -------------- ┙\n"); printf("\t\t 请您选择(0-6):"); c=getchar(); }while(c<'0'||c>'6'); return(c-'0');} 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+1].score); printf("\t 姓名:"); scanf("\t%s",per[n+1].name); printf("\t 年龄:"); scanf("\t%s",per[n+1].age); printf("\t 电话号码:"); scanf("\t%s",per[n+1].num); printf("\t 通讯地址:"); scanf("\t%s",per[n+1].adds); gets(x);
相关文档
最新文档