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语言电话簿课程设计所需的知识点。

大一C语言电话簿管理系统

大一C语言电话簿管理系统

电话簿管理系统目录一、设计目的 (2)二、项目设计的内容 (2)三、项目设计的要求与数据 (2)四、项目设计应完成的工作 (3)五、总体设计(包含几大功能) (4)六、详细设计(各功能的具体实现算法) (4)七、测试分析(包含各功能的测试用例,及测试结果).. 5八、总结 (13)1、设计目的进一步加深理解《C语言程序设计》,通过此次作业,对本学期所学的内容有一个更深的理解,将所学知识融会贯通,进一步培养自己对综合问题的分析和解决实际问题的能力。

掌握利用所学知识编写简单程序的技巧,提升自己的实践能力,理论知识等。

2、项目设计的内容对用户的信息(包括姓名、电话)进行管理,包括对用户姓名电话的增加、查找、修改、删除、导出用户信息为txt文件、显示所有用户信息的操作。

假设,收集到若干人的姓名电话信息,要求编写一个可以实现上述操作的C语言程序。

学习相关开发软件,熟悉建设工程的过程。

3、项目设计的要求与数据1.用C语言实现程序。

2.对用户信息(姓名、电话号码)进行管理,包括用户信息的增加、查找、修改、删除、导出、显示操作。

3.各个功能的说明(1)增加用户信息功能:增加后保存至文件,可一次性增加若干条用户信息。

(2)查找用户信息功能:完成按姓名查找电话号码的操作并显示。

(3)修改用户信息功能:通过对姓名进行查找并修改的操作。

(4)删除用户信息功能:删除指定信息的功能。

(5)导出用户信息功能:保存当前所有用户信息为文本文件。

(6)显示用户信息功能:显示出当前所保存的所有用户信息。

4、项目设计应完成的工作(1)编写算法;(2)算法测试,并有具体的测试结果和结果分析;(3)撰写项目设计报告。

内容包括:1)封面扉页2)设计任务书3)目录4)总体设计方案5)使用说明及运行实例(包括界面)6)成员设计内容简介7)项目源程序代码(注意注释的使用)8)指导教师评语5、总体设计(包含几大功能)1.用户信息增加功能2.用户信息查找功能3.用户信息修改功能4.用户信息删除功能5.用户信息显示功能6.用户信息导出功能7.清屏6、详细设计(各功能的具体实现算法)1.输入用户信息功能:输入信息包括姓名、电话号码相关信息;可用函数void shuru()实现。

c语言电话簿课程设计

c语言电话簿课程设计

c语言 电话簿课程设计一、课程目标知识目标:1. 掌握C语言结构体和数组的使用,能够创建并操作结构体数组存储电话簿信息;2. 学会使用函数对电话簿进行增删查改等基本操作;3. 了解文件操作,能够实现电话簿数据的持久化存储。

技能目标:1. 培养学生运用C语言解决问题的能力,学会分析实际问题并将其转化为程序设计;2. 提高学生的编程实践能力,能够独立完成一个简单的电话簿管理系统;3. 培养学生的团队协作能力,学会与他人合作共同完成项目。

情感态度价值观目标:1. 激发学生对计算机编程的兴趣,培养其主动学习和探究的精神;2. 培养学生的创新意识,敢于尝试新技术和方法;3. 增强学生的责任感和使命感,使其认识到编程对现实生活的影响。

分析课程性质、学生特点和教学要求,本课程旨在通过电话簿课程设计,使学生在掌握C语言基础知识的基础上,提高实际编程能力。

课程目标具体、可衡量,以便学生和教师能够清晰地了解课程的预期成果。

通过本课程的学习,学生将能够独立完成一个简单的电话簿管理系统,为后续学习更复杂的编程知识打下基础。

二、教学内容1. C语言结构体与数组:- 结构体定义和使用;- 结构体数组创建与操作;- 课本第二章相关内容。

2. 函数:- 函数定义与调用;- 传值调用与引用调用;- 课本第三章相关内容。

3. 电话簿管理系统功能模块:- 新增联系人;- 删除联系人;- 查找联系人;- 修改联系人;- 显示所有联系人;- 课本第四章相关内容。

4. 文件操作:- 文件的打开与关闭;- 文件读写操作;- 课本第五章相关内容。

5. 项目实践:- 分组协作,共同完成电话簿管理系统;- 各组展示项目成果,相互评价;- 结合课本内容,进行实际编程操作。

教学内容安排和进度:第一周:结构体与数组;第二周:函数;第三周:电话簿管理系统功能模块设计;第四周:文件操作与项目实践;第五周:项目展示与评价。

教学内容具有科学性和系统性,确保学生在掌握C语言基础知识的同时,能够逐步学会运用所学知识解决实际问题。

c简单电话簿课程设计

c简单电话簿课程设计

c 简单电话簿课程设计一、教学目标本课程旨在让学生了解和掌握C语言的基本语法和编程思想,通过编写简单的电话簿程序,培养学生的编程兴趣和基本编程能力。

具体目标如下:1.知识目标:使学生掌握C语言的基本数据类型、运算符、控制结构、函数等语法知识。

2.技能目标:培养学生运用C语言进行程序设计的能力,能够独立完成简单的电话簿程序编写和调试。

3.情感态度价值观目标:培养学生对计算机编程的兴趣,提高学生解决问题的能力,培养学生的创新精神和团队合作意识。

二、教学内容本课程的教学内容主要包括C语言的基本语法和编程方法。

具体安排如下:1.C语言概述:介绍C语言的历史、特点和基本语法。

2.数据类型和运算符:讲解C语言的基本数据类型、运算符及其使用方法。

3.控制结构:讲解条件语句和循环语句的用法。

4.函数:介绍函数的定义、声明和调用,讲解常用的库函数。

5.电话簿程序设计:引导学生运用所学知识编写简单的电话簿程序,培养学生的编程能力。

三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法:1.讲授法:讲解C语言的基本语法和编程方法。

2.案例分析法:分析典型的电话簿程序案例,引导学生理解和掌握编程思想。

3.实验法:让学生动手编写和调试电话簿程序,提高学生的实际编程能力。

四、教学资源为了支持教学内容和教学方法的实施,本课程将准备以下教学资源:1.教材:选用权威、实用的C语言教材,为学生提供系统的学习资料。

2.参考书:推荐学生阅读一些优秀的C语言编程书籍,丰富学生的知识储备。

3.多媒体资料:制作精美的PPT,为学生提供直观的学习体验。

4.实验设备:准备计算机实验室,确保学生能够进行实践操作。

五、教学评估为了全面、客观地评估学生的学习成果,本课程将采用以下评估方式:1.平时表现:考察学生在课堂上的参与程度、提问回答等情况,占总评的20%。

2.作业:布置适量的课后作业,检查学生对知识的掌握程度,占总评的30%。

3.考试:进行期中考试和期末考试,全面测试学生的编程能力,占总评的50%。

c课程设计电话簿

c课程设计电话簿

c 课程设计电话簿一、教学目标本节课的教学目标是让学生掌握电话簿的基本概念和作用,了解电话簿的组成和结构,学会使用电话簿进行信息查询和通信。

具体来说,知识目标包括:1.了解电话簿的定义和作用。

2.掌握电话簿的组成和结构,包括联系人姓名、电话号码、地址等。

3.了解电话簿的分类,如纸质电话簿和电子电话簿。

技能目标包括:1.学会使用电话簿进行信息查询,如查找联系人电话号码、地址等。

2.学会使用电话簿进行通信,如拨打电话、发送短信等。

情感态度价值观目标包括:1.培养学生对电话簿的重要性的认识,使其明白电话簿在日常生活中的应用价值。

2.培养学生爱护电话簿的习惯,使其明白电话簿是个人隐私的一部分。

二、教学内容本节课的教学内容主要包括电话簿的基本概念、组成结构、分类和使用方法。

具体内容包括:1.电话簿的定义和作用。

2.电话簿的组成结构,如联系人姓名、电话号码、地址等。

3.电话簿的分类,如纸质电话簿和电子电话簿。

4.使用电话簿进行信息查询和通信的方法。

三、教学方法为了激发学生的学习兴趣和主动性,本节课将采用多种教学方法,如讲授法、讨论法、案例分析法等。

具体方法如下:1.讲授法:教师通过讲解电话簿的基本概念、组成结构、分类和使用方法,使学生掌握相关知识。

2.讨论法:教师引导学生讨论电话簿在日常生活中的应用,培养学生对电话簿重要性的认识。

3.案例分析法:教师展示实际案例,让学生分析电话簿在实际生活中的作用,提高学生运用知识解决问题的能力。

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

具体资源如下:1.教材:教材中关于电话簿的相关内容,为学生提供理论基础。

2.多媒体资料:教师准备的相关图片、视频等多媒体资料,帮助学生更直观地了解电话簿的组成和作用。

3.实验设备:如手机、电话簿等,用于展示和练习电话簿的使用方法。

五、教学评估本节课的教学评估将采用多种方式,以全面、客观、公正地评估学生的学习成果。

具体评估方式如下:1.平时表现:教师将关注学生在课堂上的参与程度、提问回答等情况,以了解学生的学习态度和知识掌握程度。

简单的c语言程序设计班级通讯录管理系统

简单的c语言程序设计班级通讯录管理系统

简单的c语言程序设计班级通讯录管理系统【1】班级通讯录管理系统是一种常见且实用的应用,可以用来方便地管理班级成员的联系信息。

本文将从简单的C语言程序设计的角度来介绍班级通讯录管理系统的设计与实现。

【2】在设计班级通讯录管理系统之前,我们首先需要确定系统的基本功能。

通常而言,一个班级通讯录管理系统应包含以下几个功能模块:添加成员信息、显示通讯录、查找成员、修改成员信息和删除成员。

这些功能模块将构成我们程序的主要结构。

【3】为了实现班级通讯录管理系统,我们首先需要定义一个结构体来表示每个成员的信息。

可以使用C语言的结构体来存储每个成员的尊称、学号、性别、通信等信息。

通过使用结构体,我们可以方便地将这些信息组织在一起,并进行对应的操作。

【4】在程序中,我们可以使用数组来存储多个成员的信息。

可以定义一个指定大小的成员数组来存放所有的班级成员信息。

通过数组的索引,我们可以访问和修改特定位置的成员信息,实现各种操作。

【5】在添加成员信息的功能模块中,我们可以通过用户输入来获取新成员的信息,并将其添加到通讯录中。

可以使用循环结构来连续添加多个成员的信息,直到用户选择退出为止。

【6】显示通讯录的功能模块可以遍历整个成员数组,并将每个成员的信息逐一打印出来。

通过这个功能,可以让用户随时查看通讯录中的成员信息。

【7】查找成员的功能模块可以根据用户输入的关键字,在通讯录中查找与之匹配的成员信息,并将结果打印出来。

这个功能可以提供便捷的查询服务,帮助用户快速找到所需的成员信息。

【8】修改成员信息的功能模块可以让用户选择要修改的成员,并提供修改对应信息的选项。

用户可以输入新的信息,然后更新通讯录中的成员数据。

【9】删除成员的功能模块可以让用户选择要删除的成员,并将其从通讯录中删除。

通过这个功能,可以帮助用户及时更新通讯录,删除不再需要的成员信息。

【10】在实现以上功能模块的基础上,我们可以进一步改进班级通讯录管理系统。

可以添加密码保护功能,限制只有授权用户才能进行修改和删除操作。

c语言课程设计例子--电话本

c语言课程设计例子--电话本

1、增加、修改、删除、查找记录2、存入添加记录的时间,并在显示数据时候一并显示。

3、查询时输入姓名首字母即可查找的记录4、保存在dat文件中,并可以读取#include<conio.h>#include<stdio.h>#include<string.h>#include<stdlib.h>#define Node struct nodeNode /*结构体类型定义,包括:姓、名和电话号码*/{char szName[20];char szPhoneNum[12];Node *next;};Node *strpHead; /*全程变量,链头指针*/Node *strpCurrent; /*全程变量,用于指明当前在链表中的位置*/ /*function prototypes*/void HandleChoice_f(int ); /*--函数原形说明*/void AddRecord_f();void InsertNode_f(Node *);Node *InsertPoint_f(char *);void MakeNewHead_f(Node *);void AddToEnd_f(Node *);void MoveToEnd_f();void DisplayList_f();void DeleteRecord_f();void DelHead_f();void DelEnd_f(Node *);void DelMid_f(Node *);int VerifyDel_f();void DelNode_f(Node *);void DelList_f();void SearchByName_f();void WriteFile_f();void LoadFile_f();void Help_f();{int nChoice;printf( "Welcome to PhoneBook 1.0 for dos and freedos\n");printf( "Press Enter To Continue\n");system("pause");system("cls"); /*执行系统命令:cls—清屏*/strpHead = NULL; /* Initialize head pointer to NULL*/LoadFile_f(); /* Load data from the disk file into linked list.*/do{ /* Display menu.-- 主菜单显示*/printf( "1 - Add record\n");printf( "2 - Display all records\n");printf( "3 - Search for friend by name\n");printf( "4 - Delete record\n");printf( "5 - Help\n");printf( "6 - Exit program\n");printf( "Enter choice: ");scanf("%d", & nChoice);HandleChoice_f(nChoice); /* Call function to direct flow based on choice.*/} while(nChoice != 6); /* Repeat menu until user chooses to exit.*/return 0;} /* end of main function*//* Function to direct program flow based on user's choice.*/void HandleChoice_f(int nChoice) /* 根据用户选择(choice)调用对应处函数*/ {switch(nChoice) /* choice is passed into the function by value.*/{case 1: /* If choice was to add a record to the database,*/AddRecord_f(); /* call function to add a record to the linked list.*/break;case 2: /* If choice was to display all records in the database,*/DisplayList_f(); /* call function to display all records in*/break; /* the linked list.*/case 3: /* If choice was to search for a record in the database,*/SearchByName_f(); /* call function to search for record by*/break; /* last name.*/case 4: /* If choice was to delete a record in the database,*/DeleteRecord_f(); /* call a function that searched for record*/break; /* by last name and deletes it.*/case 5: /* If choice is for help*/Help_f();break;case 6: /* If choice was to exit,*/WriteFile_f(); /* save database to a file and*/if(strpHead != NULL) /* delete the list from memory.*/{DelList_f();}break;default : /* If any other (invalid) choice was entered,*/printf("Invalid choice\n"); /* display error message.*/break;}} /* end of function HandleChoice_f *//* Function to add record to the linked list.*/void AddRecord_f() /* 在链表中增加一个记录*/{Node *strpNew; /* Declare temporary pointer for the new node.*/strpNew=(Node *)malloc(sizeof(Node)); /* Allocate memory for a new node and *//* initialize pointer to point to it.*//* Get name and phone number from the user.*/getchar();printf( "Name: ");gets(strpNew->szName);printf( "Phone Number: ");gets(strpNew->szPhoneNum);InsertNode_f(strpNew);system("cls");} /* end of function AddRecord_f*//* Function to insert new node into correct position in list.*/void InsertNode_f(Node *strpNew) /*将一个由strpNew 指向的新节点插入链表中*/ {Node *strpFront;Node *strpBack;system("cls");if(strpHead == NULL){ /* If no nodes exist, make the node*/ strpNew->next = NULL; /* the head.*/strpHead = strpNew;}else{if(strcmp(strpNew->szName, strpHead->szName) < 0){ /* If new record comes before head, */ MakeNewHead_f(strpNew); /* make it the new head. */}else /* Else, determine where the new node*/ { /* should be inserted.*/strpCurrent = InsertPoint_f(strpNew->szName);strpFront = strpCurrent; /* Use pointers to keep track of nodes*/strpBack = strpCurrent->next; /* on each side of the insertion point.*/if(strpBack == NULL) /* If strpBack is NULL, the node needs to be*/{ /* added to the end of the list.*/AddToEnd_f(strpNew);}else /* Else add the node between the nodes pointed to*/{ /* by strpFront and strpBack.*/strpFront->next = strpNew;strpNew->next = strpBack;}}}} /* end of function InsertNode_f*//* Function that positions strpCurrent at the node before the position*//* where the new node should be inserted.*/Node *InsertPoint_f(char *szName){ /* 根据姓氏,返回其在链表中的正确位置。

C语言课设--电话簿管理系统解读

C语言课设--电话簿管理系统解读

高级语言课程设计任务书及说明书设计题目电话簿管理系统学院计算机与通信学院专业、年级通信工程1班学生杨智刚学号 ____ 1416530101_ 指导教师时间 2015 年春季学期目录1 摘要 (3)2 前言 (4)3 正文 (5)3.1系统分析3.2系统总体设计3.3详细设计3.4系统测试4 参考文献 (16)5 总结 (17)附录: 程序源代码本次课程设计采用C语言,开发了一个基本的电话簿管理系统,该系统具备了按联系人姓名查找并输出联系人信息,按联系人姓名查找并删除数据,输出全部联系人信息数据,对联系人的管理也可以更加方便快捷。

关键词:C语言;课程设计;电话簿管理系统随着交际能力的广泛性的提高,朋友的数量逐渐增多,但是在联系人管理方面总是出现联系人姓名、年龄等出现错误的诸多问题。

本文针对上述问题,采用软件工程的开发原理,根据软件流程过程规范,按照需求分析、概要设计、详细设计、程序编码、测试、软件应用、软件维护等过程开发了一个电话簿管理系统。

采用c语言作为开发工具,设计了这个电话簿管理系统,解决了联系人信息管理中存在的数据安全性、数据一致性等问题。

3.1 系统分析3.3.1.设计要求该设计要求以方便查找和管理联系人为背景,设计、开发一套“电话簿管理系统”软件。

通过该题目的设计过程,可以培养学生结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解,针对c语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。

得到软件工程的综合训练,提高解决实际问题的能力。

3.3.2设计任务1、以电话簿管理业务为背景,通过调研、分析现有的管理模式和已有的管理软件,建立系统模型;2、完成软件结构设计和算法设计;3、完成系统的软件开发和测试工作联系人信息包括:姓名,年龄,性别,电话等。

设计“电话簿管理系统”,使之能提供以下功能:1.系统以菜单方式工作;2.联系人信息录入功能;3.联系人信息浏览功能;4.查询功能:按姓名查询;5.联系人信息的删除与修改。

c课程设计班级通讯录设计

c课程设计班级通讯录设计

c 课程设计班级通讯录设计一、教学目标本节课的教学目标是使学生掌握班级通讯录的设计与实现。

知识目标包括理解班级通讯录的基本结构,掌握使用编程语言实现通讯录的基本功能。

技能目标包括培养学生使用编程语言进行简单应用程序开发的能力,以及解决问题的能力。

情感态度价值观目标包括培养学生对计算机科学的兴趣,以及合作、创新的精神。

二、教学内容本节课的教学内容主要包括班级通讯录的基本结构,如姓名、电话、邮箱等,以及如何使用编程语言实现通讯录的基本功能。

具体包括:1. 班级通讯录的基本结构及其表示方法;2. 使用编程语言实现通讯录的增加、删除、查找等功能;3. 简单的用户界面设计,如输入、输出等。

三、教学方法本节课将采用讲授法、案例分析法和实验法等多种教学方法。

首先,通过讲授法向学生介绍班级通讯录的基本结构和编程语言的基本知识。

然后,通过案例分析法,分析并解决实际问题,如如何实现通讯录的增加、删除、查找等功能。

最后,通过实验法,让学生亲自动手编写程序,实现班级通讯录的设计与实现。

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

教材将提供班级通讯录的基本知识和编程语言的基本语法。

多媒体资料将用于辅助讲解和演示,如编程语言的使用方法和实验步骤等。

实验设备包括计算机、网络等,用于让学生亲自动手实践,加深对知识的理解和掌握。

五、教学评估本节课的教学评估主要包括平时表现、作业和考试三个部分。

平时表现主要评估学生在课堂上的参与程度、提问回答等情况,占总评的30%。

作业主要评估学生对课堂所学知识的掌握情况,占总评的40%。

考试则是对学生全面掌握班级通讯录设计与实现能力的评估,占总评的30%。

评估方式客观、公正,全面反映学生的学习成果。

六、教学安排本节课的教学安排如下:总共安排10课时,每课时45分钟。

第一课时介绍班级通讯录的基本结构,第二课时讲解编程语言的基本知识,第三课时分析通讯录的实现方法,第四课时进行课堂实践,第五课时进行作业讲解,第六课时到第十课时进行实验和实践。

班级通讯录(大数据结构,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、结果分析:在编译过程中遇到很多困难,程序也基本上符合要求,但是有一点目前还没解决,就是基于链表的修改还没掌握,因此花了很大的力气,但是还是没有完成,只好采取的修改方式为:删除,添加,排序的方法对链表中的元素进行修改。

  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("输入任意键进入。

相关文档
最新文档