人员通讯录教材1、问题描述编写一个简单的通讯录管理程序。通讯录记

合集下载

2023年程序设计通讯录管理系统 通讯录管理系统python课程设计(五篇)

2023年程序设计通讯录管理系统 通讯录管理系统python课程设计(五篇)

2023年程序设计通讯录管理系统通讯录管理系统python课程设计(五篇)范文为教学中作为模范的文章,也经常用来指写作的模板。

经常用于文秘写作的参考,也可以作为演讲材料编写前的参考。

那么我们该如何写一篇较为完善的范文呢?下面是我为大家收集的优秀范文,供大家参考借鉴,盼望可以关心到有需要的伴侣。

cout“(2)删除:” cout“(2)按姓名排序:” void inter::add(char no[13],char name[20],char address[100],char tel_no[12],char post_code[7],char e_mail[40]){ int x=1;for(int i=0;i35;i++)return 0;} {} if(!strcmp(st[i].no,“0”)){}if(x==0)break;strcpy(st[i].address,address);strcpy(st[i].e_mail,e_mail);strc py(st[i].name,name);strcpy(st[i].no,no);strcpy(st[i].post_code,post_code) ;strcpy(st[i].tel_no,tel_no);x=0;//删除联系人void inter::del(char name[20]){int x=1;for(int i=0;i35;i++){ if(!strcmp(st[i].name,name)){strcpy(st[i].address,“0”);strcpy(st[i].e_mail,“0”);strcpy(st[i].name,“0”);strcpy(st[i].no,“0”);strcpy(st [i].post_code,“0”);strcpy(st[i].tel_no,“0”);}} } else x=0;if(x==0)cout“error:输入姓名错误!” 输入要修改的学号:”;char no1[13];cinno1;strcpy(st[i].no,no1);cout“修改胜利!” cins[h]-kind;箱:“ }cout“想连续修改吗(y/n)”c; }case '6':{存在!请检查输入的正确性!”;“ cout”指令错误!请重新输入!cinc;} }while(c=='y');break;char name[20];bool flag3=0;char c;do{cout“请输入您要删除的人的姓名:” cinname;for(int h=0;h {if(strcmp(name,s[h]-name)==0){flag3=1;i--;do{s[h]=s[h+1];h++;}while(h=i);}}if(flag3==0)cout“您要求删除的对象原来就不cout”要连续删除吗?(y/n)“ cinc;if(c!='y'c!='n'){cout”指令错误!请重新输入!cinc;}}while(c=='y');break;}case '0':{exit(0);break;}}cout“您想连续进行其他操作吗?(y/n)” bool flag4=0; docinw;if(w!='y'w!='n')cout“指令错误!请重新输入!” elseflag4=1;}while(flag4==0);if(w=='y'){cout“※※※※※※※※※※n”“2 按姓名查找n”“3 按类别查找n”“4 插入n”“5 修改n”“6 删除n”“0 退出n”;cinp;}else exit(0);}while(w=='y');for(int x=0;x delete s[x];cout“delete all members!” }</endl;}</i;x++){</endl;</endl;</endl;</i;h++)</endl;</endl;</endl;</endl;</endl;</endl;</i;h++)</endl;</endl;</endl;</endl;break;}</endl;</i;u++)</endl;</i;y++)</name<<“电话号码”<<tel<<“类别”<<kind<<“电子邮箱”<<email<<endl; </endl;</endl;</endl;</endl;</endl;</endl;</endl;</endl<<“类别</endl;</endl;</endl;</endl;</endl;</endl<<“类别</endl;</i;j++)</endl;</endl;</endl;</endl;</endl;</i;u++)</endl;</i;y++)</name<<“电话号码”<<tel<<“类别”<<kind<<“电子邮箱”<<email<<endl; </endl;</endl;</endl;</endl;</endl;</endl;</endl;cout<<“-------”<<endl;print(k);x=1;</endl;</endl;cout<<“---------------”</st[i].e_mail<<endl;</st[i].post_code<<endl;</st[i].tel_no<<endl;</st[i].address<<endl;</st[i].name<<endl;</st[i].no<<endl;</endl;if(!strcmp(st[i].name,name)){</endl;</endl;</endl;return</endl;return</endl;return</endl;return</endl;return</en dl;cout<<“</endl;cout<<“</endl;cout<<“</endl;cout<<“</endl;cout<<“</endl;cout<<“</endl;</endl;}</endl;cout<<“</endl;</endl;char</endl;</endl;</endl;</endl;char</endl;char</endl;cout<<“</endl;</endl<<endl</endl</endl</endl</endl</endl</endl</endl</endl</endl;top:cout<<“tt</st[i].tel_no<<endl;cout<<“邮编:”<<st[i].post_code<<endl;cout<<“e_mail:”<<st[i].e_mail<<endl;</n){< /n)i++;if(i==n){</n)i++;if(i==n){</n)i++;if(i==n){</n)i++;if(i==n){</n-1;j++){</n)i++;if(i==n){</n+1;i++)。

C++课程设计--简单的通讯录管理

C++课程设计--简单的通讯录管理

南京航空航天大学《C++语言程序设计》课程设计实验报告题目:简单的通讯录管理班级: 0110301班学号: 011030121 姓名:刘新铨成绩:指导教师:潘梅园日期:年月日报告内容一、程序功能二、课题分析三、设计中的问题与解决方法四、感想和心得五、源程序代码(含注释)六、典型测试数据组(含输入数据和输出结果)(一)程序功能1.增加记录,可选择增加数目2.删除记录,可选择删除多个或单个或全部3.显示所有记录,十个一屏4.按姓名查找一个记录5.按姓名查找并更改记录6.从一个正文文件读取记录7.把目前的记录存入一个正文文本8.更改排序关键字并排序(二)课题分析此课程设计的数据里面包含每个人的姓名,电话号码以及E-mail 地址等信息,并且每个人的数据默认以姓名为关键字,按照升序排放,排序方式可修改,同时为了减少执行“添加”“删除”等过,与复杂和繁琐的操作,采用单向链表来进行数据的存储与操作。

同时需要一个文本文件来存储联系人信息,数据可从该文本文件中导出。

(三)设计中遇到的问题及解决办法1.从文本文件中载入数据时,出现不能读的情况,解决办法是分情况,写程序分别进行处理。

2.从文本文件中载入数据时,出现不同类数据合并现象,原因是数据之间无空格,解决方法是增大字段占用宽度。

3.修改排序关键字时出现错误,解决办法:依次从原链表中摘除结点,按要求的顺序添加到新链表中,最后将首尾结点指针指向新链表。

(四)感想和心得通过这次的课程设计我明白了学习程序设计语言必须要勤做实验,通过实验总结经验。

我发现编写一个大一点的程序多么复杂,要掌握好C++就必须向老师说的那样,多操作,不然说平就提不高。

有很多东西你了解了,但当你去编写时,就会不断暴露出我们自己的问题,所以平时遇到的一些小问题一定要重视,越是基础的知识越要理解透彻,比如指针与数组方面的知识,一旦没有弄清楚,在设计程序时就会吃亏。

这次的课设中,我遇到了很多的问题,有的通过思考或查看书本解决了,有的还留在脑子里,只有通过孜孜不倦的求索我们才会有进步,不懂的思考就不能真正的掌握一门知识。

员工通讯录(标准版)

员工通讯录(标准版)

某某公司通讯录登记截止日期:202X.XX.XX员工通讯录(标准版)总结本员工通讯录(标准版)详细记录了某某公司多个部门员工的基本信息,包括部门归属、职务、姓名、办公号码、手机号码以及备注等关键信息。

以下是对该通讯录内容的全面总结:部门构成与人员分布:公司高管:通讯录首先列出了公司高管部门,虽然具体姓名及联系方式未填,但表明该公司在管理层设置上的重要层级。

职能部门:包括综合部、财务部、销售部、宣传部、后勤部等关键职能部门,每个部门均分配了一定数量的员工岗位,反映了公司运营的多元化和专业化。

业务部门:业务一部门作为业务线条的代表,其员工数量与职能部门相当,显示了公司在业务拓展方面的重视。

员工职务与姓名:职务空缺:通讯录中职务一栏多为空白,这可能是由于信息更新不及时或特定时期下职位尚未明确分配。

姓名保护:出于隐私保护考虑,实际员工姓名未在文档中显示,但这一结构设置表明了通讯录在记录员工个人信息时的规范性。

联系方式的多样性:办公号码与手机号码:通讯录提供了每位员工的办公电话号码和手机号码,体现了公司在通讯工具上的多样化配置,便于内部沟通与外部联系。

联系方式的空白:部分员工的联系方式未填写,可能是新入职员工信息尚未完善,或特定岗位对联系方式的公开程度有所限制。

备注信息的灵活性:备注栏的用途:该栏目为每位员工提供了额外的信息记录空间,如特殊技能、工作注意事项等,有助于提升团队协作效率。

空白备注的潜在意义:大量空白的备注栏可能意味着目前尚未有特别需要标注的信息,也为未来的信息更新留下了空间。

文档格式与规范性:表格化呈现:通讯录采用表格形式呈现,清晰明了地展示了各项信息,便于查阅和管理。

序号与分类:通过序号和部门分类,实现了对员工信息的有序排列,提高了信息检索的便捷性。

文档的目的与用途:内部沟通:作为公司内部的重要资料,通讯录促进了员工之间的快速沟通与协作。

外部联系:对于需要与公司进行业务往来的外部人员而言,通讯录中的联系方式提供了便捷的联系方式。

C语言程序设计个人通讯录管理

C语言程序设计个人通讯录管理

摘要通讯录[address book] 记录通讯地址的书本,通讯录涵盖了多项内容:可以储存一个人的姓名、手机号码、家庭住址、QQ等,以方便联系。

通过学习我设计一个个人通讯录管理,这个系统可以方便人们的查找个人信息,他具有快速查找的功能,主要是通过按姓名查找、按手机号码查找、按地址查询等。

这个通讯录可以修改已存所有人的任何信息,也可以删除里面你不想储存人的信息,当你在运行删除的时候,系统会再次提醒你是否删除,一旦删除将会永远删除。

关键字:通讯录查找删除重庆科技学院课程设计任务书设计题目:个人通讯录管理系统杨治明 2012年1月1日目录摘要 (1)课程设计责任书 (2)软件需求分析说明书 (4)第一章系统分析与设计 (5)第二章软件的实现 (6)2.1 软件界面设计 (6)2.2 软件的数据(结构)设计 (6)2.3 软件的算法设计 (6)第三章软件测试 (7)第四章软件使用说明书 (8)致谢 (9)参考文献 (10)软件需求分析说明书个人通讯录管理是个可以储存、修改、查看、查找、删除的功能。

在这个程序中可以储存一个人的姓名、家庭住址、手机号码、QQ号等信息,可以同时查看所有已存的信息,如果已存的数量过多,你可以选择快速查找,快速查找方式有:按姓名查找、按家庭住址查找、按手机号码查找、按QQ号查找。

如果要删除信息,只要输入你要删除信息的编号就可以删除,在删除过程中,系统会再次提醒你是否确认删除,以免后悔。

如果确定删除将会永远删除。

这个程序也可以修改,输入想修改的编号,就可以修改了。

如果你输入的编号不存在,系统将会提示你是否查看所有已存的数据。

第五章系统分析与设计2.1 软件界面设计图2.1 通讯录管理的主界面根据主界面的提示选择你想要执行的任务项钱的字母图2.2 添加联系人在添加联系人中尼可以输入姓名、地址、电话号码、QQ号,输入好之后你可以继续完成其他选项。

图2.3 浏览信息按b 屏幕上将显示已储存的个人信息,按a 将继续为你服务。

通讯录管理程序课程设计java

通讯录管理程序课程设计java

下面是一个简单的Java程序,用于管理通讯录。

这个程序包括添加联系人、删除联系人、查找联系人和显示所有联系人的功能。

```javaimport java.util.ArrayList;import java.util.Scanner;class Contact {String name;String phoneNumber;Contact(String name, String phoneNumber) { = name;this.phoneNumber = phoneNumber;}}class AddressBook {ArrayList<Contact> contacts = new ArrayList<>();void addContact(Contact contact) {contacts.add(contact);}void deleteContact(String name) {for (Contact contact : contacts) { if (.equals(name)) { contacts.remove(contact);break;}}}Contact findContact(String name) {for (Contact contact : contacts) { if (.equals(name)) { return contact;}}return null;}void displayContacts() {for (Contact contact : contacts) {System.out.println("Name: " + + ", Phone Number: " + contact.phoneNumber);}}}public class Main {public static void main(String[] args) {AddressBook addressBook = new AddressBook();Scanner scanner = new Scanner(System.in);boolean running = true;while (running) {System.out.println("1. Add Contact");System.out.println("2. Delete Contact");System.out.println("3. Find Contact");System.out.println("4. Display Contacts"); System.out.println("5. Exit");System.out.print("Enter your choice: ");int choice = scanner.nextInt();scanner.nextLine(); // Consume newlineleft-over after reading intswitch (choice) {case 1: {System.out.print("Enter name: ");String name = scanner.nextLine();System.out.print("Enter phone number: ");String phoneNumber = scanner.nextLine();addressBook.addContact(newContact(name, phoneNumber));break;}case 2: {System.out.print("Enter name of contact to delete: ");String nameToDelete = scanner.nextLine();addressBook.deleteContact(nameToDelete);break;}case 3: {System.out.print("Enter name of contact to find: ");String nameToFind = scanner.nextLine();Contact foundContact = addressBook.findContact(nameToFind);if (foundContact != null) {System.out.println("Name: " + + ", Phone Number: " + foundContact.phoneNumber);} else {System.out.println("Contact not found.");}break;}case 4: {addressBook.displayContacts();break;}case 5: {running = false; // Exit the loop and end the program when user selects "Exit" option.break; // Not strictly necessary here as the loop will end and the program will exit, but included for good practice and explicitness for future reference/maintenance by other developers.}default: {System.out.println("Invalid choice, please enter a number between 1 and 5.");}}}scanner.close();}}。

个人通讯录管理系统课程设计

个人通讯录管理系统课程设计

个人通讯录管理系统课程设计一、引言个人通讯录管理系统是一种方便用户管理联系人信息的软件,它可以帮助用户方便地存储、查找、编辑和删除联系人信息。

本文将介绍一个基于Java语言开发的个人通讯录管理系统的课程设计。

二、需求分析在开发个人通讯录管理系统之前,我们需要进行需求分析,明确系统所需要实现的功能。

根据实际需求,本系统需要实现以下功能:1. 用户登录:用户可以通过输入用户名和密码登录系统。

2. 联系人管理:用户可以添加、查找、编辑和删除联系人信息。

3. 分组管理:用户可以将联系人分组,并对不同分组进行管理。

4. 备份与恢复:用户可以备份和恢复联系人信息。

5. 数据统计:系统可以对联系人信息进行统计,并生成相应的报表。

三、概要设计概要设计是指在需求分析基础上,对系统进行整体设计,确定各模块之间的关系。

本系统采用MVC(Model-View-Controller)架构模式,具体如下:1. 模型层(Model):负责数据存储和处理,包括用户信息、联系人信息等数据操作。

2. 视图层(View):负责数据展示和用户交互界面的呈现,包括登录界面、主界面、联系人管理界面等。

3. 控制层(Controller):负责处理用户请求和数据流转,包括用户登录、联系人管理、分组管理、备份与恢复等功能。

四、详细设计在概要设计的基础上,我们需要进行详细设计,确定各个模块的具体实现方式。

本系统主要包括以下几个模块:1. 用户登录模块:用户输入用户名和密码后,系统会进行验证,验证成功后跳转到主界面。

2. 联系人管理模块:用户可以添加、查找、编辑和删除联系人信息。

添加联系人时需要输入姓名、电话号码等信息;查找联系人时可以按照姓名或电话号码进行查找;编辑联系人时可以修改姓名、电话号码等信息;删除联系人时需要先选择要删除的联系人。

3. 分组管理模块:用户可以将联系人分组,并对不同分组进行管理。

添加分组时需要输入分组名称;将联系人移动到不同的分组中时需要先选择要移动的联系人。

通讯录的制作c语言

通讯录的制作c语言

通讯录的制作c语言一、前言通讯录是一个常见的管理工具,它可以帮助我们更好地组织和管理联系人信息。

在日常生活中,我们经常需要制作通讯录来保存联系人信息。

本文将介绍如何使用C语言来制作一个简单的通讯录程序。

二、需求分析在开始编写程序之前,我们需要先确定程序的需求。

通讯录程序需要具备以下功能:1. 添加联系人:输入联系人信息并保存到文件中。

2. 显示所有联系人:从文件中读取所有联系人信息并显示。

3. 查找联系人:根据姓名查找并显示相应的联系人信息。

4. 修改联系人:根据姓名修改相应的联系人信息。

5. 删除联系人:根据姓名删除相应的联系人信息。

三、程序设计1. 文件结构设计为了实现通讯录数据的持久化存储,我们可以将所有联系人信息保存在一个文件中。

文件结构可以设计为以下格式:struct Contact {char name[20]; // 姓名char phone[20]; // 电话号码char email[30]; // 邮箱地址};2. 界面设计为了方便用户操作,我们可以设计一个简单的命令行界面,通过输入数字选择相应功能。

界面可以设计为以下格式:*********************** 通讯录管理系统 ** 1. 添加联系人 ** 2. 显示所有联系人 ** 3. 查找联系人 ** 4. 修改联系人 ** 5. 删除联系人 ** 0. 退出系统 ***********************请选择功能:3. 功能实现根据需求分析,我们需要实现以下功能:1. 添加联系人添加联系人需要输入姓名、电话号码和邮箱地址,并将数据保存到文件中。

可以使用以下代码实现:void addContact() {struct Contact contact;printf("请输入姓名:");scanf("%s", );printf("请输入电话号码:");scanf("%s", contact.phone);printf("请输入邮箱地址:");scanf("%s", contact.email);FILE *fp = fopen("contacts.dat", "ab");fwrite(&contact, sizeof(struct Contact), 1, fp);fclose(fp);printf("添加成功!\n");}2. 显示所有联系人显示所有联系人需要从文件中读取数据并输出到屏幕上。

C课程设计报告简单通讯录管理

C课程设计报告简单通讯录管理

C++语言课程设计报告一、课题名称:简单通讯录管理二、程序功能:一个简单的通讯录管理程序,具有插入、删除、显示、修改和查询联系人通讯方式等功能。

三、课题分析;本课程设计的数据有每个人的姓名,电话号码和Email地址,并且所有人的数据默认以姓名为关键字按升序排放,排序方式可修改,同时为了减少执行“添加”、“删除”等过于复杂和繁琐的操作,采用单向链表来进行数据的存储和操作。

同时需要一个文本文件来存储联系人信息,数据可从该文本文件中导出。

四、设计中的问题与解决方法:从文本文件中载入数据时,出现不能读的情况,解决的办法是分情况,写程序分别进行处理。

此外从文本文件中载入数据时,出现不同类数据合并现象,原因是数据之间无空格,解决方法是增大字段占用宽度。

五、对设计的感想和心得:程序的编写应是:三分编写,七分调试;熟能生巧,这次在用指针处理单向链表时,感觉很吃力,以前对这块内容并不十分清楚,所以在今后的编程之中,尽可能把基本技能练习熟练;为了方便使用,我选择了汉化菜单;3.程序源代码(及简单注释):主函数如下:#include<>#include<>#include<>#include<>#include<>#include<>#include"简单通讯录.h"voidadd(AddrList&addrlist)AddrList();cout<<"已全部删除!\n";}elsecout<<"未删除!\n";();();}voidquit(AddrList&addrlist)del加一条记录", "2.删除一条记录","3.显示所有记录","4.按姓名修改查找并显示一条记录", "5.按姓名修改查找并修改一条记录","6.从文件中添加数据到库表中","7.将库表中的数据写入文件","8.排序","9.清空","0.退出系统"};inti;charc;do{system("cls");/*清屏*/cout<<"\n\n======欢迎使用通讯录管理系统======\n\n";for(i=0;i<10;i++)cout<<m[i]<<endl;cout<<"\n================================ ==\n";cout<<"请选择(1-9,0):";cin>>c;}while(c<'0'||c>'9');return(c-'0');}头文件如下:classNode//节点类{charName[10];//姓名charMobilePhone[15];//手机号码charEMail[20];//email地址Node*next;//下一结点指针public:Node(char*name=NULL,char*mobilephone=NULL ,char*email=NULL)//构造函数,各参数均有缺省值{if(name)strcpy(Name,name);elsestrcpy(Name,"");if(mobilephone)strcpy(MobilePhone,mobilephone);elsestrcpy(MobilePhone,"");if(email)strcpy(EMail,email);elsestrcpy(EMail,"");}voidShow()//显示节点数据{cout<<setw(11)<<Name<<setw(16)<<MobilePho ne<<setw(21)<<EMail<<'\n';}voidSetName(charname[])//修改姓名{strcpy(Name,name);}voidSetMobilePhone(charmobilephone[])//修改手机号码{strcpy(MobilePhone,mobilephone);}voidSetEMail(charemail[])//修改email地址{strcpy(EMail,email);}char*GetName()//返回姓名地址{returnName;}char*GetMobilePhone()//返回手机号码地址{returnMobilePhone;}char*GetEMail()//返回Email地址{returnEMail;}Node*Getnext()//返回next{returnnext;}friendclassAddrList;//将AddrList类说明为友元类};classAddrList//AddList链表类{Node*HeadPtr;//链表首指针Node*TailPtr;//链表为指针intTag;//排序状态标志,tag=1时按姓名排;tag=2时按手机号码排public:AddrList();//构造函数,创建空链表,将tag 设为1voidAddTail(Node*p);//将p指向的结点加入到链表尾部voidAddSort(Node*p);//将p指向的结点按Tag 指定的顺序插入到链表中Node*LookUp(char*name);//按姓名查找结点,返回该结点的指针voidDelete(char*name);//删除指定姓名的结点voidSort(inttag);//按tag指定的关键字重新排序voidShowAll();//显示全部结点,每10个显示一屏voidSetTag(intt);//置tag值intGetTag();//取tag值Node*GetHeadPtr();//取首指针~AddrList();//释放链表空间voidCreateList(char*filename);//从二进制文件读入数据voidWriteToFile(char*filename);//将链表中数据写入指定的二进制文件};AddrList::AddrList()//构造函数,创建空链表,将tag设为1{HeadPtr=TailPtr=NULL;Tag=1;}voidAddrList::AddTail(Node*p)//将p指向的节点加入到链表尾部{p->next=NULL;if(!HeadPtr)HeadPtr=p;elseTailPtr->next=p;TailPtr=p;}voidAddrList::AddSort(Node*p)//将p指针的节点按Tag指定的顺序插入到链表中{p->next=NULL;if(HeadPtr==NULL){HeadPtr=TailPtr=p;return;}else{Node*p1=HeadPtr,*p2;while(((Tag==1)&&strcmp(p->Name,p1->Name) >0&&p1->next)||(Tag==2)&&(strcmp(p->MobilePhone,p1->Mobi lePhone)>0&&p1->next)){p2=p1;p1=p1->next;}if(((Tag==1)&&strcmp(p->Name,p1->Name)<0) ||(Tag==2)&&(strcmp(p->MobilePhone,p1->Mobi lePhone)<0)){if(p1==HeadPtr){p->next=p1;HeadPtr=p;}else{p2->next=p;p->next=p1;}}else{p1->next=p;TailPtr=p;}}}Node*AddrList::LookUp(char*name)//按姓名查找节点,返回该节点指针{Node*p;p=HeadPtr;while(p!=NULL){if(strcmp(p->Name,name)==0)returnp;p=p->next;}returnNULL;}voidAddrList::Delete(char*name)//删除指定姓名的节点{Node*p1,*p2;if(HeadPtr==NULL){cout<<"未删除!\n";}elseif(strcmp(HeadPtr->Name,name)==0){p1=HeadPtr;HeadPtr=HeadPtr->next;cout<<"删除成功!\n";}else{p1=HeadPtr;p2=HeadPtr->next;while(strcmp(p2->Name,name)&&p2){p1=p2;p2=p2->next;}if(p2&&strcmp(p2->Name,name)==0){p1->next=p2->next;cout<<"删除成功!\n";}elsecout<<name<<"未删除!\n";}}voidAddrList::Sort(inttag)//按tag指定的关键字重新排序{AddrList*newptr;newptr=newAddrList;Node*p1=HeadPtr,*p2;newptr->Tag=tag;while(p1){p2=p1;p1=p1->next;newptr->AddSort(p2);}HeadPtr=newptr->HeadPtr;TailPtr=newptr->TailPtr;Tag=newptr->Tag;newptr->HeadPtr=NULL;newptr->TailPtr=NULL;deletenewptr;}voidAddrList::ShowAll()//显示全部节点,每10个显示一屏{if(HeadPtr==NULL){cout<<"无数据!\n";();();}else{intn=0;Node*p=HeadPtr;cout<<setw(11)<<"姓名"<<setw(16)<<"手机号码"<<setw(21)<<"Email地址"<<'\n';while(p){p->Show();p=p->next;n++;if(n%10==0||p==NULL)system("pause");}}}voidAddrList::SetTag(intt)//置tag值{Tag=t;}intAddrList::GetTag()//取tag值{returnTag;}Node*AddrList::GetHeadPtr()//取首指针{returnHeadPtr;}AddrList::~AddrList()//释放链表空间{Node*p;while(HeadPtr){p=HeadPtr;HeadPtr=HeadPtr->next;deletep;}}voidAddrList::CreateList(char*filename)//从指定文件中读入数据,构造链表{ifstreamin(filename,ios::in|ios::binary|i os::nocreate);if(!in)return;((char*)&Tag,sizeof(int));intnodenum;((char*)&nodenum,sizeof(int));Node*nodeptr;for(inti=0;i<nodenum;i++){nodeptr=newNode;((char*)nodeptr,sizeof(Node));AddSort(nodeptr);}();}voidAddrList::WriteToFile(char*filename)//将链表中数据写入指定的文件{ofstreamout(filename,ios::out|ios::binary );if(!out){cout<<"打不开!\n";exit(1);}Node*nodeptr=HeadPtr;intnodenum=0;while(nodeptr){nodenum++;nodeptr=nodeptr->next;}((char*)&Tag,sizeof(int));((char*)&nodenum,sizeof(int));nodeptr=HeadPtr;while(nodeptr){((char*)nodeptr,sizeof(Node));nodeptr=nodeptr->next;}();}五、典型测试数据组:aaa11111bbb33333ccc22222ddd44444。

(完整word版)c语言程序设计通讯录管理系统

(完整word版)c语言程序设计通讯录管理系统

1.需求分析根据题目要求,通讯录保存在文件中,要提供文件的输入和输出功能;还有就是要提供通讯录添加(个人信息包括姓名、学号、年龄、住址、电子邮件等)、删除、显示、修改等基本功能。

2。

概要设计系统总体设计是信息的输入、信息的编辑和退出.系统功能模块如下:1.添加通讯录;2.输出通讯录;3.查找通讯录;4.修改通讯录;5.删除通讯录;6.退出通讯录;3.详细设计1.通讯录里无信息,所以要添加信息.用键盘逐个输入通讯录里联系人的信息.2.输出通讯录用于让使用者观看通讯录里所有的信息.3。

查找通讯录是让使用者可以通过电话或姓名来查找通讯录里的联系人.4。

修改通讯录是让使用者通过姓名查找到通讯录里的联系人,然后其作出修改。

5.删除通讯录是用来按照联系人的姓名或电话来单独删除通讯录中一些不想要的联系人。

还可以集体删除通讯录中的联系人.6.退出通讯录系统。

4.主要源程序代码#include 〈stdio。

h>#include 〈stdlib.h〉#include 〈string.h>#include 〈conio。

h〉struct record{char name[20];char age[20];char phone[20];char adress[40];char number[30];char e_mail[20];}contact[500];int NO=0;FILE *fp;void mainmenu();void newrecord();void browsemenu();void searchmenu();void searchname();void searchphone();void modifymenu();void deletemenu();void deleteall();void deletesingle();void deletename();void deletephone();int loadfile();void savefile();void main(){printf(”\n\t\t :)欢迎使用通讯录管理系统beta”);printf(”\n\t\t文件导入中……请稍后……\n\n\n\n\n");system(”cls”);loadfile();while (1){mainmenu();}}void mainmenu(){char choice;system(”cls");printf("\n\t\t******************** 主菜单********************");printf("\n\t\t****************** 1-新建菜单******************”);printf(”\n\t\t******************2—浏览菜单******************”);printf(”\n\t\t****************** 3—查找菜单******************”);printf("\n\t\t******************4—修改菜单******************”);printf(”\n\t\t******************5-删除菜单******************”);printf(”\n\t\t****************** 6-退出******************");printf("\n\t\t************************************************”); printf(”\n\t\t请选择:");choice=getch();switch (choice){case '1':newrecord();break;case ’2’:browsemenu();break;case ’3’:searchmenu();;break;case '4’:modifymenu();break;case ’5’:deletemenu();break;case '6’:exit(0);default:mainmenu();}}void newrecord(){printf(”\n\t\t****************请输入联系人信息****************\n”);printf(”\n\t\t输入姓名:”);scanf(”%s”,&contact[NO]。

java课程设计报告之个人通讯录管理程序

java课程设计报告之个人通讯录管理程序

面向对象程序设计(Java)课程设计报告题目:个人通讯录管理程序学院:专业:班级:姓名:指导教师:2010年12月31日一、设计内容 (3)二、设计要求 (3)三、总体设计 (3)四、具体设计 (3)五、具体分工 (5)六、程序设计 (5)1、UseSystem;类 (5)2、MySystem类 (6)3、User类 (19)4、UserService类 (22)5、DAO类 (28)七、实习心得 (29)一、设计内容设计GUI界面的个人通讯录,用户可以添加,删除,修改,查询,打印通讯录中的记录!二、设计要求用图形用户界面实现:1、能实现增加记录,删除记录,显示所有记录,查询记录,文件备份。

2、通讯录的功能包括:姓名,电话,Email等。

3、使用数据库做后台连接!三、总体设计有5个类各类之间的关系!1、DAO.java该类主要负责进行数据库连接,含有数据库的连接方法!2、User.java实体类主要作用是实现java的封装特性,利用服务类实现各种增删改查的操作方法!3、UserService.java该类主要是对各种操作方法的定义和实现,是实现增删改查等主要功能的服务类!4、MySeystem该类主要是实现图形化界面的!实现按钮,输入框,标签等图形化界面!5、UseSystem该类是程序的主类,该类含有main方法,程序从该类开始执行。

四、具体设计将5个java文件保存到同一个文件夹中,例如:C:\test。

将5个java文件分别编译生成相应的字节码(class)文件。

然后,用java解释器运行主类:主界面修改界面添加界面五、具体分工我参与设计添加页面,添加方法,数据库部分操作。

六、程序设计代码:1、UseSystem;类public class UseSystem {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubnew MySystem().validate();}}2、MySystem类import java.awt.*;import java.awt.*;import java.awt.event.*;import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.util.*;import javax.swing.*;import er;import erService;public class MySystem extends JFrame implements ActionListener, ItemListener {UserService uService = new UserService();User u=new User();Choice choice = new Choice();JTextField t1 = new JTextField(15);JButton b1 = new JButton("查询");java.awt.List list = new java.awt.List(6, true);JButton b2 = new JButton("增加");JButton b3 = new JButton("删除");JButton b4 = new JButton("修改");JButton b5 = new JButton("导出");Container con = getContentPane();java.util.List<User> uList = new ArrayList<User>();//static Vector<User> uv = new Vector<User>(100);int flag=0;MySystem() {super("个人通讯录管理程序");setSize(400, 400);con.setLayout(new BorderLayout());choice.add("姓名");choice.add("类别");choice.add("手机号码");choice.add("查询全部记录");Panel p1 = new Panel();// Panel p2=new Panel();Panel p3 = new Panel();p1.setBackground(Color.blue);p1.setSize(300, 10);// p2.setBackground(Color.cyan);// p2.setSize(380, 300);p3.setBackground(Color.green);list.setSize(300, 300);p1.add(choice);p1.add(t1);p1.add(b1);p3.add(b2);p3.add(b4);p3.add(b3);p3.add(b5);con.add("North", p1);con.add("Center", list);con.add("South", p3);setVisible(true);validate();addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {setVisible(false);System.exit(0);}});b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);b5.addActionListener(this);list.addItemListener(this);}@Overridepublic void actionPerformed(ActionEvent e) {if (e.getSource() == b2) {//通过产生外部窗体,来实现添加功能final JFrame newf = new JFrame("添加联系人");newf.setSize(400, 400);newf.setVisible(true);newf.setLayout(new GridLayout(10, 2));JLabel jb1 = new JLabel("联系人姓名:");final JTextField jtf1 = new JTextField(15); Panel pp1 = new Panel();pp1.add(jb1);pp1.add(jtf1);newf.getContentPane().add(pp1);JLabel jb2 = new JLabel("联系人电话:"); final JTextField jtf2 = new JTextField(15); Panel pp2 = new Panel();pp2.add(jb2);pp2.add(jtf2);newf.getContentPane().add(pp2);JLabel jb3 = new JLabel("固定电话:"); final JTextField jtf3 = new JTextField(15); Panel pp3 = new Panel();pp3.add(jb3);pp3.add(jtf3);newf.getContentPane().add(pp3);JLabel jb4 = new JLabel("联系人QQ :"); final JTextField jtf4 = new JTextField(15); Panel pp4 = new Panel();pp4.add(jb4);pp4.add(jtf4);newf.getContentPane().add(pp4);JLabel jb7 = new JLabel("联系人email:"); final JTextField jtf7 = new JTextField(15); Panel pp7 = new Panel();pp7.add(jb7);pp7.add(jtf7);newf.getContentPane().add(pp7);JLabel jb8 = new JLabel("联系类别:");final JTextField jtf8 = new JTextField(15);Panel pp8 = new Panel();pp8.add(jb8);pp8.add(jtf8);newf.getContentPane().add(pp8);JLabel jb5 = new JLabel("联系人工作:");final JTextField jtf5 = new JTextField(15);Panel pp5 = new Panel();pp5.add(jb5);pp5.add(jtf5);newf.getContentPane().add(pp5);JLabel jb6 = new JLabel("现居住地地址:");final JTextField jtf6 = new JTextField(15);Panel pp6 = new Panel();pp6.add(jb6);pp6.add(jtf6);newf.getContentPane().add(pp6);JButton bb1 = new JButton("提交");JButton bb2 = new JButton("关闭");Panel pp9 = new Panel();pp9.add(bb1);pp9.add(bb2);newf.getContentPane().add(pp9);// JTextArea jta=new JTextArea();Panel pp10=new // Panel();pp10.add(jta);newf.getContentPane().add();bb1.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent ee) { User u = new User();u.setName(jtf1.getText());u.setTel(jtf2.getText());u.setPhone(jtf3.getText());u.setQq(jtf4.getText());u.setWork(jtf5.getText());u.setAddress(jtf6.getText());u.setEmail(jtf7.getText());u.setCategory(jtf8.getText());if (uService.add(u)) {JOptionPane.showMessageDialog(null, "添加成功!!!");} elseJOptionPane.showMessageDialog(null, "添加失败!!!");}});bb2.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent ee) {newf.setVisible(false);}});}if (b1 == e.getSource()) {//通过调用select();实现模糊查询list.removeAll();select();}if (b3 == e.getSource()) {//通过获得联系人在list中的索引号,来实现对联系人的删除if (flag == 0) {JOptionPane.showMessageDialog(null, "不能删除该行!");}u = uList.get(flag - 1);if (uService.delById(u.getId())) {JOptionPane.showMessageDialog(null, "删除成功!");uList.remove(flag - 1);list.removeAll();list.add("编号" + " " + "姓名" + " " + "电话");for (User u1 :uList) {list.add(u1.getId() + ": " + u1.getName() + " "+ u1.getTel());}} elseJOptionPane.showMessageDialog(null, "删除失败!");}if(b4==e.getSource()){//通过获得联系人在list中的索引号,同弹出一个外部窗体其中//有联系人的信息,用户可以修改.并在将其存入数据库if (flag == 0) {JOptionPane.showMessageDialog(null, "不能修改首行!");return;}u = uList.get(flag - 1);final JFrame newf = new JFrame("添加联系人");newf.setSize(400, 400);newf.setVisible(true);newf.setLayout(new GridLayout(10, 2));JLabel jb1 = new JLabel("联系人姓名:");final JTextField jtf1 = new JTextField(u.getName(),15);Panel pp1 = new Panel();pp1.add(jb1);pp1.add(jtf1);newf.getContentPane().add(pp1);JLabel jb2 = new JLabel("联系人电话:");final JTextField jtf2 = new JTextField(u.getTel(),15);Panel pp2 = new Panel();pp2.add(jb2);pp2.add(jtf2);newf.getContentPane().add(pp2);JLabel jb3 = new JLabel("固定电话:");final JTextField jtf3 = new JTextField(u.getPhone(),15);Panel pp3 = new Panel();pp3.add(jb3);pp3.add(jtf3);newf.getContentPane().add(pp3);JLabel jb4 = new JLabel("联系人QQ :");final JTextField jtf4 = new JTextField(u.getQq(),15);Panel pp4 = new Panel();pp4.add(jb4);pp4.add(jtf4);newf.getContentPane().add(pp4);JLabel jb7 = new JLabel("联系人email:");final JTextField jtf7 = new JTextField(u.getEmail(),15);Panel pp7 = new Panel();pp7.add(jb7);pp7.add(jtf7);newf.getContentPane().add(pp7);JLabel jb8 = new JLabel("联系类别:");final JTextField jtf8 = new JTextField(u.getCategory(),15);Panel pp8 = new Panel();pp8.add(jb8);pp8.add(jtf8);newf.getContentPane().add(pp8);JLabel jb5 = new JLabel("联系人工作:");final JTextField jtf5 = new JTextField(u.getWork(),15);Panel pp5 = new Panel();pp5.add(jb5);pp5.add(jtf5);newf.getContentPane().add(pp5);JLabel jb6 = new JLabel("现居住地地址:");final JTextField jtf6 = new JTextField(u.getAddress(),15);Panel pp6 = new Panel();pp6.add(jb6);pp6.add(jtf6);newf.getContentPane().add(pp6);JButton bb1 = new JButton("提交");JButton bb2 = new JButton("关闭");Panel pp9 = new Panel();pp9.add(bb1);pp9.add(bb2);newf.getContentPane().add(pp9);bb1.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent ee) {u.setName(jtf1.getText());u.setTel(jtf2.getText());u.setPhone(jtf3.getText());u.setQq(jtf4.getText());u.setWork(jtf5.getText());u.setAddress(jtf6.getText());u.setEmail(jtf7.getText());u.setCategory(jtf8.getText());if(uService.update(u)){JOptionPane.showMessageDialog(null, "修改成功!");select();}else JOptionPane.showMessageDialog(null, "修改失败!"); }});bb2.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent ee) {newf.setVisible(false);}});}if(b5==e.getSource()){//实现全部联系人的导出File f=new File("user_information.txt");try {FileWriter w_file=new FileWriter(f);BufferedWriter b_file=new BufferedWriter(w_file);b_file.write("联系人编号\t姓名\t手机号码\t固定电话\tqq号码\temail\t类别\t工作\t现居住地地址\t");b_file.flush();for(User u:uService.getAllUser()){b_file.write(u.getId()+"\t"+u.getName()+"\t"+u.getTel()+"\t"+u.getP hone()+"\t"+u.getQq()+"\t"+u.getEmail()+"\t"+u.getCategory()+"\t"+u.getWork()+"\t"+u.g etAddress()+"\n");b_file.flush();}JOptionPane.showMessageDialog(null, "导出成功!");} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}}@Overridepublic void itemStateChanged(ItemEvent a) {int sum = Integer.parseInt(a.getItem().toString());flag=sum;}public void select(){if (choice.getSelectedItem().equals("姓名")) {//对姓名进行模糊查询uList.clear();for (User u : uService.getUser("name", t1.getText())){uList.add(u);}list.removeAll();list.add("编号" + " " + "姓名" + " " + "电话");for (User u :uList) {list.add(u.getId() + ": " + u.getName() + " "+ u.getTel());}}if (choice.getSelectedItem().equals("类别")) {//对类别进行模糊查询uList.clear();for (User u : uService.getUser("category", t1.getText())){uList.add(u);}list.removeAll();list.add("编号" + " " + "姓名" + " " + "电话");for (User u : uList) {list.add(u.getId() + ": " + u.getName() + " "+ u.getTel());}}if (choice.getSelectedItem().equals("手机号码")) {//对手机号码进行模糊查询uList.clear();for (User u : uService.getUser("tel", t1.getText())){uList.add(u);}list.removeAll();list.add("编号" + " " + "姓名" + " " + "电话");for (User u : uList) {list.add(u.getId() + ": " + u.getName() + " "+ u.getTel());}}if (choice.getSelectedItem().equals("查询全部记录")) {//对全部的联系人进行查询uList.clear();for (User u : uService.getAllUser()){uList.add(u);}list.removeAll();list.add("编号" + " " + "姓名" + " " + "电话");for (User u : uList) {list.add(u.getId() + ": " + u.getName() + " "+ u.getTel());}}}}3、User类public class User {private int id;private String name;private String tel;private String email;private String phone;private String category;private String address;private String work;private String qq;public User() {super();// TODO Auto-generated constructor stub}public User(int id, String name, String tel, String email, String phone,String category, String address, String work,String q) {super();this.id = id; = name;this.tel = tel;this.email = email;this.phone = phone;this.category = category;this.address = address;this.work = work;this.qq=q;}public String getQq() {return qq;}public void setQq(String qq) {this.qq = qq;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) { = name;}public String getTel() {return tel;}public void setTel(String tel) {this.tel = tel;}public String getEmail() {return email;}public void setEmail(String email) { this.email = email;}public String getPhone() {return phone;}public void setPhone(String phone) { this.phone = phone;}public String getCategory() {return category;}public void setCategory(String category) { this.category = category;}public String getAddress() {return address;}public void setAddress(String address) { this.address = address;}public String getWork() {return work;}public void setWork(String work) {this.work = work;}}4、UserService类import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import .system.model.*;public class UserService extends DAO {/**** 方法目的:添加联系人* @param u* @return*/public boolean add(User u){boolean flag=false;StringBuilder sql=new StringBuilder();sql.append("insert into TB_user (name,tel,phone,qq,email,category,work,address) values(?,?,?,?,?,?,?,?)");con=DAO.getConnect();try {pst=con.prepareStatement(sql.toString());pst.setString(1,u.getName());pst.setString(2,u.getTel());pst.setString(3,u.getPhone());pst.setString(4,u.getQq());pst.setString(5,u.getEmail());pst.setString(6,u.getCategory());pst.setString(7,u.getWork());pst.setString(8,u.getAddress());if(pst.executeUpdate()>0)flag=true;pst.close();con.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return flag;}/***** 方法目的:根据编号删除联系人* @param id* @return*/public boolean delById(int id){boolean flag=false;StringBuilder sql=new StringBuilder();sql.append("delete from TB_user where id=?");con=DAO.getConnect();try {pst=con.prepareStatement(sql.toString());pst.setInt(1, id);if(pst.executeUpdate()>0)flag=true;pst.close();con.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return flag;}/**** 方法目的:更新联系人* @param u* @return*/public boolean update(User u){boolean flag=false;StringBuilder sql=new StringBuilder();sql.append("update TB_user set name=?,tel=?,phone=?,qq=?,email=?,category=?,work=?,address=? where id=?");con=DAO.getConnect();try {pst=con.prepareStatement(sql.toString());pst.setString(1,u.getName());pst.setString(2,u.getTel());pst.setString(3,u.getPhone());pst.setString(4,u.getQq());pst.setString(5,u.getEmail());pst.setString(6,u.getCategory());pst.setString(7,u.getWork());pst.setString(8,u.getAddress());pst.setInt(9, u.getId());if(pst.executeUpdate()>0)flag=true;pst.close();con.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return flag;}/***** 方法目的:根据条件进行模糊查询* @param n* @param v* @return*/public List<User> getUser(String n,String v){List<User> uList=new ArrayList<User>();StringBuilder sql=new StringBuilder();User u=null;sql.append("select * from TB_User where "+n+" like ?");con=DAO.getConnect();try {pst=con.prepareStatement(sql.toString());pst.setString(1,"%"+v+"%");rs=pst.executeQuery();while(rs.next()){u=new User();u.setId(rs.getInt("id"));u.setName(rs.getString("name"));u.setAddress(rs.getString("address"));u.setCategory(rs.getString("category"));u.setEmail(rs.getString("email"));u.setPhone("phone");u.setTel(rs.getString("tel"));u.setQq(rs.getString("qq"));u.setWork(rs.getString("work"));uList.add(u);}pst.close();con.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return uList;}/*** 方法目的:得到全部的联系人* @return*/public List<User> getAllUser(){List<User> uList=new ArrayList<User>();StringBuilder sql=new StringBuilder();User u=null;sql.append("select * from TB_User");con=DAO.getConnect();try {pst=con.prepareStatement(sql.toString());rs=pst.executeQuery();while(rs.next()){u=new User();u.setId(rs.getInt("id"));u.setName(rs.getString("name"));u.setAddress(rs.getString("address"));u.setCategory(rs.getString("category"));u.setEmail(rs.getString("email"));u.setPhone("phone");u.setTel(rs.getString("tel"));u.setQq(rs.getString("qq"));u.setWork(rs.getString("work"));uList.add(u);}pst.close();con.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return uList;}}5、DAO类import java.sql.*;public class DAO {protected Connection con;protected Statement st;protected PreparedStatement pst;protected ResultSet rs;public static Connection getConnect(){Connection conn=null;Strings="jdbc:sqlserver://localhost:1433;databaseName=DB_WAB";try {Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");conn=DriverManager.getConnection(s,"sa","0000");} catch (Exception e) {System.out.println("错误提示:0"+e.getMessage());// e.printStackTrace();}return conn;}}七、实习心得实习,顾名思义,在实践过程中学习。

简单的c语言程序设计班级通讯录管理系统

简单的c语言程序设计班级通讯录管理系统

简单的c语言程序设计班级通讯录管理系统【1】班级通讯录管理系统是一种常见且实用的应用,可以用来方便地管理班级成员的联系信息。

本文将从简单的C语言程序设计的角度来介绍班级通讯录管理系统的设计与实现。

【2】在设计班级通讯录管理系统之前,我们首先需要确定系统的基本功能。

通常而言,一个班级通讯录管理系统应包含以下几个功能模块:添加成员信息、显示通讯录、查找成员、修改成员信息和删除成员。

这些功能模块将构成我们程序的主要结构。

【3】为了实现班级通讯录管理系统,我们首先需要定义一个结构体来表示每个成员的信息。

可以使用C语言的结构体来存储每个成员的尊称、学号、性别、通信等信息。

通过使用结构体,我们可以方便地将这些信息组织在一起,并进行对应的操作。

【4】在程序中,我们可以使用数组来存储多个成员的信息。

可以定义一个指定大小的成员数组来存放所有的班级成员信息。

通过数组的索引,我们可以访问和修改特定位置的成员信息,实现各种操作。

【5】在添加成员信息的功能模块中,我们可以通过用户输入来获取新成员的信息,并将其添加到通讯录中。

可以使用循环结构来连续添加多个成员的信息,直到用户选择退出为止。

【6】显示通讯录的功能模块可以遍历整个成员数组,并将每个成员的信息逐一打印出来。

通过这个功能,可以让用户随时查看通讯录中的成员信息。

【7】查找成员的功能模块可以根据用户输入的关键字,在通讯录中查找与之匹配的成员信息,并将结果打印出来。

这个功能可以提供便捷的查询服务,帮助用户快速找到所需的成员信息。

【8】修改成员信息的功能模块可以让用户选择要修改的成员,并提供修改对应信息的选项。

用户可以输入新的信息,然后更新通讯录中的成员数据。

【9】删除成员的功能模块可以让用户选择要删除的成员,并将其从通讯录中删除。

通过这个功能,可以帮助用户及时更新通讯录,删除不再需要的成员信息。

【10】在实现以上功能模块的基础上,我们可以进一步改进班级通讯录管理系统。

可以添加密码保护功能,限制只有授权用户才能进行修改和删除操作。

应急预案人员通讯录

应急预案人员通讯录

应急预案人员通讯录1. 引言应急预案人员通讯录是一份记录着应急预案执行中各个相关人员的联系方式的文档。

在紧急情况下,及时联系到相关人员非常重要,可以提高应急响应的效率和准确性。

本文档旨在详细介绍应急预案人员通讯录的编写方式和维护方法,以确保在紧急情况下能够迅速联系到正确的人员。

2. 编写方式应急预案人员通讯录应该包含以下信息:•姓名:应急预案人员的全名。

•职务:应急预案人员在组织中的职位或角色。

•部门:应急预案人员所属的部门或单位。

•联系方式:应急预案人员的电话号码、电子邮件地址等联系方式。

•替代人员:如果应急预案人员无法联系到,可替代的备用人员。

以下为一个简单的示例应急预案人员通讯录表格:姓名职务部门联系方式替代人员张三总经理行政部139****5678王五李四安全主管安全部138****5432赵六王五操作员生产部137****4321无赵六技术专员技术部136****3210无3. 维护方法为了保持应急预案人员通讯录的准确性和可靠性,需要定期更新和维护通讯录。

以下是维护通讯录的一些建议方法:3.1 定期核对信息定期核对应急预案人员通讯录中的信息,确保姓名、职务、部门和联系方式的正确性。

如果有人员调动、离职或新员工加入,需要及时更新通讯录。

3.2 多渠道获取联系方式为了尽可能确保能够联系到应急预案人员,建议在通讯录中记录多个联系方式,如手机、座机、电子邮件等。

此外,还可以将通讯录备份保存在云端,以防止本地备份丢失。

3.3 保持通讯录的机密性应急预案人员通讯录包含敏感信息,为了防止信息泄露,需要采取一些措施来保护通讯录的机密性。

可以设置密码或限制访问权限,只允许授权人员查看和修改通讯录。

3.4 做好培训和传承工作在维护通讯录的同时,应该加强与应急预案执行人员的培训和传承工作,让他们了解通讯录的重要性,学会正确使用通讯录,以确保在紧急情况下能够迅速联系到相关人员。

4. 总结应急预案人员通讯录是应急响应工作中必不可少的一项管理工作。

c语言程序设计通讯录管理系统

c语言程序设计通讯录管理系统

c语言程序设计通讯录管理系统通讯录管理系统是一种常见的应用程序,用于管理个人或者组织的联系人信息。

本文将介绍一个基于C语言的通讯录管理系统的设计和实现。

一、需求分析通讯录管理系统需要满足以下功能需求:1. 添加联系人:可以添加新的联系人,包括姓名、电话号码、邮箱等信息。

2. 查找联系人:可以根据姓名或者电话号码查找已存在的联系人。

3. 删除联系人:可以根据姓名或者电话号码删除已存在的联系人。

4. 修改联系人:可以修改已存在联系人的信息,包括姓名、电话号码、邮箱等。

5. 显示所有联系人:可以显示当前通讯录中的所有联系人信息。

二、设计思路1. 数据结构:使用结构体来表示一个联系人的信息,包括姓名、电话号码、邮箱等字段。

使用数组来存储多个联系人的信息。

2. 添加联系人:通过用户输入的方式获取联系人信息,然后将联系人信息添加到联系人数组中。

3. 查找联系人:通过用户输入的姓名或者电话号码,在联系人数组中查找匹配的联系人,并显示其详细信息。

4. 删除联系人:通过用户输入的姓名或者电话号码,在联系人数组中查找匹配的联系人,并将其从数组中删除。

5. 修改联系人:通过用户输入的姓名或者电话号码,在联系人数组中查找匹配的联系人,并允许用户修改其信息。

6. 显示所有联系人:遍历联系人数组,逐个显示联系人的详细信息。

三、代码实现下面是一个简单的通讯录管理系统的C语言代码实现:```c#include <stdio.h>#include <string.h>#define MAX_CONTACTS 100typedef struct {char name[50];char phone[20];char email[50];} Contact;Contact contacts[MAX_CONTACTS];int numContacts = 0;void addContact() {printf("Enter name: ");scanf("%s", contacts[numContacts].name);printf("Enter phone number: ");scanf("%s", contacts[numContacts].phone);printf("Enter email: ");scanf("%s", contacts[numContacts].email);numContacts++;printf("Contact added successfully!\n");}void findContact() {char search[50];printf("Enter name or phone number to search: ");scanf("%s", search);int found = 0;for (int i = 0; i < numContacts; i++) {if (strcmp(contacts[i].name, search) == 0 || strcmp(contacts[i].phone, search) == 0) {printf("Name: %s\n", contacts[i].name);printf("Phone: %s\n", contacts[i].phone);printf("Email: %s\n", contacts[i].email);found = 1;break;}}if (!found) {printf("Contact not found!\n");}}void deleteContact() {char search[50];printf("Enter name or phone number to delete: ");scanf("%s", search);int found = 0;for (int i = 0; i < numContacts; i++) {if (strcmp(contacts[i].name, search) == 0 || strcmp(contacts[i].phone, search) == 0) {for (int j = i; j < numContacts - 1; j++) {strcpy(contacts[j].name, contacts[j + 1].name);strcpy(contacts[j].phone, contacts[j + 1].phone);strcpy(contacts[j].email, contacts[j + 1].email);}numContacts--;printf("Contact deleted successfully!\n");found = 1;break;}}if (!found) {printf("Contact not found!\n");}}void modifyContact() {char search[50];printf("Enter name or phone number to modify: ");scanf("%s", search);int found = 0;for (int i = 0; i < numContacts; i++) {if (strcmp(contacts[i].name, search) == 0 || strcmp(contacts[i].phone, search) == 0) {printf("Enter new name: ");scanf("%s", contacts[i].name);printf("Enter new phone number: ");scanf("%s", contacts[i].phone);printf("Enter new email: ");scanf("%s", contacts[i].email);printf("Contact modified successfully!\n");found = 1;break;}}if (!found) {printf("Contact not found!\n");}}void displayContacts() {printf("Contacts:\n");for (int i = 0; i < numContacts; i++) {printf("Name: %s\n", contacts[i].name); printf("Phone: %s\n", contacts[i].phone); printf("Email: %s\n", contacts[i].email); printf("\n");}}int main() {int choice;do {printf("1. Add contact\n");printf("2. Find contact\n");printf("3. Delete contact\n");printf("4. Modify contact\n");printf("5. Display all contacts\n"); printf("0. Exit\n");printf("Enter your choice: ");scanf("%d", &choice);switch (choice) {case 1:addContact();break;case 2:findContact();break;case 3:deleteContact();break;case 4:modifyContact();break;case 5:displayContacts();break;case 0:printf("Exiting...\n");break;default:printf("Invalid choice!\n");break;}} while (choice != 0);return 0;}```四、总结本文介绍了一个基于C语言的通讯录管理系统的设计和实现。

简单的c语言程序设计班级通讯录管理系统

简单的c语言程序设计班级通讯录管理系统

简单的c语言程序设计班级通讯录管理系统一、引言班级通讯录管理系统是一款基于C语言的简单程序,旨在帮助班级管理者更好地管理班级通讯录信息。

本文将从需求分析、系统设计、代码实现等方面详细介绍该系统。

二、需求分析1. 功能需求(1)添加联系人:可以添加新的联系人信息,包括姓名、性别、电话号码等。

(2)删除联系人:可以删除已有的联系人信息。

(3)修改联系人:可以修改已有的联系人信息,包括姓名、性别、电话号码等。

(4)查询联系人:可以根据姓名或电话号码查询已有的联系人信息。

(5)显示所有联系人:可以查看当前所有已有的联系人信息。

2. 性能需求(1)稳定性:程序应该具有较高的稳定性,不会因为输入错误或其他异常情况导致崩溃。

(2)响应速度:程序应该具有较快的响应速度,不会因为数据量过大或其他原因导致卡顿或延迟。

3. 可靠性需求(1)数据安全:程序应该具有较高的数据安全性,保证用户输入的数据不会被损坏或丢失。

(2)用户友好性:程序应该具有较好的用户友好性,使用户能够轻松使用。

三、系统设计1. 总体设计(1)系统结构:本系统采用单层结构,包含若干个函数模块。

(2)数据结构:本系统采用链表数据结构,将每个联系人信息存储在一个节点中,并通过指针将各个节点连接起来。

(3)界面设计:本系统采用命令行界面,用户可以通过输入不同的命令实现不同的功能。

2. 模块设计(1)添加联系人模块:该模块用于添加新的联系人信息,包括姓名、性别、电话号码等。

用户需要输入相应的信息后,程序将新建一个节点并将其插入到链表中。

(2)删除联系人模块:该模块用于删除已有的联系人信息。

用户需要输入要删除的联系人姓名或电话号码后,程序将在链表中查找相应节点并将其删除。

(3)修改联系人模块:该模块用于修改已有的联系人信息。

用户需要输入要修改的联系人姓名或电话号码后,程序将在链表中查找相应节点并允许用户修改其中的信息。

(4)查询联系人模块:该模块用于根据姓名或电话号码查询已有的联系人信息。

高效管理联系人的通讯录模版

高效管理联系人的通讯录模版

高效管理联系人的通讯录模版通讯录是我们日常生活和工作中必备的一个工具,它可以帮助我们有效地管理和记录各种联系人的信息。

一个高效的通讯录模版能够帮助我们更好地管理各类联系人,并且提高我们的工作效率。

接下来,我们将介绍一种高效管理联系人的通讯录模版,希望能给大家带来帮助。

一、通讯录封面在通讯录的开头,我们需要给通讯录添加一个封面,以便更容易区分和识别。

封面上可以写上通讯录的名称和创建时间,以及联系人数量等相关信息。

二、联系人信息分类在通讯录中,我们可以根据各类联系人进行信息分类,方便我们快速定位和管理联系人。

下面是一些常见的分类:1. 个人联系人个人联系人通常包括家人、亲戚、朋友等身边人的联系信息。

我们可以按照姓名的首字母或者按照关系进行排序和分类。

2. 工作联系人工作联系人通常包括同事、领导、合作伙伴等与工作相关的人员的联系信息。

可以按照公司部门或者工作职位进行分类。

3. 客户联系人对于营销人员和销售人员而言,客户联系人是非常重要的。

可以按照行业、客户类型或者交易额等进行分类,便于管理和跟进。

4. 公共机构联系人公共机构联系人包括政府部门、学校、医院等的联系信息。

可以按照不同的机构类型进行分类,方便我们平时的查询和使用。

三、联系人信息录入在通讯录模版中,我们需要规范地录入每个联系人的信息,以方便我们之后的使用和查询。

下面是一些常见的联系人信息字段:1. 姓名:记录联系人的姓名,可以按照姓氏的首字母进行排序。

2. 职务:记录联系人的工作职务,方便我们识别其在组织中的角色和身份。

3. 公司/单位:记录联系人所在的公司或者单位名称。

4. 电话号码:记录联系人的电话号码,可以分为座机和手机。

5. 邮箱:记录联系人的电子邮箱地址,以便我们通过电子邮件进行联络。

6. 地址:记录联系人的实际地址,方便我们进行实地拜访或者邮寄文件。

7. 备注:可以记录一些联系人的特殊要求或者其他相关信息。

四、快速检索和更新一个高效的通讯录模版应该具备快速检索和更新的功能。

c语言通讯录管理编程讲解

c语言通讯录管理编程讲解

c语言通讯录管理编程讲解好的,以下是一个简单的 C 语言通讯录管理程序示例,可以输入和查询联系人信息:```cinclude <>include <>define MAX_CONTACTS 100struct contact {char name[50];char phone[20];char email[50];};int main() {struct contact contacts[MAX_CONTACTS];int num_contacts = 0;char command;char name[50];while (1) {printf("\nEnter command (C to add contact, Q to quit): "); scanf(" %c", &command);if (command == 'C') {printf("Enter contact name: ");scanf(" %[^\n]s", name);printf("Enter contact phone: ");scanf(" %[^\n]s", contacts[num_contacts].phone);printf("Enter contact email: ");scanf(" %[^\n]s", contacts[num_contacts].email);num_contacts++;printf("\nContact added.\n");} else if (command == 'Q') {break;} else {printf("\nInvalid command.\n");}}printf("\nContact List:\n");for (int i = 0; i < num_contacts; i++) {printf("%d. Name: %s, Phone: %s, Email: %s\n", i+1,contacts[i].name, contacts[i].phone, contacts[i].email);}printf("\n");return 0;}```这个程序首先定义了一个结构体 `contact`,用来存储联系人的姓名、电话和电子邮件等信息。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Person(); void set_item(char*name,char*province,char*city,char*street,char*phone_num,int postaddr); friend ostream& operator << (ostream& stream, Person& p); void modify_item(Item it);
Node temp;
do { temp=new element;
} while(!temp);
if(name1==0)//若姓名为空则提示用户输入信息 {
char*name1=new char[20]; char*province1=new char[20]; char*city1=new char[20]; char*street1=new char[20]; char*phone_num1=new char[20]; cout<<"姓名 省份 城市 街道 电话号码 邮政编码\n"; cin>>name1>>province1>>city1>>street1>>phone_num1>>postaddr1; temp->p.set_item(name1,province1,city1,street1,phone_num1,postaddr1); temp->next=head; head=temp; delete name1; delete province1; delete city1; delete street1; delete phone_num1; return;
人员通讯录
1、问题描述
编写一个简单的通讯录管理程序。通讯录记录有姓名,地址(省、市(县)、街道),电 话号码,邮政编码等四项。
程序应提供的基本管理功能有: 1)添加:即增加一个人的记录到通讯录中。 2)显示:即在屏幕上显示所有通讯录中的人员信息,应能分屏显示。 3)存储:即将通讯录信息保存到一个文件中。 4)装入:即将文件中的信息读入程序。 5)查询:可根据姓名查找某人的相关信息,若找到显示其心目、地址、电话号码和邮 政编码。 6)修改:可修改一个人的除姓名外其他信息。
� 方法三: 程序创建一个 Person 类,表示通讯录的每条记录,将每条记录的指针存储在 STL 中的 list 容器中。 所使用知识点为:类,文件流操作,运算符重载(>>),STL 中的容器和迭代器,字 符串操作。 1) void inputfromfile(char*file_name,list<Person*> &list2)//从文件读入通讯录 2) void outputtoscreen(list<Person*> list3)//输出通讯录到屏幕 3) void insertfromscreen(list<Person*> &list2,char*file_name)//从屏幕读入时将一条记
};
//phonebook.cpp #include<cstdlib> #include<cstring> #include<iomanip> #include<fstream> #include<conio.h> #include"person.h" using namespace std; static int stn=0;
录插入到文件末端 4) int search(char* name,list<Person*> &list2)//输入姓名,从已有通讯录查找 5) int modify(char* name,list<Person*> &list2)//修改已有记录,可逐项修改 Main 函数进行流程控制
3、示例程序 方法一:
strcpy(m_province,province); strcpy(m_city,city); strcpy(m_street,street); strcpy(m_phone_num,phone_num); m_postaddr=postaddr;
}
void Phonebook::add_person(char*name1,char*province1,char*city1,char*street1,char*phone_num1,int postaddr1) {
next=0; } };
typedef element* Node;
class Phonebook { public:
Node head; public:
Phonebook() { head=NULL;
} void add_person(char*name1=0,char*province1=0,char*city1=0,char*street1=0,char*phone_num=0,int
if(m_city!=0) delete m_city;
if(m_street!=0) delete m_street;
if(m_phone_num!=0) delete m_phone_num;
}
void Person::modify_item(Item it) {
char * item; switch(it) { case It_name:
系人,则再让用户选择要修改的联系人,选好联系人后可选择不同的项进行修改 Phbok 类中 move_to_head 函数用于将链表中的节点移至链首,center 函数用于提供用户
操作接口。 main 函数实现创建通讯录、编辑通讯录和退出程序三个功能。
� 方法二: 程序中使用结构 contactData 存储通讯录中单条记录的信息(一个联系人的所有信息), 构造类 contact 表示通讯录,contact 中用一个数组 std::vector<contactData> cData 表示通讯录, 在 contact 中定义相关操作,从而实现通讯录功能,如: private: bool parse( std::string str ); void FindName(); void FindGroup(); void findOption(); public:
~Person();
public: char* m_name; char* m_province; char* m_city; char* m_street; char* m_phone_num; unsigned long m_postaddr;
};
struct element {
Person p; element* next; element() {
Person::Person() {
m_name=0; m_province=0; m_city=0; m_street=0; m_phone_num=0; m_postaddr=0; }
Pdelete m_name;
if(m_province!=0) delete m_province;
contact(); bool OpenFile( std::string fileName ); bool SaveAs( std::string fileName ); bool Add(); bool Delete(); bool Find(); bool Print(); bool Clear(); int size(); 应用程序中包含 Main 函数和菜单选择函数 Option。 该程序还对通讯录进行了一些扩展,如对通讯录里的成员进行分组,如:家人、朋友、 同事及其他。
注意:测试数据中应考虑到人员可以同名的情况。
2、问题解析 � 方法一: 程序中使用自定义类 Person 存储通讯录中单条记录的信息(一个联系人的所有信息),
Phbok 类表示通讯录,通讯录存储在无头节点的链表中,链表节点为结构体 element。 所使用知识点为:类,枚举类型,文件流操作,运算符重载(>>),链表,字符串操
postadd=0); void save_to_file(char*file_name=0); Node search(Node start,char* name,int &count,int ndo=0,int mshow=1); void display(); void load_from_file(char*file_name=0); void modify_person(char* name); void move_to_head(Node moved); void opt_center(); ~Phonebook();
item=m_name; break; case It_province: item=m_province; break; case It_city: item=m_city; break; case It_street: item=m_street; break; case It_phone_num: item=m_phone_num; break; default: item=NULL; }; if(!item) return; char * temp = new char[20]; cin>>temp; if(item!=0) delete item; item=new char[strlen(temp)+1]; strcpy(item,temp); delete temp; }
//person.h #include<iostream> #include<fstream> using namespace std;
enum Item {
It_name, It_province, It_city, It_street, It_phone_num, It_postaddr };
相关文档
最新文档