-
2021-05-21 13:04:25
#include
#include
#include
#include
struct stu_type{
char num[15];
char name[10];
int age;
int c;
int math;
int en;
int sum;
float ave;
};
struct stu_type stu[100];
int stu_num=0;
void add();
int display(char str[]);
void modify();
void del();
void find();
void compute();
void sort();
void save_txt();
void load_txt();
void save_bin();
void load_bin();
void main()
{
while(1)
{
int choice;
printf("\n欢迎使用学生信息管理系统\n");
printf("-----------------------------------------\n");
printf("1.添加学生信息2.显示学生信息\n");
printf("3.修改学生信息4.删除学生信息\n");
printf("5.查找学生信息6.统计不及格人数、最高分和平均分\n");
printf("7.按总分排序 8.保存至文件(文本方式)\n");
printf("9.从文件读入10.保存至文件(二进制方式)\n");
printf("11.从文件读入(二进制方式)12.退出程序\n");
printf("-----------------------------------------\n");
printf("请选择功能模块,输入数字1-12");
while(1)
{
scanf("%d",&choice);
if(choice>=1 && choice<=12)
break;
else
printf("输入数字不正确,请重输入1-12:");
}
switch(choice)
{
case 1:add();break;
case 2:display("");break;
case 3: modify();break;
case 4: del();break;
case 5: find();break;
case 6:compute();break;
case 7:sort();break;
case 8:save_txt();break;
case 9:load_txt();break;
case 10:save_bin();break;
case 11:load_bin(); break;
case 12:exit(0);
}
}
}
void add()
{
int i=stu_num;
printf("说明:依次输入学生信息,当输入的学号为0时表示输入结束\n");
while(1)
{
printf("请输入第%d个学生的信息\n",i+1);
printf("请输入学号:");
scanf("%s",stu[i].num);
if(strcmp(stu[i].num,"0") == 0)
break;
printf("请输入姓名:");
scanf("%s",stu[i].name);
printf("请输入年龄:");
scanf("%d",&stu[i].age);
printf("请输入c语言成绩:");
scanf("%d",&stu[i].c);
printf("请输入数学成绩:");
scanf("%d",&stu[i].math);
printf("请输入英语成绩:");
scanf("%d",&stu[i].en);
stu[i].sum = stu[i].c + stu[i].math + stu[i].en;
stu[i].ave = (float)stu[i].sum/3;
i++;
}
stu_num = i;
printf("总共已输入%d个学生的信息\n",stu_num);
}
void compute()
{
int i, n=0, max=0, sum=0;
for(i=0; i
{
if(stu[i].c<60)
n++;
if(max
max=stu[i].c;
sum = sum + stu[i].c;
}
printf("C语言统计结果如下:\n");
printf("不及格人数\t最高分\t平均分\n");
printf("%d\t%d\t%5.2f\n",n,max,(float)sum/stu_num);
}
void del()
{
char str[15], m;
int i, j;
printf("请输入要删除学生的学号:");
scanf("%s",str);
i = display(str);
if(i!=-1)
{
printf("确认要删除该学生的信息吗?(y/n)");
m = getche();
if(m=='y' || m=='Y')
{
stu_num--;
for(j=i; j
stu[j] = stu[j+1];
printf("\n记录删除成功!\n");
}
}
}
int display(char str[])
{
int i, k=-1;
if(strlen(str) == 0)
{
if(stu_num>0)
{
printf("学生学号\t姓名\t年龄\tC语言\t数学\t英语\t总分\t平均分\n");
for(i=0; i
printf("%-16s%s\t%d\t%d\t%d\t%d\t%d\t%5.1f\n",stu[i].num,stu[i].name,
stu[i].age, stu[i].c, stu[i].math, stu[i].en, stu[i].sum, stu[i].ave);
}
else
printf("学生信息为空!");
}
else
{
for(i=0; i
{
if(strcmp(str,stu[i].num) == 0)
{
printf("学生学号\t姓名\t年龄\tC语言\t数学\t英语\t总分\t平均分\n");
printf("%-16s%s\t%d\t%d\t%d\t%d\t%d\t%5.1f\n",stu[i].num,stu[i].name,
stu[i].age, stu[i].c, stu[i].math, stu[i].en, stu[i].sum, stu[i].ave);
k = i;
}
}
if(k==-1)
printf("没有找到符合条件的学生\n");
}
return k;
}
void find()
{
char str[15];
printf("请输入要查找的学生学号:");
scanf("%s",str);
display(str);
}
void load_bin()
{
FILE * fp;
char fname[20];
int i=0, flag;
printf("请输入文件名(如:stu.dat):");
scanf("%s",fname);
if((fp=fopen(fname,"rb"))==NULL)
{
printf("不能打开文件,文件读取失败!\n");
return;
}
while(1)
{
flag = fread(&stu[i], sizeof(struct stu_type), 1, fp);
if(flag == 0)
break;
i++;
}
stu_num = i;
printf("从文件中成功读取%d条记录!\n",i);
fclose(fp);
}
void load_txt()
{
FILE * fp;
char fname[20];
int i=0, flag;
printf("请输入文件名(如:stu.txt):");
scanf("%s",fname);
if((fp=fopen(fname,"r"))==NULL)
{
printf("不能打开文件,文件读取失败!\n");
return;
}
while(1)
{
flag=fscanf(fp, "%s %s %d %d %d %d %d %f",stu[i].num,
stu[i].name, &stu[i].age, &stu[i].c, &stu[i].math, &stu[i].en,
&stu[i].sum, &stu[i].ave);
if(flag == EOF)
break;
i++;
}
stu_num = i;
printf("从文件中成功读取%d条记录!\n",i);
fclose(fp);
}
void modify()
{
char str[15], m;
int i;
printf("请输入要修改的学生学号:");
scanf("%s",str);
i = display(str);
if(i!=-1)
{
printf("\n确认修改该学生的信息吗?(y/n)\n");
m = getche();
if(m=='y' || m=='Y')
{
printf("\n请重新输入该学生的信息\n");
printf("\n请输入学号:");
scanf("%s",stu[i].num);
printf("请输入姓名:");
scanf("%s",stu[i].name);
printf("请输入年龄:");
scanf("%d",&stu[i].age);
printf("请输入C语言成绩:");
scanf("%d",&stu[i].c);
printf("请输入数学成绩:");
scanf("%d",&stu[i].math);
printf("请输入英语成绩:");
scanf("%d",&stu[i].en);
stu[i].sum = stu[i].c + stu[i].math + stu[i].en;
stu[i].ave = (float)stu[i].sum/3;
}
}
}
void save_txt()
{
FILE * fp;
char fname[20];
int i;
printf("请输入文件名(如:stu.txt):");
scanf("%s",fname);
if((fp=fopen(fname,"w"))==NULL)
{
printf("不能打开文件,文件保存失败!\n");
return;
}
for(i=0; i
fprintf(fp, "%s %s %d %d %d %d %d %5.2f\n",stu[i].num, stu[i].name,
stu[i].age, stu[i].c, stu[i].math, stu[i].en, stu[i].sum, stu[i].ave);
printf("文件保存成功!\n");
fclose(fp);
}
void sort()
{
int i,j;
struct stu_type temp;
for(i=1; i<=stu_num; i++)
for(j=0; j
if(stu[j].sum
{
temp = stu[j];
stu[j] = stu[j+1];
stu[j+1] = temp;
}
printf("排序结果如下:\n");
printf("名次\t学生学号\t姓名\t年龄\tC语言\t数学\t英语\t总分\t平均分\n");
for(i=0; i
printf("%d\t%-16s%s\t%d\t%d\t%d\t%d\t%d\t%5.1f\n",i+1,stu[i].num,
stu[i].name, stu[i].age, stu[i].c, stu[i].math, stu[i].en,
stu[i].sum, stu[i].ave);
}
void save_bin()
{
FILE * fp;
char fname[20];
printf("请输入文件名(如:stu.dat):");
scanf("%s",fname);
if((fp=fopen(fname,"wb"))==NULL)
{
printf("不能打开文件,文件保存失败!\n");
return;
}
fwrite(stu,sizeof(struct stu_type), stu_num,fp);
printf("文件保存成功!\n");
fclose(fp);
}
更多相关内容 -
java期末大作业学生信息管理系统源代码.zip
2022-06-09 06:36:53java期末大作业学生信息管理系统源代码。本系统大致分为三个模块,学生端,系管理员端与超级管理员端。 软件架构 学生端 学生端功能: 认证方面 有学生注册,登录,激活与忘记密码。其中激活是通过邮箱进行激活的,... -
学生信息管理系统源代码
2017-12-12 13:23:34数据库:mysql jdk:1.7 tomcat:7.0 部署方式: 1.把项目导入eclipse,jdk版本和tomcat版本不一致请修改。 2.在mysql中新建名为Student的数据库,导入sql. -
JAVA学生信息管理系统源代码.pdf
2020-12-15 11:14:30//student importjava.sql; importjava.util.Scanner; importjava.io; publicclassstudent { private Stringid; private Stringname; privateintmath; privateint english; privateintjava; privateint computer;... -
java开发课程设计项目学生信息管理系统源代码.zip
2022-06-08 09:32:42java开发课程设计项目学生信息管理系统源代码java开发课程设计项目学生信息管理系统源代码java开发课程设计项目学生信息管理系统源代码java开发课程设计项目学生信息管理系统源代码java开发课程设计项目学生信息管理... -
学生信息管理系统源代码.txt
2020-07-24 13:10:30学生成绩管理系统是一个具有整合学生成绩的综合性系统,其功能包括对每个学生成绩的录入、修改、删除、查询等具体功能。学生成绩管理系统运用了结构体、链表、文件等的基本知识,并对各个模块的功能进行整合。作为... -
C语言实现学生信息管理系统源代码文件
2019-11-25 20:38:13用申请动态内存的方式实现C语言学生信息管理系统, 可以实现学生的增、删、改、查、列、保存、加载等功能的实现,最大的特点就是全部用指针实现功能,不必进行传参,节省了内存。 -
基于SSM的学生信息管理系统源代码
2020-01-02 10:04:29基于SSM的学生信息管理系统源代码。 -
python实现的学生信息管理系统设计源代码【GUI界面版】
2021-07-03 18:22:54python实现的学生信息管理系统—GUI界面版Python学生信息管理系统设计源代码 设计一个GUI界面的学生信息管理系统,方便保存学生的部分信息。 有五类功能: 1、增加学生信息:输入姓名、学号、年龄、手机号 2、修改... -
javaweb期末课程设计学生信息管理系统源代码.zip
2022-06-08 17:27:44javaweb期末课程设计学生信息管理系统源代码。已实现功能:登录(验证码验证),增删改查,excel导入导出,显示头像。 使用说明 导入sql文件夹内的sql文件 运行项目 初始账户密码为Admin/123456,可更改。 javaweb... -
Java学生信息管理系统源码,源代码系统
2019-04-23 14:32:43Java学生信息管理系统源码,源代码系统。 Java学生信息管理系统源码包! 值得下载看看!资源免费,大家分享!! java -
基于单链表的学生信息管理系统源代码.pdf
2021-06-26 15:34:44基于单链表的学生信息管理系统源代码 -
java学生信息管理系统源代码
2021-03-04 02:18:22导读正文本文实例为大家分享了java学生信息管理系统的具体代码,实现学生信息: 增加 int[] a=new int[9] 、删除 、查找、更改,供大家参考,具体内容如下/*学生信息管理系统,实现学生信息:*增加 int[] a=new int...导读
正文
本文实例为大家分享了java学生信息管理系统的具体代码,实现学生信息: 增加 int[] a=new int[9] 、删除 、查找、更改,供大家参考,具体内容如下
/*学生信息管理系统,实现学生信息:
*增加 int[] a=new int[9]
*删除
*查找
*更改
*/
import java.util.Scanner;//导入java输入流
import java.lang.*;
import java.io.*;
class Student
{
private static Student[] s=new Student[2];
int n=0;
private String name;
private int num;
private String classAge;
public void judge()throws IOException
{
int i;
char ch;
String str;
Scanner In=new Scanner(System.in);
if(n==0)
{
System.out.print("你还没有录入任何学生,是否录入(Y/N):");
str=In.next();
ch=str.charAt(0);
while(ch!='Y'&&ch!='y'&&ch!='N'&&ch!='n')
{
System.out.print("输入有误,请重新输入:");
str=In.next();
ch=str.charAt(0);
}
if(ch=='Y'||ch=='y')
{
this.add();
}
if(ch=='N'||ch=='n')
{
this.menu();
}
}
}
public void menu()throws IOException//定义菜单函数
{
int a;//定义switch语句变量
Scanner in=new Scanner(System.in);//实例化输入流对象
System.out.println("*********学生信息管理系统功能表*********");
System.out.println("***** 1.增加 *****");
System.out.println("***** 2.显示 *****");
System.out.println("***** 3.修改 *****");
System.out.println("***** 4.删除 *****");
System.out.println("***** 5.查看 *****");
System.out.println("***** 0.退出 *****");
System.out.println("****************************************");
System.out.print("请选择(0~5):");
a=in.nextInt();
while(a<0||a>5)
{
System.out.print("输入超出范围,请重新输入:");
a=in.nextInt();
}
switch(a)
{
case 1:this.add();break;
case 2:this.show();break;
case 3:this.modif();break;
case 4:this.delete();break;
case 5:this.look();break;
case 0:System.exit(0);break;
}
}
public void add()throws IOException//定义增加函数
{
String str,str1,str2;
int i,num1,t=1;
char ch,ch1;
FileWriter fw=new FileWriter("F://javaFile//student.txt",true);
fw.write(" 录入的学生信息列表\r\n\r\n学号 姓名 班级\r\n");
Scanner In=new Scanner(System.in);
while(t==1)
{
System.out.print("请输入学生学号:");
num1=In.nextInt();
for(i=0;i
{
while(s[i].num==num1)
{
System.out.println("已存在此学号,请重新输入");
System.out.print("请输入学号:");
num1=In.nextInt();
}
}
s[n].num=num1;
str2=String.valueOf(num1);
fw.write(str2+" ");
System.out.println();
System.out.print("请输入学生姓名:");
s[n].name=In.next();
fw.write(s[n].name+" ");
System.out.println();
System.out.print("请输入学生班级:");
s[n].classAge=In.next();
fw.write(s[n].classAge+"\r\n");
++n;
fw.close();
System.out.println();
System.out.print("是否继续添加(Y/N)");
str=In.next();
ch=str.charAt(0);
while(ch!='N'&&ch!='n'&&ch!='Y'&&ch!='y')
{
System.out.print("输入有误,请重新输入:");
str=In.next();
ch=str.charAt(0);
}
if(ch=='N'||ch=='n')
{
break;
}
}
System.out.println();
System.out.print("是否返回主菜单(Y/N)");
str1=In.next();
ch1=str1.charAt(0);
while(ch1!='Y'&&ch1!='y'&&ch1!='N'&&ch1!='n')
{
System.out.print("输入有误,请重新输入:");
str1=In.next();
ch1=str1.charAt(0);
}
if(ch1=='Y'||ch1=='y')
{
this.menu();
}
if(ch1=='N'||ch1=='n')
{
System.out.println("正在退出...谢谢使用!");
System.exit(0);
}
}
public void show()throws IOException
{
int i;
this.judge();
System.out.println("本次操作共录入"+n+"位学生!");
System.out.println("你录入的学生信息如下:");
System.out.println();
System.out.println("学号\t\t姓名\t班级");
for(i=0;i
{
System.out.println(s[i].num+" "+s[i].name+" "+s[i].classAge);
}
System.out.println("系统返回主菜单!");
this.menu();
}
public void delete()throws IOException//删除信息功能实现 注:本功能暂时不具备可扩展性
{
this.judge();
int j=0,t=0,k=0,num1;
char ch;
String str;
Scanner pin=new Scanner(System.in);
System.out.print("请输入要删除的学号:");
num1=pin.nextInt();
for(j=0;j
{
if(s[j].num==num1)
{
k=1;
t=j;
}
}
if(k==0)
{
System.out.println("对不起!你要删除的学号不存在!");
System.out.println("系统将返回主菜单!");
this.menu();
}
if(k==1)
{
System.out.println("你要删除的学生信息如下:");//打印管理员要删除的学生信息
System.out.println("学号\t姓名\t班级");//本功能暂时不备扩展性
System.out.println(s[t].num+" "+s[t].name+" "+s[t].classAge);
System.out.println();
System.out.print("你确定要删除(Y/N):");
str=pin.next();
ch=str.charAt(0);
while(ch!='Y'&&ch!='y'&&ch!='N'&&ch!='n')
{
System.out.print("输入有误,请重新输入:");
str=pin.next();
ch=str.charAt(0);
}
if(ch=='N'||ch=='n')
{
System.out.println();
System.out.println("系统返回主菜单!");
this.menu();
}
if(ch=='Y'||ch=='y')
{
for(j=t;j
{
s[j]=s[j+1];
}
n--;
System.out.println("数据成功删除!");
System.out.println("系统返回主菜单!");
this.menu();
}
}
}
public void look()throws IOException
{
FileReader fr=new FileReader("F://javaFile//student.txt");
int a;
while((a=fr.read())!=-1)
{
System.out.print((char)a);
}
fr.close();
System.out.println("系统返回主菜单!");
System.out.println();
this.menu();
}
public void modif()throws IOException
{
this.judge();
int j=0,num2,num3,moi,c=1;
char ch;
String str,str2;
Scanner pin=new Scanner(System.in);
System.out.print("请输入要修改的学号:");
num2=pin.nextInt();
for(j=0;j
{
if(s[j].num==num2)
{
k=1;
t=j;
}
}
if(k==0)
{
System.out.println("对不起!你要修改的学号不存在!");
System.out.println("系统将返回主菜单!");
this.menu();
}
if(k==1)
{
System.out.println("你要修改的学生信息如下:");//打印管理员要删除的学生信息
System.out.println("学号\t姓名\t班级");//本功能暂时不备扩展性
System.out.println(s[t].num+" "+s[t].name+" "+s[t].classAge);
System.out.println();
System.out.print("你确定要修改(Y/N):");
str=pin.next();
ch=str.charAt(0);
while(ch!='Y'&&ch!='y'&&ch!='N'&&ch!='n')
{
System.out.print("输入有误,请重新输入:");
str=pin.next();
ch=str.charAt(0);
}
if(ch=='N'||ch=='n')
{
System.out.println();
System.out.println("系统返回主菜单!");
this.menu();
}
while(c==1)
{
if(ch=='Y'||ch=='y')
{
System.out.println("****************************************");
System.out.println("***** 1.修改学号 *****");
System.out.println("***** 2.修改班级 *****");
System.out.println("***** 3.修改姓名 *****");
System.out.println("****************************************");
System.out.print("请选择:");
moi=pin.nextInt();
switch(moi)
{
case 1:System.out.print("请输入新的学号:");num3=pin.nextInt();s[t].num=num3;break;
case 2:System.out.print("请输入新的班级:");str1=pin.next();s[t].classAge=str1;break;
case 3:System.out.print("请输入新的姓名:");str2=pin.next();s[t].name=str2;break;
}
System.out.println("数据已成功修改!");
}
System.out.print("是否继续修改(Y/N)");
str=pin.next();
ch=str.charAt(0);
System.out.println();
while(ch!='Y'&&ch!='y'&&ch!='N'&&ch!='n')
{
System.out.print("输入有误,请重新输入:");
str=pin.next();
ch=str.charAt(0);
}
if(ch=='N'||ch=='n')
{
break;
}
}
}
System.out.println();
System.out.println("系统返回主菜单!");
this.menu();
}
public static void main(String[] args)throws IOException
{
Student stu=new Student();
for(int i=0;i<2;i++)
{
s[i]=new Student();
}
stu.menu();
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。
相关
总结
以上是编程之家为你收集整理的java学生信息管理系统源代码全部内容,希望文章能够帮你解决java学生信息管理系统源代码所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250
-
Java开发项目学生信息管理系统源代码也可用于课设+大作业.zip
2022-06-07 17:56:25Java开发项目学生信息管理系统源代码也可用于课设+大作业。一个学生信息管理后台,适用于大作业,课设等 软件架构 springboot+mybatis+thymeleaf (前后端未分离) 安装教程 注:mysql数据库要8.0以上,,本地... -
学生信息管理系统java课程设计含源代码.docx
2020-09-29 15:24:09JAVA程序设计课程设计报 学生信息管理系统 名: 口 号: 同组姓名: 专业班级: 1功能模块划分2数据库结构描述3系统详细设计文档4 1 功能模块划分 2 数据库结构描述 3 系统详细设计文档 4 各个模块的实现方法描述 5 测试... -
基于Java Web的学生信息管理系统的设计与实现(毕业设计论文+源代码+oracle数据库文件)
2019-12-31 16:54:19学生信息管理系统是典型的信息管理系统 (MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面.对于前者要求建立起数据一致性和完整性强、数据安全性好的库.而对于后者则要求应用程序功能完备,... -
C语言学生信息管理系统源代码
2020-12-22 10:21:36大学C语言实训课学习到的一段源代码,C语言学生信息管理系统。 #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<string.h> struct stu_inf//学生信息结构体定义 { int...相关文章推荐:
1、 C语言学生成绩管理系统源代码 ★★★★★
2、 C语言学籍管理系统源代码 ★★
3、C语言学生成绩管理系统设计 《C语言程序设计》实训报告 ★★★
4、职工信息管理系统C++代码 ★★★
扫描上方二维码,回复 999 直接获取作者之前收藏的学习资源,谢谢网友们的分享。
更多管理系统更新中,请注意关注!
大学C语言实训课学习到的一段源代码,C语言学生信息管理系统。
#include<stdio.h> #include<conio.h> #include<stdlib.h> #include<string.h> struct stu_inf//学生信息结构体定义 { int age,year,month; long int number; char name[10],sex[4],tel[15],email[30],address[50]; struct stu_inf *next; }; #define LEN sizeof(struct stu_inf) int STU_SUM=0;//学生总数同时写入文件再次读取可防止读取空文本出现乱码的情况。 int FLAG=0;//判断是否对学生信息进行了改动 struct stu_inf *Stu_Create(struct stu_inf *head);//学生信息录入 struct stu_inf *Stu_Delete(struct stu_inf *head);//学生信息删除 struct stu_inf *Stu_Correct(struct stu_inf *head);//学生信息修改 struct stu_inf *Stu_Search_Number(struct stu_inf *head,int number);//按学号查询学生信息 struct stu_inf *Stu_Search_Name(struct stu_inf *head,char *name);//按姓名查询学生信息 struct stu_inf *Stu_Insert(struct stu_inf *head,struct stu_inf *stu);//学生信息的插入 void Stu_Print(struct stu_inf *head);//学生信息的输出 void Stu_Search(struct stu_inf *head);//选择按何种方式查询学生信息 void Write_Data(struct stu_inf *head);//学生信息写入到文件 struct stu_inf *Read_Data();//学生信息读入到文件 void main() { char choice,choice2; struct stu_inf *head=NULL; head=Read_Data(); do { printf("\n\t\t------------------\n"); printf("\t\t学生信息管理系统\n"); printf("\t\t-*-*-*-*-*-*-*-*-*\n"); printf("\t\t(1)---录入学生信息\n"); printf("\t\t(2)---浏览学生信息\n"); printf("\t\t(3)---查询学生信息\n"); printf("\t\t(4)---删除学生信息\n"); printf("\t\t(5)---修改学生信息\n"); printf("\t\t(0)---退出系统\n"); printf("\t\t-*-*-*-*-*-*-*-*-*\n"); printf("\t\t请输入您的选择:"); choice=getche(); putchar('\n'); switch(choice) { case '1': head=Stu_Create(head); break; case '2': Stu_Print(head); break; case '3': Stu_Search(head); break; case '4': head=Stu_Delete(head); break; case '5': Stu_Correct(head); break; case '0': if(FLAG==1) { printf("\n是否将改动保存到“学生信息.txt”?(y/n)\n"); do { choice2=getche(); switch(choice2) { case 'y': Write_Data(head); break; case 'n': break; } }while(choice2!='n'&&choice2!='y'); } break; default: printf("\n无效的选项。\n"); break; } printf("\n按任意键继续..."); getch(); putchar('\n'); }while(choice!='0'); exit(0); } stu_inf *Stu_Create(struct stu_inf *head)//学生信息录入 { struct stu_inf *p; p=(struct stu_inf *)malloc(LEN); printf("\n请输入学号:"); scanf("%d",&p->number); printf("请输入姓名:"); scanf("%s",p->name); printf("请输入年龄:"); scanf("%d",&p->age); printf("请输入性别:"); scanf("%s",p->sex); printf("请输入出生年月(年月之间用空格隔开):"); scanf("%d%d",&p->year,&p->month); printf("请输入地址:"); scanf("%s",p->address); printf("请输入电话号码:"); scanf("%s",p->tel); printf("请输入E-mail:"); scanf("%s",p->email); p->next=NULL; head=Stu_Insert(head,p); STU_SUM++; FLAG=1; printf("\n该学生的信息为:\n"); printf("-----------------------------------------------------------\n"); printf("学号\t姓名\t年龄\t性别\t出生年月\t\t地址\t电话\tE-mail\n"); printf("%d\t%s\t%d\t%s\t%d %d\t%s\t\t%s\t%s\n", p->number,p->name,p->age,p->sex,p->year,p->month,p->address,p->tel,p->email); return head; } struct stu_inf *Stu_Insert(struct stu_inf *head,struct stu_inf *stu)//学生信息插入 { struct stu_inf *phead=head,*pstu=stu,*previous; if(head==NULL) head=stu; else { while(pstu->number > phead->number && phead->next != NULL) previous=phead,phead=phead->next; if(pstu->number <= phead->number) { if(phead==head) head=pstu; else previous->next=pstu; pstu->next=phead; } else phead->next=pstu; } return head; } void Stu_Search(struct stu_inf *head)//选择按何种方式查询学生信息 { if(head==NULL) { printf("\n无学生信息。\n\n"); return ; } int number; char choice; char *name=(char *)calloc(15,sizeof(char)); do { printf("\n\n\t学生信息查询\n"); printf("------------------------------\n"); printf("\t按学号查询 请按1\n"); printf("\t按姓名查询 请按2\n"); printf("\t取消 请按0\n"); printf("------------------------------\n"); printf("请输入您的选择:"); choice=getche(); putchar('\n'); switch(choice) { case '0': return; case '1': printf("\n请输入学号:"); scanf("%d",&number); Stu_Search_Number(head,number); break; case '2': printf("\n请输入姓名:"); scanf("%s",name); Stu_Search_Name(head,name); break; default: printf("\n无效的选项。\n"); break; } printf("\n按任意键继续..."); getch(); putchar('\n'); }while(1); } struct stu_inf *Stu_Search_Number(struct stu_inf *head,int number)//按学号查询学生信息 { struct stu_inf *p=head; if(head==NULL) printf("\n无学生信息。\n\n"); else { while(p->number != number && p->next != NULL) p=p->next; if(p->number==number) { printf("\n学号\t姓名\t年龄\t性别\t出身年月\t地址\t电话\tE-mail\n"); printf("%d\t%s\t%d\t%s\t%d %d\t%s\t%s\t%s\n", p->number,p->name,p->age,p->sex,p->year,p->month,p->address,p->tel,p->email); } else printf("\n无该学生的记录。\n\n"); } return p; } struct stu_inf *Stu_Search_Name(struct stu_inf *head,char *name)//按姓名查询学生信息 { struct stu_inf *p=head; if(head==NULL) printf("\n无学生信息。\n\n"); else { while(strcmp(p->name,name) != 0 && p->next != NULL) p=p->next; if(strcmp(p->name,name)==0) { printf("\n学号\t姓名\t年龄\t性别\t出身年月\t地址\t电话\tE-mail\n"); printf("%d\t%s\t%d\t%s\t%d %d\t%s\t%s\t%s\n", p->number,p->name,p->age,p->sex,p->year,p->month,p->address,p->tel,p->email); } else printf("\n无该学生的记录。\n\n"); } return p; } void Stu_Print(struct stu_inf *head)//学生信息的输出 { struct stu_inf *p=head; if(head==NULL) printf("\n无学生信息。\n\n"); else { printf("\n学生总数:%d\n",STU_SUM); printf("\n学号\t姓名\t年龄\t性别\t出身年月\t地址\t电话\tE-mail\n"); while(p!=NULL) { printf("%d\t%s\t%d\t%s\t%d %d\t%s\t%s\t%s\n", p->number,p->name,p->age,p->sex,p->year,p->month,p->address,p->tel,p->email); p=p->next; } } } struct stu_inf *Stu_Delete(struct stu_inf *head)//学生信息删除 { struct stu_inf *phead=head,*previous; int number; if(head==NULL) { printf("\n无学生信息。\n\n"); return NULL; } printf("\n请输入要删除的学生的学号:"); scanf("%d",&number); while(phead->number != number && phead->next != NULL) previous=phead,phead=phead->next; if(phead->number==number) { if(phead==head) head=phead->next; else previous->next=phead->next; printf("\n删除成功。\n\n"); STU_SUM--; FLAG=1; } else printf("\n无该学生的信息。\n\n"); return head; } struct stu_inf *Stu_Correct(struct stu_inf *head)//学生信息修改 { struct stu_inf *phead=head; int number; char choice; if(head==NULL) { printf("\n无学生信息。\n\n"); return NULL; } else { printf("\n请输入要修改的学生的学号:"); scanf("%d",&number); while(phead->number != number && phead->next != NULL) phead=phead->next; if(phead->number==number) { printf("\n该学生的信息:\n"); printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * "); printf("\n学号\t姓名\t年龄\t性别\t出身年月\t地址\t电话\tE-mail\n"); printf("%d\t%s\t%d\t%s\t%d %d\t%s\t%s\t%s\n", phead->number,phead->name,phead->age,phead->sex,phead->year,phead->month,phead->address,phead->tel,phead->email); printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \n"); do { 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("请输入您的选择:"); choice=getche(); putchar('\n'); switch(choice) { case '0': return head; case '1': printf("\n请输入新姓名:"); scanf("%s",phead->name); FLAG=1; break; case '2': printf("\n请输入新年龄:"); scanf("%d",&phead->age); FLAG=1; break; case '3': printf("\n请输入新性别:"); scanf("%s",phead->sex); FLAG=1; break; case '4': printf("\n请输入新的出生年月(年月之间用空格隔开):"); scanf("%d%d",&phead->year,&phead->month); FLAG=1; break; case '5': printf("\n请输入新的地址:"); scanf("%s",phead->address); FLAG=1; break; case '6': printf("\n请输入新的电话号码:"); scanf("%s",phead->tel); FLAG=1; break; case '7': printf("\n请输入新的E-mail:"); scanf("%s",phead->email); FLAG=1; break; default: printf("\n无效的选项。\n\n"); break; } printf("\n按任意键继续..."); getch(); putchar('\n'); }while(choice!='0'); } else printf("\n无该学生的信息。\n\n"); } return head; } void Write_Data(struct stu_inf *head)//学生信息写入到文件 { FILE *fp; struct stu_inf *p; if((fp=fopen("学生信息.txt","w"))==NULL) { printf("\n*************\n"); printf("文件创建失败。\n\n"); printf("*************\n"); return; } fprintf(fp,"学生总数:%d\n",STU_SUM); if(STU_SUM!=0) fprintf(fp,"\n学号\t姓名\t年龄\t性别\t出身年月\t地址\t电话\tE-mail\n"); for(p=head;p!=NULL;p=p->next) fprintf(fp,"%d\t%s\t%d\t%s\t%d %d\t%s\t%s\t%s\n", p->number,p->name,p->age,p->sex,p->year,p->month,p->address,p->tel,p->email); fclose(fp);/* printf("\n*************\n"); printf("文件写入成功。\n"); printf("*************\n");*/ } struct stu_inf *Read_Data()//从文件读入学生信息 { FILE *fp; struct stu_inf *p,*phead,*head; if((fp=fopen("学生信息.txt","r"))==NULL) {/* printf("\n*************\n"); printf("文件读取失败。\n"); printf("*************\n");*/ return NULL; }/* printf("\n*************\n"); printf("文件读取成功。\n"); printf("*************\n");*/ fscanf(fp,"学生总数:%d\n",&STU_SUM); if(STU_SUM==0) return NULL; fscanf(fp,"\n学号\t姓名\t年龄\t性别\t出身年月\t地址\t电话\tE-mail\n"); head=phead=p=(struct stu_inf *)malloc(LEN); fscanf(fp,"%d\t%s\t%d\t%s\t%d %d\t%s\t%s\t%s\n", &p->number,p->name,&p->age,p->sex,&p->year,&p->month,p->address,p->tel,p->email); while(!feof(fp)) { p=(struct stu_inf *)malloc(LEN); fscanf(fp,"%d\t%s\t%d\t%s\t%d %d\t%s\t%s\t%s\n", &p->number,p->name,&p->age,p->sex,&p->year,&p->month,p->address,p->tel,p->email); phead->next=p; phead=phead->next; } phead->next=NULL; fclose(fp); return head; }
也希望能帮到正在做实训报告的你,欢迎留言区讨论。
分享:C语言学生成绩管理系统设计 《C语言程序设计》实训报告
扫描下方公众号,发送 成绩系统 4个字,获取下载实训源码。
扫描上方二维码,回复 999 直接获取作者之前收藏的学习资源,谢谢网友们的分享。
回复 系统大全,即可获得关于C语言管理系统比较全面的文章内容,覆盖全网(有点夸张,随时更新,没获取到的朋友直接留言告诉一声)
-
C#实现的学生信息管理系统源代码+指导文档-oracle课程设计
2019-12-26 17:21:18C#实现的学生信息管理系统源代码+指导文档-oracle课程设计。C#实现的学生信息管理系统源代码+指导文档-oracle课程设计。 -
学生信息管理系统(python)源代码
2019-07-14 15:51:08学生信息管理系统(python)源代码,里面包含两种做法(基于过程和面向对象) -
简单java版学生信息管理系统源代码
2014-06-28 22:10:15简单java版学生信息管理系统源代码 -
SQL学生管理系统(源代码+数据库+论文)学生管理系统.zip
2021-12-27 14:32:55SQL学生管理系统(源代码+数据库+论文)学生管理系统是为了方便管理员即教务处老师对学生进行管理,方便学校管理学生的系统,可以提高工作效率,也可以使对学生的管理变得简单易操作。其主要功能是实现了基础资料、... -
【学生选课信息管理系统】数据库课程设计源代码+报告(MySQL+Java)
2022-06-07 10:08:40【学生选课信息管理系统】数据库课程设计源代码+报告(MySQL+Java) 数据库课程设计,学生选课信息管理系统源代码+设计报告(MySQL+Java) 数据库课程设计——学生选课信息管理系统(MySQL+Java) 分为三类用户角色... -
Java学生信息管理系统源码(含数据库脚本等).zip
2019-12-24 11:22:27学生信息管理系统 功能说明 学生信息管理,包括学生、班级、院系、课程、成绩等的管理。 本程序仅供学习食用。 工程环境 JDK IntelliJ IDEA MySQL 运行说明 1、安装JDK。 2、导入SQL脚本并配置。 使用前... -
python学生信息管理系统实现代码
2020-09-18 07:18:00主要介绍了python学生信息管理系统的实现代码,代码简单,复制即可使用,需要的朋友可以参考下 -
C&C++课程设计——班级学生档案管理系统源代码(源代码+注释).zip
2021-09-22 21:42:28C&C++——班级学生档案管理系统源代码: 实现功能: 一、管理系统 1、输入学生信息;2、显示学生信息;3、修改学生信息;4、追加一个学生信息;5、删除一个学生信息;0、返回; 二、查询系统 根据输入要查询人的...