您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > C语言程序设计-学生通讯录管理信息系统
中南民族大学管理学院学生课程设计报告课程名称:C程序设计语言选题名称:学生信息管理系统设计年级:2010级专业:信息管理与信息系统学号:姓名:指导教师:李超锋完成地点:管理学院综合实验室完成日期:2011年8月一、题目描述(1)系统以菜单方式工作(2)学生信息录入功能(学生信息用文件保存)---输入(3)学生信息浏览功能---输出(4)查询、排序功能---算法按学号查询按姓名查询(5)学生信息的删除与修改(可选项)二、问题分析1.该程序可用于对学生的通讯方式基本信息的存储、更新、查询、输出等操作,以实现对学生通讯录信息的管理,便于同学之间的联系交往;2.其中更新功能包括:添加信息,删除信息,修改信息,可根据需要添加一个或多个学生信息,也可针对个别学生信息进行适当的删除或修改,以便随时更新学生通讯信息。3.程序中设计的查询功能可根据需要从若干数据中查询某个学生信息,并且可根据两种不同的方法查询:按姓名查询和按电话查询,以满足不同的需要;4.可以通过输出的方式查看整个通讯录;5.可以通过排序的方式查看同学生日的先后。四、系统设计1、程序总体结构对系统进行分析,给出结构图分析:系统要实现许多功能,因此遵循结构化程序设计思想来进行本系统的设计:—,自顶向下逐步细化,将系统设计任务分解出许多子功能模块来计;结构图如下:2.重要数据的数据结构设计对各个模块进行功能的描述(1).输入模块:学生通讯录信息管理系统统计模块查询模块更新模块输出模块输入模块排序模块添加模块删除模块修改模块按姓名按电话退出模块按省份按生日退出模块保存通讯信息退出系统退出模块选择模块录入需要管理的通讯信息并将信息保存于文件中,以方便日后进行打印、读取、更新等操作。(2).添加模块:可添加一个或多个学生的通讯信息,并将所添加的信息保存,方便查找。(3).删除模块:可对失去联系的学生通讯信息做删除处理。(4).修改模块:可对通讯信息发生改变的学生信息进行修改。(5).查询模块:可对已建立的学生通讯信息进行查询,并且可根据需要选择按姓名查询或按电话查询。(6).保存模块:用于对通讯信息进行保存。(7).输出模块:将所有学生通讯信息或想要查询的学生信息显示于屏幕,用于打印学生通讯信息或查找某些学生通讯信息。(8).退出系统:选择该项,自动退出该系统。流程图,函数之间相互调用的图示,程序设计及编码,运行结果。开始输入变量i判断i的值输入模块:输入模块:m==ys[i].num!=0统计模块查询模块更新模块输出模块输入模块退出模块添加模块删除模块修改模块按姓名按电话退出模块按省份按生日退出模块排序模块判断i值输入变量退出模块输入变量判断i值输入变量判断i值保存模块结束开始i=0isum输入通讯信息i++结束开始i=0isum输入通讯信息i++sum=i结束排序模块:更新模块:否是i=1i=2i=3是否是否查询模块:统计模块:开始i=0j=i+1i的年龄大于j的年龄交换i与j的信息j=j+1i=i+1jsumisum-1输出信息结束判断i的值删除模块添加模块修改模块退出系统返回主界面结束开始输入i的值判断i值退出系统开始输入i判断i值退出系统省份统计开始输入i3.函数设计#includestdio.h#includestdlib.h#includestring.htypedefstruct{charscore;/*编号*/charname[10];/*姓名*/charnum[15];/*号码*/charemail[20];/*邮箱*/charage[8];/*年龄*/charadds[20];/*住址*/}Person;Personpe[80];intmenu_select(){charc;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│0.退出程序│\n);printf(\t\t└───────┘\n);printf(\t\t请您选择(0-6):);c=getchar();}while(c'0'||c'6');return(c-'0');}intInput(Personper[],intn){inti=0;charsign,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].age);printf(\t电话号码:);scanf(\t%s,per[n+i].num);printf(\t通讯住址:);scanf(\t%s,per[n+i].adds);printf(\t电子邮箱:);scanf(\t%s,per[n+i].email);gets(x);printf(\n\t是否继续添加?(Y/N));scanf(\t%c,&sign);i++;}return(n+i);}voidDisplay(Personper[],intn){inti;printf(----------------------------------------------------------------------\n);/*格式*/printf(编号姓名年龄电话号码通讯地址电子邮箱\n);printf(----------------------------------------------------------------------\n);for(i=1;in+1;i++){printf(%-5d%-8s%-6s%-13s%-15s%-15s\n,per[i-1].score,per[i-1].name,per[i-1].age,per[i-1].num,per[i-1].adds,per[i-1].email);if(i1&&i%10==0){printf(\t-----------------------------------\n);printf(\t);system(pause);printf(\t-----------------------------------\n);}}printf(----------------------------------------------------------------------\n);system(pause);}intDelete_a_record(Personper[],intn){chars[20];inti=0,j;printf(\t请输入想删除记录中的名字:);scanf(%s,s);while(strcmp(per[i].name,s)!=0&&in)i++;if(i==n){printf(\t通讯录中没有此人!\n);return(n);}for(j=i;jn-1;j++){strcpy(per[j].num,per[j+1].num);strcpy(per[j].name,per[j+1].name);strcpy(per[j].age,per[j+1].age);strcpy(per[j].adds,per[j+1].adds);strcpy(per[j].email,per[j+1].email);per[j].score=per[j+1].score;}printf(\t\t\t已经成功删除!\n);return(n-1);}voidQuery_a_record(Personper[],intn){intm;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){chars[20];inti=0;printf(\t请输入想查询的姓名:);scanf(\t%s,s);while(strcmp(per[i].name,s)!=0&&in)i++;if(i==n){printf(\t通讯录中没有此人!\n);return;}printf(\t此人编号:%d\n,per[i].score);printf(\t此人年龄:%s\n,per[i].age);printf(\t电话号码:%s\n,per[i].num);printf(\t通讯地址:%s\n,per[i].adds);printf(\t电子邮箱:%s\n,per[i].email);};if(m==2){chars[20];inti=0;printf(\t请输入想查询的电话:);scanf(\t%s,s);while(strcmp(per[i].num,s)!=0&&in)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].age);printf(\t通讯地址:%s\n,per[i].adds);printf(\t电子邮箱:%s\n,per[i].email);};if(m==3){chars[20];inti=0;printf(\t请输入想查询的地址:);scanf(\t%s,s);while(strcmp(per[i].adds,s)!=0&&in)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].age);printf(\t电话号码:%s\n,per[i].num);printf(\t电子邮箱:%s\n,per[i].email);};}voidChange(Personper[],intn){chars[20];inti=0;printf(\t请输入想修改的记录中的名字:);scanf(%s,s);while(strcmp(per[i].name,s)!=0&&in)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].age);printf(\t电话号码:);scanf(\t%s,per[i].num);printf(\t通讯住址:);scanf(\t%s,per[i].adds);printf(\t电子邮箱:);scanf(\t%s,per[i].email);printf(\t修改成功!);}voidWritetoText(Personper[],intn){inti=0;FILE*fp;/*定
本文标题:C语言程序设计-学生通讯录管理信息系统
链接地址:https://www.777doc.com/doc-3265871 .html