班级通讯录管理系统
学生手机通信录管理系统

学生手机通信录管理系统学生手机通信录管理系统文档一、系统说明学生手机通信录管理系统是一款方便学生进行联系人信息管理的应用程序,主要针对学生的使用需求,能够方便地添加、修改、删除联系人信息,同时提供了快速查找和导出通讯录的功能。
二、主要功能1.添加联系人:学生可通过学生手机通信录管理系统添加新的联系人,并可以输入联系人的姓名、电话、邮箱、地址等相关信息。
2.编辑联系人:编辑联系人时,可以修改联系人的信息,例如修改电话号码等。
3.删除联系人:学生可以在学生手机通信录管理系统中删除联系人信息,以避免产生重复的联系人信息。
4.快速查找:学生在需要查找联系人时,可以直接输入姓名或电话号码进行查找,以快速定位到相应的联系人。
5.导出通讯录:学生可以将通讯录导出为CSV文件,以便后续使用。
三、使用说明1.启动系统:学生首先需要下载学生手机通信录管理系统并安装,在安装完成后,启动系统。
2.添加联系人:点击“添加联系人”按钮,填写你需要添加的联系人的姓名、电话、邮箱、地址等相关信息即可。
3.编辑联系人:在学生手机通信录管理系统中选中需要编辑的联系人,然后点击“编辑联系人”按钮进行联系人信息的修改。
4.删除联系人:在学生手机通信录管理系统中选中需要删除的联系人,然后点击“删除联系人”按钮即可删除该联系人。
5.快速查找:在学生手机通信录管理系统中输入“姓名”或“电话”进行快速查找相应的联系人信息。
6.导出通讯录:在学生手机通信录管理系统中点击“导出通讯录”按钮即可将通讯录导出为CSV文件。
四、系统优势学生手机通信录管理系统能够让学生方便地管理联系人信息,避免了联系人重复或管理混乱的情况,以及提供了快速查找和导出通讯录的功能,这些都可以帮助学生高效地管理自己的联系人,成为学生生活中的一项便捷工具。
五、总结学生手机通信录管理系统是一项非常实用的工具,经过使用,它可以帮助学生方便地管理自己的联系人信息,节省时间和精力,成为学生生活中重要的一部分。
班级通讯录管理系统课程设计分析报告

高级语言程序设计(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函数delete函数search函数1”,进入新建联系人。
班级通讯录管理系统课程设计报告

班级通讯录管理系统课程设计报告Coca-cola standardization office【ZZ5AB-ZZSYT-ZZ2C-ZZ682T-ZZT18】高级语言程序设计(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函数delete函数search函数2.按照程序提示,分别输入信息1002班所有同学的通讯基本信息。
面向对象课设通讯录管理系统

目录目录 (1)摘要 (2)前言 (3)正文 (4)1.概要设计 (4)1.1信息结构体: (4)1.2系统结构图 (5)2.详细设计 (6)2.1 类的编写 (6)2.1.1stuClass类 (6)2.1.2stuOperate类 (7)3.程序调试与分析 (6)3. 1增加学生信息: (8)3. 2修改学生信息: (10)3.3删除学生信息: (12)3.4查询学生信息: (13)3.5查看学生男女比例: (15)3.6查看近期过生日的学生: (16)参考文献 (21)总结 (22)源程序附件 (23)、通讯录管理系统的主要功能有:添加学生信息、修改学生信息、删除学生信息、查询学生信息、查看学生男女比例、查看近期过生日的学生。
采用面向对象的思想建立两个类,一个类封装学生信息;另一个类封装对数据进行操作的一些函数;从而实现对系统的操作。
做这个系统主要用到了微软公司的:Visual C++6.0开发环境,班级通讯录管理系统是一个专门针对储存学生联系方式以及一些简单个人信息的实用管理系统,它方便了教师对众多学生信息的储存和快速查阅的功能,大大减少了查找过程的时间。
关键词:通讯录,查找,删除,添加,统计。
班级通讯录管理系统主要功能分为六个模块:添加学生信息、修改学生信息、删除学生信息、查询学生信息、查看学生男女比例、查看近期过生日的学生。
添加学生信息:录入学生的基本信息如学号、姓名、性别、出生日期、兴趣爱好、联系方式(电话、QQ、电子邮箱)、地址等。
修改学生信息:可对系统中已录入的信息进行修改,如要修改学号为36的信息,这时需选择修改学生信息菜单,然后输入要修改的学生的学号,即可进行修改。
删除学生信息:可对系统中已存在的信息按学号进行删除。
查询学生信息:每个学生都可以查询通讯录的全部记录,或按条件进行查询查看学生男女比例:系统会根据系统中已录入的学生自动计算出百分比。
查看近期生日的学生:自动列出近7日内要过生日的学生的信息。
班级通讯录管理系统 课程设计报告

高级语言程序设计(1)课程设计专业 班级 学号姓名 完成日期 指导教师:1. 程序设计说明书【设计题目】 班级通讯录管理系统【问题描述】信息1002班上学生的通讯基本信息包含姓名、电话号码、QQ 号和宿舍号。
对信息1002班学生的基本通讯信息进行统一整理,并可以按电话号码或姓名等查到学生个人基本通讯信息。
可以显示所有的通讯记录,并对现有的通讯记录进行修改和增删等处理。
【基本要求】1. 通过此软件可以直接录入各个学生的基本通讯信息,并且会将所有信息自动保存到磁盘上。
2. 通过此软件可以直接对已录入的各个学生的通讯基本信息进行修改,并且修改完成后会将更改后的信息情况自动保存到原磁盘文件中。
3. 通过此软件可以直接对信息1002班每个同学的基本信息情况进行查询。
【算法思想】1. 根据要求,通讯录数据以文本文件存放在文件中:2. 需要提供文件的输入输出的等操作:3. 还需要保存记录已进行修改,删除,查找的操作:4. 另外还需提供键盘式选择菜单实现功能的选择。
【总体设计】图1 系统功能模块图【详细设计】通讯录管理系统数据输入 数据修改 删除 数据添加 查找 浏览主函数设计要求简洁,只提供部分提示语和函数的调用【程序】开始显示一系列功能选项n输入n,判断n是否是1~7 ?根据n的值调用各功能模块函数结束图2. 主函数流程图Void menu() /*主界面*/{int n, w1;void enter(); void add(); void modify(); void browse(); void delete(); 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();}else w1=0;}while(w1==1);switch(n){case 2: add(); break; /*添加模块*/【模块流程图】main函数开始显示一系列功能选项n输入n,判断n是否是1~7 ?根据n的值调用各功能模块函数结束enter函数输入选择服务类型1输入要新建学生数量n(n<N)输入第一个,第二个.......第n个学生信息记录What do you want to do?1>.浏览所有 2.>..返回modify函数输入选择服务类型3输入要修改学生姓名,选择修改选项1>.姓名 5.>.所有数据2.>.电话3.>.QQ号4.>.宿舍号 6.>.取消返回是否确定修改?1.>.是2.>.不,重新修改3.>.保存并返回browse函数输入浏览服务号5浏览所有学生基本通讯信息返回主菜单delete函数输入服务选项4输入要删除学生的姓名是否删除1.>.是2.>.否,返回search函数选择服务类型6选择查找类别1.>.姓名2.>.QQ号查看已查找到地通讯信息1.>继续2.>.返回【程序使用方法】1. 执行程序,按照界面提示进行选择。
学生手机通信录管理系统

程序设计陈述书〔 2023 / 2023 学年第一学期〕题目:通讯录办理系统专业学生姓名班级学号指导教师指导单位日期通讯录办理系统一、课题内容和要求该课题要求设计一个简单、实用的通信录办理程序,主要功能包罗通信录数据的录入、查找、点窜、删除、排序、显示等。
所有通信录数据都要操纵文件系统保留,以备系统下次运行时使用。
通过此课题,全面熟悉、掌握C语言根本常识,掌握C程序设计中的挨次、分支、循环三种布局及数组、函数和C语言根本图形编程等方法,把编程和实际结合起来,熟练掌握文件、数组、指针的各种操作,以及一些根本算法思想的应用。
增强对不同的问题运用和灵活选择适宜的数据布局以及算法描述的本事,熟悉编制和调试程序的技巧,掌握阐发成果的假设干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和标准编程的思想,为以后在专业课程中应用计算机系统解决计算、阐发、尝试和设计等学习环节打下较扎实的根底。
二、需求阐发系统功能模块图:添加:可以添加通讯录记录,依次输入序号,姓名,简拼,性别,工作单元,地址,,,电子邮件,备注后,会提示是否继续添加。
查询:可以选择用序号、姓名、简拼、方式查询点窜:先查找,再点窜。
假设查找出多笔记录,则进一步提示用户选择记录的序号,再点窜删除:输入欲删除的阿谁人的名字后,删除他〔她〕的记录内容排序:可按姓名、简拼等排序。
要求排序后,记录的序号也要从头编排显示:可以以表格形式输出所有通讯录里的记录保留:,输入文件名〔带后缀名〕后,即可将通讯录信息保留到文件读入:从文件中读入通信录数据。
界面功能要求:(1)采用友好的字符界面,实现一个功能控制菜单。
(2)每次操作都从该菜单项选择择,操纵循环布局使得一次运行程序可进行屡次操作。
三、概要设计〔1〕主要布局体:typedef struct{char score; /*序号*/char name[10]; /*姓名*/char jianpin[50]; /*简拼*/char sex[3]; /*性别*/char company[20]; /*工作单元*/char adds[20]; /*地址*/char tel[15]; /* */char num[15]; /* */char email[20]; /*电子邮件*/char remark[30]; /*备注*/}Person;(2).工作流程图:1.添加:添加通讯录记录先选择查询方式,以姓名查询方式为例3.点窜:点窜通讯录记录4.删除:删除通讯录记录5.显示:显示通讯录记录四、源程序代码#include<stdio.h> #include<stdlib.h> #include<string.h> #include<ctype.h>typedef struct { char score; /*序号*/ char name[10]; /*姓名*/ char jianpin[50]; /*简拼*/ char sex[3]; /*性别*/ char company[20]; /*工作单元*/ char adds[20]; /*地址*/ char tel[15]; /* */ char num[15]; /* */char email[20]; /*电子邮件*/char remark[30]; /*备注*/ }Person;Person pe[80];int menu_select(){char c;do{system("cls");printf("\t\t *欢送使用通讯录* \n");printf("\t\t┌───────┐\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. 点窜记录│\n");printf("\t\t│7. 保留记录│\n");printf("\t\t│8. 文件读入│\n");printf("\t\t│0. 退出程序│\n");printf("\t\t└───────┘\n");printf("\t\t请您选择(0-8):");c=getchar();}while(c<'0'||c>'8');return(c-'0');}int Input(Person per[],int n){int i=0;char sign,x[10];while(sign!='n'&&sign!='N'){printf("\t序号:");scanf("\t%d",&per[n+i].score);printf("\t姓名:");scanf("\t%s",per[n+i].name);printf("\t简拼:");scanf("\t%s",per[n+i].jianpin);printf("\t性别:");scanf("\t%s",per[n+i].sex);printf("\t工作单元:");scanf("\t%s",per[n+i] pany);printf("\t地址:");scanf("\t%s",per[n+i].adds);printf("\t :");scanf("\t%s",per[n+i].tel);printf("\t :");scanf("\t%s",per[n+i].num);printf("\t电子邮件:");scanf("\t%s",per[n+i].email);printf("\t备注:");scanf("\t%s",per[n+i].remark);gets(x);printf("\n\t是否继续添加(Y/N)");scanf("\t%c",&sign);i++;}return(n+i);}void Display(Person per[],int n){int i;printf("------------------------------------------------------------------------------------------------\n"); /*格式*/printf("序号姓名简拼性别工作单元地址电子邮件备注\n");printf("------------------------------------------------------------------------------------------------\n");for(i=1;i<n+1;i++){printf("%-3d%-10s%-10s%-5s%-10s%-10s%-13s%-13s%-10s%-10s\n",per[i-1].score,per[i-1 ].name,per[i-1].jianpin,per[i-1].sex,per[i-1]pany,per[i-1].adds,per[i-1].tel,per[i-1].num,per[i-1].email, per[i-1].remark);if(i>1&&i%10==0){printf("\t-----------------------------------\n");printf("\t");system("pause");printf("\t-----------------------------------\n");}}printf("----------------------------------------------------------------------\n");system("pause");}int Delete_a_record(Person per[],int n){char s[20];int i=0,j;printf("\t请输入想删除记录中的名字:");scanf("%s",s);while(strcmp(per[i].name,s)!=0&&i<n) i++;if(i==n){printf("\t通讯录中没有此人!\n");return(n);}for(j=i;j<n-1;j++){strcpy(per[j].name,per[j+1].name);strcpy(per[j].jianpin,per[j+1].jianpin);strcpy(per[j].sex,per[j+1].sex);strcpy(per[j] pany,per[j+1] pany);strcpy(per[j].adds,per[j+1].adds);strcpy(per[j].num,per[j+1].num);strcpy(per[j].tel,per[j+1].tel);strcpy(per[j].email,per[j+1].email);strcpy(per[j].remark,per[j+1].remark);per[j].score=per[j+1].score;}printf("\t\t\t删除成功\n");return(n-1);}void Query_a_record(Person per[],int n){int m;printf("\t\n请选择查询方式:\n");printf("\t┌──────┐\n");printf("\t│1------姓名│\n");printf("\t│2------简拼│\n");printf("\t│3------ │\n");printf("\t│4------返回│\n");printf("\t└──────┘\n");printf("请选择:");scanf("%d",&m);while(m!=1&&m!=2&&m!=3&&m!=4){printf("输入错误,请从头选择:");scanf("%d",&m);}if(m==1){char s[20];int i=0;printf("\t请输入想查询的姓名:");scanf("\t%s",s);while(strcmp(per[i].name,s)!=0&&i<n) i++;if(i==n){printf("\t通讯录中没有此人!\n");return;}printf("\t序号: %d\n",per[i].score);printf("\t简拼: %s\n",per[i].jianpin);printf("\t性别: %s\n",per[i].sex);printf("\t工作单元: %s\n",per[i] pany);printf("\t通讯地址: %s\n",per[i].adds);printf("\t 号码: %s\n",per[i].num);printf("\t电子邮箱: %s\n",per[i].email);printf("\t备注: %s\n",per[i].remark);} ;if(m==2){char s[20];int i=0;printf("\t请输入想查询的简拼:");scanf("\t%s",s);while(strcmp(per[i].jianpin,s)!=0&&i<n) i++;if(i==n){printf("\t通讯录中没有此人!\n");return;}printf("\t序号: %d\n",per[i].score);printf("\t姓名: %s\n",per[i].name);printf("\t性别: %s\n",per[i].sex);printf("\t工作单元: %s\n",per[i] pany);printf("\t通讯地址: %s\n",per[i].adds);printf("\t 号码: %s\n",per[i].num);printf("\t电子邮箱: %s\n",per[i].email);printf("\t备注: %s\n",per[i].remark);} ;if(m==3){char s[20];int i=0;printf("\t请输入想查询的:");scanf("\t%s",s);while(strcmp(per[i].num,s)!=0&&i<n) i++;if(i==n){printf("\t通讯录中没有此人!\n");return;}printf("\t序号: %d\n",per[i].score);printf("\t姓名: %s\n",per[i].name);printf("\t简拼: %s\n",per[i].jianpin);printf("\t性别: %s\n",per[i].sex);printf("\t工作单元: %s\n",per[i] pany);printf("\t通讯地址: %s\n",per[i].adds);printf("\t电子邮箱: %s\n",per[i].email);printf("\t备注: %s\n",per[i].remark);} ;}void SelectSort(Person per[],int n){int i,j,flag;Person temp; /*临时变量做交换数据用*/int m;printf("\t\n请选择排序方式:\n");printf("\t┌────────┐\n");printf("\t│1------姓名│\n");printf("\t│2------简拼│\n");printf("\t│3------ │\n");printf("\t│4------返回│\n");printf("\t└────────┘\n");printf("请选择:");scanf("%d",&m);while(m!=1&&m!=2&&m!=3&&m!=4){printf("输入错误,请从头选择:");scanf("%d",&m);}if(m==1){for(i=0;i<n;i++){flag=0; /*设标记判断是否发生过交换*/for(j=0;j<n-1;j++)if((strcmp(per[j].name,per[j+1].name))>0) /*比拟大小*/{flag=1;strcpy(,per[j].name); /*交换记录*/strcpy(temp. abbreviation,per[j].jianoin);strcpy(temp.sex,per[j].sex);strcpy(temp pany,per[j] pany);strcpy(temp.adds,per[j].adds);strcpy(temp.tel,per[j].tel);strcpy(temp.num,per[j].num);strcpy(temp.email,per[j].email);strcpy(temp.remarks,per[j].remark);strcpy(per[j].name,per[j+1].name);strcpy(per[j]. abbreviation,per[j+1]. jianpin);strcpy(per[j].sex,per[j+1].sex);strcpy(per[j] pany,per[j+1] pany);strcpy(per[j].adds,per[j+1].adds);strcpy(per[j].tel,per[j+1].tel);strcpy(per[j].num,per[j+1].num);strcpy(per[j].email,per[j+1].email);strcpy(per[j].remarks,per[j+1].remark);strcpy(per[j+1].name,);strcpy(per[j+1]. abbreviation,temp. jianpin);strcpy(per[j+1].sex,temp.sex);strcpy(per[j+1] pany,temp pany);strcpy(per[j+1].adds,temp.adds);strcpy(per[j+1].tel,temp.tel);strcpy(per[j+1].num,temp.num);strcpy(per[j+1].email,temp.email);strcpy(per[j+1].remarks,temp.remark);}if(flag==0)break; /*如果标记为0,说明没有发生过交换循环结束*/}}if(m==2){for(i=0;i<n;i++){flag=0; /*设标记判断是否发生过交换*/for(j=0;j<n-1;j++)if((strcmp(per[j]. jianpin,per[j+1]. jianpin))>0) /*比拟大小*/{flag=1;strcpy(,per[j].name); /*交换记录*/strcpy(temp. jianpin,per[j]. jianpin);strcpy(temp.sex,per[j].sex);strcpy(temp pany,per[j] pany);strcpy(temp.adds,per[j].adds);strcpy(temp.tel,per[j].tel);strcpy(temp.num,per[j].num);strcpy(temp.email,per[j].email);strcpy(temp.remarks,per[j].remark);strcpy(per[j].name,per[j+1].name);strcpy(per[j]. abbreviation,per[j+1].jianpin);strcpy(per[j].sex,per[j+1].sex);strcpy(per[j] pany,per[j+1] pany);strcpy(per[j].adds,per[j+1].adds);strcpy(per[j].tel,per[j+1].tel);strcpy(per[j].num,per[j+1].num);strcpy(per[j].email,per[j+1].email);strcpy(per[j].remarks,per[j+1].remark);strcpy(per[j+1].name,);strcpy(per[j+1]. abbreviation,temp. jianpin);strcpy(per[j+1].sex,temp.sex);strcpy(per[j+1].adds,temp.adds);strcpy(per[j+1].tel,temp.tel);strcpy(per[j+1].num,temp.num);strcpy(per[j+1].email,temp.email);strcpy(per[j+1].remarks,temp.remark);}if(flag==0)break; /*如果标记为0,说明没有发生过交换循环结束*/}}if(m==3){for(i=0;i<n;i++){flag=0; /*设标记判断是否发生过交换*/for(j=0;j<n-1;j++)if((strcmp(per[j].tel,per[j+1].tel))>0) /*比拟大小*/{flag=1;strcpy(,per[j].name); /*交换记录*/strcpy(temp. abbreviation,per[j]. jianpin);strcpy(temp.sex,per[j].sex);strcpy(temp pany,per[j] pany);strcpy(temp.adds,per[j].adds);strcpy(temp.tel,per[j].tel);strcpy(temp.num,per[j].num);strcpy(temp.email,per[j].email);strcpy(temp.remarks,per[j].remark);strcpy(per[j].name,per[j+1].name);strcpy(per[j]. abbreviation,per[j+1]. jianpin);strcpy(per[j].sex,per[j+1].sex);strcpy(per[j] pany,per[j+1] pany);strcpy(per[j].adds,per[j+1].adds);strcpy(per[j].tel,per[j+1].tel);strcpy(per[j].num,per[j+1].num);strcpy(per[j].email,per[j+1].email);strcpy(per[j].remarks,per[j+1].remark);strcpy(per[j+1].name,);strcpy(per[j+1]. abbreviation,temp. jianpin);strcpy(per[j+1].sex,temp.sex);strcpy(per[j+1].adds,temp.adds);strcpy(per[j+1].tel,temp.tel);strcpy(per[j+1].num,temp.num);strcpy(per[j+1].email,temp.email);strcpy(per[j+1].remarks,temp.remark);}if(flag==0)break; /*如果标记为0,说明没有发生过交换循环结束*/}}printf("排序成功\n"); /*显示排序成功*/}void Change(Person per[],int n){char s[20];int i=0;int m;printf("\t\n请选择点窜内容:\n");printf("\t┌──────┐\n");printf("\t│1------姓名│\n");printf("\t│2------简拼│\n");printf("\t│3------ │\n");printf("\t│4------返回│\n");printf("\t└──────┘\n");printf("请选择编号:");scanf("%d",&m);while(m!=1&&m!=2&&m!=3&&m!=4){printf("输入错误,请从头选择:");scanf("%d",&m);}int count = 0;if(m==1){int i=0;printf("\t请输入想点窜的记录中的姓名:");scanf("%s",s);printf("---------------------------------------------------------------------------------\n");/*格式*/printf("序号姓名简拼性别工作单元地址电子邮件备注\n");printf("---------------------------------------------------------------------------------\n");for (int t = 0; t < n; t++) {if (strcmp(per[t].name,s)==0) {count ++;printf("%-6d%-6s%-6s%-6s%-10s%-10s%-8s%-8s%-12s%-10s%\n",per[t].score,per[t].name ,per[t].jianpin,per[t].sex,per[t]pany,per[t].adds,per[t].tel,per[t].num,per[t].email,per[t].remark);}}printf("---------------------------------------------------------------------------------\n");if (count > 1){printf("查到多条数据,请输入序号:");m = 5;}else{while(strcmp(per[i].name,s)!=0&&i<n) i++;if(i==n){printf("\t通讯录中没有此人!\n");return;}//printf("\t序号:");//scanf("\t%d",&per[i].score);printf("\t姓名:");scanf("\t%s",per[i].name);printf("\t简拼:");scanf("\t%s",per[i]. jianpin);printf("\t性别:");scanf("\t%s",per[i].sex);printf("\t工作单元:");scanf("\t%s",per[i] pany);printf("\t地址:");scanf("\t%s",per[i].adds);printf("\t :");scanf("\t%s",per[i].tel);printf("\t :");scanf("\t%s",per[i].num);printf("\t电子邮件:");scanf("\t%s",per[i].email);printf("\t备注:");scanf("\t%s",per[i].remark);printf("\t点窜成功!");}}if(m==2){int i=0;printf("\t请输入想点窜的记录中的姓名:");scanf("%s",s);printf("---------------------------------------------------------------------------------\n");/*格式*/printf("序号姓名简拼性别工作单元地址电子邮件备注\n");printf("---------------------------------------------------------------------------------\n");for (int t = 0; t < n; t++) {if (strcmp(per[t]. jianpin,s)==0) {count ++;printf("%-6d%-6s%-6s%-6s%-10s%-10s%-8s%-8s%-12s%-10s%\n",per[t].score,per[t].name ,per[t].jianpin,per[t].sex,per[t]pany,per[t].adds,per[t].tel,per[t].num,per[t].email,per[t].remark);}}printf("---------------------------------------------------------------------------------\n");if (count > 1) {printf("查到多条数据,请输入序号:");m = 5;} else {while(strcmp(per[i]. jianpin,s)!=0&&i<n) i++;if(i==n){printf("\t通讯录中没有此人!\n");return;}//printf("\t序号:");//scanf("\t%d",&per[i].score);printf("\t姓名:");scanf("\t%s",per[i].name);printf("\t简拼:");scanf("\t%s",per[i]. jianpin);printf("\t性别:");scanf("\t%s",per[i].sex);printf("\t工作单元:");scanf("\t%s",per[i] pany);printf("\t地址:");scanf("\t%s",per[i].adds);printf("\t :");scanf("\t%s",per[i].tel);printf("\t :");scanf("\t%s",per[i].num);printf("\t电子邮件:");scanf("\t%s",per[i].email);printf("\t备注:");scanf("\t%s",per[i].remark);printf("\t点窜成功!");}}if(m==3){int i=0;printf("\t请输入想点窜的记录中的姓名:");scanf("%s",s);printf("---------------------------------------------------------------------------------\n");/*格式*/printf("序号姓名简拼性别工作单元地址电子邮件备注\n");printf("---------------------------------------------------------------------------------\n");for (int t = 0; t < n; t++) {if (strcmp(per[t].tel,s)==0) {count ++;printf("%-6d%-6s%-6s%-6s%-10s%-10s%-8s%-8s%-12s%-10s%\n",per[t].score,per[t].name ,per[t].jianpin,per[t].sex,per[t]pany,per[t].adds,per[t].tel,per[t].num,per[t].email,per[t].remark);}}printf("---------------------------------------------------------------------------------\n");if (count > 1) {printf("查到多条数据,请输入序号:");m = 5;} else {while(strcmp(per[i].tel,s)!=0&&i<n) i++;if(i==n){printf("\t通讯录中没有此人!\n");return;}//printf("\t序号:");//scanf("\t%d",&per[i].score);printf("\t姓名:");scanf("\t%s",per[i].name);printf("\t简拼:");scanf("\t%s",per[i]. jianpin);printf("\t性别:");scanf("\t%s",per[i].sex);printf("\t工作单元:");scanf("\t%s",per[i] pany);printf("\t地址:");scanf("\t%s",per[i].adds);printf("\t :");scanf("\t%s",per[i].tel);printf("\t :");scanf("\t%s",per[i].num);printf("\t电子邮件:");scanf("\t%s",per[i].email);printf("\t备注:");scanf("\t%s",per[i].remark);printf("\t点窜成功!");}}if(m==5){int i=0;scanf("%s",s);while(per[i].score != atoi(s)&&i<n) i++;if(i==n){printf("\t通讯录中没有此人!\n");return;}//printf("\t序号:");//scanf("\t%d",&per[i].score);printf("\t姓名:");scanf("\t%s",per[i].name);printf("\t简拼:");scanf("\t%s",per[i]. jianpin);printf("\t性别:");scanf("\t%s",per[i].sex);printf("\t工作单元:");scanf("\t%s",per[i] pany);printf("\t地址:");scanf("\t%s",per[i].adds);printf("\t :");scanf("\t%s",per[i].tel);printf("\t :");scanf("\t%s",per[i].num);printf("\t电子邮件:");scanf("\t%s",per[i].email);printf("\t备注:");scanf("\t%s",per[i].remark);printf("\t点窜成功!");}}void WritetoText(Person per[],int n){int i=0;FILE *fp; /*定义文件指针*/ char filename[20]; /*定义文件名*/printf("\t保留到文件\n"); /*输入文件名*/printf("\t请输入所保留的文件名:");scanf("\t%s",filename);if((fp=fopen(filename,"w"))==NULL){printf("\t无法翻开文件\n");system("pause");return;}fprintf(fp,"******************************************通讯录******************************************\n");fprintf(fp,"序号姓名简拼性别工作单元地址电子邮件备注\n");fprintf(fp,"------------------------------------------------------------------------------------------\n");while(i<n){fprintf(fp,"%-3d\t%-6s\t%-3s\t%-13s\t%-20s\t%-20s\t%-20s\t%-20s\t%-20s\t%20s\n",per[i].s core,per[i].name, per[i-1].jianpin,per[i-1].sex,per[i-1] pany,per[i-1].adds,per[i-1].tel,per[i-1].num,per[i-1].email, per[i-1].remark);i++;}fprintf(fp,"------------------------------------------------------------------------------------------\n");fprintf(fp,"***************************************共有%d笔记录****************************************\n",n);fclose(fp); /*关闭文件*/printf("保留成功\n");}int Load(Person per[],int n){int i;FILE *fp; /*指向文件的指针*/if((fp=fopen("record.txt","rb"))==NULL)/*翻开文件*/{printf("无法翻开文件\n"); /*不克不及翻开*/exit(1); /*退出*/}fscanf(fp,"%d",&n); /*读入记录数*/for(i=0;i<n;i++)fscanf(fp,"%20s%30s%10s",per[i].name,per[i] pany,per[i].tel); /*按格式读入记录*/ fclose(fp); /*关闭文件*/printf("你已经成功地从文件中读取数据\n"); /*显示保留成功*/return n; /*返回记录数*/}void main() /*主函数*/{int n=0;for(;;){switch(menu_select()){case 1:printf("\n\t添加记录到通讯录\n"); /*添加记录*/n=Input(pe,n);break;case 2:printf("\n\t\t\t 通讯录记录表\n"); /*显示记录*/Display(pe,n);break;case 3:printf("\n\t从通讯录中删除记录\n");n=Delete_a_record(pe,n); /*删除记录*/printf("\t");system("pause");break;case 4:printf("\n\t在通讯录中查找记录\n");Query_a_record(pe,n); /*查找记录*/printf("\t");system("pause");break;case 5:printf("\n\t排序通讯录中的记录\n");SelectSort (pe,n); /*排序记录*/printf("\t");system("pause");break;case 6:printf("\n\t点窜通讯录中的记录\n");Change(pe,n); /*点窜数据*/printf("\t");system("pause");break;case 7:printf("\n\t保留通讯录功能\n");WritetoText(pe,n); /*保留数据*/printf("\t");system("pause");break;case 8:printf("\n\t读入通讯录记录\n");Load (pe,n); /*读入记录*/printf("\t");system("pause");break;case 0:printf("\n\t\t谢谢使用,再见!\n"); /*结束程序*/printf("\n\t\t");system("pause");exit(0);}}}五、测试数据及其成果阐发界面:添加:依次输入序号,姓名,简拼,性别,工作单元,地址,,,电子邮件,备注,提示是否继续添加。
学生通讯录管理系统需求分析

学生通讯录管理系统需求分析一、背景随着教育信息化的发展,学生通讯录管理系统逐渐成为学校管理的重要工具。
通过该系统,学校能够更好地管理学生信息,方便地查找和更新学生通讯录,提高办公效率。
二、功能需求1. 学生信息管理•系统应能够录入学生的基本信息,包括姓名、学号、班级、联系方式等;•支持查看、编辑、删除学生信息;•能够按照学号或姓名等关键字查询学生信息。
2. 班级管理•可以创建、编辑、删除班级信息;•能够将学生分配到相应的班级中;•支持按照班级查看学生信息。
3. 通讯录管理•系统应能够生成学生通讯录并导出为Excel或PDF文件;•可以根据权限设定,控制通讯录访问权限。
三、性能需求1. 数据安全性•系统需要保证学生信息的安全性,防止信息泄露;•支持数据备份和恢复功能,以应对意外情况。
2. 平台兼容性•系统应能够在不同操作系统(Windows、MacOS、Linux)上运行;•支持常见的浏览器访问,如Chrome、Firefox等。
四、操作需求1. 用户界面友好•界面设计简洁明了,操作流畅;•提供操作指导,帮助用户快速上手使用系统。
2. 操作便捷•支持批量导入学生信息;•提供快速查找和筛选功能,提高信息查找效率。
五、扩展需求1. 通知功能•可以通过系统向学生发送通知消息;•支持设置通知提醒功能,提醒学生及时查收通知。
2. 数据统计分析•支持对学生信息进行统计分析,如按班级、性别等进行数据分析;•提供数据报表功能,方便学校管理层参考学生信息情况。
六、结论学生通讯录管理系统是学校管理工作中不可或缺的重要工具,通过需求分析可以明确系统实现的功能和性能需求,为后续系统设计和开发提供指导。
希望学生通讯录管理系统能够满足学校管理的实际需求,提高管理效率,为学生和教职员工提供便利。
简单的c语言程序设计班级通讯录管理系统

简单的c语言程序设计班级通讯录管理系统【1】班级通讯录管理系统是一种常见且实用的应用,可以用来方便地管理班级成员的联系信息。
本文将从简单的C语言程序设计的角度来介绍班级通讯录管理系统的设计与实现。
【2】在设计班级通讯录管理系统之前,我们首先需要确定系统的基本功能。
通常而言,一个班级通讯录管理系统应包含以下几个功能模块:添加成员信息、显示通讯录、查找成员、修改成员信息和删除成员。
这些功能模块将构成我们程序的主要结构。
【3】为了实现班级通讯录管理系统,我们首先需要定义一个结构体来表示每个成员的信息。
可以使用C语言的结构体来存储每个成员的尊称、学号、性别、通信等信息。
通过使用结构体,我们可以方便地将这些信息组织在一起,并进行对应的操作。
【4】在程序中,我们可以使用数组来存储多个成员的信息。
可以定义一个指定大小的成员数组来存放所有的班级成员信息。
通过数组的索引,我们可以访问和修改特定位置的成员信息,实现各种操作。
【5】在添加成员信息的功能模块中,我们可以通过用户输入来获取新成员的信息,并将其添加到通讯录中。
可以使用循环结构来连续添加多个成员的信息,直到用户选择退出为止。
【6】显示通讯录的功能模块可以遍历整个成员数组,并将每个成员的信息逐一打印出来。
通过这个功能,可以让用户随时查看通讯录中的成员信息。
【7】查找成员的功能模块可以根据用户输入的关键字,在通讯录中查找与之匹配的成员信息,并将结果打印出来。
这个功能可以提供便捷的查询服务,帮助用户快速找到所需的成员信息。
【8】修改成员信息的功能模块可以让用户选择要修改的成员,并提供修改对应信息的选项。
用户可以输入新的信息,然后更新通讯录中的成员数据。
【9】删除成员的功能模块可以让用户选择要删除的成员,并将其从通讯录中删除。
通过这个功能,可以帮助用户及时更新通讯录,删除不再需要的成员信息。
【10】在实现以上功能模块的基础上,我们可以进一步改进班级通讯录管理系统。
可以添加密码保护功能,限制只有授权用户才能进行修改和删除操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.1.1
要实现一个软件系统,首先应该进行需求分析,只有进行了充分的需求分析和调查,才能设计出满足用户各项要求的软件,以免出现半途而废的现象。
2.1.2
为学校开发一个新生管理系统,来给新生管理提供方便。从而实现学校的管理从传统的手工操作到计算机的数字化的过程,降低工作人员的劳动强度,提高工作人员的办事的效率。
下图为用户动作管理示意图,在管理员登陆后,才能进行如下动作:修改、删除或添加管理员列表,修改密码等功能。
图4-4用户动作管理示意图
第五章 系统的前台详细设计
5.1 首页(登陆页):
打开班级通讯录的首页文件即index.asp页面,后点击预览在iexplore中即可运行班级通讯录系统的首页,如下图所示:
目前,很多高校在新生管理方面仍采用手工管理方式,这种管理方式存在着许多缺点,如:效率低、保密性差,人力资源利用率低另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
1.3系统开发的目的及意义
借助现代信息技术和管理理论,建立现代管理信息系统是当今社会的重要趋势。随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。为了适应信息时代发展,提高学校的工作效率和办学水平,实现现代化大学的运行机制和高水平的管理,体现大学中计算机的特色,使计算机的使用成为学校对学生进行有效管理的重要组成部分。用计算机来实现班级通讯录可以避免不必要的资源浪费。
图5-1首页
主页提供操作菜单和链接,包括用户登录,注册,管理员登录。
其流程图如下:
图5-2首页流程图
实现代码见附页1
5.1
在会员登录页,输入的密码无法看见。
图5-3会员登录
5.1.2
会员注册页需填写以下内容:用户姓名、密码、性别、生日、手机、E-mail等信息。
图5-4注册会员
5.1.3
在进入会员信息修改页面时,系统会自动调出注册时填写的信息。
随着信息的不断增多,为查找小心,搜索功能还是必要的,该功能可以按多种方式搜索:按用户名查询,按班级查询,按身份证号查询等。
第三章 总体设计
3.1 总体功能结构设计
通过第二张的需求分析,我们得到如下系统总体结构图
3.1.1
用户在打开首页index.asp后可以进行会员登录、会员注册,会员等了输入错误时,会有错误提示。会员登录后可以进行个人信息修改,搜索其他会员。另外,添加了留言管理,会员登录后能进行留言,还可查看其他会员留言。
前台功能分析
通讯录系统主要是为了同学之间的信息的交流和知识的传播而设计的,其目的就在于方便同学和师生间的联系,增强彼此间的感情。所以基于上述的需求,通讯录需要实现以下的功能:
⑴用户注册功能
要使用班级通讯录中的信息的查看与发布功能,首先就需要用户注册,只要注册为网站的用户后就可以加入自己的班级成为班级的成员。没有注册的用户是没有资格发布和查看信息的。
服务器端(环境):Internet信息服务(IIS)
Windows2000/NT或更高的版本
开发软件:记事本,editplus,Access2003
基础知识:ASP,HTML,,Javasrcipt,CSS
2.3
后台功能分析
a.管理员账号查看与修改
b.网站管理
c.用户管理
包括用户账号管理,用户留言管理。
当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。
1.4系统开发的语言背景
为更方便的设计这个班级通讯录,作者选用的工具是ASP网页编程语言。近年来随着Internet技术的飞速发展及用户需求的不断升级,Web页面技术也不断的推陈出新,使得Web站点的功能越来越强大,能够提供的服务种类越来越繁多。从HTML、Client Script到CGI,从JAVA的诞生到ActiveX, Web页面设计人员不断受到冲击,微软公司在总结了以往技术,重新思考Web页面设计的真正需要后,推出了Active Server Pages (ASP),一种用以取代CGI(Common Gateway Interface,通用网关接口)的技术。ASP是微软公司推出的一种位于服务器端的脚本运行环境。通过这种环境,用户可以创建和运行动态的交互式Web服务器应用程序,如交互式的动态网页,包括使用HTML表单收集和处理信息,上传与下载等等。更重要的是,ASP使用的ActiveX技术基于开放设计环境,用户可以自己定义和制作组件加入其中,使自己的动态网页几乎具有无限的扩充能力,这是传统的Web编写工具所远远不及的地方。使用ASP还有个好处,就在于ASP可利用ADO(Active Data Object,微软的一种新的数据访问模型)方便快捷地访问数据库,从而使得开发基于WWW的应用系统成为可能,这也是本文选择ASP作为开发工具最重要的原因之一。
⑵技术可行性:
本系统为一综合集成系统。通过上面的新系统技术方案的分析,本系统的综合集成开发在技术上是完全可行的。
为本系统的开发我特地对本学校进行了深入的调查研究。学校拥有自己的网络及机房,并且各部门也有自己的电脑。并且我们对用户所提出的要求也都能够满足。综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,因此,它在技术上是可行的。
ASP全称为Active Server Pages(动态服务器主页),它一种应用程序环境,可以利用Vbscript或Java Script语言来设计,主要用于网络数据库的查询与管理。其工作原理是当浏览者发出浏览请求的时候,服务器会自动将ASP的程序码,解释为标准HTML格式的网页内容,再送到浏览者浏览器上显示出来。利用ASP生成的网页,与HTML相比具有更大的灵活性。只要结构合理,一个ASP页面就可以取代成千上万个网页。
2.1.3
⑴经济可行性:
现在,计算机的价格已经十分低廉,性能却有了长足的进步。而本系统的开发,为学校的工作效率带来了一个质的飞跃,为此主要表现有以下几个方面:
①本系统的运行可以代替人工进行许多繁杂的劳动;
②本系统的运行可以节省许多资源;
③本系统的运行可以大大的提高学校的工作效率;
所以,本系统在经济上是可行的。
1.5本文所作工作
第1章绪论部分对数据库应用系统的结构、开发进行了简要介绍,分析了系统开发的背景及意义。
第2章介绍了系统需求分析。
第3章对该系统进行总体设计,包括数据库逻辑表以及总体模块的设计。
第4,5章对该系统进行详细设计,采用分模块方式进行介绍
总结部分介绍了设计体会和编程体会,并指出了系统设计中的不足和改进的方向。
1.1系统开发简介
随着计算机软件、硬件技术的飞速发展,管理系统已应用于各个领域之中。班级通讯录管理系统实现了由复杂、重复性手工操作向人机简便操作的转化,它运用计算机完成数据收集、修改、查询、删除以及统计等工作,提高了管理人员工作效率,避免繁重的业务量造成的人为错误,还可运用信息共享加快信息传达。
1.2系统开发的背景
图4-1管理员登陆页面
4.1.2
图4-2系统管理流程图
4.2用户动作管理
用户在主页面index.asp界面登陆后,点击管理员登录,登录成功后,管理员可以进行信息管理和管理员设置,包括:查看管理员列表、添加管理员、修改密码、退出登陆,这些都通过数据库来完成。另外,这些功能只能在管理员登录后才能实现。
图4-3用户动作管理流程图
目标系统应该达到以下要求:
⑴时间经济性。优化逻辑设计与物理设计,使系统运行效率高,反映速度快。
⑵可理解性。用户容易理解和使用该系统。
⑶可维护性和适应性。系统应易于修改、易于扩充、易于维护,能够适应不断发展变化的需要。
⑷可用性。目标系统功能齐全,能够完全满足业务需求。
⑸安全保密性。保证系统的物理安全、数据存储和存取的安全与保密、数据传输的安全与保密,做好使用人员的授权管理。
图3-1功能结构图
3.2 数据库逻辑结构图设计
a.下表为管理员表,用于数据库连接。
表3-1管理员表
字段名
Id
name
password
addtime
类型
数字
文本
文本
数字
b.下表为用户表
表3-2用户表
字段名
Xh
bh
zmp
zz
hz
cfg
类型
数字
文本
文本
文本
数字
数字
字段名
rksj
pic
grj
scj
bz
add time
⑵信息留言功能
在班级通讯录系统中信息留言是比较常用的功能,论坛是一个大范围的讨论和联系,而留有是个人与个人的沟通。
留言功能主要分为:发布留言,查看留言。
⑶同学信息查看、修改、删除。
该功能主要方便校友联系,能方便的查看校友目前所处行业,联系方式,并提供打印功能等。
管理员对校友信息修改、删除。
⑷搜索功能
类型
数字
文本
文本
数字
备注
数字
字段名
zsc
类型
文本
c.下表为留言表
表3-3留言表
字段名
Id
name
neirong
shijian
类型
文本
文本
文本
数字
第四章 系统的后台详细设计
4.1 系统管理
4.1.1
会员在打开index.asp页面后,点击管理员登陆,就进入管理员登陆界面。若需注册新的管理员,必须先登陆旧的,否则无法进入注册页面。