C语言班级信息管理系统
C语言课程设计--学生成绩管理系统
*题目七:学生成绩管理系统设计学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)等。
主要功能:(1)能按学期、按班级完成对学生成绩的录入、修改(2)能按班级统计学生的成绩,求学生的总分及平均分(3)能查询学生成绩,不及格科目及学生名单(4)能按班级输出学生的成绩单要求:使用二进制文件方式存储数据,系统以菜单方式工作源代码:#include<stdio.h>#include<ctype.h>#include<stdlib.h>#include<string.h>struct Student{int cls;char nam[10];char num[10];int chinese;int english;int computer;int math;}stud1[100],stud2[100];{char a;while(a>'7'||a<'0'){system("cls");printf(" 欢迎使用学生成绩管理系统\n");printf(" 制作人:章建\n");printf("********************** 学生成绩管理系统************************\n");printf(" 1.输入学生成绩\n");printf(" 2.输出学生成绩\n");printf(" 3.查找并显示学生成绩\n");printf(" 4.按姓名查找,修改学生资料\n");printf(" 5.显示所有学生名单\n");printf(" 6.查找并删除学生信息\n");printf(" 7.从文件读取数据\n");printf(" 0.储存学生资料并退出系统\n");printf("********************************************************************* *\n");printf("请选择(0-7)\n");a=getchar();}return(a-'0');}/******************************************************************************int Input(Student stud[],int n) //输入数据(第一学期)。
C语言课程设计---班级成绩管理系统
课程设计报告课程名称C语言程序设计课题名称班级成绩管理系统专业班级学号姓名指导教师年月日湖南工程学院课程设计任务书课程名称C语言程序设计课题班级成绩管理系统专业班级学生姓名学号指导老师审批任务书下达日期年月日任务完成日期年月日目录一、引言 (1)二、总体设计 (2)三、详细设计 (4)四、问题分析及总结 (13)五、参考文献 (15)六、附件 (15)一、设计内容与设计要求1. 设计内容:班级成绩管理系统设计涉及的知识点:①掌握并熟练运用C语言的基本数据类型与各种表达式,程序的流程控制语句;②掌握数组的基本概念。
熟练掌握一维数组、二维数组的应用、掌握字符数组与字符串的关系以及字符串的简单处理。
③掌握函数的定义,函数的返回值,函数的调用,函数的形式参数和实际参数之间的关系;掌握变量的作用域与生存期,了解函数的作用域。
④掌握结构体的概念,结构体类型的定义,结构体变量的定义和初始化,结构体成员的表示,结构体变量的赋值含义,结构体与指针、函数的关系。
⑤掌握文件、文件类型指针的基本概念,熟练掌握文件的打开与关闭以及文件的建立、读写等有关操作。
2.设计要求:1)用C语言实现系统;利用结构体数组实现班级成绩的数据结构设计;系统的各个功能模块要求用函数的形式实现;应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观;各项显示数据均要求以表格的形式输出;在各功能子模块中应设计相应的二级菜单。
2) 建立一个班级学生成绩数据库,文件名为bjcjk.txt,并从该文件中读取数据;3) 班级成绩管理系统应能提供以下功能:(1)主菜单界面设计。
通过提示用户输入一个数字选项,调用相应的功能函数。
(2)学生成绩显示:完成班级全部学生成绩的显示,显示时按表格的形式,且应有表头;(3)学生成绩追加:完成新增一个(或多个)学生的成绩记录,要求在追加过程中有相应的提示信息,完成追加后能重新计算学生平均成绩并显示;(4)学生成绩修改:要求能按学号和按姓名两种定位方式,且可以按用户要求修改记录中除学号和姓名以外的指定内容,并重新计算学生的平均成绩;(5)学生成绩信息的查询;要示系统能按学号、按姓名查询以及能查总分在某一指定范围内的学生信息,且能显示符合条件的所的记录,若所需查询的信息不存在时应有相应的提示信息。
C语言学籍管理系统(内含源代码)
学籍管理系统一、系统简介设计一个基于结构体数组的学生学籍管理系统,能实现对学生学籍信息进行录入,修改,删除,查询和输出等基本操作二、需求分析学籍管理系统应该实现以下功能:1、能录入学生的基本信息,包括学号,姓名,专业,年级,性别和出生日期信息,保存到结构体数组中。
2、能根据输入的学号查询学生,进行信息的修改。
3、能根据输入的学号从结构体数组中删除学生的记录。
4、实现查询功能,能根据输入的学号或年级在屏幕上显示相应的学生信息。
5、能在屏幕上以列表的方式输出所有学生的信息。
三、概要设计1、系统功能根据项目的开发要求,本系统划分成六个主要功能模块:录入学生信息模块、修改学生信息模块、删除学生信息模块、查询学生信息模块、输出模块和推出模块。
系统功能机构图如下:2、重要数据的数据结构设计学生学籍的记录项用结构体Stu message表示,包括6个属性,stuno,name、spec、grade、sex、birthday 分另U代表学生的学号、专业、年级、性另U和出生日期,其中birthday 类型为自定义的结构体类型Date.Struct stumessage {Char stuno[11]: // 学号Char name[9]: // 姓名Char spec[2]: // 专业Char grade: // 年级Char sex : // 性别Stuct date birthday: // 出生日期};日期类型date包括三个属性,分别代表年、月、日Struct date{int year : // 年Int month: //Int day: // H};3、函数设计学籍管理系统程序采用了结构化程序设计的思想,由1个.h 头文件和3个C源文件组成。
程序中除了主函数外,共设计了以下14个函数,分别包含在3个.c源文件中。
以下是这些函数原型及功能设计。
(1) void sysinfo(void)函数功能:在屏幕上输入系统及信息并等待用户响应。
学生管理系统c语言简单版
学生管理系统c语言简单版学生管理系统c语言简单版介绍:学生管理系统是一种用于管理学生信息的软件,它可以方便地对学生的基本信息、课程成绩等进行录入、查询、修改和删除等操作。
本文将介绍如何使用C语言编写一个简单的学生管理系统。
功能:1. 添加学生信息2. 查询学生信息3. 修改学生信息4. 删除学生信息5. 显示所有学生信息实现方法:1. 添加学生信息添加学生信息需要输入以下内容:姓名、性别、年龄、班级和电话号码。
我们可以定义一个结构体来存储这些信息,代码如下:```struct Student {char name[20];char sex[10];int age;char class[20];char phone[20];};```然后定义一个数组来存储多个学生的信息:```struct Student students[100];int count = 0; // 学生数量```接下来,我们可以编写一个函数来添加新的学生信息:```void addStudent() {struct Student student;printf("请输入姓名:");scanf("%s", );printf("请输入性别:");scanf("%s", student.sex);printf("请输入年龄:");scanf("%d", &student.age);printf("请输入班级:");scanf("%s", student.class);printf("请输入电话号码:");scanf("%s", student.phone);students[count++] = student; // 将新的学生信息存储到数组中 printf("添加成功!\n");}```2. 查询学生信息查询学生信息可以按照姓名或电话号码进行查询。
C语言程序设计实习报告学生信息管理系统
C语言程序设计实习报告学生信息管理系统C 语言课程设计题目:学生信息管理系统设计者:梁天江专业:机械设计制造及其自动化班级学号: 072084-31所属院系:机电学院指导教师:吴湘宁7月17日1.题目和要求:1.1问题提出与要求:学生成绩管理系统[要求]设计一个学生成绩管理系统,对在校某班学生几门课程的考试成绩进行统一管理。
每个学生记录包括学号、姓名、年龄、数学、英语、物理成绩,默认以学号为序存放。
(1)一个文件按以班为单位存储学生记录。
(2)将允许的操作分为六种A:插入一个新的学生记录(录入学生信息)B:修改学生记录C:删除一个学生记录D:登记成绩E:修改成绩F:浏览全班成绩(3)计算学生的总成绩(4)输出全班成绩表1.2需求分析.根据题目要求,由于学生信息是存放在文件中,因此应提供文件的输入,输出等操作;在程序中需要浏览学生的信息,应提供显示,查找,排序等操作;另外还应提供键盘式选择菜单实现功能选择.2.功能实现设计:2.1总体设计:分析系统:根据题目的需求分析,可将这个系统设计为六大模块(见下图):插入学生信息,修改,删除,登记,浏览,统计。
2.2详细设计:1、主函数主函数设计得比较简洁,只提供输入、功能处理和输出部分的函数调用。
其中各功能模块用菜单方式选择;其流程图如下:[程序]void main(){int a;do{printf("\t\t\t\t\n");printf("\t\t\t\t学生成绩管理系统\n");printf("\n");printf("\t\t\t作者:梁天江班级:072084-31 学号: 1004528\n"); printf("\t\t\t-------------------------------------------\n\n");printf("\t 1.插入新的学生记录\n");printf("\t 2.修改学生记录\n");printf("\t 3.删除学生记录\n");printf("\t 4.显示学生成绩和总分\n");printf("\t 5.浏览全班成绩\n");printf("\t 6.退出\n\n");。
课程信息管理系统c语言
课程信息管理系统c语言课程信息管理系统(C语言)一、引言课程信息管理系统是一种用来管理和组织课程信息的软件系统。
它能够对教学计划、课程表、学生选课等进行管理,帮助学校、教育机构或教师高效地管理课程信息。
本文将通过介绍课程信息管理系统的功能、特点和实施过程,详细阐述C语言在该系统中的应用。
二、功能介绍1. 学生管理:该系统能够记录学生的个人信息,如学号、姓名、班级等,并能进行学生选课管理,包括选课、退课等操作。
2. 课程管理:系统可以管理各门课程的信息,如课程编号、课程名称、学分等,并能进行课程安排,制定教学计划。
3. 教师管理:系统可以记录教师的基本信息,提供教师选课、授课安排等功能。
4. 成绩管理:系统能够记录学生的各科成绩,并提供成绩查询、统计等功能,方便学生和教师进行学业评估。
5. 课程评价:系统可以记录学生对课程的评价和反馈,帮助学校和教师改进教学质量。
三、特点和优势1. 数据集中管理:课程信息管理系统将学生、教师、课程等信息集中管理,方便快捷,减少重复工作。
2. 数据安全性高:系统采用数据库来存储和管理数据,确保数据的安全性和完整性。
3. 操作简便:系统界面友好,操作简单明了,即使对计算机操作不熟悉的教师和学生也能够轻松上手。
4. 信息共享:系统支持信息共享,学生、教师和管理者可以通过系统查询相关信息,提高工作效率。
5. 数据分析功能:系统能够对学生选课情况、成绩分布等进行统计和分析,为教学改革提供数据支持。
四、实施过程1. 需求分析:通过与学校、教师和学生的沟通,明确系统的需求和功能。
2. 系统设计:根据需求分析的结果,设计系统的数据库结构、界面和功能模块。
3. 编码实现:使用C语言编写相应的代码,实现系统的各个功能模块。
4. 测试调试:对系统进行功能测试和性能测试,确保系统的稳定性和可靠性。
5. 上线部署:将系统部署到服务器上,并进行相关的数据迁移和备份工作。
6. 培训和维护:对教师和学生进行系统培训,并进行后期的系统维护和更新。
C语言课程设计—学生成绩管理系统
#include ”stdio.h”#include ”string.h”#include "stdlib.h"#include "conio.h"#include ”string.h”#include "fcntl。
h"typedef struct student{int num;char grade[10];char classroom[10];char name[10];float score_math;float score_chinese;float score_english;float average;float sum;}STU;typedef struct Node{STU data;struct Node *next;}*linklist;void menu();char *loginpassword(char password[],int n);//登录验证密码函数声明//linklist createstulist(linklist head);//创建学生链表即学生信息录入函数声明// void printstulist(linklist head);//学生信息输出函数声明//void searchstu_namelist(linklist head);//学生信息查询函数声明(按姓名)// void searchstu_numlist(linklist head);//学生信息查询函数声明(按学号) linklist modifystulist(linklist head);//学生信息修改函数声明//linklist delatestulist(linklist head);//学生信息删除函数声明//void savestulist(linklist head);//学生信息保存到文件函数声明// linklist loadstulist();//从文件中读取学生信息函数声明// void sortstulist(linklist head); //成绩排名函数(按年级)声明//void sort(STU stu[],int flag); //学生分班函数声明//void sortstuclass(linklist head); //成绩排名函数(按班级)声明////*************************************//void main(){char admin[]=”zhangqiong";char password[]=”123456";char person[20];char password1[10];int i;printf(”********************************************************************************\n”);printf("\t\t **********欢迎来到学生成绩管理系统**********\n\n");printf(”********************************************************************************\n\n”);printf(”\t\t\t\t用户登录\n\n\n\n");for(i=0;i<3;i++){printf("用户名:”);gets(person);fflush(stdin);printf(”\n\n\n”);loginpassword(password1,10);printf("\n\n\n”);if(strcmp(admin,person)==0&&strcmp(password,password1)==0){printf(”\t\t\t\t成功登录,亲!\n”);printf("\n\n”);printf(”按任意键继续!”);getch();menu();break;}elseprintf("\t用户名或者密码输入错误\n”);}if(i==3)printf("\t对不起,您今天输入次数太多,已被强制退出!\n”);}//**********************************************************////**********************************************************//char *loginpassword(char password[],int n)//登录密码函数,隐藏密码可见//{int i=0;int m=0;char ch;printf("用户密码:”);while((ch=getch())!='\r’&&m〈n){password[i++]=ch;printf(”*");}password[i]='\0';return password;}//***************************************************// void menu()//主界面函数//{system("cls");linklist L;L=(linklist)malloc(sizeof(Node));L—>next=NULL;int ch;do{printf(”\t -——-----—-******——--——--—---******—————-————-******-—-—-—-—-—\n\n");printf("\t\t\t**********学生成绩管理系统***********\n\n”);printf("\t ——----——--******-—-——------—******—---———--—-******—---———-——\n\n\n\n\n");printf("\t1。
C语言学生成绩管理系统设计报告
C语言学生成绩管理系统设计报告一、背景描述C语言学生成绩管理系统是一款基于C语言编程实现的学生成绩管理系统。
它可以有效的收集、处理、分析学生的成绩数据,为学校及教师提供完善的学生成绩管理服务。
二、系统功能简介1. 记录学生成绩:该系统可以实现学生成绩的录入,以及成绩项目的录入,例如语文成绩、数学成绩等;2. 对学生成绩进行分析和分析统计:该系统可以实现对学生成绩分析和统计,例如学生成绩的最高分、最低分、平均分等;3. 学生成绩查询:可以根据学号或姓名进行查询,也可以按照班级进行查询;4. 成绩排名:可以根据班级列出学生成绩排名;5. 其他功能:可以实现教师及学校管理人员设置登录密码及账号,保证系统的安全稳定。
三、系统架构C语言学生成绩管理系统以学生成绩信息为基本业务,前端模块主要包括:学生成绩录入、学生成绩查询、学生成绩分析统计、学生成绩排名等模块;后端模块主要包括:数据管理模块、数据存储模块和信息安全模块,其信息网络设计如图1所示。
图1四、系统实现1. 数据库设计:学生成绩管理系统的数据库设计要求实现学生成绩信息的收集、处理、分析,因此建立以下4个表:学生信息表、课程信息表、成绩信息表以及评价表;2. 输入输出界面:通过Borland C++ 4.5 软件编写C语言源程序,实现数据库的请求、输入和输出,完成友好、简洁的界面设计;3. 数据处理模块:数据的处理主要する流程为根据输入的条件,从学生成绩数据库提取数据,然后进行数据处理,最后将数据处理的结果传给输出模块进行显示。
4. 信息安全模块:数据安全由操作系统管理,综合利用各种安全机制,如用户权限管理,系统账户安全设置等,确保系统的安全稳定性。
五、结束语。
C语言课程设计报告(学生成绩管理系统)
C语言课程设计报告:学生成绩管理系统系统需求一、当前学生信息:通过结构体struct student 来保存学生的姓名,学号,性别,语文,数学,英语和计算机等等相关信息,并且通过cin函数来进行给当前学生输入初始信息。
二、学生成绩查询: 输入一个学号,在文件中查找此学生, 若找到则输出此学生的全部信息和成绩;若找不到则输出查找失败的信息。
同时也可以全部把各科的平均成绩,最高和最低分输出.三、新生插入:通过给该生的学号来和原班上的学生的学号比较大小,若大就在后,若小则靠前排,将此生的信息保存下来.四、输出全部学生信息和全部学生成绩。
五、退出系统.六、附加说明:系统将来完善的功能有:可以通过性别来模糊查询,也可以通过姓名的姓来先进行模糊查询,以便后面精确查找。
总体设计一、仔细阅读系统要求,首先将此系统化分为如下模块(即如下函数)1、输入初始的学生信息:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu *p1)来实现此操作。
2、查询模块:可用stu *lookdata(stu *p1)来实现。
找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。
3、插入模块:可用insert( )函数来实现。
其中通过学号的大小来比较的,并且以此来排序.4、输出学生的信息以及成绩:通过学生的姓名来查看学生的语文、数学、英语和计算机等相关成绩,同时也可以分别通过caverage()、maverage()、eaverage() 和comaverage() 来输出语文、数学、英语和计算机等成绩的平均分数、最高和最低分数。
5、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。
二、系统主模块结构图:详细设计一、界面设计此系统界面采用图形和数字化菜单设计。
主界面设计如下:学生成绩管理系统请选择相应的数字执行相应的功能:1:是否输入其他数据2:查看数据3:插入数据4:查找数据5:更新数据6:保留数据7:显示或打印数据8:语文成绩状况9:数学成绩状况10:英语成绩状况11:计算机成绩状况12:?13:退出系统二、数据结构设计:程序设计中用到的结构体类型:学生信息结构体类型:typedef struct student{char name[MAX];int num[MAX];char sex[MAX];int chinese;int mathematic;int english;int computer;struct student *next;}程序代码://原始密码是123456#include"stdio.h”#include"stddef.h"#include"stddef。
c语言课程设计学生成绩管理系统总结
c语言课程设计学生成绩管理系统总结
以下是一篇符合您要求的文档:
在这次C语言课程设计中,我们开发了一个学生成绩管理系统。
这个系统的主要目标是帮助教师更方便地管理学生成绩,包括输入、存储、查询和修改成绩等功能。
在设计这个系统时,我们首先分析了需求,明确了系统的基本功能和用户群体。
我们选择了合适的开发工具和技术,包括C语言和文件操作。
在系统开发过程中,我们遇到了许多问题,如内存管理、输入验证和算法优化等。
通过查阅资料和团队协作,我们逐一解决了这些问题。
在系统测试阶段,我们对各个功能进行了详细的测试,包括正常情况和异常情况。
测试结果表明,系统基本符合设计要求,但在一些细节方面仍需改进。
例如,在输入成绩时,系统没有对成绩的有效性进行验证,这可能导致错误的数据被存储。
这次课程设计让我们更深入地了解了C语言和软件开发的过程。
通过实际操作,我们学会了如何分析需求、设计系统、解决问题和测试软件等方面的技能。
虽然系统还存在一些问题,但这次课程设计对我们来说是一次非常有价值的实践经验。
C语言实训大作业
C语言实训大作业As a person, we must have independent thoughts and personality.
1.基于链表的“学生信息管理系统”
实验内容:编写并调试程序,实现学校各专业班级学生信息的管理。
定义学生信息的链表结点类型,包括:学号、姓名、班级、专业、3门成绩。
实验要求:
(1)main函数:以菜单形式将各项功能提供给用户,根据用户的选择,调用
相应的函数。
(2)定义函数CreateList:按学号由小到大,建立有序的链表。
逆序输入 n
个学生信息(调用n次input),学号大的先输入,建立带头结点的单
链表。
(3)定义函数Output:以指向某个学生结点的指针为参数,将学生信息格式
化输出。
(4)定义函数Save:将某个学生信息存入文件。
(5)定义函数Fetch:从文件中随机读取某个学生的信息。
(6)定义函数Search_num:查找指定学号的学生,返回指向该学生结点的指
针。
(7)定义函数InsertList:在函数中输入一个学生的信息,将该学生信息插
入到链表中的相应位置,并保持此链表按学号的有序性。
(8)定义函数Delete_num:从链表中删除指定学号的学生。
(9)定义函数Search_major _subject_score:查找某个专业的、某门课程
的成绩小于某个分数的学生,返回指向该学生结点的指针。
(10)定义函数Delete_ major _subject:从链表中删除某个专业的、某
门课程的成绩小于某个分数的学生。
基于C语言的学生成绩管理系统的设计与实现
计算机教学1 需求分析随着学校规模的不断扩大,各院校专业、班级、学生的数量急剧增加,有关学生成绩的各种信息也是成倍增加。
为了改变学生成绩管理的不便以及繁琐的工作量,节省教学资源,提高工作效率,开发一个学生成绩管理系统是很有必要的。
本系统从实际需求分析出发,利用C语言编写。
2 系统设计■2.1 总体设计本项目采用模块化的程序设计方法,将大的任务按照一定的原则分为多个小人物,然后分别设计各个小任务。
小任务对应的模块之间相对独立且相关。
使用模块化层次结构图来分析其任务的划分。
本项目使用大量的数组结构,由九大模块组成。
主要包括显示开发团队信息、密码验证登录、学生成绩录入、计算总分、计算平均值、等级评定、查找修改成绩、成绩排序以及系统退出功能。
(1)显示开发团队信息模块:主要利用输出函数打印设计好的开发团队信息。
(2)密码验证登录模块:密码设定为一个字符串,输入正确进入系统主菜单;允许有3次输入机会,如果全部输入错误,提示系统退出。
(3)学生成绩录入模块:可以先输入学生人数,根据输入的学生说完成学生基本信息和成绩信息的录入,并可以显示输出。
(4)计算总分模块:可以完成每名学生所有科目成绩总分的计算并输出。
(5)计算平均值模块:可以完成每名学生所有科目成绩平均分的计算并输出。
(6)等级评定模块:可以根据学生平均分对学生成绩划分不及格、及格、良好、优秀等几个等级的划分并输出显示。
(7)查找修改成绩模块:可以根据输入的学号查找是否系统中存在该名学生信息。
如果存在可以修改学生成绩信息并输出;如果不存在则进行信息提示。
(8)成绩排序模块:可以根据学生各科目的总分进行排序输出。
(9)系统退出模块:可以再操作完成后退出系统。
图1 系统功能结构图■2.2 详细设计(1)数据结构设计利用结构体数组将学生基本资料和成绩进行存放。
以下以学生四门课成绩为例,定义如下:struct stu//结构体名{char num[10]; //学号char name[10];//姓名float fMath;float fC;float fEnglish;float fSport;float fScore;float fAver;}p[100];//p是struct stu这种结构体类型的数组变量运用该结构体程序,即可将从键盘输入的学生基本信息和4门课成绩信息存储在学生成绩管理系统中,以便进行后面的相关操作。
学生管理系统 C语言代码
#include"stdio.h"#include"stdlib.h"#include"string.h"struct stu_info1{char num[13];//学号char name[10];//姓名char sex[5];//性别char cls[20];//班级}stu1[6];struct stu_info2{char counum[6];//课程号char counam[20];//课程名称int credit;//学分}stu2[6];struct stu_info3{char num[13];//学号char counum[6];//课程号float results;//分数}stu3[12];struct stu_info4{char num[13];//学号char counum[6];//课程号float results;//分数}stu4[12];int n=11;void main(){void gengxin();void input1();void input2();void input3();void output();void xianshi();void chaxun();void printf1();void printf2();input1();input2();output();int i;loop: ;printf("*************欢迎使用分数查询系统*************\n");printf("** 请选择**\n");printf("** 1.录入2.删除无用信息(管理员功能) **\n");printf("** 3.显示4.查询(学生功能) **\n");printf("** 5.显示学生信息6.显示课程信息**\n");printf("** 7.退出**\n");printf("**********************************************\n");scanf("%d",&i);switch(i){case 1: input3();break;case 2:gengxin();break;case 3:xianshi();goto loop;case 4: chaxun();goto loop;case 5: printf1();goto loop;case 6: printf2();goto loop;case 7:break;default:printf("error");break;}}void input1()//录入结构体stu1[]{int i;FILE *fp;if((fp=fopen("A.txt","r"))==NULL){printf("can not open file\n");exit(0);}/* printf(" 学号姓名性别班级\n");*/for(i=0;i<=5;i++){fscanf(fp,"%s%s%s%s",&stu1[i].num,&stu1[i].name,&stu1[i].sex,&stu1[i].cls);/*printf("%-13s %-10s %-5s %-20s\n",stu1[i].num,stu1[i].name,stu1[i].sex,stu1[i] .cls);*/}fclose(fp);}void input2()//录入结构体stu2[]{int i;FILE *fp;if((fp=fopen("B.txt","r"))==NULL){printf("can not open file\n");exit(0);}for(i=0;i<=5;i++){fscanf(fp,"%s%s%d",&stu2[i].counum,&stu2[i].counam,&stu2[i].credit);}fclose(fp);}void input3()//录入成绩{FILE *fp;fp=fopen("C.txt","w");int a,i,j,k;float cetss;char number[13],cnum[6],mima[10];printf("请输入管理员密码\n");scanf("%s",mima);if(strcmp(mima,"abc111")==0){printf("请输入要录入学生成绩的个数\n");scanf("%d",&a);for(i=1;i<=a;i++){printf("请输入要录入的第%d同学的学号:",i);scanf("%s",number);printf("请输入要录入的第%d同学的课程号:",i);scanf("%s",cnum);for(j=0;j<=5;j++)//学号{if((strcmp(number,stu1[j].num)==0))break;}if(j<=5){for(k=0;k<=5;k++)//课程号{if(strcmp(cnum,stu2[k].counum)==0){printf("请输入要录入同学的成绩:");scanf("%f",&cetss);fprintf(fp,"%s %s %f\n",number,cnum,cetss);break;}}}if(j>5||k>5){printf("Error,please input again");i=i-1;}printf("录入成功\n");}}else{printf("密码错误\n");}}void output()// 录入结构体stu3[]{int i;FILE *fp=fopen("C.txt","r");for(i=0;i<n;i++){fscanf(fp,"%s%s%f",&stu3[i].num,&stu3[i].counum,&stu3[i].results);/*printf("%s%s%f\n",stu3[i].num,stu3[i].counum,stu3[i].results);*/ }fclose(fp);}void xianshi()// 显示成绩{int i,j;for(i=0;i<n;i++){for(j=0;j<6;j++){if((strcmp(stu3[i].num,stu1[j].num))==0)printf("%s\t",stu1[j].name);}for(j=0;j<6;j++){if(strcmp(stu3[i].counum,stu2[j].counum)==0)printf("%s\t",stu2[j].counam);}printf("%3.1f\n",stu3[i].results);}}void chaxun()//查询功能{char number[13],c;int i,j,k,a,b,d;while((c=getchar())!='Q'){a=0,b=0;//a记录学分b记录学科printf("请输入要查询同学的学号\n");scanf("%s",number);for(i=0;i<n;i++){if(strcmp(number,stu3[i].num)==0){printf("学号:%s\t",stu3[i].num);for(j=0;j<6;j++){if(strcmp(stu3[i].num,stu1[j].num)==0){printf("姓名:%s\n",stu1[j].name);}}break;}}d=i;for(i=0;i<n;i++)if(strcmp(number,stu3[i].num)==0){b=b+1;for(j=0;j<6;j++){if(strcmp(stu3[i].num,stu1[j].num)==0){for(k=0;k<6;k++){if(strcmp(stu3[i].counum,stu2[k].counum)==0)break;}break;}}if(stu3[i].results>=60){a=a+stu2[k].credit;printf("课程号:%s\t课程名称:%s\t成绩:%3.1f\t实得学分:%d\n",stu3[i].counum,stu2[k].counam,stu3[i].results,stu2[k].credit);}elseprintf("课程号:%s\t课程名称:%s\t成绩:%3.1f\t实得学分:%d\n",stu3[i].counum,stu2[k].counam,stu3[i].results,0);}if(d<n){printf("共修%d科\t\t实得总学分:%d\n",b,a);}else{printf("学号输入错误\n");}getchar();printf("退出请按Q+回车,继续查询请按回车键");}}void gengxin()//更新信息,删除C.txt中无用信息{FILE *fp;int i,j,k;char mima[10];printf("请输入管理员密码\n");scanf("%s",mima);if(strcmp(mima,"abc111")==0){fp=fopen("C.txt","w");for(i=0;i<n;i++){for(j=0;j<6;j++)if(strcmp(stu3[i].num,stu1[j].num)==0){for(k=0;k<=5;k++)if(strcmp(stu3[i].counum,stu2[k].counum)==0)break;if(k<=5){fprintf(fp,"%s %s %f\n",stu3[i].num,stu3[i].counum,stu3[i].results);}}}printf("更新C.txt成功\n");fclose(fp);}else{printf("密码错误\n");}}void printf1()//显示学生信息{int i;printf(" 学号姓名性别班级\n");for(i=0;i<=5;i++){printf("%-13s%-10s%-5s %-20s\n\n",stu1[i].num,stu1[i].name,stu1[i].sex,stu1[i].cls);}}void printf2()//显示课程信息{int i;printf(" 课程编号课程名称学分\n");for(i=0;i<=5;i++){printf("%-6s%-20s %-4d\n\n",stu2[i].counum,stu2[i].counam,stu2[i].credit);}}。
学生课程信息管理系统c语言
学生课程信息管理系统c语言学生课程信息管理系统是一个用于管理学生课程信息的软件系统。
它可以帮助学校、教师和学生轻松地进行课程管理、成绩管理和学生信息管理。
本文将介绍该系统的主要功能和特点。
一、系统概述学生课程信息管理系统是为了方便学校管理学生课程信息而开发的一款软件。
它可以实现学生选课、查看课程信息、查询成绩等功能。
通过该系统,学校可以更好地管理学生的学习情况,提高教学质量,促进学生的成长。
二、系统功能1. 学生选课功能:学生可以通过系统选择自己感兴趣的课程。
系统会显示可选课程的详细信息,包括课程名称、授课教师、上课时间等。
学生可以根据自己的兴趣和学习计划进行选择。
2. 课程信息查询功能:学生可以通过系统查询自己已选课程的详细信息。
系统会显示课程的名称、授课教师、上课时间、上课地点等信息,方便学生及时了解课程的相关信息。
3. 成绩查询功能:学生可以通过系统查询自己的课程成绩。
系统会根据学生的学号和课程信息,显示对应的成绩。
学生可以及时了解自己的学习成果,并根据成绩进行学习调整。
4. 学生信息管理功能:系统可以记录学生的基本信息,如学号、姓名、年龄、性别等。
教师和学校管理者可以通过系统对学生信息进行管理,包括添加学生信息、修改学生信息、删除学生信息等。
5. 教师信息管理功能:系统可以记录教师的基本信息,如教师编号、姓名、性别等。
学校管理者可以通过系统对教师信息进行管理,包括添加教师信息、修改教师信息、删除教师信息等。
6. 课程信息管理功能:系统可以记录课程的详细信息,如课程编号、课程名称、授课教师、上课时间、上课地点等。
学校管理者可以通过系统对课程信息进行管理,包括添加课程信息、修改课程信息、删除课程信息等。
三、系统特点1. 界面友好:系统的界面设计简洁美观,操作简单明了,方便用户使用。
2. 数据安全:系统采用数据库存储学生课程信息,保证数据的安全性和完整性。
3. 高效性:系统能够快速响应用户的请求,提供及时的信息查询和管理功能。
C++学生信息管理系统课程设计报告
一、课程设计目的1.通过C++课程设计,使学生能够将学到的面向对象的设计思想运用在具体的工作和学习中,加深对类和对象的理解,要求学生对生活中许多具体的事物抽象出类,并掌握继承和派生类、基类、虚函数和多态的概念。
2.用所学的C++语言知识及其编程方法,包括类和对象、继承与多态等面向对象的基本思想和方法以及文件流的基本操作等内容。
通过布置具有一定难度的实际程序设计项目,要求学生独立完成所布置项目。
在分析设计过程中,要求学生养成良好的编程习惯,学会分析解决简单的实际问题,学会C++编程环境(VC++)的实际调试技巧和方法,要求学生在教师的指导下逐步完成应用程序的分析与设计过程。
二、课程设计的内容(一)、题目:学生信息管理系统(二)、目的与要求1。
目的:(1)基本掌握面向对象程序设计的基本思路和方法;(2)达到熟练掌握C++语言的基本知识和技能;(3)能够利用所学的基本知识和技能,解决简单的程序设计问题2。
要求基本要求:(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计;(2)要求在设计的过程中,建立清晰的类层次;(3)在系统中至少要定义三个类,每个类中要有各自的属性和方法;(4)在系统的设计中,至少要用到面向对象的一种机制。
创新要求:在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。
3。
信息描述学生信息:学号、姓名、系别、班级和所选科目及各科成绩等。
4。
功能描述(1)使用继承的方法构造3个类(如人员类——-基类,普通学生类和管理员类—---派生类)使用相应的对象放置相应信息(2) 编写同名的display()成员函数,用来输出相应的内容(3)录入学生信息并保存(4)按不同类别输出学生信息(如按性别、年龄等)(5)查询学生信息(以一种或多种方式,如按名字、学号等检索)(6) 修改学生信息并保存(7) 删除学生信息(8) 计算学生的平均成绩三、设计说明总体结构我们采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体结构设计合理.也可根据自己对题目的理解增加新的功能模块.系统以菜单界面方式工作,运行界面友好,演示程序以用户和计算机的对话方式进行。
C语言学生管理系统(绍兴文理学院可用)
上机内容:学生成绩管理姓名:陈雯学号:11101105姓名:吴立立学号:11101129一、上机内容:w1.有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号、姓名、三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。
w2.将上题“stud”文件中的学生数据,按平均分进行排序处理,将已排序的学生数据存入一个新文件“stu-sort”中。
w3.将上题已排序的学生成绩文件进行插入处理。
插入一个学生的三门课成绩。
程序先计算新插入学生的平均成绩,然后将它按成绩高低顺序插入,插入后建立一个新文件。
w学生的原有数据为:w91101 Wang 89,98,67.5w91103 Li 60,80,90w91106 Fun 75.5,91.5,99w91110 Ling 100,50,62.5w91113 Yuan 58,68,71w要插入的学生数据为:w91108 Xin 90,95,60利用printf( )函数和switch( )函数来分别输出学生的学号、班级和各科成绩和及格情况。
在做学生的排名和成绩平均值时要用到自定义函数和数组的知识。
在学生管理系统中插入一个学生然后再进行排名(冒泡法、选择法), 可以用折半查找的方法来完成二、源程序#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<string.h>#include<iostream>#include<iomanip>#include<windows.h>using namespace std;int COUNT[100];struct Student //定义学生结构体{int xuehao;char name[20];int age;int computer;int math;int english;}students[100];int geshu=0; //学生的个数void inter_face(char *menu_item){system("color F0");system("cls");printf(" oooooooooooooooooooooooooooooooooooo\n");printf(" ******** 欢迎来到数理信息学院学生成绩管理系统 ********\n");printf(" oooooooooooooooooooooooooooooooooooo\n");printf("\n \t\t<< %s >>\n\n",menu_item);}void return_tip(){printf("\n\t按任意键可返回系统最初界面……!!\n");getch();}void student_information() //输入学生的基本信息(学号、姓名、年龄){inter_face("录入学生基本信息");for(;;){printf("\t学生学号、姓名、年龄 :");scanf("%d%s%d",&students[geshu].xuehao,students[geshu].name,&students[geshu].age);cout<<"\t****************************************"<<endl;cout<<"\t 亲,返回可继续插入哦! "<<endl;cout<<"\t****************************************"<<endl;geshu++;if(students[geshu].xuehao==0) break;printf("\n");}return_tip();}int search_xuehao(){int n,i;printf("请输入学生的学号:");scanf("%d",&i);for(n=0;n<geshu;n++){if(students[n].xuehao==i&&students[n].xuehao!=0){printf("学号:%d\n",students[n].xuehao);printf("姓名:%s\n",students[n].name);printf("年龄:%d\n",students[n].age);return n;}}printf("\n您输入学号不存在或重复错误.\n");system("color 40");return -1;}void input_score(){int n;inter_face("输入学生成绩");printf("\n请分别输入学生的计算机、数学、英语成绩:\n"); //输入学生的成绩for(n=0;n<geshu;n++){if(students[n].xuehao!=0){printf("学号:%d 姓名:%s 成绩:",students[n].xuehao,students[n].name);scanf("%d%d%d",&students[n].computer,&students[n].math,&students[n].english);cout<<"~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~"<<endl;}}return_tip();}void modify_score(){int n;inter_face("修改学生成绩");if((n=search_xuehao())!=-1){printf("计算机:%d 数学:%d 英语:%d\n",students[n].computer,students[n].math,students[n].english);printf("\n请重新输入成绩:\n计算机:");scanf("%d",&students[n].computer);printf("数学:");scanf("%d",&students[n].math);printf("英语:");scanf("%d",&students[n].english);cout<<" O(∩_∩)O~ 恭喜你成功修改学生成绩!"<<endl;}return_tip();}void Insert_score(Student students[]) //插入一条学生信息。
简单的c语言程序设计班级通讯录管理系统
简单的c语言程序设计班级通讯录管理系统一、引言班级通讯录管理系统是一款基于C语言的简单程序,旨在帮助班级管理者更好地管理班级通讯录信息。
本文将从需求分析、系统设计、代码实现等方面详细介绍该系统。
二、需求分析1. 功能需求(1)添加联系人:可以添加新的联系人信息,包括姓名、性别、电话号码等。
(2)删除联系人:可以删除已有的联系人信息。
(3)修改联系人:可以修改已有的联系人信息,包括姓名、性别、电话号码等。
(4)查询联系人:可以根据姓名或电话号码查询已有的联系人信息。
(5)显示所有联系人:可以查看当前所有已有的联系人信息。
2. 性能需求(1)稳定性:程序应该具有较高的稳定性,不会因为输入错误或其他异常情况导致崩溃。
(2)响应速度:程序应该具有较快的响应速度,不会因为数据量过大或其他原因导致卡顿或延迟。
3. 可靠性需求(1)数据安全:程序应该具有较高的数据安全性,保证用户输入的数据不会被损坏或丢失。
(2)用户友好性:程序应该具有较好的用户友好性,使用户能够轻松使用。
三、系统设计1. 总体设计(1)系统结构:本系统采用单层结构,包含若干个函数模块。
(2)数据结构:本系统采用链表数据结构,将每个联系人信息存储在一个节点中,并通过指针将各个节点连接起来。
(3)界面设计:本系统采用命令行界面,用户可以通过输入不同的命令实现不同的功能。
2. 模块设计(1)添加联系人模块:该模块用于添加新的联系人信息,包括姓名、性别、电话号码等。
用户需要输入相应的信息后,程序将新建一个节点并将其插入到链表中。
(2)删除联系人模块:该模块用于删除已有的联系人信息。
用户需要输入要删除的联系人姓名或电话号码后,程序将在链表中查找相应节点并将其删除。
(3)修改联系人模块:该模块用于修改已有的联系人信息。
用户需要输入要修改的联系人姓名或电话号码后,程序将在链表中查找相应节点并允许用户修改其中的信息。
(4)查询联系人模块:该模块用于根据姓名或电话号码查询已有的联系人信息。
c语言课程设计学生成绩管理系统流程图
C语言课程设计学生成绩管理系统流程图本文介绍了一个基于C语言的学生成绩管理系统的流程图设计。
该系统可以帮助学校管理学生的成绩信息,包括录入学生成绩、查询学生信息、统计学生成绩等功能。
1. 系统流程图概览graph LRA[开始] --> B(登录系统)B --> C{登录是否成功}C -- 是 --> D(显示菜单)C -- 否 --> BD --> E[输入操作选项]E --> F{选择操作}F -- 1 --> G(录入学生成绩)F -- 2 --> H(查询学生信息)F -- 3 --> I(统计学生成绩)F -- 4 --> J(显示菜单)F -- 5 --> K(退出系统)G --> L[输入学生信息]L --> M[保存学生成绩]M --> N[继续操作]N --> GH --> O[输入学生学号]O --> P[查询学生信息]P --> NI --> Q[统计学生成绩]Q --> R[显示统计结果]R --> NJ --> DK --> S[结束]2. 系统流程图详解2.1. 开始系统开始运行,进入登录界面。
2.2. 登录系统用户输入登录信息,包括用户名和密码。
2.3. 用户登录验证系统对用户输入的用户名和密码进行验证,包括检查用户名是否存在和密码是否匹配等。
•如果登录验证成功,进入显示菜单页面。
•如果登录验证失败,返回登录系统页面,提示用户重新输入。
2.4. 显示菜单系统显示主功能菜单,供用户选择需要执行的操作。
2.5. 输入操作选项用户根据菜单提示,输入相应的操作选项。
2.6. 选择操作系统根据用户输入的操作选项,执行相应的操作。
•如果用户选择录入学生成绩,进入输入学生信息步骤。
•如果用户选择查询学生信息,进入输入学生学号步骤。
•如果用户选择统计学生成绩,进入统计学生成绩步骤。
学生成绩管理系统c语言课程设计
学生成绩管理系统c语言课程设计一、引言学生成绩管理系统是一种可以帮助学校或教育机构管理学生的成绩、课程和考试信息的软件。
本文将介绍一个基于C语言的学生成绩管理系统的设计过程。
二、需求分析在设计一个学生成绩管理系统之前,我们需要先进行需求分析。
以下是该系统需要满足的基本需求:1. 学生信息管理:包括添加、删除和修改学生信息,如姓名、性别、年龄等;2. 课程信息管理:包括添加、删除和修改课程信息,如课程名称、授课教师等;3. 成绩录入:可以录入每个学生在每门课程中的成绩;4. 成绩查询:可以查询某个学生在某门课程中的成绩以及某门课程所有学生的成绩排名等;5. 成绩统计:可以统计某个班级或某门课程所有学生的平均分、最高分和最低分等。
三、系统设计1. 数据结构设计为了实现上述需求,我们需要定义一些数据结构来存储相关信息。
以下是我们所定义的数据结构:(1)Student结构体:用于存储每个学生的基本信息,包括姓名、性别、年龄等。
typedef struct {char name[20];char sex[10];int age;} Student;(2)Course结构体:用于存储每门课程的基本信息,包括课程名称、授课教师等。
typedef struct {char name[20];char teacher[20];} Course;(3)Score结构体:用于存储每个学生在每门课程中的成绩。
typedef struct {int student_id;int course_id;float score;} Score;(4)Class结构体:用于存储某个班级的所有学生和所选的所有课程。
typedef struct {Student students[MAX_STUDENT_NUM];int student_num;Course courses[MAX_COURSE_NUM];int course_num;} Class;2. 功能实现在上述数据结构定义完成之后,我们可以开始实现各个功能模块。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C 语言班级信息管理系统#include <stdio.h> #include <malloc.h> #include <string.h> #include<io.h> #define NULL 0 #define LEN sizeof(struct student) #defineFILE_DATA_PATH "c:\student.txt"struct student{ long int num; char name[20]; int age; char sex[4]; char birthday[10]; char address[30]; long int tele_num; char E_mail[20]; struct student*next; };int TOTAL_NUM = 0; struct student *head = NULL;void welcome(); void mainmenu(); void record(); void insert(struct student *stu); void display(struct student *stu); void displayAll(); void query();void query_by_num(); void query_by_name(); void readData(); void writeData(); void freeAll();void del();void change();void devise(struct student *p);int main(){char userName[9];char userPWD[7];int i;welcome();for(i = 0; i < 3; i++){printf("\n 管理员初始用户名和密码均为admin\n");printf(" 请输入您的用户名:");scanf("%s", userName);printf("\n 请输入您的密码:");scanf("%s", userPWD);if ((strcmp(userName,"admin")==0) && (strcmp(userPWD,"admin")==0)) {//用户名和密码正确,显示主菜单mainmenu();break;}else{if (i < 2){//用户名或密码错误,提示用户重新输入printf(" 用户名或密码错误,请重新输入!");}else{//连续3 次输错用户名或密码,退出系统。
printf("您已连续3次将用户名或密码输错,系统将退出!"); }}}return 0;}//显示欢迎信息void welcome(){printf("+ -------------------------- +\n");printf("| |\n");printf("| 欢迎使用学生信息管理系统|\n");printf("| |\n");printf("+ -------------------------- +\n");}//系统主菜单void mainmenu(){int choice;choice = -1;readData();printf("\n 温馨提示:为保证您的操作得到保存,请按正常顺序退出系统A_A\n"); do{ printf("\n\n\n"); printf("\t\t\t ---------- \n");printf("\t\t\t+ 学生信息管理系统|\n"); printf("\t\t\t \n");printf("\t\t\t+ [1] ---- 录入学生信息|\n");printf("\t\t\t+ [2] ---- 浏览学生信息|\n");printf("\t\t\t+ [3] ---- 查询学生信息|\n");printf("\t\t\t+ [4] ---- 删除学生信息|\n");printf("\t\t\t+ [5] ---- 修改学生信息|\n");printf("\t\t\t+ [0] ---- 退出系统|\n");printf("\t\t\t+* * * * * * * * * * |\n"); printf("\t\t\t \n");printf(" 请输入您的选择:");scanf("%d", &choice); switch(choice){case 0:writeData(); freeAll();exit(0);case 1:record();break;case 2:displayAll(); break;case 3:query();break;case 4:del();break;case 5:change();break;default:printf("\n 无效选项!"); break;}}while(choice != 0);}//录入学生信息void record(){struct student *p0;p0 = (struct student *)malloc(LEN); printf(" 请输入学生的学号:"); scanf("%ld",&p0->num); printf(" 请输入学生的姓名:");scanf("%s",p0->name); printf(" 请输入学生的年龄:");scanf("%d",&p0->age); printf(" 请输入学生的性别:");scanf("%s",p0->sex);printf(" 请输入学生的出生年月:"); scanf("%s",p0->birthday);printf(" 请输入学生的地址:"); scanf("%s",p0->address);printf(" 请输入学生的电话:"); scanf("%ld",&p0->tele_num); printf(" 请输入学生的E-mail:"); scanf("%s",p0->E_mail);insert(p0);printf(" 该学生的信息为:\n");printf(" ------------------------------------------------------------------------------ "); printf("学号\t姓名\t年龄\t性别\t出生年月\t\t地址\t电话\tE-mail\n"); display(p0);}void insert(struct student *stu){struct student *p0, *p1, *p2;p1 = head;p0 = stu;if(head == NULL){head = p0;p0->next = NULL;}else{ while((p0->num > p1->num)&&(p1->next != NULL)){p2 = p1;p1 = p1->next;}if(p0->num <= p1->num){if(head == p1)head = p0;elsep2->next = p0;p0->next = p1;}else{p1->next = p0;p0->next = NULL;}} TOTAL_NUM++;void display(struct student *p){printf("%ld\t%s\t%d\t%s\t%s\t%s\t%ld\t%s\n", p->num, p->name, p->age, p->sex, p->birthday, p->address, p->tele_num, p->E_mail);}//浏览学生信息void displayAll(){struct student *p;printf("学生总数:%d\n", TOTAL_NUM);p = head;if(head != NULL){printf("\n学号\t姓名\t年龄\t性别\t出生年月\t地址\t电话\tE-mail\n"); printf(" ------------------------------------------------------------------------------ ");do{display(p);p = p->next;}while(p != NULL);}printf("\n");}//查询学生信息void query(){int choice;choice = -1;do{printf("\n"); printf("+ ---- +\n");printf("| 按学号查询请按1 |\n"); printf("| 按姓名查询请按2 |\n"); printf("| 取消请按0 |\n"); printf("++\n");printf(" 请输入您的选择:"); scanf("%d", &choice);switch(choice){case 0: return;case 1:query_by_num();break;case 2:query_by_name();break;default:printf("\n 无效选项!");break;}}while(choice != 0);}//按学号查询学生信息void query_by_num(){int num;struct student *p1;printf(" 请输入学生的学号:");scanf("%ld", &num);if(head==NULL){printf(" 无学生记录!\n");return;}p1=head;while(num!=p1->num && p1->next!=NULL)p1=p1->next;if(num == p1->num){printf("\n学号\t姓名\t年龄\t性别\t出生年月\t地址\t电话\tE-mail\n"); printf(" ------------------------------------------------------------------------------ "); display(p1);}elseprintf(" 没有该学生记录,请核对!");//按姓名查询学生信息void query_by_name(){char name[20];struct student *p1;printf(" 请输入学生的姓名:");scanf("%s", name);if(head==NULL){printf(" 无学生记录!\n");return;}p1=head;while(strcmp(name, p1->name) && p1->next!=NULL)p1=p1->next;if(!strcmp(name, p1->name)){printf("\n学号\t姓名\t年龄\t性别\t出生年月\t地址\t电话\tE-mail\n"); printf(" -------------------------------------------------------------------------------------- "); display(p1);}elseprintf(" 没有该学生记录,请核对!");}//写入文件void writeData(){FILE* fp;// 文件指针struct student *p;fp = fopen(FILE_DATA_PATH, "w");if (!fp){printf("文件打开错误!");return;}fprintf(fp,"%d\n", TOTAL_NUM);for(p = head; p!= NULL; p= p->next){fprintf(fp,"%ld\t%s\t%d\t%s\t%s\t%s\t%ld\t%s\n",p->num, p->name, p->age, p->sex, p->birthday, p->address, p->tele_num, p->E_mail);}fclose(fp);}void freeAll(){struct student *p1, *p2;p1=p2=head; while(p1){p2=p1->next; free(p1);p1=p2;}}//读取文件void readData(){FILE* fp;// 文件指针struct student *p1, *p2;fp = fopen(FILE_DATA_PATH, "r");if (!fp){printf(" 文件打开错误!");return 0;}fscanf(fp,"%d\n", &TOTAL_NUM);head = p1 = p2 = (struct student *)malloc(LEN);fscanf(fp,"%ld\t%s\t%d\t%s\t%s\t%s\t%ld\t%s\n", &p1->num, p1->name, &p1->age, p1->sex, p1->birthday, p1->address, &p1->tele_num,p1->E_mail);while(!feof(fp)){p1 = (struct student *)malloc(LEN);fscanf(fp,"%ld\t%s\t%d\t%s\t%s\t%s\t%ld\t%s\n",&p1->num, p1->name, &p1->age, p1->sex, p1->birthday, p1->address, &p1->tele_num, p1->E_mail);p2->next = p1;p2 = p1;}p2->next = NULL;fclose(fp);}//删除学生信息void del(){struct student *p1, *p2;long int num;if(head == NULL){printf(" 无学生记录!\n");return;}printf(" 请输入您要删除的学生的学号:");scanf("%ld", &num);p1 = head;while(num != p1->num && p1->next != NULL){p2 = p1;p1 = p1->next;}if(num == p1->num){if(p1 == head)head = p1->next;else p2->next = p1->next;free(p1);TOTAL_NUM--;}elseprintf(" 没有该学生记录,请核对!\n");}//修改学生信息void change(){struct student *p1, *p2; long int num;if(head == NULL){printf(" 无学生记录!\n"); return;}printf(" 请输入您要修改的学生的学号:"); scanf("%ld", &num); p1 = head;while(num != p1->num && p1->next != NULL) { p2 = p1;p1 = p1->next;}if(num == p1->num) devise(p1);elseprintf(" 没有该学生记录,请核对!\n");void devise(struct student *p){int choice; choice = -1;do{printf(" 请选择您要修改的学生的信息内容:\n");printf("+ --------------------- +\n");printf("| 姓名请按1 |\n");printf("| 年龄请按2 |\n");printf("| 性别请按3 |\n");printf("| 出生年月请按4 |\n");printf("| 地址请按5 |\n");printf("| 电话请按6 |\n");printf("| E-mail 请按7 |\n");printf("| 取消请按0 |\n"); printf("+ +\n");printf(" 请输入您的选择:"); scanf("%d", &choice); switch(choice){case 0:return;case 1:printf(" 请输入新姓名:"); scanf("%s", p->name); break;case 2:printf(" 请输入新年龄:"); scanf("%d", &p->age); break;case 3:printf(" 请输入新性别:"); scanf("%s", p->sex); break;case 4:printf(" 请输入新出生年月:"); scanf("%s", p->birthday); break;case 5:printf(" 请输入新地址:"); scanf("%s", p->address); break;case 6:printf(" 请输入新电话:"); scanf("%ld", &p->tele_num); break;case 7:printf(" 请输入新E-mail :"); scanf("%s", p->E_mail); break;default: printf("\n 无效选项!");break;}}while(choice != 0);。