通讯录管理系统

合集下载

通讯录管理系统设计报告

通讯录管理系统设计报告

通讯录管理系统设计报告一、引言通讯录在日常生活中扮演着重要的角色,用来存储和管理各种联系人信息,方便人们随时找到需要联系的人或组织。

随着移动互联网的普及,通讯录的管理变得更加便捷和高效。

为了提高通讯录的管理效率,我们设计并开发了一款通讯录管理系统。

二、系统概述通讯录管理系统是一个基于Web的应用程序,用户可以通过浏览器访问系统,进行通讯录的管理操作。

系统主要包括以下功能:•用户登录与注册:用户可以注册新账号,并通过账号密码登录系统。

•联系人管理:用户可以添加、编辑、删除联系人信息,包括姓名、电话号码、邮箱等。

•分组管理:用户可以创建分组并将联系人归类到不同分组。

•搜索功能:用户可以通过关键词搜索联系人信息。

•导出和导入功能:用户可以将联系人信息导出为Excel表格,并可以通过Excel文件导入联系人到系统中。

三、系统架构通讯录管理系统采用了前后端分离的架构,前端使用Vue.js框架开发,提供友好的用户界面;后端使用Node.js和Express框架搭建RESTful API,负责数据的存储和管理。

系统中的数据存储在MySQL数据库中,用户的密码使用bcrypt进行加密存储,确保用户信息的安全性。

同时,系统对用户权限进行了细致管理,保障用户在系统中的数据安全。

四、系统界面系统的界面设计简洁直观,用户可以轻松进行操作。

主要包括登录页面、通讯录首页、联系人管理页面、分组管理页面等。

用户登录页面:[登录页面截图]通讯录首页:[通讯录首页截图]联系人管理页面:[联系人管理页面截图]五、系统特色•简洁高效:系统操作简单直观,提供了快速的联系人管理功能。

•个性化定制:用户可以根据自己的需求创建分组,快速查找联系人。

•数据安全:采用了加密技术和权限管理,确保用户数据的安全性。

•导入导出功能:支持Excel文件导入导出,方便用户管理大批量联系人信息。

六、未来展望通讯录管理系统将继续进行优化和迭代,引入更多智能化功能,如联系人推荐、消息提醒等,提升用户体验。

数据结构 通讯录管理系统

数据结构 通讯录管理系统

数据结构通讯录管理系统数据结构通讯录管理系统1、引言1.1 目的和范围本文档旨在详细描述一个通讯录管理系统的设计和实现,以便帮助开发人员了解系统的功能和特性。

本系统可以用于存储和管理个人联系信息,实现添加、删除、修改和查询等功能。

1.2 定义、缩略语和缩写词- 通讯录:存储个人联系信息的系统。

- 系统:通讯录管理系统。

2、总体概述2.1 系统背景通讯录管理系统是为了方便用户管理个人联系信息而开发的软件。

它提供了一系列功能,包括添加联系人、删除联系人、修改联系人信息以及搜索联系人等。

该系统旨在提供一个高效、方便和可靠的通讯录管理解决方案。

2.2 产品功能- 添加联系人:用户可以添加新的联系人,并输入其姓名、方式号码、电子邮箱等信息。

- 删除联系人:用户可以删除已经存在的联系人。

- 修改联系人信息:用户可以修改已经存在的联系人的姓名、方式号码、电子邮箱等信息。

- 搜索联系人:用户可以根据姓名、方式号码等信息搜索联系人。

- 显示所有联系人:系统可以显示所有已经存在的联系人。

2.3 用户特点通讯录管理系统的主要用户群体为个人用户,他们需要管理自己的联系人信息。

这些用户对于系统的易用性、稳定性和功能性要求较高,因此系统需要提供简单直观的用户界面,并保证操作的正确性和数据的安全性。

3、系统需求3.1 功能需求3.1.1 添加联系人- 用户可以输入联系人的姓名、方式号码、电子邮箱等信息进行添加。

- 系统应该对输入进行合法性检查,确保输入的信息符合格式要求。

- 添加联系人后,系统应该将联系人信息保存到数据库中。

3.1.2 删除联系人- 用户可以删除已经存在的联系人。

- 删除联系人后,系统应该将联系人信息从数据库中删除。

3.1.3 修改联系人信息- 用户可以修改已经存在的联系人的姓名、方式号码、电子邮箱等信息。

- 系统应该对输入进行合法性检查,确保输入的信息符合格式要求。

- 修改联系人信息后,系统应该将修改后的联系人信息保存到数据库中。

学生通讯录管理系统问题描述 概述及解释说明

学生通讯录管理系统问题描述 概述及解释说明

学生通讯录管理系统问题描述概述及解释说明1. 引言1.1 概述在现代教育环境中,学生通讯录管理系统作为一个重要的信息管理工具发挥着重要作用。

学生通讯录管理系统通过集成和管理学生的联系方式,提供了便捷而高效的沟通渠道,帮助教师、家长和学生之间更好地交流和合作。

然而,在当前的学生通讯录管理系统中,仍存在一些问题需要解决。

1.2 文章结构本文将以学生通讯录管理系统问题描述为主线,分析当前存在的问题,并进行功能需求分析和技术需求分析。

随后,将介绍解决这些问题的系统设计思路,并详细说明实现方法与技术选型。

最后,将展望该系统的预期效果与优化方向,并总结回顾问题与解决方案。

同时还将对学生通讯录管理系统的发展前景进行展望,并探讨可能遇到的挑战及应对策略。

1.3 目的文章旨在全面深入地分析学生通讯录管理系统存在的问题,并针对这些问题提出相应解决方案。

通过明确功能需求和技术需求,可以有效改进学生通讯录管理系统并提升其性能和用户体验。

同时,对该系统的发展前景进行展望,可以为相关研究和实践提供有价值的参考。

此外,对可能遇到的挑战及应对策略的探讨也能为系统的进一步发展和改善提供指导。

通过本文的撰写与阐述,旨在促进学生通讯录管理系统的健康发展并推动教育信息化建设。

2. 学生通讯录管理系统问题描述:2.1 当前存在的问题:学生通讯录管理系统是一种用于记录学生联系信息的应用程序。

然而,在当前的系统中,存在一些问题需要解决。

首先,当前的系统使用传统的纸质或电子表格来管理学生的联系信息。

这种方式存在很多弊端,包括信息难以集中存储和查找困难。

纸质通讯录易于丢失和误用,电子表格则需要手动编辑和更新。

这些都导致了信息不准确、不及时和难以管理。

其次,当前系统对于数据的搜索功能不够灵活和高效。

当需要查找某个特定学生的联系信息时,用户可能需要浏览整个通讯录或进行复杂的筛选操作。

这样会花费大量时间和精力,并且增加了出错的风险。

另外,当前系统缺乏有效的权限控制机制。

通讯录管理系统

通讯录管理系统

通讯录管理系统绪论在时代不断发展的今天,很多东西都在不断的进步,当然,信息的发展也在不断的随着进步起来,因此,我们所要研究的课题信息管理系统也在向我们缓缓走来,并且涉及到很多的领域,以至于涉及到很多的方面,从大的来讲可以涉及到公司企业的系统的管理,从小的方面来讲可以涉及到单个人的联系方式的管理等等,并且随着时代不断的发展,还会涉及到更多的领域。

1引言1.1课题简介:所谓通讯录管理系统,其实就是在世界上的每个社会上的成员作为用户来说,在他的通讯录的联系人存储中保存他所有联系人的信息的管理,以及时一个管理信息的系统。

它所管理的内容对于每一个用户来说都是非常非常重要的,所以,这个所谓的通讯录管理系统必须能够具有很多很强的功能,其中包括对我们所需要的信息必须是完整的,当然对我们也必须是非常有用的,并且它还应该具有随时并且很快查询出我们所要信息的功能,从而用户使用的一个合理的,提供了很大的方便。

1.2开发的意义:当今我们面临着科技的一直提高,计算机科学技术已经逐渐趋向成熟,网上通讯工具的迅速发展,它的功能如此强大以至于已经被人们深刻认识,并且它已经逐渐开始走进人类的社会,与此同时它的地位也在很多的领域发挥着很到的作用。

单纯的从计算机这个方面来说,由于这个领域还很小,所以要使用它来实现我们所需的铜须路的管理,具有太多别的方式不能达到的优点,其中这些优点包括很快的检查速度、便利的查找、存储的容量要足够大、意思安全性也要很强、但所需的费用必须合理,尽可能的很低等等。

这些优点使得通讯录管理的效率得到了很大的提高。

所以从以上的分析可以看出,要开发这样一套软件来管理我们的系统这件事是很有必要的,因此,我感觉这也是锻炼我在将理论运用到现实社会生活中的一次实际的考验,有很大的意义。

我也希望通过本次的涉及能让我达到学为所用,从而让我的学习成为有意义,成为有价值的一种时间上的付出。

1.3开发环境及实现技术1.3.1开发环境:Visual studio 2005,SQL severe1.3.2开发工具简介:Visual Studio 2005(以下简称为VS 2005)是一种很新的开发工具,并且这种工具是由美国的微软公司开发出来的,这种最新的版本具有很多的全新功能,其中这种新的功能体现在很多方面在语言方面的强化,并且它的贡献也有很多,其中更好的执行就是它所提供的一种效能,并且在安全这方面也有了很大提高,他已经成为一种编程环境,并且这种环境的功能是很强大的,也是具有很高端效率的,提供了一种统一的并且集成的环境,它还能够支持很多种编程语言在同样的开发环境编写新程序并且对所编写的应用程序进行调试并加以部署。

学生通讯录管理系统数据结构课程设计

学生通讯录管理系统数据结构课程设计

学生通讯录管理系统数据结构课程设计一、需求分析在学生通讯录管理系统中,我们需要实现以下功能:1.学生信息的录入与管理2.通讯录信息的增删查改3.数据的持久化存储二、系统设计1. 数据结构设计为了实现学生通讯录管理系统的功能,我们需要设计以下数据结构:•学生信息结构体包括学号、姓名、性别、年龄等字段•通讯录信息结构体包括联系人姓名、电话号码、邮箱等字段2. 算法设计2.1 添加学生信息当用户选择添加学生信息时,系统会要求用户输入学号、姓名、性别、年龄等信息,然后将这些信息存储在学生信息的数据结构中。

void addStudentInfo() {// 读取用户输入的学生信息// 将学生信息存储在学生信息结构体中}2.2 修改通讯录信息用户可以根据联系人姓名查找通讯录信息,并进行修改操作,比如修改电话号码、邮箱等内容。

void modifyContactInfo() {// 根据联系人姓名查找通讯录信息// 用户进行修改操作}2.3 删除通讯录信息用户可以根据联系人姓名删除通讯录信息。

void deleteContactInfo() {// 根据联系人姓名删除通讯录信息}3. 数据存储设计为了持久化存储数据,我们可以选择使用文件存储或数据库存储。

在本系统中,我们选择文件存储的方式,数据以文本的形式存储在文件中。

三、系统实现通过以上设计,我们可以开始实现学生通讯录管理系统。

在实现过程中,我们需要注意保证数据结构的正确性和数据操作的合法性,从而确保系统的稳定性和可靠性。

四、总结通过本次数据结构课程设计,我们深入了解了学生通讯录管理系统的实现原理和功能设计。

在接下来的学习中,我们将继续努力提升自己的编程能力,不断完善系统的功能和性能,为实现更多复杂系统打下坚实的基础。

通讯录管理系统

通讯录管理系统

通讯录管理系统一、引言随着科技的不断发展,电子设备的运用愈发广泛,通讯工具也从最早的电话、传真、邮件演变到如今的移动电话、微信等APP软件。

同时,人们通讯的宽带和速度也得到了很大的进步,这里提到的速度指的是通讯的速度和传输的速度。

在日常生活中,人们需要不断联系和交流,而一个完善的通讯管理系统能够辅助人们做到这一点。

二、通讯录管理系统的概述通讯录管理系统是一个集成化的系统,它包括通讯录的建立、搜索、编辑、删除等基本功能,同时也有通讯录的导入、导出、备份、恢复等高级功能。

对于个人而言,通讯录管理系统是一个非常有用的工具,可以让我们对日常生活中的联系人实现精细化管理。

对于企业和组织而言,通讯录管理系统则是一个不可或缺的管理工具,它可以让企业和组织对内外联系人进行统一管理,提高工作效率,实现快速响应与灵活沟通。

三、通讯录管理系统的需求分析1. 用户管理需求通讯录管理系统的用户一般包括个人、企业和组织等,他们的管理需求有所不同,例如个人通讯录管理系统需要支持用户自主导入、导出、备份、恢复,企业通讯录管理系统需要支持管理员进行用户管理和权限控制等。

2. 数据整合需求通讯录管理系统需要支持将人员信息从不同的来源整合到一个集中的库中,这可以通过数据导入、数据同步、数据抓取等方式实现。

3. 可扩展性和可定制化需求通讯录管理系统应该具有良好的可扩展性和可定制化的能力,以满足企业和组织不同的需求。

4. 安全性需求通讯录管理系统需要具有安全性,防止数据泄漏和恶意攻击等安全问题,同时还要实现数据备份、数据恢复等功能。

五、通讯录管理系统的设计1. 系统结构设计通讯录管理系统应该是一个分层结构的系统,分为表示层、业务层、数据访问层和数据存储层四个层级。

其中,表示层为用户提供了用户界面,业务层处理用户请求,数据访问层为业务层提供数据访问接口,数据存储层则负责数据存储管理。

2. 系统模块设计通讯录管理系统主要包括三个模块:用户管理模块、通讯录管理模块和数据备份恢复模块。

C#通讯录管理系统课程设计

C#通讯录管理系统课程设计
项目目标:通过项目设计,提高学生的编程能力、团队协作能力和解决问题的能力。
项目目标
掌握数据库设计的基本原理 和方法
理解面向对象编程的思想和 方法
掌握C#编程语言的基本语 法和特性
掌握Windows Forms应 用程序的开发方法和技巧
掌握软件工程和项目管理的 基本知识和技能
提高团队协作和沟通能力, 培养解决问题的能力
联系人分组:工作、生活、 学习等
联系人搜索:根据姓名、 电话、地址等搜索联系人
联系人管理:添加、修改、 删除、查询等操作
数据备份与恢复:定期备 份数据,防止数据丢失
系统架构设计
架构设计原则:高内聚、低耦 合、可扩展、可维护
架构设计方法:分层架构、模 块化设计、服务化设计
架构设计要素:用户界面、业 务逻辑、数据存储、通信协议
架构设计工具:UML、Visio、 PowerDesigner等
数据库设计
数据库类型:SQL Server 数据库结构:用户表、联系人表、分组表等 数据库字段:用户名、密码、联系人姓名、电话、邮箱等 数据库操作:增删改查、排序、筛选等
界面设计
主界面:显示联系人列表、搜索框、添加联系人按钮等 联系人详情界面:显示联系人信息、编辑按钮、删除按钮等 添加联系人界面:输入联系人姓名、电话、邮箱等信息 编辑联系人界面:修改联系人信息 删除联系人界面:确认删除联系人 搜索联系人界面:输入关键词,显示符合条件的联系人列表
单元测试
单元测试的概念:对软件中的最 小可测试单元进行测试
单元测试的方法:白盒测试、黑 盒测试、灰盒测试
添加标题
添加标题
添加标题
添加标题
单元测试的目的:验证软件单元 的功能是否正确
单元测试的工具:NUnit、JUnit、 Te s t N G 等

通讯录管理系统毕业设计(两篇)2024

通讯录管理系统毕业设计(两篇)2024

引言概述:通讯录管理系统是一种用于管理联系人信息的软件,它能够为用户提供便捷的联系人管理和信息查询功能。

本文将继续介绍通讯录管理系统的设计和实现,重点关注系统的用户界面设计、数据存储与管理、通讯录的分类与搜索功能、用户权限管理以及通讯录系统的扩展与升级。

正文内容:1.用户界面设计1.1设计原则:用户友好性、易用性和美观性原则1.2主界面设计:主界面布局、功能模块展示、导航设计1.3交互设计:交互方式、操作流程、反馈机制1.4响应式设计:适配多种设备和屏幕分辨率2.数据存储与管理2.1数据库设计:确定实体和属性、建立表结构、定义关系2.2数据库连接:连接数据库、读写操作、异常处理2.3数据备份与恢复:数据备份策略、备份文件管理、数据恢复机制2.4数据安全性:权限控制、数据加密、数据完整性3.通讯录的分类与搜索功能3.1通讯录分类:基本分类和用户自定义分类3.2联系人添加与编辑:输入验证、字段定义、数据关联3.3联系人查询:关键字查询、条件过滤、多条件组合查询3.4联系人导入导出:支持多种数据格式、数据匹配与转换、导入导出策略3.5通讯录分享与同步:用户权限设置、跨设备同步、冲突解决4.用户权限管理4.1用户注册与登录:用户信息获取、身份验证、登录状态管理4.2用户权限分配:管理员与普通用户权限区分、权限控制细化4.3用户信息管理:个人信息修改、密码重置、账号注销4.4安全性保护:登录失败锁定、密码加密、会话管理5.通讯录系统的扩展与升级5.1模块化设计:可插拔式功能模块、模块间接口定义5.2扩展性设计:支持插件开发、动态加载与卸载5.3性能优化:数据索引优化、查询优化、缓存机制5.4系统升级:版本管理、更新提示、升级策略总结:通过上述的详细阐述,我们可以看到,通讯录管理系统涵盖了用户界面设计、数据存储与管理、通讯录的分类与搜索功能、用户权限管理以及通讯录系统的扩展与升级等多个关键领域。

在该系统的设计过程中,我们需要重点关注用户友好性、数据安全性和系统的可扩展性。

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

C语言微机技能训练学生通讯录管理系统学生姓名方思挺学号0408120206系别信息与电子系专业班级自动化1202完成日期2014年5月23日目录一.课程设计题目 (2)二.功能描述 (2)三.概要设计 (2)3.1 总体模块 (2)3.2 刷新信息模块 (3)3.3 查询信息模块 (3)3.4 修改信息模块 (4)3.5 增加信息模块 (4)3.6 删除信息模块 (5)3.7 显示信息模块 (5)3.8 保存信息模块 (6)四.详细设计 (6)4.1 增加信息模块 (6)4.2 修改信息模块 (6)4.3 查找信息模块 (6)4.4 删除信息模块 (6)4.5 保存信息模块 (6)4.6 显示信息 (6)五.效果图 (7)六.心得体会 (11)七.附录 (12)八.参考文献 (19)一.课程设计题目:学生通讯录管理系统功能描述:建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子邮箱等;能够提供添加、删除和修改通讯录信息的功能;能够提供按姓名或电话等查询;将通讯录保存在文件中;能够按表格方式输出通讯录信息。

二.概要设计:2.1总体框架:通讯录管理系统:1、录入通讯录信息2、修改通讯录信息3、查询通讯录信息4、浏览通讯录信息5、增加通讯录信息6、推出系通讯录统2.2模块设计模块一:头文件,变量定义,函数的声明对系统所使用的变量进行定义,对函数进行声明模块二:录入通讯录信息声明函数void readfile(),说明一个文件指针FILE *fp 打开文件"student.txt"模块三:通讯录信息的查找声明void seek()为查找函数,通过switch(item)设定用学号查找,用姓名查找两个分支模块四:通讯录信息的修改声明void modify()为学生信息修改函数,通过switch(item)设定所要修改的项目模块五:通讯录信息按学号排序声明void sort()将录入通讯录信息系按升序排列,用的是“冒泡排序法”实现排序模块六:加通讯录信息声明void insert()插入通讯录信息,先通过判断通讯录是否存在,若否则继续输入,若是跳出,重新循环模块七:通讯录信息声明void del()实现通讯录信息删除,通过学号对比确定要删除的信息,然后用后一个替换掉。

模块八:示学生信息通过display()函数输出通讯录信息模块九;存信息通过fp=fopen("student.txt","w");写入信息模块十:界面菜单通过switch(num)调用,以上各函数,实现功能2.3主函数主函数设计要求简洁,只提供部分提示语和函数的调用【程序】图1. 主函数流程图void menu()/* 界面*/{ int num;printf(" \n\n 自动化1202通讯录管理系统\n\n");printf(" ***************** \n\n");printf(" * 制作人:方思挺* \n \n");printf(" ***************** \n\n");printf("*********************系统功能菜单************************ \n"); printf(" ---------------------- ---------------------- \n");printf(" * 1.刷新学生信息* * 2.查询学生信息* \n");printf(" * 3.修改学生信息* * 4.增加学生信息* \n");printf(" * 5.按学号删除信息* * 6.显示当前信息* \n");printf(" * 7.保存当前学生信息* * 8.退出系统* \n");printf(" ---------------------- ---------------------- \n"); printf("请选择菜单编号:");scanf("%d",&num);switch(num){case 1:readfile();break;case 2:seek();break;case 3:modify();break;case 4:insert();break;case 5:del();break;case 6:display();break;case 7:save();break;case 8:k=0;break;default:printf("请在1-8之间选择\n");}}三.效果图主界面测试数据当选择4——增加学生信息时,出现对话框,先输入增加的数量。

再按要求依次输入如图按6查询。

如图按3修改信息,然后再按6查询,如图修改成功删除信息,先选择5,按学号删除,如图按6查询如图学号为05的删除成功四.心得体会:1,第一次输入的数据到了第二次就不能够保存,可能是编写保存的函数没有编到位2,对于显示时不能每一次操作之后都换一个屏,使得众多的操作都集中在一个屏上,显得不美观。

3. 通过C课程设计这门课,使我对《C语言》这门课程有了更深一步的了解。

它是计算机程序设计的重要理论技术基础,在我们信息科学与工程学院自动化专业的学习中占据着十分重要的地位。

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

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

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

在遇到不懂的时候,要善于请教他认,不要认为自己什么都懂,这种想法是极其错误的,只有不断吸收他人好的方面,充实自己,自己才能不断的进步。

五.附录:#include<stdio.h>#include<stdlib.h>#include<string.h>#define BUFLEN 100#define LEN 15#define N 100struct record /*结构体*/{char code[LEN+1]; /* 学号 */char name[LEN+1]; /* 姓名 */int age; /* 年龄 */char sex[3]; /* 性别 */char time[LEN+1]; /* 出生年月 */char add[30]; /* 家庭地址 */char tel[LEN+1]; /* 电话号码 */char mail[30]; /* 电子邮件地址 */}stu[N];int k=1,n,m; /* 定义全局变量 */void readfile();/* 函数声明 */void seek();void modify();void insert();void del();void display();void save();void menu();int main(){while(k)menu();system("pause");return 0;}void readfile()/* 建立信息 */{char *p="student.txt";FILE *fp;int i=0;if ((fp=fopen("student.txt","r"))==NULL){printf("Open file %s error! Strike any key to exit!",p);system("pause");exit(0);}while(fscanf(fp,"%s %s%d%s %s %s %s %s",stu[i].code,stu[i].name,& stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail)==8) {i++; i=i;}fclose(fp);n=i;printf("录入完毕!\n");}void seek() /*查找*/{int i,item,flag;char s1[21]; /* 以姓名和学号最长长度+1为准 */printf("------------------\n");printf("-----1.按学号查询-----\n");printf("-----2.按姓名查询-----\n");printf("-----3.退出本菜单-----\n");printf("------------------\n");while(1){printf("请选择子菜单编号:");scanf("%d",&item);flag=0;switch(item){ case 1:printf("请输入要查询的学生的学号:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].code,s1)==0){flag=1;printf("学号姓名年龄性别出生年月地址电话E-mail\n");printf("--------------------------------------------------------------------\n");printf("%6s %7s %6d %5s %9s %8s %10s %14s\n",stu[i].code,stu[i].n ame,stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);}if(flag==0)printf("该学号不存在!\n"); break;case 2:printf("请输入要查询的学生的姓名:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].name,s1)==0){flag=1;printf(" 学号姓名年龄性别出生年月地址电话 E-mail\n");printf("--------------------------------------------------------------------\n");printf("%6s %7s %6d %5s %9s %8s %10s %14s\n",stu[i].code,stu[i].n ame,stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);}if(flag==0)printf("该姓名不存在!\n"); break;case 3:return;default:printf("请在1-3之间选择\n");}}}void modify() /*修改信息*/{int i,item,num;char sex1[3],s1[LEN+1],s2[LEN+1]; /* 以姓名和学号最长长度+1为准 */ printf("请输入要要修改的学生的学号:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].code,s1)==0) /*比较字符串是否相等*/num=i;printf("------------------\n");printf("1.修改姓名\n");printf("2.修改年龄\n");printf("3.修改性别\n");printf("4.修改出生年月\n");printf("5.修改地址\n");printf("6.修改电话号码\n");printf("7.修改E-mail地址\n");printf("8.退出本菜单\n");printf("------------------\n");while(1){printf("请选择子菜单编号:");scanf("%d",&item);switch(item){case 1:printf("请输入新的姓名:\n");scanf("%s",s2);strcpy(stu[num].name,s2); break;case 2:printf("请输入新的年龄:\n");scanf("%d",&stu[num].age);break;case 3:printf("请输入新的性别:\n");scanf("%s",sex1);strcpy(stu[num].sex,sex1); break; case 4:printf("请输入新的出生年月:\n"); scanf("%s",s2);strcpy(stu[num].time,s2); break;case 5:printf("请输入新的地址:\n");scanf("%s",s2);strcpy(stu[num].add,s2); break;case 6:printf("请输入新的电话号码:\n"); scanf("%s",s2);strcpy(stu[num].tel,s2); break;case 7:printf("请输入新的E-mail地址:\n"); scanf("%s",s2);strcpy(stu[num].mail,s2); break;case 8:return;default:printf("请在1-8之间选择\n");}}}void sort()/*按学号排序*/{int i,j,*p,*q,s;char temp[10];for(i=0;i<n-1;i++){for(j=n-1;j>i;j--)if(strcmp(stu[j-1].code,stu[j].code)>0) {strcpy(temp,stu[j-1].code);strcpy(stu[j-1].code,stu[j].code); strcpy(stu[j].code,temp);strcpy(temp,stu[j-1].name);strcpy(stu[j-1].name,stu[j].name); strcpy(stu[j].name,temp);strcpy(temp,stu[j-1].sex);strcpy(stu[j-1].sex,stu[j].sex);strcpy(stu[j].sex,temp);strcpy(temp,stu[j-1].time);strcpy(stu[j-1].time,stu[j].time); strcpy(stu[j].time,temp);strcpy(temp,stu[j-1].add);strcpy(stu[j-1].add,stu[j].add);strcpy(stu[j].add,temp);strcpy(temp,stu[j-1].tel);strcpy(stu[j-1].tel,stu[j].tel);strcpy(stu[j].tel,temp);strcpy(temp,stu[j-1].mail);strcpy(stu[j-1].mail,stu[j].mail); strcpy(stu[j].mail,temp);p=&stu[j-1].age;q=&stu[j].age;s=*q;*q=*p;*p=s;}}}void insert() /*插入函数*/{int i=n,j,flag;printf("请输入待增加的学生数:\n");scanf("%d",&m);do{flag=1;while(flag){flag=0;printf("请输入第 %d 个学生的学号:\n",i+1);scanf("%s",stu[i].code);for(j=0;j<i;j++)if(strcmp(stu[i].code,stu[j].code)==0){printf("已有该学号,请检查后重新录入!\n");flag=1;break; /*如有重复立即退出该层循环,提高判断速度*/}}printf("请输入第 %d 个学生的姓名:\n",i+1);scanf("%s",stu[i].name);printf("请输入第 %d 个学生的年龄:\n",i+1);scanf("%d",&stu[i].age);printf("请输入第 %d 个学生的性别:\n",i+1);scanf("%s",stu[i].sex);printf("请输入第 %d 个学生的出生年月:(格式:年.月)\n",i+1); scanf("%s",stu[i].time);printf("请输入第 %d 个学生的地址:\n",i+1);scanf("%s",stu[i].add);printf("请输入第 %d 个学生的电话:\n",i+1);scanf("%s",stu[i].tel);printf("请输入第 %d 个学生的E-mail:\n",i+1);scanf("%s",stu[i].mail);if(flag==0){i=i;i++;}}while(i<n+m);n+=m;printf("录入完毕!\n\n");sort();}void del(){int i,j,flag=0;char s1[LEN+1];printf("请输入要删除学生的学号:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].code,s1)==0){flag=1;for(j=i;j<n-1;j++)stu[j]=stu[j+1];}if(flag==0)printf("该学号不存在!\n");if(flag==1){printf("删除成功,显示结果请选择菜单6\n");n--;}}void display(){int i;printf("所有学生的信息为:\n");printf("学号姓名年龄性别出生年月地址电话E-mail\n");printf("--------------------------------------------------------------------\n");for(i=0;i<n;i++){printf("%6s %7s %5d %5s %9s %8s %10s %14s\n",stu[i].code,stu[i].n ame,stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);}}void save(){int i;FILE *fp;fp=fopen("student.txt","w"); /*写入*/for(i=0;i<n;i++){fprintf(fp,"%s %s %d %s %s %s %s %s\n",stu[i].code,stu[i].name,st u[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);}fclose(fp);}void menu()/* 界面 */{int num;printf(" \n\n 自动化1202学生信息管理系统\n\n");printf(" ------------------------ \n\n");printf(" * 制作人:方思挺 * \n \n");printf(" ------------------------- \n\n");printf("——————————————系统功能菜单—————————————— \n");printf(" ---------------------- ----------------------\n");printf(" * 1.刷新学生信息 * * 2.查询学生信息 *\n");printf(" * 3.修改学生信息 * * 4.增加学生信息 *\n");printf(" * 5.按学号删除信息 * * 6.显示当前信息 *\n");printf(" * 7.保存当前学生信息 * * 8.退出系统 *\n");printf(" ---------------------- ----------------------\n");printf("请选择菜单编号:");scanf("%d",&num);switch(num){case 1:readfile();break;case 2:seek();break;case 3:modify();break;case 4:insert();break;case 5:del();break;case 6:display();break;case 7:save();break;case 8:k=0;break;default:printf("请在1-8之间选择\n");}}六.参考文献:<<c语言程序设计>> 主编陈世清副主编李杰君浙江大学出版社2012.12方思挺。

相关文档
最新文档