C语言学生通信录管理系统课程设计报告

合集下载

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

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

通讯录管理系统C语言课程设计报告
一、课题简介
通讯录管理系统是一种常见的应用程序,旨在帮助用户组织和管理他们的联系人信息。

本课程设计将利用C语言来实现一个基本的通讯录管理系统,旨在帮助学生掌握C语言编程的基本知识和技能。

二、设计目的
1.帮助学生熟悉C语言的基本语法和编程逻辑;
2.提高学生对数据结构的理解和运用能力;
3.培养学生的编程能力和软件开发思维;
4.提高学生的团队合作和项目管理能力。

三、设计内容
本课程设计将围绕以下几个方面展开:
1.用户界面设计:设计一个简洁直观的用户界面,包括菜单选项、输
入输出界面等;
2.数据结构设计:设计通讯录数据结构,包括联系人姓名、电话号码
等信息的存储方式;
3.功能实现:实现通讯录管理系统的基本功能,包括添加联系人、删
除联系人、查找联系人等操作;
4.文件操作:实现通讯录数据的读写操作,将联系人信息保存到文件
中,以便下次运行时读取;
5.错误处理:处理用户输入错误等异常情况,保证程序的稳定性和可
靠性。

四、预期效果
通过本课程设计,学生将能够掌握以下技能:
1.掌握C语言基本语法和编程逻辑;
2.熟悉数据结构的设计和运用;
3.提高编程能力和软件开发思维;
4.培养团队合作和项目管理能力。

五、总结
通过设计一个通讯录管理系统的C语言课程项目,学生将在实践中加深对C语言的理解和应用,提高编程技能和解决问题的能力。

希望本课程设计能够为学生的编程学习提供一定的帮助和指导。

以上为《通讯录管理系统C语言课程设计报告》的简要介绋,希望能够为课程设计的顺利进行提供一定的参考和指引。

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

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

通讯录管理系统c语言课程设计报告(一)通讯录管理系统C语言课程设计报告1. 简介通讯录管理系统是一款基于C语言开发的软件,旨在帮助用户方便地存储、查找、编辑和删除联系人信息。

本报告将对该系统的功能和设计进行详细介绍。

2. 系统功能通讯录管理系统具备以下主要功能:•添加联系人:用户可以输入联系人的姓名、电话号码、电子邮件等信息,并将其添加到通讯录中。

•查找联系人:用户可以根据姓名或电话号码等方式,快速查找通讯录中的联系人信息。

•编辑联系人:用户可以修改通讯录中已有联系人的信息,如电话号码、电子邮件等。

•删除联系人:用户可以从通讯录中删除特定联系人。

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

•退出系统:用户可以选择退出通讯录管理系统。

3. 系统设计数据结构通讯录管理系统主要使用以下数据结构存储联系人信息:•结构体:定义了一个联系人的数据结构,包括姓名、电话号码、电子邮件等字段。

•数组:用于存储多个联系人信息,构成通讯录。

数组的每个元素对应一个联系人的结构体。

主要函数添加联系人函数void addContact(struct Contact contacts[], int *num Contacts)•功能:向通讯录中添加一个联系人。

•输入参数:通讯录数组contacts、通讯录中联系人数量numContacts的指针。

•输出:无。

查找联系人函数void searchContact(struct Contact contacts[], int n umContacts)•功能:根据用户提供的关键词在通讯录中查找联系人。

•输入参数:通讯录数组contacts、通讯录中联系人数量numContacts。

•输出:无。

编辑联系人函数void editContact(struct Contact contacts[], int num Contacts)•功能:根据用户选择的联系人在通讯录中编辑联系人信息。

C语言课程设计报告(学生通讯录管理系统设计)资料

C语言课程设计报告(学生通讯录管理系统设计)资料
具体的各个函数是参照课本上《链表》那一章的内容的,比如结构体的建立、查找和排序等功能,这些书上都有类似的,例如在第六章中有一个用冒泡法排序的例题,我就是仿照这个模式来对结构体进行排序的。
回顾起此次课程设计,至今我仍感慨颇多,的确,从从拿到题目到完成整个编程,从理论到实践,在整整半个学期的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识重新温顾。
删除后:
按6将通讯录信息排序:
按0退出:
程序已实现对学生信息的录入、按姓名查询、按学号查询和删减,唯一的不足之处是没能实现对学生信息的修改。
设计体会与建议:
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在是生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术十分重要的。
stu=shuru();
system("cls");
menu();
puts("\n学生信息录入完毕,请输入你的选择(0~6):\n");
break;
case '2':findall();puts("\n请输入你的选择(0~6):"); break;

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

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

一、实习题目通讯录管理系统二、需求分析问题描述:本程序属于非数值计算型算法设计,学生需要设计出图书馆模拟系统所需要的基本功能,并设计简单的界面(无需图形化)。

实现功能:1、通过提示菜单选择可以进行的操作2、将图书的信息存入文件中,并命名为BookInfo.txt3、将图书借阅情况信息存入文件中,并命名为SendInfo.txt4、在本系统中可以进行管理系统包含的基本操作,其中包括:a)查看所有图书的信息;b)输入一本图书的图书编号,从当前图书中进行查找,如果找到则显示该图书的相关信息,如果没有找到则给出提示信息;c)添加一本图书的基本信息,通过输入图书编号,首先查找是否存在该图书编号的图书,如果存在则提示重新输入,否则将该图书按照顺序插入到相应位置;d)删除一本图书的基本信息,通过输入图书编号,首先查找是否存在该图书编号的图书,如果存在则将该图书删除,否则给出提示信息,提示该图书不存在;e)借阅一本图书,需要给出学号和图书编号,如果图书编号不存在则重新输入,直到输入正确为止,并将学号和相应的图书编号存入SendInfo.txt文件中。

5、图书基本信息包括图书编号、书名、作者、出版社和价钱这些简单信息。

6、图书信息文件中每一行存放一本图书的信息。

7、借阅信息文件中每一行存放一本书的借阅情况。

知识点:本程序主要考察对自定义函数的熟悉程度,本程序中主要使用到的是数组的相关操作,包括数组的输入、输出、查找、插入、删除等操作,需要对数组有比较深入的掌握。

说明:(1)当程序执行的时候所读取的图书信息文件必须存在,否则可能会出现错误。

(2)图书信息文件中存放图书信息的时候是按照行来存放的,即一行一本书。

(3)借阅信息文件中存放学生借阅情况是按照行来存放的,即一行存放一个学号和一个图书编号。

(4)程序执行的基本过程为:a)在所有操作之前,也就是加载操作菜单之前,先从文件中读取所有图书的信息,并存入一个数组中,此时数组可以定义为包含100个元素;b)然后根据菜单所进行的所有操作都是对当前数组进行操作,此时也就是对数组的查找、定位、添加、修改、删除操作;c)当退出系统的时候再将当前数组中的所有元素按照一本图书一行的方式写回图书信息文件中,此时注意选择覆盖方式,这样就可以将原来的所有数据覆盖,只保留最新的数据;当按行读取图书信息文件的时候,有可能最后一行只有一个回车,这时候实际上所读取的数据为空字符串,需要对此作判断,如果是空字符串,则说明已经没有人员,就必须将当前读入的空字符串写入数组中。

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

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

C语言通讯录管理系统课程设计报告一、引言通讯录管理系统是一种常见的实用性软件,用于记录和管理个人或组织的联系人信息。

本文档旨在介绍一种基于C语言开发的通讯录管理系统的设计与实现。

通过本系统,用户可以方便地添加、删除、搜索和编辑联系人信息,实现了通讯录的基本功能。

二、系统需求分析本通讯录管理系统的主要功能包括: 1. 添加联系人:用户可以添加联系人的姓名、电话号码、邮箱等信息。

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

3. 查找联系人:用户可以根据联系人的姓名或电话号码查找对应的联系人信息。

4. 修改联系人:用户可以修改已存在联系人的信息。

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

三、系统设计1. 数据结构设计为了实现通讯录管理系统,我们需要设计适当的数据结构来存储联系人信息。

在本设计中,使用结构体数组来表示每个联系人的信息,其中每个结构体包含姓名、电话号码、邮箱等成员变量。

struct Contact {char name[50];char phoneNumber[20];char email[50];};2. 功能模块设计本系统主要包含以下几个功能模块:a. 添加联系人模块用户可以选择添加新的联系人,输入姓名、电话号码和邮箱等信息后,系统将在通讯录中添加新的联系人。

b. 删除联系人模块用户可以根据输入的姓名或电话号码查找对应的联系人信息,并选择删除对应的联系人。

c. 查找联系人模块用户可以根据输入的姓名或电话号码查找对应的联系人信息,并在界面上显示查询结果。

d. 修改联系人模块用户可以根据输入的姓名或电话号码查找对应的联系人信息,并选择修改对应的联系人。

e. 显示所有联系人模块用户可以选择显示通讯录中所有的联系人信息,在界面上进行展示。

3. 系统框架设计本系统的整体框架如下:1. 主菜单显示2. 根据用户的选择,进入对应的功能模块四、系统流程图下图展示了通讯录管理系统的整体流程:主菜单 -> 用户选择功能模块 -> 执行对应模块功能五、代码实现以下为通讯录管理系统的部分核心代码实现,完整代码可参考附录部分。

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语言课程设计 - 学生通讯录管理系统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语言课程设计报告(学生通讯录管理系统设计)

课程设计报告(本科)课程:高级语言程序设计学号:姓名:秦钱军班级:2013级计算机科学与技术教师:冯凤时间:2014年1月计算机科学与技术系1结果与分析(可以加页):主界面:按1录入学生通讯录信息:2按2查看所有学生信息:3按3按姓名查找学生信息:按4按学号查找学生信息:4按5删除学生信息:删除后:5按6将通讯录信息排序:按0退出:6程序已实现对学生信息的录入、按姓名查询、按学号查询和删减,唯一的不足之处是没能实现对学生信息的修改。

设计体会与建议:课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在是生活中可以说得是无处不在。

因此作为二十一世纪的大学来说掌握计算机开发技术十分重要的。

具体的各个函数是参照课本上《链表》那一章的内容的,比如结构体的建立、78#include<stdio.h>#include<string.h>#include<malloc.h>#include<stdlib.h>#include<conio.h>#define NULL 0struct student{long num;char name[20];int banji;char tel[11];char Email[20];int sushe;struct student *next;};struct student *stu;int n;void menu(void){ /*主菜单函数*/system("cls");puts("************************************************************************** **");puts("** ^_^学生通讯录管理系统^_^ **");puts("************************************************************************** **");puts("************");puts("***** 1=录入学生通讯录信息*****");puts("**** 2=列出所有学生通讯录****");puts("*** 3=按姓名查询信息***");puts("** 4=按学号查询信息**");puts("* 5=删除学生信息*");puts("** 6=按学号将通讯录排序**");puts("***** 0=退出puts("**********");puts("************");puts("**************");puts("************************************************************************** **");}struct student *shuru(void) /*输入函数*/{system("cls");struct student *s1,*s2;n=1;int num;puts("请输入学生个数(提示:个数不能输入0!):");scanf("%d",&num);s1=s2=(struct student *)malloc(sizeof(struct student));puts("*************************************************");puts("请输入学号:");scanf("%ld",&s1->num);puts("请输入学生姓名:");scanf("%s",s1->name);puts("请输入班级:");scanf("%d",&s1->banji);puts("请输入电话号码:");scanf("%s",s1->tel);puts("请输入电子邮件:");scanf("%s",s1->Email);puts("请输入学生宿舍号:");scanf("%d",&s1->sushe);stu=s1;while(n<num){s2->next=s1;s2=s1;s1=(struct student *)malloc(sizeof(struct student));puts("*************************************************");puts("请输入学号:");scanf("%ld",&s1->num);puts("请输入学生姓名:");scanf("%s",s1->name);puts("请输入班级:");scanf("%d",&s1->banji);puts("请输入电话号码:");scanf("%s",s1->tel);puts("请输入电子邮件:");scanf("%s",s1->Email);puts("请输入学生宿舍号:");scanf("%d",&s1->sushe);n=n+1;}puts("*************************************************");s2->next=s1;s2=s1;s2->next=NULL;return(stu);//system("cls");}void shuchu(struct student *s){ /*输出单个学生信息*/printf("* %-8ld",s->num);printf("%-15s",s->name);printf("%-8d",s->banji);printf("%-15s",s->tel);printf("%-15s",s->Email);printf("%-5d *\n",s->sushe);}void findall() /*输出所有学生信息*/{system("cls");struct student *s;//if(n=2)//printf("\n现在有%d个学生信息,分别是:\n",n);//elseprintf("\n现在有%d个学生信息,分别是:\n",n);puts("________________________________________________________________________"); puts("* 学号姓名班级电话电子邮件宿舍*"); s=stu;while(s!=NULL){shuchu(s);s=s->next;}puts("________________________________________________________________________");puts("返回主菜单请按【9】");if(getche()=='9') menu();}void findname(){ /*按姓名查找函数*/system("cls");struct student *s;char name[20];printf("\n请输入你要查询的学生姓名:\n");scanf("%s",name);s=stu;while(strcmp(s->name,name)!=0){s=s->next;}if(s==NULL){puts("查无此学生姓名!");goto end;}else{puts("该学生的信息为:");puts("* 学号姓名班级电话电子邮件宿舍*");shuchu(s);}end:;puts("返回主菜单请按【9】");if(getche()=='9') menu();}void findnum() /*按学号查找函数*/{system("cls");struct student *s;puts("请输入你要查询的学生学号:");long i;scanf("%ld",&i);s=stu;while(s->num!=i){s=s->next;}if(s==NULL){puts("查无此学生学号!");goto end;}else{puts("该学生的信息为:");puts("* 学号姓名班级电话电子邮件宿舍*"); shuchu(s);}end:;puts("返回主菜单请按【9】");if(getche()=='9') menu();}struct student *shanchu(struct student*stu) /*删除函数*/{system("cls");long num;char s;struct student *s1,*s2;if(stu==NULL){puts("没有任何学生信息。

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语言课程设计》目录摘要 (3)一、课程设计目的 (4)二、课程设计内容 (4)三、总体设计 (5)四、详细设计 (6)(1)数据结构设计 (6)(2)模块接口设计 (7)(3)流程图 (7)五、调试与测试 (10)(1)调试过程中的主要问题 (10)(2)测试结果的分析与讨论 (10)六. 实习总结 (12)注: 13摘要日益繁多的人际交往使得我们很难搞清楚与每个人之间的联系方式, 特别是对于做经常出差的人来说更是难, 所以通讯录能够便捷的给我们带来所需要的相关信息。

而随着计算机的普及, 人们的生活摆脱了传统式的记事本、电话簿, 越来越多的靠计算机来帮助人们记住这些事情, 极其简便。

这就需要有一个使用的通讯录管理系统, 用户可以方便的通过自己电脑的通讯录管理系统, 来随时查阅自己所需要的信息, 而不必再大费周折去翻开那繁琐的记事本。

通讯录管理系统是一个专门针对储存用户联系方式以及一些简单个人信息的实用管理系统, 它方便了用户对众多客户、朋友、同事等个人信息的储存和快速查阅的功能, 大大减少了查找过程的时间。

一、课程设计目的1、通过课程设计, 加深对结构化设计思想的理解, 能对系统功能进行分析, 并设计合理的模块化结构。

2、通过课程设计, 学会设计数据结构。

其中包括对结构数组、链表和数据结构等知识的运用。

3、通过课程设计, 提高程序开发功能, 能运用合理的控制流程编写清晰高效的程序。

4、通过课程设计, 训练C程序调试能力, 能将一个中小型各级组织系统联调通过。

通过课程设计, 开发一个中小型系统, 掌握系统研发全过程。

通话课程设计, 培养分析问题、解决实际问题的能力。

二、课程设计内容(1)设计一个实用的通讯录管理系统, 能以简便高效的方式对通讯录进行管理和检索, 具体要示:(2)录入:通讯录信息包括:编号, 姓名, 单位, 电话, 地址, QQ, 邮编。

以结构通讯录信息。

(3)更新: 能插入、删除通讯录信息。

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

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

c语言通讯录管理系统课程设计报告(一)C语言通讯录管理系统课程设计报告1. 引言在现代社会中,通讯录是人们经常使用的工具之一。

为了方便人们管理各种联系方式,本次课程设计致力于开发一个C语言通讯录管理系统。

本文将围绕该课程设计进行详细介绍和分析。

2. 功能需求为了满足用户对通讯录管理的需求,我们设计了以下功能:•添加联系人:用户可以输入姓名、电话号码、电子邮件等信息,将联系人添加到通讯录中。

•查找联系人:用户可以根据姓名、电话号码等关键字在通讯录中查找特定联系人。

•修改联系人:用户可以对已存在的联系人进行信息修改。

•删除联系人:用户可以将指定的联系人从通讯录中删除。

•显示所有联系人:用户可以查看通讯录中的所有联系人。

3. 设计思路本次课程设计将借助C语言及其相关库函数来实现通讯录管理系统。

主要采用如下设计思路:•采用结构体存储联系人信息:通过定义一个结构体来存储每个联系人的姓名、电话号码、电子邮件等信息。

•使用动态数组管理联系人:通过动态数组来动态管理联系人的数量,以便实现添加、删除等功能。

•借助文件存储联系人信息:通过将联系人信息存储在文件中,实现系统的持久化。

4. 系统设计与实现4.1 数据结构设计为了存储联系人信息,我们定义了如下的结构体:typedef struct {char name[50];char phone[20];char email[50];} Contact;4.2 功能实现为了实现上述功能需求,我们设计了一系列函数来完成相应的操作:•addContact():用于添加新的联系人到通讯录中。

•searchContact():根据给定的关键字在通讯录中查找联系人。

•modifyContact():修改已存在的联系人信息。

•deleteContact():从通讯录中删除指定的联系人。

•displayContacts():显示所有联系人信息。

4.3 文件存储为了实现系统的持久化,我们使用文件来存储联系人信息。

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

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

原创 C 语言学生通讯录管理系统设计简介本文将介绍一个基于 C 语言的学生通讯录管理系统的设计。

该系统旨在提供一个方便管理学生通讯录信息的工具,包括学生的基本信息、联系方式以及其他相关信息。

功能需求学生通讯录管理系统应具备以下功能:1.添加学生信息:包括学生姓名、年龄、性别、学号、联系方式等。

2.删除学生信息:根据学生姓名或学号进行删除。

3.修改学生信息:根据学生姓名或学号进行修改。

4.查询学生信息:根据学生姓名或学号进行查询。

5.显示所有学生信息:以表格形式展示所有学生的基本信息。

数据结构设计为了实现上述功能需求,我们需要设计适当的数据结构来存储学生信息。

本系统采用单链表作为主要数据结构,每个节点表示一个学生的信息。

每个节点包括以下字段:•char name[50]:学生姓名•int age:学生年龄•char gender[10]:学生性别•int studentID:学生学号•char contact[50]:学生联系方式其中,name、gender和contact字段使用字符数组来存储字符串信息,age和studentID字段使用整数来存储相应的信息。

为了方便管理学生信息,我们还需要定义一个指针变量head来表示链表的头节点。

以下是相关数据结构的定义:typedef struct ListNode {char name[50];int age;char gender[10];int studentID;char contact[50];struct ListNode* next;} ListNode;ListNode* head = NULL;功能实现添加学生信息添加学生信息的功能通过以下步骤实现:1.创建一个新的节点newNode2.提示用户输入学生的基本信息,并将信息保存到newNode的相应字段中3.将newNode插入到链表中的合适位置以下是添加学生信息的代码实现:```c ListNode* newNode = (ListNode*)malloc(sizeof(ListNode)); printf(。

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

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

学生通讯录管理系统课程设计报告一、课程设计背景学生通讯录管理系统是一个旨在帮助学生和教师更好地管理个人信息和通讯录的软件系统。

随着信息技术的不断发展,现代教育领域对教学、管理和学习等方面的要求越来越高,传统的纸质通讯录管理方式已经无法满足教育机构的需求。

因此,开发一个便捷、高效的学生通讯录管理系统成为当今教育信息化的重要课题。

二、需求分析学生通讯录管理系统主要包括以下功能模块:1.学生信息管理:用于录入、修改和删除学生个人信息,包括姓名、学号、性别、联系方式等;2.通讯录管理:实现通讯录的分类、查找、添加和删除功能,方便学生和教师进行联系;3.用户权限管理:设置不同权限等级的用户,如学生、教师和管理员,确保信息安全性;4.数据备份与恢复:对系统中的重要数据进行定期备份,保障数据的安全性;5.界面友好性:系统界面简洁明了,操作便捷,用户体验良好。

三、系统设计1. 系统架构学生通讯录管理系统采用客户端-服务器架构,客户端提供给学生和教师使用,服务器端用于存储核心数据和处理业务逻辑。

2. 数据库设计系统采用关系型数据库,主要包括以下表:•学生表(Student):包含学生的基本信息;•教师表(Teacher):包含教师的基本信息;•通讯录表(Contact):记录学生或教师之间的联系方式;•用户表(User):存储系统用户的账号信息和权限。

3. 功能实现(1)学生信息管理学生信息管理模块提供学生信息的增删改查功能,管理员可以对学生信息进行修改和删除,学生可以查看、修改自己的个人信息。

(2)通讯录管理通讯录管理模块支持对通讯录的分类和搜索功能,学生和教师可以添加、删除通讯录条目,并对通讯录进行管理。

(3)用户权限管理系统设定不同权限等级的用户,管理员有最高权限,可以管理用户账号和角色,确保系统的安全性。

四、系统实现系统采用Java语言进行开发,前端界面使用JavaFX技术,后端采用Spring框架实现业务逻辑,数据库连接采用JDBC等技术。

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

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

一:需求分析二:总体设计三:详细设计四:调试与测试五;测试结果六:本次课程设计的心得体会七:附录本程序设计亮点介绍(及)改进方面1.在修改函数中,可以实现单条记录修改(运用switch)2.查询函数中,能返回该函数继续查询(运用了递归)3.使用变量少,仅通过变量i的递加和表示成员数的变量n就实现了数据结构体之间的联系4.界面美观,使用方便5.允许编号输入为字符6.在显示函数上能够分屏显示(换页)缺点在输入数据时,未输完一个成员的所有信息不能退出输入一:需求分析A.需要实现的功能有:输入功能、输出功能、显示功能、查找功能、以及增加、删除、修改功能。

输入功能要求一次完成若干信息的输入;显示功能要能完成所有信息的显示,并且自动分页;查找可以通过多种方式进行。

按需求的功能,应该设计出输入函数、输出函数、显示函数、查找函数、修改函数。

另需要一个标准界面。

B.数据存储问题这个系统数据庞大复杂,需要需要适当应用数组,循环,结构体,文件操作等基本语句及稍有难度的语句。

因此要求我们熟练掌握结构化程序设计的基本思路和方法,在所掌握的基本知识和技能的基础上,进一步提高自学能力和查找资料的能力,解决一定程度的复杂的结构化程序设计问题,加深对所学知识的理解与掌握,利用自己所学知识解决实际问题的能力,为以后的程序开发打下基础。

二:总体设计主要结构图示本程序由主函数和多个子函数组成,可执行多种数据管理的功能。

具体通过c语言中结构体数组来实现。

主函数主体为定义的结构体,和一个switch函数,以提供多种程序操作功能。

主要需运用到结构体数组、文件、函数等内容知识。

子函数有六个,分别负责添加、显示、删除、查询、修改、保存的功能。

通过变量i使结构体数组之间达成数据链表的功能,利用该方法主要考虑到成员中对于结构体指针尚未熟练掌握,而这种方法更加便捷易懂。

子函数功能介绍1.添加:输入成员信息,依次输入编号、姓名、QQ、电话号码、单位、电子邮箱、身份。

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

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

c语言通讯录管理系统课程设计报告报告标题:C语言通讯录管理系统课程设计报告1. 引言本报告旨在介绍并分析本次课程设计所涉及到的C语言通讯录管理系统的设计与实现过程。

2. 设计目标•开发一个功能完善的通讯录管理系统•实现基本的通讯录管理功能,包括添加、删除、查询、修改联系人信息等•提供良好的用户交互界面,方便用户使用该系统•提高系统的效率和稳定性,确保数据的安全性3. 系统设计概述本通讯录管理系统基于C语言开发,主要包括以下几个模块: - 用户管理模块:实现用户注册、登录、退出等功能 - 联系人管理模块:实现联系人的增删改查等功能 - 数据存储模块:使用文件系统进行数据的读写操作数据结构设计本系统使用了以下数据结构: - 用户结构体:包含用户名、密码等信息 - 联系人结构体:包含姓名、电话号码、地址等信息功能模块设计•用户管理模块:提供用户注册、登录、退出等功能•联系人管理模块:提供联系人的添加、删除、查询、修改等功能•数据存储模块:实现数据的读取与保存功能4. 实现细节用户管理模块•注册功能:获取用户输入的用户名和密码,存储到用户数据文件中•登录功能:根据用户输入的用户名和密码,从用户数据文件中验证登录信息•退出功能:退出当前用户,返回系统主界面联系人管理模块•添加联系人功能:获取用户输入的联系人信息,存储到联系人数据文件中•删除联系人功能:根据用户输入的联系人姓名,从联系人数据文件中删除对应的联系人信息•查询联系人功能:根据用户输入的关键词,从联系人数据文件中查找匹配的联系人信息•修改联系人功能:根据用户输入的联系人姓名,从联系人数据文件中修改对应的联系人信息数据存储模块•读取数据功能:从文件中读取用户和联系人的数据•保存数据功能:将用户和联系人的数据保存到文件中5. 测试与优化本系统在开发过程中进行了多次测试和优化,确保系统的稳定性和功能完善性。

通过模拟用户的操作,检测系统的响应速度、功能是否正常等,并对系统进行了性能调优和bug修复。

C语言学生通信录管理系统课程设计报告1

C语言学生通信录管理系统课程设计报告1

实验报告实验名称:学生通信录管理系统实验项目性质:综合性、设计性所涉及课程:C语言课程设计计划学时:实验学时4一、实验目的综合考察学生本学期对C语言的掌握程度。

二、实验内容1.编写一个可以把学生信息写入文件的函数creact(),采用动态链表。

2.编写一个可以增加新成员的函数add1()。

3编写一个可以查询确定学生的函数search1()。

4编写一个可以删除确定学生的函数del1()。

5编写一个可以修改确定学生的函数modify1()。

6编写一个可以打开通信录的函数open1( )。

附录:search1函数调用searchnum和searchname函数,分别为按学号和按名字查询。

del函数调用delname和deltel函数,分别为按名字和按电话删除。

modify1函数调用modifynum和modifyname函数,分别为按学号和按名字找到修改。

open1函数调用sorttel和sortname函数,分别为按电话和按名字从小到大的顺序打开。

三、实验(设计)仪器设备和材料清单1.硬件:PC机2.软件:Turbo C Turbo C++四、实验要求设计一个《学生通讯录管理系统》,在动态链表程序的基础上,设计要求如下(必须使用结构体和动态链表等数据结构)1建立文件存储文件使用指定文件名或默认文件名;可以不保存输入记录,但需要确认是否保存输入记录如果已有文件,只能在其后追加;新增记录可以不存入原文件中,以可以用原来的文件覆盖内存的内容;可以将多个个文件记录合并到一个文件中;2文件的存取和显示可以单独存取文件;可以随时显示内存中记录的全部内容;可以直接存取默认文件或指定文件;3删除记录可以按“姓名”或“电话”方式删除记录并更新内存链表内容;能给出被删除的信息,输出没有找到的信息;如果已经是空表,上出时应给出信息并返回主菜单;如果没有要删除的信息,输出没有找到的信息;删除操作仅限于内存,只有执行记录时,才能覆盖原记录;4查询记录可以按“姓名”或“电话”或“宿舍”方式查询记录能给出查询记录的信息;如果查询的信息不存在,输出没有找到的信息;5 整体功能a可以随时检索、删除、或增加新记录,保存或取消新的记录 b使姓名可由16位字符和数字的混合编码组成c使电话号码可由18位字符和数字组成d将输出信息加上输出信息信息栏,例如姓名电话性别年龄生日宿舍李四 1234 男 21 7月1日东二333e使用菜单实现功能的正确的选择f 所有节点信息都是动态生成。

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

实验报告实验名称:学生通信录管理系统实验项目性质:综合性、设计性所涉及课程:C语言课程设计计划学时:实验学时4一、实验目的综合考察学生本学期对C语言的掌握程度。

二、实验内容1.编写一个可以把学生信息写入文件的函数creact(),采用动态链表。

2.编写一个可以增加新成员的函数add1()。

3编写一个可以查询确定学生的函数search1()。

4编写一个可以删除确定学生的函数del1()。

5编写一个可以修改确定学生的函数modify1()。

6编写一个可以打开通信录的函数open1( )。

附录:search1函数调用searchnum和searchname函数,分别为按学号和按名字查询。

del函数调用delname和deltel函数,分别为按名字和按电话删除。

modify1函数调用modifynum和modifyname函数,分别为按学号和按名字找到修改。

open1函数调用sorttel和sortname函数,分别为按电话和按名字从小到大的顺序打开。

三、实验(设计)仪器设备和材料清单1.硬件:PC机2.软件:Turbo C 2.0/Turbo C++3.0四、实验要求设计一个《学生通讯录管理系统》,在动态链表程序的基础上,设计要求如下(必须使用结构体和动态链表等数据结构)1建立文件存储文件使用指定文件名或默认文件名;可以不保存输入记录,但需要确认是否保存输入记录如果已有文件,只能在其后追加;新增记录可以不存入原文件中,以可以用原来的文件覆盖内存的内容;可以将多个个文件记录合并到一个文件中;2文件的存取和显示可以单独存取文件;可以随时显示内存中记录的全部内容;可以直接存取默认文件或指定文件;3删除记录可以按“姓名”或“电话”方式删除记录并更新内存链表内容;能给出被删除的信息,输出没有找到的信息;如果已经是空表,上出时应给出信息并返回主菜单;如果没有要删除的信息,输出没有找到的信息;删除操作仅限于内存,只有执行记录时,才能覆盖原记录;4查询记录可以按“姓名”或“电话”或“宿舍”方式查询记录能给出查询记录的信息;如果查询的信息不存在,输出没有找到的信息;5 整体功能a可以随时检索、删除、或增加新记录,保存或取消新的记录 b使姓名可由16位字符和数字的混合编码组成c使电话号码可由18位字符和数字组成d将输出信息加上输出信息信息栏,例如姓名电话性别年龄生日宿舍李四 1234 男 21 7月1日东二333e使用菜单实现功能的正确的选择f 所有节点信息都是动态生成。

6测试程序应列出测试大纲对程序进行测试;应保证测试用例测试到程序的各种边缘情况五、实验步骤及结果测试A、主函数程序清单:void main(){int i;end:printf("|----------------------------------------|\n");printf(" | 1.ceate new file |\n");printf(" | 2.add information |\n");printf(" | 3.search |\n");printf(“ | 4.telect |\n");printf(" | 5.modify |\n");printf(" | 6.open |\n");printf(" | 0.register |\n");printf("|---------------------------------------|\n");printf("input your choice(0-6):\n");scanf("%d",&i);if(i==1){creat1(); goto end;}if(i==2){add1(); goto end;}if(i==3){search1(); goto end;}if(i==4){del1(); goto end;}if(i==5){modify1(); goto end;}if(i==6){open1(); goto end;}exit(0);}B、创建:void create()程序清单:void creat1(){FILE *fp;char i;struct student *p1,*p2,*head;n=0;p1=p2=(struct student *)malloc(LEN);printf("\nenter NO.:\n");scanf("%d",&p1->num);while(p1->num!=0){printf("enter name:\n");scanf("%s",p1->name);printf("enter tel:\n");scanf("%s",p1->tel);do{printf("enter sex:\n");getchar();scanf("%c",&p1->sex);}while(p1->sex!='f'&&p1->sex!='F'&&p1->sex!='m'&&p1->sex!='M');do{printf("enter age:\n");scanf("%d",&p1->age);}while(p1->age<=0||p1->age>=150);printf("enter birthday:\n");scanf("%s",p1->bir);printf("enter address:\n");scanf("%s",p1->add);n=n+1;if(n==1)head=p1;else p2->next=p1;p2=p1;p1=(struct student *)malloc(LEN);printf("enter NO.:\n");scanf("%d",&p1->num);}p2->next=NULL;printf("\nsave them or no(y/n)\n");do{printf("input choice\n");getchar();scanf("%c",&i);}while(i!='y'&&i!='Y'&&i!='n'&&i!='N'); if(i=='y'||i=='Y'){p1=head;if((fp=fopen(FILENAME,"wb"))==NULL){printf("cannot open file\n");return;}if(p1!=NULL)do{if(fwrite(p1,sizeof(struct student),1,fp)!=1) {printf("file write error\n");fclose(fp);break;}p1=p1->next;}while(p1!=NULL);fclose(fp);}}C、增加 void add1()设计思路和创建新通信录一样,只是文件的打开方式是“a”,即以追加的方式打开。

程序清单:void add1(){FILE *fp;char i;struct student *p1,*p2,*head;n=0;p1=p2=(struct student *)malloc(LEN);printf("\nenter NO.:\n");scanf("%d",&p1->num);while(p1->num!=0){printf("enter name:\n");scanf("%s",p1->name);printf("enter tel:\n");scanf("%s",p1->tel);printf("enter sex:\n");getchar();scanf("%c",&p1->sex);printf("enter age:\n");scanf("%d",&p1->age);printf("enter birthday:\n");scanf("%s",p1->bir);printf("enter address:\n");scanf("%s",p1->add);n=n+1;if(n==1)head=p1;else p2->next=p1;p2=p1;p1=(struct student *)malloc(LEN); printf("enter NO.:\n");scanf("%d",&p1->num);}p2->next=NULL;printf("\nsave them or no(y/n)\n");do{printf("input choice\n");getchar();scanf("%c",&i);}while(i!='y'&&i!='Y'&&i!='n'&&i!='N'); if(i=='y'||i=='Y'){p1=head;if((fp=fopen(FILENAME,"a"))==NULL){printf("cannot open file\n");return;}if(p1!=NULL)do{if(fwrite(p1,sizeof(struct student),1,fp)!=1){printf("file write error\n");fclose(fp);break;}p1=p1->next;}while(p1!=NULL);fclose(fp);}}D、查找 void search()开始选择按名字或按学号查按名字择调用Searchname()按学号择调用Searchnum()结束程序清单:1、void search1(){int i;printf("please input your choice(0-2)");printf("|------------------------------------------------------|\n");printf(" | 1.search in NO. |\n");|\n");|\n");printf("|------------------------------------------------------|\n");do{printf("input your choice");scanf("%d",&i);}while(i!='1'&&i!='2'&i!='0');switch(i){case'1': searchnum(); break;case'2': searchname(); break;default: exit(0);}}2、void searchname(){struct student *p1,*p2,*head;char name[16];head=recreat();printf("enter the student's name:\n"); scanf("%d",name);for(p1=head;p1->next!=NULL;p1=p1->next) if(strcmp(p1->name,name)==0){printf(,"%d\t%s\t%s\t%c\t%d\t%s\t%s\n", p1->num,p1->name,p1->tel,p1->sex,p1->age,p1->bir,p1->add);}}3、void searchnum(){struct student *p1,*p2,*head;int num;head=recreat();printf("enter the student's NO.:\n"); scanf("%d",&num);for(p1=head;p1->next!=NULL;p1=p1->next) if(p1->num==num){printf(,"%d\t%s\t%s\t%c\t%d\t%s\t%s\n", p1->num,p1->name,p1->tel,p1->sex,p1->age,p1->bir,p1->add);}}。

相关文档
最新文档