




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.专业整理..专业整理..学习帮手..学习帮手..专业整理..学习帮手.一、题目容的描述学生通讯录管理系统设计设计一个学生通信录,学生通迅录数据信息构成容可自行设计(如:、家庭地址、邮政编码、等等),通信录数据类型定义为结构体类型。由键盘输入数据(最好要考虑输入数据输入的格式及输入数据的有效性),然后进行以下的功能实现。程序要求主函数是一个功能选择菜单,其它各功能都用各自的函数实现。功能要求如下:能建立、修改和增删学生通讯录能够按多种方式进行查询,例如按、按等。通讯录的数据保存在文件中,运行程序时将通讯录数据从文件读取到存中。对通讯录进行增加、删除、修改学生数据后,提供功能菜单,可以将存中修改过的通讯录重新保存至文件。二、应用程序功能的详细说明应用程序实现了可视化的系统操作界面。对学生通讯录形成了系统化的管理,操作简便明了。程序具有系统帮助,添加、显示、查询、刷新、删除、排序、保存、修改、读取学生通讯录的功能。各项功能均可按照文字提示操作,浅显易懂。系统的各个功能模块都用函数的形式来实现(readfile()、seek()、modify()、sort()、insert()、del()、save()、menu())方便查看。5.可以将信息保存在文件("student.txt")中,亦可将信息从文件中读取出来,灵活方便。三、主要模块的算法描述学生通讯录管理系统学生通讯录管理系统刷新学生信息readfile()查询学生信息seek()增加学生信息insert()显示学生信息display()退出系统修改学生信息modify()删除学生信息del()保存当前学生信息save()汇总当前学生数目number()系统帮助help()查询学生信息查询学生信息按姓名查询退出按学号查询开始开始以可读写的方式打开一个数据文件将此文件的内容读出,并存入一个新的结构体类型的数组中。调用menu()菜单函数进入while()主循环输入1-8中的一数值,选择相应操作。输入是否为0判断键值,调用相应函数,完成相应功能。是否已对修改存盘调用函数save()函数,进行写数据文件操作结束模块一:头文件,变量定义,函数的声明对系统所使用的变量进行定义,对函数进行声明。模块二:录入学生信息声明函数voidreadfile(),说明一个文件指针FILE*fp打开文件"student.txt"。模块三:学生信息的查找声明voidseek()为查找函数,通过switch(item)设定用学号查找,用查找两个分支。模块四:学生信息的修改声明voidmodify()为学生信息修改函数,通过switch(item)设定所要修改的项目。.专业整理..学习帮手..学习帮手..学习帮手..专业整理.专业整理.模块五:刷新学生信息声明voidsort()将录入学生系按升序排列,用的是“冒泡排序法”实现排序。模块六:增加学生信息声明voidinsert()插入学生信息,先通过判断学生是否存在,若否则继续输入,若是则跳出,重新循环。模块七:删除学生信息声明voiddel()实现学生信息删除,通过学号对比确定要删除的信息,然后用后一个替换掉。模块八:显示学生信息通过display()函数输出学生信息。.专业整理.专业整理.模块九:保存信息通过fp=fopen("student.txt","w");写入信息。模块十:汇总学生数目通过number()函数将已有男女生及总学生数目汇总出来。模块十一:系统帮助通过help()函数帮助操作。模块十二:界面菜单通过switch(num)调用以上各函数,实现功能。1、程序采用模块化设计,各模块独立,可分块调试,个模块由主函数控制调用。2、其中主要模块(readfile()、seek()、modify())都是利用数组,指针来实现数据结构设计。3、数据库设计的任务是确定系统所需要的数据库。数据库是表的集合,通常一个系统只需一个数据库。设计人是根据需求分析,确定数据库所包含的表及字段、表间的关系,然后具体确定表的结构,包括字段名、字段类型及宽度,需要的索引等。根据对需求得到的数据结构进行分析,按数据输入输出的要求,确定表和表间的关系,进行验证、调整、修改、完善,使其能够实现用户对数据和功能的要求。通讯信息表包括以下字段:学号,,年龄,性别,出生年月,地址,,E-mail。学号为主索引。四、结束语我设计的程序总体功能大都能够运行顺利,但有许多地方比较复杂,需要进一步修改,进行简化。通过这次课程设计的锻炼,我收获很多,具体归纳为以下几点:首先,也是最重要的一点,学会如何将一个复杂的问题简化,将一个较大的问题分成几个小问题,再一一解决这些小问题。在设计一个程序之前,要学会对程序功能进行规划,将其分为几个不同的功能模块,要思路清晰,简单易用;学会灵活运用已有的知识,同时适当的拓展一些知识;比如,这次设计过程中,有一些函数以前就很少用到,甚至没有见过,但对程序的设计及用户界面的改善带来方便;解决问题时,要尽可能考虑全面。每一个细节都很重要,既要避免功能的重复,也要避免功能疏漏的地方!在这次课程设计过程中,参考了许多资料,发现C语言真的很有意思!比如我看到一个关于用C语言编写的小程序:五子棋、俄罗斯方块、推箱子等,等这次课程结束后,我就想利用C语言编写这些小游戏。曾经认为C是个挺枯燥的课程,现在发现这不仅仅是个简单的课程,而是个很实用的计算机工具!.专业整理..专业整理..学习帮手..学习帮手..专业整理..学习帮手.五、程序源代码清单#include<stdio.h>#include<stdlib.h>#include<string.h>#defineBUFLEN100#defineLEN15#defineN100structrecord{charcode[LEN+1];charname[LEN+1];intage;charsex[3];chartime[LEN+1];charadd[30];chartel[LEN+1];charmail[30];}stu[N];intk=1,n,m;voidreadfile();voidseek();voidmodify();voidinsert();voiddel();voiddisplay();voidsave();voidnumber();voidmenu();intmain(){while(k)menu();system("pause");return0;}voidreadfile()//刷新学生信息{char*p="student.txt";FILE*fp;inti=0;if((fp=fopen("student.txt","r"))==NULL){printf("Openfile%serror!Strikeanykeytoexit!",p);system("pause");exit(0);}while(fscanf(fp,"%s%s%d%s%s%s%s%s",stu[i].code,stu[i].name,&stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail)==8){i++;i=i;}fclose(fp);n=i;printf("录入完毕!\n");}voidseek()//查询学生信息......voidmodify()//修改学生信息......voidsort()//对学生信息按学号排序{inti,j,*p,*q,s;chartemp[10];for(i=0;i<n-1;i++){for(j=n-1;j>i;j--)if(strcmp(stu[j-1].code,stu[j].code)>0){strcpy(temp,stu[j-1].code);strcpy(stu[j-1].code,stu[j].code);strcpy(stu[j].code,temp);strcpy(temp,stu[j-1].name);strcpy(stu[j-1].name,stu[j].name);strcpy(stu[j].name,temp);strcpy(temp,stu[j-1].sex);strcpy(stu[j-1].sex,stu[j].sex);strcpy(stu[j].sex,temp);strcpy(temp,stu[j-1].time);strcpy(stu[j-1].time,stu[j].time);strcpy(stu[j].time,temp);strcpy(temp,stu[j-1].add);strcpy(stu[j-1].add,stu[j].add);strcpy(stu[j].add,temp);strcpy(temp,stu[j-1].tel);strcpy(stu[j-1].tel,stu[j].tel);strcpy(stu[j].tel,temp);strcpy(temp,stu[j-1].mail);strcpy(stu[j-1].mail,stu[j].mail);strcpy(stu[j].mail,temp);p=&stu[j-1].age;q=&stu[j].age;s=*q;*q=*p;*p=s;}}}voidinsert()//增加学生信息......voiddisplay()//显示当前学生信息{inti;printf("所有学生的信息为:\n");printf("学生学号,学生,年龄,性别,出生年月,地址,,E-mail\n");printf("--------------------------------------------------------------------\n");for(i=0;i<n;i++){printf("%6s,%7s,%5d,%5s,%9s,%8s,%10s,%14s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);}}voidsave()//保存当前学生信息{inti;FILE*fp;fp=fopen("student.txt","w");for(i=0;i<n;i++){fprintf(fp,"%s,%s,%d,%s,%s,%s,%s,%s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);}fclose(fp);}voidnumber()//汇总学生数目{inti,girl,boy=0;for(i=0;i<n;i++)if(strcmp(stu[i].sex,"1")==0){boy++;}girl=n-boy;printf("男生人数是:%d\n女生的人数是:%d\n",boy,girl);printf("总的学生人数为:%d",n);}voidhelp()//系统帮助{printf("输入性别时男为1,女为2");printf("\n3.增加学生信息后,切记保存按7;\n");printf("\n4.谢谢您的使用!\n");}voidmenu()//可视化的系统操作界面{intnum;printf("\n\n学生通讯录管理系统\n\n");printf("*********************系统功能菜单************************\n");printf(" ---------------------------------------------------------------\n");printf("1.刷新学生信息2.查询学生信息\n");printf("*********************************************\n");printf("3.修改学生信息4.增加学生信息\n");printf("*********************************************\n");printf("5.按学号删除信息6.显示当前信息\n");printf("*********************************************\n");printf("7.保存当前学生信息
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 南京邮电大学《国际投资与信贷》2023-2024学年第二学期期末试卷
- 公共交通线路审批管理制度
- 直埋管施工方案
- 特种陶瓷磨豆浆机问卷调查
- 城市路灯井施工方案
- 江西省新八校联考2024-2025学年高三上学期1月期末联考英语试题【含答案】
- 甘肃省酒泉市2024-2025学年高一(下)开学生物试卷-(含解析)
- 城市公共广告施工方案
- 电表安装施工方案
- 反滤土工布施工方案
- 巡检记录表模板
- comsol学生操作手册4函数定义用户指南
- 出口退税手册核销操作步骤
- 潘通色卡TCX棉布色彩电子版查询部分
- 第三章社科信息检索原理与技术PPT课件
- 航空公司《维修工作程序》06-07航材租借件管理程序
- 《当代广播电视概论》试题A卷及答案
- DELL-PS系列存储安装手册
- 声学原理及声学测试
- 浅谈如何培养中学生的体育学习动机
- 成品检验记录表
评论
0/150
提交评论