c语言班级电话簿

合集下载

c语言班级电话簿

c语言班级电话簿

工装室内设计常用尺寸:1、墙面尺寸(1)踢脚板高;80~200mm。

(2)墙裙高:800~1500mm。

(3)挂镜线高:1600~1800(画中心距地面高度)mm。

2.餐厅(1) 餐桌高:750~790mm。

(2) 餐椅高;450~500mm。

(3) 圆桌直径:二人500mm.二人800mm,四人900mm,五人1100mm,六人1100~1250mm,八人1300mm,十人l500mm,十二人1800mm。

(4) 方餐桌尺寸:二人700×850(mm),四人1350×850(mm),八人2250×850(mm),(5) 餐桌转盘直径;700~800mm。

(6) 餐桌间距:(其中座椅占500mm)应大于500mm。

(7) 主通道宽:1200~1300mm。

(8) 内部工作道宽:600~900mm。

(9) 酒吧台高:900~l050mm,宽500mm。

(10) 酒吧凳高;600~750mm。

3.商场营业厅(1)单边双人走道宽:1600mm。

(2)双边双人走道宽:2000mm。

(3)双边三人走道宽:2300mm。

(4)双边四人走道宽;3000mm。

(5)营业员柜台走道宽:800mm。

(6)营业员货柜台:厚600mm,高:800~l000mm。

(7)单*背立货架:厚300~500mm,高:1800~2300mm。

(8)双*背立货架;厚;600~800mm,高:1800~2300mm(9)小商品橱窗:厚:500~800mm,高:400~1200mm。

(10)陈列地台高:400~800mm。

(11)敞开式货架:400~600mm。

(12)放射式售货架:直径2000mm。

(13)收款台:长:1600mm,宽:600mm4.饭店客房(1)标准面积:大:25平方米,中:16~18平方米,小:16平方米。

(2)床:高:400~450mm,床*高:850~950mm。

(3)床头柜:高500~700mm;宽:500~800mm。

班级通讯录(大数据结构,C语言)

班级通讯录(大数据结构,C语言)

班级通讯录1、设计目的设计一个计算机管理系统对班级通讯录进行管理。

2、设计要求一个学生的数据包括:学号、、、手机、QQ号。

要求设计一个计算机管理系统对班级通讯录进行管理,具有的功能是能够进行录入、修改、删除、查找和输出所有记录。

为提高数据的可访问性,、手机、QQ号建立索引表,索引表可以在维护数据时动态维护,也可能最后一次建立。

设计条件:硬件条件:(1)学生用微机(2)多媒体教室(3)局域网环境软件条件:(1)Windows XP中文操作系统(2)Turbo C 3.03、课程设计的容3.1、需求分析:随着科技的进步和信息产业的发展,通讯录成为了现代生活中的一个重要的工具。

利用通讯录管理系统对通讯录进行统一管理,包括添加,修改,查询记录等功能,实现通讯录管理工作的系统化,规化和自动化,为生活提供便利。

在设计的通讯录中,学生学号,,手机,QQ均以数字的形式进行输入,学生则以中文,英文输入均可进行记录,输出的形式与输入形式相同。

按要求,设计的通讯录管理系统可以实现添加、修改、删除、查找,对学号的排序和输出所有学生记录。

进行测试的数据和执行情况如下图所示:程序主观图:添加记录:显示所有记录:删除一条记录:根据学号查找:对记录的排序:主要是对添加新纪录在链表中按升序排列,如新加伟这条记录,对它采取排序,具体结果如下:进行排序:输入6即退出:3.2、概要设计:对该系统各种函数的定义在源代码给出,先给出函数的定义,然后给出菜单的执行函数,建立链表,并对各个功能的实现编出程序,直到调试成功为止。

3.3、详细设计主要给出程序的流程图,如下所示:菜单函数:链表构造:按学号显示学生数据:删除记录:显示所有信息:排序:3.4、程序调试与测试结果:经过认真调试最终结果为正确。

如图:3.5、结果分析:在编译过程中遇到很多困难,程序也基本上符合要求,但是有一点目前还没解决,就是基于链表的修改还没掌握,因此花了很大的力气,但是还是没有完成,只好采取的修改方式为:删除,添加,排序的方法对链表中的元素进行修改。

c课程设计电话簿

c课程设计电话簿

c 课程设计电话簿一、课程目标知识目标:1. 学生能理解电话簿的基本概念和作用,掌握电话簿的组成元素和信息录入方法。

2. 学生能够运用所学知识,创建、编辑和整理个人的电话簿信息。

3. 学生了解电话簿在生活中的实际应用,认识到信息管理的重要性。

技能目标:1. 学生掌握利用电子设备或纸质媒介制作和整理电话簿的技巧。

2. 学生能够运用分类、排序等基本方法,提高电话簿信息的检索效率。

3. 学生通过实际操作,提升信息整理、沟通和协作能力。

情感态度价值观目标:1. 学生培养良好的信息管理习惯,认识到个人信息保护的重要性。

2. 学生在合作学习中,学会尊重他人、分享信息,培养团队协作精神。

3. 学生通过电话簿的制作和应用,体会信息科技的发展给生活带来的便利,增强对信息技术的兴趣和认同。

课程性质:本课程为实用技能类课程,结合生活实际,培养学生的信息素养和实际操作能力。

学生特点:学生为四年级学生,具备基本的读写能力和信息素养,对新鲜事物充满好奇心,但需引导和培养实际操作能力。

教学要求:教师需采用生动形象的教学方法,激发学生的学习兴趣,注重实践操作,使学生在动手实践中掌握电话簿的制作和应用。

同时,关注学生的情感态度价值观的培养,将课程内容与学生的生活实际紧密结合,提高课程的实用性和针对性。

通过课程学习,使学生能够将所学知识运用到实际生活中,达到学以致用的目的。

二、教学内容1. 电话簿的概念与作用- 介绍电话簿的定义和功能- 分析电话簿在生活中的重要性2. 电话簿的组成元素- 姓名、电话号码、地址等基本信息的录入- 分类、排序等组织方法的介绍3. 制作电话簿- 电子设备(如计算机、手机)制作电话簿的方法- 纸质媒介制作电话簿的技巧4. 电话簿的管理与应用- 电话簿信息的更新与维护- 提高电话簿信息检索效率的方法5. 信息安全与隐私保护- 个人信息保护意识的培养- 遵守信息道德与法律法规6. 实践活动- 个人电话簿的制作与展示- 小组合作,共同整理班级通讯录教学内容安排与进度:第一课时:电话簿的概念与作用、组成元素第二课时:制作电话簿(电子设备与纸质媒介)第三课时:电话簿的管理与应用、信息安全与隐私保护第四课时:实践活动(个人电话簿制作与展示、班级通讯录整理)教材章节关联:本教学内容与教材中“信息管理与应用”章节相关,涉及电话簿的制作、管理、信息安全等方面的知识。

C语言程序设计班级通讯录管理系统

C语言程序设计班级通讯录管理系统

学院程序设计工程训练报告C语言程序设计班级通讯录管理系统课程名称C语言程序设计工程训练姓名院(系)信息科学与技术学院专业班级学号指导教师教务处制目录1.需求分析 (3)2.系统总框图和功能模块说明 (3)2.1 系统总框图........................................................ 错误!未定义书签。

2.2功能模块说明 (4)3.系统设计 (4)3.1 主要结构体 (4)3.2主要功能函数 (4)3.3关键函数的流程图 (17)4.调试结果 (20)5.总结 (24)6.源程序清单 (25)1.需求分析班级通讯录包括全班各个同学的姓名,电话,籍贯,其功能有以下几个:◆显示功能:完成全部通讯录信息的显示功能◆查找功能:完成按姓名,电话查找通讯录信息并显示◆增加功能:增加信息◆修改功能:完成对姓名、电话的修改◆删除功能:完成对通讯录的单个删除或全部删除◆退出功能:完成对整个通讯录的保存退出或者不保存退出2.系统总框图和功能模块说明2.1系统总框图2.2功能模块说明◆输入全班同学通讯录模块,完成同学通讯录的录入◆显示和查询同学,完成对同学通讯录的显示和查询◆添加同学模块,完成对新同学通讯录的添加◆删除同学模块,完成对同学通讯录信息的删除◆修改同学模块,完成对同学通讯录的修改◆退出系统模块,完成对整个系统的保存退出与不保存退出3.系统设计3.1 主要结构体姓名、电话号码、地址#include <stdio.h> /*头文件*/#include <stdlib.h> //包含最常用的系统函数#include <string.h> //关于字符数组的函数定义的头文件#include <conio.h> //控制台输入输出//定义结构体struct tongxunlu /*定义通讯录结构体变量*/{char xingming[31]; /*定义输入名字的数组*/char dianhua[31]; /*定义输入电话号码的数组*/char dizhi[31]; /*定义输入地址的数组*/} txl[100]; //默认100个数据int n=0;//记录数据同学数量FILE *fp; /*定义文件*/3.2主要功能函数(1)主菜单函数void zhucaidan(){char c;system("cls");printf("\n\t\t|------- 欢迎您使用计机123班通讯录管理系统-----|");printf("\n\t\t| 1-添加同学2-查询和显示同学|");printf("\n\t\t| 3-删除同学4-修改同学|");printf("\n\t\t| 5-保存退出0-不保存退出|");printf("\n\t\t|------------------------------------------------|");printf("\n\t\t请选择您所所要的服务:");c=getch();switch (c) /*对于上边的选择项目*/{case '1':zengjia();break;case '2':chazhao();break;case '3':shanchu();break;case '4':xiugai();break;case '5':writefile();break;case '0':exit(0);default:zhucaidan(); /*如果没有则返回主菜单等待输入*/}}(2)main主函数void main() /*主函数main*/{ readfile(); /*读入文件*/while(1) /* 循环(永远进行)*/{zhucaiidan(); /*调用主菜单函数*/}}main()函数功能分析:main()函数通过调用readfile()函数和循环menu()函数实现对入文件和界面进行控制。

c语言课程设计设计电话通讯录

c语言课程设计设计电话通讯录

c语言课程设计设计电话通讯录一、教学目标本课程的教学目标是使学生掌握C语言的基本语法,具备编写简单的C程序的能力,通过设计电话通讯录的项目,使学生了解程序设计的基本流程,培养学生的编程思维和团队协作能力。

1.理解C语言的基本数据类型和运算符。

2.掌握控制结构,如条件语句和循环语句。

3.熟悉函数的定义和调用。

4.能够使用C语言编写简单的程序,解决实际问题。

5.能够独立完成电话通讯录的设计和实现。

6.具备基本的程序调试和错误查找能力。

情感态度价值观目标:1.培养学生的团队协作意识,提高学生的沟通能力。

2.培养学生的问题解决能力和创新思维。

3.培养学生对计算机科学的兴趣和热情。

二、教学内容本课程的教学内容主要包括C语言的基本语法,控制结构和函数的用法。

通过设计电话通讯录的项目,使学生了解程序设计的基本流程,培养学生的编程思维和团队协作能力。

1.C语言的基本语法和数据类型。

2.控制结构,如条件语句和循环语句。

3.函数的定义和调用。

4.电话通讯录的设计和实现。

三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法。

1.讲授法:通过讲解C语言的基本语法和编程原理,使学生掌握C语言的基本知识。

2.案例分析法:通过分析电话通讯录的设计案例,使学生了解程序设计的基本流程。

3.实验法:通过实际编写和调试电话通讯录程序,使学生提高编程能力和问题解决能力。

四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。

1.教材:选用《C语言程序设计》作为主教材,辅助以相关参考书籍。

2.多媒体资料:提供相关的教学视频和演示文稿,帮助学生更好地理解课程内容。

3.实验设备:提供计算机实验室,使学生能够进行实际编程和调试。

五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以保证评估的客观性和公正性。

1.平时表现:通过课堂参与、小组讨论和实验报告等方式评估学生的学习态度和动手能力,占总评的30%。

2.作业:布置适量的编程作业,评估学生的编程能力和对知识的掌握程度,占总评的40%。

c语言电话簿课程设计

c语言电话簿课程设计

c 语言电话簿课程设计一、课程目标知识目标:1. 掌握C语言基础语法,如变量定义、数据类型、运算符和表达式;2. 学会使用C语言数组、字符串处理,实现对电话簿信息的存储和读取;3. 了解结构体在C语言中的应用,熟练使用结构体类型定义电话簿中的联系人信息;4. 掌握文件操作,实现对电话簿数据的保存和加载。

技能目标:1. 能够运用所学知识编写C程序,实现电话簿的添加、删除、查找和修改功能;2. 学会使用函数对电话簿程序进行模块化设计,提高代码的可读性和可维护性;3. 掌握基本的调试技巧,能够找出并修正程序中的错误。

情感态度价值观目标:1. 培养学生主动探究、积极思考的学习态度,激发学习编程的兴趣;2. 培养学生团队协作意识,学会在项目开发中与他人沟通与协作;3. 培养学生遵守程序设计规范,养成良好的编程习惯。

本课程针对高中年级学生,结合C语言学科特点,充分考虑学生已有知识水平和实际需求,旨在使学生通过本章节学习,掌握C语言在实际应用中的基本技能,培养编程思维和解决问题的能力。

课程目标具体、可衡量,便于教学设计和评估。

二、教学内容1. C语言基础语法复习:变量定义、数据类型、运算符和表达式;2. 数组与字符串:数组的使用、字符串处理函数,电话簿信息存储和读取;3. 结构体:结构体类型的定义和使用,联系人类的设计与实现;4. 文件操作:文件打开、关闭、读写,电话簿数据的持久化存储;5. 函数:函数的定义、调用、参数传递,电话簿功能模块的设计;6. 调试技巧:常见错误类型、调试工具使用,程序错误定位与修正;7. 电话簿功能实现:添加、删除、查找、修改联系人信息的操作;8. 项目实践:模块化设计,团队协作完成电话簿程序开发。

教学内容依据课程目标,结合教材相关章节,科学系统地组织和安排。

具体教学大纲如下:1-2课时:C语言基础语法复习;3-4课时:数组与字符串;5-6课时:结构体;7-8课时:文件操作;9-10课时:函数;11-12课时:调试技巧;13-14课时:电话簿功能实现;15-16课时:项目实践与展示。

优秀毕业论文——基于c语言实现电话簿管理系统

优秀毕业论文——基于c语言实现电话簿管理系统

课程设计(论文)电话簿管理系统VER1.0报告书系别:计算机科学与技术系专业(班级):计算机科学与技术10级1班作者(学号):汪雨生(51002011037)指导教师:王磊(硕士)完成日期:2011年6月15日蚌埠学院教务处制目录摘要 (3)第一章前言 (4)第二章电话簿管理系统介绍 (5)2.1流程图 (5)2.2程序编写概要 (6)第三章主要功能实现 (7)3.1删除功能设计 (7)3.2添加功能设计 (7)第四章源程序 (9)第五章系统测试 (20)第六章结语 (25)致谢 (26)参考文献 (26)摘要电话簿管理系统是利用单链表实现电话簿管理,进而掌握C语言中的结构体、链表,指针、函数(系统函数,自定义函数)等C语言知识。

本文通过利用模块化程序设计思想,使用单链表和结构体等编写出的可以实现存储、打印、删除等功能的电话簿管理系统。

通过完成这个课程设计让我们熟悉并掌握在c语言中使用结构体、单链表,指针,函数,和模块化设计思想。

关键词结构体,链表,指针,函数第一章前言在前面我们学习了c语言的一些基础知识对c语言有了初步的认识和了解,为了让我们更加全面地了解c语言程序设计的步骤和方法,在老师的指导下我们进行了一次综合实训。

设计一个简单的电话簿管理系统,可以存储,删除等电话号码。

为了方便使用DEV-C++来编写程序,可以添加汉字备注方便理解程序。

根据前面所学的单链表、指针、函数、结构体等知识在使用模块化设计思想去编写。

设计“通讯录管理系统”使其具有数据插入、修改、删除、显示和查询等功能。

使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法。

使学生掌握软件设计的基本内容和设计方法,并培养学生进行规范化软件设计的能力。

使学生掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计的基本能力。

其功能包括以下各项:1)数据包括:人名、电话号码。

c语言电话簿课程设计

c语言电话簿课程设计

c语言电话簿课程设计一、课程目标知识目标:1. 理解并掌握C语言结构体和数组的使用,能运用其创建电话簿数据结构;2. 学会使用C语言进行文件操作,实现对电话簿数据的保存和读取;3. 掌握C语言中字符串处理的相关函数,实现对电话簿信息的增删查改操作。

技能目标:1. 能够运用所学知识独立设计并实现一个简单的电话簿管理系统;2. 培养学生的编程实践能力,提高问题分析和解决问题的能力;3. 培养学生的团队协作能力,通过分组讨论和合作完成课程设计。

情感态度价值观目标:1. 培养学生对编程的兴趣,激发学生主动探索计算机科学的热情;2. 培养学生的创新意识,鼓励学生勇于尝试和改进自己的设计方案;3. 培养学生严谨、认真的学习态度,养成良好的编程习惯。

分析课程性质、学生特点和教学要求,本课程目标旨在使学生在掌握C语言基础知识的基础上,通过实际项目设计,提高学生的编程实践能力和问题解决能力。

同时,注重培养学生的团队协作精神和情感态度,使学生在完成课程设计的过程中,形成积极的学习态度和价值观。

课程目标分解为具体学习成果,便于后续教学设计和评估。

二、教学内容1. C语言基础知识回顾:结构体、数组、字符串处理函数(教材相关章节)- 结构体的定义和使用;- 数组的定义和操作;- 常用字符串处理函数。

2. 文件操作:文件读写、文件打开与关闭(教材相关章节)- 文件的打开与关闭;- 文件读写操作;- 错误处理。

3. 电话簿管理系统功能设计及实现(课程设计项目)- 系统需求分析;- 功能模块划分;- 编程实现电话簿的增删查改操作;- 文件存储与读取。

4. 课程设计实践:分组讨论、编程实现、测试与优化(教材实践环节)- 学生分组,明确分工;- 编程实践,完成电话簿管理系统;- 测试系统,发现并解决问题;- 优化程序,提高系统性能。

教学内容按照课程目标进行选择和组织,确保科学性和系统性。

教学大纲明确教学内容的安排和进度,结合教材相关章节,让学生在实践中掌握C语言电话簿课程设计所需的知识点。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、程序设计目的1.熟悉C语言的编译,链接和运行过程;2.掌握C语言的数据类型,熟悉整型、实型、字符型变量的定义方式及如何给它们赋值,掌握不同的类型数据之间的赋值规律,赋值使用方法;3.掌握if语句及switch语句的运用方法及嵌套应用方法;4.掌握实现循环结构的三种语句while、do-while.、for 的使用;5.掌握C语言函数的定义,声名及调用方法和调用过程;6.掌握C语言主函数和被调用函数之间的参数传递方式,学会函数的嵌套调用和递归调用的过程和方法;7.掌握数组的定义,赋值引用及输入输出方法,并正确用字符数组储存字符串,学会字符串的使用;8.掌握结构体类型变量的定义和使用;9.掌握指针变量和指向指针的指针变量的定义及使用,进一步了解指向结构体数组的指针变量的概念及使用方法;10.掌握链表的概念及链表的操作,并理解链表与数组的不同点及优缺点;11.掌握文件和文件指针的定义及文件建立,打开,关闭,读写等的操作方法12.能够采用模块化思想调试程序;二、程序设计内容1.编写程序并进行调试运行;2.输入学生通讯信息并保存于文件,每个学生包含信息如:序号,姓名,省份,电话,生日,邮编,大学,班级,QQ号信息;3.对已存入的学生信息进行更新操作,包括添加一个学生信息、删除某个学生信息和修改某个学生信息;4.通过输入姓名,学号的方式查询学生信息;5.可以通过省份,生日来统计通讯信息;6.最后输出学生信息,供需要时打印。

三、需求分析1.该程序可用于对学生的通讯方式基本信息的存储、更新、查询、输出等操作,以实现对学生通讯录信息的管理,便于同学之间的联系交往;2.其中更新功能包括:添加信息,删除信息,修改信息,可根据需要添加一个或多个学生信息,也可针对个别学生信息进行适当的删除或修改,以便随时更新学生通讯信息。

3.程序中设计的查询功能可根据需要从若干数据中查询某个学生信息,并且可根据两种不同的方法查询:按姓名查询和按电话查询,以满足不同的需要;4. 可以通过输出的方式查看整个通讯录;5. 可以通过排序的方式查看同学生日的先后。

四、程序框架与功能模块设计1、方案设计对系统进行分析,给出结构图分析:系统要实现许多功能,因此遵循结构化程序设计思想来进行本系统的设计:—,自顶向下逐步细化,将系统设计任务分解出许多子功能模块来计;结构图如下:2 . 模块功能说明对各个模块进行功能的描述(1).输入模块:录入需要管理的通讯信息并将信息保存于文件中,以方便日后进行打印、读取、更新等操作。

(2).添加模块:可添加一个或多个学生的通讯信息,并将所添加的信息保存,方便查找。

(3).删除模块:可对失去联系的学生通讯信息做删除处理。

(4).修改模块:可对通讯信息发生改变的学生信息进行修改。

(5).查询模块:可对已建立的学生通讯信息进行查询,并且可根据需要选择按姓名查询或按电话查询。

(6).保存模块:用于对通讯信息进行保存。

(7).输出模块:将所有学生通讯信息或想要查询的学生信息显示于屏幕,用于打印学生通讯信息或查找某些学生通讯信息。

(8).退出系统:选择该项,自动退出该系统。

五、程序详细设计流程图,函数之间相互调用的图示,程序设计及编码, 运行结果。

输入模块:输入模块:排序模块:更新模块:六、总结与体会1.对自己设计进行评价,指出合理和不足之处,提出改进的方案。

此次实践课编写的是一个应用程序,相对于以前我们见到的程序,它要大得多,运行的结果也没有预想中的好,数据的输出格式不太规范,而且各模块也出现了一些小问题,在同学们的帮助下,我很有耐心的一次又一次的进行修改,最后运行的结果基本上达到了预期的目的。

可着毕竟是第一次独立完成这样的大程序,结果还不是太理想。

由于时间很短,在选题报告中设想到的好多功能都没有实现。

已有的那些功能虽已能基本上满足用户的需要,但如果还有更多的功能程序就会更加完美。

如:再录入数据时,没有设计数据输入出错的提示。

2.在设计过程中的感受。

本次C 语言的实习课让我对C 语言的学习又有了更深入的了解,也让我更深刻地领悟到了“实践出真理”这个道理,在上机实践过程中学到的知识远远超过了在课堂上十几周学到的,学校组织的这次实习让我们这些实践知识匮乏的大学生增添了许多社会经验,为我们将来走上工作岗位其了不小的铺垫作用。

本次实习中遇到了很多以前没有遇到过的问题,也曾想过要放弃,但看到那些同学都在那认真的写程序,给了我继续的信心。

在同学的帮助下,我顺利的结束了本次实习,让我知道原来凭借自己努力取得的成功会让自己这么欣慰,也让我知道了友谊和团结的重要性。

并且,通过一种题材两中方式的学习,我掌握了更多的知识,也认识到对比学习的重要性。

八。

附录:1.链表方式:#include<stdio.h>#include<string.h>#define N sizeof(struct stud)#include <math.h>#include <conio.h>#include <stdlib.h>/*日期结构体类型*/struct date{int y;int m;int d;}bir;/*学生信息结构体类型*/struct stud{int num; /*序号*/char name[20]; /*姓名*/char tel[40]; /*电话*/char addr[40]; /*省份*/char yb[20]; /*邮编*/char daxue[50]; /*大学*/struct date bir; /*生日*/struct stud *next;};char a;struct stud *h;FILE *fp;/*建立链表*/struct stud *creat(){ int i,k;struct stud *p1,*p2,*head;printf("\n请输入学生数:\n");scanf("%d",&k);head=NULL;head=p1=p2=(struct stud *)malloc(N); /*head,p1,p2指向首结点*/ for(i=0;i<k;i++){p1=(struct stud *)malloc(N); /*p1指向新申请的结点*/ printf("\n请输入序号:");scanf("%d",&p1->num);printf("\n请输入姓名:");scanf("%s",p1->name);printf("\n请输入电话:");scanf("%s",p1->tel);printf("\n请输入籍贯:");scanf("%s",p1->addr);printf("\n请输入邮编:");scanf("%s",p1->yb);printf("\n请输入大学:");scanf("%s",p1->daxue);printf("\n请输入出生日期:(年-月-日)");scanf("%d-%d-%d",&p1->bir.y,&p1->bir.m,&p1->bir.d);p2->next=p1; /*将新结点链接到表尾*/ p2=p1; /*p2指向新的表尾*/}p2->next=NULL;head=head->next; /*头指针后移*/save_message(head); /*立即保存*/return head;}/*输入模块*/input_message(){clrscr();printf("\n\n**********输入学生信息**********\n");printf("-----------------------------------\n");h=creat();bioskey(0);printf("输入完毕,按任意键返回主菜单!");bioskey(0);}/*输出模块*/output_message(struct stud *p){clrscr();if(p==NULL)printf("暂无信息!请回主菜单录入信息!\n");else{printf("\n\n=======================通讯录信息表======================\n\n");printf("姓名=省份====电话=====生日(年-月-日)=邮编======大学\n");while(p!=NULL){printf("-----------------------------------------------------------------------\n");printf("%s %s %s %d-%d-%d %s %s\n",p->name,p->addr,p->tel,p->bir.y,p->bir.m ,p->bir.d,p->yb,p->daxue);printf("-----------------------------------------------------------------------\n");printf("\n");p=p->next;}}printf("\n");printf("按任意键返回主菜单!\n\n");bioskey(0);}/*保存学生信息*/save_message(struct stud *h){FILE *fp;struct stud *f;f=h; /*保证指针位置*/if((fp=fopen("zhuyan.txt","wb"))==NULL){printf("不能打开文件!\n");return;}while(h!=NULL){if(fwrite(h,sizeof(struct stud),1,fp)!=1) /*向文件写入数据*/{printf("文件写入错误!");return;}h=h->next;}h=f; /*保证指针位置*/ printf("已存盘,按任意键回上层菜单:\n");getch();fclose(fp);return;}/*读取信息*/read_message(){FILE *fp;if((fp=fopen("zhuyan.txt","rb"))==NULL){printf("\n\n****暂时还没有该生信息,请按任意键返回上一级菜单.\n"); return;}do{if(fread(h,sizeof(struct stud),1,fp)!=1){if(feof(fp))printf("已到文件末尾.\n"); /*已到文件末尾.*/ else printf("文件读取错误!\n"); /*文件读取错误.*/return;}h=h->next;}while(h!=NULL);fclose(fp);getch();bioskey(0);}/*添加学生信息*/add_message(struct stud *w){struct stud *p,*q;p=(struct stud*)malloc(N); /*p指向新申请的结点*/ clrscr();printf("\n请输入学生序号:");scanf("%d",&p->num);printf("\n请输入学生姓名:");scanf("%s",p->name);printf("\n请输入学生电话:");scanf("%s",p->tel);printf("\n请输入学生籍贯:");scanf("%s",p->addr);printf("\n请输入学生邮编:");scanf("%s",p->yb);printf("\n请输入学生大学:");scanf("%s",p->daxue);printf("\n请输入学生出生日期:");scanf("%d-%d-%d",&p->bir.y,&p->bir.m,&p->bir.d);p->next=NULL;if(w==NULL){w=p; /*头指针为空,p作为新头指针*/ return 1; /*正确插入返回1*/}q=w; /*从头指针开始*/if((q->num)>(p->num)) /*找到插入位置在首结点之前*/ {p->next=w; /*将首结点链接在新结点之后*/ w=p; /*p作为新的头指针*/return 1;}while((q->next)!=NULL && (q->next->num)<(p->num))q=q->next; /*继续查找插入位置*/if(q->next==NULL) /*插入位置在尾结点之后*/{q->next=p; /*新结点链接到尾结点之后*/return 1;}else if((q->next->num)==(p->num)) /*找到重号*/{free(p); /*释放新结点的存储空间*/return 0; /*不插入返回0*/}p->next=q->next; /*后续结点链接到新结点之后*/ q->next=p; /*新结点链接到前驱结点之后*/ return 1;}/*删除模块*/del_message(struct stud *w){char name[20];struct stud *p,*q;if(w==NULL)return 0; /**w就是头指针,空表不能删除返回0*/ clrscr();printf("请输入要删除的学生姓名:\n");scanf("%s",name);q=w;if(strcmp(q->name,name)==0) /*找到要删除的是第一个结点*/{w=q->next; /*修改头指针*/free(q); /*释放存储空间*/return 1; /*正确删除返回1*/}p=q->next;while(p!=NULL){if(strcmp(p->name,name)==0) /*找到要删除的结点*/{q->next=p->next; /*后续结点连接到前驱结点之后*/free(p); /*释放存储空间*/return 1;}q=p; /*推移指针继续查找*/p=p->next;}return 0; /*未找到要删除的结点返回0*/}/*修改模块*/revise_message(struct stud *g){int choice;char name[20],n,m;do{clrscr();printf("\n **********学生学籍信息*********** \n");printf(" 输入要修改的学生姓名:\n");scanf("%s",name);while(g!=NULL){ while(strcmp(g->name,name)!=0)g=g->next;if(g==NULL){printf("\n 该学生不存在!");bioskey(0);}else{do{printf("\n 您要修改哪一项?\n");printf("\n 1序号\n");printf("\n 2姓名\n");printf("\n 3籍贯\n");printf("\n 4电话\n");printf("\n 5大学\n");printf("\n 6出生日期\n");scanf("%d",&choice);switch(choice){case 1:printf("\n 请输入修改后的序号:");scanf("%d",&g->num);break;case 2:printf("\n 请输入修改后的姓名:");scanf("%s",g->name);break;case 3:printf("\n 请输入修改后的籍贯:");scanf("%s",g->addr); break;case 4:printf("\n 请输入修改后的电话:");scanf("%s",g->tel); break;case 5:printf("\n 请输入修改后的大学:");scanf("%s",g->daxue); break;case 6:printf("\n 请输入修改后的出生日期:");scanf("%d-%d-%d",&g->bir.y,&g->bir.m,&g->bir.d);break;}printf("\n是否继续修改此人信息?y/n\n") ;getchar();m=getchar();}while(m=='y');printf("\n\n=======================通讯录信息表======================\n\n");printf("姓名=省份====电话=====生日(年-月-日)=邮编======大学\n");printf("-----------------------------------------------------------------------\n"); printf("%s %s %s %d-%d-%d %s %s\n",g->name,g->addr,g->tel,g->bir.y,g->bir.m ,g->bir.d,g->yb,g->daxue);printf("-----------------------------------------------------------------------\n");printf("\n");getch();}break;}printf("\n要继续吗?(y/n)\n");getchar();n=getchar();}while(n=='y');printf("\n 按任意键返回主菜单!");bioskey(0);}/*更新模块*/renew_message(){int choice=100;while(choice!=0){printf("\n************更新同学信息*************\n\n");printf(" 1.添加同学信息\n\n");printf(" 2.删除同学信息\n\n");printf(" 3.修改同学信息\n\n");printf(" 0.返回修改菜单\n\n");printf(" 请选择(0—3):\n");printf("******************************************\n\n");scanf("%d",&choice);switch(choice){case 1:add_message(h);break;case 2:del_message(h);break;case 3:revise_message(h);break;case 0:break;default:printf("输入有误!\n");}}}/*按姓名查询*/inquire_name( struct stud *p){ char name[20];struct stud *f;f=p;clrscr();printf("\n\n 请输入要查找的姓名:");scanf("%s",&name);if(p==NULL){printf("\n您要查找的学生暂时不存在,请按任意键返回\n");bioskey(0);}else if (strcmp(p->name,name)!=0||p->name==NULL)p=p->next;clrscr();printf("\n\n该生有关信息为:\n\n\n\n");printf("\n\n=======================通讯录信息表======================\n\n");printf("姓名=省份====电话=====生日(年-月-日)=邮编======大学\n"); printf("-----------------------------------------------------------------------\n");printf("%s %s %s %d-%d-%d %s %s\n",p->name,p->addr,p->tel,p->bir.y,p->bir.m ,p->bir.d,p->yb,p->daxue);printf("-----------------------------------------------------------------------\n");printf("\n");p=f;getch();}/*按学号查询*/inquire_tel(struct stud *p){char tel[20];struct stud *f;f=p;clrscr();printf("\n 请输入要查找的电话:");scanf("%s",&tel);if(p==NULL){printf("\n您要查找的学生暂时不存在,请按任意键返回\n");bioskey(0);}else if(strcmp(p->tel,tel)!=0||p->tel==NULL)p=p->next;clrscr();printf("\n\n该生有关信息为:\n\n\n\n");printf("\n\n=======================通讯录信息表======================\n\n");printf("姓名=省份====电话=====生日(年-月-日)=邮编======大学\n"); printf("-----------------------------------------------------------------------\n");printf("%s %s %s %d-%d-%d %s %s\n",p->name,p->addr,p->tel,p->bir.y,p->bir.m ,p->bir.d,p->yb,p->daxue);printf("-----------------------------------------------------------------------\n");printf("\n");p=f;getch();}/*查询模块*/inquire_message(){int choice=100;while(choice!=0){printf("\n***********************查询同学通讯信息**********************\n");printf(" 1.按同学姓名查询:\n");printf(" 2.按同学电话查询:\n");printf(" 0.返回主菜单:\n");printf(" 请选择(0—2):\n");scanf("%d",&choice);switch(choice){case 1:inquire_name(h);break;case 2:inquire_tel(h);break;case 0:break;default:printf("无此类查询方式!\n");}}}/*省份统计*/count_ad(struct stud *p){int count=0;char count_ad[20];printf("\n 输入要统计的省份名称:\n"); scanf("%s",count_ad);if(p=NULL){printf("\n 该学生不存在!");bioskey(0);}else{printf(" 在该省份的同学:\n");printf("姓名=省份====电话=====生日(年-月-日)=邮编======大学\n");printf("-----------------------------------------------------------------------\n");p=h; /*p指向头指针!*/while(p!=NULL){ if(strcmp(p->addr,count_ad)==0){printf("%s %s %s %d-%d-%d %s %s\n",p->name,p->addr,p->tel,p->bir.y,p->bir. m,p->bir.d,p->yb,p->daxue);p=p->next;count++;}}}printf("在这个省份的同学共有%d个",count);}/*生日统计*/count_birthday(struct stud *p){int count=0;int count_birthday_month;printf(" 请输入要统计的月份:\n");scanf("%d",&count_birthday_month);if(p=NULL){printf("\n 该学生不存在!");bioskey(0);}else{printf(" 在这个月过生日的同学:记得祝贺他们生日快乐!\n");printf("姓名=省份====电话=====生日(年-月-日)=邮编======大学\n");printf("-----------------------------------------------------------------------\n");p=h;while(p!=NULL){ if(p->bir.m==count_birthday_month){printf("%s %s %s %d-%d-%d %s %s\n",p->name,p->addr,p->tel,p->bir.y,p->bir. m,p->bir.d,p->yb,p->daxue);p=p->next;count++;}}}printf("在这个月过生日的同学有%d个",count);}/*统计模块*/count_message(){int choice=100;while(choice!=0){printf("\n\n*************************统计同学通讯信息*******************\n");printf(" 1.按省份统计信息;\n");printf(" 2.按生日统计信息;\n");printf(" 0.返回主菜单;\n");printf(" 请选择(0--2):\n");scanf("%d",&choice);switch(choice){case 1:count_ad(h);break;case 2:count_birthday(h);break;case 0:break;default:printf("输入有误!\n");}}}/*主程序*/main(){ int b;printf("输入任意键进入。

相关文档
最新文档