学生信息管理系统程序
学生信息管理系统操作规程

学生信息管理系统操作规程随着信息科技的快速发展,学生信息管理系统已经成为学校管理学生信息的主要工具。
它能够帮助学校更加高效地管理和使用学生信息。
但是,要充分发挥学生信息管理系统的作用,学生和教职员工都需要按照一定的规程进行操作。
本文将从以下几个方面展开回答,介绍学生信息管理系统的操作规程。
一、账号和密码管理1.1 学生和教职员工在进入学生信息管理系统之前,需要根据学校要求申请账号和密码。
1.2 账号和密码应妥善保管,不得泄露给他人或以任何形式以供他人使用。
1.3 定期更改密码以增强账号的安全性。
二、学生信息录入2.1 教职员工应按照学校规定的格式和要求,将学生的个人信息录入系统。
2.2 信息录入时应尽量确保准确性和完整性,避免错误或遗漏。
2.3 对于涉及学生隐私的信息,教职员工应严格保密,不得随意传播或泄露。
三、信息更新和修改3.1 学生信息管理系统应定期进行信息更新,确保学生的最新信息得到及时记录。
3.2 学生、家长或教职员工如有学生信息需要修改或更新,应按照学校指定的流程进行申请和审核。
3.3 信息更新和修改应保证准确性,一旦错误或遗漏,应及时进行更正。
四、信息查询和查看4.1 教职员工可以通过学生信息管理系统查询和查看学生的个人信息以及相关的成绩、考勤等信息。
4.2 学生和家长可以通过学生信息管理系统查询和查看学生的个人信息以及相关的学习情况和奖惩记录。
4.3 信息查询和查看应符合学校的权限管理规定,确保信息的安全性和私密性。
五、信息统计和分析5.1 学生信息管理系统可以进行信息的统计和分析,帮助学校进行学生群体的分析和决策。
5.2 教职员工可以根据学生信息管理系统提供的数据进行教学和管理的优化,提高教学效果和管理水平。
5.3 信息统计和分析应注重学生信息的隐私保护,确保不泄露学生个人隐私信息。
六、信息备份和恢复6.1 学校应定期对学生信息管理系统进行数据备份,以防止数据丢失或破坏。
6.2 在系统出现故障或数据损坏的情况下,学校应及时采取措施进行数据恢复,确保学生信息的完整性和可用性。
学生信息管理系统java课程设计(含源代码)

JAVA 程序设计 课程设计陈述宇文皓月课 题: 学生信息管理系统 姓 名: 学 号: 同组姓名: 专业班级: 指导教师: 设计时间:目 录1、需要实现的功能32、设计目的3 1、功能模块划分32、数据库结构描述43、系统详细设计文档64、各个模块的实现方法描述95、测试数据及期望结果11一、系统描述1、需求实现的功能1.1、录入学生基本信息的功能学生基本信息主要包含:学号、姓名、年龄、出生地、专业、班级总学分,在拔出时,如果数据库已经存在该学号,则不克不及再拔出该学号。
1.2、修改学生基本信息的功能在管理员模式下,只要在表格中选中某个学生,就可以对该学生信息进行修改。
评阅意见:评定成绩:指导老师签名:年 月 日1.3、查询学生基本信息的功能可使用“姓名”对已存有的学生资料进行查询。
1.4、删除学生基本信息的功能在管理员模式下,只要选择表格中的某个学生,就可以删除该学生。
1.5、用户登陆用分歧的登录权限可以进入分歧的后台界面,从而实现权限操纵。
1.6、用户登陆信息设置可以修改用户登陆密码2、设计目的学生信息管理系统是一个教育单位不成缺少的部分。
一个功能齐全、简单易用的信息管理系统不单能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。
所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差、人工的大量浪费;另外时间一长,将发生大量的文件和数据,这对于查找、更新和维护都带来了很多困难。
随着科学技术的不竭提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学校的各类信息进行管理,具有手工管理无法比较的优点。
例如:检索迅速、查询方便、效率高、可靠性好、存储量大、保密性好、寿命长、成本低等。
学生管理系统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语言实现线性表的基本操作,能创建一个基于学生信息管理的链表,至少包含数据输入、数据输出、数据处理等操作。
在主函数里能实现以下功能。
运行后出现一个选择提示。
可选择的功能有1)创建新的学生信息链表2)增加一个新的学生信息3)按学号删除某个学生信息4)按学号查找某个学生信息5)可以按照学生成绩对链表排序6)退出系统#include "stdio.h"#include "stdlib.h"#include "string.h"#include "conio.h"jiemian();struct student{char name[50];char sex[5];int age;char num[50];float score1;float score2;float score3;float sum;float ave;}stu[50],del;void gn1(){int i=0;char num1;for(i=0;i<50;i++){printf("请输入要添加的学生资料:\n");printf("学号:");scanf("%s",stu[i].num);printf("姓名:");scanf("%s",stu[i].name);printf("性别:");scanf("%s",&stu[i].sex);printf("年龄:");scanf("%d",&stu[i].age);printf("请输入学生的三门成绩:\n");printf("语文:");scanf("%f",&stu[i].score1);printf("数学:");scanf("%f",&stu[i].score2);printf("英语:");scanf("%f",&stu[i].score3);printf("是否继续添加:y/n\n");scanf("%c",&num1);scanf("%c",&num1);if(num1=='N' || num1=='n'){system("cls");jiemian();}}}void gn2(){int i;char num[50];printf("请输入要查找的学生学号:\n");scanf("%s",num);for(i=0;i<50;i++)if(strcmp(stu[i].num,num)==0){stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;stu[i].ave=stu[i].sum/3;printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);break;}if(i==50)printf("查找不到!请重新输入!\n");getch();system("cls");jiemian();}void gn3(){char num1,i=0;printf("请输入要修改的学生学号:\n");scanf("%s",stu[i].num);printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);printf("姓名:");scanf("%s",stu[i].name);printf("性别:");scanf("%s",stu[i].sex);printf("年龄:");scanf("%d",&stu[i].age);printf("请输入学生的三门成绩:\n");printf("语文:");scanf("%f",&stu[i].score1);printf("数学:");scanf("%f",&stu[i].score2);printf("英语:");scanf("%f",&stu[i].score3);printf("是否继续修改:y/n?\n");scanf("%c",&num1);scanf("%c",&num1);if(num1=='N' || num1=='n')system("cls");jiemian();}void gn4(){int i;char num[50];printf("请输入要删除的学生学号:\n");scanf("%s",num);for(i=0;i<50;i++)if(strcmp(num,stu[i].num)==0){printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);stu[i]=del;printf("信息已删除,按任意键返回..\n");break;}if(i==50)printf("您输入的信息不存在!\n");getch();system("cls");jiemian();}void gn5(){int i=0;stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;stu[i].ave=stu[i].sum/3;printf("学号\t姓名\t性别\t年龄\t语文\t数学\t英语\t总成绩\t 平均成绩\n"); for(i=0;i<50;i++){if(stu[i].age==0)break;printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);}printf("按任意键返回...");getch();system("cls");jiemian();}void gn6(){FILE *fp;int i;char filename[50];printf("\n");printf("\n");printf("请输入要保存的文件名:");scanf("%s",filename);if((fp=fopen(filename,"wb"))==NULL)printf("文件名为空,不能保存!\n");for(i=0;i<50;i++){if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)printf("文件保存失败!\n");}fclose(fp);printf("文件已保存!\n");printf("按任意键返回...\n");getch();system("cls");jiemian();}void gn7(){FILE *fp;int i=0; //打开文件流char filename[50];printf("请输入文件名:");scanf("%s",filename); //输入要载入的文件名if((fp=fopen(filename,"rb"))==0) //如果当前目录下不存在相对应的文件,输出文件不存在,退出系统。
学生信息管理系统

学生信息管理系统1.数据库结构的实现1)创建系统用户表格user_infoCREATE TABLE [dbo].[user_info] ([user_ID] [char] (10) COLLATEChinese_PRC_CI_AS NOT NULL,[user_PWD] [char] (10) COLLATEChinese_PRC_CI_AS NULL ,[user_DES] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,) ON [PRIMARY]2)创建学生基本信息表Student_infoCREATE TABLE [dbo].[ Student_info] ([student_ID] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,[student_Name] [varcharchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,[student_Sex] [char] (2) COLLATEChinese_PRC_CI_AS NULL ,[born_Date] [datetime] COLLATEChinese_PRC_CI_AS NULL ,[ClassName] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,[Telephone] [char] (20) COLLATEChinese_PRC_CI_AS NULL ,[Enroll_date] [datetime] COLLATEChinese_PRC_CI_AS NULL ,[Address] [varchar] (50) COLLATEChinese_PRC_CI_AS NULL ,[comment] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,) ON [PRIMARY]3)创建课程基本信息表Course_infoCREATE TABLE [dbo].[course_info] ([course_NO] [varchar](10) COLLATEChinese_PRC_CI_AS NOT NULL,[course_Name] [char] (20) COLLATEChinese_PRC_CI_AS NULL ,[course_Type] [char] (20) COLLATEChinese_PRC_CI_AS NULL ,[course_credit] [int] COLLATEChinese_PRC_CI_AS NULL ,[course_des] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,) ON [PRIMARY]4)创建选课成绩信息表Student_course_infoCREATE TABLE [dbo].[student_course_info] ( [student_ID] [varchar](10) COLLATEChinese_PRC_CI_AS NOT NULL ,[course_NO] [varchar](10) COLLATEChinese_PRC_CI_AS NOT NULL ,[score] [int] COLLATE Chinese_PRC_CI_AS NULL ,) ON [PRIMARY]2.学生信息管理系统主窗体的创建1)创建工程项目Student_MIS2)创建学生信息管理系统主窗体3)创建公用模块在“工程资源管理器”中添加一个Module,保存为Module1.bas,其程序如下:Public username_OK As String '记录登录用户名'定义连接字符串函数Public Function ConnectString() As StringConnectString ="Provider=SQLOLEDB.1;Password=sa;User ID=sa; "+"Initial Catalog=pubs; Data Source =127.0.0.1"'设置SQL Server2000数据库链接字符串,此字符串可保存在目录文件中End Function'ExecuteSQL函数执行SQL语句,返回结果集Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) _As ADODB.RecordsetDim cnn As ADODB.ConnectionDim rst As ADODB.RecordsetDim sTokens() As StringOn Error GoTo ExecuteSQL_ErrorsTokens = Split(SQL)Set cnn = New ADODB.Connectioncnn.Open ConnectStringIf InStr("INSERT,DELETE,UPDATE,EXECUTE", UCase$(sTokens(0))) Thencnn.Execute (SQL)MsgString = sTokens(0) & " query successful"ElseSet rst = New ADODB.Recordsetrst.Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimisticSet ExecuteSQL = rstMsgString = "查询到" & rst.RecordCount & "条记录 "End IfExecuteSQL_Exit:Set rst = NothingSet cnn = NothingExit FunctionExecuteSQL_Error:MsgString = "查询错误: " & Err.DescriptionResume ExecuteSQL_ExitEnd Function3.系统用户管理模块的创建1)用户登录窗体设计当用户输入完用户名和用户密码后,单击“确定”按钮将对用户输入的信息进行判断。
学生信息管理系统操作手册

学生信息管理系统操作手册一、简介学生信息管理系统是一种用于学校管理学生信息的工具。
它可以用来记录学生的个人信息、课程安排、成绩等内容,并提供一系列功能供教师、学生和家长使用。
本篇文章将为您详细介绍学生信息管理系统的操作手册,帮助您熟悉该系统的各项功能和使用方法。
二、登录与注册1. 用户登录a. 打开学生信息管理系统的登录页面,输入用户名和密码;b. 点击“登录”按钮,进入系统的主界面。
2. 用户注册a. 打开学生信息管理系统的注册页面,填写必要的个人信息;b. 点击“注册”按钮,完成注册。
三、个人信息管理1. 查看个人信息a. 在系统主界面,点击个人信息选项卡;b. 查看自己的个人信息,如姓名、学号、性别、出生日期等。
2. 修改个人信息a. 在个人信息页面,点击“修改”按钮;b. 修改需要更新的个人信息,如联系方式、地址等;c. 点击“保存”按钮,更新个人信息。
四、课程信息管理1. 查看课程信息a. 在系统主界面,点击课程信息选项卡;b. 查看自己所选修的课程信息,如课程名称、课程时间、授课教师等。
2. 选择课程a. 在课程信息页面,点击“选择课程”按钮;b. 在弹出的课程列表中选择需要选修的课程;c. 点击“确认选择”按钮,完成选课。
五、成绩查询与管理1. 成绩查询a. 在系统主界面,点击成绩查询选项卡;b. 查看自己的成绩信息,如课程成绩、平均成绩等。
2. 成绩管理a. 对于教师用户,可以在教师专用界面进行成绩录入;b. 在成绩管理页面,选择相应的课程和学生,录入对应的成绩;c. 点击“保存”按钮,完成成绩录入。
六、考勤管理1. 查看考勤记录a. 在系统主界面,点击考勤管理选项卡;b. 查看考勤记录,如出勤次数、请假记录等。
2. 考勤记录管理a. 对于教师用户,可以在教师专用界面进行考勤记录管理;b. 在考勤记录管理页面,选择相应的课程和学生,录入考勤记录;c. 点击“保存”按钮,完成考勤记录管理。
全国中等职业学校学生管理信息系统上机操作指南

全国中等职业学校学生管理信息系统上机操作指南一、系统网址、用户名及密码1.系统网址:http://113.4.156.181/jyb-zhongzhi/2.用户名:普通用户(U开头的账号),管理员(A开头账号),领导用户(L开头账号)。
根据已发的用户表格信息,选择普通用户(U开头的账号)登录,除学校领导(以L开头的账号)所有审核用户是以U开头的账号【这里的用户名仅用作系统培训临时使用,系统正式上线后,用户名会重新生成】。
3.初始密码:12ab!@,第一次进入页面需要修改密码,统一修改为:!@ab12【仅在培训时更改为此密码,系统上线后可自行修改】。
二、系统登录注意事项1.建议使用WIN7操作系统,IE8.0标准模式浏览器登录系统;2.不要使用同一浏览器登录多个用户,且一个用户不可多人同时登录;3.用户名第一个字母为大写,在输入用户名和密码时注意键盘大小写的切换,且用户名后不可以有空格;4.登录系统时,如密码连续三次输入错误,系统将自动锁定该账号,需要15分钟之后才可重新登录系统,如忘记密码,可用同级或上级系统管理员账号(A开头的账号)重置为初始密码(12ab!@)。
三、上机操作内容1.配置维护好学校管理模块的基础数据;2.在【在校生管理】->【数据补录】->【导入数据管理】,成功导入一条学生记录信息,且需要所有上级主管部门审核通过,然后可以在档案管理查询到该学生记录信息;3.在【在校生管理】->【学籍异动信息管理】->【调班申请】,新增调班申请单(该学生所属专业存在两个及以上的班级时,才可以进行新增调班申请单,若缺少班级信息,在【学校管理】->【班级信息管理】新增班级信息),完成该学生的调班业务。
四、具体操作步骤1.学校管理(维护校区、专业、班级、年级等基本信息)a)新增校区信息:学校基本信息管理->校区信息维护,新增校区信息。
b)新增专业信息:开设专业管理,新增专业信息,且提交上级主管部门审核,审核通过之后,在班级信息管理新增该班级信息。
学生信息管理系统的设计与实现共3篇

学生信息管理系统的设计与实现共3篇学生信息管理系统的设计与实现1学生信息管理系统的设计与实现随着社会的不断发展和人民生活水平的提高,教育的重要性日益凸显,学生信息管理也成为了教育管理的重要组成部分。
传统的学生管理方式已经难以满足现代化、信息化的需求,因此,设计和实现一套高效的学生信息管理系统是很有必要的。
一、系统构架本系统采用C/S架构,即客户端和服务器端交互。
客户端采用Java开发,服务器端采用Tomcat应用服务器。
数据库管理采用MySQL。
系统分为管理员界面和学生界面。
二、功能模块1. 学生信息模块:该模块包括学生基本信息、成绩相关信息、考勤信息、奖惩信息等。
通过该模块,管理员可以对学生信息进行增删改查等操作。
2. 课程管理模块:该模块负责学生的选课、退课以及课程成绩的录入和查询等功能。
3. 教师信息管理模块:该模块包括教师的基本信息、授课情况等。
通过该模块,管理员可以对教师信息进行增删改查等操作。
4. 班级管理模块:该模块统计班级的各种信息,包括班级基本信息、学生名单等。
5. 考勤管理模块:该模块记录学生考勤情况,包括缺勤、迟到、早退等情况,并将情况记录到学生信息中。
6. 统计分析模块:该模块用于对学生成绩、考勤等信息进行统计分析,并提供相关报表输出。
三、技术实现1. 数据库设计:根据需求分析,设计相应的数据库表,通过MySQL数据库管理系统进行数据管理。
2. 系统框架搭建:采用SpringMVC框架进行模块开发。
3. 客户端开发:采用Java Swing进行开发,实现学生信息管理系统的图形化界面。
4. 服务器端开发:采用Java web技术,主要使用SpringMVC 和Hibernate。
5. 数据交互:采用TCP/IP协议进行数据交互,确保数据传输的安全和可靠。
四、系统特点1. 安全性高:本系统采用了数据加密和身份验证等技术,保障学生信息的安全性。
2. 功能丰富:本系统包括学生信息管理、课程管理、教师信息管理等多个功能模块,并支持多种查询方式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.C语言上机实践报告专业:冶金工程班级:冶金1102姓名:学号:任课教师:丽华时间:2012年8月一、题目学生信息管理系统设计●学生信息包括:学号,姓名,年龄,性别,出生年月,地址,,E-mail等。
●试设计一学生信息管理系统,使之能提供以下功能:a)系统以菜单方式工作b)学生信息录入功能(学生信息用文件保存)---输入c)学生信息浏览功能---输出d)查询、排序功能---算法(1) 按学号查询(2) 按姓名查询e)学生信息的删除与修改(可选项)一、系统功能模块结构图二、数据结构设计及用法说明#include"stdio.h"#include"stdlib.h"#include"string.h"/*定义结构体用作创建链表*/typedef struct z1{char no[11]; //学生学号char name[15]; //学生姓名int age; //学生年龄char sex; //学生性别char birthday[8]; //学生出生年月char address[20]; //学生住址char tel[12]; //学生联系char e_mail[20]; //学生e-mailstruct z1 *next; //指向下一链表}STUDENT;/*声明用户自定义函数*/STUDENT *init();STUDENT *create();STUDENT *del(STUDENT *h);STUDENT *insert(STUDENT *h);STUDENT *revise(STUDENT *h);void print(STUDENT *h);void search1(STUDENT *h);void search2(STUDENT *h);void save(STUDENT *h);int menu_select();void inputs(char *prompt,char *s,int count);/*主函数,用于选择功能*/void main(){STUDENT *head;head=init(); //初始化链表表头for(;;){switch(menu_select()){case 0:head=init();break; //初始化case 1:head=create();break; //创建列表case 2:head=insert(head);break; //插入节点case 3:save(head);break; //以文件形式保存case 4:print(head);break; //显示case 5:search1(head);break; //搜索学号case 6:search2(head);break; //搜索姓名case 7:head=del(head);break; //删除case 8:head=revise(head);break; //修改case 9:exit(0); //退出程序}}}/*目录选择函数,返回用户输入的数字*/int menu_select(){char *menu[]={"************菜单************","0. 初始化链表","1. 输入学生信息","2. 插入学生信息","3. 保存学生信息","4. 显示学生信息","5. 按学号查找学生信息","6. 按姓名查找学生信息","7. 删除指定学号的学生信息","8. 修改指定学号的学生信息","9. 退出系统"};int c,i;for(i=0;i<=11;i++)printf(" %s\n",menu[i]);do{printf("\n请选择0~9中的某一个选项:\n");scanf("%d",&c);}while(c<0||c>10);return c;}/*初始化函数,作用是返回空指针初始化链表*/ STUDENT *init(){return NULL;}/*创建函数,输入学生信息*/STUDENT *create(){STUDENT *h=NULL,*info;for(;;){info=(STUDENT *)malloc(sizeof(STUDENT));if(!info){printf("\n存不足");return NULL;}inputs("输入学号:",info->no,11);if(info->no[0]=='@')break;inputs("输入姓名:",info->name,15);printf("输入年龄:");scanf("%d",&info->age);printf("输入性别编号(0.男1.女):");scanf("%s",&info->sex);printf("输入出生年月(XXXX/XX):");scanf("%s",info->birthday);inputs("输入地址:",info->address,20);inputs("输入:",info->tel,12);inputs("输入E-mail:",info->e_mail,20);info->next=h;h=info;}return h;}/*输入函数,用于判断输入的字符是否超出程序定义避免数据溢出*/ void inputs(char *prompt,char *s,int count){char p[255];do{printf(prompt);scanf("%s",p);if(strlen(p)>count)printf("\n太长了!\n");}while(strlen(p)>count);strcpy(s,p);}/*插入函数,插入学生成绩*/STUDENT *insert(STUDENT *h){STUDENT *p,*q,*info;char s[11];printf("请输入插入点的学生学号\n");scanf("%s",s);printf("\n请输入新的学生信息\n");info=(STUDENT *)malloc(sizeof(STUDENT));inputs("输入学号:",info->no,11);inputs("输入姓名:",info->name,15);printf("输入年龄:");scanf("%d",&info->age);printf("输入性别编号(0.男1.女):");scanf("%s",&info->sex);printf("输入出生年月(XXXX/XX):");scanf("%s",info->birthday);inputs("输入地址:",info->address,20);inputs("输入:",info->tel,12);inputs("输入E-mail:",info->e_mail,20);info->next=NULL;p=h;q=h;while(strcmp(p->no,s)&&p!=NULL){q=p;p=p->next;}if(p==NULL)if(p==h)h=info;elseq->next=info;else if(p==h){info->next=p;h=info;}else{info->next=p;q->next=info;}printf("\n已经插入了%s这个学生\n",info->name); return(h);}/*保存函数,以文件的形式保存学生信息*/void save(STUDENT *h){FILE *fp;STUDENT *p;char outfile[50];printf("请输入保存文件的文件名,例如c:\\f1\\te.txt:\n");scanf("%s",outfile);if((fp=fopen(outfile,"wb"))==NULL){printf("不能打开文件\n");exit(1);}printf("\n正在保存......\n");p=h;while(p!=NULL){fwrite(p,sizeof(STUDENT),1,fp);p=p->next;}fclose(fp);printf("------保存成功!!!------\n");}/*显示函数,显示学生信息*/void print(STUDENT *h){int i=0;STUDENT *p;p=h;printf("\n\n\n********************************学生*************************************\n");printf("|学号| 姓名|年龄|性别|出生年月| 地址| | E-mail |\n");printf("|--------|--------|----|----|--------|--------------|-----------|-------------|\n" );while(p!=NULL){i++;printf("|%-8s|%-8s|%4d|%4c|%8s|%14s|%11s|%13s|\n",p->no,p->name,p->age,p-> sex,p->birthday,p->address,p->tel,p->e_mail);p=p->next;}printf("***************************************end************************************ *\n");}/*搜索函数,按学号搜索学生信息并显示*/void search1(STUDENT *h){STUDENT *p;char s[11];printf("请输入你要查找的同学的学号\n");scanf("%s",s);p=h;while(strcmp(p->no,s)&&p!=NULL)p=p->next;if(p==NULL)printf("'n没有学号为%s的学生\n",s);else{printf("\n\n\n****************************找到了***************************************\n");printf("|学号| 姓名|年龄|性别|出生年月| 地址| | E-mail |\n");printf("|--------|--------|----|----|--------|--------------|-----------|-------------|\n" );printf("|%-8s|%-8s|%4d|%4c|%8s|%14s|%11s|%13s|\n",p->no,p->name,p->age,p-> sex,p->birthday,p->address,p->tel,p->e_mail);printf("***********************************end**************************************** *\n");}}/*搜索函数,按姓名搜索学生信息并显示*/void search2(STUDENT *h){STUDENT *p;char s[15];printf("请输入你要查找的同学的姓名\n");scanf("%s",s);p=h;while(strcmp(p->name,s)&&p!=NULL)p=p->next;if(p==NULL)printf("'n没有姓名为%s的学生\n",s);else{printf("\n\n\n*******************************找到了************************************\n");printf("|学号| 姓名|年龄|性别|出生年月| 地址| | E-mail |\n");printf("|--------|--------|----|----|--------|--------------|-----------|-------------|\n" );printf("|%-8s|%-8s|%4d|%4c|%8s|%14s|%11s|%13s|\n",p->no,p->name,p->age,p-> sex,p->birthday,p->address,p->tel,p->e_mail);printf("**************************************end************************************* *\n");}}/*删除函数,删除指定学号的学生信息*/STUDENT *del(STUDENT *h){STUDENT *p,*q;char s[11];printf("请输入要删除的学生的学号\n");scanf("%s",s);q=p=h;while(strcmp(p->no,s)&&p!=NULL){q=p;p=p->next;}if(p==NULL)printf("\n链表中没有学号为%s的学生\n",s);else{printf("\n\n\n********************************找到了***********************************\n");printf("|学号| 姓名|年龄|性别|出生年月| 地址| | E-mail |\n");printf("|--------|--------|----|----|--------|--------------|-----------|-------------|\n" );printf("|%-8s|%-8s|%4d|%4c|%8s|%14s|%11s|%13s|\n",p->no,p->name,p->age,p-> sex,p->birthday,p->address,p->tel,p->e_mail);printf("***************************************end************************************ *\n");printf("请按任意键删除\n");getchar();if(p==h)h=p->next;elseq->next=p->next;free(p);printf("\n已经删除学号为%s的学生\n",s);}return h;}/*修改函数,修改指定学号的学生信息*/STUDENT *revise(STUDENT *h){STUDENT *p,*q;char s[11];printf("请输入您希望修改的学生学号\n");scanf("%s",s);printf("\n 请输入新的学生信息\n");p=h;q=h;while(strcmp(p->no,s)&&p!=NULL){q=p;p=p->next;}inputs("输入学号:",p->no,11);inputs("输入姓名:",p->name,15);printf("输入年龄:");scanf("%d",&p->age);printf("输入性别编号(0.男1.女):");scanf("%s",&p->sex);printf("输入出生年月(XXXX/XX):");scanf("%s",p->birthday);inputs("输入地址:",p->address,20);inputs("输入:",p->tel,12);inputs("输入E-mail:",p->e_mail,20);return (h);}三、程序结构create()函数流程图menu_select()函数流程图init()函数的流程图inputs()函数流程图insert()函数流程图save()函数流程图search1()函数流程图del()函数流程图revise()函数流程图四、各模块的功能1)主函数:循环进行目录选择2)目录选择函数:输出目录,将用户输入的选择项返回给主函数3)初始化函数:返回空指针,对链表指针进行初始化4)创建函数:建立链表,输入学生信息5)输入函数:判断输入的字符是否超出数组定义避免数据溢出6)插入函数:在指定学号后建立新的结点插入新的学生信息7)保存函数:将链表中的信息以二进制文件的形式保存8)显示函数:以表格形式显示学生信息9)搜索函数1:按学号搜索学生信息并显示10)搜索函数2:按姓名搜索学生信息并显示11)删除函数:删除指定学号的学生信息12)修改函数:修改指定学号的学生信息五、试验结果1)初始界面2)输入学生信息3)显示学生信息4)插入学生信息5)删除学生信息6)修改学生信息7)按学号查找学生信息8)按姓名查找学生信息9)保存学生信息10)初始化链表11)退出系统六、设计中涉及的知识点●变量的定义、初始化和使用●结构体的定义、初始化和使用●数组的定义、初始化和使用●函数的定义、声明和使用●链表的创建、初始化、修改、删除和使用●文件的创建和使用●指针的使用●for循环、do while 循环、while 循环和switch 语句的使用●if语句的使用七、体会这是我第一次编写具有菜单功能的C程,所以参考了学生成绩管理系统的源程序。