学生信息管理系统C语言版

合集下载

c语言学生管理系统代码

c语言学生管理系统代码

C语言学生管理系统代码
简介
学生管理系统是一个用于管理学生信息的简单程序,它可以实现添加学生信息、显示学生信息、修改学生信息和删除学生信息等功能。

通过这个系统,学校或机构可以更方便地管理和维护学生的相关数据。

功能
1.添加学生信息:通过输入学生的姓名、学号、年龄和性别等信息,将
学生信息存储在系统中。

每个学生信息包括学号、姓名、年龄和性别等关键信息。

2.显示学生信息:可以显示系统中所有学生的信息,包括学号、姓名、
年龄和性别。

3.修改学生信息:通过输入学生的学号,可以修改该学生的姓名、年龄
和性别等信息。

4.删除学生信息:通过输入学生的学号,可以删除该学生的信息。

实现
下面是一个简单的C语言学生管理系统代码示例:
```c #include <stdio.h> #include <string.h>
#define MAX_STUDENTS 100
// 定义学生结构体 struct Student { int id; char name[100]; int age; char
gender[10]; };
// 定义全局变量,用于存储学生信息和统计学生数量 struct Student
students[MAX_STUDENTS]; int num_students = 0;
// 添加学生 void addStudent() { if (num_students >= MAX_STUDENTS) { printf(。

学生信息管理系统c语言代码

学生信息管理系统c语言代码

#include<stdio.h>#include<stdlib.h>#include<string.h>#define LEN 15#define N 100struct record //定义结构体{char code[LEN];char name[LEN];int age;char sex[3];char time[LEN];char add[30];char tel[LEN];char mail[30];}stu[N];int k=1,n,m; //引用void readfile();void seek();void modify();void insert();void del();void display();void save();void menu();int main(){while(k)menu();system("pause");return 0;}void help(){printf("\n0.欢迎使用系统帮助!\n");printf("\n1.进入系统后,先刷新学生信息,再查询;\n");printf("\n2.按照菜单提示键入数字代号;\n");printf("\n3.增加学生信息后,切记保存按;\n");printf("\n4.谢谢您的使用!\n");}void readfile()//建立信息{char *p="student.txt";FILE *fp;int i=0;if ((fp=fopen("C:\\Users\\86139\\Desktop\\student.txt","r+"))==NULL){printf("Open file %s error! Strike any key to exit!",p);system("pause");//暂停的意思,等待用户信号exit(0);}while(fscanf(fp,"%s %s %d %s %s %s %s %s",stu[i].code,stu[i].name,&stu[i].age,stu[i].sex,stu[i].time,s tu[i].add,stu[i].tel,stu[i].mail)==8){i++;i=i;}fclose(fp);n=i;printf("录入完毕!\n");}void seek() //查找信息{int i,item,flag;char s1[21];printf("------------------\n");printf("-----1.按学号查询-----\n");printf("-----2.按姓名查询-----\n");printf("-----3.退出本菜单-----\n");printf("------------------\n");while(1){printf("请选择子菜单编号:");scanf("%d",&item);flag=0;switch(item){case 1:printf("请输入要查询的学生的学号:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].code,s1)==0)//{flag=1;printf("学生学号学生姓名年龄性别出生年月地址电话E-mail\n");printf("--------------------------------------------------------------------\n");printf("%6s %7s %6d %5s %9s %8s %10s %14s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,st u[i].time,stu[i].add,stu[i].tel,stu[i].mail);if(flag==0){printf("该学号不存在!\n");}}break;case 2:printf("请输入要查询的学生的姓名:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].name,s1)==0){flag=1;printf("学生学号学生姓名年龄性别出生年月地址电话E-mail\n");printf("--------------------------------------------------------------------\n");printf("%6s %7s %6d %5s %9s %8s %10s %14s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,st u[i].time,stu[i].add,stu[i].tel,stu[i].mail);}if(flag==0)printf("该姓名不存在!\n"); break;case 3:return;default:printf("请在1-3之间选择\n");}}}void modify() //修改信息{int i,item,num;char sex1[3],s1[LEN],s2[LEN];printf("请输入要要修改的学生的学号:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].code,s1)==0){num=i;printf("------------------\n");printf("1.修改姓名\n");printf("2.修改年龄\n");printf("3.修改性别\n");printf("4.修改出生年月\n");printf("5.修改地址\n");printf("6.修改电话号码\n");printf("7.修改E-mail地址\n");printf("8.退出本菜单\n");printf("------------------\n");}while(1){printf("请选择子菜单编号:");scanf("%d",&item);switch(item){case 1:printf("请输入新的姓名:\n");scanf("%s",s2);strcpy(stu[num].name,s2); break;case 2:printf("请输入新的年龄:\n");scanf("%d",&stu[num].age);break;case 3:printf("请输入新的性别:\n");scanf("%s",sex1);strcpy(stu[num].sex,sex1); break;case 4:printf("请输入新的出生年月:\n");scanf("%s",s2);strcpy(stu[num].time,s2); break;case 5:printf("请输入新的地址:\n");scanf("%s",s2);strcpy(stu[num].add,s2); break;case 6:printf("请输入新的电话号码:\n");scanf("%s",s2);strcpy(stu[num].tel,s2); break;case 7:printf("请输入新的E-mail地址:\n");scanf("%s",s2);strcpy(stu[num].mail,s2); break;case 8:return;default:printf("请在1-8之间选择\n");}}}void sort()//排序{int i,j,*p,*q,s;char temp[10];for(i=0;i<n-1;i++){for(j=n-1;j>i;j--)if(strcmp(stu[j-1].code,stu[j].code)>0)//比较学号的大小{strcpy(temp,stu[j-1].code); //交换学号以及以下的信息(冒泡排序)strcpy(stu[j-1].code,stu[j].code);strcpy(stu[j].code,temp);strcpy(temp,stu[j-1].name);strcpy(stu[j-1].name,stu[j].name);strcpy(stu[j].name,temp);strcpy(temp,stu[j-1].sex);strcpy(stu[j-1].sex,stu[j].sex);strcpy(stu[j].sex,temp);strcpy(temp,stu[j-1].time);strcpy(stu[j-1].time,stu[j].time);strcpy(stu[j].time,temp);strcpy(temp,stu[j-1].add);strcpy(stu[j-1].add,stu[j].add);strcpy(stu[j].add,temp);strcpy(temp,stu[j-1].tel);strcpy(stu[j-1].tel,stu[j].tel);strcpy(stu[j].tel,temp);strcpy(temp,stu[j-1].mail);strcpy(stu[j-1].mail,stu[j].mail);strcpy(stu[j].mail,temp);p=&stu[j-1].age;q=&stu[j].age;s=*q;*q=*p;*p=s;}}}void insert()//插入函数{int i=n,j,flag;printf("请输入待增加的学生数:\n");scanf("%d",&m);do{flag=1;while(flag){flag=0;printf("请输入第%d 个学生的学号:\n",i+1);scanf("%s",stu[i].code);for(j=0;j<i;j++)if(strcmp(stu[i].code,stu[j].code)==0){printf("已有该学号,请检查后重新录入!\n");flag=1;break;}}printf("请输入第%d 个学生的姓名:\n",i+1);scanf("%s",stu[i].name);printf("请输入第%d 个学生的年龄:\n",i+1);scanf("%d",&stu[i].age);printf("请输入第%d 个学生的性别:\n",i+1);scanf("%s",stu[i].sex);printf("请输入第%d 个学生的出生年月:(格式:年.月)\n",i+1);scanf("%s",stu[i].time);printf("请输入第%d 个学生的地址:\n",i+1);scanf("%s",stu[i].add);printf("请输入第%d 个学生的电话:\n",i+1);scanf("%s",stu[i].tel);printf("请输入第%d 个学生的E-mail:\n",i+1);scanf("%s",stu[i].mail);if(flag==0){i=i;i++;}}while(i<n+m);n+=m;printf("录入完毕!\n\n");sort();}void del()//删除信息{int i,j,flag=0;char s1[LEN+1];printf("请输入要删除学生的学号:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].code,s1)==0){flag=1;for(j=i;j<n-1;j++)stu[j]=stu[j+1];}if(flag==0)printf("该学号不存在!\n");if(flag==1){printf("删除成功,显示结果请选择菜单\n");n--;}}void display() //浏览信息{int i;printf("所有学生的信息为:\n");printf("学生学号学生姓名年龄性别出生年月地址电话E-mail\n");printf("--------------------------------------------------------------------\n");for(i=0;i<n;i++){printf("%6s %7s %5d %5s %9s %8s %10s %14s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].ti me,stu[i].add,stu[i].tel,stu[i].mail);}}void save() // 保存{int i;FILE *fp;fp=fopen("C:\\Users\\86139\\Desktop\\student.txt","a");for(i=0;i<n;i++){fprintf(fp,"%s %s %d %s %s %s %s %s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i]. add,stu[i].tel,stu[i].mail);}fclose(fp);}void menu()//菜单{int num;printf(" \n\n 学生信息管理系统\n\n");printf("*********************系统功能菜单************************ \n");printf("友情提示:查询前请先刷新系统!\n");printf(" ---------------------- ---------------------- \n");printf(" ********************************************* \n");printf(" * 0.系统帮助及说明* * 1.刷新学生信息* \n");printf(" ********************************************* \n");printf(" * 2.查询学生信息* * 3.修改学生信息* \n");printf(" ********************************************* \n");printf(" * 4.增加学生信息* * 5.按学号删除信息* \n");printf(" ********************************************* \n");printf(" * 6.显示当前信息* * 7.保存当前学生信息* \n");printf(" ********************** ********************** \n");printf(" * 8.退出系统* \n");printf(" ********************** \n");printf(" ---------------------- ---------------------- \n");printf("请选择菜单编号:");scanf("%d",&num);switch(num){case 0:help();break;case 1:readfile();break;case 2:seek();break;case 3:modify();break;case 4:insert();break;case 5:del();break;case 6:display();break;case 7:save();break;case 8:k=0;break;default:printf("请在0-8之间选择\n");} }。

学生管理系统c语言简单版

学生管理系统c语言简单版

学生管理系统c语言简单版学生管理系统c语言简单版介绍:学生管理系统是一种用于管理学生信息的软件,它可以方便地对学生的基本信息、课程成绩等进行录入、查询、修改和删除等操作。

本文将介绍如何使用C语言编写一个简单的学生管理系统。

功能:1. 添加学生信息2. 查询学生信息3. 修改学生信息4. 删除学生信息5. 显示所有学生信息实现方法:1. 添加学生信息添加学生信息需要输入以下内容:姓名、性别、年龄、班级和电话号码。

我们可以定义一个结构体来存储这些信息,代码如下:```struct Student {char name[20];char sex[10];int age;char class[20];char phone[20];};```然后定义一个数组来存储多个学生的信息:```struct Student students[100];int count = 0; // 学生数量```接下来,我们可以编写一个函数来添加新的学生信息:```void addStudent() {struct Student student;printf("请输入姓名:");scanf("%s", );printf("请输入性别:");scanf("%s", student.sex);printf("请输入年龄:");scanf("%d", &student.age);printf("请输入班级:");scanf("%s", student.class);printf("请输入电话号码:");scanf("%s", student.phone);students[count++] = student; // 将新的学生信息存储到数组中 printf("添加成功!\n");}```2. 查询学生信息查询学生信息可以按照姓名或电话号码进行查询。

用C语言编写的一个学生信息管理系统

用C语言编写的一个学生信息管理系统

用C语言实现线性表的基本操作,能创建一个基于学生信息管理的链表,至少包含数据输入、数据输出、数据处理等操作。

在主函数里能实现以下功能。

运行后出现一个选择提示。

可选择的功能有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) //如果当前目录下不存在相对应的文件,输出文件不存在,退出系统。

综合应用案例—学生信息管理系统(C语言)

综合应用案例—学生信息管理系统(C语言)

14.3综合应用案例—学生信息管理系统作为学生,同学们最熟悉自己的相关信息了,如果能够设计一个学生信息管理系统,实现全班乃至全校学生信息的管理系统,是非常有实际意义的。

同时,开发一个小型的信息管理系统,综合应用我们之前学习的基本语法知识和程序设计方法,将是一个提升和锻炼实践能力的好机会。

1. 主要功能设计与开发一个学生信息管理系统,对学生的学号、姓名、性别、年龄等基本信息进行管理,实现基本的增、删、改、查等功能。

2. 功能模块设计通过需求分析,按照结构化程序设计自顶向下,逐步细化的方法,以模块化设计为中心的原则,学生信息管理系统应该具有基本的文件管理、编辑、显示三个功能模块。

文件管理模块包括:加载文件、保存文件、拷贝到目标文件、退出系统;编辑模块包括:输入记录、查找记录、修改记录、删除记录、插入记录、记录排序; 显示模块包括:显示全部记录、按序号显示记录。

系统的功能划分如图14.12所示:学生基本信息管理系统输入学生记录浏览学生记录按姓名查找按姓名删除按学号修改插入学生记录保存文件加载文件按序号浏览按姓名排序拷贝文件文件管理模块编辑模块显示模块退出系统图14.12 系统功能模块图3. 数据结构设计为了实现学生信息的管理,系统中采用的主要数据结构是结构体数组,为了方便系统功能扩展及编码方便,使用了#define 定义结构体数组上限,并使用typedef 定义结构体类型别名。

#define M 50 typedef struct{char no[20];char name[20];char sex[5];int age;}STUDENTS;STUDENTS stu[M];4. 函数及调用关系函数是模块化的主要手段,系统的各个主要功能都设计成函数,通过各个函数相互调用,并最终由主函数main调用组装成整个软件系统。

学生信息管理系统由1个.h头文件和2个.c 源文件组成。

程序中除了主函数外,共设计了以下15个函数,以下是这些函数的函数原型及功能设计。

C语言 学生信息查询系统

C语言 学生信息查询系统

以下内容是本人将近一个星期的劳动成果;C语言程序设计,作为本学期最后一次实训。

设计内容:学生信息查询系统可实现:1录入学生信息2显示学生成绩3修改学生成绩4删除学生成绩5按学号查询学生信息6按学好显示学生信息7按总成绩递减输出学生信息其中学生的信息包括:学生总人数,学号,姓名,性别,英语,数学,C语言三科单科成绩及总成绩以下为源程序内容:#include <stdio.h>#include <string.h>//strcpy()#include<process.h>//system(),exit()#include <conio.h>//getch()#define M 100/*全局变量*/int num=-1;/*学生数,从STU[0]开始记录学生信息*/struct studen{long id;/*学号*/char name[8];/*姓名*/char sex[2];/*性别*/intmath;/*数学*/intenglish;/*英语*/intc_program;/*C语言*/inttotal;/*总分*/}STU[M];/*函数声明*/voidpage_title();//显示主菜单void student_new();//输入学生信息void student_del();//删除学生信息void student_edit();//修改学生信息void score_search();//按学号查询成绩void score_sort();//按成绩排序void id_sort();//按学号排序void show();//显示学生记录//void save();//void display();void left();void page_head1();/*打印表头1*/void page_head2();/*打印表头2*/intfind(long);/*按学号查找学生*/voidshow_one(int);/*显示一条记录*/void input_one(int);/*输入一个新学生的信息*/void count(int);/*计算一个新学生的总分*/void in_menu();/*按任意键进入主菜单*//*主函数*/void main(){//display();while(1){ page_title();}}/*主菜单*/void page_title(){char c;system("cls");/*清屏*/printf("\n\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>学生成绩管理系统<<<<<<<<<<<<<<<<<<<<\n\n");printf("\t\t\t\t1录入学生成绩记录\n\n");printf("\t\t\t\t2显示学生成绩记录\n\n");printf("\t\t\t\t3修改学生成绩记录\n\n");printf("\t\t\t\t4删除学生成绩记录\n\n");printf("\t\t\t\t5按学号查询学生记录\n\n");printf("\t\t\t\t6按学号显示学生记录\n\n");printf("\t\t\t\t7按总成绩递减输出\n\n");printf("\t\t\t\t8保存\n\n");printf("\t\t\t\t0退出\n\n");printf("********************************************************** ****************\n");printf("请用数字键0-8选择操作:\n");/*填充程序,完成主菜单显示*/c=getchar();system("cls");switch(c){case'1':student_new();break;case'2':show();break;case'3':student_edit();break;case'4':student_del();break;case'5':score_search();break;case'6':id_sort();break;case'7':score_sort();break;//case'8':save();break;case'0':left();}}/*录入学生基本信息*/void student_new(){int i,n;printf("请输入学生的个数(1-%d)",M);scanf("%d",&n);while(!(n>0 && n<=M)){printf("\n输入的学生人数太多,请重新输入学生人数:");scanf ("%d",&n);}page_head1();while(n--){num++;input_one(num);count(num);}}/*删除学生基本信息*/voidstudent_del(){long id;char c;int n;while(1){printf("请输入你要删除学生的学号:");scanf("%ld",&id);printf("\n");n=find(id);if(n!=-1)break;elsesystem("cls");}page_head2();show_one(n);printf("\n请确认删除吗?请输入Y或者N");c=getch();if('Y'==c || 'y'==c){STU[n]=STU[num];num--;}}/*按学号查找学生*/int find(long id){int n;for(n=0;n<=num;n++)if(STU[n].id==id) return n;return -1;}/*输入一个新学生的信息*/void input_one(intn){scanf("%ld%s%s%d%d%d",&STU[n].id,STU[n].name,STU[n].sex,&STU[n].math,&STU[n].english,&STU[n].c_program);printf("---------------------------------------------------------------------\n");}/*显示所有记录*/void show(){inti,j;page_head2();for(i=0;i<num+1;i++){//if(-1==n)//j=num-i;//else//j=i;show_one(i);}in_menu();}/*显示一条记录*/void show_one(intn){if(strlen(STU[n].name)>=10){printf("%ld\t\t%s\t\t%s\t\t",STU[n].id,STU[n].name,S TU[n].sex);}else{printf("%ld\t\t%s\t\t%s\t",STU[n].id,STU[n].name,STU[n].sex);}printf ("%3d\t%3d\t%3d\t%3d\t\n",STU[n].math,STU[n].english,STU[n].c_program,STU[n].t otal);printf("----------------------------------------------------------------------\n");}/*计算一个新学生的总分*/void count(intn){STU[n].total=STU[n].english+STU[n].math+STU[n].c_program;}/*退出*/voidleft(){exit(0);}/*修改信息*/void student_edit(){long id;int n;while(1){printf("请输入你要修改学生的学号:");scanf("%ld",&id);printf("\n");n=find(id);if(n!=-1)break;elsesystem("cls");}page_head2();show_one(n);printf("\n请输入新的信息:\n");page_head1();scanf("%ld%s%s%d%d%d",&STU[n].id,STU[n].name,STU[n].se x,&STU[n].math,&STU[n].english,&STU[n].c_program);count(n);}/*进入主菜单*/void in_menu(){printf("\n请按任意键进入主菜单");getch();}/*按学号查询成绩*/void score_search(){long id;int n;printf("请输入你要修改学生的学号:");scanf("%ld",&id);printf("\n");n=find(id);if(n!=-1){page_head2();show_one(n);}elseprintf("不存在该学号学生信息!!");in_menu();}/*按学号排序显示*/void id_sort(){int i=0;int n;longmin=STU[0].id;for(i=1;i<=num;i++){if(STU[i].id<min)min=STU[i].id;}page_head2();for(i=0;i<=num;){n=find(min++);if(n!=-1){i++;show_one(n);}}in_menu();}/*按总成绩冒泡降序显示*/voidscore_sort(){struct student t;int i,j;system("cls");for(i=0;i<num;i++){for(j=0;j<num-i;j++){if(STU[j].total<STU[j+1].total){t=STU[j];STU[j]=STU[j+1];STU[j+1]=t;}}}show();}/*打印表头2*/voidpage_head2(){printf("**************************************************** ******************\n");printf("学号\t\t姓名\t\t性别\t数学\t英语\tC语言\t总成绩\n");printf("**********************************************************************\n");}/*打印表头1*/voidpage_head1(){printf("**************************************************** **********\n");printf("学号\t\t姓名\t\t性别\t数学\t英语\tC语言\n");printf("************************************************************ **\n");}。

学生信息管理系统c语言版源代码

学生信息管理系统c语言版源代码

学生信息管理系统c语言版源代码#include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> #define N 1000typedef struct student {int number;char name[20];int grade;int gaoshu;int yingyu;int jisuanji;int sum;}STUDENT;STUDENT student[N]; int shuliang=0;void menu();void fhzjm(){char biaozhi[20];printf("\n");printf("还需要操作么,如果需要操作请输入:yes,否则请输入:no\n");scanf("%s",biaozhi);if(strcmp(biaozhi,"yes")==0){menu();}else if(strcmp(biaozhi,"no")==0)exit(0);else{printf("请输入正确的字符,谢谢~\n"); fhzjm();}}void DengJi(){int rs;int i,k=1;system("CLS");printf("请输入需要输入几个学生信息:"); scanf("%d",&rs);for(i=shuliang;i<shuliang+rs;i++,k++) {printf("请输入第%d个学生的学号:",k); scanf("%d",&student[i].number);printf("请输入学生的姓名:");scanf("%s",student[i].name);printf("请输入学生3门课的成绩:"); printf("请输入第1门课的成绩:");scanf("%d",&student[i].gaoshu);printf("请输入第2门课的成绩:");scanf("%d",&student[i].yingyu);printf("请输入第3门课的成绩:");scanf("%d",&student[i].jisuanji);}shuliang=shuliang+rs;fhzjm();}void ShanChu(){char shanchuinfo[10];system("CLS");printf("删除全部学生信息请输入\"all\",删除指定学号的学生信息请输入\"one\"\n");scanf("%s",shanchuinfo);if(strcmp(shanchuinfo,"all")==0){int j;printf("你删除的学生信息如下:\n");printf("-----------学号-------------姓名-------------高数--------------英语--------------计算机\t\n");for(j=0;j<shuliang;j++)printf("----%d-------%s-------%d-------%d-------%d\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].jisuanji);shuliang=0;printf("删除成功\n\n");}else if(strcmp(shanchuinfo,"one")==0){struct student *p=NULL;int choice;int i,j,k=0;printf("请输入你要删除的人的学号:");scanf("%d",&choice);for(i=0;i<shuliang;i++){if(choice==student[i].number){k=1;j=i;break;}}if(k){if(shuliang==1){p=&student[0];free(p);shuliang=0;}else{for(i=j;i<shuliang;i++) {student[i]=student[i+1];}shuliang=shuliang-1;}printf("删除成功\n\n");}else{printf("输入数据错误~\n"); }}fhzjm();}void LiuLan(){int i;system("CLS");if(shuliang==0){printf("系统里面没有任何学生的信息~\n");}else{for(i=0;i<shuliang;i++){printf("第%d个学生的学号为:%d\n",i+1,student[i].number);printf("第%d个学生的姓名为:%s\n",i+1,student[i].name);printf("第%d个学生的第一门课的成绩为:%d\n",i+1,student[i].gaoshu);printf("第%d个学生的第二门课的成绩为:%d\n",i+1,student[i].yingyu);printf("第%d个学生的第三门课的成绩为:%d\n",i+1,student[i].jisuanji);student[i].sum=student[i].gaoshu+student[i].yingyu+student[i].jisuan ji;printf("第%d个学生的总成绩为:%d\n",i+1,student[i].sum);}}fhzjm();}void ChaZhao(){int xx;char choice,yy[20];int i,j,k=0;system("CLS");if(shuliang==0){printf("系统里面没有任何学生的信息~\n");fhzjm();}printf("三种查找方式:学号,姓名,成绩\n");printf("如果按学号查找请输1,如果按姓名查找请输2,如果按成绩查找请输3\n");printf("请输入您查找的方式:");scanf("%s",&choice);if(choice=='1'){printf("请输入需要查找学生的学号:");scanf("%d",&xx);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数成绩----英语成绩----计算机成绩----\t\n");for(i=0;i<shuliang;i++){if(xx==student[i].number){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[i].jis uanji);}}if(k==0)printf("输入信息有误:\n");}else if(choice=='2'){printf("请输入需要查找学生的姓名:\n");scanf("%s",yy);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数成绩----英语成绩----计算机成绩----\t\n");for(i=0;i<shuliang;i++){if(strcmp(yy,student[i].name)==0){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[j].jis uanji);}}if(k==0)printf("输入信息有误:\n");}else if(choice=='3'){printf("请输入需要查找学生的成绩:\n");scanf("%d",&xx);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数----英语----计算机----\t\n");for(i=0;i<shuliang;i++){if(xx==student[i].grade){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[i].jis uanji);}}if(k==0)printf("输入信息有误:\n");}fhzjm();}void PaiXu(){struct student *p1[N],**p2,*temp;int i,j;system("CLS");p2=p1;for( i=0;i<shuliang;i++){p1[i]=student+i;}for( i=0;i<shuliang;i++){for( j=i+1;j<shuliang;j++){if((*(p2+i))->sum<(*(p2+j))->sum){temp=*(p2+i);*(p2+i)=*(p2+j);*(p2+j)=temp;} }}printf("按照总成绩排序之后的信息为:\n");printf("----学号----姓名----总成绩----\t\n");for( i=0;i<shuliang;i++){student[i].sum=student[i].gaoshu+student[i].yingyu+student[i].jisuan ji;printf("----%d-----%s----%d-----\n",(*(p2+i))->number,(*(p2+i))->name,(*(p2+i))->sum);}fhzjm();}void CunChu(){int i;FILE *rs;if((rs=fopen("student.txt","w"))==NULL){printf("not open");exit(0);}for(i=0;i<shuliang;i++){fwrite(&student[i], sizeof(student[i]), 1, rs); }if(ferror(rs)){fclose(rs);perror("写文件失败~\n");return;}printf("存储文件成功~\n");fclose(rs);fhzjm();}void DaoChu(){struct student t;int i=0;FILE* fp = fopen("student.txt", "r");shuliang=0;if(NULL==fp){perror("读取文件打开失败~\n");return;}memset(student,0x0,sizeof(student));while(1){fread(&t,sizeof(t),1,fp);if(ferror(fp)){fclose(fp);perror("读文件过程失败~\n");return;}if(feof(fp)){break;}student[i]=t;i++;}fclose(fp);shuliang=i; printf("导出文件成功~\n"); fhzjm();}void menu(){int n=0;system("CLS");printf(" 学生信息管理系统\n");printf(" 作者:陈椿\n");printf("-------------------MENU-----------------\n"); printf(" 1.登记学生信息\n");printf(" 2.删除学生信息\n");printf(" 3.浏览所有已经登记的学生\n");printf(" 4.查找\n");printf(" 4.1按学号查找\n");printf(" 4.2按姓名查找\n");printf(" 4.3按成绩查找\n");printf(" 5.根据总成绩排序\n");printf(" 6.存储到文件\n");printf(" 7.从文件导出\n");printf(" 8.退出系统\n");a: printf(" 请选择:");scanf("%d",&n);switch (n){case 1:DengJi();break;case 2:ShanChu();break;case 3:LiuLan();break;case 4:ChaZhao();break;case 5:PaiXu();break;case 6:CunChu();break;case 7:DaoChu();break;case 8:exit(0);break;default:{printf("请输入1-8之间的数字,谢谢~\n"); goto a;}}}main() {menu();}。

C语言编写学生管理系统的代码

C语言编写学生管理系统的代码

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<ctype.h>#include<conio.h>struct student{char number[21];char name[21];int age;char sex[3];char birthday[8];}studentArray[100];typedef struct student student;student studentArray[100];char putout[5][12]={"学号","姓名","年龄","性别","出生年月"}; //为格式化输出做准备int count=0;//函数声明部分void explain();void readfile();void searchStudent();void modifyStudent();void addStudent();void delStudent();void printAllstudent();void save();void quit();void initial();void initial(){FILE *fp;char choice='y';int i=0;fp=fopen("e:\\students.txt","r");if(!fp){printf("创建文件失败,即将返回\n");return ;}for(;fread(&studentArray[i],sizeof(struct student),1,fp)!=0;i++);count=i;}//0、说明模块void explain(){printf("\n 很高兴能为您服务\n");printf("\n1.进入本系统,请先刷新学生信息,再查训\n");printf("\n2.您可以根据自己需要的信息键入菜单上的编号\n");printf("\n3.修改学生信息后记得退出前保存信息,以免信息流失\n");printf("\n4.在各个子菜单里按提示操作\n");printf("\n5.谢谢您的使用及支持\n");}//1、刷新模块void readfile(){char *p="students.txt";FILE *fp;int i=0;if((fp=fopen("students.txt","r"))==NULL){printf("打开文件%s出错!请按按任意键返回",p);system("pause");{i++;i=i;}fclose(fp);printf("刷新完毕。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

//交流学习//QQ:1194758555#include<stdio.h>#include<string.h>#include<stdlib.h>#include<ctype.h>#include<windows.h>int k,n;struct student{double yuwen;double shuxue;double yingyu;double zong;double pingjun;char name[20];char num[20];} stu[1000];void jiazai(struct student stu[],int *num1);void baocun(struct student stu[],int n);void find(struct student stu[],int n);int findnum(struct student stu[],int n,char *num);//查找学号;void shanchu(struct student stu[],int *num1);void shanchuyi(struct student stu[],int *num1);//删除一条记录;void shanchuquanbu(struct student stu[],int *num1);void tianjiayi(struct student stu[],int i);//添加一记录;void tianjia(struct student stu[],int *num1);//添加记录;void xiugai(struct student stu[],int n);//修改一条记录;void output(struct student stu[],int n,int x);//打印信息;void paixu(struct student stu[],int n);//排序;int jianchaxuehao(struct student stu[],char *num);//检查学号的合法性;int jianchachengji(double num);//检查成绩的合法性;void outputone(struct student *stu,int i,int x);//输出一条信息void caidan();int main(){int q;jiazai(stu,&n);caidan();scanf("%d",&q);while(q>6){printf("输入错误请重新输入\n请输入0-6的数字\n");scanf("%d",&q);}Sleep(300);system("cls");switch(q){case 1 :tianjia(stu,&n);break;case 2:xiugai(stu,n);break;case 3:paixu(stu,n);break;case 4:find(stu,n);break;case 5:shanchu(stu,&n);break;case 6:output(stu,n,0);break;case 0:exit(0);}return 0;}void caidan(){printf("┌────────────────────────┐\n");printf("├───────欢迎进入学生信息管理系统─────┤\n");printf("├────────────────────────┤\n");printf("│1添加学生成绩│\n");printf("├────────────────────────┤\n");printf("│2修改学生成绩│\n");printf("├────────────────────────┤\n");printf("│3排序│\n");printf("├────────────────────────┤\n");printf("│4查找│\n");printf("├────────────────────────┤\n");printf("│5删除│\n");printf("├────────────────────────┤\n");printf("│6输出│\n");printf("├────────────────────────┤\n");printf("│0退出│\n");printf("├────────────────────────┤\n");printf("└────────────────────────┘\n");printf("请输入选择:\n");}void jiazai(struct student stu[],int *num1){FILE *fp;int i;if((fp=fopen("d:\\student.dat","r"))==NULL){*num1=0;return;}for(i=0; fread(&stu[i],sizeof(struct student),1,fp)!=0; i++)*num1=i;fclose(fp);}void paixu(struct student stu[],int n){int xuehao(const void *a,const void *b);int yuwen(const void *a,const void *b);int shuxue(const void *a,const void *b);int yingyu(const void *a,const void *b);int zongchengji(const void *a,const void *b);int (*cmp[])(const void *a,const void *b)= {xuehao,yuwen,shuxue,yingyu,zongchengji};int a;printf("┌───────────────────────┐\n");printf("│欢迎进入学生信息排序页面│\n");printf("└───────────────────────┘\n");printf("┌───────────────────────┐\n");printf("│0:按学号降序排序│\n");printf("├───────────────────────┤\n");printf("│1:按语文成绩降序排序│\n");printf("├───────────────────────┤\n");printf("│2:按数学成绩降序排序│\n");printf("├───────────────────────┤\n");printf("│3:按英语成绩降序排序│\n");printf("├───────────────────────┤\n");printf("│4:安总成绩降序排序│\n");printf("└───────────────────────┘\n");printf("请输入选择:\n");scanf("%d",&a);Sleep(300);system("cls");qsort(stu,n,sizeof(stu[0]),cmp[a]);output(stu,n,0);}int xuehao(const void *a,const void *b){if(strcmp(((struct student *)a)->num,((struct student *)b)->num)>0) return -1;elsereturn 1;}int yuwen(const void *a,const void *b){return ((struct student *)a)->yuwen < ((struct student *)b)->yuwen ? 1 : -1; }int shuxue(const void *a,const void *b){return ((struct student *)a)->shuxue < ((struct student *)b)->shuxue ? 1 : -1; }int yingyu(const void *a,const void *b){return ((struct student *)a)->yingyu < ((struct student *)b)->yingyu ? 1 : -1; }int zongchengji(const void *a,const void *b){return ((struct student *)a)->zong < ((struct student *)b)->zong ? 1 : -1;}void shanchuyi(struct student stu[],int *num1){int i,in,c;char y[20];FILE *fp;char str[20];printf("┌───────────────────────┐\n");printf("│欢迎进入学生信息删除页面│\n");printf("└───────────────────────┘\n");printf("请输入需要删除的学号\n");scanf("%s",str);c=jianchaxuehao(stu,str);while(c==0){printf("输入的学号不合法请重新输入\n");scanf("%s",str);c=jianchaxuehao(stu,str);}Sleep(300);system("cls");printf("┌───────────────────────┐\n"); printf("│欢迎进入学生信息删除页面│\n"); printf("└───────────────────────┘\n"); in=findnum(stu,*num1,str);while(in<0){printf("该学生的信息不存在\n");printf("重新输入(yes--y)返回主菜单(no--n)\n");scanf("%s",y);while(strcmp(y,"y")&&strcmp(y,"n")){printf("请输入y或n\n");scanf("%s",y);}if(!strcmp(y,"n")){Sleep(300);system("cls");main();}Sleep(300);system("cls");printf("┌───────────────────────┐\n");printf("│欢迎进入学生信息删除页面│\n");printf("└───────────────────────┘\n");printf("请输入需要删除的学号\n");scanf("%s",str);in=findnum(stu,*num1,str);}for(i=in; i<*num1-1; i++)stu[i]=stu[i+1];(*num1)--;if((fp=fopen("d:\\student.dat","w"))==NULL){printf("打开失败\n");exit(0);}Sleep(300);system("cls");printf("┌───────────────────────┐\n"); printf("│欢迎进入学生信息删除页面│\n"); printf("└───────────────────────┘\n"); printf("删除成功\n");baocun(stu,*num1);printf("继续删除(yes--y)返回上主菜单(no--n)\n");getchar();scanf("%s",y);while(strcmp(y,"y")&&strcmp(y,"n")){printf("请输入y或n\n");getchar();scanf("%s",y);}Sleep(300);system("cls");if(!strcmp(y,"n"))main();if(!strcmp(y,"y"))shanchuyi(stu,num1);}void shanchuquanbu(struct student stu[],int *num1){char y[20],a[20];FILE *fp;printf("┌───────────────────────┐\n");printf("│欢迎进入学生信息删除页面│\n");printf("└───────────────────────┘\n");printf("是否全部删除?(yes--y)返回主菜单(no--n)\n");scanf("%s",y);while(strcmp(y,"y")&&strcmp(y,"n")){printf("请输入y或n\n");scanf("%s",y);}Sleep(300);system("cls");printf("┌───────────────────────┐\n"); printf("│欢迎进入学生信息删除页面│\n"); printf("└───────────────────────┘\n"); if(!strcmp(y,"y")){fp=fopen("d:\\student.dat","w");*num1=0;printf("删除完成\n");fclose(fp);printf("返回主菜单(yes--y)结束(no--n)\n");scanf("%s",a);while(strcmp(a,"y")&&strcmp(a,"n")){printf("请输入y或n\n");scanf("%s",a);}Sleep(300);system("cls");if(!strcmp(a,"y"))main();else{Sleep(300);system("cls");return;}}else{Sleep(300);system("cls");main();}}void shanchu(struct student stu[],int *num1){int q;printf("┌─────────────────┐\n");printf("├───────删除────────┤\n");printf("├─────────────────┤\n");printf("├─────1:删除指定信息─────┤\n");printf("├─────────────────┤\n");printf("├─────2:删除全部信息─────┤\n");printf("├─────────────────┤\n");printf("└─────────────────┘\n");printf("请输入选择:\n");getchar();scanf("%d",&q);system("cls");switch(q){case 1:shanchuyi(stu,num1);break;case 2:shanchuquanbu(stu,num1);break;}}int findnum(struct student stu[],int n,char *num){int i;for(i=0; i<n; i++){if(strcmp(stu[i].num,num)==0){return i;}}return -1;}void baocun(struct student stu[],int n){FILE *fp;if((fp=fopen("d:\\student.dat","w"))==NULL) {printf("打开失败\n");exit(0);}fwrite(stu,(n+1)*sizeof(stu[0]),1,fp);fclose(fp);}void output(struct student stu[],int n,int x){int i;char y[20];if(n>0){printf("┌─────┬───┬───┬───┬───┬───┬───┐\n");printf("│%-10s│%-6s│%-6s│%-6s│%-6s│%-6s│%-6s","学号","姓名","语文","数学","英语","平均","总成绩\n");//printf("└────┘┴\n");for(i=0; i<n; i++){outputone(&stu[i],n,x);}printf("└─────┴───┴───┴───┴───┴───┴───┘\n");if(x){char q[10];printf("返回主菜单(yes-y)返回上级菜单(no-n)\n");scanf("%s",q);while(strcmp(q,"y")&&strcmp(q,"n")){printf("请输入y或n\n");scanf("%s",q);}Sleep(300);system("cls");if(!strcmp(q,"y")){main();}while(!strcmp(q,"n")){paixu(stu,n);}}}elseprintf("没有任记录,请先添加信息\n"); printf("返回主菜单(yes--y)结束(no--n)\n"); scanf("%s",y);while(strcmp(y,"y")&&strcmp(y,"n")){printf("请输入y或n\n");scanf("%s",y);}Sleep(300);system("cls");if(!strcmp(y,"y")){main();}elsereturn;}void outputone(struct student *stu,int n,int x){if(!x){printf("├─────┼───┼───┼───┼───┼───┼───┤\n");printf("│%-10s│%-6s│%-6.2lf│%-6.2lf│%-6.2lf│%-6.2lf │%-6.2lf│\n",stu->num,stu->name,stu->yuwen,stu->shuxue,stu->yingyu,stu->pingjun,st u->zong);}else{printf("┌────┬───┬───┬───┬───┬───┬───┐\n");printf("│%-8s│%-6s│%-6s│%-6s│%-6s│%-6s│%-6s","学号","姓名","语文","数学","英语","平均","总成绩\n");printf("├────┼───┼───┼───┼───┼───┼───┤\n");printf("│%-8s│%-6s│%-6.1lf│%-6.1lf│%-6.1lf│%-6.1lf│%-6.1lf │\n",stu->num,stu->name,stu->yuwen,stu->shuxue,stu->yingyu,stu->pingjun,st u->zong);printf("└────┴───┴───┴───┴───┴───┴───┘\n");}}void tianjiayi(struct student stu[],int i){int a,b;printf("请输入学生学号\n");getchar();scanf("%s",stu[i].num);a=jianchaxuehao(stu,stu[i].num);while(a==0||a==2){if(a==0)printf("输入的学号不合法请重新输入\n");if(a==2)printf("输入的学号与已有的重复请重新输入\n");scanf("%s",stu[i].num);a=jianchaxuehao(stu,stu[i].num);Sleep(300);system("cls");printf("┌───────────────────────┐\n");printf("│欢迎进入学生信息添加页面│\n");printf("└───────────────────────┘\n"); }printf("请输入该学生姓名\n");scanf("%s",stu[i].name);printf("请输入语文成绩\n");scanf("%lf",&stu[i].yuwen);b=jianchachengji(stu[i].yuwen);while(b==0){printf("输入错误请重新输入\n");scanf("%lf",&stu[i].yuwen);b=jianchachengji(stu[i].yuwen);}printf("请输入数学成绩\n");scanf("%lf",&stu[i].shuxue);b=jianchachengji(stu[i].shuxue);while(b==0){printf("输入错误请重新输入\n");scanf("%lf",&stu[i].shuxue);b=jianchachengji(stu[i].shuxue);}printf("请输入英语成绩\n");scanf("%lf",&stu[i].yingyu);b=jianchachengji(stu[i].yingyu);while(b==0){printf("输入错误请重新输入\n");scanf("%lf",&stu[i].yingyu);b=jianchachengji(stu[i].yingyu);}stu[i].pingjun=(stu[i].yuwen+stu[i].shuxue+stu[i].yingyu)/3;stu[i].zong=stu[i].yuwen+stu[i].shuxue+stu[i].yingyu;}void tianjia(struct student stu[],int *num1){char p[10]="y",y[10];printf("┌───────────────────────┐\n");printf("│欢迎进入学生信息添加页面│\n");printf("└───────────────────────┘\n");while(!strcmp(p,"y")){tianjiayi(stu,*num1);(*num1)+=1;printf("是否继续添加(yes--y,no---n)\n");getchar();scanf("%s",p);while(strcmp(p,"n")&&strcmp(p,"y")){printf("请输入y或n\n");getchar();scanf("%s",p);}Sleep(300);system("cls");}baocun(stu,*num1);printf("返回主菜单(yes--y)结束(no--n)\n");getchar();scanf("%s",y);while(strcmp(y,"n")&&strcmp(y,"y")){printf("请输入y或n\n");getchar();scanf("%s",y);}if(!strcmp(y,"y")){Sleep(300);system("cls");main();}elsereturn;}void xiugai(struct student stu[],int n){int in,b,c;char a[10],q[10];char str[20],y[10];printf("┌───────────────────────┐\n"); printf("│欢迎进入学生信息修改页面│\n"); printf("└───────────────────────┘\n"); printf("请输入要修改学生的学号\n");getchar();scanf("%s",str);c=jianchaxuehao(stu,str);in=findnum(stu,n,str);while(c==0||in<0){if(in<0||(in<0&&c==1))printf("此条信息不存在\n");if(c==0)printf("输入不合法请重新输入\n");printf("重新输入(yes--y)返回主菜单(no--n)\n");scanf("%s",a);while(strcmp(a,"y")&&strcmp(a,"n")){printf("请输入y或n\n");getchar();scanf("%s",a);}Sleep(300);system("cls");printf("┌───────────────────────┐\n");printf("│欢迎进入学生信息修改页面│\n");printf("└───────────────────────┘\n");if(!strcmp(a,"n")){Sleep(300);system("cls");main();}printf("请输入要修改学生的学号\n");scanf("%s",str);c=jianchaxuehao(stu,str);in=findnum(stu,n,str);}printf("修改前的信息如下:\n");outputone(&stu[in],n,1);printf("是否修改姓?(yes--y,no--n)\n");getchar();scanf("%s",y);while(strcmp(y,"y")&&strcmp(y,"n")){printf("请输入y或n\n");getchar();scanf("%s",y);}Sleep(300);system("cls");printf("┌───────────────────────┐\n"); printf("│欢迎进入学生信息修改页面│\n"); printf("└───────────────────────┘\n"); if(!strcmp(y,"y")){printf("请输入姓名\n");scanf("%s",stu[in].name);}printf("是否修改%s的成绩?(yes--y)返回主菜单(no--n)\n",stu[in].num); //getchar();scanf("%s",q);while(strcmp(q,"y")&&strcmp(q,"n")){printf("请输入y或n\n");getchar();scanf("%s",q);}if(!strcmp(q,"y")){printf("请输入%s的语文成绩\n",stu[in].num);scanf("%lf",&stu[in].yuwen);b=jianchachengji(stu[in].yuwen);while(b==0){printf("输入错误请重新输入\n");scanf("%lf",&stu[in].yuwen);b=jianchachengji(stu[in].yuwen);}printf("请输入%s的数学成绩\n",stu[in].num);scanf("%lf",&stu[in].shuxue);b=jianchachengji(stu[in].shuxue);while(b==0){printf("输入错误请重新输入\n");scanf("%lf",&stu[in].shuxue);b=jianchachengji(stu[in].shuxue);}printf("请输入%s的英语成绩\n",stu[in].num);scanf("%lf",&stu[in].yingyu);b=jianchachengji(stu[in].yingyu);while(b==0){printf("输入错误请重新输入\n");scanf("%lf",&stu[in].yingyu);b=jianchachengji(stu[in].yingyu);}}if(!strcmp(q,"n")){Sleep(300);system("cls");main();}baocun(stu,n);printf("添加成功\n返回主菜单(yes--y)结束(no--n)\n"); getchar();scanf("%s",y);while(strcmp(y,"y")&&strcmp(y,"n")){printf("请输入y或n\n");getchar();scanf("%s",y);}if(!strcmp(y,"y")){Sleep(300);system("cls");main();}elsereturn;}void find(struct student stu[],int n){int in,c;char str[20],y[20],q[20];printf("┌───────────────────────┐\n");printf("│欢迎进入学生信息查询页面│\n");printf("└───────────────────────┘\n");printf("请输入需要查询的学号\n");scanf("%s",str);c=jianchaxuehao(stu,str);while(c==0){printf("输入的学号不合法请重新输入\n");scanf("%s",str);c=jianchaxuehao(stu,str);}Sleep(300);system("cls");printf("┌───────────────────────┐\n"); printf("│欢迎进入学生信息查询页面│\n"); printf("└───────────────────────┘\n");in=findnum(stu,n,str);while(in<0){printf("此学号不存在请重新输入(yes--y)返回主菜单(no--n)\n");getchar();scanf("%s",q);while(strcmp(q,"y")&&strcmp(q,"n")){printf("请输入y或n\n");getchar();scanf("%s",q);}Sleep(300);system("cls");printf("┌───────────────────────┐\n");printf("│欢迎进入学生信息查询页面│\n");printf("└───────────────────────┘\n");if(!strcmp(q,"n")){Sleep(300);system("cls");main();}printf("请输入要查询的学号\n");scanf("%s",str);in=findnum(stu,n,str);}Sleep(300);system("cls");printf("┌───────────────────────┐\n"); printf("│欢迎进入学生信息查询页面│\n");printf("└───────────────────────┘\n"); if(in>=0){printf(" %s的信息如下:\n",str);outputone(&stu[in],n,1);printf("继续查询(yes--y)返回主菜单(no--n)\n");//getchar();scanf("%s",y);while(strcmp(y,"y")&&strcmp(y,"n")){printf("请输入y或n\n");//getchar();scanf("%s",y);}Sleep(300);system("cls");if(!strcmp(y,"y")){find(stu,n);}if(!strcmp(y,"n")){main();}}}int jianchaxuehao(struct student stu[],char *num) {int i,f=1,g=1;for(i=0; num[i]!='\0'; i++){if(num[i]<'0'||num[i]>'9'){f=0;break;}}for(i=0; i<n; i++){if(strcmp(stu[i].num,num)==0){g=0;break;}}if(f==1&&g==1)return 1;else if((g==0&&f==0)||(f==0&&g==1)) return 0;else if(g==0&&f==1)return 2;return 0;}int jianchachengji(double num){if(num<=100&&num>=0)return 1;elsereturn 0;}运行效果:。

相关文档
最新文档