c语言课程设计学生档案管理系统

合集下载

c语言学生管理系统课程设计

c语言学生管理系统课程设计

C语言学生管理系统课程设计1. 引言学生管理系统是为了方便学校或教育机构对学生信息进行管理和维护而开发的应用软件。

本文将介绍一个使用C语言编写的学生管理系统的课程设计方案。

该系统将实现学生信息的增加、查询、修改和删除等功能,并通过文件存储学生信息。

2. 功能需求学生管理系统应该具备以下基本功能: - 添加学生信息:包括学号、姓名、性别、年龄等基本信息。

- 查询学生信息:按照学号或姓名查询学生信息,并显示在屏幕上。

- 修改学生信息:根据学号或姓名修改学生的基本信息。

- 删除学生信息:按照学号或姓名删除学生的信息。

- 显示所有学生信息:将所有学生的信息显示在屏幕上。

3. 系统设计3.1 数据结构设计系统采用结构体作为学生信息的数据结构,每个学生的信息包括学号、姓名、性别、年龄等字段。

struct Student {int id;char name[20];char gender;int age;};3.2 文件存储设计系统将学生信息存储在一个文本文件中。

文件的每一行表示一个学生的信息,各个字段之间通过分隔符进行分隔(如逗号或制表符)。

3.3 系统模块设计系统可以划分为以下几个模块: - 添加学生模块:负责获取用户输入的学生信息,并将其添加到文件中。

- 查询学生模块:负责根据用户输入的学号或姓名,在文件中查询学生信息,并显示在屏幕上。

- 修改学生模块:负责根据用户输入的学号或姓名,找到对应的学生信息并修改。

- 删除学生模块:负责根据用户输入的学号或姓名,找到对应的学生信息并删除。

- 显示学生模块:负责将所有学生信息从文件中读取出来,并显示在屏幕上。

4. 流程图以下是学生管理系统的主要流程图:graph LRA[学生信息管理系统] --> B(显示菜单)A --> C(添加学生信息)A --> D(查询学生信息)A --> E(修改学生信息)A --> F(删除学生信息)A --> G(显示所有学生信息)B --> H(退出系统)C --> I(获取学生信息)C --> J(将学生信息添加到文件中)D --> K(获取查询条件)D --> L(根据条件查询学生信息)D --> M(将查询结果显示在屏幕上)E --> N(获取修改条件)E --> O(找到对应的学生信息并修改)E --> P(将修改后的学生信息保存到文件中)F --> Q(获取删除条件)F --> R(找到对应的学生信息并删除)F --> S(将删除后的学生信息保存到文件中)G --> T(从文件中读取所有学生信息)G --> U(将学生信息显示在屏幕上)5. 实现方法学生管理系统可以使用C语言中的文件操作函数来实现。

c语言课程设计学生档案管理系统实验报告

c语言课程设计学生档案管理系统实验报告

学院:管理科学与信息工程学院班级:计算机学号:_____1401111633 姓名:张浩程序作者:程光亮 ,张浩C语言程序设计课程-----设计报告课程设计的目的1.复习、巩固C语言的基础知识,进一步加深对C语言的理解和掌握;2.为学生提供一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机结合起来,锻炼学生的分析解决实际问题的能力。

提高学生实践编程的能力;3.培养学生在项目开发中团队合作精神、创新意识及能力。

课程设计题目安排课程设计题目可从以下题目中选择,也可经老师同意自拟题目。

可以多人合作完成(每组最多3人),合作完成的必须明确每个人的具体任务,每人单独上交课程设计报告。

一,题目内容描述第1题学生档案管理设计一个学生档案管理程序。

该程序应该具有下列功能:(1)通过键盘输入某位学生的相关信息。

包括学号、姓名、性别、年龄、出生年月、电话、E-mail、籍贯等;(2)浏览学生信息;(3)根据学号修改、删除学生信息;(4)能按学号、姓名、年龄等关键字排序;(5)统计学生年龄的平均值及各年龄段人数;(6)用链表实现,原始数据输入和结果输出使用文件存放二,应用程序的详细说明(一)系统总体框图(二)模块功能说明1学生信息的输入和修改函数原形:void shuxiu()功能:首次进入管理系统时,进行学生信息的录入,将学生信息存放于结构体链表中入口参数:无出口参数:结构体类型的头指针函数调用关系说明:main()函数调用shuxiu()函数,返回结构体类型的头指针Shuxiu()函数调用shuru()函数和xiugai()函数Shuru()函数主要完成数据的输入以及将数据存储到硬盘的工作Xiugai()调用add()用来添加学生信息Shanchu()哟买回来删除学生信息Xg()用来实现数据的修改内容限制:录入学生信息学如果重复无法检测。

2修改学生信息函数原形:void xiugai()功能:主要王成数据的添加、删除和修改,隶属于数据的输入和修改模块入口参数:无出口参数:无函数调用关系说明:shuxiu()函数调用修改函数Xiugai()函数中调用add() shanchu() xg()内容限制:待修改结点存在,不存在时进行提示3删除学生信息函数原形:int delete(LNode *head,char *n)功能:找到待删除结点(找不到时return NULL),将其从链表中脱离并释放删除信息并释放该结点入口参数:struct node *head出口参数:结构体类型的头指针函数调用关系说明:main函数调用delete函数,Delete函数中调用shuchu1函数返回结构体类型的头指针内容限制:待删除结点存在,不存在时进行提示4学生信息查询函数原形:void chaxun()功能:分为void sch_name()(按姓名查找)和void sch_num()(按学号查找)根据输入的部分信息,搜索另外的学生信息入口参数:出口参数:无函数调用关系说明:main函数调用chaxun()函数Chaxun()函数中调用sch_num()(按姓名查找)和sch_num()(按学号查找)两函数内容限制:待查询结点存在,不存在时进行提示5修改密码函数原型:void gaimi()入口参数:struct node *head出口参数:无函数调用关系说明:main函数调用gaimi函数,gaimi函数中调用comp1函数用来检查原始密码输入是否正确。

原创c语言+数据库 学生管理系统课程设计

原创c语言+数据库 学生管理系统课程设计

原创C语言+数据库学生管理系统课程设计一、引言学生管理系统是一种应用程序,旨在管理学生的基本信息、课程信息、成绩信息以及其他相关信息。

本文将介绍一个基于C语言和数据库的学生管理系统的课程设计。

二、系统设计学生管理系统主要分为以下几个模块:学生信息管理、课程信息管理、成绩管理和报告生成。

2.1 学生信息管理学生信息管理模块主要用于添加、修改、删除和查询学生的基本信息。

学生的基本信息包括学号、姓名、性别、年龄等。

利用数据库存储学生信息可以提高系统的效率和数据的安全性。

通过C语言与数据库的交互,可以实现对学生信息的增删改查操作。

2.2 课程信息管理课程信息管理模块用于添加、修改、删除和查询课程的相关信息。

每门课程有自己的课程编号、课程名称、上课地点、上课时间等。

同样地,课程信息也可以通过数据库进行存储和管理。

2.3 成绩管理成绩管理模块用于录入和查询学生的成绩信息。

每名学生可以选择多门课程,并获取相应的成绩。

成绩信息包括学生学号、课程编号、成绩等。

通过C语言与数据库的结合,可以方便地进行成绩的录入、修改和查询。

2.4 报告生成报告生成模块将学生的基本信息、课程信息和成绩信息综合起来,生成一份完整的报告。

该报告可以用于学校的教务管理、学生的评估等。

通过对数据库中的数据进行查询和整合,可以实现报告的自动生成。

三、技术实现在这个学生管理系统的课程设计中,我们将使用C语言作为编程语言,以及使用MySQL作为数据库管理系统。

具体的实现步骤如下:1.建立数据库首先,我们需要创建一个数据库,用于存储学生信息、课程信息和成绩信息。

可以使用MySQL命令行或者图形化界面工具创建数据库。

2.建立表格在数据库中创建相关的表格,用于存储学生信息、课程信息和成绩信息。

表格的列可以根据实际需要进行设计,例如学生表格可以包括学号、姓名、年龄等列。

3.连接数据库使用C语言编写程序,连接到MySQL数据库。

可以使用MySQL提供的C语言接口库,实现与数据库的连接。

c语言课程设计之学生信息管理系统 (2)

c语言课程设计之学生信息管理系统 (2)

学生信息管理系统设计案例一、引言学生信息管理系统是一种集学生信息录入、查询、修改和删除等功能于一体的软件系统。

为了满足学校对学生信息的有效管理和查询需求,本文将介绍一种用C语言实现的学生信息管理系统设计案例。

二、需求分析学生信息管理系统主要有以下几个功能模块: 1. 学生信息录入:包括学生姓名、学号、年龄、性别等基本信息的录入。

2. 学生信息查询:可以根据学号或姓名进行查询,并显示查询结果。

3. 学生信息修改:可以根据学号或姓名选择要修改的学生信息,并进行修改操作。

4. 学生信息删除:可以根据学号或姓名选择要删除的学生信息,并进行删除操作。

三、系统设计1. 数据结构设计为了存储学生信息,我们需要定义一个学生结构体,包括姓名、学号、年龄、性别等字段。

同时,为了方便管理学生信息,我们可以使用链表数据结构来存储学生信息,并设计一个头节点来指向链表的第一个节点。

struct student {char name[20];int student_id;int age;char gender[10];struct student* next;};struct student* head; // 头节点2. 功能模块设计2.1 学生信息录入在该功能模块中,用户需要输入学生的姓名、学号、年龄和性别等信息,并将该学生信息添加到链表中。

为了方便起见,我们可以将该功能模块定义为一个函数add_student()。

2.2 学生信息查询在该功能模块中,用户可以根据学号或姓名进行学生信息的查询。

查询结果将会显示学生的基本信息。

为了方便起见,我们可以将该功能模块定义为一个函数search_student()。

2.3 学生信息修改在该功能模块中,用户可以根据学号或姓名选择要修改的学生信息,并进行修改操作。

为了方便起见,我们可以将该功能模块定义为一个函数update_student()。

2.4 学生信息删除在该功能模块中,用户可以根据学号或姓名选择要删除的学生信息,并进行删除操作。

c语言课程设计学生学籍管理系统

c语言课程设计学生学籍管理系统

c语言课程设计学生学籍管理系统一、教学目标本课程的教学目标是使学生掌握C语言的基本语法和编程方法,能够运用C语言设计学生学籍管理系统。

具体分为三个部分:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识。

2.技能目标:学生能够运用C语言进行程序设计,具备编写和调试程序的能力。

3.情感态度价值观目标:学生通过完成学生学籍管理系统的设计和实现,培养对计算机科学和编程的兴趣和热情,提高解决实际问题的能力。

二、教学内容根据课程目标,教学内容主要包括C语言的基本语法和编程方法,具体包括以下部分:1.C语言的基本语法:数据类型、变量、运算符、控制结构等。

2.函数:函数的定义、调用、参数传递、返回值等。

3.学生学籍管理系统的需求分析:系统的功能、数据结构、界面设计等。

4.编程实践:学生通过编写和调试程序,完成学生学籍管理系统的实现。

三、教学方法本课程采用讲授法、讨论法、案例分析法和实验法等多种教学方法,以激发学生的学习兴趣和主动性。

1.讲授法:教师通过讲解C语言的基本语法和编程方法,为学生提供系统的知识结构。

2.讨论法:教师引导学生进行问题讨论,培养学生的思考和解决问题的能力。

3.案例分析法:教师通过分析学生学籍管理系统的案例,引导学生理解和应用C语言编程。

4.实验法:学生通过动手编写和调试程序,提高编程实践能力。

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

1.教材:选用权威、实用的C语言教材,为学生提供系统的知识结构。

2.参考书:提供相关的参考书籍,丰富学生的知识视野。

3.多媒体资料:制作多媒体课件,生动、形象地展示C语言编程的方法和技巧。

4.实验设备:提供计算机实验室,让学生进行编程实践。

五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以全面、客观、公正地评价学生的学习成果。

1.平时表现:通过课堂参与、提问、讨论等方式评估学生的学习态度和积极性。

C语言程序设计班级档案管理系统报告文档

C语言程序设计班级档案管理系统报告文档

前言 0目录 (1)第二章系统需求分析 (4)第五章系统调试 (7)输入密码进入系统 (7)第六章使用说明 (15)第七章总结 (15)前言设计课题八:班级档案管理系统一、问题描述:对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除、保存等操作的管理。

二、功能要求:1、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:学号、姓名、性别、年龄、备注。

2、本系统显示这样的菜单:请选择系统功能项:a.学生基本信息录入b.学生基本信息显示c.学生基本信息保存d.学生基本信息删除e.学生基本信息修改(要求先输入密码)f.学生基本信息查询(1)按学号查询(2)按姓名查询(3)按性别查询(4)按年龄查询g. 退出系统3、执行一个具体的功能之后,程序将重新显示菜单。

4、将学生基本信息保存到文件中。

5、进入系统之前要先输入密码。

三、算法提示:1、数据结构:结构体类型数组四、测试数据:学生人数N=10五、其它:对该系统有兴趣的同学可以在实现上述基本功能后,完善系统的其它功能。

目录第一章绪论第一节课程背景第二节本文所做工作第二章需求分析第三章总体设计第四章详细设计第五章测试第六章使用说明第七章总结附录A 源代码附录B 参考资料第一章绪论学生档案管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生档案管理系统应该能够为用户提供充足的信息和快捷的查询手段。学生档案管理系统是典型的信息管理系统(MIS),经过分析如此情况,我们用code#blocks开发工具,利用其提供的各种面向对象的开发工具和功能强大的SQL(结构化查询语言)。

第一节课程背景在我国,各大中小学校的各类信息管理系统并非一个新的课题,但也有的学校根本就没有信息任何管理系统,所有的工作几乎还是手工操作来完成。

计算机技术在日新月异的发展,但是有的很多学校,特别是在西部贫困地区,学校的种类管理都依然由手工操作来完成,这十分落后,效率极低,成本很大,而且极异出错。

学生档案管理系统c语言课程设计报告

学生档案管理系统c语言课程设计报告

目录一、课题设计容与主要功能 (1)第1节.设计容 (1)第2节.主要功能 (1)二、课题分析...................... 错误!未定义书签。

第1节.类声明表.................... 错误!未定义书签。

第2节.分析课程设计项目的实现方法 (3)三、主要功能的实现步骤 (4)四、程序测试与结论 (5)五、总结 (11)六、附件14一、课题设计容与主要功能1、设计容:为了满足学生档案管理的要求,通过计算机技术给档案管理人员带来便利。

使用c 语言编写了学生档案此管理系统。

本系统主要实现学生档案管理的功能,通过此系统方便对学生档案管理。

包括学号、、性别、年龄、备注。

所设计的系统以菜单方式工作,为用户提供清晰的使用提示,依据用户的选择来进行各种处理。

图书信息的录入后,系统按照有一定的规格式显示,录入的学生信息用文件形式保存,并可以对其进行修改、排序、插入、排序查询等基本操作。

整个程序实现链表操作,对学生信息的操作逐个地进行。

学生档案管理系统构建框架2、主要功能:1、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:学号、、性别、年龄、备注。

2、本系统显示这样的菜单:请选择系统功能项:1.学生基本信息录入;2.学生基本信息显示;3.学生基本信息保存;4.学生基本信息修改;5.学生基本信息插入;6.学生基本信息删除;7.学生基本信息排序;8.学生基本信息按查询;9.从文件中读入学生基本信息;10.退出系统3、执行一个具体的功能之后,程序将重新显示菜单。

4、将学生基本信息保存到文件中。

二、课题分析1、类说明表2、实现方法及核心算法实现代码:主函数: void main()录入函数:void enter()显示函数:void list()保存函数:void save()插入函数:insert()修改函数:void revise()删除函数:void delete()删除录入的学生信息排序函数:void sort()排序录入的学生信息查找函数:void qseek()查找录入的学生信息读取函数:int load()读取保存在文件中的学生信息三、主要功能的实现步骤模块一:头文件,变量定义,函数的声明对系统所使用的变量进行定义,对函数进行声明模块二:学生信息的录入int enter(STUDENT t[])录入学生的基本信息。

c语言课程设计学生学籍管理系统

c语言课程设计学生学籍管理系统

c语言课程设计学生学籍管理系统一、教学目标本课程旨在让学生掌握C语言的基本语法,培养学生编写结构化程序的能力,使学生能够运用C语言实现简单的学生学籍管理系统。

通过本课程的学习,学生将能够:1.知识目标:–理解C语言的基本数据类型、运算符和表达式;–掌握函数的定义和调用,理解局部变量和全局变量的概念;–熟悉控制结构,如if语句、for循环和while循环;–了解数组、字符串和指针的基本使用方法。

2.技能目标:–能够使用C语言编写简单的程序,解决实际问题;–掌握基本的调试技巧,能够找出并修复程序中的错误;–具备阅读和理解他人代码的能力。

3.情感态度价值观目标:–培养学生对计算机科学的兴趣和热情,提高学生的自主学习能力;–培养学生团队协作的精神,增强学生的沟通能力;–培养学生解决问题的能力,提高学生的创新意识。

二、教学内容本课程的教学内容主要包括以下几个部分:1.C语言基本语法:数据类型、运算符、表达式、函数、局部变量和全局变量等;2.控制结构:if语句、for循环、while循环等;3.数据结构:数组、字符串、指针等;4.学生学籍管理系统的实现:学生信息的添加、删除、修改和查询等功能。

三、教学方法本课程采用讲授法、案例分析法和实验法等多种教学方法相结合的方式进行教学:1.讲授法:通过讲解C语言的基本语法和概念,使学生掌握相关知识;2.案例分析法:通过分析实际案例,使学生理解并掌握C语言在学生学籍管理系统中的应用;3.实验法:让学生动手编写代码,实现学生学籍管理系统的功能,提高学生的实际操作能力。

四、教学资源本课程的教学资源包括:1.教材:《C语言程序设计》;2.参考书:《C语言 Primer》;3.多媒体资料:教学PPT、视频教程等;4.实验设备:计算机、网络等。

以上教学资源将有助于实现本课程的教学目标,提高学生的学习效果。

五、教学评估本课程的教学评估将采用多元化评价方式,全面客观地评价学生的学习成果。

学生档案管理系统c语言课程设计

学生档案管理系统c语言课程设计

目录一、课题设计内容与主要功能 (1)第1节.设计内容 (1)第2节.主要功能 (1)二、课题分析...................... 错误!未定义书签。

第1节.类声明表.................... 错误!未定义书签。

第2节.分析课程设计项目的实现方法 (3)三、主要功能的实现步骤 (4)四、程序测试与结论 (5)五、总结 (11)六、附件14一、课题设计内容与主要功能1、设计内容:为了满足学生档案管理的要求,通过计算机技术给档案管理人员带来便利。

使用c 语言编写了学生档案此管理系统。

本系统主要实现学生档案管理的功能,通过此系统方便对学生档案管理。

包括学号、姓名、性别、年龄、备注。

所设计的系统以菜单方式工作,为用户提供清晰的使用提示,依据用户的选择来进行各种处理。

图书信息的录入后,系统按照有一定的规范格式显示,录入的学生信息用文件形式保存,并可以对其进行修改、排序、插入、排序查询等基本操作。

整个程序实现链表操作,对学生信息的操作逐个地进行。

学生档案管理系统构建框架2、主要功能:1、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:学号、姓名、性别、年龄、备注。

2、本系统显示这样的菜单:请选择系统功能项:1.学生基本信息录入;2.学生基本信息显示;3.学生基本信息保存;4.学生基本信息修改;5.学生基本信息插入;6.学生基本信息删除;7.学生基本信息排序;8.学生基本信息按姓名查询;9.从文件中读入学生基本信息;10.退出系统3、执行一个具体的功能之后,程序将重新显示菜单。

4、将学生基本信息保存到文件中。

二、课题分析1、类说明表2、实现方法及核心算法实现代码:主函数: void main()录入函数:void enter()显示函数:void list()保存函数:void save()插入函数:insert()修改函数:void revise()删除函数:void delete()删除录入的学生信息排序函数:void sort()排序录入的学生信息查找函数:void qseek()查找录入的学生信息读取函数:int load()读取保存在文件中的学生信息三、主要功能的实现步骤模块一:头文件,变量定义,函数的声明对系统所使用的变量进行定义,对函数进行声明模块二:学生信息的录入int enter(STUDENT t[])录入学生的基本信息。

用c语言编写的一个学生信息管理系统

用c语言编写的一个学生信息管理系统

路漫漫其修远兮,吾将.上F而求索・百度文库用C语言实现线性表的基本操作,能创建一个基于学生信息管理的链表,至少包含数据输入、数据输出、数据处理等操作。

在主函数里能实现以下功能。

运行后出现一个选择提示。

可选择的功能有1)创建新的学生信息链表2)增加一个新的学生信息3)按学号删除某个学生信息4)按学号查找某个学生信息5)可以按照学生成绩对■链表排序6)退出系统#include "stdio.h"#include "stdlib.h"#include "string.h n#include ,,conio.h Hjiemian();struct student(char name[50];char sex[5];int age;char num[50];float scorel;float score2;float score3;float sum;float ave;}stu[50],del;void gnl()(int i=0;char numl;for(i=0;i<50;i++)(printf「请输入要添加的学生资料:\n“);printf(“学号巧;scanf("%s",stu[i].num);printf("姓名巧;scanf("%s",stu[i].name);printf(“性别巧;scanf("%s",&stu[i].sex);printf(“年龄巧;scanf("%d",&stu[i].age);11目上下而求索•百度文库printf(”请输入学生的三门成绩:'俏;printf("语文门;scanf(,,%f,,,&stu[i].scorel);printf(“数学门;scanf(,,%f,,,&stu[i].score2);printf("英语巧;scanf(,,%f,,,&stu[i].score3);printf("是否继续添加:y/n\n“); scanf(,,%c,,,&numl);scanf(,,%c,,,&numl);if(numl==,N, 11 numl=="n,){system(,,cls"); jiemian();)))void gn2()(int i;char num[50];printf「请输入要查找的学生学号:\n“);scanf(,,%s,,/num);for(i=0;i<50;i++)if(strcmp(stu[i].num,num)==O) (stu[i].sum=stu[i].scorel+stu[i].score2+stu[i].score3;stu[i].ave=stu[i].sum^;printf(',%s\t%s\t%s\t%d\t%,2f\t%.2f\t%.2f\t%.2f\t%.2f:\n'l/stu[i].num/stu[i].name/stu[i].sex/stu[i] .age,s tu[i].scorel/stu[i].score2/stu[i].score3/stu[i].sum/stu[i].ave);break;)if(i==50)printf("查找不到!请重新输入!\n");22路漫漫其修远兮,吾将上F而求索・百度文库getch(); systemf'cls"); jiemian();)void gn3()(char numlJ=0;printf("请输入要修改的学生学号:\n“);scanf(,,%s,,/stu[i].num);printf(,l%s\t%s\t%s\t%d\t%,2f\t%.2f\t%.2f\t%.2f\t%.2f:\n'l/stu[i].num/stu[i].name/stu[i].sex/stu[i] .age,s tu[i].scorel/stu[i].score2/stu[i].score3/stu[i].sum/stu[i].ave);printf("姓名门;scanf(,,%s,,/stu[i].name);printf(“性别门;scanf(,,%s,,/stu[i].sex);printf("年龄门;scanf(,,%d,,,&stu[i].age);printf(“请输入学生的三门成绩:\n“);printf("语文门;scanf(,,%f,,,&stu[i].scorel);printf(“数学门;scanf(,,%f,,,&stu[i].score2);printf("英语门;scanf(,,%f,,,&stu[i].score3);printf("是否继续修改:y/n?\n“);scanf(,,%c"/&numl);scanf(,,%c,\&numl);if(numl==,N, 11 numl==,n,)systemf'cls"); jiemian();)void gn4()(int i;char num[50];printf("请输入要删除的学生学号:\n“);scanf(,,%s,,,num);for(i=0;i<50;i++) 33if(strcmp(num,stu[i].num)==O)(printf(,,%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n,,/stu[i].num/stu[i].name/stu[i].sex/stu[i] .age,stu[i].scorel/stu[i].score2/stu[i].score3/stu[i].sum/stu[i].ave);stu[i]=del;printf("信息已删除,按任意键返回..\n“); break;)if(i==50)printf ("您输入的信息不存在!\n”);getch();system("cls"); jiemian();)void gn5()(int i=0;stu[i].sum=stu[i].scorel+stu[i].score2+stu[i].score3;stu[i].ave=stu[i].sum/3;printf("学号\t姓名\t性别\t年龄\t语文\t数学\t英语\t总成绩\t平均成绩\n");for(i=0;i<50;i++)(if(stu[i].age==O)break;printf(,,%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n,,/stu[i].num/stu[i].name/stu[i].sex/stu[i] .age,stu[i].scorel/stu[i].score2/stu[i].score3/stu[i].sum/stu[i].ave);)printf("按任意键返回.getch();system(,,cls n);jiemian();)void gn6()(FILE *fp;int i;char filename[50];printf(,,\n N); 44路漫漫其修远兮,吾将上F而求索・百度文库printf(,,\n M);printf(“请输入要保存的文件名:");scanf(”%s”,filename);if((fp=fopen(filename/,wb,,))==NULL)printf("文件名为空,不能保存!\n");for(i=0;i<50;i++)(if(fwrite(&stu[i],sizeof(struct student),l,fp)!=l) printf("文件保存失败!\n”);)fclose(fp);printf (“文件己保存!\n“);printf。

学生档案管理系统c语言代码

学生档案管理系统c语言代码

学生档案管理系统c语言代码整个档案管理系统主要包括两个部分:数据结构和函数实现。

数据结构包括学生信息结构体和链表结构,而函数实现则包括链表操作函数和主函数。

1. 数据结构学生信息结构体包含学生姓名、学号、性别、出生日期、班级和联系方式:```struct student_info{char name[20]; //姓名char id[10]; //学号char sex[5]; //性别char birthday[20]; //出生日期char classname[10]; //班级char tel[20]; //联系方式};```链表结构包含指向学生信息结构体的指针和指向下一个节点的指针:```struct node{struct student_info* data; //指向学生信息结构体的指针struct node* next; //指向下一个节点的指针};```2. 函数实现链表操作函数实现了对链表的基本操作,包括创建节点、插入节点、删除节点和遍历链表:(1)创建节点函数createNode:```struct node* createNode(struct student_info* data){struct node* newNode= (struct node*) malloc(sizeof(struct node));newNode->data= data;newNode->next= NULL;return newNode;}```if(current!= NULL && current->data== data){ //头节点是要删除的节点*headRef= current->next; //把头节点下移free(current);return;}previous->next= current->next; //跳过要删除的节点free(current);}```(4)遍历链表函数displayList:主函数将这些函数调用起来,完成整个档案管理系统的功能:switch(choice){case 1:s= (struct student_info*) malloc(sizeof(struct student_info)); //为新学生信息结构体分配内存printf("Please enter student's name, ID, sex, birthday, classname, and telephone number: ");scanf("%s %s %s %s %s %s", s->name, s->id, s->sex, s->birthday,s->classname, s->tel);insertNode(&head, s); //插入新节点printf("New student record has been added.\n");break;case 3:displayList(head); //遍历链表,输出所有学生记录break;以上就是学生档案管理系统c语言代码的基本实现。

c语言课程设计学生学籍管理系统

c语言课程设计学生学籍管理系统

c语言课程设计 学生学籍管理系统一、课程目标知识目标:1. 理解C语言在开发学生学籍管理系统中的应用,掌握基本的数据类型、语法和结构;2. 学习使用结构体、数组、文件操作等C语言特性实现学生信息的增、删、改、查功能;3. 了解系统设计的基本流程,掌握模块化编程思想。

技能目标:1. 能够运用所学知识,独立设计并编写一个简单的学生学籍管理系统;2. 培养良好的编程习惯,写出结构清晰、易于维护的代码;3. 提高问题分析能力,学会运用C语言解决实际问题。

情感态度价值观目标:1. 培养学生对计算机编程的兴趣,激发学习积极性;2. 培养学生的团队合作精神,提高沟通与协作能力;3. 增强学生的自信心,使其勇于面对挑战,积极解决问题。

分析课程性质、学生特点和教学要求:本课程为C语言课程设计,旨在让学生将所学知识应用于实际项目中,提高编程实践能力。

学生已具备一定的C语言基础,但独立完成项目的能力尚需培养。

因此,课程目标应注重培养学生的实践能力、团队合作精神和解决问题的能力。

将目标分解为具体的学习成果:1. 学生能够独立设计并实现学生学籍管理系统的核心功能;2. 学生能够编写结构清晰、易于维护的代码,并通过测试;3. 学生能够在团队中发挥积极作用,共同完成项目任务;4. 学生能够通过本课程的学习,提升自身编程能力和解决问题的能力。

二、教学内容1. 数据类型与变量:回顾基本数据类型、变量定义和初始化,强调其在系统设计中的应用。

教材章节:第二章 数据类型与表达式2. 控制结构:复习顺序结构、分支结构和循环结构,讲解其在程序流程控制中的应用。

教材章节:第三章 控制结构3. 函数:介绍函数的定义、调用和参数传递,强调模块化编程思想。

教材章节:第四章 函数4. 结构体与数组:讲解结构体的定义和使用,以及结构体数组的应用。

教材章节:第五章 结构体与联合5. 文件操作:介绍文件读写的基本方法,讲解如何将数据存储到文件中,以及如何从文件中读取数据。

设计一个C语言课程的学生信息管理系统

设计一个C语言课程的学生信息管理系统

1. 设计一个C语言课程的学生信息管理系统在计算机编程领域,学生信息管理系统是一种常见且重要的工具。

针对C语言课程,设计一个学生信息管理系统可以使教师和学生更有效地管理和跟踪课程进展。

本文将基于这一需求,介绍一个设计方案,并讨论其实现和应用。

1.1 系统需求分析设计学生信息管理系统的首要步骤是确定系统的需求。

在C语言课程中,我们通常需要管理学生的基本信息(例如尊称、学号、通信方式等),以及他们的课程成绩、作业提交情况等。

针对这些需求,我们可以将学生信息管理系统的功能分为以下几个方面:1.学生信息录入:教师或管理员可以将学生的基本信息录入系统,包括尊称、学号、通信方式等。

2.成绩管理:系统可以记录和管理学生的课程成绩,并提供查询和统计功能。

3.作业管理:学生可以通过系统提交作业,教师可以查看和评分。

4.考勤管理:记录学生的出勤情况,方便教师管理课堂纪律。

1.2 系统设计与实现1.2.1 数据结构设计为了有效地管理学生信息,我们需要设计合适的数据结构。

在C语言中,可以使用结构体来表示学生的信息,其中包括尊称、学号、通信方式等字段。

为了便于管理多个学生,可以使用链表或数组来组织学生信息。

typedef struct Student {char name[50];int studentId;char contact[50];float grade;struct Student* next;} Student;在上述代码中,我们定义了一个Student结构体,包含了学生的尊称、学号、通信方式、课程成绩以及一个指向下一个学生的指针。

1.2.2 功能实现为了实现学生信息管理系统的各个功能,我们需要编写相应的函数。

下面是几个基本功能的示例代码:1.2.2.1 学生信息录入Student* createStudent(char name[50], int studentId, char contact[50]) { // 创建一个新的学生结构体Student* student = (Student*)malloc(sizeof(Student));// 设置学生的基本信息strcpy(student->name, name);student->studentId = studentId;strcpy(student->contact, contact);student->grade = 0.0;student->next = NULL;return student;}void addStudent(Student** head, Student* newStudent) {if (*head == NULL) {// 如果链表为空,则直接将新学生作为头节点*head = newStudent;} else {// 找到链表的尾节点,并将新学生添加到末尾Student* current = *head;while (current->next != NULL) {current = current->next;}current->next = newStudent;}}void inputStudentInformation(Student** head) {char name[50], contact[50];int studentId;printf("请输入学生尊称:");scanf("%s", name);printf("请输入学生学号:");scanf("%d", &studentId);printf("请输入学生通信方式:");scanf("%s", contact);// 创建新的学生信息Student* newStudent = createStudent(name, studentId, contact);// 将学生信息添加到链表addStudent(head, newStudent);printf("学生信息录入成功!\n");}在上述代码中,我们首先定义了一个createStudent函数,用于创建一个新的学生结构体并初始化其基本信息。

班级档案管理系统c课程设计语言

班级档案管理系统c课程设计语言

班级档案管理系统c课程设计语言一、引言1.1 项目背景随着信息技术的不断发展,各行各业都逐渐向数字化、信息化方向转变。

教育领域也不例外,学校班级档案管理系统的建设已经成为了教育信息化建设的重要组成部分。

班级档案管理系统是指对各个班级的学生档案进行管理和维护,包括学生基本信息、家庭联系方式、考试成绩、奖惩记录等内容。

1.2 项目目标本项目旨在开发一个功能完备的班级档案管理系统,能够满足学校对班级档案管理的需求,同时提高教师和管理员工作效率。

二、需求分析2.1 功能需求分析(1)用户登录:用户通过输入账号和密码登录系统。

(2)学生档案管理:管理员可以添加、删除和修改学生档案信息,并能够查询和打印学生档案。

(3)成绩管理:管理员可以录入和查询学生考试成绩,并能够生成成绩统计报表。

(4)奖惩记录:管理员可以添加、删除和修改学生奖惩记录,并能够查询和打印奖惩记录。

(5)家长联系方式:管理员可以录入和查询学生家长联系方式,并能够打印学生家长通讯录。

(6)系统设置:管理员可以对系统进行设置,包括修改管理员账号和密码、备份和恢复数据等。

2.2 非功能需求分析(1)易用性:系统界面简洁明了,操作简单方便。

(2)可靠性:系统具有良好的稳定性和可靠性,能够保证数据的安全性和完整性。

(3)安全性:系统具有较高的安全性,包括用户权限管理、数据加密等措施。

三、技术选型3.1 开发语言本项目采用C#语言进行开发。

C#是一种面向对象的编程语言,具有良好的扩展性和可维护性,同时也是Windows平台上广泛使用的编程语言之一。

3.2 开发工具本项目采用Visual Studio 2019作为开发工具。

Visual Studio 2019是微软公司推出的一款强大的集成开发环境,支持多种编程语言,并提供了丰富的开发工具和组件库,能够极大地提高开发效率。

四、系统设计4.1 数据库设计本项目采用MySQL数据库进行数据存储。

数据库中包含以下表:(1)学生档案表:存储学生基本信息、家庭联系方式等内容。

c语言课程设计学生档案管理系统

c语言课程设计学生档案管理系统

程序设计基础课程设计实验报告书目录1.设计题目 (3)2.正文 (3)2.1系统简介 (3)2.2选题背景 (4)2.3设计内容 (4)2.4设计思路 (4)2.5算法(条列式或流程图) (4)2.6程序清单与运行结果 (9)2.7总结 (15)1.设计题目学生信息管理系统设计2.正文2.1 系统简介学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail 等。

试设计一学生信息管理系统,使之能提供以下功能:1、系统以菜单方式工作2、学生信息录入功能(学生信息用文件保存)--输入3、学生信息浏览功能--输出4、学生信息查询功能--按学号查询、按姓名查询、5、学生信息的删除与修改(可选项)要求:使用文件方式存储数据。

2.2选题背景经典计算机问题,设计学生信息管理系统,可以进行多项系统信息管理功能。

2.3设计内容设计学生信息管理的各个功能。

系统以菜单方式工作。

学生信息录入功能(学生信息用文件保存)--输入。

学生信息浏览功能--输出。

学生信息查询功能--按学号查询、按姓名查询。

学生信息的删除与修改(可选项)2.4设计思路将程序的各个功能分开独立的执行,问题有大而小,细化。

2.5算法(条列式或流程图)主程序模块:删除信息模块(独立函数):显示浏览信息模块(独立函数)查找学生信息模块(独立函数):2.6程序清单与运行结果#include<stdio.h>#include<stdlib.h>#include<string.h>#include<io.h>struct birth{int year,month,day;};struct student{int number,age,tel[10];char name[10],sex,address[20],E_mail[20];struct birth birthday;struct student *link;};void show( ){printf(" 请输入数字加回车键进行选择:\n");printf(" 1、学生信息录入功能(学生信息用文件保存)--输入\n");printf(" 2、学生信息浏览功能--输出\n");printf(" 3、学生信息查询功能--按学号查询、按姓名查询\n");printf(" 4、学生信息的删除与修改(可选项)\n");printf(" 按其他任意键加回车退出程序\n");}\* 创建文件夹并存入信息模块: *\void credit(int n){FILE *fp;char fpname[20];struct student *head,*next,*end;int i;printf("请输入用于存放文件的文件路劲及文件名:");scanf("%s",fpname);getchar();fp=fopen(fpname,"w+");head=(struct student *)malloc(sizeof(struct student));printf("请输入学生学号姓名性别出生年月日地址电话 e_mail:");scanf("%d %s %c %d %d %d %s %s %s",&head->number,head->name,&head->sex,&(*h ead).birthday.year,&(*head).birthday.month,&(*head).birthday.day,head->address,head->te l,head->E_mail);getchar();fprintf(fp,"%d %s %c %d %d %d %s %s %s",head->number,head->name,head->sex,( *head).birthday.year,(*head).birthday.month,(*head).birthday.day,head->address,head->te l,head->E_mail);end=head;for(i=1;i<n;i++){next=(struct student *)malloc(sizeof(struct student));printf("请输入学生学号姓名性别出生年月日地址电话 e_mail:");scanf("%d %s %c %d %d %d %s %s %s",&next->number,next->name,&next->sex,&(*n ext).birthday.year,&(*next).birthday.month,&(*next).birthday.day,next->address,next->te l,next->E_mail);getchar();fprintf(fp,"%d %s %c %d %d %d %s %s %s",next->number,next->name,next->sex,( *next).birthday.year,(*next).birthday.month,(*next).birthday.day,next->address,next->te l,next->E_mail);end->link=next;end=next;end->link=NULL;}fclose(fp);}\* 浏览信息模块: *\void show2(int n){FILE *fp;int i;char fpname[20];struct student *head;head=(struct student *)malloc(sizeof(struct student));printf("请输入存放信息的文件路径以及文件名:");gets(fpname);fp=fopen(fpname,"r+");for(i=0;i<n;i++){fscanf(fp,"%d %s %c %d %d %d %s %s %s",&head->number,head->name,&head->sex, &(*head).birthday.year,&(*head).birthday.month,&(*head).birthday.day,head->address,head ->tel,head->E_mail);printf("%d %s %d %d %d %d %s %s %s",&head->number,head->name,head->sex,(*he ad).birthday.year,(*head).birthday.month,(*head).birthday.day,head->address,head->tel,h ead->E_mail);}fclose(fp);}\* 按学号查找学生信息模块: *\int search1(int n){int i,checkname;FILE *fp;char fpname[20];struct student *head;head=(struct student *)malloc(sizeof(struct student));printf("请输入存放信息的文件路径以及文件名:");gets(fpname);fp=fopen(fpname,"r+");printf("请输入要查询信息的学生学号:");scanf("%d",&checkname);getchar();for(i=0;i<n;i++){fscanf(fp,"%d %s %c %d %d %d %s %s %s",&head->number,head->name,&head->sex, &(*head).birthday.year,&(*head).birthday.month,&(*head).birthday.day,head->address,head ->tel,head->E_mail);if(checkname==head->number){printf("%d %s %c %d %d %d %s %s %s\n",head->number,head->name,head->sex,(*h ead).birthday.year,(*head).birthday.month,(*head).birthday.day,head->address,head->tel, head->E_mail);fclose(fp);return(1);}}printf("未找到");}\* 按姓名查找学生信息模块: *\void search2(int n){int i;FILE *fp;char fpname[20],checkname[10];struct student *head;head=(struct student *)malloc(sizeof(struct student));printf("请输入存放信息的文件路径以及文件名:");gets(fpname);fp=fopen(fpname,"r+");printf("请输入要查询信息的学生姓名:");scanf("%s",checkname);getchar();for(i=0;i<n;i++){fscanf(fp,"%d %s %c %d %d %d %s %s %s",&head->number,head->name,&head->sex, &(*head).birthday.year,&(*head).birthday.month,&(*head).birthday.day,head->address,head ->tel,head->E_mail);if(strcmp(checkname,head->name)==0){printf("%d %s %c %d %d %d %s %s %s",head->number,head->name,head->sex,(*hea d).birthday.year,(*head).birthday.month,(*head).birthday.day,head->address,head->tel,he ad->E_mail);fclose(fp);return(1);}}printf("未找到\n");}\* 删除或修改文件信息模块: *\int most(n){FILE *fp;char get;char fpname[20];struct student *ans[500];int i;char checkname[10];printf("请输入存放信息的文件路径以及文件名:");gets(fpname);fp=fopen(fpname,"r+");ans[0]=(struct student *)malloc(sizeof(struct student));fscanf(fp,"%d %s %c %d %d %d %s %s %s",&ans[0]->number,ans[0]->name,&ans[0] ->sex,&(*ans[0]).birthday.year,&(*ans[0]).birthday.month,&(*ans[0]).birthday.day,ans[0] ->address,ans[0]->tel,ans[0]->E_mail);for(i=1;i<n;i++){ans[i]=(struct student *)malloc(sizeof(struct student));fscanf(fp,"%d %s %c %d %d %d %s %s %s",&ans[i]->number,ans[i]->name,&ans[i] ->sex,&(*ans[i]).birthday.year,&(*ans[i]).birthday.month,&(*ans[i]).birthday.day,ans[i] ->address,ans[i]->tel,ans[i]->E_mail);ans[i-1]->link=ans[i];}ans[i]->link=NULL;printf("如果想修改信息请输入1加回车键,想删除信息输入2加回车键:");get=getchar();getchar();if(get=='1'){printf("请输入要修改信息的学生姓名:");scanf("%s",checkname);getchar();for(i=0;i<n;i++){if(strcmp(checkname,ans[i]->name)==0){printf("请输入学生新信息学号姓名性别出生年月日地址电话e_mail:");scanf("%d %s %c %d %d %d %s %s %s",&ans[i]->number,ans[i]->name,&ans[i]->se x,&(*ans[i]).birthday.year,&(*ans[i]).birthday.month,&(*ans[i]).birthday.day,ans[i]->ad dress,ans[i]->tel,ans[i]->E_mail);getchar();}}}if(get=='2'){printf("请输入要删除的学生姓名:");scanf("%s",checkname);getchar();for(i=0;i<n;i++){if(strcmp(checkname,ans[i]->name)==0){ans[i-1]->link=ans[i]->link;n--;break;}}}fp=fopen(fpname,"w+");for(i=0;i<n;i++){fprintf(fp,"%d %s %c %d %d %d %s %s %s",ans[i]->number,ans[i]->name,ans[i]->sex,(*ans[i]).birthday.year,(*ans[i]).birthday.month,(*ans[i]).birthday.day,ans[i]->ad dress,ans[i]->tel,ans[i]->E_mail);}fclose(fp);return(n);}\*主函数模块*\void main(){char get,get2;int n;while(1){show();get=getchar();getchar();switch(get){case '1':printf("请输入学生人数:");scanf("%d",&n);getchar();credit(n);break;case '2':show2(n);break;case '3':printf("按学号查找请输入1加回车键,按姓名查询请输入2加回车键:");get2=getchar();getchar();if(get2=='1'){search1(n);}if(get2=='2'){search2(n);}break;case '4':n=most(n);break;}if(get!='1'&&get!='2'&&get!='3'&&get!='4'){break;}}}2.7总结该程序主要使用结构体与结构化程序的设计,调用文件函数,设计函数时保持头脑思路清晰,有条理,保持各功能独立的函数来实现,需要对程序能熟练使用与掌握,我的函数侧重对单链表的使用,同时侧重文件运用时文件流动时文件信息不会流失。

学生档案管理系统c语言

学生档案管理系统c语言

学生档案管理系统c语言学生档案管理系统1 内容与要求【问题描述】设计一个学生档案管理系统,对学生档案进行管理。

每个学生的信息包括:学号、姓名、性别、出生年月、是否党员、手机号码、家庭住址、各门课成绩(每门课包括课程名与成绩)。

系统要求包含如下功能:1。

创建功能:初始输入每个学生的信息(学号、姓名、性别、出生年月、是否党员、手机号码、家庭住址)并保存。

2。

显示功能:显示全部学生的信息(包括各门课的成绩)。

3。

输入某课程成绩功能:按学号、成绩输入选修某门课的所有学生的成绩(说明:并不是所有学生都选同一门课,每个学生选的课可不一样)。

4。

统计平均成绩功能:计算每个学生的平均成绩。

5。

查找功能:按姓名或学号查找学生记录,并显示。

6。

排序功能:按学号或平均成绩进行排序,并显示。

7。

插入功能:插入一条学生记录。

8。

删除功能:删除指定学生的记录。

要求提供一个界面来调用各个功能,界面应尽可能清晰美观。

【具体要求】1。

系统应以菜单方式工作,举例如下:程序运行后显示如下主界面:**************************************** 1--------------创建 2--------------显示 3--------------输入成绩 4--------------统计成绩 5--------------查找 6--------------排序 7--------------插入 8--------------删除 9--------------退出**************************************** 通过选择1-9来确定要做哪一个操作。

若选5,则出现如下界面:**************************************** 1----------按学号查询 2----------按姓名查询****************************************2。

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

程序设计基础课程设计实验报告书目录1.设计题目学生信息管理系统设计2.正文2.1 系统简介学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。

试设计一学生信息管理系统,使之能提供以下功能:1、系统以菜单方式工作2、学生信息录入功能(学生信息用文件保存)--输入3、学生信息浏览功能--输出4、学生信息查询功能--按学号查询、按姓名查询、5、学生信息的删除与修改(可选项)要求:使用文件方式存储数据。

2.2选题背景经典计算机问题,设计学生信息管理系统,可以进行多项系统信息管理功能。

2.3设计内容设计学生信息管理的各个功能。

系统以菜单方式工作。

学生信息录入功能(学生信息用文件保存)--输入。

学生信息浏览功能--输出。

学生信息查询功能--按学号查询、按姓名查询。

学生信息的删除与修改(可选项)2.4设计思路将程序的各个功能分开独立的执行,问题有大而小,细化。

2.5算法(条列式或流程图)主程序模块:2.6#include<stdio.h> #include<stdlib.h>#include<string.h>#include<io.h>struct birth{int year,month,day;};struct student{int number,age,tel[10];char name[10],sex,address[20],E_mail[20];struct birth birthday;struct student *link;};void show( ){printf(" 请输入数字加回车键进行选择:\n");printf(" 1、学生信息录入功能(学生信息用文件保存)--输入\n");printf(" 2、学生信息浏览功能--输出\n");printf(" 3、学生信息查询功能--按学号查询、按姓名查询\n");printf(" 4、学生信息的删除与修改(可选项)\n");printf(" 按其他任意键加回车退出程序\n");}\* 创建文件夹并存入信息模块: *\void credit(int n){FILE *fp;char fpname[20];struct student *head,*next,*end;int i;printf("请输入用于存放文件的文件路劲及文件名:");scanf("%s",fpname);getchar();fp=fopen(fpname,"w+");head=(struct student *)malloc(sizeof(struct student));printf("请输入学生学号姓名性别出生年月日地址电话e_mail:");scanf("%d %s %c %d %d %d %s %s %s",&head->number,hea d->name,&head->sex,&(*head).birthday.year,&(*head).birthday.mon th,&(*head).birthday.day,head->address,head->tel,head->E_mail);getchar();fprintf(fp,"%d %s %c %d %d %d %s %s %s",head->number ,head->name,head->sex,(*head).birthday.year,(*head).birthday.month,(*head).birthday.day,head->address,head->tel,head->E_mail);end=head;for(i=1;i<n;i++){next=(struct student *)malloc(sizeof(struct student));printf("请输入学生学号姓名性别出生年月日地址电话e_mail:");scanf("%d %s %c %d %d %d %s %s %s",&next->number,nex t->name,&next->sex,&(*next).birthday.year,&(*next).birthday.mon th,&(*next).birthday.day,next->address,next->tel,next->E_mail);getchar();fprintf(fp,"%d %s %c %d %d %d %s %s %s",next->number ,next->name,next->sex,(*next).birthday.year,(*next).birthday.mo nth,(*next).birthday.day,next->address,next->tel,next->E_mail);end->link=next;end=next;end->link=NULL;}fclose(fp);}\* 浏览信息模块: *\void show2(int n){FILE *fp;int i;char fpname[20];struct student *head;head=(struct student *)malloc(sizeof(struct student));printf("请输入存放信息的文件路径以及文件名:");gets(fpname);fp=fopen(fpname,"r+");for(i=0;i<n;i++){fscanf(fp,"%d %s %c %d %d %d %s %s %s",&head->number ,head->name,&head->sex,&(*head).birthday.year,&(*head).birthday .month,&(*head).birthday.day,head->address,head->tel,head->E_ma il);printf("%d %s %d %d %d %d %s %s %s",&head->number,he ad->name,head->sex,(*head).birthday.year,(*head).birthday.month ,(*head).birthday.day,head->address,head->tel,head->E_mail);}fclose(fp);}\* 按学号查找学生信息模块: *\int search1(int n){int i,checkname;FILE *fp;char fpname[20];struct student *head;head=(struct student *)malloc(sizeof(struct student));printf("请输入存放信息的文件路径以及文件名:");gets(fpname);fp=fopen(fpname,"r+");printf("请输入要查询信息的学生学号:");scanf("%d",&checkname);getchar();for(i=0;i<n;i++){fscanf(fp,"%d %s %c %d %d %d %s %s %s",&head->number ,head->name,&head->sex,&(*head).birthday.year,&(*head).birthday.month,&(*head).birthday.day,head->address,head->tel,head->E_ma il);if(checkname==head->number){printf("%d %s %c %d %d %d %s %s %s\n",head->number,h ead->name,head->sex,(*head).birthday.year,(*head).birthday.mont h,(*head).birthday.day,head->address,head->tel,head->E_mail);fclose(fp);return(1);}}printf("未找到");}\* 按姓名查找学生信息模块: *\void search2(int n){int i;FILE *fp;char fpname[20],checkname[10];struct student *head;head=(struct student *)malloc(sizeof(struct student));printf("请输入存放信息的文件路径以及文件名:");gets(fpname);fp=fopen(fpname,"r+");printf("请输入要查询信息的学生姓名:");scanf("%s",checkname);getchar();for(i=0;i<n;i++){fscanf(fp,"%d %s %c %d %d %d %s %s %s",&head->number ,head->name,&head->sex,&(*head).birthday.year,&(*head).birthday .month,&(*head).birthday.day,head->address,head->tel,head->E_ma il);if(strcmp(checkname,head->name)==0){printf("%d %s %c %d %d %d %s %s %s",head->number,hea d->name,head->sex,(*head).birthday.year,(*head).birthday.month, (*head).birthday.day,head->address,head->tel,head->E_mail);fclose(fp);return(1);}}printf("未找到\n");}\* 删除或修改文件信息模块: *\int most(n){FILE *fp;char get;char fpname[20];struct student *ans[500];int i;char checkname[10];printf("请输入存放信息的文件路径以及文件名:");gets(fpname);fp=fopen(fpname,"r+");ans[0]=(struct student *)malloc(sizeof(struct student));fscanf(fp,"%d %s %c %d %d %d %s %s %s",&ans[0]->numb er,ans[0]->name,&ans[0]->sex,&(*ans[0]).birthday.year,&(*ans[0] ).birthday.month,&(*ans[0]).birthday.day,ans[0]->address,ans[0] ->tel,ans[0]->E_mail);for(i=1;i<n;i++){ans[i]=(struct student *)malloc(sizeof(struct student));fscanf(fp,"%d %s %c %d %d %d %s %s %s",&ans[i]->numb er,ans[i]->name,&ans[i]->sex,&(*ans[i]).birthday.year,&(*ans[i] ).birthday.month,&(*ans[i]).birthday.day,ans[i]->address,ans[i] ->tel,ans[i]->E_mail);ans[i-1]->link=ans[i];}ans[i]->link=NULL;printf("如果想修改信息请输入1加回车键,想删除信息输入2加回车键:");get=getchar();getchar();if(get=='1'){printf("请输入要修改信息的学生姓名:");scanf("%s",checkname);getchar();for(i=0;i<n;i++){if(strcmp(checkname,ans[i]->name)==0){printf("请输入学生新信息学号姓名性别出生年月日地址电话 e_mail:");scanf("%d %s %c %d %d %d %s %s %s",&ans[i]->number,a ns[i]->name,&ans[i]->sex,&(*ans[i]).birthday.year,&(*ans[i]).bi rthday.month,&(*ans[i]).birthday.day,ans[i]->address,ans[i]->te l,ans[i]->E_mail);getchar();}}}if(get=='2'){printf("请输入要删除的学生姓名:");scanf("%s",checkname);getchar();for(i=0;i<n;i++){if(strcmp(checkname,ans[i]->name)==0){ans[i-1]->link=ans[i]->link;n--;break;}}}fp=fopen(fpname,"w+");for(i=0;i<n;i++){fprintf(fp,"%d %s %c %d %d %d %s %s %s",ans[i]->numb er,ans[i]->name,ans[i]->sex,(*ans[i]).birthday.year,(*ans[i]).b irthday.month,(*ans[i]).birthday.day,ans[i]->address,ans[i]->te l,ans[i]->E_mail);}fclose(fp);return(n);}\*主函数模块*\void main(){char get,get2;int n;while(1){show();get=getchar();getchar();switch(get){case '1':printf("请输入学生人数:");scanf("%d",&n);getchar();credit(n);break;case '2':show2(n);break;case '3':printf("按学号查找请输入1加回车键,按姓名查询请输入2加回车键:");get2=getchar();getchar();if(get2=='1'){search1(n);}if(get2=='2'){search2(n);}break;case '4':n=most(n);break;}if(get!='1'&&get!='2'&&get!='3'&&get!='4'){break;}}}2.7总结该程序主要使用结构体与结构化程序的设计,调用文件函数,设计函数时保持头脑思路清晰,有条理,保持各功能独立的函数来实现,需要对程序能熟练使用与掌握,我的函数侧重对单链表的使用,同时侧重文件运用时文件流动时文件信息不会流失。

相关文档
最新文档