1. 如何用c语言编写学生信息管理系统
参考如下学生信息管理系统的C源代码吧。
#include<stdio.h>
#include<string.h>
/*定义学生结构体*/
structStudent
{
charID[20];
charName[20];
floatMark1;
floatMark2;
floatMark3;
floatAverage;
};
/*声明学生数组及学生数量*/
structStudentstudents[1000];
intnum=0;
/*求平均值*/
floatAvg(structStudentstu)
{
return(stu.Mark1+stu.Mark2+stu.Mark3)/3;
}
/*通过学号返回数组下标*/
intStudent_SearchByIndex(charid[])
{
inti;
for(i=0;i<num;i++)
{
if(strcmp(students[i].ID,id)==0)
{
returni;
}
}
return-1;
}
/*通过姓名返回数组下标*/
intStudent_SearchByName(charname[])
{
inti;
for(i=0;i<num;i++)
{
if(strcmp(students[i].Name,name)==0)
{
returni;
}
}
return-1;
}
/*显示单条学生记录*/
voidStudent_DisplaySingle(intindex)
{
printf("%10s%10s%8s%8s%8s%10s ","学号","姓名","成绩","成绩","成绩","平均成绩");
printf("------------------------------------------------------------- ");
printf("%10s%10s%8.2f%8.2f%8.2f%10.2f ",students[index].ID,students[index].Name,
students[index].Mark1,students[index].Mark2,students[index].Mark3,students[index].Average);
}
/*插入学生信息*/
voidStudent_Insert()
{
while(1)
{
printf("请输入学号:");
scanf("%s",&students[num].ID);
getchar();
printf("请输入姓名:");
scanf("%s",&students[num].Name);
getchar();
printf("请输入成绩:");
scanf("%f",&students[num].Mark1);
getchar();
printf("请输入成绩:");
scanf("%f",&students[num].Mark2);
getchar();
printf("请输入成绩:");
scanf("%f",&students[num].Mark3);
getchar();
students[num].Average=Avg(students[num]);
num++;
printf("是否继续?(y/n)");
if(getchar()=='n')
{
break;
}
}
}
/*修改学生信息*/
voidStudent_Modify()
{
//floatmark1,mark2,mark3;
while(1)
{
charid[20];
intindex;
printf("请输入要修改的学生的学号:");
scanf("%s",&id);
getchar();
index=Student_SearchByIndex(id);
if(index==-1)
{
printf("学生不存在! ");
}
else
{
printf("你要修改的学生信息为: ");
Student_DisplaySingle(index);
printf("--请输入新值-- ");
printf("请输入学号:");
scanf("%s",&students[index].ID);
getchar();
printf("请输入姓名:");
scanf("%s",&students[index].Name);
getchar();
printf("请输入成绩:");
scanf("%f",&students[index].Mark1);
getchar();
printf("请输入成绩:");
scanf("%f",&students[index].Mark2);
getchar();
printf("请输入成绩:");
scanf("%f",&students[index].Mark3);
getchar();
students[index].Average=Avg(students[index]);
}
printf("是否继续?(y/n)");
if(getchar()=='n')
{
break;
}
}
}
/*删除学生信息*/
voidStudent_Delete()
{
inti;
while(1)
{
charid[20];
intindex;
printf("请输入要删除的学生的学号:");
scanf("%s",&id);
getchar();
index=Student_SearchByIndex(id);
if(index==-1)
{
printf("学生不存在! ");
}
else
{
printf("你要删除的学生信息为: ");
Student_DisplaySingle(index);
printf("是否真的要删除?(y/n)");
if(getchar()=='y')
{
for(i=index;i<num-1;i++)
{
students[i]=students[i+1];//把后边的对象都向前移动
}
num--;
}
getchar();
}
printf("是否继续?(y/n)");
if(getchar()=='n')
{
break;
}
}
}
/*按姓名查询*/
voidStudent_Select()
{
while(1)
{
charname[20];
intindex;
printf("请输入要查询的学生的姓名:");
scanf("%s",&name);
getchar();
index=Student_SearchByName(name);
if(index==-1)
{
printf("学生不存在! ");
}
else
{
printf("你要查询的学生信息为: ");
Student_DisplaySingle(index);
}
printf("是否继续?(y/n)");
if(getchar()=='n')
{
break;
}
}
}
/*按平均值排序*/
voidStudent_SortByAverage()
{
inti,j;
structStudenttmp;
for(i=0;i<num;i++)
{
for(j=1;j<num-i;j++)
{
if(students[j-1].Average<students[j].Average)
{
tmp=students[j-1];
students[j-1]=students[j];
students[j]=tmp;
}
}
}
}
/*显示学生信息*/
voidStudent_Display()
{
inti;
printf("%10s%10s%8s%8s%8s%10s ","学号","姓名","成绩","成绩","成绩","平均成绩");
printf("------------------------------------------------------------- ");
for(i=0;i<num;i++)
{
printf("%10s%10s%8.2f%8.2f%8.2f%10.2f ",students[i].ID,students[i].Name,
students[i].Mark1,students[i].Mark2,students[i].Mark3,students[i].Average);
}
}
/*将学生信息从文件读出*/
voidIO_ReadInfo()
{
FILE*fp;
inti;
if((fp=fopen("Database.txt","rb"))==NULL)
{
printf("不能打开文件! ");
return;
}
if(fread(&num,sizeof(int),1,fp)!=1)
{
num=-1;
}
else
{
for(i=0;i<num;i++)
{
fread(&students[i],sizeof(structStudent),1,fp);
}
}
fclose(fp);
}
/*将学生信息写入文件*/
voidIO_WriteInfo()
{
FILE*fp;
inti;
if((fp=fopen("Database.txt","wb"))==NULL)
{
printf("不能打开文件! ");
return;
}
if(fwrite(&num,sizeof(int),1,fp)!=1)
{
printf("写入文件错误! ");
}
for(i=0;i<num;i++)
{
if(fwrite(&students[i],sizeof(structStudent),1,fp)!=1)
{
printf("写入文件错误! ");
}
}
fclose(fp);
}
/*主程序*/
voidmain()
{
intchoice;
IO_ReadInfo();
while(1)
{
/*主菜单*/
printf(" ------学生成绩管理系统------ ");
printf("1.增加学生记录 ");
printf("2.修改学生记录 ");
printf("3.删除学生记录 ");
printf("4.按姓名查询学生记录 ");
printf("5.按平均成绩排序 ");
printf("6.退出 ");
printf("请选择(1-6):");
scanf("%d",&choice);
getchar();
switch(choice)
{
case1:
Student_Insert();
break;
case2:
Student_Modify();
break;
case3:
Student_Delete();
break;
case4:
Student_Select();
break;
case5:
Student_SortByAverage();
Student_Display();
break;
case6:
exit(0);
break;
}
IO_WriteInfo();
}
}
2. c语言编写学生信息管理系统
#include"stdio.h"
#define SIZE 100000
#include"string.h"
#include"stdlib.h"
#include"conio.h"
struct student
{int n;
int num;
char name[10];
int C;
int Maths;
int En;
float ave;
}stu[SIZE];
/*录入数据*/
void finput()
{
FILE *fp;
int i,p;
fp=fopen("fstu","wb");
for(i=0;i<SIZE;i+1)
{
printf("i=%d输入序号i(当输入i=-1时,返回),i=",i++);
scanf("%d",&i);
if(i==-1)
{
fclose(fp);
return;
}
else
{
printf("请输入学号,姓名,C成绩,数学成绩,英语成绩:");
scanf("%d%s%d%d%d",&stu[i].num,stu[i].name,&stu[i].C,&stu[i].Maths,&stu[i].En);
stu[i].ave=(stu[i].C+stu[i].Maths+stu[i].En)/3.0;
stu[i].n=i+1;
fwrite(&stu[i],sizeof(structstudent),1,fp);
}
}
fclose(fp);
}
/*输出数据*/
void flist()
{
FILE *fp;
int i;
fp=fopen("fstu","rb");
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
printf(" 成绩列表\n");
printf("-----------------------------------------------------------\n");
printf("序号 学号 姓名 C成绩 数学 英语 平均\n");
printf("-----------------------------------------------------------\n");
for(i=0;fread(&stu[i],sizeof(structstudent),1,fp)==1;i++)
{
printf("%d%8d%8s%8d%8d%8d%16.2f\n",stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave);
}
printf("-----------------------------------------------------------\n\n");
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
fclose(fp);
}
/*查找数据*/
void fsearch()
{
FILE *fp;
int i,num;
fp=fopen("fstu","rb");
rewind(fp);
printf("请输入要查找的学号:");
scanf("%d",&num);
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
printf(" 查询结果\n");
printf("-----------------------------------------------------------\n");
printf("序号 学号 姓名 C成绩 数学 英语 平均\n");
printf("-----------------------------------------------------------\n");
for(i=0;i<=SIZE;i++)
if(stu[i].num==num)
{
printf("%d%8d%8s%8d%8d%8d%16.2f\n",stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave);
}
printf("-----------------------------------------------------------\n\n");
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n\n\n");
fclose(fp);
}
/*增加数据*/
void fadden()
{
int i,s;
FILE *fp;
fp=fopen("fstu","ab+");
rewind(fp);
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
printf(" 成绩列表\n");
printf("-----------------------------------------------------------\n");
printf("序号 学号 姓名 C成绩 数学 英语 平均\n");
printf("-----------------------------------------------------------\n");
for(i=0;fread(&stu[i],sizeof(structstudent),1,fp)==1;i++)
{
printf("%d%8d%8s%8d%8d%8d%16.2f\n",stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave);
}
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
s=i;
for(i=s;i<SIZE;i++)
{
printf("i=%d 输入序号i(当输入i=-1时,返回),i=",i+1);
scanf("%d",&i);
if(i==-1)
{
fclose(fp);
return;
}
else
{
printf("请输入学号,姓名,C成绩,数学成绩,英语成绩:");
stu[i].n=i+1;
scanf("%d%s%d%d%d",&stu[i].num,stu[i].name,&stu[i].C,&stu[i].Maths,&stu[i].En);
stu[i].ave=(stu[i].C+stu[i].Maths+stu[i].En)/3.0;
fwrite(&stu[i],sizeof(structstudent),1,fp);
}
}
fclose(fp);
}
/*修改数据*/
void fchange()
{
FILE *fp;
int i,num,n;
int flag=0;
printf("请输入要修改学生的学号:");
scanf("%d",&num);
for(i=0;i<=SIZE;i++)
if(stu[i].num==num)
{
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
printf(" 成绩列表\n");
printf("-----------------------------------------------------------\n");
printf("序号 学号 姓名 C成绩 数学 英语 平均\n");
printf("-----------------------------------------------------------\n");
printf("%d%8d%8s%8d%8d%8d%16.2f\n",stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave);
printf("-----------------------------------------------------------\n\n");
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
n=i;
flag=1;
break;
}
if(flag==0)
{
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
printf(" 输入错误!\n");
printf(" 请返回!\n");
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
return;
}
printf("\n\n\n");
fp=fopen("fstu","rb+");
fseek(fp,n*sizeof(struct student),0);
printf("请输入新的学号,姓名,C成绩,数学成绩,英语成绩:");
scanf("%d%s%d%d%d",&stu[i].num,stu[i].name,&stu[i].C,&stu[i].Maths,&stu[i].En);
stu[i].ave=(stu[i].C+stu[i].Maths+stu[i].En)/3.0;
fwrite(&stu[i],sizeof(structstudent),1,fp);
fclose(fp);
fp=fopen("fstu","rb");
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
printf(" 成绩列表\n");
printf("-----------------------------------------------------------\n");
printf("序号 学号 姓名 C成绩 数学 英语 平均\n");
printf("-----------------------------------------------------------\n");
for(i=0;fread(&stu[i],sizeof(structstudent),1,fp)==1;i++)
{
printf("%d%8d%8s%8d%8d%8d%16.2f\n",stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave);
}
printf("-----------------------------------------------------------\n\n");
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
fclose(fp);
}
/*成绩排序*/
void ftaxis()
{
int i,j,n;
FILE *fp;
struct student t;
fp=fopen("fstu","rb");
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
printf(" 成绩列表\n");
printf("-----------------------------------------------------------\n");
printf("序号 学号 姓名 C成绩 数学 英语 平均\n");
printf("-----------------------------------------------------------\n");
for(i=0;fread(&stu[i],sizeof(structstudent),1,fp)==1;i++)
{
printf("%d%8d%8s%8d%8d%8d%16.2f\n",stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave);
}
printf("-----------------------------------------------------------\n\n");
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
fclose(fp);
n=i;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if(stu[i].ave<stu[j].ave)
{
t=stu[i];
stu[i]=stu[j];
stu[j]=t;
}
fp=fopen("fstus","wb");
printf("\n\n\n");
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
printf(" 成绩列表\n");
printf("-----------------------------------------------------------\n");
printf("序号 学号 姓名 C成绩 数学 英语 平均\n");
printf("-----------------------------------------------------------\n");
for(i=0;i<n;i++)
{
fwrite(&stu[i],sizeof(structstudent),1,fp);
printf("%d%8d%8s%8d%8d%8d%16.2f\n",stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave);
}
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
fclose(fp);
}
/*主函数*/
main()
{
int n;
for(;;)
{
printf("\n");
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
printf("※ ※\n");
printf("※ 欢迎来到学生信息管理系统 ※\n");
printf("※ ※\n");
printf("※ 系部:通信工程 专业:通信工程 ※\n");
printf("※ 姓名: 学号: ※\n");
printf("※ 班内序号: 指导老师: ※\n");
printf("※ ※\n");
printf("※ 主菜单 ※\n");
printf("※ ※\n");
printf("※ ▲1.录入数据▲ ※\n");
printf("※ ▲2.输出数据▲ ※\n");
printf("※ ▲3.查找数据▲ ※\n");
printf("※ ▲4.增加数据▲ ※\n");
printf("※ ▲5.修改数据▲ ※\n");
printf("※ ▲6.成绩排序▲ ※\n");
printf("※ ▲7.退出系统▲ ※\n");
printf("※ ※\n");
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n\n");
printf("请输入选择项(1-7):");
scanf("%d",&n);
printf("\n\n\n\n");
if(n>0&&n<8)
{
switch(n)
{
case 1:finput();break;
case 2:flist();break;
case 3:fsearch();break;
case 4:fadden();break;
case 5:fchange();break;
case 6:ftaxis();break;
case 7:printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");
printf("※ ※\n");
printf("※ 谢谢使用! ※\n");
printf("※ 再见! ※\n");
printf("※ ※\n");
printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");
exit(0);
}
}
else
{
printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");
printf("※ ※\n");
printf("※ 输入错误! ※\n");
printf("※ 请退出! ※\n");
printf("※ ※\n");
printf("※※※※※※※※※※※※※※※※※※※※※※※※\n");
break;
}
}
}
3. 学生信息管理系统编程(c语言)
挺好的一个题目啊
但我可不愿意帮人写作业
网上很多类似的,你可以参考下:
#include <stdio.h>
#include <string.h> struct student {
char name[30];
float math;
float chinese;
float english;
float average;
};
int MenuChoice(void);
int EnterAccount(void);
void Enter(struct student *fst);
void Amend(struct student *src);
void Delete(struct student *next);
void Print(struct student *out);
main()
{
struct student one[100] = {0}, *look = one;
int menu, t;
while ((menu = MenuChoice()) != 0)
if (menu >= 1 && menu <= 4 && (t = EnterAccount())) {
look = one + t;
switch (menu) {
case 1:
Enter(look);
break;
case 2:
if (strcmp(look->name, ""))
printf("学号:%d\n姓名: %s\n语文成绩: %.1f\n数学成绩:%.1f\n英语成绩: %f\n平均"成绩:%.1f\n",
t, look->name, look->chinese, look->math, look->english, look->average);
else
printf("对不起,该学号不存在!\n");
break;
case 3:
Amend(look);
break;
case 4:
Delete(look);
break;
}
}
else if (menu == 5)
Print(one);
else
printf("错误的请求!\n");
return 0;
}
int MenuChoice(void)
{
int choice;
printf("请选择:\n"
"1 - 新建学生信息\n"
"2 - 查找学生信息\n"
"3 - 修改学生信息\n"
"4 - 删除学生信息\n"
"5 - 打印学生信息\n"
"0 - 退出\n");
scanf("%d", &choice);
return choice;
}
int EnterAccount(void)
{
int ret;
printf("请输入学号:\n");
scanf("%d", &ret);
if (ret >= 1 && ret <= 100)
return ret -1;
return 0;
}
void Enter(struct student *fst)
{
printf("请输入学生姓名、语文成绩、数学成绩、英语成绩和平均成绩\n");
scanf("%s%f%f%f%f", fst->name, &fst->chinese, &fst->math, &fst->english, &fst->average);
}
void Amend(struct student *src)
{
int t;
printf("请选择:\n"
"1 - 修改学生姓名\n"
"2 - 修改学生语文成绩\n"
"3 - 修改学生数学成绩\n"
"4 - 修改学生英语成绩\n"
"5 - 修改学生平均成绩\n");
scanf("%d", &t);
switch (t) {
case 1:
printf("请输入学生的新名字\n");
scanf("%s", src->name);
break;
case 2:
printf("请输入学生新的语文成绩\n");
scanf("%f", &src->chinese);
break;
case 3:
printf("请输入学生新的数学成绩\n");
scanf("%f", &src->math);
break;
case 4:
printf("请输入学生新的英语成绩\n");
scanf("%f", &src->english);
break;
case 5:
printf("请输入学生新的平均成绩\n");
scanf("%f", &src->average);
break;
}
}
void Delete(struct student *next)
{
strcpy(next->name, "");
next->math = next->english = next->chinese = next->average = 0.0;
}
void Print(struct student *out)
{
struct student *up;
for (up = out; out < &up[100]; out++)
if (strcmp(out->name, ""))
printf("学号:%d\n姓名: %s\n语文成绩: %.1f\n数学成绩:%.1f\n英语成绩: %.1f\n平均成绩:%.1f\n",
out-up + 1, out->name, out->chinese, out->math, out->english, out->average);
}
4. 用c语言编写学生信息管理系统
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#define N 200
int input(struct Student stu[N]);
void save(struct Student stu[N],int n);
int load(struct Student stu[N]);
void output(struct Student stu[N],int n);
int insert(struct Student stu_save[],int n);
void sort(struct Student stu_save[],int n);
void find(struct Student stu_save[],int n);
int delete_stu(struct Student stu_save[],int n);
typedef struct Student
{
char num[20];
char name[20];
char sex;
int age;
float score[3];
float tolscore;
float ave;
}STU;
int main()
{
int total=0,a;
STU stu[N];
printf("☆☆☆☆☆学籍管理系统☆☆☆☆☆\n\n");
do{
printf("\n**********************************\n");
printf("1-导入学生信息\n2-加载学生信息\n3-保存学生信息\n4-按学号插入学生\n5-给学生排序\n6-查找学生\n7-删除学生\n8-输出当前学生数据\n9-退出\n");
printf("**********************************\n");
printf("请按键选择:");
scanf("%d",&a);
switch(a)
{
case 1:
total=input(stu);
break;
case 2: total=load(stu);break;
case 3:save(stu,total);break;
case 4: total+=insert(stu,total);break;
case 5:sort(stu,total);break;
case 6:find(stu,total);break;
case 7:total-=delete_stu(stu,total);break;
case 8:output(stu,total);break;
case 9:exit(0);break;
default:printf("输入错误,请重新输入!\n");break;
}
//system("cls");
}while(1);
}
int input(struct Student stu[])
{
int i,j,n;
float sum;
printf("请输入要导入的学生人数\n");
scanf("%d",&n);
printf("请输入学生的学号、姓名、性别、年龄及三门课成绩\n");
for(i=0;i<n;i++)
{
scanf("%s",stu[i].num);
scanf("%s",stu[i].name);
scanf(" %c",&stu[i].sex); //%c前的空格用于接收上一个字符串后的空格、回车、制表符,etc
scanf("%d",&stu[i].age);
sum=0;
for(j=0;j<3;j++)
{
scanf("%f",&stu[i].score[j]);
sum+=stu[i].score[j];
}
stu[i].tolscore=sum;
stu[i].ave=sum/3.0f;
}
return (n);
}
void save(struct Student stu[],int n)
{
FILE *fp;
int i;
char filename[20];
printf("请输入文件名:");
scanf("%s",filename);
if(strchr(filename,'.')==NULL)
strcat(filename,".dat");
if((fp=fopen(filename,"wb"))==NULL)
{
printf("Cannot open this file\n");
system("pause");
return;
}
fwrite(&n,sizeof(int),1,fp);
for(i=0;i<n;i++)
fwrite(&stu[i],sizeof(struct Student),1,fp);
fclose(fp);
printf("保存成功!");
system("pause");
return;
}
int load(struct Student stu_save[])
{
FILE *fp;
int i,n;
char filename[20];
printf("请输入要加载的文件名: ");
//getchar();
scanf("%s",filename);
// gets(filename);
if(strchr(filename,'.')==NULL)
strcat(filename,".dat");
if((fp=fopen(filename,"rb"))==NULL)
{
printf("Cannot open this file\n");
system("pause");
return 0;
}
fread(&n,sizeof(int),1,fp);
for(i=0;i<n;i++)
fread(&stu_save[i],sizeof(struct Student),1,fp);
fclose(fp);
system("cls");
printf("文件加载成功!数据如下");
output(stu_save,n);
return n;
}
void output(struct Student stu_save[],int n)
{
int i,j;
// system("cls");
printf("\n学号\t姓名\t性别\t年龄\t成绩一\t成绩二\t成绩三\t总分\t平均分\n");
for(i=0;i<n;i++)
{
printf("%s\t",stu_save[i].num);
printf("%s\t",stu_save[i].name);
printf("%c\t",stu_save[i].sex);
printf("%d\t",stu_save[i].age);
for(j=0;j<3;j++)
printf("%g\t",stu_save[i].score[j]);
printf("%g\t",stu_save[i].tolscore);
printf("%.2f",stu_save[i].ave);
putchar(10);
}
system("pause");
return;
}
int insert(struct Student stu_save[],int n)
{
int i,j,num=0;
float sum=0;
struct Student s;
char flag;
if(n>200)
{
printf("空间已满,无法插入!\n");
return 0;
}
// load(stu_save,n-1);
do{
printf("\n请依次输入学号、姓名、性别、年龄及三门课成绩\n");
scanf("%s",s.num);
scanf("%s",s.name);
scanf(" %c",&s.sex); //%c前的空格用于接收上一个字符串后的空格、回车、制表符,etc
scanf("%d",&s.age);
for(j=0;j<3;j++)
scanf("%f",&s.score[j]);
sum=0;
for(j=0;j<3;j++)
sum+=s.score[j];
s.tolscore=sum;
s.ave=sum/3;
num++;
for(i=n+num-1;strcmp(stu_save[i-1].num,s.num)>0&&i>0;i--)
stu_save[i]=stu_save[i-1];
stu_save[i]=s;
printf("插入成功!");
fflush(stdin);
do
{
printf("继续插入?(y/n)");
flag=getch();
}while(flag!='y'&&flag!='n');
}while(flag=='y');
system("pause");
//save(stu_save,n);
return num;
}
void sort(struct Student stu_save[],int n)
{
int a,i,j;
struct Student t;
system("cls");
printf("\n1-按序号排序\n2-按成绩排序\n请选择:");
scanf("%d",&a);
while(a!=1&&a!=2)
{
printf("输入有误,请重新输入!\n");
scanf("%d",&a);
}
//load(stu_save,n);
if(a==1)
{
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
{
if(strcmp(stu_save[j].num,stu_save[j+1].num)>0)
{
t=stu_save[j];
stu_save[j]=stu_save[j+1];
stu_save[j+1]=t;
}
}
}
else
{
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
{
if(stu_save[j].ave<stu_save[j+1].ave)
{
t=stu_save[j];
stu_save[j]=stu_save[j+1];
stu_save[j+1]=t;
}
}
}
// save(stu_save,n);
printf("排序成功!\n");
output(stu_save,n);
return;
}
void find(struct Student stu_save[],int n)
{
char ch;
do{
int i,j,w=1;
char search[20];
//load(stu_save,n);
printf("请输入学生的学号或姓名");
scanf("%s",search);
for(i=0;i<n;i++)
{
if(strcmp(stu_save[i].num,search)==0||strcmp(stu_save[i].name,search)==0)
{
printf("查找成功,该学生的信息为:\n");
printf("%s\t",stu_save[i].num);
printf("%s\t",stu_save[i].name);
printf("%c\t",stu_save[i].sex);
printf("%d\t",stu_save[i].age);
for(j=0;j<3;j++)
printf("%g\t",stu_save[i].score[j]);
printf("%g\t",stu_save[i].tolscore);
printf("%.2f",stu_save[i].ave);
putchar(10);
w=0;
break;
}
}
if(w)
printf("查找失败\n");
do
{
printf("\n按Y继续查找,按N返回上级菜单\n");
ch=getch();
}while(ch!='y'&&ch!='n');
if(ch=='n')
return;
}while(ch=='y');
}
int delete_stu(struct Student stu_save[],int n)
{
int i,w=1;
char search[20];
// load(stu_save,n);
printf("\n请输入要删除学生的姓名或学号\n");
scanf("%s",search);
for(i=0;i<n;i++)
if(strcmp(stu_save[i].num,search)==0||strcmp(stu_save[i].name,search)==0)
{
w=0;
break;
}
if(w)
{
printf("无此学生!\n");
return 0;
}
for(;i<n-1;i++)
stu_save[i]=stu_save[i+1];
printf("删除成功!\n");
// save(stu_save,n-1);
return 1;
}
之前随便写的 忘了有没有调试 有问题再私信找我 采纳哦~~
5. 用C语言编写一个学生管理系统。
学生信息管理系统
#include<stdio.h>
#inelude<stdlib.h>
#include<stnng.h
#define BUFLEN 100
#define LEN 15
#define N 100
#strucet record
char codc[LEN+I J;
char name[LEN-1];
int age:
char sex 13l:
char timc[1.KN-I J;
char add[301;
char tcl [l.EN+1 J:
char mail[30]:
}stu[N]:
int k=1.n,m.
void readfilcO;
void seekO;
void modify(;
void insert();
void del();
void display(;
void save();
void menu(;
int main(
{
While(k)
menu();
system("pause");
一℃himl 0:
}
void help()
{
printf(" nO.欢迎使用系统帮助, );
printf(" 1.进入系统后,先制新学生信息,再查询: ’);
printf(" 2.按照菜单提示键入数字代号
printf(" 3. 增加学生信息后,切记保存按;.n”
printf(" 4. 谢谢您的仗用! ");
}
void n:adlilcO
r
r
char *p-"studcnt.txt'
FILE *fp,
hit i-0;
if ((fp=fopen("studcnt.txt","r" ))`=NULL)
{
printf("Open file %s error' Strike any key to exit! P);
system("pause");
exit(0);
}
while(fscanf(fp,"%s 0os0od0,os 0os %s %s 0os",stu[i].code,stu[i1.name,&stu(i1.age,
stu[i].sex,stuLiJ.time,stuLiJ.add,stu[iJ.tel.stu [iJ.mail)"==8)
{
i++;
i-i;
}
char codc[LEN+1 J;
char name[LEN-1 ];
nit age;
char sex [3I;
char timc[LEN-I J;
char add[30];
char tcl[LEN+I I;
char mail[30J;
)stu[N];
int k=1.n,m;
void readfilcO;
void seek();
void modify();
void insert();
void delO;
void display();
void save();
void menu();
int main()
{
while(k)
menu();
systcm("pause");
return 0:
}
void help()
{
printf(" nO.欢迎仗用系统帮助, ");
printf(" }n1.进入系统后,先刷新学生信息,再查询: );
printf("in2.按照菜单提示键入数字代号加 );
printf("1n,. t}加学生信息后,切记保存按钮 ”
printf("'nd. i$:41您的使用 );
}
void readfile()
{
char *p-"studcnLtxt";
FILE*fp
int i=0;
if ((fp=fopcn("student. tx t","r'' )卜=NULL)
{
printf("Open file %s error' Strike any key to exit!".p);
systcm("pause");
exit(0);
}
i++;
i=i;
}
printf("请选择菜单编号:’’);
scanf("%d",&num);
switch(num)
{
case 0:help();break;
cast 1:readflic();break;
case 2:seek();break;
case 3:modify();break;
case 4:insert();break;
case 5:del();break:
case 6:display();break;
case 7:savc();break;
case 8:k=0,break:
defaalt:prinf(”请在一8之间选择 "):
}
}
拓展资料
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。