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语言程序设计实习报告题目:通讯录管理系统院系名称电子与信息工程院专业名称电子信息工程班级电子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语言设计的通讯录管理系统的代码实现。
通讯录管理系统可以帮助
用户有效地管理联系人信息,实现增删改查等操作。
二、系统功能设计
通讯录管理系统主要包括以下功能: 1. 添加联系人:用户可以输入联系人姓名、电话号码等信息,将联系人信息添加到通讯录中。
2. 删除联系人:用户可以根据
姓名或电话号码删除指定联系人信息。
3. 修改联系人:用户可以修改已有联系人
的信息,包括姓名、电话号码等。
4. 查询联系人:用户可以根据姓名或电话号码
查询联系人信息。
5. 显示所有联系人:用户可以查看通讯录中所有联系人的信息。
三、代码实现
```c #include <stdio.h> #include <string.h>
#define MAX_CONTACTS 100 #define MAX_NAME_LENGTH 50 #define
MAX_PHONE_LENGTH 15
struct Contact { char name[MAX_NAME_LENGTH]; char
phone[MAX_PHONE_LENGTH]; };
struct Contact contacts[MAX_CONTACTS]; int numContacts = 0;
void addContact() { if (numContacts < MAX_CONTACTS) { printf(。
c通讯录管理系统课程设计
c 通讯录管理系统课程设计一、课程目标本课程为“通讯录管理系统课程设计”,针对初中年级信息技术学科,旨在通过实践操作,使学生能够:知识目标:1. 理解通讯录管理系统的基本功能与需求;2. 掌握使用编程语言(如Python)实现简单数据结构,如列表、字典;3. 学会使用文件操作保存和读取通讯录信息。
技能目标:1. 能够运用所学知识设计并实现一个基本的通讯录管理系统;2. 掌握基本的程序调试技巧,提高解决问题的能力;3. 学会对程序进行优化,提高代码的可读性和可维护性。
情感态度价值观目标:1. 培养学生的团队协作精神,提高沟通与表达能力;2. 激发学生对编程的兴趣,鼓励创新思维和动手实践能力;3. 增强学生对信息技术的认识,培养其信息安全意识。
课程性质:本课程为实践性课程,注重培养学生的动手能力和实际操作技能。
学生特点:初中年级学生具有一定的信息技术基础,对新事物充满好奇,但编程经验有限。
教学要求:结合学生特点,以实际操作为主,注重引导和激发学生的学习兴趣,培养其解决问题的能力。
通过课程学习,使学生能够将所学知识运用到实际项目中,提高其信息技术素养。
教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。
二、教学内容本章节教学内容依据课程目标,紧密结合教材,确保科学性和系统性。
具体安排如下:1. 理论知识学习:- 简介通讯录管理系统的作用和功能;- 数据结构基本概念:列表、字典的使用;- 文件操作:读写文件,保存和加载通讯录信息。
2. 实践操作:- 设计通讯录管理系统需求分析;- 编程实现通讯录管理系统功能模块:添加、删除、查询、修改联系人信息;- 调试与优化程序,提高系统稳定性。
3. 教学大纲:- 第一周:通讯录管理系统概述,学习数据结构基本概念;- 第二周:文件操作,编写通讯录管理系统的基础代码;- 第三周:完善通讯录管理系统,增加功能模块;- 第四周:调试与优化程序,进行项目展示与评价。
c通讯录管理系统课程设计
c 通讯录管理系统课程设计一、教学目标本课程旨在让学生了解和掌握通讯录管理系统的基本概念和设计方法,培养学生的实际动手能力和问题解决能力。
具体目标如下:知识目标:使学生了解通讯录管理系统的基本原理,掌握系统设计的基本流程和方法。
技能目标:培养学生使用编程语言实现通讯录管理系统的能力,提高学生的软件开发技能。
情感态度价值观目标:培养学生对计算机科学和编程的兴趣,激发学生的创新精神和团队合作意识。
二、教学内容本课程的教学内容主要包括以下几个部分:1.通讯录管理系统的基本概念:介绍通讯录管理系统的作用、特点和应用场景。
2.系统设计方法:讲解系统设计的基本流程,包括需求分析、系统设计、编码实现和测试等环节。
3.编程语言实践:通过具体案例,使学生掌握使用编程语言实现通讯录管理系统的方法。
4.团队协作与创新:培养学生在团队协作中解决问题的能力,激发学生的创新精神和团队合作意识。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学:1.讲授法:讲解通讯录管理系统的基本概念和设计方法。
2.案例分析法:分析实际案例,使学生更好地理解通讯录管理系统的设计和实现过程。
3.实验法:让学生动手实践,实际操作通讯录管理系统的设计和编程。
4.小组讨论法:鼓励学生进行团队协作,共同解决问题,培养学生的团队合作能力。
四、教学资源为了保证教学效果,我们将提供丰富多样的教学资源:1.教材:选用权威、实用的教材,为学生提供系统、全面的学习资料。
2.参考书:提供相关的参考书籍,丰富学生的知识体系。
3.多媒体资料:制作精美的PPT,生动形象地展示课程内容。
4.实验设备:提供充足的实验设备,确保每个学生都能动手实践。
5.在线资源:推荐相关的在线课程和论坛,方便学生随时随地学习、交流。
五、教学评估为了全面、公正地评估学生的学习成果,本课程将采用多种评估方式相结合的方法:1.平时表现:通过课堂参与、提问、讨论等方式,评估学生的学习态度和积极性。
C语言程序设计通讯录管理系统
scanf("%s", search_name); /*获得名字到指针型字符串变量*/ for(j=1;j<=i;j++) { if(strcmp(search_name,records[j].name)==0) /*比较字符串,即 查看是否与记录中名字 相同*/ { Data_Show(j); printf("\n"); /*搜索成功,打印记录结束循环*/ break; } } if(j>i) /*搜索失败*/ printf("\n\tNo Record "); /*显示无此记录*/ break; case '5': printf("\n\tInsert No:"); /*录入插入位置*/ scanf("%d",&k); for(j=k+1;j<i;j++) /*将插入位置后的元素顺序后移,即将其复 制到后一位置,循环操作*/ { strcpy(records[j].name,records[j-1].name); records[j].sex=records[j-1].sex; records[j].birth.year=records[j-1].birth.year; records[j].birth.month=records[j-1].birth.month; records[j].birth.day=records[j-1].birth.day; strcpy(records[j].addr.post_num,records[j-1].addr.post_num); strcpy(records[j].addr.addr,records[j-1].addr.addr); strcpy(records[j].telephone,records[j-1].telephone); } Data_Input(k); /*声明增加数据函数*/ i++;/*将记录数目加一*/ break; case '6': Data_Save(); printf("\n"); /*声明保存函数*/ exit(0); break; /*保存后退出*/ case '7': printf("\n\tsave or not?:(y/n)"); ch=getch(); /*获得输入字符*/
C 程序设计通讯录管理系统
目录1系统设计目标及意义、功能介绍 (3)2系统的详细设计思路 (3)3系统运行效果图 (11)4系统设计、开发过程中的问题 (13)5课程设计心得体会 (13)6附录源代码及简要说明 (13)一、系统设计目标及意义、功能介绍(一)系统设计的目标及意义通讯录管理系统的建立是为了有效节省同学,朋友,客户间日常交流的投资(指时间,精力),其设计理念很简单,变传统的纸张与笔录方式为计算机自动化进行通讯录信息管理系统,既省时间又提高效率。
本通讯录管理系统是一个非常通用的管理系统,运用Visual C++,构建MFC平台,用户可以通过图像窗口菜单进行信息录入、删除、查找,直观方便。
(二)系统设计的功能介绍1、录入成员信息。
基本信息:姓名、性别、出生年月日、民族等。
2、删除一个成员信息。
3、修改成员信息并保存。
4、能够按姓名对成员信息进行检索并将检索结果显示在屏幕上。
5、能够按专业对成员信息进行检索并将检索结果显示在屏幕上。
6、显示所有成员信息。
7、能够利用图形菜单的形式进行管理。
二、系统的详细设计思路(一)系统的总体框架(二)通讯录对象的主要属性(三)功能分析1、联系人管理者(1)增加联系人:联系人信息包括姓名、就读学校、班级、专业、家庭地址、家庭联系电话、邮编、本人联系电话这些信息。
添加时,内容不能为空。
(2)修改联系人资料:对已存的联系人信息进行变更、修改。
正常情况下,联系人的姓名是不会发生变化的,但考虑到更名的情况还是偶有发生,因此设计为联系人所有资料都允许更改,这样可以灵活应对这些不太常见的情况。
(3)删除联系人:对选定联系人执行删除操作,为了防止误删除,给使用者一个反悔的机会,在执行删除前要询问使用者是否真的要删除,在得到确认后执行删除操作。
2、联系人信息查询与显示通讯录使用频率最高的功能就是查询联系人的信息。
查询可以查询某个学院、某个专业、某个班级下所有的联系人。
并且提供了按姓名和按学号查询的功能,并且同名的人都可以显示。
学生通讯录管理系统c语言编程
学生通讯录管理系统c语言编程以下是一个简单的C语言程序,用于管理学生通讯录。
该程序可以添加、显示、查找和删除学生信息。
c复制代码:#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX_STUDENTS 100#define MAX_NAME_LENGTH 50// 学生结构体struct Student {char name[MAX_NAME_LENGTH];int age;char gender;char phone[15];char email[50];};// 学生数组struct Student students[MAX_STUDENTS];int num_students = 0;// 添加学生信息void add_student() {if (num_students >= MAX_STUDENTS) {printf("Error: Reached maximum number of students\n");return;}struct Student new_student;printf("Enter name: ");scanf("%s", new_);printf("Enter age: ");scanf("%d", &new_student.age);printf("Enter gender (M/F): ");scanf(" %c", &new_student.gender);printf("Enter phone number: ");scanf("%s", new_student.phone);printf("Enter email: ");scanf("%s", new_student.email);students[num_students] = new_student;num_students++;}// 显示所有学生信息void display_students() {printf("Name\tAge\tGender\tPhone\tEmail\n");for (int i = 0; i < num_students; i++) {printf("%s\t%d\t%c\t%s\t%s\n", students[i].name, students[i].age, students[i].gender, students[i].phone, students[i].email);}}// 查找学生信息void find_student() {char name[MAX_NAME_LENGTH];printf("Enter student name: ");scanf("%s", name);for (int i = 0; i < num_students; i++) {if (strcmp(students[i].name, name) == 0) {printf("Name: %s\n", students[i].name);printf("Age: %d\n", students[i].age);printf("Gender: %c\n", students[i].gender); printf("Phone: %s\n", students[i].phone); printf("Email: %s\n", students[i].email); return;}}printf("Error: Student not found\n");}// 删除学生信息void delete_student() {char name[MAX_NAME_LENGTH];printf("Enter student name: ");scanf("%s", name);int found = 0;for (int i = 0; i < num_students; i++) {if (strcmp(students[i].name, name) == 0) { found = 1;for (int j = i; j < num_students - 1; j++) { students[j] = students[j+1];}num_students--;break;}}if (!found) {printf("Error: Student not found\n");} else {printf("Student deleted successfully\n"); }}int main() {int choice;do {printf("\nMenu:\n");printf("1. Add student\n");printf("2. Display students\n");printf("3. Find student\n");printf("4. Delete student\n");printf("5. Exit\n");printf("Enter choice: ");scanf("%d", &choice);switch (choice) {case 1: add_student(); break;case 2: display_students(); break;case 3: find_student(); break;case 4: delete_student(); break;case 5: printf("Exiting...\n"); break; default: printf("Invalid choice\n"); break; }} while (choice != 5);return 0。
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语言编程基础,通过编写通讯录管理系统,培养学生的实际编程能力和问题解决能力。
具体目标如下: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语言程序设计通讯录管理系统/*设计一个学生通讯录,内容可自行设计如:姓名,家庭住址,邮编,电话号码等。
结构体类型,要求主函数是一功能选择菜单,其它用各自函数实现,要求: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语言开发的通讯录管理系统的设计和实现过程。
二、系统设计1. 功能设计通讯录管理系统主要包括以下功能: - 添加联系人信息 - 删除联系人信息 - 修改联系人信息 - 查询联系人信息 - 显示所有联系人信息2. 数据结构设计为了实现通讯录管理系统的功能,我们需要设计合适的数据结构来存储联系人信息。
在本系统中,我们使用结构体来表示每个联系人的信息,结构体包括姓名、电话号码等字段。
typedef struct {char name[50];char phone[20];// 其他字段} Contact;3. 界面设计为了方便用户操作,通讯录管理系统的界面设计应该简洁明了。
在本系统中,我们采用命令行界面,用户通过键盘输入不同的命令来实现相应的功能。
三、系统实现1. 添加联系人信息用户可以通过输入联系人的姓名和电话号码来添加新的联系人信息。
系统将会将新的联系人信息存储到通讯录中。
2. 删除联系人信息用户可以通过输入联系人的姓名来删除特定联系人的信息。
系统将会从通讯录中删除对应的联系人记录。
3. 修改联系人信息用户可以通过输入联系人的姓名来修改特定联系人的信息。
系统将会根据用户输入的信息更新通讯录中相应联系人的记录。
4. 查询联系人信息用户可以通过输入联系人的姓名来查询特定联系人的信息。
系统将会显示出对应联系人的所有信息。
5. 显示所有联系人信息用户可以查看通讯录中所有联系人的信息。
系统将会按照一定的格式将所有联系人的信息逐条显示出来。
四、总结通过本文的介绍,我们了解了一个简单而实用的通讯录管理系统的设计和实现过程。
通讯录管理系统可以帮助用户方便地管理联系人信息,提高工作效率。
我们希望在学习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语言,使学生掌握通讯录管理系统的开发过程,培养学生的编程能力和逻辑思维能力。
具体目标如下:1.知识目标:学生能够理解C语言的基本语法和数据结构,掌握函数的定义和调用,了解面向过程的编程思想。
2.技能目标:学生能够使用C语言编写简单的程序,具备解决实际问题的能力,能够独立完成一个通讯录管理系统的开发。
3.情感态度价值观目标:学生通过课程学习,能够培养对编程的兴趣和热情,增强自我学习的动力,提高团队协作的能力。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、函数的定义和调用,以及面向过程的编程思想。
具体安排如下:1.C语言的基本语法:介绍变量、常量、运算符、表达式等基本概念。
2.数据结构:介绍整数、浮点数、字符等数据类型的使用,以及数组、指针等数据结构。
3.函数的定义和调用:介绍函数的声明、定义和调用,以及函数的参数传递和返回值。
4.面向过程的编程思想:介绍程序的执行流程、循环结构、条件判断等编程控制语句。
三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法,以激发学生的学习兴趣和主动性。
具体方法如下:1.讲授法:通过讲解C语言的基本语法、数据结构、函数的定义和调用等知识,使学生掌握课程的基本概念。
2.案例分析法:通过分析实际案例,让学生了解编程思想,培养学生的实际操作能力。
3.实验法:安排实验室实践环节,让学生动手编写程序,提高学生的实际编程能力。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。
具体资源如下:1.教材:选用权威、实用的C语言教材,为学生提供系统的学习资料。
2.参考书:推荐学生阅读一些优秀的编程书籍,丰富学生的知识储备。
3.多媒体资料:制作课件、视频等多媒体资料,提高课堂的教学效果。
4.实验设备:提供充足的计算机设备,确保学生能够进行实验和实践。
五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以全面客观地评价学生的学习成果。
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语言程序设计通讯录管理系统
#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编译器(例如gcc)●操作系统(例如Windows、Linux)⒊功能设计⑴添加联系人●输入联系人姓名、方式号码、地质等信息●将联系人信息储存到通讯录中⑵修改联系人信息●根据姓名或其他唯一标识查找联系人●修改联系人的姓名、方式号码、地质等信息⑶删除联系人●根据姓名或其他唯一标识查找联系人●从通讯录中删除指定的联系人⑷查找联系人●根据姓名或其他关键词查找联系人●显示与关键词匹配的联系人列表⑸显示所有联系人●显示通讯录中的所有联系人信息⒋系统设计⑴数据结构●通讯录联系人结构体:包含姓名、方式号码、地质等字段⑵主要函数●addContact:用于添加联系人信息到通讯录●editContact:用于修改指定联系人的信息●deleteContact:用于删除指定联系人●searchContact:用于根据关键词查找联系人●displayAllContacts:用于显示所有联系人信息⒌界面设计●该系统无GUI界面,通过命令行界面与用户交互⒍使用说明⑴安装●安装C编译器和操作系统,确保系统满足软硬件需求⑵编译和运行●使用C编译器将源代码编译为可执行文件●运行可执行文件以启动通讯录管理系统⑶操作指南●运行系统后,根据命令行提示进行相应的操作●可通过输入数字或关键词来执行不同的功能⒎附件本文档无附件。
⒏法律名词及注释⑴未指明的法律名词及注释,均按照通用法律理解解释。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录1系统设计目标及意义、功能介绍 (3)2系统的详细设计思路 (3)3系统运行效果图 (11)4系统设计、开发过程中的问题 (13)5课程设计心得体会 (13)6附录源代码及简要说明 (13)一、系统设计目标及意义、功能介绍(一)系统设计的目标及意义通讯录管理系统的建立是为了有效节省同学,朋友,客户间日常交流的投资(指时间,精力),其设计理念很简单,变传统的纸张与笔录方式为计算机自动化进行通讯录信息管理系统,既省时间又提高效率。
本通讯录管理系统是一个非常通用的管理系统,运用Visual C++,构建MFC平台,用户可以通过图像窗口菜单进行信息录入、删除、查找,直观方便。
(二)系统设计的功能介绍1、录入成员信息。
基本信息:姓名、性别、出生年月日、民族等。
2、删除一个成员信息。
3、修改成员信息并保存。
4、能够按姓名对成员信息进行检索并将检索结果显示在屏幕上。
5、能够按专业对成员信息进行检索并将检索结果显示在屏幕上。
6、显示所有成员信息。
7、能够利用图形菜单的形式进行管理。
二、系统的详细设计思路(一)系统的总体框架(二)通讯录对象的主要属性(三)功能分析1、联系人管理者(1)增加联系人:联系人信息包括姓名、就读学校、班级、专业、家庭地址、家庭联系电话、邮编、本人联系电话这些信息。
添加时,内容不能为空。
(2)修改联系人资料:对已存的联系人信息进行变更、修改。
正常情况下,联系人的姓名是不会发生变化的,但考虑到更名的情况还是偶有发生,因此设计为联系人所有资料都允许更改,这样可以灵活应对这些不太常见的情况。
(3)删除联系人:对选定联系人执行删除操作,为了防止误删除,给使用者一个反悔的机会,在执行删除前要询问使用者是否真的要删除,在得到确认后执行删除操作。
2、联系人信息查询与显示通讯录使用频率最高的功能就是查询联系人的信息。
查询可以查询某个学院、某个专业、某个班级下所有的联系人。
并且提供了按姓名和按学号查询的功能,并且同名的人都可以显示。
联系人显示窗口示姓名、就读学校、班级、专业、家庭地址、家庭联系电话、邮编、本人联系电话这些信息。
4,函数设计(1)增加联系人的函数void lianxiren::add(){cout<<"请输入姓名:";cin>>name;cout<<"请输入性别[请用'm'表示男,用'f'表示女]:";char s;cin>>s;while((s!='f')&&(s!='m')){cout<<"输入错误,请重新输入!:";cin>>s;}if(s=='f')strcpy(sex,"女");else strcpy(sex,"男");cout<<"请输入民族:";cin>>nation;cout<<"请输入出生日期:年:";cin>>;cout<<"月(0~12):";cin>>;while(<1)||>12)){cout<<"输入错误,请重新输入!月:";cin>>;}cout<<"日(0~31):";cin>>;while(<1)||>31)){cout<<"输入错误,请重新输入!日:";cin>>;}cout<<"请输入联系方式:手机:";cin>>telephone;cout<<"请输入编号(0~9999):";cin>>num;cout<<"输入邮编:";cin>>youbian;cout<<"输入身高:";cin>>shengao;cout<<"输入体重:";cin>>tizhong;cout<<"输入QQ号:";cin>>qqhao;ofstream fout("lianxiren",ios::app);if (!fout){cout <<endl <<"对不起,打开文件失败。
" <<endl <<endl;}else{ fout<<setiosflags(ios::left)<<setw(5)<<num<<setw(8)<<name<<setw(5)<<sex <<setw(6)<<nation;fout<<setw(4)<<<<"."<<setw(2)<<<<"."<<setw(2)<<<<" ";fout<<setw(13)<<telephone ;fout<<setw(10)<<youbian<<setw(5)<<shengao<<setw(5)<<tizhong<<setw(13)<<qqhao<<endl;();}}(2)显示所有联系人的函数void lianxiren::display(){ifstream fin("lianxiren",ios::in);if (!fin){cout <<endl <<"对不起,没有找到文件。
" <<endl;system("pause");}bool flag = true;string record;char a[100];(a,100);while (getline(fin, record)){if (flag){cout<<setiosflags(ios::left)<<setw(5)<<"编号"<<setw(8)<<"姓名"<<setw(5)<<"性别";cout <<setw(6)<<"民族"<<setw(12)<<"出生年月";cout<<setw(13)<<"手机"<<setw(10)<<"邮编"<<setw(5)<<"身高";cout<<setw(5)<<"体重"<<setw(13)<<"QQ号"<<endl;}cout<<record<<endl;flag=false;}if (flag){cout <<endl <<"你的记事本中没有信息" <<endl <<endl;}else{cout <<endl <<"所有联系人信息已经全部显示出来" <<endl <<endl;}}(3)删除联系人的函数void lianxiren::delet(){ofstream out1("1",ios::out);ifstream in1("lianxiren", ios::in);if (!out1 || !in1){cout <<endl <<"对不起,找不到文件。
" <<endl;}string a;cout<<endl<<"你要删除人的姓名或编号 :";cin>>a;bool flag=true;string str,s;in1>>s;int i=0;while (in1>>num>>name){getline(in1,str);if ((a==name)||(a==num)){i++;if(i=1){cout<<endl<<"你想删除的联系人:"<<endl<<endl;cout<<setiosflags(ios::left)<<setw(5)<<"编号"<<setw(8)<<"姓名"<<setw(5)<<"性别";cout <<setw(6)<<"民族"<<setw(12)<<"出生年月";cout<<setw(13)<<"手机"<<setw(10)<<"邮编"<<setw(5)<<"身高";cout<<setw(5)<<"体重"<<setw(13)<<"QQ号"<<endl;cout <<setiosflags(ios::left)<<setw(5)<<num<<name<<str<<endl;}else{cout <<setiosflags(ios::left)<<setw(5)<<num<<name<<str<<endl;}flag = false;continue;}out1<<setiosflags(ios::left)<<setw(5)<<num<<setw(8)<<name<<str<<endl;}();();if (flag){cout <<endl <<"对不起,系统中没你找的联系人。