学生学籍管理系统C 存读txt
c语言学生学籍管理系统-详细版
int num; char name[20]; char sex; char tel[20]; char domi[3]; }stu[N]; viod enter new data-student() {int i,n; printf("hou many students(0-%d)?:",n-1); for(n=1;n<10;n++) printf("\n enter data now\n\n"); for(i=0;i<n;i++) {printf("\n input%dth student record.\n",i+1); input(i); } if(i!=0) save(n); printf_back(); } #define N 10 struct course { int num; int course_num; char coursename[]; int normalsorce[] int normal;\\平时成绩 int lab;\\实验成绩 int text;\\考试成绩 int ture[];\\综合成绩 float act[];\\实得学分 }cou[N] void enter new data-sorce() {int i,n,z,c; float s; printf("how many num(0-%d)?: "N-1); for(n=1;n<10;n++) printf(\n enter data now\n\n"); for(i=0;i<n;i++) {print("\n input%dth record.\n",i+1); input(i); } if(i!=0) save(n);
学生学籍管理系统c语言课程设计
学生学籍管理系统c语言课程设计
学生学籍管理系统C语言课程设计
一、题目
学生学籍管理系统
二、项目介绍
1、本项目是一个基于C语言实现的学生学籍管理系统。
该系统的主要功能是实现学生学籍的管理,学生可以查看自己的学籍信息,同时管理员可以对学生的学籍信息进行维护和修改。
2、实现的功能:
(1)管理员登录
(2)查看学生学籍
(3)修改学生学籍
(4)添加新学生学籍
(5)删除学生学籍
(6)按学号或姓名查找学生学籍信息
(7)保存学生学籍
(8)退出系统
三、模块结构
1、登录模块
登录模块是本系统的入口,主要负责验证用户的身份信息,如果用户是管理员,则可以进入系统的主界面。
2、学生学籍操作模块
学生学籍操作模块主要负责管理员对学生学籍信息的添加、修改、查看和删除等操作。
3、文件存取模块
文件存取模块负责实现对学生学籍信息的存取,并将学生信息保存到文件中,保证学生学籍信息的安全性。
四、技术要求
1、编程语言
C语言
2、界面
使用C语言实现学生学籍管理系统,界面简单,功能明确。
3、数据操作
使用C语言实现学生学籍管理系统,能够实现对学生学籍的添加、修改、查看和删除等操作。
4、系统功能
系统功能要求具备管理员登录、查看学生学籍、修改学生学籍、添加学生学籍、删除学生学籍、按学号或姓名查找学生学籍信息、保存学生学籍和退出系统等功能。
学生信息管理系统c语言
学生信息管理系统c语言1. 简介学生信息管理系统是一个基于C语言开发的程序,用于管理学校或教育机构中的学生信息。
该系统可以实现学生信息的录入、查询、修改和删除等功能,并且支持数据的持久化存储。
本文档将介绍学生信息管理系统的功能、使用方法以及具体实现细节。
2. 功能学生信息管理系统具有以下主要功能:2.1 录入信息该系统可以通过用户输入的方式录入学生的基本信息,包括学号、姓名、性别、年龄、班级等。
其中,学号是唯一的标识符,用于区分不同的学生。
2.2 查询信息用户可以通过学号或姓名查询特定学生的信息。
系统会根据用户提供的查询条件,在学生信息数据库中查找匹配的学生记录,并将结果显示给用户。
2.3 修改信息用户可以修改已录入学生的信息,包括姓名、性别、年龄、班级等。
系统会根据用户提供的学号,在学生信息数据库中找到相应的学生记录,并将其修改为用户输入的新信息。
2.4 删除信息用户可以根据学号删除某个学生的信息。
系统会在学生信息数据库中找到匹配的学生记录,并将其从数据库中删除。
3. 使用方法学生信息管理系统的使用方法如下:3.1 编译和运行程序首先,需要将C源代码编译成可执行文件。
在命令行中输入以下命令:gcc main.c -o student_system然后,运行编译得到的可执行文件:./student_system3.2 界面操作系统运行后,会显示一个简单的命令行界面,用户可以通过键盘输入指定的命令来执行相应的操作。
以下是系统支持的命令列表:•add:录入学生信息•search:查询学生信息•modify:修改学生信息•delete:删除学生信息•exit:退出系统用户可以根据提示输入相应的命令,并按下回车键确认。
系统会根据用户输入执行相应的操作,然后返回到命令行界面,等待下一次输入。
4. 实现细节学生信息管理系统的实现细节如下:4.1 数据存储系统使用文件来持久化存储学生信息。
每个学生的信息被保存在一个独立的记录中,记录之间使用换行符进行分隔。
c语言学生学籍管理系统设计与说明 (2)
学生学籍管理系统设计与说明简介学生学籍管理系统是一种方便高效的管理工具,帮助学校和教育机构管理学生的基本信息、课程成绩、考勤情况等数据。
本文档将介绍设计与实现一个C语言学生学籍管理系统的过程及其功能。
功能学生学籍管理系统主要包括以下功能:1.学生信息管理:记录学生的基本信息,如学号、姓名、年龄、性别等;2.课程管理:记录学生所选修的课程信息,如课程名称、学分、任课教师等;3.成绩管理:记录学生的课程成绩,包括平时成绩和考试成绩,并计算学生的总评成绩;4.考勤管理:记录学生的考勤情况,包括出勤次数、请假次数、迟到次数等;5.统计功能:对学生的成绩、考勤等数据进行统计和分析,生成相应报表。
数据结构设计在C语言中,可以使用结构体来表示和组织学生学籍管理系统的各个数据项。
以下是一个示例的数据结构设计:// 定义学生结构体struct Student {int id; // 学号char name[20]; // 姓名int age; // 年龄char gender; // 性别};// 定义课程结构体struct Course {char name[20]; // 课程名称float credits; // 学分char teacher[20]; // 任课教师};// 定义成绩结构体struct Grade {float dailyScore; // 平时成绩float examScore; // 考试成绩float overallScore;// 总评成绩};// 定义考勤结构体struct Attendance {int attendanceCount; // 出勤次数int leaveCount; // 请假次数int lateCount; // 迟到次数};系统设计与实现学生学籍管理系统的设计与实现可以采用模块化的思路来进行。
1.学生信息管理模块:实现学生信息的录入、查询、修改和删除等功能。
c学籍管理系统
2、基本管理功能:(1)添加:增加一个同学的记录到管理系统中。
(2)查询:可以根据姓名或学号查找某人的相关信息,若找到则显示其信息。
(3)修改:在管理系统中修改一个同学的记录。
(4)保存:将所有学生学籍信息保存在一个文件中(数据库文件或普通的文本文件)。
(5)读取:从文件中读取已保存了数据。
(6)删除:从管理系统中删除一条记录。
(7)恢复:能恢复被删除的记录。
(8)统计:(A)计算各门课程全班平均成绩及总成绩;(B)统计其课程全班得:100分、90?99分、80?89分、70?79分、60?69分、59分以下学生人数及全班总人数的百分比;(C)以表格形式打印全部学生的平均成绩(•包括各课总的平均成绩)。
(9)其他:可以根据自己的思路设计其他功能。
PS:我们报告是手写的,所以报告没有弄上来,不过源程序大家可以看一下,下面是运行的界面剩下的功能大家自己试吧,这里就不截图了。
源程序:(头文件#include ""和主函数int main(int argc, char* argv[])是建工程时自带的,把之前的清掉后直接复制即可)#include ""#include<iostream>#include<fstream>#include<cmath>#include<string>#include<>#include<>#include<iomanip>using namespace std;int n=0,u=0;intnumber[5][6]={{0},{0},{0},{0},{0}};ame>>j[i].num>>j[i].sex>>j[i].shuxue>>j[i].wuli>>j[i]. huaxue>>j[i].yingyu>>j[i].wangluo;cout<<'\n';system("cls");}}void add_massage(int m,Studentj[])ame>>j[i].num>>j[i].sex>>j[i].shuxue>>j[i].wuli>>j[i].huaxue>>j[i].yingyu>>j[i].wan gluo;system("cls");}n=n+m;}void change_data(int m,Student j[])ame>>j[m-1].num>>j[m-1].sex>>j[m-1].shuxue>>j[m-1].wuli>>j[m-1].huaxue>>j[m-1].yingyu>>j[m-1].wangluo;system("cls");cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl <<"修改成功^_^,按任意键返回主菜单。
c语言程序设计学生学籍管理系统
c语言程序设计学生学籍管理系统一、引言学籍管理系统是一个非常实用的系统,它可以方便地管理学生的信息,包括学生的基本信息、选课信息、成绩信息等。
本文将介绍如何使用C语言编写一个学籍管理系统。
二、系统设计1. 学生信息的录入在系统中,需要录入学生的基本信息,包括学号、姓名、性别、年龄、班级等。
在录入学生信息时,需要进行输入校验,确保输入的信息符合规范。
2. 选课信息的录入在系统中,需要录入学生的选课信息,包括选课的课程名称、授课教师、上课时间、上课地点等。
在录入选课信息时,需要进行输入校验,确保输入的信息符合规范。
3. 成绩信息的录入在系统中,需要录入学生的成绩信息,包括学生的学号、课程名称、成绩等。
在录入成绩信息时,需要进行输入校验,确保输入的信息符合规范。
4. 学生信息的查询在系统中,可以根据学生的学号或姓名查询学生的基本信息、选课信息、成绩信息等。
5. 学生信息的修改在系统中,可以修改学生的基本信息、选课信息、成绩信息等。
6. 学生信息的删除在系统中,可以删除学生的基本信息、选课信息、成绩信息等。
三、系统实现1. 学生信息的录入在系统中,可以使用结构体来存储学生的基本信息、选课信息、成绩信息等。
在录入学生信息时,可以使用scanf函数进行输入,使用文件操作函数将学生信息保存到文件中。
2. 选课信息的录入在系统中,可以使用结构体来存储选课信息。
在录入选课信息时,可以使用scanf 函数进行输入,使用文件操作函数将选课信息保存到文件中。
3. 成绩信息的录入在系统中,可以使用结构体来存储成绩信息。
在录入成绩信息时,可以使用scanf 函数进行输入,使用文件操作函数将成绩信息保存到文件中。
4. 学生信息的查询在系统中,可以使用文件操作函数将学生信息、选课信息、成绩信息等从文件中读取出来,然后根据学生的学号或姓名查询相应的信息。
5. 学生信息的修改在系统中,可以使用文件操作函数将学生信息、选课信息、成绩信息等从文件中读取出来,然后根据学生的学号或姓名修改相应的信息。
学生学籍管理系统
学生学籍管理系统:让管理更高效,让成长更无忧一、系统概述学生学籍管理系统是一款针对学校教育管理需求而设计的软件,旨在提高学籍管理效率,确保学生信息准确无误,为学生的成长提供有力支持。
系统采用先进的技术手段,实现了对学生基本信息的录入、查询、修改、统计等功能,让学籍管理变得更加便捷、高效。
二、系统功能模块1. 学生信息管理学生信息管理模块涵盖了学生从入学到毕业的全过程,包括基本信息、家庭情况、学习经历等。
系统支持批量导入、导出学生信息,方便学校进行数据备份和恢复。
2. 学籍异动管理学籍异动管理模块主要包括转学、休学、复学、退学等业务处理。
系统实时记录学生学籍变动情况,确保学籍信息准确无误。
3. 成绩管理成绩管理模块对学生各科成绩进行汇总、分析,成绩单、排名等报表。
教师可根据成绩数据,有针对性地制定教学计划,提高教学质量。
4. 考勤管理考勤管理模块实时记录学生出勤情况,包括请假、迟到、早退等。
系统可自动考勤报表,便于学校和家长了解学生出勤状况。
5. 奖惩管理奖惩管理模块记录学生在校期间的奖励和处罚情况,有助于学校全面了解学生表现,为评定奖学金、荣誉称号等提供依据。
6. 毕业管理毕业管理模块负责处理学生毕业相关事宜,包括毕业资格审核、毕业证书打印等。
系统自动统计毕业生信息,为学校提供决策支持。
三、系统优势1. 高效性:学生学籍管理系统简化了学籍管理流程,提高了工作效率,降低了人力成本。
2. 准确性:系统采用严谨的数据校验机制,确保学生信息准确无误。
3. 安全性:系统具备完善的安全防护措施,保障学生信息安全。
4. 易用性:界面简洁,操作便捷,易于上手。
5. 可扩展性:系统可根据学校需求进行定制开发,满足不同场景的使用需求。
四、用户体验优化1. 互动性强:学生学籍管理系统提供了师生互动平台,教师可以及时反馈学生在校表现,家长也能通过系统了解孩子学习动态,形成家校共育的良好氛围。
2. 个性化服务:系统支持个性化设置,用户可以根据自己的喜好调整界面风格,实现个性化服务。
c语言学生信息管理系统
C语言学生信息管理系统简介本文档介绍了一个基于C语言的学生信息管理系统的设计和实现。
该系统可以实现学生信息的添加、删除、修改和查询等功能,同时支持将学生信息保存到文件中,以便后续的读取和操作。
功能需求系统具备以下功能:1.添加学生信息:输入学生的姓名、年龄、性别等基本信息,并分配一个唯一的学号。
2.删除学生信息:根据学号删除指定学生的信息。
3.修改学生信息:根据学号修改指定学生的信息,可选择修改姓名、年龄、性别等内容。
4.查询学生信息:根据学号或姓名查询学生信息,并输出学生的基本信息。
5.保存学生信息:将所有学生的信息保存到文件中,以便下次系统启动时读取。
系统设计数据结构设计学生信息可以使用结构体来表示,定义如下:typedef struct {char name[50]; // 姓名int age; // 年龄char gender[10]; // 性别int id; // 学号} Student;功能设计系统的主界面提供以下功能选项:1. 添加学生信息2. 删除学生信息3. 修改学生信息4. 查询学生信息5. 保存学生信息0. 退出系统添加学生信息用户选择该功能后,系统提示用户输入学生的姓名、年龄、性别等信息,并自动生成一个唯一的学号。
系统将输入的学生信息保存在一个学生数组中。
删除学生信息用户选择该功能后,系统提示用户输入要删除的学生的学号。
系统在学生数组中查找对应学号的学生信息,并将其删除。
修改学生信息用户选择该功能后,系统提示用户输入要修改的学生的学号。
系统在学生数组中查找对应学号的学生信息,并提示用户选择要修改的内容(如姓名、年龄、性别),然后根据用户的输入修改相应的字段。
查询学生信息用户选择该功能后,系统提示用户输入要查询的学生的学号或姓名。
系统在学生数组中查找对应学号或姓名的学生信息,并输出学生的基本信息。
保存学生信息用户选择该功能后,系统将所有学生的信息保存到一个文件中,以便下次系统启动时读取。
学籍信息管理系统c语言
学籍信息管理系统c语言学籍信息管理系统(C语言)是一种在学校或教育机构中使用的软件工具,用于管理和维护学生的个人和学业信息。
这一系统的主要功能包括学生信息的录入、查询、修改和删除,课程信息的管理和调整,成绩统计和报告生成等。
下面将逐步回答有关学籍信息管理系统(C语言)的问题。
第一步:什么是学籍信息管理系统(C语言)?学籍信息管理系统是一种基于C语言开发的软件工具,用于学校或教育机构对学生的个人和学业信息进行管理的系统。
它采用了C语言作为开发语言,便于实现系统的高效性和可靠性。
通过该系统,学校可以方便地对学生的信息进行录入、查询、修改和删除等操作,同时还可以对课程信息进行管理和调整,统计和生成成绩报告等。
第二步:学籍信息管理系统(C语言)的主要功能有哪些?学籍信息管理系统(C语言)具有较为完善的功能,主要包括以下几个方面:1. 学生信息管理:该系统允许学校录入学生的个人信息,如姓名、年龄、性别、出生日期等,并对这些信息进行存储和管理。
同时,系统还支持学生信息的查询、修改和删除等操作,保证学生信息的及时更新和正确性。
2. 课程信息管理:学籍信息管理系统允许学校对课程信息进行管理和调整。
学校可以录入和存储课程信息,如课程名称、授课教师、课程时间等。
通过系统,学校可以方便地对课程进行调整,如修改课程时间、更换授课教师等。
3. 成绩管理:学籍信息管理系统可以对学生的成绩进行统计和管理。
学校可以录入学生的考试成绩,并通过系统生成成绩报告。
系统还支持成绩查询功能,方便学生和教师查看和分析成绩情况。
4. 数据备份和恢复:学籍信息管理系统还提供了数据备份和恢复功能,确保系统数据的安全性和可靠性。
学校可以定期对系统数据进行备份,以防止数据丢失或损坏。
同时,系统也支持数据的恢复操作,方便在数据丢失情况下进行数据恢复。
第三步:学籍信息管理系统(C语言)的实现原理是什么?学籍信息管理系统(C语言)的实现原理主要包括以下几个方面:1. 数据结构:系统需要合理的数据结构来存储学生和课程信息,如使用链表、数组等数据结构进行数据的存储和管理。
C语言课设之学生学籍管理系统
C语言课设之学生学籍管理系统学生学籍管理系统是一个用于管理学生学籍信息的软件系统。
它主要用于管理学生的基本信息、课程信息、成绩信息以及其他相关信息。
学生学籍管理系统是对学生学籍信息进行综合管理和统计分析的重要工具。
它能够为学院、学校、教师、学生和家长提供便利,实现信息共享,促进教学管理工作的科学化和信息化。
一、需求分析学生学籍管理系统的需求分析主要包括以下几个方面:1.系统功能需求(1)学生基本信息管理:包括学生的基本资料、考籍信息、入学时间、家庭信息等。
(2)课程信息管理:包括课程名称、授课教师、上课时间和地点等。
(3)成绩管理:包括期中成绩、期末成绩和平时成绩等。
(4)教师管理:包括教师的基本资料、授课信息、联系方式等。
(5)系统管理:包括用户权限管理、数据备份、数据恢复等。
(1)系统应该稳定可靠,能够正常运行,并保证数据的准确性和完整性。
(2)系统应该具备良好的响应速度,确保用户的使用顺畅。
(3)系统应该具备较高的安全性,能够保护用户的隐私信息。
3.用户需求(1)方便快捷地查询学生的学籍信息,并能够修改、添加、删除学生信息。
(2)能够快速查询课程信息和成绩信息。
(3)提供数据报表和统计分析功能,以便教师、学生和家长进行综合分析和评估。
二、系统设计1.学生信息管理模块该模块用于管理学生的基本信息、课程信息、成绩信息以及其他相关信息。
包括学生的姓名、学号、性别、年龄、所选课程、考试成绩等信息。
该模块用于管理课程信息,包括课程名称、授课教师、上课时间和地点等信息。
该模块还可以通过查询功能,快速查询某一课程的授课教师及上课时间等信息。
3.成绩管理模块该模块用于管理学生的成绩信息。
包括期中成绩、期末成绩和平时成绩等信息。
通过该模块,教师可以快速查询学生的成绩信息,同时还可以将成绩信息导出成绩报表。
该模块用于管理系统的用户权限、数据备份和恢复等管理工作。
管理员可以通过该模块对用户进行管理,对数据进行备份和恢复工作,确保系统安全可靠。
C语言课设之学生学籍管理系统
题目:学生学籍管理系统目录:一.个人简介。
二.报告摘要。
三.报告目录。
四.报告正文。
1、系统需求分析2、系统总体设计3、系统详细设计六.总结。
二.报告摘要这个C语言课程设计是关于学生学籍管理系统的设计,题目要求能够录入数据,查询,删除和排序的功能。
报告依次以主函数板块、数据录入板块、查询板块、删除板块、排序板块的顺序进行。
三.报告目录1 主函数2 数据录入3 查询4 删除5 排序四.报告正文1 系统需求分析根据题目需求,在程序中要求浏览学生的信息,应该提供数据录入、查询、删除、排序的操作。
题目要求实得成绩、实得学分根据条件自动运算,应该提供求综合成绩和实得学分的算法,另外还应该提供键盘式选择菜单实现功能选择。
2 系统总体设计3 系统详细设计(1)主函数负责提供输入、处理和输出部分的函数调用,其中各功能模块用菜单方式选择。
程序:void menu(){int n,w;do{puts("\t\t****************MENU******************\n\n");puts("\t\t\t\t1.enter new data-student");puts("\t\t\t\t2.search by name");puts("\t\t\t\t3.search by learn number");puts("\t\t\t\t4.delete data");puts("\t\t\t\t5.insert data");puts("\t\t\t\t6.enter new data-sorce");puts("\t\t\t\t6.exit");puts("\n\n\t\t************************************\n");printf("choice your number(1-9):[]\\b\b");scanf("%d",&n);if(n<1||n>9){w1=1;getchar();}else w1=0;}while(w1==1);switch(n){case 1:enter();breakcase 2:search by name();break;case 3:search by learn number();break;case 4:del();break;case 5:insert():break;case 6:exit(0);break;}}main(){menu();}(2)数据录入板块数据信息中学号、姓名等是字符型,采用字符型数组,分数、号码、等为整数,可以采用整型数组,实得学分可能为小数,采用实型。
C语言-学生学籍管理系统
#include<stdlib.h>#include<string.h>#include<stdio.h>#define N 100struct student{char no[9];char name[25];char sex[10];int age;char jiguan[25];char zhuanye[25];int ban;}stu[N];int load(){FILE *fp;int i;if ((fp=fopen("results.txt","rb"))==NULL){printf("文件打开错误");return 0;}for (i=0;!feof(fp);i++)fread(&stu[i],sizeof(struct student),1,fp);fclose(fp);return(i-1);}void save(int n){int i;FILE *fp;if ((fp=fopen("results.txt","wb"))==NULL){printf("文件打开错误:");}for (i=0;i<n;i++)fwrite(&stu[i],sizeof(struct student),1,fp);fclose(fp);}void read(){int n,m;printf("学号\t姓名\t性别\t年龄\t籍贯\t专业\t班级\n");for (m=0;m<n;m++){printf("%s",stu[m].no);printf("\t%s",stu[m].name);printf("\t%s",stu[m].sex);printf("\t%d",stu[m].age);printf("\t%s",stu[m].jiguan);printf("\t%s",stu[m].zhuanye);printf("\t%d",stu[m].ban);printf("\n");}}void zengjia(){int n,m,j,i;n=load();printf("输入你想要增加多少个学生信息");scanf("%d",&m);for (i=0;i<m;i++){printf("\n学号:");scanf("%s",stu[n+i].no);printf("姓名:");scanf("%s",stu[n+i].name);printf("性别:");scanf("%s",stu[n+i].sex);printf("年龄:");scanf("%d",&stu[n+i].age);printf("籍贯:");scanf("%s",stu[n+i].jiguan);printf("专业:");scanf("%s",stu[n+i].zhuanye);printf("班级:");scanf("%d",&stu[n+i].ban);}printf("输入完成");save(n+m);}{FILE *fp;int i,m;if ((fp=fopen("results.txt","wb"))==NULL){printf("文件打开错误!\n");exit(1);}printf("你想要录入多少个学生信息?");scanf("%d",&m);for (i=0;i<m;i++){printf("\n学号:");scanf("%s",stu[i].no);printf("姓名:");scanf("%s",stu[i].name);printf("性别:");scanf("%s",stu[i].sex);printf("年龄:");scanf("%d",&stu[i].age);printf("籍贯:");scanf("%s",stu[i].jiguan);printf("专业:");scanf("%s",stu[i].zhuanye);printf("班级:");scanf("%d",&stu[i].ban);}for (i=0;i<m;i++)fwrite(&stu[i],sizeof(struct student),1,fp);fclose(fp);}void xingming(){int meau();int n,i;char m[9];n=load();printf("欢迎使用姓名查找功能,请输入你需要查找的学生的姓名:");scanf("%s",&m);for (i=0;i<n;i++)if (!strcmp(stu[i].name,m))printf("学号\t姓名\t性别\t年龄\t籍贯\t专业\t班级\n");printf("%s",stu[i].no);printf("\t%s",stu[i].name);printf("\t%s",stu[i].sex);printf("\t%d",stu[i].age);printf("\t%s",stu[i].jiguan);printf("\t%s",stu[i].zhuanye);printf("\t%d\n",stu[i].ban);}}void xuehao(){int meau();int n,i;char m[9];n=load();printf("欢迎使用学号查找功能,请输入你需要查找的学生的学号:");scanf("%s",&m);for (i=0;i<n;i++)if (!strcmp(stu[i].no,m)){printf("学号\t姓名\t性别\t年龄\t籍贯\t专业\t班级\n");printf("%s",stu[i].no);printf("\t%s",stu[i].name);printf("\t%s",stu[i].sex);printf("\t%d",stu[i].age);printf("\t%s",stu[i].jiguan);printf("\t%s",stu[i].zhuanye);printf("\t%d\n",stu[i].ban);}}void find(){int meau();int n;printf("请选择你要的功能:1)学号查找2)姓名查找\n");printf("你选择的功能是:");scanf("%d",&n);switch (n){xuehao();break;case 2:xingming();break;default :printf("选择的功能错误\n输入任意键返回查找");int getch();find();break;}}void change(){int meau();FILE *fp;int n,i,j;char m[9];n=load();printf("欢迎使用修改功能,输入你要修改学生的学号:");scanf("%s",&m);for (i=0;i<n;i++)if (!strcmp(stu[i].no,m)){printf("你要修改的项目:1)学号2)姓名3)性别4)年龄5)籍贯6)专业7)班级\n");printf("你选择的功能是:");scanf("%d",&j);switch (j){case 1:printf("输入你修改后的学号:");scanf("%s",stu[i].no);break;case 2:printf("输入你修改后的姓名:");scanf("%s",stu[i].name);break;case 3:printf("输入你修改后的性别:");scanf("%s",stu[i].sex);break;case 4:printf("输入你修改后的年龄:");scanf("%d",&stu[i].age);break;case 5:printf("输入你修改后的籍贯:");scanf("%s",stu[i].jiguan);break;case 6:printf("输入你修改后的专业:");scanf("%s",stu[i].zhuanye);break;case 7:printf("输入你修改后的班级:");scanf("%d",&stu[i].ban);break;default :printf("选择的功能错误\n");int getch();change();break;}save(n);}}void tongji_1(){int n,m,i,sum=0;n=load();printf("输入你要统计的年龄:");scanf("%d",&m);printf("学号\t姓名\t性别\t年龄\t籍贯\t专业\t班级\n");for (i=0;i<n;i++)if (stu[i].age==m){printf("%s",stu[i].no);printf("\t%s",stu[i].name);printf("\t%s",stu[i].sex);printf("\t%d",stu[i].age);printf("\t%s",stu[i].jiguan);printf("\t%s",stu[i].zhuanye);printf("\t%d\n",stu[i].ban);sum++;}printf("%d岁的学生共有%d个\n",m,sum);}void tongji_2(){int n,i,sum=0;char m[25];n=load();printf("输入你要统计的籍贯:");scanf("%s",&m);printf("学号\t姓名\t性别\t年龄\t籍贯\t专业\t班级\n");for (i=0;i<n;i++)if (!strcmp(m,stu[i].jiguan)){printf("%s",stu[i].no);printf("\t%s",stu[i].name);printf("\t%s",stu[i].sex);printf("\t%d",stu[i].age);printf("\t%s",stu[i].jiguan);printf("\t%s",stu[i].zhuanye);printf("\t%d\n",stu[i].ban);sum++;}printf("%s籍贯的学生共有%d个\n",m,sum);}void tongji_3(){int n,i,sum=0;char m[25];n=load();printf("输入你要统计的专业:");scanf("%s",&m);printf("学号\t姓名\t性别\t年龄\t籍贯\t专业\t班级\n");for (i=0;i<n;i++)if (!strcmp(m,stu[i].zhuanye)){printf("%s",stu[i].no);printf("\t%s",stu[i].name);printf("\t%s",stu[i].sex);printf("\t%d",stu[i].age);printf("\t%s",stu[i].jiguan);printf("\t%s",stu[i].zhuanye);printf("\t%d\n",stu[i].ban);sum++;}printf("%s专业的学生共有%d个/n",m,sum);}void tongji_4(){int n,m,i,sum=0;n=load();printf("输入你要统计的班级:");scanf("%d",&m);printf("学号\t姓名\t性别\t年龄\t籍贯\t专业\t班级\n");for (i=0;i<n;i++)if (stu[i].ban==m){printf("%s",stu[i].no);printf("\t%s",stu[i].name);printf("\t%s",stu[i].sex);printf("\t%d",stu[i].age);printf("\t%s",stu[i].jiguan);printf("\t%s",stu[i].zhuanye);printf("\t%d\n",stu[i].ban);sum++;}printf("%d班的学生共有%d个\n",m,sum);}void tongji(){int n,m,i;n=load();printf("欢迎使用统计功能,你想统计的项目是:1) 年龄2) 籍贯3) 专业4) 班级\n");printf("输入你想选择的功能:");scanf("%d",&m);switch (m){case 1:tongji_1();break;case 2:tongji_2();break;case 3:tongji_3();break;case 4:tongji_4();break;default :printf("选择的功能错误\n");int getch();tongji();break;}}void shanchu(){int n,i,j;char m[9];n=load();printf("输入你要删除资料学生的学号");scanf("%s",&m);for (i=0;i<n;i++)if (!strcmp(stu[i].no,m))break;for (j=i;j<n-1;j++){strcpy(stu[j].no,stu[j+1].no);strcpy(stu[j].name,stu[j+1].name);stu[j].age=stu[j+1].age;strcpy(stu[j].jiguan,stu[j+1].jiguan);strcpy(stu[j].zhuanye,stu[j+1].zhuanye);strcpy(stu[j].sex,stu[j+1].sex);stu[j].ban=stu[j+1].ban;}save(n-1);}void menu(){int n;system("cls");printf("\n\t\t*******************************************\n"); printf("\n\t\t*******************************************\n"); printf("\t\t\t\t欢迎使用\n");printf("\t\t功能列表:\n");printf("\n\n\t\t1)录入新的学生资料");printf("\n\n\t\t2)查找学生");printf("\n\n\t\t3)删除学生资料");printf("\n\n\t\t4)修改学生资料");printf("\n\n\t\t5)分析统计学生资料");printf("\n\n\t\t6)查看学生资料");printf("\n\n\t\t7)增加学生资料");printf("\n\n\t\t8)退出系统");printf("\n\t\t*******************************************\n"); printf("\n\t\t*******************************************\n"); printf("想选择的功能:");scanf("%d",&n);while (n>8||n<1){printf("输入错误的功能,请重新输入功能选项:");scanf("%d",&n);}switch (n){case 1:add();break;case 2:find();break;case 3:shanchu();break;case 4:change();break;case 5:tongji();break;case 6:read();break;case 7:zengjia();break;case 8:break;}}void main() {menu();}。
C语言程序报告学生学籍信息管理系统
C语言程序报告学生学籍信息管理系统学生学籍信息管理系统报告一、引言学生学籍信息管理系统是为了高效管理学生的学籍信息而开发的一款软件系统。
该系统包括学生信息的录入、查询、修改、删除等功能,为学校提供了便利的学籍信息管理方式。
本报告将对该系统的设计思路、功能模块和技术实现进行详细介绍。
二、系统设计思路学生学籍信息管理系统的设计思路主要包括以下几个方面:1.模块化设计:将系统按照不同的功能划分为若干个模块,每个模块负责处理特定的功能。
这样设计可以提高系统的可维护性和可扩展性。
2.数据管理:系统利用数据库来存储学生的学籍信息,包括学号、姓名、性别、年龄、班级等基本信息。
数据库的使用可以方便地进行数据存储和查询,提高系统的数据管理效率。
3.用户权限管理:系统设置了不同的用户权限,包括管理员、教师和学生等。
管理员具有最高权限,可以进行信息的录入、修改、查询和删除等操作;教师可以进行信息的查询和修改操作;学生只能查询自己的信息。
三、系统功能模块学生学籍信息管理系统主要包括以下几个功能模块:1.学生信息录入模块:管理员可以通过该模块录入学生的学籍信息,包括学号、姓名、性别、年龄、班级等。
系统会对学生的学号进行唯一性校验,防止重复录入。
2.学生信息查询模块:管理员、教师和学生可以通过该模块查询学生的学籍信息。
查询可以按照学号、姓名、班级等条件进行,系统会返回符合条件的学生信息。
3.学生信息修改模块:管理员和教师可以通过该模块修改学生的学籍信息,包括姓名、年龄、班级等。
修改操作会对学生的学号进行校验,确保修改的学生存在。
4.学生信息删除模块:管理员可以通过该模块删除学生的学籍信息。
删除操作会对学生的学号进行校验,确保删除的学生存在。
四、技术实现学生学籍信息管理系统使用C语言进行开发,主要依赖以下技术实现:1.数据结构:系统使用链表的数据结构来存储学生的学籍信息。
链表可以方便地进行插入、删除和查找操作,提高系统的运行效率。
【精品】C语言课程设计--学生学籍管理系统
【精品】C语言课程设计--学生学籍管理系统【精品】C语言课程设计--学生学籍管理系统概述:《C语言课程设计--学生学籍管理系统》是一个以C 语言实现的学生学籍管理系统,可以帮助管理员管理学生学籍信息,并且可以对学生成绩、考试情况等进行统计分析。
本系统可以提供学生和管理员完善的学籍信息管理系统,为学校管理提供可靠的信息支撑和改进校园教育质量提供有力的保障。
系统功能:1. 管理员登录功能:系统采用用户名/密码的形式进行管理员登录,登录后可以使用系统的所有功能。
2. 学生学籍管理功能:可以查看、新增、修改、删除学生的学籍信息,包括学号、姓名、性别、出生日期、入学日期、学院、专业、班级等。
3. 成绩管理功能:可以查看、新增、修改、删除学生的成绩信息,包括学号、课程名称、成绩、考试日期等。
4. 考试管理功能:可以查看、新增、修改、删除学生的考试信息,包括学号、课程名称、考试时间等。
5. 数据统计分析功能:可以统计分析学生的学习情况,如成绩分布、考试情况等,为学校管理提供可靠的信息支撑和改进校园教育质量提供有力的保障。
6. 其他功能:系统还可以实现其他功能,如数据备份、权限管理等,以保证学籍信息的安全性。
系统实现:实现本系统需要采用C语言编程,主要包括以下内容:1. 编写一个管理员登录的程序,使用用户名/密码的形式进行管理员登录,登录后可以使用系统的所有功能。
2. 编写一个学生学籍管理的程序,实现学生的学籍信息的查看、新增、修改、删除等功能。
3. 编写一个成绩管理的程序,实现学生的成绩信息的查看、新增、修改、删除等功能。
4. 编写一个考试管理的程序,实现学生的考试信息的查看、新增、修改、删除等功能。
5. 编写一个数据统计分析的程序,实现对学生的学习情况的统计分析,如成绩分布、考试情况等。
6. 编写一个备份和恢复的程序,实现学籍信息的备份和恢复,以保证学籍信息的安全性。
7. 编写一个权限管理的程序,实现不同用户的权限管理,以保证学籍信息的安全性。
C语言学生信息管理系统(完整版)
#define PRINT0 printf("name:%s\nsex:%s\nage:%d\nID_card:%d\naddress:%s\n",st[i].name,st[i].sex,st[i].age,st[i] .ID_card,st[i].addr)#define PRINT1 printf("prefession:%s\nstudent_number:%d\n*****score*****\nwuli:%d\n",st[i].prefession,st[i] .student_number,st[i].score.wuli)#define PRINT2 printf("gaoshu:%d\nyingyu:%d\ntiyu:%d\naverage: %d\n",st[i].score.gaoshu,st[i].score.yingyu,st[i ].score.tiyu,st[i].score.aver)#define print1 printf("________________________________")#define N 2#include "string.h"#include "stdio.h"int sum=0;struct score{int wuli;int gaoshu;int yingyu;int tiyu;int aver;};struct message{ char name[10];int age;char sex[5];int ID_card;char addr[30];char prefession[30];int student_number;struct score score;}st[100];/*************write message*************/write_message(){ int flag;char chioce;do{system("cls");flag=2; sum++;printf("_______________________________");printf("please input student's message:\n");printf("\n");print1;printf("%dth student message:",sum);print1;printf("\nname:");scanf("%s",st[sum].name);printf("\nsex:");scanf("%s",st[sum].sex);printf("\nage:");scanf("%d",&st[sum].age);printf("\nID_card:");scanf("%d",&st[sum].ID_card);printf("\naddress:");scanf("%s",st[sum].addr);printf("\nprefession:");scanf("%s",st[sum].prefession);printf("\nschool number:");scanf("%d",&st[sum].student_number);printf("\n*****score******\n");printf("wuli:");scanf("%d",&st[sum].score.wuli);printf("\ngaoshu:");scanf("%d",&st[sum].score.gaoshu);printf("\nyingyu:");scanf("%d",&st[sum].score.yingyu);printf("\ntiyu:");scanf("%d",&st[sum].score.tiyu);printf("\naverage:");scanf("%d",&st[sum].score.aver);do{printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");getchar();scanf("%c",&chioce);printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}else if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);save_message();}/*************save message****************/save_message(){ FILE *fp;int i;if((fp=fopen("student.txt","wb"))==NULL){printf("read error \n");printf("press any key back to menu\n");getch();exit(1);}for(i=0;i<sum;i++)if(fwrite(&st[i],sizeof(struct message),1,fp)!=1){printf("write error\n");fclose(fp);}fclose(fp);printf("\n********___OK!___**********\n___press any key back___");sum=i;bioskey(0);}/***************add message*****************/add_message(){int i,j,flag; char chioce;i=0;j=sum-1;flag=0;do{ system("cls");i++; j++;print1;printf("add %dth student's meaasge\n",i);print1;printf("\nname:");scanf("%s",st[j].name);printf("\nsex:");scanf("%s",st[j].sex);printf("\nage:");scanf("%d",&st[j].age);printf("\nID_card:");scanf("%d",&st[j].ID_card);printf("\naddress:");scanf("%s",st[j].addr);printf("\nprefession:");scanf("%s",st[j].prefession);printf("\nstudent_number:");scanf("%d",&st[j].student_number);printf("\n*****score******\n");printf("wuli:");scanf("%d",&st[j].score.wuli);printf("\ngaoshu:");scanf("%d",&st[j].score.gaoshu);printf("\nyingyu:");scanf("%d",&st[j].score.yingyu);printf("\ntiyu:");scanf("%d",&st[j].score.tiyu);printf("\naverage:");scanf("%d",&st[j].score.aver);printf("\n\nweather add %dth student's message: \n",i+1);do{printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");getchar();scanf("%c",&chioce);printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}else if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;}while(1);}while(flag==1);sum=j+1;save_message();}/**********inqiure message******/inqiure_message(){int chioce;do{system("cls");printf("**********choose 0-3**********\n\n\n");printf(" 1:name inquire\n\n\n");printf(" 2:IDcard inqiure\n\n\n");printf(" 3:student_number\n \n\n");printf(" 0:back menu\n\n\n");scanf("%d",&chioce);switch(chioce){case 1: name_inqiure();break;case 2: ID_card_inqiure();break;case 3: grade_inqiure();break;case 0:break;}}while(chioce!=0);}/**********name inqiure*********/name_inqiure(){char NAME[30];int i; int flag,k;char chioce;do{ system("cls");k=0;printf("please input the message you inqiure");printf("\nname:");scanf("%s",NAME);getchar();printf("\n");for(i=0;i<sum;i++){if(strcmp(st[i].name,NAME)==0){PRINT0;PRINT1;PRINT2;k=1;}}if(k==0) printf("without message you inqiure\n");do{ printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");scanf("%c",&chioce); getchar();printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);printf("press any key return to menu");bioskey(0);}/**********IDcard inqiure*********/ID_card_inqiure(){int card;int i; int flag,k;char chioce;do{ clrscr(); k=0;printf("please input the message you inqiure");printf("\nIDcard:");scanf("%d",&card);getchar();printf("\n");for(i=0;i<sum;i++){if(st[i].ID_card==card){PRINT0;PRINT1;PRINT2;k=1;}}if(k==0) printf("without message you inqiure\n");do{ printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");scanf("%c",&chioce); getchar();printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);printf("press any key return to menu");bioskey(0);}/*********grade inqiure***********/grade_inqiure(){int GRADE;int i; int flag,k;char chioce;do{ system("cls");k=0;printf("please input the message you inqiure");printf("\nstudent_number:");scanf("%d",&GRADE);getchar();printf("\n");for(i=0;i<sum;i++){if(st[i].student_number==GRADE){PRINT0;PRINT1;PRINT2;k=1;}}if(k==0) printf("without message you inqiure\n");do{ printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");scanf("%c",&chioce); getchar();printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);printf("press any key return to menu");bioskey(0);}/*********change message**********/change_message(){char pre[30],chioce;int i,gra,flag,num,s;s=0;do{system("cls");printf("please input message you want to change\n ");printf("student_number:");scanf("%d",&gra); getchar();for(i=0;i<sum;i++){if(st[i].student_number==gra){PRINT0;PRINT1;PRINT2;printf("\n********input message you want to change********\n");printf("0:name***1:sex***2:age***3:ID_card***4:address***\n5:prefession***6:wuli***7:stud ent_number***8\n:gaoshu***9:yingyu***10:tiyu***11:average***________\n");printf("choose 0-11\n");scanf("%d",&num); getchar();switch(num){case 0: printf("input the name changed\n");scanf("%s",st[i].name); getchar(); break;case 1: printf("input the sex changed\n");scanf("%s",st[i].sex); getchar(); break;case 2: printf("input the age changed\n");scanf("%d",&st[i].age); getchar(); break;case 3: printf("input the ID_card changed\n");scanf("%d",&st[i].ID_card); getchar(); break;case 4: printf("input the address changed\n");scanf("%s",st[i].addr); getchar(); break;case 5: printf("input the prefession changed\n");scanf("%s",st[i].prefession); getchar(); break;case 6: printf("input the wuli_score changed\n");scanf("%d",&st[i].score.wuli); getchar(); break;case7: printf("input the student_number changed\n");scanf("%d",&st[i].student_number); getchar(); break;case 8: printf("input the gaoshu_score changed\n");scanf("%d",&st[i].score.gaoshu); getchar(); break;case 9: printf("input the yingyu_score changed\n");scanf("%d",&st[i].score.yingyu); getchar(); break;case 10: printf("input the tiyu_score changed\n");scanf("%d",&st[i].score.tiyu); getchar(); break;case 11: printf("input the average_score changed\n");scanf("%d",&st[i].score.aver); getchar(); break;default: printf("input error\n"); break;}printf("\n*********the changed message*********\n\n");PRINT0;PRINT1;PRINT2;s=1;}}if(s!=1) printf("without message you want to change\n");do{ printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");scanf("%c",&chioce); getchar();printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);save_message();}/*********delete message**********/delete_message(){ int GRADE;int i,j,flag1,flag;char chioce1,chioce2;flag1=3;flag=3;do{ system("cls");printf("please input student's student_number you want to delete\n");printf("student_number:");scanf("%d",&GRADE); getchar();for(i=0;i<sum;i++)if(st[i].student_number==GRADE){do{PRINT0;PRINT1;PRINT2;printf("\n******************************\n_________________ _________________\n");printf("press y/Y deleted:\npress n/N cancel:\n");scanf("%c",&chioce1);getchar();system("cls");if(chioce1=='y'||chioce1=='Y') flag1=1;else if(chioce1=='n'||chioce1=='N') return;else {printf("***input error***\n___press any ker return___\n"); bioskey(0);}}while(flag1!=1);for(j=i;j<sum;j++){ st[j]=st[j+1];flag=2;printf("message was deleted\n");sum-=1; }}if(flag!=2) printf("without message you want to delete\n");do{printf("press y/Y continue:\npress n/N stop:\n");scanf("%c",&chioce2);printf("****************************\n");if(chioce2=='y'||chioce2=='Y') {flag=1; break;}else if(chioce2=='n'||chioce2=='N') {flag=0; break;}else {system("cls");printf("input error\n");}print1;printf("\n");}while(1);}while(flag==1);save_message();}/************insert message*************/insert_message(){ int chioce,flag,i; flag=2;do{system("cls");printf("please input the number of people you insert\n");scanf("%d",&chioce);if(chioce>=sum){printf("xin xi pai zai zui hou ");chioce=sum;}for(i=sum;i>chioce;i--) st[i]=st[i-1];printf("\nplease input message you insert");printf("\nname:");scanf("%s",st[i].name);printf("\nsex:");scanf("%s",st[i].sex);printf("\nage:");scanf("%d",&st[i].age);printf("\nID_card:");scanf("%d",&st[i].ID_card);printf("\naddress:");scanf("%s",st[i].addr);printf("\nprefession:");scanf("%s",st[i].prefession);printf("\ngrade:");scanf("%d",&st[i].student_number);printf("\n*****score******\n");printf("wuli:");scanf("%d",&st[i].score.wuli);printf("\ngaoshu:");scanf("%d",&st[i].score.gaoshu);printf("\nyingyu:");scanf("%d",&st[i].score.yingyu);printf("\ntiyu:");scanf("%d",&st[i].score.tiyu);printf("\naverage:");scanf("%d",&st[i].score.aver);sum+=1;do{printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");getchar();scanf("%c",&chioce);printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}else if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);save_message();}/*********school_number_order***********/grade_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].student_number>st[j].student_number){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("grade order from min to max\n");for(i=0;i<sum;i++){ print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);bioskey(0);}/***********wuli score order***************/wuli_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].score.wuli>st[j].score.wuli){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("wuli score order from min to max\n");for(i=0;i<sum;i++){print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);print1;bioskey(0);}/***********gaoshu score order***************/gaoshu_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].score.gaoshu>st[j].score.gaoshu){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("gaoshu score order from min to max\n");for(i=0;i<sum;i++){print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);print1;bioskey(0);}/***********yingyu score order***************/yingyu_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].score.yingyu>st[j].score.yingyu){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("yingyu score order from min to max\n");for(i=0;i<sum;i++){print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);print1;bioskey(0);}/***********tiyu score order***************/tiyu_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].score.tiyu>st[j].score.tiyu){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("yitu order from min to max\n");for(i=0;i<sum;i++){print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);print1;bioskey(0);}/***********average score order***************/average_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].score.wuli>st[j].score.wuli){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("average score order from min to max\n");for(i=0;i<sum;i++){print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);print1;bioskey(0);}/********order message****************/order_message(){int chioce;do{system("cls");printf("**********choose 0-6**********\n\n");printf(" 1:grade order\n\n");printf(" 2:wuli score order\n\n");printf(" 3:gaoshu score order\n \n");printf(" 4:ying yu score order\n\n");printf(" 5:tiyu score order\n\n");printf(" 6:average score order\n\n");printf(" 0:back menu\n\n");scanf("%d",&chioce);switch(chioce){case 1: grade_order();break;case 2: wuli_order();break;case 3: gaoshu_order();break;case 4: yingyu_order();break;case 5: tiyu_order();break;case 6: average_order();break;case 0:break;}}while(chioce!=0);}/**********answer secretory***********/mima_message(){int flag;char answer[10];char secret[10]="abcd";flag=2;do{system("cls");printf("\n______________________mi ma wei 'abcd'________________\n\n");printf("______________________qing shu ru mi ma:");scanf("%s",answer);getchar();if(strcmp(secret,answer)==0){flag=1;printf("\n\n =====throngh=====\n\n\n");printf("____________________press any key into next:\n");bioskey(0);}else{flag=0;printf("______________________input error:\n");printf("______________________press any key to return:\n");bioskey(0);}}while(flag!=1);}/*********read message****************/read_message(){int i;system("cls");if(sum<=0){ printf("without message\n");getch();return;}for(i=0;i<sum;i++){system("cls");print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;printf("\n********press any key -show the next one********\n ");getch();}printf("________________totle num :%d________________\n",sum); printf("_____________press any key return______________\n"); bioskey(0);}/*************************************/main(){int chioce,flag;mima_message();do{system("cls");chioce=9;printf("**********************************************\n");printf("****welcome to system of managing students****\n");printf("**********************************************\n\n");printf("-------------------choose 0-8-----------------\n\n");printf(" 1:write message\n\n");printf(" 2:add message\n\n");printf(" 3:inqiure name\n\n");printf(" 4:change message\n\n");printf(" 5:insert message\n\n");printf(" 6:order message\n\n");printf(" 7:delete message\n\n");printf(" 8:read messaeg\n\n");printf(" 0:***exit***\n\n");scanf("%d",&chioce);getchar();switch(chioce){case 1: write_message();break;case 2: add_message();break;case 3: inqiure_message();break;case 4: change_message();break;case 5: insert_message();break;case 6: order_message();break;case 7: delete_message();break;case 8: read_message();break;case 0: printf("___sure press y/Y:___\n\n___no sure press n/N:___");scanf("%c",&chioce);getchar();if(chioce=='y'||chioce=='Y') flag=0;else flag=1;break;default : printf("\n ___input error___\n\n");printf("***press any key to go on***\n");getch();break;}}while(flag!=0);save_message();system("cls");printf("\n\n___message was saved___\n\n\n*****file name is student.txt*****\n");bioskey(0);}。
学生信息管理系统C语言编程
学生信息管理系统C语言编程【问题描述】学生信息的管理是每个学校必须具有的管理功能,主要是对学生的基本情况及学习成绩等方面的管理。
该系统模拟一个简单的学生管理系统,要求对文件中所存储的学生数据进行各种常规操作,如:排序、查找、计算、显示等功能。
通过此课题,熟练掌握文件、数组、结构体的各种操作,在程序设计中体现一定的算法思想,实现一个简单的学生信息管理系统。
【基本要求】(1)学生信息包括:学生基本信息文件(student.txt)(注:该文件不需要编程录入数据,可用文本编辑工具直接生成)的内容如下:(2)学生成绩基本信息文件(score.dat)及其内容如下:((注:该文件内容需要编程录入数据,具体做法见下面的要求)学号课程编号课程名称学分平时成绩实验成绩卷面成绩综合成绩实得学分(3)需要实现的功能1)数据录入和计算功能:对score.dat进行数据录入,只录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据,综合成绩、实得学分由程序根据条件自动运算。
综合成绩的计算:如果本课程的实验成绩为-1,则表示无实验,综合成绩=平时成绩*30%+卷面成绩*70%;如果实验成绩不为-1,表示本课程有实验,综合成绩=平时成绩*15%+实验成绩*15%+卷面成绩*70% 。
实得学分的计算:采用等级学分制,综合成绩在90-100之间,应得学分=学分*100%;综合成绩在80-90之间,应得学分=学分*80%;综合成绩在70-80之间 ,应得学分=学分*75%;综合成绩在60-70之间,应得学分=学分*60%;综合成绩在60以下 ,应得学分=学分*0%。
2)查询功能:分为学生基本情况查询和成绩查询两种(1)学生基本情况查询:①、输入一个学号或姓名(可实现选择),查出此生的基本信息并显示输出,格式如下:②、输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。
(格式如上所示)(2)成绩查询:①、输入一个学号时,查询出此生的所有课程情况,格式如下:学号:xx 姓名:xxxxx课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx ……………………共修:xx科,实得总学分为: xxx(3)删除功能:提供待删除学生的学号,则在student.txt和score.dat中删除所有与该学生有关的信息。
c语言程序设计学生学籍管理系统实验数据存储及数据流向
c语言程序设计学生学籍管理系统实验数据存储及数据流向C语言程序设计学生学籍管理系统实验数据存储及数据流向在学生学籍管理系统中,数据存储和数据流向是非常重要的。
系统需要存储学生的个人信息、课程成绩和学籍变动等数据,并根据这些数据做出相应的处理。
这篇文章将带你了解学生学籍管理系统中的数据存储和数据流向。
数据存储学生学籍管理系统中需要存储的数据包括学生的个人信息、课程成绩和学籍变动等数据。
这些数据可以存储在不同的位置,如磁盘、数据库等。
磁盘存储:磁盘存储是最常见的数据存储方式,数据以文件的形式存放在硬盘上。
学生学籍管理系统中的数据可以存储在一个或多个文件中,每个文件存储一个类型的数据。
例如,学生的个人信息可以存储在一个“学生信息.txt”文件中,课程成绩可以存储在一个“课程成绩.txt”文件中。
数据库存储:数据库是一种结构化的数据存储方式,可以有效地管理大量数据。
学生学籍管理系统中,可以使用关系型数据库存储学生信息、教师信息、课程信息、成绩信息等数据,方便管理和检索。
通过SQL语句可以对数据库中的数据进行增删改查等操作,实现数据的高效管理。
数据流向学生学籍管理系统中的数据流向主要包括数据采集、数据处理、数据展示等过程。
这些流程需要将数据从一个位置传输到另一个位置,以实现正确的处理和展示。
数据采集:数据采集是指将学生或其他相关信息采集到系统中的过程。
例如,学生信息可以通过录入学生信息表单实现,成绩信息可以通过录入成绩表单实现等。
数据采集需要保证数据的准确性和完整性,以保证数据的正确性。
数据处理:数据处理是指对采集到的数据进行各种处理操作的过程。
例如,对学生信息进行排序、筛选、查询等操作,对成绩信息进行计算平均分、制作成绩报表等操作。
数据处理需要对数据进行严格的逻辑检验,以保证数据的正确性。
数据展示:数据展示是指将处理后的数据以易于理解的形式展示给用户的过程。
例如,把学生信息、成绩信息等数据以列表或表格形式展示给用户,使用户能够清晰了解学生的学籍状况。
c语言学生学籍管理系统
C语言学生学籍管理系统引言现代教育离不开信息技术的支持,学籍管理系统是教育机构管理学生信息的重要工具。
C语言是一种通用的高级编程语言,广泛应用于软件开发领域。
本文将介绍使用C语言开发学生学籍管理系统的基本原理和实现方法。
功能需求学生学籍管理系统主要包括以下功能:1.添加学生信息:包括学号、姓名、性别、年龄、班级等信息。
2.查询学生信息:根据学号或姓名查询学生的详细信息。
3.修改学生信息:允许对学生的基本信息进行修改。
4.删除学生信息:删除指定学号的学生信息。
5.统计学生信息:统计学生的数量、男女比例等信息。
系统设计学生学籍管理系统可以采用面向过程的设计方法,使用结构体来存储学生信息。
以下是系统的设计思路:1.定义学生结构体:学生结构体包含学号、姓名、性别、年龄、班级等字段。
2.添加学生信息:创建一个学生结构体数组,根据用户输入的信息添加学生信息到数组中。
3.查询学生信息:根据用户输入的学号或姓名,在学生结构体数组中查找并输出学生的详细信息。
4.修改学生信息:根据用户输入的学号或姓名,在学生结构体数组中找到对应的学生信息,并允许用户修改学生的基本信息。
5.删除学生信息:根据用户输入的学号或姓名,在学生结构体数组中查找并删除对应的学生信息。
6.统计学生信息:遍历学生结构体数组,统计学生的数量、男女比例等信息,并输出结果。
系统实现以下是学生学籍管理系统的基本代码实现:```c #include <stdio.h>#define MAX_STUDENTS 100// 定义学生结构体 typedef struct { int id; // 学号 char name[20]; // 姓名 char gender; // 性别 int age; // 年龄 char class[20]; // 班级 } Student;int main() { Student students[MAX_STUDENTS]; // 学生结构体数组 int count = 0; // 学生数量while (1) {int choice;printf(\。
学生学籍管理系统c语言
学生学籍管理系统c语言
学生学籍管理系统c语言是一款基于c语言开发的学生信息管理系统。
该系统主要功能包括学生信息的录入、查询、修改和删除以及成绩信息的录入、查询、修改和删除等。
此外,该系统还可以进行数据备份和恢复,方便数据的安全管理。
系统的界面采用简洁明了的设计风格,操作简单易懂。
在学生信息管理方面,可以通过学号、姓名、性别等多种方式进行学生信息查询,方便教师和管理员进行管理。
同时,该系统还可以根据学生成绩情况进行数据分析,对学生的学习情况进行统计和评估。
学生学籍管理系统c语言还具有高可靠性和稳定性,可以适应大量数据的管理,保证数据的准确性和完整性。
在使用过程中,系统还提供了详细的使用说明和操作提示,方便用户快速上手和使用。
总之,学生学籍管理系统c语言是一款功能强大、易用性好、适应性强的学生信息管理系统,可以为教师和管理员提供快捷、高效的学生信息管理服务。
- 1 -。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录1 前言 (1)2 需求分析 (1)2.1 课程设计目的 (1)2.2 课程设计任务 (1)2.3 设计环境 (1)2.4 开发语言 (2)3 分析和设计 (2)3.1 模块设计 (3)3.2 系统流程图 (3)3.3 主要模块的流程图 (4)4 具体代码实现 (6)5 课程设计总结 (21)5.1 程序运行结果 (21)5.2 课程设计体会 (27)参考文献 (28)致谢 (28)1 前言txt读取,增删改查,还可以。
现代科学飞速发展,世界也不断的变化,人类的生活随着科技的发展也发生着惊天动地的变化。
作为新时代的大学生,我们应该努力学习科学文化知识,以适应社会的发展要求。
以现代化的科学知识为祖国做贡献。
计算机C语言课程设计是一门实践性很强的课程,因此,我们可以从这里出发,将实践教学与理论教学达到密切结合。
根据实际题目,要求我小组编写一个程序来,用数据文件存放学生的学籍,可对学生学籍进行注册,登录,修改,删除,查找,统计,学籍变化等操作。
通过一个结构体数组来存放输入的每一位同学的信息(包括学号,姓名,性别,年龄,籍贯,系别,专业,班级),然后将其信息存入文件中。
输入一个学号查询该同学的信息,并显示在屏幕上。
2 需求分析2.1 课程设计目的用数据文件存放学生的学籍,可对学生学籍进行注册,登录,修改,删除,查找,统计,学籍变化等操作。
2.2 课程设计任务(1)系统以菜单方式工作。
(2)登记学生的学号,姓名,性别,年龄,籍贯,系别,专业,班级;修改已知学号的学生信息;(3)删除已知学号的学生信息;(4)查找已知学号的学生信息;(5)显示同一系学生信息和统计人数;(6)显示所有学生信息和统计人数人数;2.3 设计环境(1)WINDOWS 2000/2003/XP/7/Vista系统(2)Visual C++或TC集成开发环境2.4 开发语言C语言3 分析和设计分析:用数据文件存放学生的学籍,可对学生学籍进行注册,登录,修改,删除,查找,统计,学籍变化等操作。
(1)以系统以菜单方式工作,所以要有一个选项菜单。
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(" * 8-----退出系统* \n ");printf(" **************************************** \n ");输出一个菜单。
(2)登记学生的学号,姓名,性别,年龄,籍贯,系别,专业,班级定义函数ZHUCE(),用来输入学生信息,将信息存入123.txt中,int i=1; struct student temp;FILE *fp; fp=fopen("F://123.txt","w"); /*指针指向文件123.txt*/void save( struct student student[]){FILE *fp=NULL;fp=fopen("F://123.txt","ab+");fwrite(student,sizeof(struct student),1,fp); fclose(fp);/*将信息保存入123.txt中*/(3)按学号查找学生信息printf("\n 请输入要查找学生信息的学号: ");gets(tempXUEHAO);while(feof(fp)==0){ fscanf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",&temp.XUEHAO,&temp.XIN GMING,&temp.XINGBIE,&temp.NIANLING,&temp.JIGUAN,&temp.ZHUANYE,&temp.BANJI,&temp.XIBIE);if(strcmp(tempXUEHAO,temp.XUEHAO)==0)/*根据输入的学号从文件中诸葛查找符合条件的*/…………… ..3.1 模块设计定义结构体类型struct student 表示学生信息(包括:学号,姓名,性别,年龄,籍贯,系别,专业,班级),定义一个结构体数组stud[],用来存放学生的信息,在F 盘建一123.txt用储存学生信息。
定义函数CAIDAN(),用来输出菜单。
定义函数ZHUCE(),用来输入学生信息,将信息存入123.txt中。
定义函数XIUGAI(),用来修改学生信息,将信息存入123.txt中。
定义函数SHANCHU(),用来删除学生信息。
定义函数CHAZHO(),用来查找学生信息,可以通过学号查找、姓名超找。
……………3.2 系统流程图系统流程图3.3 主要模块的流程图注册学生信息4 具体代码实现#include <stdio.h>#include <string.h>#include <conio.h>#include <malloc.h>#include <stdlib.h>#define N 100struct student{char XUEHAO[20];char XINGMING[10];char XINGBIE[4];char NIANLING[10];char JIGUAN[10];char ZHUANYE[10];char BANJI[6];char XIBIE[20];}student;void CAIDAN();void ZHUCE();void XIUGAI();void SHANCHU();void del_XUEHAO(FILE *fp); void del_XINGMING(FILE *fp); void CHAZHAO();void sch_XUEHAO(FILE *fp); void sch_XINGMING(FILE *fp); void TONGJI();void XIANSHI();void TIANJIA();void save( struct student student[]); main(){ char choose,yes_no;do{ CAIDAN();printf("\n 请输入序号: (1~8) ");choose=getch();system("cls");switch(choose){case'1': printf(" %c",choose);ZHUCE();break;case'2': printf(" %c",choose);XIUGAI();break;case'3': printf(" %c",choose);SHANCHU();break;case'4': printf(" %c",choose);TIANJIA();break;case'5': printf(" %c",choose);CHAZHAO();break;case'6': printf(" %c",choose);TONGJI();break;case'7': printf(" %c",choose);XIANSHI();break;case'8': break;default:printf("\n %c 序号不对!\n",choose);}if(choose=='8')break;printf("\n 要继续选择吗? (Y/N) \n");do{ yes_no=getch(); printf(" %c",yes_no);}while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');}while(yes_no=='Y'||yes_no=='y');}void CAIDAN(){system("cls");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(" * 8-----退出系统* \n ");printf(" **************************************** \n ");}/*定义学生信息注册的函数*/void ZHUCE(){ int i=1;struct student temp;FILE *fp;fp=fopen("F://123.txt","w");if(fp==NULL){ printf("\n 打开文件失败! \n");return; }printf("\n 请输入第1个学生信息:\n");printf(" 学号(用#结束输入): ");do{ gets(temp.XUEHAO);}while(strcmp(temp.XUEHAO," ")==0);printf(" 姓名(用#结束输入): ");gets(temp.XINGMING);printf(" 性别(用#结束输入): ");gets(temp.XINGBIE);printf(" 年龄(用#结束输入): ");gets(temp.NIANLING);printf(" 籍贯(用#结束输入): ");gets(temp.JIGUAN);printf(" 专业(用#结束输入): ");gets(temp.ZHUANYE);printf(" 班级(用#结束输入): ");gets(temp.BANJI);printf(" 系别(用#结束输入): ");gets(temp.XIBIE);while(temp.XUEHAO[0]!='#'&&temp.XINGMING[0]!='#'&&temp.XINGBI E[0]!='#'&&temp.NIANLING[0]!='#'&&temp.JIGUAN[0]!='#'&&temp.ZHU ANYE[0]!='#'&&temp.BANJI[0]!='#'&&temp.XIBIE[0]!='#'&&temp.XIBIE ){ fprintf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",temp.XUEHAO,te mp.XINGMING,temp.XINGBIE,temp.NIANLING,temp.JIGUAN,temp.ZHU ANYE,temp.BANJI,temp.XIBIE,temp);i++;printf("\n 请输入第%d 个学生信息:\n ",i);printf(" 学号(用#结束输入): ");do{ gets(temp.XUEHAO);}while(strcmp(temp.XUEHAO," ")==0);printf(" 姓名(用#结束输入): ");gets(temp.XINGMING);printf(" 性别(用#结束输入): ");gets(temp.XINGBIE);printf(" 年龄(用#结束输入): ");gets(temp.NIANLING);printf(" 籍贯(用#结束输入): ");gets(temp.JIGUAN);printf(" 专业(用#结束输入): ");gets(temp.ZHUANYE);printf(" 班级(用#结束输入): ");gets(temp.BANJI);printf(" 系别(用#结束输入): ");gets(temp.XIBIE);}student=temp;save(&temp);fclose(fp);}/*定义保存函数*/void save( struct student student[]){FILE *fp=NULL;fp=fopen("F://123.txt","ab+");fwrite(student,sizeof(struct student),1,fp);fclose(fp);}/*定义查找学生信息的函数*/void CHAZHAO(){ char c;FILE *fp;fp=fopen("F://123.txt","r");if(fp==NULL){ printf("\n 打开文件失败! \n");return; } printf("\n 按学号查找( 1 ),还是按姓名查找( 2 )? ");c=getch();putch(c);if(c=='1') sch_XUEHAO(fp);else if(c=='2') sch_XINGMING(fp);else printf("\n 非法字符!\n");fclose(fp);}/*定义按学号查找学生信息的函数*/void sch_XUEHAO(FILE *fp){ int flag=0,n=0;char tempXUEHAO[20];struct student temp;printf("\n 请输入要查找学生信息的学号: ");gets(tempXUEHAO);while(feof(fp)==0){ fscanf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",&temp.XUEHAO, &temp.XINGMING,&temp.XINGBIE,&temp.NIANLING,&temp.JIGUAN, &temp.ZHUANYE,&temp.BANJI,&temp.XIBIE);if(strcmp(tempXUEHAO,temp.XUEHAO)==0){ if(flag==0)printf(" 学号姓名姓别年龄籍贯专业班级系别\n");printf("%5s%10s%10s%10s%10s%10s%10s%10s\n",temp.XUEHAO,temp.X INGMING,temp.XINGBIE,temp.NIANLING,temp.JIGUAN,temp.ZHUANY E,temp.BANJI,temp.XIBIE);flag=1;}n++;}if(n==0) printf("\n 文件中无此信息!\n");else if(flag==0) printf("\n 文件中无此人!\n");}/*定义按姓名查找学生信息的函数*/void sch_XINGMING(FILE *fp){ int flag=0,n=0;char tempXINGMING[10];struct student temp;printf("\n 请输入要查找学生信息的姓名: ");gets(tempXINGMING);while(feof(fp)==0){ fscanf(fp, "%5s%10s%10s%10s%10s%10s%10s%10s\n",&temp.XUEHAO,&temp.XI NGMING,&temp.XINGBIE,&temp.NIANLING,&temp.JIGUAN,&temp.ZH UANYE,&temp.BANJI,&temp.XIBIE);if(strcmp(tempXINGMING,temp.XINGMING)==0) { if(flag==0) printf(" 学号姓名姓别年龄籍贯专业班级系别\n");printf("%5s%10s%10s%10s%10s%10s%10s%10s\n",temp.XUEHAO,temp.X INGMING,temp.XINGBIE,temp.NIANLING,temp.JIGUAN,temp.ZHUANY E,temp.BANJI,temp.XIBIE);flag=1;}n++;}if(n==0) printf("\n 文件中无此信息!\n");else if(flag==0) printf("\n 文件中无此人!\n");}/*定义删除学生信息的函数*/void SHANCHU(){ char c;FILE *fp;fp=fopen("F://123.txt","r");if(fp==NULL){ printf("\n 文件打开失败!\n ");return; }printf("\n 按学号删除( 1 ),还是按姓名删除( 2 )? ");c=getch();putch(c);if(c=='1') del_XUEHAO(fp);else if(c=='2') del_XINGMING(fp);else printf("\n 非法字符!\n");}/*定义按学号删除学生信息的函数*/void del_XUEHAO(FILE *fp){ char tempXUEHAO[20];int n=0,i=0,k;struct student stu[N];while(feof(fp)==0){ fscanf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",stu[i].XUEHAO,st u[i].XINGMING,stu[i].XINGBIE,stu[i].NIANLING,stu[i].JIGUAN,stu[i].ZHUA NYE,stu[i].BANJI,stu[i].XIBIE);i++;n++;}fclose(fp);printf("\n 请输入要删除的学生信息的学号:");scanf("%s",tempXUEHAO);printf(" 删除成功! ");for(i=0;i<n;i++)if(strcmp(tempXUEHAO,stu[i].XUEHAO)==0)break;if(i<n)for(k=i;k<n;k++)stu[k]=stu[k+1];else printf("\n 无此人!\n");fp=fopen("F://123.txt","w");if(fp==NULL){ printf("\n 文件打开失败!\n");return; }for(i=0;i<n-1;i++)fprintf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",stu[i].XUEHAO,stu [i].XINGMING,stu[i].XINGBIE,stu[i].NIANLING,stu[i].JIGUAN,stu[i].ZHU ANYE,stu[i].BANJI,stu[i].XIBIE);}/*定义按姓名删除学生信息的函数*/void del_XINGMING(FILE *fp){ char tempXINGMING[10];int n=0,i=0,k;struct student stu[N];while(feof(fp)==0){ fscanf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",stu[i].XUEHAO,st u[i].XINGMING,stu[i].XINGBIE,stu[i].NIANLING,stu[i].JIGUAN,stu[i].ZH UANYE,stu[i].BANJI,stu[i].XIBIE);i++;n++;}fclose(fp);printf("\n 请输入要删除的学生信息的姓名:");scanf("%s",tempXINGMING);printf(" 删除成功! ");for(i=0;i<n;i++)if(strcmp(tempXINGMING,stu[i].XINGMING)==0)break;if(i<n)for(k=i;k<n;k++)stu[k]=stu[k+1];else printf("\n 无此人!\n");fp=fopen("G://123.txt","w");if(fp==NULL){ printf("\n 文件打开失败!\n");return;}for(i=0;i<n-1;i++)fprintf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",stu[i].XUEHAO,stu [i].XINGMING,stu[i].XINGBIE,stu[i].NIANLING,stu[i].JIGUAN,stu[i].ZHU ANYE,stu[i].BANJI,stu[i].XIBIE);}/*定义添加学生信息的函数*/void TIANJIA(){ char c;int n=0,i=0;struct student temp,stu[N];FILE *fp;fp=fopen("F://123.txt","r");if(fp==NULL){ printf("\n 打开文件失败!\n"); return; }while(feof(fp)==0){ fscanf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",stu[i].XUEHAO,st u[i].XINGMING,stu[i].XINGBIE,stu[i].NIANLING,stu[i].JIGUAN,stu[i].ZH UANYE,stu[i].BANJI,stu[i].XIBIE);i++;n++;}fclose(fp);for(i=0;i<n;i++)printf("\n %s %s %s %s %s %s %s %s\n",stu[i ].XUEHAO,stu[i].XINGMING,stu[i].XINGBIE,stu[i].NIANLING,stu[i].JIGU AN,stu[i].ZHUANYE,stu[i].BANJI,stu[i].XIBIE);do{ printf("\n 请输入新学生信息的学号:");do{ scanf("%s",temp.XUEHAO); }while(strcmp(temp.XUEHAO," ")==0);printf(" 请输入新学生信息的姓名:");scanf("%s",temp.XINGMING);printf(" 请输入新学生信息的性别:");scanf("%s",temp.XINGBIE);printf(" 请输入新学生信息的年龄:");scanf("%s",temp.NIANLING);printf(" 请输入新学生信息的籍贯:");scanf("%s",temp.JIGUAN);printf(" 请输入新学生信息的专业:");scanf("%s",temp.ZHUANYE);printf(" 请输入新学生信息的班级:");scanf("%s",temp.BANJI);printf(" 请输入新学生信息的系别:");scanf("%s",temp.XIBIE);for(i=0;i<n;i++)if(strcmp(temp.XUEHAO,stu[i].XUEHAO)==0){ printf("\n 学号重复,要重新输入吗(Y/N)?");do{ c=getch(); putch(c);}while(c!='Y'&&c!='y'&&c!='N'&&c!='n');putchar('\n');break;}if(i==n) { stu[i]=temp; break; }}while(c=='Y'||c=='y');fp=fopen("G://123.txt","w");if(fp==NULL){ printf("\n 文件打开失败!\n"); return; }for(i=0;i<=n;i++)fprintf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",stu[i].XUEHAO,stu [i].XINGMING,stu[i].XINGBIE,stu[i].NIANLING,stu[i].JIGUAN,stu[i].ZHU ANYE,stu[i].BANJI,stu[i].XIBIE);fclose(fp);}/*定义修改学生信息的函数*/void XIUGAI(){ char c;int n=0,i=0;struct student *find,temp,stu[N],*p;FILE *fp;fp=fopen("F://123.txt","rb");if(fp==NULL){ printf("\n 打开文件失败!\n"); return; }while(feof(fp)==0){ fscanf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",stu[i].XUEHAO,st u[i].XINGMING,stu[i].XINGBIE,stu[i].NIANLING,stu[i].JIGUAN,stu[i].ZH UANYE,stu[i].BANJI,stu[i].XIBIE);i++;n++;}fclose(fp);if(n==0){ printf("\n 文件中无此信息!\n");return;}printf("\n 请输入要修改的学生信息的学号: ");scanf("%s",temp.XUEHAO);for(p=stu;p<stu+n;p++)if(strcmp(temp.XUEHAO,p->XUEHAO)==0){ find=p; break; }if(p==stu+n){ printf("\n 无此信息!\n");return; }do{ printf("\n 请输入新学生信息的学号:");do{ scanf("%s",temp.XUEHAO); }while(strcmp(temp.XUEHAO," ")==0);printf(" 请输入新学生信息的姓名:");scanf("%s",temp.XINGMING);printf(" 请输入新学生信息的性别:");scanf("%s",temp.XINGBIE);printf(" 请输入新学生信息的年龄:");scanf("%s",temp.NIANLING);printf(" 请输入新学生信息的籍贯:");scanf("%s",temp.JIGUAN);printf(" 请输入新学生信息的专业:");scanf("%s",temp.ZHUANYE);printf(" 请输入新学生信息的班级:");scanf("%s",temp.BANJI);printf(" 请输入新学生信息的系别:");scanf("%s",temp.XIBIE);for(p=stu;p<stu+n;p++)if(strcmp(temp.XUEHAO,p->XUEHAO)==0&&p!=find){ printf("\n 学号重复,要重新输入吗(Y/N)?");do{ c=getch();putch(c);}while(c!='Y'&&c!='y'&&c!='N'&&c!='n');putchar('\n');break;}if(p==stu+n){ *find=temp; break; }}while(c=='Y'||c=='y');fp=fopen("123.dat","wb");if(fp==NULL) { printf("\n 打开文件失败!\n "); return; }for(p=stu;p<stu+n;p++)fprintf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",p->XUEHAO,p->X INGMING,p->XINGBIE,p->NIANLING,p->JIGUAN,p->ZHUANYE,p->XI BIE,p->BANJI);printf (" 修改成功! ");fclose(fp);}/*定义显示学生信息的函数*/void XIANSHI(){ int n=0,i=0;struct student stu[N];FILE *fp;fp=fopen("F://123.txt","r");if(fp==NULL){ printf("\n 打开文件失败!\n"); return; }printf("\n\n 学号姓名姓别年龄籍贯专业班级系别\n");while(feof(fp)==0){ fscanf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",stu[i].XUEHAO,st u[i].XINGMING,stu[i].XINGBIE,stu[i].NIANLING,stu[i].JIGUAN,stu[i].ZH UANYE,stu[i].BANJI,stu[i].XIBIE); ++i; ++n; }fclose(fp);if(n==0)printf("\n 文件中无此信息!\n");else { for(i=0;i<n;i++)printf("%5s%10s%10s%10s%10s%10s%10s%10s\n",stu[i].XUEHAO,stu[i]. XINGMING,stu[i].XINGBIE,stu[i].NIANLING,stu[i].JIGUAN,stu[i].ZHUA NYE,stu[i].BANJI,stu[i].XIBIE);printf("\n\n 文件中共有%d 个信息!\n",n);}}/*定义在同一个系别的学生人数的函数*/void TONGJI(){ int i=0,n=0,k=0;char tempXIBIE[10];struct student stu[N];FILE *fp;fp=fopen("F://123.txt","r");if(fp==NULL){ printf("\n 打开文件失败!\n"); return; }while(feof(fp)==0){fscanf(fp,"%5s%10s%10s%10s%10s%10s%10s%10s\n",&stu[i].XUEHAO, &stu[i].XINGMING,&stu[i].XINGBIE,&stu[i].NIANLING,&stu[i].JIGUAN, &stu[i].ZHUANYE,&stu[i].XIBIE,&stu[i].BANJI);i++;n++; }fclose(fp);printf("\n\n 请输入系别名称: ");scanf("%s",tempXIBIE);printf("\n\n 学号姓名姓别年龄籍贯专业班级系别\n");for(i=0;i<n;i++)if(strcmp(tempXIBIE,stu[i].XIBIE)==0){printf("\n%5s%10s%10s%10s%10s%10s%10s%10s\n",stu[i].XUEHAO,stu[ i].XINGMING,stu[i].XINGBIE,stu[i].NIANLING,stu[i].JIGUAN,stu[i].ZHU ANYE,stu[i].BANJI,stu[i].XIBIE);k++;}printf("\n\n 共有%d个学生在这个学院!\n",k);}5 课程设计总结5.1 程序运行结果菜单注册学生信息显示所有学生信息和统计人数显示同一系学生信息和统计人数修改学生信息添加学生学信息查找学生信息5.2 课程设计体会通过这次的C语言课程设计,我获益匪浅。