学生通讯录

学生通讯录
学生通讯录

JIU JIANG UNIVERSITY

程序设计实习(设计)

题目学生通讯录系统

院系信息科学与技术学院

专业计算机科学与技术

姓名熊小刚

班级信A0611班

学号11号

二零零八年十一月

班级学生通讯录系统

一.概要分析

随着社会的不断发展,人们的生活变的越来越富裕了,但同时也越来越忙碌了,每个人每天都在为各自的生活不停的工作。在这种环境下,进入21世纪以来,中国大学也发生了翻天地覆的变化,大学生的生活更是丰富多彩了,大学生也忙碌起来了,每天除了学习外,也有很多课外活动,每个学生都有自己的个人私事处理,这样同学们经常不在一起,有时有重要或大事情发生很难取得联系相互通知。

为了解决上述的问题,方便学生与学生之间、学生与老师之间的相互联系,把学生的基本信息组织起来一起进行统一管理,以便在遇到紧急情况下能最快的与学生取得联系,由此想到做一个简单的班级学生通讯录系统的必要。该系统将运用C语言的基本知识,具体将通过对C语言中基本数据类型、数据的输入和输出、数组、结构体、指针以及链表等语句的应用设计出一个简单程序来实现对学生基本信息的管理。

在程序的界面里面可以选择添加、删除、查询、修改和打印输出学生的信息,其中删除、查询、修改学生信息都通过对学生学号的选择来实现,本程序能基本满足简单学生信息管理以及通讯联系的使用需要,但功能还不够齐全,界面还不够美观,我会继续努力学习,改正程序中存在的不足。

二.系统需求

1. 使用范围需求

该系统是根据班级学生信息制作的通讯录系统,主要便于同学之间的联系,由班长或班主任(管理员)设置,不过该系统很容易改造为更大空间的对学生信息的管理,比如增加考试成绩,荣誉与记过处分的记录管理,为参观提供方便。

2.功能需求

添加、删除、查询、修改和打印输出学生信息(保证学生信息能全部正确输入) ,其中这些功能的实现都将运用链表知识来实现,使用完后能正确退出本系统。

3.性能需求

虽然系统的数据量不是很大,但是也要保证数据的长期完整性和安全性。系统操作简单易行,查询灵活方便。通过系统的实现,可为同学或老师们提供查询查询功能以获得学生的信息。

4.系统平台需求

操作系统:Windows系列

开发工具:Visual C++ 6.0

Visual C++ 6.0是Microsoft公司推出的功能最强大、最复杂的语言产品

之一,它是目前为止在Windows环境下进行大型软件开发的首选。其具有如下特点:

(1)Visual C+ + 的语法符合ANSL C+ + 标准,并在此基础上针对Windows 操作系统增加了一些语句;

(2)集成了MFC(Microsoft Foundation Class)类库,MFC封装了Windows API 函数和消息,使程序员可以使用MFC高效率地开发各种应用程序;

(3)提供了MFC AppWizard,可方便地生成程序框架;

(4)提供了基于MFC的ClassWizard,通过它可以轻松地完成对各种MFC类的使用与维护。

Visual C++ 6.0作为Visual Studio家族中的一员,是Microsoft公司以C++语言为基础开发的可视化集成开发工具,与其他编程语言Visual Basic 6.0、Visual ForPro等一起,成为广大程序员喜爱的开发平台。

5.系统主界面需求

要求提供一个界面供管理员来选择以实现对学生基本信息的添加、删除、查询、修改等功能,也就是说提供一个菜单供管理员或用户选择,菜单要求尽量简洁、直观、美观。本系统最终主界面如下:

6.数据流图

由用户选择选择输入学号查询学生信息,通过查询系统,进入处理,最终输出用户想要的信息。该数据流图如下图所示:

系统管理员根据权限成功登录,根据需要对数据进行添加和修改或删除。成功修改后,可对数据保存。管理员模块数据流图如下图所示:

信息文件

三.系统设计

经过分析,对学生通讯录系统流程整理,得出其使用过程如下:

进入系统之后,来访者根据主界面菜单进行选择来实现其相应功能,输入相应的数字选项将会出现其进一步的界面菜单和对话框。

1.程序流程图

程序流程图如图3-1所示。首先登录系统,如果是管理员的话要进行身份验证,验证成功后进入管理员模块。管理员可以对系统内部数据进行修改、添加,并且可以控制整个系统的运行状态决定是否退出本系统。如果你是一般用户,则不需要进行身份验证,直接进入一般用户模块。选择输入,通过学生学号查询,你将得到你所需要查询的相关信息。一般用户只能进行查询,不能对数据进行添加、删除、修改。

2.系统结构图

根据功能描述,学生通讯录系统可以分为2个主要功能模块,用户模块和管理员模块,此系统结构图如图3-2所示。管理员模块的实际主要功能是对际情况有所改变的数据进行修改和添加新数据,并保证其及时性和准确性。用户查询模块的主要功能是用户输入要查询学生信息的学号,则提供对应学生的相应信息,包括学生的学号,姓名,性别,年龄,电话号码。用户还可以选择要不要打印出所查询的所有信息功能。

图3-1 程序流程图

图3-2 程序结构图

四. 重要算法描述及部分代码

1.用结构体描述学生信息,结构体是由若干成员组成,各成员可有不同的类型。本系统学生信息可用结构体描述为:

typedef struct Student//学生信息

{

signed short id; //学号

char name[11]; //姓名

char sex[7]; //性别

signed short age; //年龄

char telNum[16]; //电话号码

}Student;

2.主要函数和数据的声明,其中对学生信息的查询,添加,修改,删除用链表实现,链表是最简单也是最常见的一种动态数据结构,链表中每一个元素称为结点,每个结点都应包括两部分:一是用户需要用的实际数据,二是下一个结点的地址。

void printMenu(); //打印菜单

void printBye(); //打印结束语

void printList(); //打印所有学生信息

void printStudent(Student st);//打印学生信息

Node* lookupNode(signed short stid);//根据学号查询学生信息。

int addNode(Student st); //添加学生信息。成功返回链表长度。内存分配失败-1;

//信息重复0

int deleteNode(signed short stid); //根据学号删除学生信息。成功返回链表长度;

//未找到-1

int updateNode(Student st);//根据学号修改学生信息成功返回链表长度;未找到0

3.主要模块函数的定义,以实现系统的功能和对数据的操作。

//查询功能的实现

Node* lookupNode(signed short stid)

{

Node* temp=begin->next;

while (temp)

{

if (temp->data.id==stid)

return temp;

temp=temp->next;

}

return NULL;

}

//添加学生信息功能的实现

int addNode(Student st)

{

if (lookupNode(st.id))

return 0;

Node* temp=(Node*)malloc(sizeof(Node)); if (!temp)

return -1;

temp->data=st;

temp->next=begin->next;

begin->next=temp;

return ++len;

}

//删除功能的实现

int deleteNode(signed short stid)

{

Node* temp=begin;

Node* pos=NULL;

while (temp->next)

{

if (temp->next->data.id==stid)

{

pos=temp->next;

temp->next=pos->next;

free(pos);

return --len;

}

temp=temp->next;

}

return -1;

}

//修改功能的实现

int updateNode(Student st)

{

Node* temp=lookupNode(st.id);

if (!temp)

return 0;

temp->data=st;

return len;

}

4.主程序也就是main()函数的实现,是系统的核心部分,其中用到大量C语基本语句,如循环语句、switch语句、break语句以及输入、输出等语句。最主要的是它可以实现对各单独模块函数的调用以实现系统具体的功能,它首先调用系统菜单以供用户选择,然后main()函数将根据用户对菜单的选择继续调用其他函数,main()函数实现到以下代码部分就可以输出主界面菜单了。

void main()

{

//初始化链表。

begin=(Node*)malloc(sizeof(Node));

begin->next=NULL;

printf("----------------------------------------------------------------------------\n");

printf("--- 信A0611班级信息管理系统---\n");

printf("--- 2008-11-20 ---\n");

printf("----------------------------------------------------------------------------\n");

printf("||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||\n");

printMenu(); //调用printMenu()函数,显示菜单

……

}

主界面菜单图如下:

用户根据菜单选择,例如选择1.增加学生信息,将会出现以下界面:

输入一个学生信息后,又提示你输入下一个新学号,这时用户如果不想在输入新学号,而想实现其他选择,则输入0即可,输入0将会回到主菜单(系统有提示),用户在再输入对应选择项目号,main()函数就调用对应的函数模块来实现其功能。

五.系统测试

1.系统测试概述

系统测试是软件的一个重要的组成部分。软件测试在软件生命周期里横跨两个阶段。通常在编写出每个模块之后就对它做必要的测试。软件测试的目的与其它阶段的目的相反。软件测试的目的是发现错误。一般说来,测试不是由编写程序本人进行,它由专门的人员对它进行测试。软件一般有两种方法:黑盒测试和白盒测试。黑盒测试把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。白盒测试是把程序看成一个透明的盒子里,也就是完全了解程序的结果和处理过程。软件测试过程一般分成以下几个步骤:

模块测试:保证每个模块作为一个单元能正确运行,所以模块测试通常称为单元测试。在这个测试步骤中所发现的往往是编码和详细设计的错误。

子系统测试:把经过单元测试的模块放在一起形成一个子系统来测试。模块相互间的协调和通信是这个测试过程中的主要问题,因此这个步骤着重测试模块的接口。

系统测试:把经过测试的子系统装配成一个完整的系统来测试。

验收测试:把软件系统作为单一的实体进行测试,要用户参与。目的是验证系统确实能够满足用户的需要,在这个测试步骤中发现的往往是系统需求说明书中的错误。

平行测试:同时运行新开发出来的系统和将被它取代的旧系统,以便比较新旧两个系统的处理结果。

本系统使用黑盒子法进行测试。下面就输入一些信息,看能不能输出相应正确的结果。

2.系统测试

根据上一页提供的菜单界面输入相应信息进行测试,通过对测试结果的分析,测试数据与理论数据一致,能达到预期效果,说明该系统运行正常。

六.总结

通过这次程序实习这门课的学习,第一次自己做系统,感觉受益匪浅,现将学习心得体会总结为以下几点:

1.进一步学习、复习和巩固了以前所学的C语言的一些知识,并让我对C 语言有了更深刻的认识,学会了更多算法的设计和用法。

2.通过做这个简单的系统,对我的程序设计能力培养和软件工程能力的培养具有重要的作用和意义。

3.提高了的自己的动手能力和独立思考的能力,能运用所学的知识去解决一些实际的问题,这是在以前的学习过程没有体会到过的。

4.在开发一个系统时,前期的分析准备工作非常的重要。对于系统的需求要明确,这样才能做到有的放矢。特别是对于系统中数据的存储和重要算法的设计,设计的不好会出现大量的冗余,不仅浪费存储空间,还影响到系统的整体效率。

5. 在对具体实现功能模块进行编程时,要养成良好的加注释的习惯,这样的话不仅能理清思路,而且可以为以后的调试程序带来很大的方便。

6. 独立思考的同时,要虚心向别人请教,可以达到事半功倍的效果。在具体编程实现系统功能的过程中,我遇到了不少的问题,我曾通过不同渠道向同学、老师以及上相关网站、到bbs论坛寻求答案,收到了很好的效果。

以上几点是自己这次程序设计实习和做系统过程中的一些体会,感觉学校开设这门课程很有必要,它不仅可以检验我们对课程和知识技能的掌握程度,而且对将来我们做毕业设计起到充分的指导作用,同时提高了我对这学期软件工程这门课程学习的兴趣,因为这次做系统始终都用到了软件工程的思想。由于是第一次自己做系统,该系统里面必然存在一些缺陷和不足,如:用户界面不够美观,出错处理不够等多方面问题,希望老师今后在我们学习的过程中能够提出更多宝贵性的意见和建议,好让我在后面的学习过程中加强。

学生通讯录管理系统

学生通讯录管理系统

————————————————————————————————作者:————————————————————————————————日期:

“学生通讯信息记录系统”的设计与实现 一、设计要求 1.问题的描述 “学生通讯信息记录系统”是为了实现快速的对学生信息进行录入、删除、查找、显示。 各个功能靠函数实现。 2.需求分析 (1)应该包括以下功能:输入信息、显示信息、查找以姓名作为关键字、删除信息(2)作为一个完整的系统,应具有友好的界面和较强的容错能力 二、概要设计 1.主界面设计 2.储存结构设计 本系统主要采用链表类型来表示储存“学生信息记录系统”中的信息。程序中定义了address结构。其中,包括学生的姓名、宿舍信息和学号。 3.系统功能的设计 1) 输入信息——enter(); 2) 显示信息———display( ); 3) 查找以姓名作为关键字———search( ); 4) 删除信息———delete( ); 三、模块设计 1.模块设计 本成绩包含两个模块:主程序模块和链表操作模块。 2.系统的程序及功能设计

系统的功能主要靠函数的功能的实现的,以下是实现各功能的函数: void enter(); /*函数声明*/ void search(); void save(); void load(); void list(); void ddelete(struct address **start,struct address **last); void insert(struct address *i,struct address **start, struct address **last); void inputs(char *,char *,int); void display(struct address *); int menu_select(void); 四、详细设计 1.数据类型定义 2.struct address{ /*定义结构*/ 3. char name[10]; 4. char street[50]; 5. char city[10]; 6. char state[15]; 7. char eip[7]; 8. struct address *next; /*后继指针*/ 9. struct address *prior; /*前驱指针*/ 10.};系统主要子程序详细设计 (1)插入学生信息 void enter() /*输入函数,本函数循环输入资料,当输入姓名为空时退出*/ { struct address *info; /*定义当前结点*/ for(;;) { info=(struct address *)malloc(sizeof(struct address)); /*为当前结点分配空间*/ if(!info) { printf("\n Out of memory"); exit(0); /*如果分配空间失败,退出程序*/ } printf("输入空姓名结束:\n"); inputs("请输入姓名:",info->name,10); if(!info->name[0]) break; /*如果输入姓名为空,结束循环*/ inputs("请输入院系:",info->street,50);

简单的通讯录实验报告

( 二〇一二 年 十 月 课程设计说明书 本科毕业设计 题 目:简单通讯录程序 学生姓名:李天罡 学 院:工学院 专 业:数字媒体技术 班 级:2011级 指导教师:王金祥

目录 引言 (3) 第一章需求与分析...................................... I 1.1开发环境 ....................................................................................................... I 1.1.1软件环境 ........................................................................................................... I 1.1.2硬件环境 ........................................................................................................... I 1.1.3开发平台 ........................................................................................................... I 1.2功能需求 ....................................................................................................... I 1.2.1数据字段 ........................................................................................................... I 1.2.2主要功能 ........................................................................................................... I 第二章总体设计 ...................................... II 2.1流程图 ......................................................................................................... II 2.2主要模块功能介绍 .................................................................................... III 2.2.1选择模块 ........................................................................................................ III 2.2.2增添删减模块 ................................................................................................ III 2.2.3查询模块 ........................................................................................................ I V 2.2.4排序模块 ........................................................................................................ I V 第三章详细设计 ...................................... IV 3.1源代码 ........................................................................................................ I V 第四章实体机测试..................................... XV 4.1测试的目标 ..................................................................................................... XV 4.2测试方法 ......................................................................................................... XV 4.3测试结果 ........................................................................................................ XVI 总结 .............................................. XXIII

《面向对象程序设计》课程设计报告:同学通讯录管理程序

目录 1.设计题目................................. 错误!未定义书签。 2.设计目的和内容........................... 错误!未定义书签。 设计目的................................... 错误!未定义书签。 设计内容................................... 错误!未定义书签。 3.基本功能描述............................. 错误!未定义书签。 4.设计思路................................. 错误!未定义书签。 5.软件设计................................. 错误!未定义书签。 设计步骤................................... 错误!未定义书签。 界面设计................................... 错误!未定义书签。 关键功能的实现............................. 错误!未定义书签。 添加记录................................ 错误!未定义书签。 删除记录................................ 错误!未定义书签。 选中记录................................ 错误!未定义书签。 确认修改................................ 错误!未定义书签。 保存记录................................ 错误!未定义书签。 退出.................................... 错误!未定义书签。 6.结论与心得体会........................... 错误!未定义书签。 7.参考文献................................. 错误!未定义书签。 8.附录..................................... 错误!未定义书签。 调试报告及测试结果 ......................... 错误!未定义书签。

班级通讯录管理系统课程设计分析报告

高级语言程序设计(1)课程设计 专业班级学号 姓名完成日期指导教师: 1.程序设计说明书 【设计题目】班级通讯录管理系统 【问题描述】 信息1002班上学生的通讯基本信息包含姓名、电话号码、QQ号和宿舍号。对信息1002班学生的基本通讯信息进行统一整理,并可以按电话号码或姓名等查到学生个人基本通讯信息。可以显示所有的通讯记录,并对现有的通讯记录进行修改和增删等处理。 【基本要求】 1.通过此软件可以直接录入各个学生的基本通讯信息,并且会将所有信息自动保存到磁盘 上。 2.通过此软件可以直接对已录入的各个学生的通讯基本信息进行修改,并且修改完成后会将 更改后的信息情况自动保存到原磁盘文件中。 3.通过此软件可以直接对信息1002班每个同学的基本信息情况进行查询。 【算法思想】 1.根据要求,通讯录数据以文本文件存放在文件中: 2.需要提供文件的输入输出的等操作: 3.还需要保存记录已进行修改,删除,查找的操作: 4.另外还需提供键盘式选择菜单实现功能的选择。 【总体设计】 图1系统功能模块图 【详细设计】 主函数 主函数设计要求简洁,只提供部分提示语和函数的调用 【程序】

图2.主函数流程图 Voidmenu()/*主界面*/ { intn,w1; voidenter();voidadd();voidmodify();voidbrowse();voiddelete();voidsearch(); do { puts("\t*******菜单**************\t\n\n"); puts("\t\t\t\t1.新建联系人"); puts("\t\t\t\t2.添加联系人"); puts("\t\t\t\t3.修改"); puts("\t\t\t\t4.删除"); puts("\t\t\t\t5.浏览"); puts("\t\t\t\t6.查找"); puts("\t\t\t\t7.退出"); puts("\n\n\t*****信息1002班通讯录*************\t\n"); printf("请选择服务种类(1-7):[]\b\b"); scanf("%d",&n); if(n<1||n>7) {w1=1;getchar();} elsew1=0; }while(w1==1); switch(n) { case1:enter();break;/*输入模块*/ case2:add();break;/*添加模块*/ 【模块流程图】 main函数

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

C课程设计通讯录管理 系统 文件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]

课程设计说明书(论文)课程名称 C++程序设计实践 题目通信录管理系统 专业软件工程班级 学号姓名 xx 起止日期 指导教师赵新慧成绩 辽宁石油化工大学计算机与通信工程学院

摘要 本次课程设计任务是通过编写一个通信录管理系统,学习用Visual?C++?开发简单的管理系统。采用Visual?C++?软件为主要开发工具。巩固和加深学生对C++课程的基本知识的理解和掌握,掌握C++编程和程序调试的基本技能,利用C++进行简单软件设计的基本思路和方法,提高运用C++解决实际问题的能力,掌握书写程序设计说明文档的能力使用计算机进行信息管理。实现通信录的管理功能(添加、删除、排序)、按姓名查询的功能,以及把联系人资料保存在文件中,将文件中内容读出来。使用计算机进行系统管理,不仅提高了工作效率,而且大大提高了其安全性,尤其对于复杂的信息管理,计算机能充分地发挥它的优越性,通信录管理系统是每个人不可缺少的部分,在课程设计中,系统开发平台为Windows XP,程序设计语言采用Visual C++,在程序设计中,运用了面向对象解决问题的方法。程序通过调试运行,初步实现了设计目标。 Abstract The curriculum design task is through the preparation of a student achievement ranking management system, learning management system with Visual C++ 6 to develop simple. Using Visual C++ 6 software as the main development tool. To consolidate and deepen the students the basic knowledge of C++

学生通讯录管理系统的设计与实现

学生通讯录管理系统的设计与实现 问题描述: 纸质的通讯录已经不能满足实际需求,容易丢失,查找困难等问题是纸质通讯录所不能克服的缺点。“学生通讯录管理系统”是为了帮助老师、同学,或者其他一些需要使用的通讯录的人员进行管理和应用的一种应用程序。 需求分析: 1)输入数据建立通讯录。 2)查询通讯录中满足要求的信息。 3)插入新的通讯录信息。 4)删除不需要的通讯录信息。 5)查看所有的通讯录信息。 主界面设计要求: 1)通讯录的建立 2)插入通讯录记录 3)查询通讯录记录 4)删除通讯录记录 5)显示通讯录记录 6)退出系统 设计要求: A.建立通讯录时,每个学生的信息包括:学号,姓名,电话。 B.查找时,学号、姓名、电话均可以作为查询字段。 C.查看所有的通讯录信息时,所有记录需要时有序的(按学号排序,按姓名排序(字典序),按电话号码排序)。 D.存储结构:要求使用顺序存储结构。 E.数据使用:使用本班级的具体信息。 需求分析: 本次设计目的是学生信息管理系统,可存入每个学生的基本信息,所有学生信息都可根据名字、学号、电话、邮箱进行查询,也都可以根据这四个基本信息检索到一个学生并删除其数据。 输入形式:student.txt,以文件形式进行输入。 输出形式:根据不同的输入进行不同的操作。 达到功能:能插入一个学生的信息,能删除一个学生的信息,能查询一个学生的信息。 测试数据:班上70个同学的基本数据。 概要设计: 数据类型:顺序链表ArrayList类 学生数据结构:StuData类包含name、id、phone、email四个String基本类型。 所有操作写在Structure中,包含insert、remove、query、printAll。 Main函数用Java标准输入,循环输入,用switch判断输入进行各种操作,1进行建立信息

简单通讯录C++实现

简单通信录的C++实现 这是一个简单的通讯录系统,数据结构内包括学号,姓名,手机号,具备增加、删除、修改、查询的功能。 //2015/3/12 by LDSD #include #include using namespace std; struct node { char num[15]; char name[7]; char phone[12]; node *next; }; void serch(node *head) { head=head->next; char con; char data[15]; while(1) { cout<<"1:按学号查询 2:按姓名查询,请选择指令执行操作。\n"; cin>>con; if(con=='1') { cout<<"请输入学号。"<>data; while(head!=NULL) { if(strcmp(head->num,data)==0) { cout<num<<'\t'<name<<'\t'<phone<<'\n';break; } else head=head->next; } if(head==NULL)

cout<<"未查询到匹配的记录!"<>data; while(head!=NULL) { if(strcmp(head->name,data)==0) { cout<num<<'\t'<name<<'\t'<phone<<'\n';break; } else head=head->next; } if(head==NULL) cout<<"未查询到匹配的记录!"<>new_stu->num>>new_stu->name>>new_stu->phone; new_stu->next=head->next; head->next=new_stu; } void modify(node *head) { char num[15]; char name[7]; char phone[12]; node *head1=head->next; int i=1; node *new_stu=new node; cout<<"通讯录内容如下,请依次输入编号,学号,姓名,电话号码,以便对信息更新。\n"; while(head1!=NULL) { cout<num<<'\t'<name<<'\t'<phone<<'\n'; head1=head1->next;

学生通讯录管理系统的设计与实现

学生通讯录管理系统的设计与实现

学生通讯录管理系统的设计与实现 问题描述: 纸质的通讯录已经不能满足实际需求,容易丢失,查找困难等问题是纸质通讯录所不能克服的缺点。“学生通讯录管理系统”是为了帮助老师、同学,或者其它一些需要使用的通讯录的人员进行管理和应用的一种应用程序。 需求分析: 1)输入数据建立通讯录。 2)查询通讯录中满足要求的信息。 3)插入新的通讯录信息。 4)删除不需要的通讯录信息。 5)查看所有的通讯录信息。 主界面设计要求: 1)通讯录的建立 2)插入通讯录记录 3)查询通讯录记录 4)删除通讯录记录 5)显示通讯录记录 6)退出系统 设计要求: A.建立通讯录时,每个学生的信息包括:学号,姓名,电话。

B.查找时,学号、姓名、电话均能够作为查询字段。 C.查看所有的通讯录信息时,所有记录需要时有序的(按学号排序,按姓名排序(字典序),按电话号码排序)。 D.存储结构:要求使用顺序存储结构。 E.数据使用:使用本班级的具体信息。 需求分析: 本次设计目的是学生信息管理系统,可存入每个学生的基本信息,所有学生信息都可根据名字、学号、电话、邮箱进行查询,也都能够根据这四个基本信息检索到一个学生并删除其数据。输入形式:student.txt,以文件形式进行输入。 输出形式:根据不同的输入进行不同的操作。 达到功能:能插入一个学生的信息,能删除一个学生的信息,能查询一个学生的信息。 测试数据:班上70个同学的基本数据。 概要设计: 数据类型:顺序链表 ArrayList类 学生数据结构:StuData类包含name、id、phone、email四个String基本类型。 所有操作写在Structure中,包含insert、remove、query、printAll。 Main函数用Java标准输入,循环输入,用switch判断输入进行

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

C语言程序设计学生通讯录管理系统 文件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]

#define null 0 struct record { char name[20]; char phone[20]; char adress[40]; char postcode[10]; char e_mail[30]; }student[500]; struct LinkList { struct record US; struct LinkList *next; }a; struct LinkList *head=null; int num=0; FILE *fp; int menu_select(); int adduser(); int list(); int search(); int display(); int add();

int listbyname(); int dele(); int save(); int exit(); void main() { system("cls"); for(;;) { switch(menu_select()) { case 0:adduser();break; case 1:list();break; case 2:search();break; case 3:add();break; case 4:dele();break; case 5:save();break; case 6:exit(0); } } } menu_select() {

char s[80]; int a; printf("*_* press any key enter menu! *_* \n"); getch(); system("cls"); printf("\t\t********************MENU*********************\n\n"); printf("\t\t 0. 输入记录\n"); printf("\t\t 1. 显示记录 \n"); printf("\t\t 2. 按姓名查找\n"); printf("\t\t 3. 插入记录 \n"); printf("\t\t 4. 删除记录\n"); printf("\t\t 5. 记录保存文件\n"); printf("\t\t 6. Quit\n"); printf("\t\t***********************************************\n"); do{ printf("\n Enter you choice(0~11):"); scanf("%s",s); a=atoi(s); } while (a<0||a>11); return a; } adduser()

(简易手机通讯录管理系统)

一、课题名称 简易手机通讯录管理系统(线性表、查找、排序) 二、主要内容 简易手机通讯录管理系统的设计主要是实现对手机通讯录的管理和相关操作。基本功能如下: (1)联系人信息录入、添加功能:包括手机号(此处用短号,5位,不能重复)、姓名、家庭住址的录入和添加。 (2)联系人信息查询功能:能①按手机号进行查询。②按联系人姓名进行查询。 (3)排序:①能按手机号升序进行排序;②能按姓名进行升序排序,姓名相同时按手机号从小到大进行排序 (4)联系人信息的修改、删除功能:①按手机号进行联系人信息的修改和删除。 ②按姓名进行联系人信息的修改和删除,多个姓名时,再指定具体的号码。 (5)统计功能:统计自己的联系人有多少个。 三、课题设计的基本思想,原理和算法描述 (1)本次课程设计题目为简易手机通讯录管理系统,主要运用到线性表中顺序表的相关知识,以及顺序查找的思想和冒泡排序算法。 (2)界面设计 //菜单函数 int menu() { int c; printf("\n\n\t☆☆☆☆☆☆☆手机通讯录信息管理系统☆☆☆☆☆☆☆☆\n\n"); printf("******************************************************************* ***\n"); printf(" 1.添加联系人信息\n"); printf(" 2.查询联系人信息\n"); printf(" 3.对联系人信息进行排序\n"); printf(" 4.修改联系人信息\n"); printf(" 5.删除联系人信息\n"); printf(" 6.统计联系人个数\n"); printf(" 0.退出信息管理系统\n"); printf("******************************************************************* ***\n\n");

学生通讯录管理系统

数据结构课程设计报告 项目名称:学生通讯录管理系统学号: 班级: 姓名: 指导老师:

计算机科学与技术2014年12月19日

1.问题描述: 通讯录管理系统一般包括通讯者的各种信息,这些信息应该包括学号,姓名,性别,电话,QQ,住址等。而对其一般进行的操作有插入、删除、查询、修改、输出等操作功能,可以将输入的数据保存在文本文件中,并可以将其调出使用。 2.设计思路: 通讯录管理系统所要进行的插入、删除、查询、修改、输出这五种功能会牵扯到数据的移动,所以应选择链式存储结构比较简单。采用链表对其进行操作,至少需要6个子函数,及链表的建立、插入、删除、查询、修改、输出。另外为了系统的美观简单,还应该设置一个主控菜单,所以程序需要7个子函数。由于通讯录中涉及到的信息量较大,输入时较繁琐,所以需要加入文件的操作。 3.数据结构定义: 采用了结构体数据类型,定义了7个字符型数组。 struct record { char numb[11]; char name[9]; char sex[3]; char phone[12]; char addr[31]; char postcode[6];

char qq[12]; }student[500]; 4.系统功能模块介绍: (1)顶层主控菜单设计: ①设计菜单内容 程序运行后,给出八个菜单项的内容和输入提示。 0.通讯录表的记录输入; 1.通讯录链表的建立; 2.通讯录链表的插入; 3.通讯录链表的删除; 4.通讯录链表的查询; 5.通讯录链表的修改; 6.通讯录链表的输出; 7.通讯录链表的保存; 8.退出管理系统; 请选择0—8; ②实现循环和功能选择 假设输入选择用变量sn存储,它作为menu_select函数的 返回值提供给switch语句,使用for循环实现重复选择, 并在主函数main()中实现。 实际使用时,只有选择大于8或小于0,程序才能运行结束, 这就要使用循环控制,这里使用for循环语句实现菜单的循 环选择,为了结束程序的运行,使用return语句即可,也 可以使用exit(0);语句。 ③得到sn的合理值

学生通讯录管理系统

#include struct person { char name[8]; char sex[10]; char QQ[15]; char tel[15]; char addr[50]; }; char filename[20]="E:\\txl.txt"; FILE *fp; void creat(); void output(); void search(); void append(); void modify(); void del(); main( ) { int m; creat(); while(1) { printf("★**************************************************************★\n"); printf("§*******************★欢迎使用通讯录管理系统★*****************§\n"); printf("§**************************************************************§\n"); printf("§§§§\n"); printf("§§§§\n"); printf("§§§§\n"); printf("§§☆添加,请按1 §§\n"); printf("§§☆查找,请按2 §§\n"); printf("§§☆修改,请按3 §§\n"); printf("§§☆删除,请按4 §§\n"); printf("§§☆输出,请按5 §§\n"); printf("§§☆退出,请按0 §§\n"); printf("§§§§\n"); printf("§§§§\n"); printf("§§§§\n"); printf("★**************************************************************★\n"); printf("◆请选择操作类型(0-5):\n");

通讯录管理系统设计说明书

通讯录管理系统设计说明书 系统概述: 随着毕业的来临,我们就将面临分离。为了能在毕业后,能够方便联系我们在大学其间的同学朋友,通讯录就是一个可以帮我们方便查找同学朋友的工具。 随着计算机的普及,人们的生活摆脱了传统式的记事本、电话簿,越来越多的靠计算机来帮助人们记住这些事情,极其简便。这就需要有一个使用的通讯录管理系统,用户可以方便的通过自己电脑的通讯录管理系统,来随时查阅自己所需要的信息,而不必再大费周折去翻开那繁琐的记事本。 通讯录管理系统是一个专门针对储存用户联系方式以及一些简单个人信息的实用管理系统,它方便了用户对众多客户、朋友、同事等个人信息的储存和快速查阅的功能,大大减少了查找过程的时间。 关键字:插入,删除,查找,输出。 需求分析: 调查用户需求: 随着同学们的即将毕业,蹋出社会,交际难免地逐渐扩大,与外界联系将更为广泛和密切,传统的手工通讯录、地址簿已经难以满足快节奏、高效率的现代生活的需求。经常发生要在几十甚至上百张名片中找出某一张名片的情况,若由手工完成效率十分低。当交际扩大后,传统的手工通讯录非常不方便,不易查询、修改、存放,不易保密,容易遗失。 由计算机带来管理庞大而繁杂的通讯录是非常合适的,不仅查询和修改方便,并且效率高,速度快,完全能够满足现代化交际活动的要求,同时也更方便同学们联系交往。 本系统专门用于个人通讯信息管理的小型应用软件,主要提供个人通讯信息的登记、修改、浏览、查询和打印等功能。

1.用户的主要信息需求: ①对个人通讯信息资料进行登记、修改、浏览。 ②对个人通讯信息资料进行按姓名和学号查询。 ③对个人通讯信息资料进行打印输出。 系统功能设计与分析: 1.功能模块图 2.功能设计 (1)新建通讯录功能 增加一个新的记录,并保存通讯录; (2)搜索通讯录功能

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

c语言课程设计学生通讯录管理系统 文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)

题目:学生通讯录管理系统任务说明:主要利用c语言的文件操作能力设计开发一个小型的通讯录管理系统,至少具有如下功能:①记录通讯录内的人员的学号、姓名、地址、电话号码。 ②显示所有人员的信息。 ③通过输入姓名查找人员信息。 ④通过输入姓名查找到要删除的人员信息,然后可以进行删除。 ⑤通过输入姓名查找到要修改的人员信息,然后可以进行修改。 ⑥添加人员信息。 系统功能描述: 本程序的功能是为用户提供简单的通讯录进行管理,通过该程序存储联系人信息,提供关键字(只能是英文关键字进行查找)查找功能,可以对数据进行修改、删除、添加等操作。 各按钮的功能如下: 查找记录:以姓名为关键字,查找并显示该记录。若查找不到,则显示“好象没有”; 添加记录:将当前记录按姓名序加入通讯录,然后显示第一条记录; 修改记录:修改当前记录,显示当前记录。姓名为关键字,不允许修改; 删除记录:删除当前记录,然后显示第一条记录; 第一条记录:将当前记录指针移动至首节点,若已为首节点,则不移动; 前一条记录:将当前记录指针向前移动一个节点,若已为首节点,则不移动;

后一条记录:将当前记录指针向后移动一个节点,若已为尾节点,则不移动; 最后一条记录:将当前记录指针移动至尾节点,若已为尾节点,则不移动; 加载:从文件中掉入已保存的通讯录数据; 保存:保存通讯录数据; 退出:退出系统; 设计思路: 根据要求,电话录数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。 图1 系统功能模块图 软件中使用的结构体和结构体数组,如: struct callmember { char name[20]; char address[20]; char code[20]; char callnumber[20];

同学录管理系统设计与实现

毕业设计(论文) 题目:中学同学录管系统设计与实现姓名:郭勇 指导教师:罗娜 专业:计算机应用技术 层次:专科

成绩评定表

毕业论文(设计)任务书

同学录在网络中应用广泛,现在比较有名的门户网站都提供了同学录功能,同学录不仅是新老同学联系的桥梁,而且还是网络休闲和网上展示自我的好方式。 该平台的开发,主要用了MACROMEDIA DREAMWAVER MX 2004、MACROMEDIA FIREWORKS MX 2004、MACROMEDIA FLASH MX 2004、ADOBE PHOTOSHOP 7.0、 MICROSOFT ACCESS 等软件,该系统严格按照一般同学录系统平台的开发步骤进行开发,并力图比较全面地涵盖所以应有的功能。该平台的功能有:用户注册,用户登录,用户资料修改,图片上传,班级通讯录,在线人员统计等功能。同时考虑到用户的安全性和网络优化性,特增加了管理员管理模块。 关键词:ACCESS数据库 https://www.360docs.net/doc/bd13177236.html,脚本语言 INTERNER服务管理器模块设计

前言 (1) 1系统概述 (2) 1.1系统的开发方法 (2) 2系统的调研及可行性分析 (3) 2.1系统调研 (3) 2.2系统的总体目标 (3) 2.3技术的可行性分析 (3) 3系统分析 (4) 3.1系统功能需求的分析 (4) 3.2性能需求 (5) 4数据库设计 (6) 4.1SQL S ERVER2000数据库的概述 (6) 4.2E-R图设计 (6) 4.3数据库表的设计 (7) 5系统的详细设计 (11) 5.1本课题的设计思想 (11) 5.2系统设计原则 (11) 5.3系统各模块的主要功能 (11) 5.4系统各模块的具体功能 (11) 5.4.1登录模块 (11) 5.4.2注册模块 (12) 5.4.3班级查询模块 (13) 5.4.4 通信录 (18) 5.4.5 留言板 (19) 6系统的评价 (20) 总结 (21) 致谢 (22) 参考文献 (23)

设计实现简单的通讯录C++课程设计

` 《计算机科学与应用系程序类课程设计》 设计报告书 : 题目:设计并实现简单的通讯录 指导教师: 姓名: 学号: \ 日期: 2013/5/16 计算机科学与应用系 2012-2013学年第二学期

一、需求分析 ●功能需求分析: ; 通讯录主要有一下模块:录入纪录、查询纪录、修改纪录、显示纪录、删除纪录、清空纪录、退出操作,其中姓名可以由字符和数字混合编码,电话号码可由字符和数字组成。 ○通讯录界面设计 主要功能是设计通讯录的界面,能够提示用户的实际操作等。我采用的是按照序号来实现相应的操作的,其中:录入纪录(I/i),查询纪录(S/s),修改纪录(M/m),显示纪录(D/d),删除纪录(X/x),清空纪录(Q/q),退出操作(E/e)。 ○通讯录添加联系人模块 主要功能是添加联系人模块,添加操作是根据用户的要求实现的。按实际情况,将通讯录的录入选项加多,包括添加联系人的姓名,性别,出生年月,学校,班级,电话号码,邮政编码, QQ号,家庭住址,最后输入完成后,将提示是否继续输入! ○通讯录查询联系人模块 主要功能是查询已添加的联系人。其中包括按名字查找和按班级查找。如果没有这条记录,将提示对不起,你要查找的数据不存在!反之,将分条显示该成员的数据。 ○通讯录修改联系人模块 … 主要是修改联系人的信息,界面提示要输入密码(1)和学生姓名,如果不正确,显示要修改的学生不存在。如果正确,则显示出改联系人的所有信息,并提示根据下面提示修改信息,姓名,性别,出生年月,学校,班级,电话号码,邮政编码, QQ号,家庭住址。 ○通讯录删除联系人模块 主要功能是删除不再需要的联系人。其中包括输入你要删除输入电话或电话号码如果没有的话,将提示:要删除的学生不存在!如果找到,则提示删除联系人的所有信息和这个人的信息已经从你的通讯录中删除的信息!

C语言大作业——学生通讯录管理系统

#include #include //#define NULL 0 #define LEN sizeof(struct message) struct message //定义结构体 { char name[15]; char number[15]; char phone[15]; char qq[13]; char addr[25]; struct message *next; //指向下一数据 }; int n; void creat() //建立电话簿{ int num; char choice[5]={'2'}; FILE *fp; struct message *head; struct message *p,*q; n = 0; p = q = (struct message *) malloc(LEN); fp=fopen("通讯录1.txt","wb"); system("cls"); printf("\n请输入姓名:"); scanf("%s",p->name); printf("\n请输入电话号码:"); scanf("%s",p->phone); printf("\n请输入学号:"); scanf("%s",p->number); printf("\n请输入QQ:"); scanf("%s",p->qq); printf("\n请输入住址:"); scanf("%s",p->addr); fwrite(p,LEN,1,fp); fclose(fp); head = 0; num = 1;

while(num!=0) { n = n+1; if(n==1) head = p; else q->next = p; q = p; p = (struct message *) malloc(LEN); //分配存储区 while(choice[0]!='1' && choice[0]!='0') //判断是否继续 { printf("\n1 继续输入\n 0 返回\n"); printf("请选择操作:"); scanf("%s",choice); } switch(choice[0]) { case '1': { fp=fopen("通讯录1.txt","rb"); system("cls"); printf("\n请输入姓名:"); scanf("%s",p->name); printf("\n请输入电话号码:"); scanf("%s",p->phone); printf("\n请输入学号:"); scanf("%s",p->number); printf("\n请输入QQ:"); scanf("%s",p->qq); printf("\n请输入住址:"); scanf("%s",p->addr); fwrite(p,LEN,1,fp); fclose(fp); choice[0] = '2'; } continue; case '0': num = 0; system("cls"); } } q->next = 0; }

相关文档
最新文档