ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:163.35KB ,
资源ID:3470792      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3470792.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(同学通讯录信息管理.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

同学通讯录信息管理.docx

1、同学通讯录信息管理沈阳航空航天大学 课程设计学 号2010040703021 班 级 04070301 -姓 名 杨亚东 指导教师 尹航 2011年9 月 22日沈阳航空航天大学课程设计任务书院系:自动化学院 专业:运载器综合测试技术 班级:04070301学号:2010040703021 题目:同学通讯录信息管理一、课程设计时间201112第1学期第4周,即9月19日9月25日,共计1周,20学时。二、课程设计内容用C语言编写程序完成以下任务:(1)设计学生通讯录的数据结构(比如包括:学号,姓名,年龄,性别,联系电话,住址等)。(2)录入通讯录中的学生信息(不少于3人),保存在文件stude

2、nts.txt中。(3)能够对通讯录中的信息进行修改和删除,并同时更新文件。(4)系统帮助:显示关于此系统简单的帮助信息。(5)版本信息:显示开发者姓名、班级、开发完成日期、版本号和指导老师等信息。三、课程设计要求1. 程序质量: 贯彻结构化的程序设计思想。 用户界面友好,功能明确,操作方便。 用户界面中的菜单至少应包括“同学信息录入”、“同学信息更改”、“同学信息删除”、“系统帮助”、“版本信息”、“退出”6项。 代码应适当缩进,并给出必要的注释,以增强程序的可读性。2. 课程设计说明书:课程结束后,上交课程设计说明书和源程序。课程设计说明书的格式和内容参见提供的模板。四、指导教师和学生签字

3、指导教师:_ 学生签名:_五、成绩六、教师评语 目录一、需求分析 1二、设计分析.2三、主界面截图.7四、技术要点.9五、个人总结.13六、参考文献.14七、源程序.14一、需求分析根据任务书给定的“课程设计内容”和“课程设计要求”作如下的需求分析。1、同学信息录入函数 主要实现程序最初运行时学生数据的录入以及其后的运行中学生数据的追加功能;2、同学信息更该函数 可以实现对通讯记录中除学号以外的信息进行修改;3、同学信息删除函数 实现的功能是按照学号对学生的数据记录进行删除;4、系统帮助函数 为用户提供简单的帮助5、显示函数 实现的是显示目前所有的有效同学记录信息。除上面介绍的功能之外,程序还

4、具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。每一个学生记录都包含学号,姓名,年龄,性别,联系电话,住址。在程序当中,将学生记录类型定义为结构体类型,添加以及追加的学生信息直接写入D:盘的student.txt文件中,其它函数每次对学生记录的访问,其数据来源都是student.txt文件,这样做不但可以保证学生数据的一致性,而且可以对学生数据进行永久保存,保证每次运行程序都可以采用原来的数据。二、设计分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为七个模块,其中每一个模块对应一个函数,它们的功能分别是:同学信息录入函数,同学信息更该函数,同学信

5、息删除函数,系统帮助函数,版本信息函数,信息显示函数,个人信息查询函数。在这些函数当中,前五个函数的实现严格按照题目的要求,而后面的两个函数属于附加功能。1、程序总体结构图图1程序总体结构图2、具体功能框图(1)同学信息录入函数add图2 同学信息录入函数函数(2)同学信息更改函数 change()图3 同学信息更改函数(3)删除同学通讯记录函数del(4)排序函数sort图4删除同学通讯记录函数图4删除学生记录函数(4)同学信息查询函数 query()图5学生信息查询函数三、主要界面截图图1 程序主界面图2 同学信息录入界面图3 同学详细信息查询界面图4 版本信息界面四、技术要点本程序主要由

6、五个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其它函数来实现要求的所有功能。在这些函数当中,同学信息录入函数和删除同学通讯记录函数是程序中较为核心的部分,下面分别进行说明。1、同学信息录入函数 添加数据分为两种情况,其一是在学生文件(student.txt)不存在的情况下,首先由程序创建一个新文件,并将录入的学生信息写入该文件当中;其二是在学生文件(student.txt)已经存在的情况下,此时文件要以读写方式或追加的方式打开,这样才可以保证以前已经存在的数据不丢失。具体的程序段如下:if(fp=fopen(d:student.txt,r)=NULL) printf(文件打开失败!

7、n); return; else for(i=0;!feof(fp);i+) fscanf(fp,%s%s%s%s%s%s,stui.num,stui.name,stui.age,stui.sex,stui.tel,stui.address); *n=i; fclose(fp);void add()/*添加同学信息*/FILE *fp; int n,i; struct student stu; if(fp=fopen(d:student.txt,w)!=NULL)/*新建同学文件并添加信息*/ printf(请输入要添加的同学数量,按回车键确认:); scanf(%d,&n); for(i=1

8、;i=n;i+) printf(n请输入第%d个同学的学号、姓名,年龄,性别,联系电话,住址,用空格分开,并按回车键确认:n,i); scanf(%s%s%s%s%s%s,stu.num,stu.name,stu.age,stu.sex,stu.tel,stu.address); fprintf(fp,n%s %s %s %s %s %s,stu.num,stu.name,stu.age,stu.sex,stu.tel,stu.address);/*学生信息写入文件*/ fclose(fp);2、删除同学通讯函数该函数的核心内容是删除算法以及最终对源文件的更新。该函数执行时,首先调用reads

9、函数将文件中的学生信息读入数组当中,并由用户输入待删除学生的学号,而后按照该学号进行查找,如果文件中存在该学生的数据,则采用删除算法删除,否则输出学生信息不存在的提示信息。对学生信息的具体删除算法是在结构体数组中实现的,当学生的信息被找到后,位于数组中该学生后面的学生记录依次向前移动一个元素的位置,这些操作完成后,要删除的学生信息就被后面的数组元素覆盖掉了,也就实现了删除。在数组中删除学生信息后,还要将更改后的信息重新写回文件当中,以保证数据的一致性。具体程序段如下:void del() /*信息删除函数*/struct student stuN; char number20; FILE *f

10、p; int n,i,j; reads(stu,&n); printf(n请输入要删除信息的学生学号,按回车键确认:); getchar(); scanf(%s,number); for(i=0;i=n) printf(没有找到该学生信息!n); return; else for(j=i+1;jn;j+) stuj-1=stuj; if(fp=fopen(d:student.txt,w)=NULL)/*更新文件*/ printf(文件打开失败!); return; else for(i=0;in-1;i+) fprintf(fp,n%s %s %s %s %s %s,stui.num,stui

11、.name,stui.age,stui.sex,stui.tel,stui.address); fclose(fp); printf(删除成功!n);五、个人总结首先我感觉很幸运能有这次课设的机会,通过这次的课设学习我对C语言知识有了更深一层的认识和了解,提高了对C语言的认识及掌握和操作能力。这次课设对我的帮助也是很大的,一方面复习了C语言的基础知识;另一方面,再课程设计的过程中也锻炼了我们遇到问题能独立分析问题、解决问题的能力,为我以后工作奠定了一定的基础。但是我也发现了我学习上的错误,在大一下学期的时候学习C语言,但由于当时学的不是很扎实,在课设刚开始也遇到了一些困难,在这过程中我的程序出

12、了很多问题,就是始终会出现乱码的现象,而且有时出现的错误还修改不会来,但是,最终在老师的检查和自己的努力查找下发现了问题的所在!在做课设的过程中虽然遇到了很多困难,但最后还是很顺利的完成了本次课设,这与老师,上网查资料和同学的帮助是分不开的。而且在做的过程中也体会到C语言的用处及应用是十分广泛和强大。也能更好的使用函数及调用函数问题。通过这次学习让我更多的认识和掌握了这门十分有用知识,给了自己更多的兴趣去学习C语言!对这门课程真是越来越喜欢了!六、参考文献1 谭浩强C程序设计北京:清华大学出版社,20052 刘成等C语言程序设计实验指导与习题集北京:中国铁道出版社,2006七、源程序#incl

13、ude#include#include#include#define N 20struct studentchar num20; char name10; char age20; char sex20; char tel40; char addr40;void menu();void reads(struct student stuN,int *n);void add();void show();void del();void change();void help();void information();void query();void information();void main()

14、int n; while(1) menu(); printf(n 请输入您要选择的操作序号,按回车键确认:); scanf(%d,&n); switch(n) case 1: add();break; case 2: show();break; case 3: del();break; case 4: change();break; case 5: help();break; case 6: information();break; case 7: query();break; case 8: exit(0); default: printf(输入错误,请输入列表中存在的序号!n ); voi

15、d menu()printf( * 同学通讯录信息管理* ); printf(n -1 添加同学信息-); printf(n -2 显示同学信息-); printf(n -3 删除同学信息-); printf(n -4 更改同学信息-); printf(n -5 系统帮助-); printf(n -6 版本信息-); printf(n -7 同学信息查询-); printf(n -8 退出-);void reads(struct student stuN,int *n) FILE *fp; int i=0; if(fp=fopen(d:student.txt,r)=NULL) printf(文

16、件打开失败!n); return; else for(i=0;!feof(fp);i+) fscanf(fp,%s%s%s%s%s%s,stui.num,stui.name,stui.age,stui.sex,stui.tel,stui.addr); *n=i; fclose(fp);void add()/*添加同学信息*/FILE *fp; int n,i; struct student stu; if(fp=fopen(d:student.txt,w)!=NULL)/*新建学生文件并添加信息*/ printf(请输入要添加的学生数量,按回车键确认:); scanf(%d,&n); for(

17、i=1;i=n;i+) printf(n请输入第%d个学生的学号、姓名,年龄,性别,联系电话,地址,用空格分开,并按回车键确认:n,i); scanf(%s %s %s %s %s %s,stu.num,stu.name,stu.age ,stu.sex ,stu.tel ,stu.addr ); fprintf(fp,n%s %s %s %s %s %s,stu.num,stu.name,stu.age,stu.sex,stu.tel,stu.addr );/学生信息写入文件 fclose(fp); void show()/*显示所有同学信息函数*/struct student stuN;

18、int i,n; reads(stu,&n);/*从文件中读出所有同学信息*/ printf( *所有的同学通讯信息如下*); for(i=0;in;i+) printf(n%3d%5s%5s%5s%5s%5s%5sn,i+1,stui.num,stui.name,stui.age,stui.sex,stui.tel,stui.addr); getch();void del() /*信息删除函数*/struct student stuN; char number20; FILE *fp; int n,i,j; reads(stu,&n); printf(n请输入要删除信息的学生学号,按回车键确

19、认:); getchar(); scanf(%s,number); for(i=0;i=n) printf(没有找到该学生信息!n); return; else for(j=i+1;jn;j+) stuj-1=stuj; if(fp=fopen(d:student.txt,w)=NULL)/*更新文件*/ printf(文件打开失败!); return; else for(i=0;in-1;i+) fprintf(fp,n%s %s %s %s %s %s,stui.num,stui.name,stui.age,stui.sex,stui.tel,stui.addr); fclose(fp);

20、 printf(删除成功!n);void change()struct student stuN,temp; int n,i; FILE *fp; printf(n请输入要更改信息的学生学号,按回车键确认:); scanf(%s,temp.num); reads(stu,&n); for(i=0;i=n) printf(无此学生信息!); return; printf(n请输入更改后学生的姓名、年龄、性别,电话和地址,按回车键确认:n); scanf(%s%s%s%s%s,temp.name,temp.age,temp.sex,temp.tel,temp.addr); stui=temp; i

21、f(fp=fopen(d:student.txt,w)=NULL)/*更新文件*/ printf(打开文件失败!); return; for(i=0;in;i+) fprintf(fp,n%s %s %s %s %s %s,stui.num,stui.name,stui.age,stui.sex,stui.tel,stui.addr); fclose(fp); printf(修改学生信息成功!n);void help()/*系统帮助*/printf(输入您遇到的困难即可n);void information()/*版本信息*/printf( *版本信息*n); printf( 同学通讯录信息管

22、理n); printf( 学 生 杨亚东n); printf( 班 级 04070301n); printf( 版 本 号 2033Y4567n); printf( 指导老师 尹航n); printf( 完成日期 2011.9.22n); printf( *n);void query()/*同学信息查询*/ struct student stuN; char number20; int i,n; reads(stu,&n); printf(n请输入待查询的学生学号,按回车键确认:n); scanf(%s,number); for(i=0;i=n) printf(没有找到该学生信息!n); return; else printf(n%5s%5s%5s%5s%5s%5sn,stui.num,stui.name,stui.age,stui.sex,stui.tel,stui.addr);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1