C语言学生证管理系统课程设计报告
c语言学生管理系统课程设计报告 (2)
C语言学生管理系统课程设计报告1. 引言学生管理系统是一项常见的计算机应用程序,广泛应用于学校、培训机构等教育机构中。
本文将介绍一个基于C语言开发的学生管理系统,该系统具有以下功能:学生信息的录入、查询、修改和删除,以及成绩信息的录入、查询、统计和排序。
2. 系统设计2.1 功能模块学生管理系统主要包括以下功能模块:•学生信息录入模块:用于录入学生的基本信息,包括学号、姓名、性别、年龄等。
•学生信息查询模块:提供根据学号或姓名查询学生信息的功能。
•学生信息修改模块:允许修改学生的各项信息。
•学生信息删除模块:提供学生信息的删除功能。
•成绩信息录入模块:用于录入学生的成绩信息,包括科目和成绩。
•成绩信息查询模块:提供根据学号或科目查询学生成绩的功能。
•成绩统计模块:对学生的成绩进行统计,包括总分和平均分。
•成绩排序模块:按照总分对学生进行排序。
2.2 数据结构学生信息和成绩信息可以使用结构体存储。
定义如下:typedef struct {char id[20]; // 学生学号char name[20]; // 学生姓名char gender[5]; // 学生性别int age; // 学生年龄} Student;typedef struct {char id[20]; // 学生学号char subject[20]; // 科目float score; // 成绩} Score;通过结构体数组来存储多个学生的信息和成绩,如下所示:Student students[MAX_STUDENT_NUM];Score scores[MAX_SCORE_NUM];2.3 系统流程学生管理系统的流程图如下所示:graph LRA[学生信息录入] --> B[学生信息查询]A --> C[学生信息修改]A --> D[学生信息删除]A --> E[成绩信息录入]A --> F[成绩信息查询]A --> G[成绩统计]A --> H[成绩排序]3. 系统实现在C语言中,使用函数来实现不同的功能模块。
c语言学生管理系统课程设计报告
C语言学生管理系统课程设计报告一、引言学生管理系统是一种用来管理学生信息的软件系统。
C语言学生管理系统课程设计旨在帮助学生掌握C语言的基本语法和编程能力,同时熟悉软件开发过程中的分析、设计和实现等环节。
本报告将详细介绍C语言学生管理系统的设计和实现过程。
二、需求分析为了明确系统的功能需求,在进行系统设计之前,我们需要进行需求分析。
对于一个学生管理系统,常见的功能包括学生信息录入、查找学生信息、修改学生信息和删除学生信息等。
2.1 学生信息录入学生信息录入是系统的基本功能之一。
管理员可以通过系统按照一定的格式输入学生的基本信息,包括学号、姓名、性别、年龄、班级等。
2.2 查找学生信息系统应提供根据学号或姓名快速查找学生信息的功能。
用户可以输入学号或姓名进行查询,并显示该学生的详细信息。
2.3 修改学生信息管理员可以通过系统修改学生的基本信息。
用户可以选择指定要修改的学生的学号,并对学生的姓名、班级、年龄等信息进行修改。
2.4 删除学生信息管理员可以通过系统删除指定学生的信息。
用户可以输入学号或姓名进行查询,并选择删除该学生的信息。
三、系统设计在需求分析的基础上,进行系统设计是为了明确系统的整体架构和各个模块之间的关系。
本章将对C语言学生管理系统的设计进行详细介绍。
3.1 系统架构C语言学生管理系统采用单层架构,将所有功能模块整合在一个程序中。
系统采用面向过程的设计思路,通过函数的调用和参数传递实现不同模块之间的交互。
3.2 数据结构设计系统的核心数据结构是学生信息结构体。
学生信息结构体包括学号、姓名、性别、年龄、班级等字段。
为了方便管理学生的信息,可以使用链表来存储学生信息。
链表的每个节点代表一个学生,通过指针连接起来形成一个链表。
3.3 模块设计系统的功能可以划分为若干个模块,包括学生信息录入模块、查找学生信息模块、修改学生信息模块和删除学生信息模块。
3.3.1 学生信息录入模块学生信息录入模块通过从键盘读取用户输入的信息,并将输入的信息保存到链表中。
C语言程序设计课设报告_学生证管理系统
学生证管理程序报告学号:姓名:完成日期:2012年5 月一.题目内容的提出与描述学生证的有效管理是学校的重要工作,这项工作的工作重点是需要学校建立一个简明高效,便于操作和处理信息的学生证管理系统。
这样,学校就可以从全局上掌控、修改、统计学生信息,为学生管理工作提供极大的便利,本程序的目的旨在于管理大量学生的学生证信息,大大提高学校和教师的工作效率。
本程序的具体功能包括:1)通过键盘输入某位学生的学生证信息。
2) 给定学号,显示某位学生的学生证信息。
3) 给定某个班级的班号,显示该班所有学生的学生证信息。
4) 给定某位学生的学号,修改该学生的学生证信息。
5) 给定某位学生的学号,删除该学生的学生证信息。
6) 提供一些统计各类信息的功能。
二.软件的需求分析描述本软件要实现对学生证信息的有序程序化管理,操作人员可以输入学生的学生证信息并存储,修改学生证信息,删除学生证信息,并通过不同方式查找到学生,从而简化学生证的管理工作,方便进行相关操作。
本软件要达到的性能,存储至少100位同学的学生证信息,并可以查找指定学生的学生证信息,修改,删除指定学生的学生证信息,可输出已存储的全部学生的相关信息。
三. 开发工具的介绍—C语言的优点1)简洁紧凑、灵活方便。
2)运算符丰富。
3)数据类型丰富。
4)C是结构式语言。
5)语法限制不太严格,程序设计自由度大。
6)允许直接访问物理地址,对硬件进行操作。
7)生成目标代码质量高,程序执行效率高。
8)适用范围大,可移植性好。
四.软件的总体设计和详细设计1.软件的总体设计部分画出结构图。
2.软件的详细设计部分画出流程图,并写出个函数之间参数的定义和传递方式、输入数据类型、格式和内容限制。
①Main函数函数从主函数开始运行,首先进行选择要操作的函数,引导用户执行操作。
而后通过全局变量在进行具体操作②Setup函数用户选择执行Setup()函数,首先引导用户确定录入人数,之后通过循环语句判断,一次录入每个学生的学生卡信息,包括姓名,性别,学院,以及学号。
c学生管理系统课程设计报告
c学生管理系统课程设计报告一、课程目标知识目标:1. 理解学生管理系统的基本概念,掌握其功能模块和工作原理。
2. 学习数据库的基本操作,如创建、查询、更新和删除数据。
3. 掌握使用编程语言(如Python)结合数据库进行学生信息管理的方法。
技能目标:1. 能够独立设计并实现一个简单的学生管理系统,包括学生信息的增删改查功能。
2. 学会使用数据库存储和管理数据,提高数据处理能力。
3. 培养问题分析、解决方案设计和编程实现的能力。
情感态度价值观目标:1. 培养学生对信息技术的兴趣和爱好,提高学习积极性。
2. 培养学生的团队协作精神,学会在项目中分工合作、共同解决问题。
3. 增强学生的责任感和使命感,认识到信息技术在学生管理系统中的重要作用。
课程性质:本课程属于信息技术学科,结合数据库和编程知识,注重实践操作,培养学生的动手能力和实际应用能力。
学生特点:学生处于高年级阶段,具备一定的信息技术基础和编程能力,对实际应用项目有较高的兴趣。
教学要求:结合学生实际情况,注重理论与实践相结合,充分调动学生的主观能动性,提高学生的实际操作能力和解决问题的能力。
将课程目标分解为具体的学习成果,以便进行后续的教学设计和评估。
二、教学内容1. 学生管理系统概述- 系统需求分析- 功能模块设计2. 数据库基础知识- 数据库概念及种类- 关系型数据库(如MySQL)的基本操作3. 编程语言选择与使用- Python编程基础- Python操作数据库(如使用SQLAlchemy)4. 学生管理系统实现- 系统架构设计- 学生信息模块实现(增删改查功能)- 用户权限管理5. 系统测试与优化- 功能测试- 性能测试- 系统优化策略6. 项目实践与展示- 团队合作完成学生管理系统- 系统演示与评价教学内容安排与进度:第一周:学生管理系统概述,数据库基础知识第二周:Python编程基础,Python操作数据库第三周:学生管理系统实现(学生信息模块)第四周:用户权限管理,系统测试与优化第五周:项目实践与展示教学内容与教材关联性:本教学内容与教材中关于数据库操作、Python编程以及实际应用项目开发等内容紧密相关,确保学生在学习过程中掌握学科知识,提高实际操作能力。
学生管理系统c语言课程设计报告
学生管理系统c语言课程设计报告1. 引言学生管理系统是现代教学管理中不可或缺的工具。
本报告将详细介绍一个基于C语言的学生管理系统的设计与实现。
学生管理系统用于记录学生信息、成绩管理、考勤管理、课程管理等功能,能够提高教学管理的效率和准确性。
2. 系统设计2.1 需求分析学生管理系统的主要功能包括: 1. 学生信息管理:添加、删除、修改学生的基本信息,如学号、姓名、年龄、性别等。
2. 成绩管理:录入学生的成绩,计算平均成绩。
3. 考勤管理:记录学生的考勤情况,统计缺勤次数。
4. 课程管理:添加、删除、修改课程信息,如课程编号、课程名称、教师姓名等。
2.2 系统架构学生管理系统采用模块化设计,分为四个模块: 1. 学生信息模块:实现学生信息的添加、删除、修改功能。
2. 成绩管理模块:实现成绩录入和平均成绩计算功能。
3. 考勤管理模块:实现考勤记录和缺勤次数统计功能。
4. 课程管理模块:实现课程信息的添加、删除、修改功能。
2.3 系统流程图st=>start: 开始op1=>operation: 添加学生信息op2=>operation: 删除学生信息op3=>operation: 修改学生信息op4=>operation: 成绩录入op5=>operation: 平均成绩计算op6=>operation: 考勤记录op7=>operation: 缺勤次数统计op8=>operation: 添加课程信息op9=>operation: 删除课程信息op10=>operation: 修改课程信息e=>end: 结束st->op1->op2->op3->op4->op5->op6->op7->op8->op9->op10->e 3. 功能实现3.1 学生信息管理3.1.1 添加学生信息通过输入学生的基本信息,将学生信息保存到系统中。
C语言程序课设 学生证管理系统
C语言程序设计报告书学生证管理程序学号:09021106姓名:SYF2010年 5月一、题目内容的提出与描述.大学学生人数众多,学生信息量巨大。
手工管理十分艰难,且极易出错和丢失信息,并会占用大量的纸张和空间资源。
本款软件就是基于对学生证管理的需求,为学校管理方量身定做,操作容易,快速便捷,并且节约能源。
它不仅符合当今信息化社会的需求,还顺应了当代低碳环保的理念此软件可实现学生信息的录入、输出、查询、修改、统计和删除的功能,查询和统计的功能是本款软件的特色,比较方便。
另外,因为本人笔记本为windows7系统,调试时无法在中文条件下运行,所以本款软件有中英文两个版本。
(英文版为student-english)二、软件的需求分析描述1。
软件应具有的功能:(1).输入学生信息。
(2)。
输出全部学生信息。
(3)。
查询学生信息.输入单个学号以查询一个学生;输入专业以查询一专业学生;输入学院以查询一院学生。
(4).修改学生信息。
输入学生学号以修改信息。
(5)。
统计学生信息。
按性别统计男、女生人数及比例;按户籍统计本地生和外地生人数及比例;(6)。
删除学生信息。
输入学生学号以删除信息.补充:教师有特定验证码(验证码为1),输入正确则可实行以上操作。
2.题目要求:(1) 按照分析、设计、编码、调试和测试的软件开发过程完成这个应用程序;(2)学生信息应该包含:学号、姓名、年龄、专业、所属学院、户籍所在地。
(3) 为各项操作功能设计一个菜单。
应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。
三、开发工具的介绍本软件采用色开发工具为C语言。
C语言Combined Language(组合语言)的中英混合简称。
是一种计算机程序设计语言。
它既具有高级语言的特点,又具有汇编语言的特点。
它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
因此,它的应用范围广泛,且具有强大的功能.许多著名的系统软件,如DBASE Ⅳ都是由C 语言编写的.用C 语言加上一些汇编语言子程序,就更能显示 C 语言的优势了,像PC—DOS 、WORDSTAR等就是用这种方法编写的。
c语言学生管理系统课程设计报告
c语言学生管理系统课程设计报告我见过太多关于学生管理系统的课程设计报告,这仅仅只是其中之一、希望对你有所帮助。
一、题目学生管理系统的设计与实现二、设计目的和要求1.根据实际需求,实现一个学生管理系统,包括对学生的基本信息的增删改查功能以及成绩查询功能;2.使用C语言编写代码,实现学生管理系统的核心功能;3.界面友好,操作简便,用户可以通过简单的指令实现对学生信息的管理和查询;4.提供用户权限管理,确保只有具备管理员权限的用户才能进行管理操作;三、系统基本功能1.学生信息的增删改查:学生的基本信息包括学号、姓名、性别、年龄等。
管理员可以对这些信息进行增加、删除、修改和查询的操作,方便学生信息的管理;2.成绩查询功能:管理员可以根据学号查询学生的成绩,系统将返回相应的成绩信息;3.用户权限管理:系统将设置管理员账号和密码,只有拥有管理员权限的用户才能进行学生信息的管理操作。
四、系统设计思路1.确定数据结构:创建一个学生结构体,包含学号、姓名、性别、年龄和成绩等信息;2.确定主要函数:设计主菜单函数,用户可以通过选择功能选项来进行不同的操作,如增加学生信息、删除学生信息、修改学生信息、查询学生信息和查询成绩等功能;3.设计增删改查函数:通过逐步引导用户输入信息或选择操作,实现相应功能;4.设计用户权限函数:管理员通过输入正确的用户名和密码,才能登录进入管理界面,否则无法进行管理操作;5.进行函数间的调试和优化,确保代码的完整性和稳定性;6.设计简易界面:通过打印相应的信息和提示,实现用户友好的界面设计。
五、实际实现效果和展示1.用户界面友好,简单易懂,用户能够通过选择相应的功能来实现对学生信息的管理和查询。
2.数据操作准确,能够准确地增加、删除、修改和查询学生信息以及查询学生成绩。
3.用户权限管理严密,只允许管理员进行管理操作,保证了学生信息的安全性。
六、总结和展望通过本次学生管理系统的设计与实现,我深刻感受到了系统设计的重要性和挑战性。
C语言课程设计报告-学生学籍管理系统
信息学院课程设计I报告课程名称C语言程序设计_____ 题目名称学生学籍管理系统学生学院一信息学院______专业班级_ 计科12 _________ 学号___________________________ 学生姓名________________________指导教师______________________2013 年 12 月 26 日目录一、设计目的与要求 .... 错误! 未定义书签题目与设计要求 ........ 错误! 未定义书签本程序设计的知识点 ..... 错误! 未定义书签二、功能设计 .......... 错误! 未定义书签总体设计 .............. 错误! 未定义书签详细设计 .............. 错误! 未定义书签测试结果及分析 ........ 错误! 未定义书签五、总结 .............. 错误! 未定义书签六、参考文献错误! 未定义书签........................设计目的与要求题目与设计要求题目:学生学籍管理系统目的: 1、了解和熟悉 Visual C++ 软件编程开发环境2、熟练掌握结构化程序设计的步骤和模块化设计方法3、熟练掌握C语言数据类型,熟记字符型数据和整形数据的定义和使用4、熟练掌握用 while语句、do…while语句和for语句实现循环结构程序设计的方法5、掌握一维数组、二维数组的定义、赋值和输入输出的方法6、掌握与数组有关的算法(特别是排序算法,熟练掌握冒泡排序法)7、熟悉函数的定义、声明方法及全局变量和局部变量的概念与用法,掌握函数的调用方法8、掌握结构体类型变量的定义和使用及结构体类型数组的概念和应用设计要求:学生学籍信息管理系统设计删除1需求分析学生基本信息、学生成绩基本信息要存入文件当中,因而 要提供文件的输入输出操作;查询功能要求提供查找和显示操 作;删除功能要求实现删除操作;排序功能要求实现排序操作; 另外还应该提供键盘式选择菜单以实现功能选择。
c语言学生管理系统课程设计报告(一)
c语言学生管理系统课程设计报告(一)C语言学生管理系统课程设计报告1. 项目介绍•课程名称:C语言学生管理系统课程设计•项目类型:学生管理系统•设计时间:2021年1月•设计人员:XXX2. 项目背景•学生管理系统是一种常见的信息管理系统,用于管理学校、学院或班级的学生信息。
•C语言是一种常用的编程语言,具有良好的跨平台性和高效性。
3. 功能需求设计一个C语言学生管理系统,能够实现以下功能:•学生信息录入:输入学生的基本信息,包括学号、姓名、性别、年龄等。
•学生信息查询:根据学号或姓名查询学生的基本信息。
•学生成绩录入:输入学生的各科成绩,包括语文、数学、英语等。
•学生成绩统计:计算学生的总成绩、平均成绩,并根据成绩进行排名。
•学生信息修改:对已有的学生信息进行修改,包括基本信息和成绩信息。
•学生信息删除:根据学号或姓名删除学生的信息。
4. 技术实现在C语言学生管理系统的设计中,使用到以下技术:•结构体:用于定义学生的基本信息,如学号、姓名、性别、年龄等。
•数组:用于存储多个学生的信息。
•文件读写:将学生信息保存到文件中,实现信息的长久保存和读取。
5. 项目结构•主函数:包括用户菜单的选择和对应功能的调用。
•学生信息模块:实现学生信息的录入、查询、修改和删除等功能。
•成绩管理模块:实现学生成绩的录入、统计等功能。
6. 开发流程•需求分析:明确项目需求,确定功能设计。
•系统设计:设计程序的整体结构,划分模块和函数。
•编码实现:使用C语言编写各个模块的代码,并进行调试测试。
•系统测试:对系统进行整体测试,修复错误和漏洞。
•系统部署:将系统部署到目标环境中,进行性能优化和问题排查。
•用户培训:对系统进行使用说明和培训,保证用户能够熟练使用学生管理系统。
7. 总结与展望通过C语言学生管理系统的设计,我学到了很多关于C语言的基础知识和编程技巧。
在项目开发过程中,我充分利用了C语言的特点,编写出高效、稳定的代码。
c语言学生管理系统课程设计报告总结 (2)
C语言学生管理系统课程设计报告总结1. 引言本报告总结了我们小组在C语言课程设计中开发的学生管理系统。
该系统旨在简化学校教务管理过程,提高教务工作效率,实现学生信息的快速查询、管理和统计。
本文将介绍系统的设计目标、主要功能模块以及我们在开发过程中遇到的挑战和解决方案。
2. 设计目标我们设计学生管理系统的主要目标是提供以下功能:•学生信息管理:包括学生基本信息的录入、查找、修改和删除操作。
•课程管理:包括课程信息的录入、查找、修改和删除操作。
•成绩管理:包括成绩录入、查询和统计功能。
•班级管理:包括班级信息的录入、查找、修改和删除操作。
3. 系统设计与实现3.1 数据结构设计为了存储学生信息、课程信息和成绩信息,我们设计了以下数据结构:•学生信息结构体:包含学生姓名、学号、性别、出生日期等字段。
•课程信息结构体:包含课程名称、课程号、学分等字段。
•成绩信息结构体:包含学生姓名、课程名称、分数等字段。
3.2 用户界面设计我们采用命令行界面来实现用户和系统的交互。
通过命令行菜单,用户可以选择不同的功能模块,并输入相应的命令进行操作。
我们通过C语言的输入输出函数来实现用户界面的显示和交互。
3.3 功能模块实现学生管理系统主要包含以下功能模块:•学生信息管理模块:实现学生信息的录入、查找、修改和删除操作。
•课程管理模块:实现课程信息的录入、查找、修改和删除操作。
•成绩管理模块:实现学生成绩的录入、查询和统计功能。
•班级管理模块:实现班级信息的录入、查找、修改和删除操作。
4. 开发过程中的挑战和解决方案在开发学生管理系统的过程中,我们遇到了以下挑战:1.数据存储和管理:如何有效地存储和管理大量的学生信息、课程信息和成绩信息。
我们采用了链表的数据结构来组织数据,通过指针进行关联和操作,以提高数据的访问效率。
2.用户界面设计:如何设计一个简洁、直观的用户界面,方便用户进行操作。
我们借鉴了其他类似系统的设计思路,采用了命令行菜单和命令交互的方式来实现用户界面,简化了用户操作的复杂性。
C语言课程设计报告 --学生管理系统
C语言课程设计报告 --学生管理系统一、实验目的:通过本次实验,学习C语言的语法和数据类型,设计一个简单的学生管理系统,结合文件I/O所学,可以将学生信息保存至文件中,再读取时自动填充至程序中。
同时,体验软件开发的流程,从需求分析到具体实现。
二、需求分析:1、学生信息包括:学号、姓名、性别、年龄、成绩。
2、学生信息需要添加、删除、修改、查找和显示。
3、程序启动时自动从文件中读取数据,退出时自动保存数据。
三、实验过程:1、确定数据结构和变量类型通过分析需求,学生信息包含多个属性,可以使用结构体来保存每个学生的信息。
同时,为了便于程序运行,需要定义一个链表来保存所有学生信息。
/* 学生信息结构体 */typedef struct _Student {char id[12]; // 学号char name[20]; // 姓名char gender; // 性别int age; // 年龄double score; // 成绩} Student;/* 学生信息链表节点 */typedef struct _StudentNode {Student data; // 学生信息struct _StudentNode *next; // 下一节点指针} StudentNode;/* 学生信息链表头节点 */StudentNode *head = NULL;2、设计主菜单功能考虑学生管理系统的主要功能,可以设计以下主菜单:---------------------------1. 添加学生2. 删除学生3. 修改学生信息4. 查找学生5. 显示所有学生6. 退出---------------------------可以使用一个while循环来循环处理,直到用户选择退出。
3、实现主菜单功能添加学生:先从用户输入中获取学生信息,然后创建一个新的学生信息节点,并将其添加到链表的末尾。
1. 定义变量/* 输入缓存区大小 */#define BUFFER_SIZE 2562. 实现函数/* 添加学生到链表末尾 */void add_student() {Student student; // 待添加的学生信息printf("请输入学号:");scanf("%s", student.id);printf("请输入姓名:");scanf("%s", );printf("请输入性别(M/F):");scanf(" %c", &student.gender);printf("请输入年龄:");scanf("%d", &student.age);printf("请输入成绩:");scanf("%lf", &student.score);StudentNode *node =(StudentNode*)malloc(sizeof(StudentNode));node->data = student;node->next = NULL;if (head == NULL) {head = node;} else {StudentNode *p = head;while (p->next != NULL) {p = p->next;}p->next = node;}printf("添加学生成功!\n");}删除学生:先从用户输入中获取学生学号,然后遍历链表,找到该学号对应的学生信息节点,并删除。
学生管理系统c语言课程设计报告
学生管理系统c语言课程设计报告学生管理系统是一个面向教育机构的关键系统,它使教育者能够组织,管理和监督他们的学生。
学生管理系统使用计算机软件来管理学生的信息,包括学生的出勤,学生成绩,历史记录等。
学生管理系统还允许教师与学生交互,以提供更好的学习体验。
本课程设计的主要目的是通过使用 C 语言编写一个学生管理系统,为学生、教师和管理员提供一个方便快捷的平台。
该系统可以用于管理学生出勤、成绩等信息,学生可以在该系统中查看他们的考试成绩以及其他相关信息。
前期工作在项目开始之前,我们需要明确项目的目标和范围,以及系统将包括哪些功能。
在本项目的开发过程中,我们需要使用一些开发工具和技术,包括Dev C++编译器、数据结构等。
主要功能学生管理系统具有以下基本功能:1. 添加学生信息:通过该功能可以添加学生信息,包括学生姓名、学号、性别、班级、联系方式等。
2. 修改学生信息:学生如果需要更改个人信息,可以使用该功能更新他/她的信息。
3. 删除学生信息:如果学生离校或毕业,可以使用该功能将其信息从数据库中删除。
4. 查看学生信息:教师和管理员可以使用该功能检索学生信息,包括学生的出勤率、成绩,以及历史记录和其他相关信息。
5. 考试管理:教师可以使用该功能创建和管理考试,并将学生成绩添加到数据库中。
学生可以在系统中查看他们的考试成绩。
6. 系统管理:管理员可以使用这个功能来管理整个学生管理系统,包括添加、删除、修改系统用户,添加、删除、修改管理员,更改系统设置等。
实现方案我们使用 C 语言作为主要编程语言,使用 MySQL 数据库来管理学生信息。
为了优化系统的响应速度和稳定性,我们引入了一些关键算法和数据结构,例如哈希表和二叉树。
1. 用户信息的存储我们使用 MySQL 数据库来存储学生、教师和管理员信息。
在数据库中,我们创建一个用户表,每个用户都有一个唯一的 ID 和一些基本属性,例如姓名、性别、联系方式等等。
c语言学生管理系统设计报告 (2)
C语言学生管理系统设计报告1. 简介本文档旨在介绍一个基于C语言的学生管理系统的设计和实现。
学生管理系统是一个用来管理学生信息的工具,包括添加、查询、修改和删除学生信息的功能。
2. 功能设计2.1 添加学生通过添加学生功能,管理员可以输入学生的基本信息,包括学号、姓名、年龄、性别和成绩等。
系统将保存学生信息,并分配唯一的学号。
2.2 查询学生查询学生功能可以根据学号或姓名等关键字查询学生信息,并显示在屏幕上供管理员查看。
管理员可以根据需要选择显示所有学生信息或者根据特定条件进行筛选。
2.3 修改学生管理员可以通过修改学生功能,选择需要修改的学生信息,并进行修改操作。
修改的内容可以包括姓名、年龄、性别和成绩等。
2.4 删除学生通过删除学生功能,管理员可以选择需要删除的学生信息,并进行删除操作。
被删除的学生信息将从系统中彻底删除,无法恢复。
3. 系统架构学生管理系统采用基于C语言的控制台界面实现。
下面是系统的基本架构:```c #include <stdio.h> #include <stdlib.h>struct student { int id; char name[50]; int age; char gender[10]; float score; };void add_student(); void search_student(); void modify_student(); voiddelete_student();int main() { int choice; do { printf(。
c语言学生管理系统课程设计报告
c语言学生管理系统课程设计报告C语言学生管理系统课程设计报告一、引言C语言学生管理系统是一款用于学校或教育机构管理学生信息和课程安排的软件系统。
本报告将详细介绍该系统的设计与实现过程,并对系统的功能、模块、算法等进行全面的阐述和分析。
二、系统需求分析1. 功能需求该系统应具备以下主要功能:(1)学生信息管理:包括学生基本信息的添加、修改、删除和查询等操作;(2)课程信息管理:包括课程的添加、修改、删除和查询等操作;(3)成绩管理:包括成绩的录入、查询和统计等操作;(4)学生选课管理:包括学生选课、退课和查询选课情况等操作;(5)教师信息管理:包括教师基本信息的添加、修改、删除和查询等操作;(6)用户权限管理:包括用户登录、权限分配和密码修改等操作;(7)系统设置:包括数据库备份、恢复和系统参数设置等操作。
2. 性能需求该系统应具备良好的性能,能够快速响应用户的操作请求,同时能够支持多用户同时访问。
三、系统设计1. 系统架构该系统采用客户端-服务器架构,客户端通过网络连接到服务器,服务器负责处理客户端发送的请求并返回相应结果。
2. 系统模块(1)学生信息模块:用于管理学生的基本信息,包括学号、姓名、性别、年龄、班级等。
(2)课程信息模块:用于管理课程的基本信息,包括课程编号、课程名称、授课教师、学分等。
(3)成绩管理模块:用于录入学生的成绩,并进行成绩查询和统计。
(4)选课管理模块:用于学生的选课和退课操作,同时提供选课情况的查询功能。
(5)教师信息模块:用于管理教师的基本信息,包括教师编号、姓名、性别、职称等。
(6)用户权限管理模块:用于管理系统用户的登录、权限分配和密码修改等操作。
(7)系统设置模块:用于进行数据库备份、恢复和系统参数设置等操作。
3. 数据库设计该系统采用关系型数据库存储数据,设计以下几个表:(1)学生表:包括学号、姓名、性别、年龄、班级等字段;(2)课程表:包括课程编号、课程名称、授课教师、学分等字段;(3)成绩表:包括学号、课程编号、成绩等字段;(4)选课表:包括学号、课程编号等字段;(5)教师表:包括教师编号、姓名、性别、职称等字段;(6)用户表:包括用户名、密码、权限等字段。
c语言课程设计报告--学生证系统分解
《高级语言程序设计》课程设计题目:学生证管理程序班级:学生学号:学生姓名:指导老师:提交时间:华南农业大学信息(软件)学院学生证管理程序1系统分析1.1问题描述:设计一个学生证的管理程序。
实现录入、修改、删除学生的学生证信息,并能根据输入的学生的学号,显示该学生的学生证信息或根据输入的班级的名称,显示该班所有学生的学生证信息,以及实现一些统计各类信息的功能。
1.2系统功能分析:学生证管理程序是用来进行学生证管理的应用软件,不属于学生可使用的系统,个人认为进入该系统不需要进行相应的身份登录。
所以进入系统者应当可以使用所有功能;使用者可行使基本功能有:录入某位学生的学生证信息;根据给定学生的学号,修改、删除或显示该学生的学生证信息;根据输入的班级的编号,显示该班所有学生的学生证信息和一些统计功能。
另外,为了方便管理员操作,减少管理员重复工作的可能,另外加入额外功能:批量录入学生的学生证信息和班级删除。
除此以外,亦另外添加操作台指令,方便管理员进行功能切换。
1.3 开发平台及工具介绍:根据所学知识及所要用到的相关操作,采用C语言进行开发。
开发平台:CodeBlocks+ MinGW + wxWidgets2系统设计2.1 系统总体结构设计在对学生证管理程序进行系统功能分析之后,我对整个系统进行总体设计。
首先,确定大致的开发和设计的思路,并在此基础上,用图表将系统总体的设计架构勾画出来,制定模块结构图,通过模块功能分析对每一个模块进行总体设计。
值得一提,总体的设计架构中,shell和kernel的设计应注意彼此的联系,这一方面设计的好坏对后面的设计有很大的影响。
然后,根据总体设计的需求,确定要首先那些函数。
学生证管理程序可视作一个简易身份证管理系统,开发设计的方向是方便管理员的操作,节省管理员的操作时间。
对于这个问题,可采用批量操作和指令操作的思路。
可以将所有的学生证信息存储在一个文件(txt格式)中,在对大量学生证数据的处理用到链表和文件处理等基本技术,并用两个函数实现文件读取和写入。
C语言学生管理系统_综合实验报告
C语言学生管理系统_综合实验报告一、引言学生管理系统是一种方便高校进行学生信息管理的工具,具备添加、删除、查询、修改等基本功能,可以提高学校教务部门的工作效率,减少人力资源的浪费。
本文将介绍一个基于C语言的学生管理系统的设计和实现。
二、系统设计1.需求分析学生管理系统主要包括学生信息、教师信息和课程信息的录入、查询、修改和删除等功能,同时要求可以按照学号、姓名等字段进行快速检索。
系统还需要能够自动生成学生的成绩单和课程表,方便学生进行查看。
2.系统架构学生管理系统采用客户端-服务器模式,客户端和服务器之间通过网络进行数据传输。
客户端通过命令行界面与用户交互,服务器负责处理客户端发送的请求并返回相应的结果。
3.系统功能模块(1)学生信息管理模块:包括学生信息的添加、查询、修改和删除等功能。
(2)教师信息管理模块:包括教师信息的添加、查询、修改和删除等功能。
(3)课程信息管理模块:包括课程信息的添加、查询、修改和删除等功能。
(4)成绩管理模块:包括成绩的录入和查询功能。
(5)课程表模块:根据学生选课情况生成学生的课程表。
三、系统实现1.开发环境系统开发环境选择C语言,编译器使用GCC,开发工具使用Dev-C++。
2.数据存储系统的数据存储采用文本文件的形式,每个学生、教师和课程信息分别存储在一个文本文件中,使用逗号分隔各个字段。
3.界面设计系统界面使用命令行界面,通过菜单来提供各个功能的选项,用户可以根据提示输入相应的指令进行操作。
4.功能实现(1)学生信息管理功能:用户输入学生信息后,系统将学生信息保存到指定的文本文件中,并返回操作结果。
(2)教师信息管理功能:用户输入教师信息后,系统将教师信息保存到指定的文本文件中,并返回操作结果。
(3)课程信息管理功能:用户输入课程信息后,系统将课程信息保存到指定的文本文件中,并返回操作结果。
(4)成绩管理功能:用户输入学生学号和对应的课程信息后,系统将成绩保存到指定的文本文件中,并返回操作结果。
C语言课设之学生证管理系统
学生证的管理程序——C语言课程设计报告一、题目要求该程序应该具有下列功能:1、录入某位学生的学生证信息。
学生证应该包照自含的信息请参己的学生证;2、给定学号,显示某位学生的学生信息;3、给定某个班级的班号,显示该班所有学生的学生证信息4、给定某位学生的学号,修改该学生的学生信息;5、给定某位学生的学号,删除该学生的学生信息;6、提供一些统计各类信息的功能.[输入要求]应用程序后,在屏幕上显示一个菜单。
用户可以根据要求选定相应的操作项目。
进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。
[输出要求]1、应用程序运行后,要在屏幕上显示一个菜单;2、要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等.[提示]设计一个结构体类型和一维数组类型,用来保存学生证内容;二、需求分析根据题目要求,由于学生信息是一个有不同类型的变量组成,因此,应提供结构体操作,在程序中需要浏览学生信息,应提供显示、查找、修改、删除、统计等操作.另外还应该提供键盘式的选择菜单实现功能选择。
三、总体设计学生证的管理程序主要包含学生信息的录入、修改、删除、查询、统计等模块。
为了各模块的独立性,将显示模块分别镶嵌在录入、修改、删除、查询、统计等模块中。
四、详细分析1、主函数[分析]主函数的设计简洁,只提供加录入、修改、删除、查询、统计和显示等函数的调用和加载功能。
其中各功能模块用菜单方式选择。
并将main()函数体内的界面选择部分部分语句单独抽出来做一个独立的函数,目的在于系统执行完每部分功能模块后能更方便返回到系统界面。
menu()函数从主函数中独立出来后,表面的主函数只是起一个程序开始的作用,其主要功能被独立出来的被调用的menu()函数所取代。
menu()函数主要完成菜单的输出和被选择的项目的输入和相应执行函数的调用。
并将已经拥有的信息从指定文件中读取到结构体st中,以便执行其他的功能性函数.成功后需要关闭文件.[流程图][程序]N//***************************menu*************************/menu(){int n,w,i,j;STU *st;FILE *fp;fp=fopen(”student1。
学生证管理系统(C语言课程设计)
C语言课程设计报告学院:地球科学学院专业:资源环境与城乡规划管理题目:学生证管理系统班号:014072-XX姓名:李仙伟学号:XXXXXXXX指导教师: XXXXXXXX2010年11月26日报告目录一、课程设计目的 (3)二、实习内容及要求 (3)三、需求分析 (3)四、总体分析 (3)五、详细设计 (4)5.0 头文件及结构体 (4)5.1 主函数 (5)5。
2 菜单模块 (5)5.3 添加模块 (6)5.4 修改模块 (10)5。
5 浏览模块 (14)5.6 查询模块 (15)5。
6.1 按学号查询 (15)5.6.2 按名字查询 (16)5。
6。
3 按班级查询 (17)5。
7 统计模块 (18)5.7。
1 男生信息 (19)5。
7.2 女生信息 (21)5。
7.3 全体学生信息 (23)5。
8 删除模块 (23)六、上机操作 (26)6.1 系统说明 (26)6.2 系统测试 (26)七、总结 (32)八、源代码 (32)一、课程设计目的通过实践,学会编制结构清晰、风格良好、数据结构适当的C语言程序,加深对C语言基础知识的理解和掌握,进一步巩固C语言编程实践能力,锻炼思维逻辑和解决综合性实际问题的能力。
二、实习内容及要求1、用C语言编写一个学生证管理系统,该系统具有以下功能:(1)录入某位学生的学生证信息;(2)给定学号,显示某位学生的学生证信息;(3)给定某个班级的班号,显示该班所有学生的学生证信息;(4)给定某位学生的学号,修改该学生的学生证信息;(5)给定某位学生的学号,删除该学生的学生证信息;(6)提供一些统计各类信息的功能;(7)提供浏览所有学生的学生证信息的功能.2、输入要求应用程序运行后,在屏幕上显示一个菜单;用户可以根据要求,选定相应的操作项目;进入某个操作后,根据应用程序的提示,从键盘输入相应的信息。
3、输出要求(1)应用程序运行后,要在屏幕上显示一个菜单;(2)要求用户输入数据时,给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
学生证管理系统课程设计报告
C语言课程设计实验报告课程设计题目:学生证管理系统姓名:学号:班级:专业:指导教师:2014年 1 月 2 日学生证管理系统课程设计报告1.需求分析。
根据学生证管理的需要,建一个“学生证管理系统”,以方便对学生证信息的各项管理操作。
要求完成:1.能对学生证信息进行录入和修改2。
能按照学号和班级号显示学生证信息和更改、删除信息。
2.总体设计。
根据以上分析,本系统主要包括:从键盘输入学生证信息、从指定的文件中读入学生证信息、按照学号和班号查询学生证信息、删除和修改学生证信息。
(1)主函数main():定义学生结构体数组,输出操作对话框,调用录入、查询、删除、输出等函数对学生证信息进行处理。
(2)录入函数enter():从键盘输入学生证信息.(3)录入函数load():从文件输入学生证信息。
(4)查询函数search():按学号查找记录信息。
(5)查询函数display():按班级查找记录信息。
(6)删除函数del():删除指定学号的学生记录。
(7)修改函数modify():按照指定学号修改记录。
程序功能机构图如下:3.详细设计。
本功能一共有16个函数,其中一个主函数,15个功能模块,每个功能模块都是由于主函数或其他功能模块调用,分别说明如下:图1.2 主程序流程图(2)键盘输入函数。
键盘输入函数主要完成学生信息从屏幕输入数据,并将数据保存到文本文件中,以备后用。
流程图:Y(3)文件输入函数。
文件输入函数主要完成学生信息从文件中读入数据。
Y(4)学号查询函数。
学号查询函数是完成由用户输入需要查询的学号,在现有学生信息中查询是否有此学生信息存在,查到输出学生全部信息,没查到则输出“此学生部存在”信息。
流程图如下:图1。
5 学号查询流程图(5)班级查询函数。
班级查询函数是完成由用户输入需要查询的班级,在现有学生信息中查询此班级的全部学生信息,查到输出全部信息,没差到则输出“此班级学生不存在”信息。
(6)学号删除函数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
红河学院工学院课程设计报告专业:年级:姓名:成绩:批改时间:红河学院工学院编制说明1、本报告供学生课程设计时使用。
2、学生应认真阅读课程设计要求。
3、课程设计报告里面的内容要手工填写,以备存档使用(源程序可打印)。
4、课程设计的总评成绩根据课程的性质,按一定比例计入该门课程成绩。
5、课程设计报告中的各模块填写的内容是评分的主要依据,如果不够书写,可以自行添加附页。
6、按规定的时间提交报告给教师评定成绩,由任课教师交到工学院存档。
课程设计目录课程名称:高级语言程序设计设计任务二.设计流程图根据需求分析,可以把这个系统的设计分为添加、修改、查询、浏览、统计、删除六大模块,其中查询模块可以分为三个子模块,统计模块可以分为三个子模块,子模块下面还有子函数;系统功能模块图如下所示:1.主函数模块2.添加模块3.修改模块4.浏览模块开始(fpr=fopen("StuInfo.txt","r"))==NULL读取文件输入学号根据提示输入新信息(fpw=fopen("StuInfo.txt","w"))==NULL保存数据主菜单是否存在该学号的记录否是否是否是5.查询模块6.统计模块7.删出模块三.程序代码#include<stdio.h>#include<stdlib.h>#include<string.h>#define N 100struct Class //班级{char Cname[20]; //班名char Cno[20]; //班号};struct Student //学生{char Sname[20]; //姓名char Sex[10]; //性别char Sno[20]; //学号int Age; //年龄struct Class CInfo; //嵌套结构体,表示班级信息}StuInfo[N];void menu(); //主菜单void add(); //添加模块void modify(); //修改模块void Delete(); //删除模块void browse(); //浏览模块void quiry(); //查询模块void stastic(); //统计模块void bySname(); //按姓名查询,子模块void bySno(); //按学号查询,子模块void byCno(); //按班号查询,子模块void StuMsg(); //返回全体学生统计信息,子模块void Female(); //女生统计信息,子模块void Male(); //男生统计信息,子模块int FemaleNum(); //返回女生人数,子函数float FemaleMG(); //返回女生平均年龄,子函数int MaleNum(); //返回男生人数,子函数float MaleMG(); //返回男生平均年龄,子函数int StuNum(); //返回全体学生人数,子函数float MG(); //返回全体学生的平均年龄,子函数void main(){menu();getchar();}void menu() //菜单{int chose;int right;do{system("cls"); //清屏printf("\n\t\t\t\t学生证管理系统\n");printf("········································");printf(" 菜单:\t1-添加\t2-修改\t3-浏览全部\t4-查询\t5-统计\t6-删除\t7-退出\n");printf("········································");printf("请输入数字选择:");scanf("%d",&chose);if(chose<1||chose>7){printf("输入错误,请重新输入!\n");right=1;getchar();}else right=0;}while(right==1);switch(chose){case 1:add(); break;case 2:modify(); break;case 3:browse(); break;case 4:quiry(); break;case 5:stastic(); break;case 6:Delete(); break;case 7:exit(0);}}void add() //添加学生信息,一次添加一条记录{int num;int i;int age;char sno[20];char sex[20];char cno[20];int right;FILE*fp;if((fp=fopen("StuInfo.txt","r+"))==NULL) //以读写方式打开{if((fp=fopen("StuInfo.txt","w"))==NULL) //文件不存在则创建文件{printf("\n文件不存在且创建失败,返回!\n");menu();}printf("\n请按照提示输入学生信息:\n\n");printf("姓名:");scanf("%s",&StuInfo[0].Sname);do{printf("\n性别(男或女):");scanf("%s",sex);if((strcmp(sex,"男")!=0)&&(strcmp(sex,"女")!=0)) {printf("输入错误,请输入男或女!\n");right=1;getchar();}else right=0;}while(right==1);strcpy(StuInfo[0].Sex,sex);do{printf("\n学号(11位):");scanf("%s",sno);if(strlen(sno)!=11){printf("输入错误,学号长度应为11位数!\n");right=1;getchar();}else right=0;}while(right==1);strcpy(StuInfo[0].Sno,sno);do{printf("\n年龄:");scanf("%d",&age);if(age<=0||age>100){printf("年龄应在0-100之间,请重新输入年龄!\n");right=1;getchar();}else right=0;}while(right==1);StuInfo[0].Age=age;do{printf("\n班号(6位):");scanf("%s",cno);if(strlen(cno)!=6){printf("输入错误,班号长度应为6位数!\n");right=1;getchar();else right=0;}while(right==1);strcpy(StuInfo[0]o,cno);printf("\n班名:");scanf("%s",&StuInfo[0]ame);fprintf(fp,"\n%s\t%s\t%s\t%d\t%s\t%s",StuInfo[0].Sname,StuInfo[0].Sex,StuInfo[0].Sno,StuInfo[ 0].Age,StuInfo[0]o,StuInfo[0]ame);fclose(fp);printf("\n保存成功!\n");printf("\n请按enter键返回主菜单!\n");getchar();getchar();menu();}for(i=0;!feof(fp);i++) //读取文件{fscanf(fp,"%s%s%s%d%s%s",&StuInfo[i].Sname,&StuInfo[i].Sex,&StuInfo[i].Sno,&StuInfo[i].A ge,&StuInfo[i]o,&StuInfo[i]ame);}num=i;if(num==N){printf("\n保存记录数超出结构体数组数的大小,请先修改N的值\n");menu();}printf("\n请按照提示输入学生信息:\n\n");printf("姓名:");scanf("%s",&StuInfo[num].Sname);do{printf("\n性别(男或女):");scanf("%s",sex);if((strcmp(sex,"男")!=0)&&(strcmp(sex,"女")!=0)){printf("输入错误,请输入男或女!\n");right=1;getchar();}else right=0;}while(right==1);strcpy(StuInfo[num].Sex,sex);{printf("\n学号(11位):");scanf("%s",sno);if(strlen(sno)!=11){printf("输入错误,学号长度应为11位数!\n");right=1;getchar();}else right=0;for(i=0;i<num;i++){if(strcmp(sno,StuInfo[i].Sno)==0){printf("该学号已经存在,请重新输入!\n");right=1;getchar();}}}while(right==1);strcpy(StuInfo[num].Sno,sno);do{printf("\n年龄:");scanf("%d",&age);if(age<=0||age>100){printf("年龄应在0-100之间,请重新输入年龄!\n");right=1;getchar();}else right=0;}while(right==1);StuInfo[num].Age=age;do{printf("\n班号(6位):");scanf("%s",cno);if(strlen(cno)!=6){printf("输入错误,班号长度应为6位数!\n");right=1;getchar();else right=0;}while(right==1);strcpy(StuInfo[num]o,cno);printf("\n班名:");scanf("%s",&StuInfo[num]ame);//把该记录写到文件末尾fprintf(fp,"\n%s\t%s\t%s\t%d\t%s\t%s",StuInfo[num].Sname,StuInfo[num].Sex,StuInfo[num].Sno ,StuInfo[num].Age,StuInfo[num]o,StuInfo[num]ame);fclose(fp);printf("\n保存成功!\n");printf("\n请按enter键返回主菜单!\n");getchar();getchar();menu();}void modify() //修改学生信息{int num;int i;int right;int age;char sex[20];char cno[20];char sno[20];int found=-1;char StuNO[20];FILE*fpr,*fpw;if((fpr=fopen("StuInfo.txt","r"))==NULL){printf("文件打不开!\n");menu();}for(i=0;!feof(fpr);i++) //读取文件{fscanf(fpr,"%s%s%s%d%s%s",&StuInfo[i].Sname,&StuInfo[i].Sex,&StuInfo[i].Sno,&StuInfo[i]. Age,&StuInfo[i]o,&StuInfo[i]ame);}num=i;fclose(fpr);printf("\n请输入学号选择要修改的记录:");scanf("%s",StuNO);for(i=0;i<num;i++){if(strcmp(StuNO,StuInfo[i].Sno)==0){found=i;printf("\n你要修改的学生信息为:\n\n");printf("姓名性别学号年龄班号班名\n");printf("%s\t%s\t%s\t%d\t%s\t%s\n",StuInfo[i].Sname,StuInfo[i].Sex,StuInfo[i].Sno,StuInfo[i].Age ,StuInfo[i]o,StuInfo[i]ame);printf("\n请按照提示输入学生的新信息:\n");printf("姓名:");scanf("%s",&StuInfo[found].Sname);do{printf("\n性别(男或女):");scanf("%s",sex);if((strcmp(sex,"男")!=0)&&(strcmp(sex,"女")!=0)){printf("输入错误,请输入男或女!\n");right=1;getchar();}else right=0;}while(right==1);strcpy(StuInfo[found].Sex,sex);do{printf("\n学号(11位):");scanf("%s",sno);if(strlen(sno)!=11){printf("输入错误,学号长度应为11位数!\n");right=1;getchar();}else right=0;for(i=0;i<num;i++){if((i!=found)&&(strcmp(sno,StuInfo[i].Sno)==0)){printf("该学号已经存在,请重新输入!\n");right=1;getchar();}}}while(right==1);strcpy(StuInfo[found].Sno,sno);do{printf("\n年龄:");scanf("%d",&age);if(age<=0||age>100){printf("年龄应在0-100之间,请重新输入年龄!\n");right=1;getchar();}else right=0;}while(right==1);StuInfo[found].Age=age;do{printf("\n班号(6位):");scanf("%s",cno);if(strlen(cno)!=6){printf("输入错误,班号长度应为6位数!\n");right=1;getchar();}else right=0;}while(right==1);strcpy(StuInfo[found]o,cno);printf("\n班名:");scanf("%s",&StuInfo[found]ame);if((fpw=fopen("StuInfo.txt","w"))==NULL){printf("文件打不开,保存失败!\n");menu();}for(i=0;i<num;i++) //保存文件{fprintf(fpw,"\n%s\t%s\t%s\t%d\t%s\t%s",StuInfo[i].Sname,StuInfo[i].Sex,StuInfo[i].Sno,StuInfo[i ].Age,StuInfo[i]o,StuInfo[i]ame);}fclose(fpw);printf("\n修改成功!\n");printf("\n请按enter键返回主菜单!\n");getchar();getchar();menu();}}if(found<0){printf("\n没有找到该学号的记录:\n");printf("\n请按enter键返回主菜单!\n");getchar();getchar();menu();}}void browse() //显示所有学生信息{int num;int i;FILE*fp;if((fp=fopen("StuInfo.txt","r"))==NULL){printf("文件打不开!\n");menu();}for(i=0;!feof(fp);i++) //读取文件{fscanf(fp,"%s%s%s%d%s%s",&StuInfo[i].Sname,&StuInfo[i].Sex,&StuInfo[i].Sno,&StuInfo[i].A ge,&StuInfo[i]o,&StuInfo[i]ame);}fclose(fp);num=i;printf("\n已添加%d个学生信息\n\n",num);printf("姓名性别学号年龄班号班名\n");for(i=0;i<num;i++) //输出{printf("%s %s %s %d %s %s\n",StuInfo[i].Sname,StuInfo[i].Sex,StuInfo[i].Sno,St uInfo[i].Age,StuInfo[i]o,StuInfo[i]ame);}printf("\n请按enter键返回主菜单!\n");getchar();getchar();menu();}void quiry(){int chose;int right;do{system("cls");printf("\n\t1-按学号查询\t2-按姓名查询\t3-某班学生信息\t4-返回\n");printf("\n请输入数字选择:");scanf("%d",&chose);if(chose<1||chose>4){right=1;getchar();}else right=0;}while(right==1);switch(chose){case 1:bySno();break;case 2:bySname();break;case 3:byCno();break;case 4:menu();}}void bySno(){int found=-1;int num;int i;char no[20];FILE*fp;if((fp=fopen("StuInfo.txt","r"))==NULL){printf("文件打不开!\n");menu();}for(i=0;!feof(fp);i++) //读取文件{fscanf(fp,"%s%s%s%d%s%s",&StuInfo[i].Sname,&StuInfo[i].Sex,&StuInfo[i].Sno,&StuInfo[i].A ge,&StuInfo[i]o,&StuInfo[i]ame);}num=i;fclose(fp);printf("\n请输入学生学号:");scanf("%s",no);for(i=0;i<num;i++){if(strcmp(no,StuInfo[i].Sno)==0){found=i;printf("\n该学生的信息为:\n\n");printf("姓名性别学号年龄班号班名\n");printf("%s\t%s\t%s\t%d\t%s\t%s\n",StuInfo[found].Sname,StuInfo[found].Sex,StuInfo[found].Sn o,StuInfo[found].Age,StuInfo[found]o,StuInfo[found]ame);}}if(found<0)printf("\n没有找到该班号的记录!\n");printf("\n请按enter键返回上级菜单!\n");getchar();getchar();quiry();}void bySname(){int found=-1;int num;int i;char name[20];FILE*fp;if((fp=fopen("StuInfo.txt","r"))==NULL){printf("文件打不开!\n");menu();}for(i=0;!feof(fp);i++) //读取文件{fscanf(fp,"%s%s%s%d%s%s",&StuInfo[i].Sname,&StuInfo[i].Sex,&StuInfo[i].Sno,&StuInfo[i].Age,&StuInfo[i]o,&StuInfo[i]ame);}num=i;fclose(fp);printf("\n请输入学生姓名:");scanf("%s",name);printf("\n叫该姓名的学生信息为:\n\n");printf("姓名性别学号年龄班号班名\n");for(i=0;i<num;i++){if(strcmp(name,StuInfo[i].Sname)==0){found=i;printf("%s\t%s\t%s\t%d\t%s\t%s\n",StuInfo[found].Sname,StuInfo[found].Sex,StuInfo[found].Sn o,StuInfo[found].Age,StuInfo[found]o,StuInfo[found]ame);}}if(found<0)printf("\n没有找到该班号的记录!\n");printf("\n请按enter键返回上级菜单!\n");getchar();getchar();quiry();}void byCno(){int found=-1;int num;int i;char ClaNO[20];FILE*fp;if((fp=fopen("StuInfo.txt","r"))==NULL){printf("文件打不开!\n");menu();}for(i=0;!feof(fp);i++) //读取文件{fscanf(fp,"%s%s%s%d%s%s",&StuInfo[i].Sname,&StuInfo[i].Sex,&StuInfo[i].Sno,&StuInfo[i].A ge,&StuInfo[i]o,&StuInfo[i]ame);}num=i;fclose(fp);printf("\n请输入班号:");scanf("%s",ClaNO);printf("\n该班级的学生信息为:\n\n");printf("姓名性别学号年龄班号班名\n");for(i=0;i<num;i++){if(strcmp(ClaNO,StuInfo[i]o)==0){found=i;printf("%s\t%s\t%s\t%d\t%s\t%s\n",StuInfo[found].Sname,StuInfo[found].Sex,StuInfo[found].Sn o,StuInfo[found].Age,StuInfo[found]o,StuInfo[found]ame);}}if(found<0)printf("\n没有找到该班号的记录!\n");printf("\n请按enter键返回上级菜单!\n");getchar();getchar();quiry();}void stastic(){int chose;int right;do{system("cls");printf("\n\t1-全体男生\t2-全体女生\t3-全体学生\t4-返回\n");printf("\n请输入数字选择:");scanf("%d",&chose);if(chose<1||chose>4){right=1;getchar();}else right=0;}while(right==1);switch(chose){case 1:Male();printf("\n请按enter键返回上级菜单!\n");getchar();getchar();stastic();break;case 2:Female();printf("\n请按enter键返回上级菜单!\n");getchar();getchar();stastic();break;case 3:StuMsg();printf("\n请按enter键返回上级菜单!\n");getchar();getchar();stastic();break;case 4:menu();}}void Male() //男生基本统计信息{int num;float mg;num=MaleNum();mg=MaleMG();printf("\n男生总人数为:%d\n平均年龄为:%f\n",num,mg); }int MaleNum() //男生人数{int num;int count=0;int i;FILE*fp;if((fp=fopen("StuInfo.txt","r"))==NULL){printf("文件打不开!\n");menu();}for(i=0;!feof(fp);i++) //读取文件{fscanf(fp,"%s%s%s%d%s%s",&StuInfo[i].Sname,&StuInfo[i].Sex,&StuInfo[i].Sno,&StuInfo[i].A ge,&StuInfo[i]o,&StuInfo[i]ame);}fclose(fp);num=i;for(i=0;i<num;i++){if(strcmp("男",StuInfo[i].Sex)==0){count++;}}return count;}float MaleMG() //男生平均年龄{int num;int count=0;int found;float mAge=0;int i;FILE*fp;if((fp=fopen("StuInfo.txt","r"))==NULL){printf("文件打不开!\n");menu();}for(i=0;!feof(fp);i++) //读取文件{fscanf(fp,"%s%s%s%d%s%s",&StuInfo[i].Sname,&StuInfo[i].Sex,&StuInfo[i].Sno,&StuInfo[i].A ge,&StuInfo[i]o,&StuInfo[i]ame);}fclose(fp);num=i;for(i=0;i<num;i++){if(strcmp("男",StuInfo[i].Sex)==0){found=i;count++;mAge+=StuInfo[i].Age;}}if(count>0){mAge/=count;}return mAge;}int FemaleNum() //女生人数{int num;int count=0;int i;FILE*fp;if((fp=fopen("StuInfo.txt","r"))==NULL){printf("文件打不开!\n");menu();}for(i=0;!feof(fp);i++) //读取文件{fscanf(fp,"%s%s%s%d%s%s",&StuInfo[i].Sname,&StuInfo[i].Sex,&StuInfo[i].Sno,&StuInfo[i].A ge,&StuInfo[i]o,&StuInfo[i]ame);}fclose(fp);num=i;for(i=0;i<num;i++){if(strcmp("女",StuInfo[i].Sex)==0){count++;}}return count;}void Female() //女生基本统计信息{int num;float mg;num=FemaleNum();mg=FemaleMG();printf("\n女生总人数为:%d\n平均年龄为:%f\n",num,mg);}float FemaleMG() //女生平均年龄{int num;int count=0;int found;float mAge=0;int i;FILE*fp;if((fp=fopen("StuInfo.txt","r"))==NULL){printf("文件打不开!\n");menu();}for(i=0;!feof(fp);i++) //读取文件{fscanf(fp,"%s%s%s%d%s%s",&StuInfo[i].Sname,&StuInfo[i].Sex,&StuInfo[i].Sno,&StuInfo[i].A ge,&StuInfo[i]o,&StuInfo[i]ame);}fclose(fp);num=i;for(i=0;i<num;i++){if(strcmp("女",StuInfo[i].Sex)==0){found=i;count++;mAge+=StuInfo[i].Age;}}if(count>0){mAge/=count;}return mAge;}void StuMsg() //全体学生基本统计信息{int num;float mg;num=StuNum();mg=MG();printf("\n学生总人数为:%d\n学生平均年龄为:%f\n",num,mg);Male();Female();}int StuNum() //全体学生人数{int num;num=MaleNum()+FemaleNum();return num;}float MG() //全体学生平均年龄{float mAge;mAge=(MaleNum()*MaleMG()+FemaleNum()*FemaleMG())/(MaleNum()+FemaleNum());return mAge;}void Delete(){int num;int i;int found=-1;char StuNO[20];FILE*fpr,*fpw;if((fpr=fopen("StuInfo.txt","r"))==NULL){printf("文件打不开!\n");menu();}for(i=0;!feof(fpr);i++) //读取文件{fscanf(fpr,"%s%s%s%d%s%s",&StuInfo[i].Sname,&StuInfo[i].Sex,&StuInfo[i].Sno,&StuInfo[i]. Age,&StuInfo[i]o,&StuInfo[i]ame);}num=i;fclose(fpr);printf("\n请输入学号选择你要删除的记录:");scanf("%s",StuNO);for(i=0;i<num;i++){if(strcmp(StuNO,StuInfo[i].Sno)==0){found=i;printf("\n你删除的学生信息为:\n\n");printf("姓名性别学号年龄班号班名\n");printf("%s\t%s\t%s\t%d\t%s\t%s\n",StuInfo[found].Sname,StuInfo[found].Sex,StuInfo[found].Sn o,StuInfo[found].Age,StuInfo[found]o,StuInfo[found]ame);if(found<num-1){for(found;found<num-1;found++){strcpy(StuInfo[found].Sname,StuInfo[found+1].Sname);strcpy(StuInfo[found].Sex,StuInfo[found+1].Sex);strcpy(StuInfo[found].Sno,StuInfo[found+1].Sno);StuInfo[found].Age=StuInfo[found+1].Age;strcpy(StuInfo[found]o,StuInfo[found+1]o);strcpy(StuInfo[found]ame,StuInfo[found+1]ame);}}if((fpw=fopen("StuInfo.txt","w"))==NULL){printf("文件打不开!\n");menu();}for(i=0;i<num-1;i++) //保存文件{fprintf(fpw,"\n%s\t%s\t%s\t%d\t%s\t%s",StuInfo[i].Sname,StuInfo[i].Sex,StuInfo[i].Sno,StuInfo[i ].Age,StuInfo[i]o,StuInfo[i]ame);}fclose(fpw);printf("\n修改成功!\n");printf("\n请按enter键返回主菜单!\n");getchar();getchar();menu();}}if(found<0){printf("\n没有找到该学号的记录:\n");printf("\n请按enter键返回主菜单!\n");getchar();getchar();menu();}}四.运行结果主界面五、课程设计过程问题讨论(此模块内容请手工填写)课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,C语言设计已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。