学生通讯录管理程序

合集下载

学生手机通信录管理系统

学生手机通信录管理系统

学生手机通信录管理系统学生手机通信录管理系统文档一、系统说明学生手机通信录管理系统是一款方便学生进行联系人信息管理的应用程序,主要针对学生的使用需求,能够方便地添加、修改、删除联系人信息,同时提供了快速查找和导出通讯录的功能。

二、主要功能1.添加联系人:学生可通过学生手机通信录管理系统添加新的联系人,并可以输入联系人的姓名、电话、邮箱、地址等相关信息。

2.编辑联系人:编辑联系人时,可以修改联系人的信息,例如修改电话号码等。

3.删除联系人:学生可以在学生手机通信录管理系统中删除联系人信息,以避免产生重复的联系人信息。

4.快速查找:学生在需要查找联系人时,可以直接输入姓名或电话号码进行查找,以快速定位到相应的联系人。

5.导出通讯录:学生可以将通讯录导出为CSV文件,以便后续使用。

三、使用说明1.启动系统:学生首先需要下载学生手机通信录管理系统并安装,在安装完成后,启动系统。

2.添加联系人:点击“添加联系人”按钮,填写你需要添加的联系人的姓名、电话、邮箱、地址等相关信息即可。

3.编辑联系人:在学生手机通信录管理系统中选中需要编辑的联系人,然后点击“编辑联系人”按钮进行联系人信息的修改。

4.删除联系人:在学生手机通信录管理系统中选中需要删除的联系人,然后点击“删除联系人”按钮即可删除该联系人。

5.快速查找:在学生手机通信录管理系统中输入“姓名”或“电话”进行快速查找相应的联系人信息。

6.导出通讯录:在学生手机通信录管理系统中点击“导出通讯录”按钮即可将通讯录导出为CSV文件。

四、系统优势学生手机通信录管理系统能够让学生方便地管理联系人信息,避免了联系人重复或管理混乱的情况,以及提供了快速查找和导出通讯录的功能,这些都可以帮助学生高效地管理自己的联系人,成为学生生活中的一项便捷工具。

五、总结学生手机通信录管理系统是一项非常实用的工具,经过使用,它可以帮助学生方便地管理自己的联系人信息,节省时间和精力,成为学生生活中重要的一部分。

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)设定所要修改的项目。

模块五:刷新学生信息声明void sort()将录入学生系按升序排列,用的是“冒泡排序法”实现排序。

班级通讯录管理制度

班级通讯录管理制度

班级通讯录管理制度一、引言班级通讯录是学生之间联系的重要工具,对于提升班级沟通效率、促进同学之间的交流合作起着重要作用。

因此,建立一套科学合理的班级通讯录管理制度对于班级管理十分必要。

二、通讯录内容1. 学生基本信息:包括姓名、性别、学号、出生日期、籍贯等;2. 父母联系方式:父母姓名、联系电话、家庭住址等;3. 紧急联系人信息:姓名、联系电话、与学生的关系。

三、通讯录管理责任人由班主任担任通讯录管理责任人,负责通讯录的维护和更新。

同时,需要设置一名备份责任人以应对突发情况。

四、通讯录的保密性通讯录中包含了班级成员的个人信息,保护隐私是重中之重。

通讯录应以电子文档形式存储,并设置密码保护,仅授权人员可以查阅和修改。

五、通讯录的更新1. 学生信息更新:学生入学、转学、离校等情况发生时,班主任负责及时更新通讯录;2. 联系方式更新:学生的联系方式发生变动时,班主任应在通讯录中及时调整。

六、通讯录的使用范围通讯录仅用于班级成员之间的正常交流和学校相关事宜的沟通,被禁止用于任何商业用途。

七、通讯录的使用规范1. 严禁将通讯录用于骚扰、恶意攻击、侵犯他人隐私等违法行为;2. 禁止将通讯录提供给无关人员,保护信息安全;3. 遵守网络道德,不得散布不良信息。

八、通讯录的备份班主任应经常进行通讯录数据的备份,以防止数据丢失。

同时,备份数据应妥善保存,保证信息安全。

九、通讯录的应用1. 学校管理:班级通讯录能够方便学校进行学生信息管理和与家长的沟通;2. 日常联系:同学间可以通过通讯录快速联系,方便学习和交流合作;3. 突发情况:学校和班主任可以通过通讯录第一时间联系学生家长,处理突发事件。

十、通讯录的规范使用学生在使用通讯录时,应遵循以下规范:1. 尊重他人隐私,不私自泄露他人联系方式;2. 合理使用通讯录,不进行无关紧要的骚扰;3. 对于通讯录中个人信息的变动,要及时通知班主任进行更新。

十一、常见问题及解决办法1. 通讯录丢失:通过备份数据进行恢复;2. 通讯录信息泄露:密切关注通讯录使用情况,加强信息安全保护;3. 通讯录更新滞后:加强班主任的责任意识,及时更新通讯录。

学生通讯录管理系统c语言编程

学生通讯录管理系统c语言编程

学生通讯录管理系统C语言编程简介学生通讯录管理系统是一个帮助学生管理通讯录信息的应用程序。

通过该系统,学生可以添加、删除、查询和修改通讯录中的联系人信息,从而更好地组织和管理自己的通讯录信息。

功能需求1. 添加联系人学生可以通过输入联系人的姓名、电话号码、邮箱等信息,将联系人添加到通讯录中。

2. 删除联系人学生可以根据联系人的姓名或电话号码,从通讯录中删除指定的联系人信息。

3. 查询联系人学生可以通过姓名或电话号码查询通讯录中的联系人信息,并将查询结果显示出来。

4. 修改联系人学生可以修改通讯录中指定联系人的信息,如电话号码、邮箱等。

技术实现通讯录管理系统将使用C语言进行编程实现。

以下是系统的基本设计思路:1. 数据结构设计通讯录信息可以用结构体来表示,包含联系人的姓名、电话号码、邮箱等字段。

struct Contact {char name[50];char phone[20];char email[50];};2. 功能模块划分•添加联系人模块:用于添加新的联系人信息。

•删除联系人模块:用于删除指定联系人信息。

•查询联系人模块:用于根据姓名或电话号码查询联系人信息。

•修改联系人模块:用于修改指定联系人的信息。

3. 用户界面设计系统将使用控制台界面,通过菜单来实现各个功能模块的调用。

开发步骤1. 定义数据结构首先定义联系人结构体,包含姓名、电话号码、邮箱等字段。

2. 实现功能模块分别实现添加联系人、删除联系人、查询联系人、修改联系人等功能模块的具体代码。

3. 编写主程序编写主程序,通过调用功能模块来实现整体通讯录管理系统的运行。

总结学生通讯录管理系统C语言编程是一个实用的项目,通过这个项目,学生可以熟练掌握C语言编程的基本知识,并且实践项目开发的流程。

通过不断调试和完善,学生可以提升自己的编程能力和项目实现能力。

希望学生能够在这个项目中学到更多的知识,提升自己的编程技能。

学生通讯录管理

学生通讯录管理

C语言数据结构学院:信心工程学院专业:技术计科学与技术题目:班级通讯录管理系统班级:姓名:时间:一:程序设计目标:为某个班级建立一个学生通讯录管理系统,功能包括通讯录链表的建立、学生通讯信息的查询、修改、插入与删除、以及整个通讯录表的输出。

二:问题描述:为某个班级建立一个学生通讯录管理系统,可以方便查询每一个学生的宿舍电话、手机号、及电子邮箱。

其功能包括通讯录链表的建立、学生通讯信息的查询、修改、插入与删除、以及整个通讯录表的输出。

三:需求分析:1.创建单链表;2.向链表中插入数据;3.删除链表中的数据;4.查找链表中的内容;5.销毁单链表,释放内存空间;6.打印内容。

四:概要设计:为了实现上述程序功能,需要定义一个简化的线性表抽象数据类型:ADT LinearList {数据对象:D={ai |ai∈IntegerSet,i=0,1,2,…,n,n≥0}结构关系:R={<ai ,ai+1>|ai,ai+1∈D}基本操作:Initlist (L)操作前提:L是一个未初始化的线性表操作结果:将L初始化为一个空的线性表CrtLinkList(L)操作前提:L是一个已初始化的空表操作结果:建立一个非空的线性表L Insertlist (L,pos,e)操作前提:线性表L已存在操作结果:将元素e插入到线性表L的pos位置deleteList (L,pos,e)操作前提:线性表L已存在操作结果:将线性表L中pos位置的元素删除,删除的元素值通过e返回LocLinkList(L,e)操作前提:线性表L已存在操作结果:在线性表L中查找元素e,若存在,返回元素在表中的序号位置;若不存在,返回-1五:详细设计:(给出算法的伪码描述和流程图)输出提示信息void menu(void){ /*主菜单函数*/system("cls");printf("***************************************************\n");printf(" ^_^学生通讯录管理系统^_^\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");}存入学生信息struct student *shuru(void) /*输入函数*/{system("cls");struct student *s1,*s2;n=1;intnum;printf("请输入学生个数(提示:个数不能输入0!):");scanf("%d",&num);s1=s2=(struct student *)malloc(sizeof(struct student)); printf("*************************************************") ;printf("请输入学号:");scanf("%ld",&s1->num);printf("请输入学生姓名:");scanf("%s",s1->name);printf("请输入班级:");scanf("%d",&s1->banji);printf("请输入电话号码:");scanf("%s",s1->shoujihaoma);printf("请输入电子邮件:");scanf("%s",s1->Email);printf("请输入学生宿舍电话号:");scanf("%d",&s1->sushedianhua);stu=s1;while(n<num){s2->next=s1;s2=s1;s1=(struct student *)malloc(sizeof(struct student));printf("*************************************************") ;printf("请输入学号:");scanf("%ld",&s1->num);printf("请输入学生姓名:");scanf("%s",s1->name);printf("请输入班级:");scanf("%d",&s1->banji);printf("请输入电话号码:");scanf("%s",s1->shoujihaoma);printf("请输入电子邮件:");scanf("%s",s1->Email);printf("请输入学生宿舍号:");scanf("%d",&s1->sushedianhua);n=n+1;}printf("*************************************************");s2->next=s1;s2=s1;s2->next=NULL;return(stu);//system("cls");}输出单个学生信息voidshuchu(struct student *s){printf(" %-8ld",s->num);printf("%-8s",s->name);printf("%-8d",s->banji);printf("%-8s",s->shoujihaoma);printf("%-8s",s->Email);printf("%-8d *\n",s->sushedianhua)输出所有学生信息void findall() /*输出所有学生信息*/{system("cls");struct student *s;//if(n=2)//printf("\n现在有%d个学生信息,分别是:\n",n);//elseprintf("\n现在有%d个学生信息,分别是:\n",n);printf("*学号\t姓名\t班级\t电话\t电子邮件\t宿舍*\n"); s=stu;while(s!=NULL){shuchu(s);s=s->next;}printf("___________________________________________________ _____________________");printf("返回主菜单请按【7】");if(getche()=='7') 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){printf("查无此学生姓名!");goto end;}else{printf("该学生的信息为:");printf("* 学号姓名班级电话电子邮件宿舍 *");shuchu(s);}end:;删除单个信息struct student *shanchu(struct student*stu) /*删除函数*/ {system("cls");longnum;char s;struct student *s1,*s2;if(stu==NULL){printf("没有任何学生信息");goto end;}printf("请输入你要删除的学生学号:");scanf("%ld",&num);s1=stu;printf("警告:你确定要删除这个学生的信息吗(Y/N)?");scanf("%s",&s);if((s=='Y')||(s=='y')){while((num!=s1->num)&&(s1->next!=NULL)){s2=s1;s1=s1->next;}if(num==s1->num){ printf("该学生的信息为:");printf("* 学号姓名班级电话电子邮件宿舍 *");shuchu(s1);if(s1==stu)stu=s1->next;elses2->next=s1->next;printf("该学生的信息已经删除了!剩下的学生通讯录信息如下:"); n=n-1;}}findall();return(stu);end:;printf("返回主菜单请按【9】");if(getche()=='9') menu();}六:使用说明:按照屏幕提示操作:班级、学号输入只能是整型1:按1录入学生通讯录信息2:按2输出所有学生通讯录信息3:按3用学生姓名查询4:按5用学生学号查询5:按5删除学生信息6:按6排序0:按0退出七:程序数据测试:创建学生信息插入学生信息删除学生信息课程设计总结第一次设计如此长的程序真的很吃力。

学生通讯录管理

学生通讯录管理
{
for(i=1;i<n-1&&p1->next!=NULL;i++)
p1=p1->next;
if(p1->next==NULL)
p2->next=NULL;
p2->next=p1->next;
p1->next=p2;
}
printf("\n插入成功\n\n");
scanf("%d",&p2->sex);
printf("请输入学生的院系:\n");
scanf("%s",p2->college);
printf("请输入学生的专业\n");
scanf("%s",p2->subject);
printf("请输入学生的联系电话\n");
scanf("%s",no);
system("cls");
if(strcmp(no,"0")==0)
{
printf("\n");
return;
}
else
{
p1=head;
for(;;)
{
if(strcmp(no,p1->no)==0)
printf("请输入学生的联系电话\n");
scanf("%s",p2->phone);
printf("请输入要插入的位置:\n");
scanf("%d",&n);

c语言程序设计_.学生通讯录信息管理系统

c语言程序设计_.学生通讯录信息管理系统

通讯录的开发与设计一.需求分析1.1功能需求1.该程序可用于对学生的通讯方式基本信息的添加、查找、修改、删除、输出等操作,以实现对学生通讯录信息的管理,便于同学之间的联系交往;2.其中此通讯录可以自动保存,以便以后查看更新学生通讯信息。

3.程序中设计的查询功能可根据需要从若干数据中查询某个学生信息,并且可根据两种不同的方法查询:按姓名查询和按电话查询,以满足不同的需要;4. 可以通过输出的方式查看整个通讯录;1.2非功能需求1.界面友好,dos界面。

文本显示。

2.具有较好的容错能力,用户在使用过程中,除了规定的按键外,其他按键均忽略,不予处理;3.可在任何PC机上运行。

4.运行平台xp or win7二.方案设计2.1设计思路从已知的手机或者电脑中的通讯录可知,应该用结构体数组储存people的各种属性,每个人具有3种属性1.姓名2.住址3.电话。

用简单赋值语句给结构体变量赋值。

储存使用vc自带的file函数。

函数之间各种调用使用wilie外加switch函数实现。

2.2结构设计对各个模块进行功能的描述 (1).输入模块:录入需要管理的通讯信息并将信息保存于文件中,以方便日后进行打印、读取、更新等操作。

(2).添加模块:可添加一个或多个学生的通讯信息,并将所添加的信息保存,方便查找。

(3).删除模块:可对失去联系的学生通讯信息做删除处理。

(4).修改模块:可对通讯信息发生改变的学生信息进行修改。

(6).保存模块:用于对通讯信息进行保存。

属于隐藏模块。

系统自动保存。

(7).输出模块:将所有学生通讯信息或想要查询的学生信息显示于屏幕,用于打印学生通讯信息或查找某些学生通讯信息。

(8).退出系统:选择该项,自动退出该系统。

三.系统实现流程图, 函数之间相互调用的图示 ,程序设计及编码, 运行结果。

输入模块: 输入模块:One. n ame! 重新赋值四.系统测试1.功能测试2.性能测试3.测试结果经过测试本项目的功能和性能符合要求。

学校班级通讯录管理规定

学校班级通讯录管理规定

学校班级通讯录管理规定第一部分:为什么需要在现代社会,无论是工作还是学习,人际交往都离不开通讯工具。

而对于学校来说,班级通讯录的管理更是必不可少的。

它可以方便学校与家长的联系,促进教育环境的良好运作。

然而,班级通讯录信息的保护、正确使用却是一个值得重视的问题。

第二部分:班级通讯录的保密性班级通讯录包含学生和家长的信息,如姓名、联系方式等,需要严格保密。

学校应加强对班级通讯录的管理,确保信息不被非法获取、滥用或泄露。

只有经过家长同意,学校才能使用通讯录信息与家长联系,而家长也可以随时申请查看个人信息并提出修改。

第三部分:班级通讯录的使用目的班级通讯录的主要目的是提升学校与家长之间的沟通效率,协助学校更好地开展教育工作。

学校可通过通讯录向家长发送学校通知、家长会议信息、学生的成绩等相关信息。

通讯录也可以用于学生之间互相联系,共同学习和交流。

第四部分:班级通讯录的更新与维护为了确保班级通讯录的有效性,学校应定期更新和维护通讯录信息。

家长和学生应主动告知学校联系方式的变动,确保通讯录信息的准确性。

此外,学校也应加强保密意识的教育,让家长和学生了解自己的信息应该保护好,避免信息被滥用。

第五部分:对班级通讯录的合法使用学校在使用班级通讯录时必须遵守法律法规,并明确使用的范围。

学校只能依法使用通讯录信息,不能将其用于商业目的,也不能将信息提供给其他机构或个人。

同时,学校需要建立相应的纪检监察制度,对通讯录信息的非法使用行为进行监督和惩处。

第六部分:学生隐私权的保护学校在使用班级通讯录时,应保护学生的隐私权。

学生的个人信息不得被学校以外的人窃取、利用或泄露,确保学生的信息安全。

学校应加强师生的安全意识教育,让他们了解自己的权益,主动保护自己的个人信息。

第七部分:班级通讯录管理规定的落实学校应制定并严格执行班级通讯录管理规定,确保通讯录信息的合法使用和保护。

通过信息技术手段,学校可以实现对通讯录的统一管理,提高管理效率,减少信息泄露的风险。

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

/*这是个学生通讯录管理程序,可以进行添加、删除、查找(按学号或姓名!、排序和列表输出等操作*//*TYPEIN代替getch()输入,使输入同时在屏幕上显示信息*/#define TYPEIN putch(getch())#include "stdio.h"#include "conio.h"#include "ctype.h"#include "malloc.h"#include "stdlib.h"#include "string.h"/*学生资料*/struct student /*定义学生资料结构体*/{ char cnm[20]; /*班级序号class number*/char nam[20]; /*姓名name*/char dom[20]; /*寝室dorm*/char nat[20]; /*籍贯native place*/char add[40]; /*家庭地址address*/char tel[20]; /*电话telephone*/char qq[20]; /*qq*/} *stu[1000],*tmp;/*定义一千个学生的全局数组,以及一个用于交换数据的临时指针和一个用于展示的指针*/FILE *fp=0; /*全局文件指针*//*数据状态*/int cou,ord,syc; /*最后一个有效数据对应的数组位置,及数组是否有序1为有序,文档是否同步1为同步*//*函数声明*/void add();void del();void fin();void fso();int find(char *tar);void lis();/*对函数进行声明*/char *inp(int); void sort(int);void show(int n);void itf();void ini(); void minitf();void datacopy(struct student *in,struct student *out);void universal_search();void universal_sort();void import();/*函数指针,实现被调函数对调用函数的处理*/char *(*loop)(int);/*导入默认其他数据文件*/void import(){int n=5;char *imp,*a="\nerror on open ";imp=(char*)malloc(sizeof(char)*80);puts("\nplease input data's address like this 'd:\\data.txt'\n\n");scanf("%s",imp);/*打开*/if((fp=fopen(imp,"r"))==NULL){/*打开文件若文件不存在则直接返回*/gotoxy(30,12);printf("The data file is not exist\n");TYPEIN;return ;}while(EOF!=n){ stu[++cou]=(struct student *)malloc(sizeof(struct student));n=fscanf(fp,"%s\t%s\t%s\t%s\t%s\t%s\t%s\n",stu[cou]->cnm,stu[cou]->nam, /*把学生资料存入数组*/stu[cou]->dom,stu[cou]->nat,stu[cou]->add,stu[cou]->tel,stu[cou]->qq);}cou--;/*最后一行为空,删除*/gotoxy(20,12);printf("The data file has been read successfully");TYPEIN;(*loop)(0);}/*通用搜索,可以搜索符合任意条件的所有信息。

但效率低下,不适用于大型数据*/void universal_search(){while(1){ char* cmp[7],tar[40];int n,i=0,sta;for(n=0;n<7;cmp[n++]=(char*)malloc(sizeof(char)*40));/*界面及功能说明*/minitf();gotoxy(55,24);printf("press 'Esc' to goback");gotoxy(30,4);puts("Universal Search\n");printf("please input any piece of the students' information\n\n");/*and it will show the complete information of all the students who match your condition*//*BUT it will take you a long time to wait if your datas file is bigger than 100MB.AND this program has not mean to jump out of it.*/strcpy(tar,(*loop)(2));/*输入*/fso('s');/*同步文件*//*我自己都没想到这么漂亮~~~*/minitf();printf("Number\tName\tDorm\tNative\tAddress\tTelephone\tQQ\n\n");while(EOF!=fscanf(fp,"%s\t%s\t%s\t%s\t%s\t%s\t%s\n",cmp[0],cmp[1],cmp[2],cmp[3],cmp[4],cmp[5],cmp[6 ]))/*读文件*/for(n=0;n<7;n++)/*对比*/if(0==strcmp(cmp[n],tar)){ printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n",cmp[0],cmp[1],cmp[2],cmp[3],cmp[4],cmp[5],cmp[6]);i++;if(i>15){ i=0;(*loop)(1);minitf();printf("Number\tName\tDorm\tNative\tAddress\tTelephone\tQQ\n\n");}}puts("\nThat's all");(*loop)(1);}}/*通用排序,实现按任意项目排序*/void universal_sort(){ char cmd;minitf();gotoxy(30,4);puts("Universal Sort\n");printf("Sort by\n");puts("1 for Number\n2 for Name\n3 for Dorm\n4 for Native\n5 for Address\n6 for Telephone\n7 for QQ");cmd=*(*loop)(1);puts("\nSorting...\n");sort(cmd-'0');puts("the data has been sorted as you mean\n");*(*loop)(1);}/*据说主函数的函数指针不能乱用,所以让位给inp函数*/void main(){ inp(-1);}goodbye(){/*退出程序前保存、GoodBye*/fso('s');fclose(fp);clrscr();gotoxy(30,12);puts("THANK YOU FOR TESTING");TYPEIN;exit(1);}/*输入,及对不同输入的不同处理。

goback为-1时进行初始化操作,,0时不返回调用函数,1时为命令控制,2为需要返回输入字符串*/static char *inp(int goback){ char tar[40],ch; /*用于储存输入字符串*/int n=0;if(-1==goback){/*进行初始化*/cou=-1;syc=1;ord=1;goback=0;/*变量初始化*/loop=inp;fso('o');/*打开文件*/}while(1){if(0==goback){/*刷新界面*/itf();printf("\nplease input your command..\n");}ch=getch();/*返回被调函数*/if(goback){ /*无法修改首字符*/n=-1;/*n为数组中末尾有效字符的位置*/do{ putch(ch);switch (tar[++n]=ch){ /*若输入首字符为下列字母则进入相应函数,否则把字符地址返回调用函数*/case 27: goback=0;(*inp)(0);break;/*返回主菜单,27为Esc的ASCII码*/ /* case '\t': return "\n";break;若按Tab,返回空输入*/case 13:break;/*若按回车,返回空输入。

13为getch()获得的回车的值,与'\n'不同,我也没办法。

*/case ' ':ch='\n';break;/*空格当回车处理*/case 8:putch(' ');putch(8);n--;ch=getch();break;/*退格*/default:/*把输入存如字符串*/if(1==goback)return tar;ch=getch();break;/*把输入字符串赋值给tar[40],返回*/}}while(13!=ch);tar[n+1]='\0';return tar;}/*返回主菜单*/else{ switch (ch){ /*若输入首字符为下列字母则进入相应函数,否则把字符地址返回调用函数*/ case 'a': add();continue;break;case 'd': del();continue;break;case 'f': fin();continue;break;case 's': fso('s');puts("\nthe file has been saved\n");getch();continue;break;case 'l': lis();continue;break;case 'i': import();break;case 'u': universal_search();continue;break;case 'o': universal_sort();continue;break;case 13: continue;break;/*对回车忽略*/case 'e': goodbye();break;default:puts("\nUnlegal Command\n");printf("please input your command..\n");break;}}}}/*精简界面*/void minitf(){clrscr();/*清屏*/gotoxy(1,1); /*光标位置*/printf("|-------------------------Contacts Management System--------------------------|");gotoxy(60,2);printf("developed by kdjf");/*版权*/gotoxy(1,4);}/*绘制简单界面*/void itf(){/*若不声明字符串直接用put()输出,会造成界面混乱。

相关文档
最新文档