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语言程序设计实习报告题目:通讯录管理系统院系名称电子与信息工程院专业名称电子信息工程班级电子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. 简介通讯录管理系统是一款基于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语言课程设计报告---通讯录管理系统

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

实现功能: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语言程序设计教师本科生本科生学号本科生专业所在院系类别:日期:课程设计评语注:1、无评阅人签名成绩无效;2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。

目录课程设计评语2目录31.课程论文题目42.程序设计思路43.功能模块图54.数据结构设计55.算法设计56.程序代码187.程序运行结果188.编程中遇到的困难及解决方法279.总结心得及良好建议2810.致281.课程论文题目通讯录管理系统要求:设计具有数据插入、修改、删除、显示和查询功能的簿管理系统。

⑴数据包括:人名、工作单位、和E-mail地址。

⑵可对记录中的和进行修改。

⑶可增加或删除记录。

⑷可显示所有保存的记录。

⑸可按人名或进行查询。

2.程序设计思路根据题目的要求,程序应该采用结构体数组和文件系统实现。

应该有动态的存储空间和文件输入、输出等操作功能;在程序中应该包括添加、显示、删除、查询和修改以及保存和退出的功能;另外还应提供键盘式选择菜单实现功能选择。

3.功能模块图4.数据结构设计整个程序中用到的数据主要是全局变量MAX 100和字符变量name[10]、addr[20]、phnum[20]、email[20]。

5.算法设计1.主函数主函数的设计一般比较的简单,只提供输入,功能处理和输出部分的函数调用。

其中个功能模块用菜单方式选择。

菜单部分也可以写成函数。

[流程图][程序]main() /*****************主函数*****************/{int n; /**********变量保存选择菜单数子***************/creat();do{printf("\n\t***********************************************\n"); printf("\n\n\t*************WELCOME TO USE!***************\n");printf("\n\t**********************************************\n"); printf("\n\n\t\t*****Please make a choice below*****\n");printf("\n\t\t1.Add a piece of meg");printf("\n\t\t2.List all the meg");printf("\n\t\t3.Delete a piece of meg");printf("\n\t\t5.Alter a piece of meg");printf("\n\t\t6.Save and Quit");printf("\n\t\t7.Create an address book");printf("\n\n\n");printf("\t********Input Your Choice:****************\n");scanf("%d",&n);switch(n) /*****************输入n的在1-6之间执行switch ************/{ case 1: Add(); /*添加模块*/break;case 2: List(); /*显示模块*/break;case 3: Delete(); /*删除模块*/break;case 4: Find(); /*查询模块:分为名字查询(0)和查询(1)*/ break;case 5: Alter(); /*修改模块:分为修改名字(0)和修改(1)*/ break;case 6: exit(0); /*退出模块*/break;fclose(fp);default: /**********输入的n不在1-6之间执行default************/printf("\n\t********************************************\n");printf("\n\t The num should be 1-6!!! \n");printf("\n\t********************************************\n");break;}}while(1);}[数据结构]通讯录的数据信息:人名、工作单位、、E-mail地址均可以采用字符型数组;可以采用结构体的形式,把各信息作为结构的成员,由于通讯录要具有添加、查找、和删除的功能,所以整个通讯录采用链表比较容易的实现以上功能。

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

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

《C语言课程设计》课程设计报告题目通讯录管理系统学号姓名年级专业指导教师完成日期年月日安徽师范大学物理与电子信息学院College of Physics and Electronic Information, Anhui Normal University通讯录管理系统一、问题描述本程序是非数值计算型算法设计,我设计出了通讯录管理系统的基本功能,并设计了简单的界面。

本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是数组的相关操作,包括结构体数组的输入、输出、查找、删除等。

我设计的这个通讯录系统也初步实现了人员信息的显示、删除、查找、修改、添加等必要的功能。

二、基本要求1)每条记录包括:学号、姓名、专业、家庭住址、联系电话;2)能够实现添加、删除、修改功能;3)能够实现按学号、姓名、专业等内容进行查找三、系统分析和设计【需求分析】根据题目要求,通讯录数据以文本文件存储,故应提供文件的输入、输出等操作;还应提供显示、查找、删除等操作;另外还应提供键盘式选择菜单实现功能选择。

【总体设计】通过对整个系统的分析,根据上述要求,可以将这个系统的设计分为三个模块(见图1):文件导入、通讯录编辑和退出。

图1 系统功能模块四、主要流程图(1)主菜单函数此函数功能为提供键盘式选择菜单以调用不同函数。

其流程如图2所示。

图2 主菜单函数流程图(2) 新建菜单函数该函数的功能是用户需要新建联系人记录,从键盘输入并逐条写到原来的通讯录文件中,注意采用新建而不是覆盖的方式。

其流程如图3所示。

图3 新建函数流程图(3) 浏览菜单函数此函数功能为提供浏览所有联系人记录。

其流程如图4所示。

图4 浏览模块流程图(4)查找菜单函数此模块的功能是用户可根据姓名或电话号码查询联系人信息。

△查询菜单函数功能为提供键盘式选择菜单选择查找方法。

其流程如图5所示。

图5 查找函数流程图△按姓名查找函数其流程如图6 所示。

图6 按姓名查找函数流程图△按电话查找函数其流程如图7所示。

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

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

c 通讯录管理系统课程设计一、课程目标本课程为“通讯录管理系统课程设计”,针对初中年级信息技术学科,旨在通过实践操作,使学生能够:知识目标:1. 理解通讯录管理系统的基本功能与需求;2. 掌握使用编程语言(如Python)实现简单数据结构,如列表、字典;3. 学会使用文件操作保存和读取通讯录信息。

技能目标:1. 能够运用所学知识设计并实现一个基本的通讯录管理系统;2. 掌握基本的程序调试技巧,提高解决问题的能力;3. 学会对程序进行优化,提高代码的可读性和可维护性。

情感态度价值观目标:1. 培养学生的团队协作精神,提高沟通与表达能力;2. 激发学生对编程的兴趣,鼓励创新思维和动手实践能力;3. 增强学生对信息技术的认识,培养其信息安全意识。

课程性质:本课程为实践性课程,注重培养学生的动手能力和实际操作技能。

学生特点:初中年级学生具有一定的信息技术基础,对新事物充满好奇,但编程经验有限。

教学要求:结合学生特点,以实际操作为主,注重引导和激发学生的学习兴趣,培养其解决问题的能力。

通过课程学习,使学生能够将所学知识运用到实际项目中,提高其信息技术素养。

教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。

二、教学内容本章节教学内容依据课程目标,紧密结合教材,确保科学性和系统性。

具体安排如下:1. 理论知识学习:- 简介通讯录管理系统的作用和功能;- 数据结构基本概念:列表、字典的使用;- 文件操作:读写文件,保存和加载通讯录信息。

2. 实践操作:- 设计通讯录管理系统需求分析;- 编程实现通讯录管理系统功能模块:添加、删除、查询、修改联系人信息;- 调试与优化程序,提高系统稳定性。

3. 教学大纲:- 第一周:通讯录管理系统概述,学习数据结构基本概念;- 第二周:文件操作,编写通讯录管理系统的基础代码;- 第三周:完善通讯录管理系统,增加功能模块;- 第四周:调试与优化程序,进行项目展示与评价。

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

一、题目内容的描述学生通讯录管理系统设计设计一个学生通信录,学生通迅录数据信息构成内容可自行设计(如:姓名、家庭地址、邮政编码、电话号码等等),通信录数据类型定义为结构体类型。

由键盘输入数据(最好要考虑输入数据输入的格式及输入数据的有效性),然后进行以下的功能实现。

程序要求主函数是一个功能选择菜单,其它各功能都用各自的函数实现。

功能要求如下:1、能建立、修改和增删学生通讯录2、能够按多种方式进行查询,例如按姓名、按电话号码等。

3、通讯录的数据保存在文件中,运行程序时将通讯录数据从文件读取到内存中。

对通讯录进行增加、删除、修改学生数据后,提供功能菜单,可以将内存中修改过的通讯录重新保存至文件。

二、应用程序功能的详细说明1、应用程序实现了可视化的系统操作界面。

2、对学生通讯录形成了系统化的管理,操作简便明了。

3、程序具有系统帮助,添加、显示、查询、刷新、删除、排序、保存、修改、读取学生通讯录的功能。

各项功能均可按照文字提示操作,浅显易懂。

4、系统的各个功能模块都用函数的形式来实现(readfile()、seek()、modify()、sort()、insert()、del()、save()、menu())方便查看。

5.可以将信息保存在文件("student.txt")中,亦可将信息从文件中读取出来,灵活方便。

三、主要模块的算法描述模块一:头文件,变量定义,函数的声明对系统所使用的变量进行定义,对函数进行声明。

模块二:录入学生信息声明函数void readfile(),说明一个文件指针FILE *fp打开文件"student.txt"。

模块三:学生信息的查找声明void seek()为查找函数,通过switch(item)设定用学号查找,用姓名查找两个分支。

模块四:学生信息的修改声明void modify()为学生信息修改函数,通过switch(item)设定所要修改的项目。

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.通讯录管理系统的基本概念:介绍通讯录管理系统的作用、特点和应用场景。

2.系统设计方法:讲解系统设计的基本流程,包括需求分析、系统设计、编码实现和测试等环节。

3.编程语言实践:通过具体案例,使学生掌握使用编程语言实现通讯录管理系统的方法。

4.团队协作与创新:培养学生在团队协作中解决问题的能力,激发学生的创新精神和团队合作意识。

三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学:1.讲授法:讲解通讯录管理系统的基本概念和设计方法。

2.案例分析法:分析实际案例,使学生更好地理解通讯录管理系统的设计和实现过程。

3.实验法:让学生动手实践,实际操作通讯录管理系统的设计和编程。

4.小组讨论法:鼓励学生进行团队协作,共同解决问题,培养学生的团队合作能力。

四、教学资源为了保证教学效果,我们将提供丰富多样的教学资源:1.教材:选用权威、实用的教材,为学生提供系统、全面的学习资料。

2.参考书:提供相关的参考书籍,丰富学生的知识体系。

3.多媒体资料:制作精美的PPT,生动形象地展示课程内容。

4.实验设备:提供充足的实验设备,确保每个学生都能动手实践。

5.在线资源:推荐相关的在线课程和论坛,方便学生随时随地学习、交流。

五、教学评估为了全面、公正地评估学生的学习成果,本课程将采用多种评估方式相结合的方法:1.平时表现:通过课堂参与、提问、讨论等方式,评估学生的学习态度和积极性。

C语言课程设计___手机通讯录管理系统

C语言课程设计___手机通讯录管理系统

C语言课程设计___手机通讯录管理系统-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIANC语言课程设计手机通信录管理系统院系:姓名:学号:班号:指导教师:2014年12月目录一题目要求 ....................................................................................................错误!未定义书签。

二需求分析 ....................................................................................................错误!未定义书签。

三总体设计 ....................................................................................................错误!未定义书签。

四详细设计 ....................................................................................................错误!未定义书签。

1.主函数..................................................................................................错误!未定义书签。

2.各功能模块设计..................................................................................错误!未定义书签。

(1)查看模块..............................................................................错误!未定义书签。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

C语言通讯录管理系统课程设计报告通讯录管理系统题目学号姓名09级电子信息工程年级专业指导教师完成日期年月日1设计题目的内容、任务及具体要求本程序是非数值计算型算法设计,我设计出了通讯录管理系统的基本功能,并设计了简单的界面。

本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是数组的相关操作,包括结构体数组的输入、输出、查找、删除等。

我设计的这个通讯录系统也初步实现了人员信息的显示、删除、查找、修改、添加等必要的功能。

①记录通讯录内的人员的姓名、地址、邮编、电话号码。

②显示所有人员的信息。

③通过输入姓名查找人员信息。

④通过输入姓名查找到要删除的人员信息,然后可以进行删除。

⑤通过输入姓名查找到要修改的人员信息,然后可以进行修改。

⑥添加人员信息。

2总体设计思路本系统首先设计出了主函数,然后根据去要实现的功能分别设计拉,显示、删除、查找、修改、添加功能的子函数。

在显示的函数设计过程中首先运用拉文件的读取等必要的知识通过把文件的内容读取到内存然后打印出来。

删除函数的设计是首先从文件内找到要删除的人,然后通过写一个实现删除目的的FOR循环将该人从内存里删除,然后再用写的方式打开文件,将内存内的信息写入文件,实现删除。

查找也是先打开文件,用一个字符串对比的方法找出用户要查找的人,然后打印出来。

修改也大体和删除相同,添加函数在设计时通过申请一片空间,然后通过指针将需要添加的信息添加进去,从而实现添加功能。

下面就是总的程序流程图:3功能模块的具体设计3.1 界面分析3.1.1开始界面开始执行printf()函数选择(a )调用ou tp ut() 函数调用 de l() 函数调用 find()函数调用 mod ify() 函数调用 appe nd() 函数执行print f() 退出系统3.1.2显示功能的界面:选择1后系统出现现有的所有人员名单:3.1.3 显示删除功能的界面3.1.4 查找功能:通过5:find—by—name 用姓名来查找个人的通讯录信息通过6:find—by—tel 用电话号码来查找个人的通讯录信息3.1.5 修改功能的界面:输入姓名后的系统界面:输入修改信息后的系统界面:3.1.6添加功能的界面:选择1后的系统界面:3.2 程序设计主要内容#include<stdio.h>struct student{char name[8]; /*声明一个结构体结构*/char num[10];char dis[8];char tel[20];char addr[20];};char filename[20];FILE *fp;void creat();void output();void find_by_name();void find_by_tel(); /*定义了六个函数和一个指针完成相应的功能*/void delete();void append();void modify();main(){int m;printf(" ***************************************************\n\n\n"); printf(" ********* Welcome to use yufeng's ***************\n\n\n"); printf(" ************** addressbook **********************\n\n\n");creat(); /*主界面*/while(1){ printf(" ******************************\n\n");printf(" 0 exit, press 0\n\n");printf(" 1 append,press 1\n\n");printf(" 2 modify,press 2\n\n");printf(" 3 output,press 3\n\n");printf(" 4 delete,press 4\n\n");printf(" 5 find by name,press 5\n\n");printf(" 6 find by tel,press 6\n\n"); /*功能菜单*/printf(" ******************************\n");scanf("%d",&m);if(m>=0&&m<=6){switch(m){case 1: append();break;case 2: modify();break;case 3: output();break;case 4: delete();break;case 5: find_by_name();break;case 6: find_by_tel();break;case 0: exit();}printf("\n\nHave finished,select again!\n");}elseprintf("\n\nError,select again!\n");}}void creat(){struct student one;printf("\nInput the name of addressbook:");gets(filename);if((fp=fopen(filename,"w"))==NULL){printf("\nCann't creat addressbook!");exit();}/*fprintf(fp,"%-10s%-8d%-20s%-20s%-20s\n",,one.num,one.dis,one.tel,one.addr);*/printf("\nInput name,num,dis,tel,addr(end press #)\n");gets();while(strcmp(,"#")){gets(one.num);gets(one.dis);gets(one.tel);gets(one.addr);fprintf(fp,"%-10s%-10s%-10s%-20s%-20s\n",,one.num,one.dis,one.tel,one.addr);gets();}fclose(fp);}void find_by_name(){int k=0;char namekey[8];struct student one;printf("\nInput name:");scanf("%s",namekey);if((fp=fopen(filename,"rb"))==NULL){printf("\nCann't open this addressbook!!!");exit();}while(!feof(fp)){fscanf(fp,"%s%s%s%s%s\n",,one.num,one.dis,one.tel,one.addr);if(!strcmp(namekey,)){printf("\n\nHave finded,as follow:\n");printf(" name num dis tel addr ");printf("\n%-10s%-10s%-10s%-20s%-20s\n",,one.num,one.dis,one.tel,one.addr);k=1;}}if(!k)printf("\n\nSorry,there is no this student!!");fclose(fp);}void find_by_tel(){int k=0;char telkey[8];struct student one;printf("\nInput tel:");scanf("%s",telkey);if((fp=fopen(filename,"rb"))==NULL){printf("\nCann't open this addressbook!!!");exit();}while(!feof(fp)){fscanf(fp,"%s%s%s%s%s\n",,one.num,one.dis,one.tel,one.addr);if(!strcmp(telkey,one.tel)){printf("\n\nHave finded,as follow:\n");printf(" name num dis tel addr");printf("\n%-10s%-10s%-10s%-20s%-20s\n",,one.num,one.dis,one.tel,one.addr);k=1;}}if(!k)printf("\n\nSorry,there is no this student!!");fclose(fp);}void output(){struct student one;if((fp=fopen(filename,"r"))==NULL){printf("\nCann't open this addressbook!!!");exit(0);}/* printf("\n\n%20s\n"," \nCann't open this addressbook\n");*/while(!feof(fp)){fscanf(fp,"%s%s%s%s%s\n",,one.num,one.dis,one.tel,one.addr);if(strcmp(,"hello"))printf("\n%-10s%-10s%-10s%-20s%-20s\n",,one.num,one.dis,one.tel,one.addr);}fclose(fp);}void append(){struct student one;if((fp=fopen(filename,"a"))==NULL){printf("\nCann't open this addressbook!!");exit();}printf("\nInput new name,num,dis,tel,addr\n");scanf("%s%s%s%s%s",,one.num,one.dis,one.tel,one.addr);fprintf(fp,"%-10s%-10s%-10s%-20s%-20s\n",,one.num,one.dis,one.tel,one.addr);fclose(fp);}void modify(){int m,k=0;long offset;char namekey[8];struct student one;printf("\nInput name:");scanf("%s",namekey);if((fp=fopen(filename,"r+"))==NULL){printf("\nCann't open this addressbook!!!");exit();}while(!feof(fp)){offset=ftell(fp);fscanf(fp,"%s%s%s%s%s\n",,one.num,one.dis,one.tel,one.addr);if(!strcmp(namekey,)){k=1;break;}}if(k){printf("\nHave finded,as follow:");printf("\n%-10s%-10s%-10s%-20s%-20s\n",,one.num,one.dis,one.tel,one.addr);printf("\nInput new name,num,dis,tel,addr:");scanf("%s%s%s%s%s",,one.num,one.dis,one.tel,one.addr);fseek(fp,offset,SEEK_SET);printf("%1d",ftell(fp));fprintf(fp,"%-10s%-10s%-10s%-20s%-20s\n",,one.num,one.dis,one.tel,one.addr);}elseprintf("\nSorry,there is no this student!!");fclose(fp);}void delete(){int m,k=0,flag;long offset1;char namekey[8];struct student one;printf("\nInput name:");scanf("%s",namekey);if((fp=fopen(filename,"r+"))==NULL){printf("\nCann't open this addressbook!!");exit();}while(!feof(fp)){ offset1=ftell(fp);fscanf(fp,"%s%s%s%s%s\n",,one.num,one.dis,one.tel,one.addr);if(!strcmp(namekey,)){k=1;break;}}if(k){printf("\nHave finded,as follow:");printf("\n%-10s%-10s%-10s%-20s%-20s\n",,one.num,one.dis,one.tel,one.addr);printf("\n delete,press1:\n not delete,press0:");scanf("%d",&m);if(m){fseek(fp,offset1,SEEK_SET);strcpy(,"hello");fprintf(fp,"%-10s%-10s%-10s%-20s%-20s\n",,one.num,one.dis,one.tel,one.addr);}}elseprintf("\nSorry,there is no this student!!");fclose(fp);}通过对这些资源的合理利用使系统初步实现了通讯录管理系统的基本功能。

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

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

中国地质大学本科生C语言课程论文报告课程名称C语言课程设计教师姓名本科生姓名本科生学号20101001298本科生专业应用化学所在院系材料与科学学院类别: 本科生日期: 2012年7月10日目录目录 (2)1.课程论文题目 (3)2.程序设计思路 (3)3.功能模块图 (4)4.数据结构设计 (12)5.算法设计 (17)6.程序代码 (29)7 程序运行结果 (34)8、编程中遇到的困难及解决方法 (41)9.总结心得及良好建议 (41)10.致谢 (41)1.课程论文题目(1)、题目名称:手机通讯录管理系统(2)、题目要求①录入人员的编号、姓名、个人邮箱、地址、联系电话。

②显示所有人员的信息。

③通过输入姓名查找人员信息。

④通过输入姓名查找到要删除的人员信息,然后可以进行删除,回显当前通讯录信息。

⑤通过输入姓名查找到要修改的人员信息,然后依次进行信息修改。

⑥添加人员信息。

2.程序设计思路分析整个系统,根据以上的需求分析及题目要求,可将整个系统的设计分为以下五个模块:保存信息,信息输入、录入比赛结果、查询信息、退出.(每个功能模块都标注函数名称,如图1)A、需求分析:根据题目要求应提供键盘式菜单实现功能选择,还应提供信息的输入操作,由于在程序中提供查询功能所以应有显示、查找等操作。

B、总体设计:根据上面的需求分析,可以将这个系统的设计分为1添加模块2显示模块3删除模块 4 查询模块 5 修改模块 6 保存模块。

C、数据结构:数据结构采用结构体数组,包括姓名,归属地,电话号码,邮箱四个结构3.功能模块图本系统设计的函数是由一个主函数几个子函数组成的。

首先构思大局编出一个主函数,然后根据要实现的功能逐步细分设计,分别解决输入、显示、查找、删除、修改,退出功能的子函数编程中遇到的问题。

首先通过结构体的定义,确定通讯录的项目和大小。

首先通过输入函数添加信息,然后再逐步编写和验证其它功能。

显示函数的设计利用C语言的循环功能依次输出信息。

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

中国地质大学本科生课程论文封面课程名称C语言程序设计教师姓名本科生姓名本科生学号本科生专业所在院系类别:日期:课程设计评语注:1、无评阅人签名成绩无效;2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。

目录课程设计评语 (2)目录 (3)1.课程论文题目 (4)2.程序设计思路 (4)3.功能模块图 (5)4.数据结构设计 (5)5.算法设计 (5)6.程序代码 (14)7.程序运行结果 (14)8.编程中遇到的困难及解决方法 (27)9.总结心得及良好建议 (28)10.致谢 (28)1.课程论文题目通讯录管理系统要求:设计具有数据插入、修改、删除、显示和查询功能的电话簿管理系统。

⑴数据包括:人名、工作单位、电话号码和E-mail地址。

⑵可对记录中的姓名和电话号码进行修改。

⑶可增加或删除记录。

⑷可显示所有保存的记录。

⑸可按人名或电话号码进行查询。

2.程序设计思路根据题目的要求,程序应该采用结构体数组和文件系统实现。

应该有动态的存储空间和文件输入、输出等操作功能;在程序中应该包括添加、显示、删除、查询和修改以及保存和退出的功能;另外还应提供键盘式选择菜单实现功能选择。

3.功能模块图4.数据结构设计整个程序中用到的数据主要是全局变量MAX 100和字符变量name[10]、addr[20]、phnum[20]、email[20]。

5.算法设计1.主函数主函数的设计一般比较的简单,只提供输入,功能处理和输出部分的函数调用。

其中个功能模块用菜单方式选择。

菜单部分也可以写成函数。

[流程图][程序]main() /*****************主函数*****************/{int n; /**********变量保存选择菜单数子***************/creat();do{printf("\n\t***********************************************\n");printf("\n\n\t*************WELCOME TO USE!***************\n");printf("\n\t**********************************************\n");printf("\n\n\t\t*****Please make a choice below*****\n");printf("\n\t\t1.Add a piece of meg");printf("\n\t\t2.List all the meg");printf("\n\t\t3.Delete a piece of meg");printf("\n\t\t4.Find a piece of meg");printf("\n\t\t5.Alter a piece of meg");printf("\n\t\t6.Save and Quit");printf("\n\t\t7.Create an address book");printf("\n\n\n");printf("\t********Input Your Choice:****************\n");scanf("%d",&n);switch(n) /*****************输入n的在1-6之间执行switch ************/{ case 1: Add(); /*添加模块*/break;case 2: List(); /*显示模块*/break;case 3: Delete(); /*删除模块*/break;case 4: Find(); /*查询模块:分为名字查询(0)和电话号码查询(1)*/break;case 5: Alter(); /*修改模块:分为修改名字(0)和修改电话号码(1)*/break;case 6: exit(0); /*退出模块*/break;case 7: creat(); /*带回链表起始地址*/fclose(fp);default: /**********输入的n不在1-6之间执行default ************/ printf("\n\t********************************************\n");printf("\n\t The num should be 1-6!!! \n");printf("\n\t********************************************\n");break;}}while(1);}2.各功能模块设计[数据结构]通讯录的数据信息:人名、工作单位、电话号码、E-mail地址均可以采用字符型数组;可以采用结构体的形式,把各信息作为结构的成员,由于通讯录要具有添加、查找、和删除的功能,所以整个通讯录采用链表比较容易的实现以上功能。

用结构体变量作为链表中的接点是最合适的。

结构体变量可以是指针类型,我们可以用这个指针类型的成员来存放下一个结点的地址。

结构体的类型如下:struct persons{ typedef struct p{char name[10] char name[10];char addr[20]; char addr[20];char phnum[20]; char phnum[20];char email[20]; char email[20];}persons[MAX]; struct p *next;}p,*linkl ist;struct persons类型为每个链表成员;typedef struct p为一个动态的结点,它的成员next存放下一个结点的地址。

以下为各模块分析时要用的指针:linklist head=NULL,t=NULL; /**************定义头指针和尾指针*************/p *s,*p0,*p1,*p2,*p3,*p4,*p5;int i;char name1[10],ch;char str1[20 ];FILE *fp; /********************定义文件指针***********************/(1)输入模块[程序]void creat() /*将文件的信息读入结构体数组在转存入链表中*/ {int j;long k;fp=fopen("people.txt","r+");/****************打开文件**********************/if(fp!=NULL){for(i=1;i<MAX;i++){j=fgetc(fp);if(j==EOF)return;k=i-1;fseek(fp,k*sizeof(struct persons),0); /************读取一个人的信息***************/fread(&persons[i],sizeof(struct persons),1,fp);s=(linklist)malloc(sizeof(p)); /**************装存入链表中***********/ strcpy(s->name,persons[i].name);strcpy(s->addr,persons[i].addr);strcpy(s->phnum,persons[i].phnum);strcpy(s->email,persons[i].email);if(head==NULL) /***********用尾插法将其插入链表中**********/head=s;else{t->next=s;t=s;}}}else{fp=fopen("people.txt","w"); i=1; /*****不能打开另开辟一个文件*****/ }}⑵添加模块由于运用的是链表的形式,且通讯录只是按照输入的先后循序排序,所以对添加的信息采用插入末端的方式,同时添加也使用于空通讯录的信息输入。

[程序]void Add() /*******向通讯录中添加(或输入)一个人的信息*********/ {s=(linklist)malloc(sizeof(p));s->next=NULL;printf("\n\n\t*********Please input the sb's message:**********");printf("\n\n\t\tname:");scanf("%s",s->name);printf("\n\n\t\tAddr:");scanf("%s",s->addr);printf("\n\n\t\tphnum:");scanf("%s",s->phnum);printf("\n\n\t\temai:");scanf("%s",s->email);if(head==NULL)head=s; /*******若通讯录为空则添加在头指针之后相当于输入信息*********/else{t->next=s; /***********添加到链表的末尾************/t=s; }}⑶显示模块链表的一大好处是只要定义了头指针,则所有的信息就很容易的找到,指针会一环扣一环的找到每个信息,显示出每个信息,直到最后到位指针结束。

[程序]void List() /*****************显示所有的信息*******************/{p0=head; /************** p0指向头指针*******************/ while(p0!=NULL) /****************通讯录不为空******************/{printf("\tname:%s",p0->name);printf("\taddr:%s",p0->addr);printf("\tphnum:%s",p0->phnum);printf("\temail:%s\n",p0->email);p0=p0->next; /************** p0向后移一个位置*****************/ }}⑷删除模块删除一个人的信息相当于是删除链表中的一个结点。

相关文档
最新文档