1、完整版)C语言学生信息管理系统(附源码)
学生信息管理系统
#include〈stdio。h>
#include
2、lish,stu[i].sum /**************定义学生成绩结构体***********************/ struct student { int num; char name[15]; float chinese; float math; float english; float sum; }; struct student stu[50]; /************函数声明与简介***************/ void input(); void show(); void order(); void del(); v
3、oid modify(); void menu(); void insert(); void total(); void search(); int chcode(); /***********主函数****************/ int main() { int n; int login = chcode(); if(!login) { printf("登录失败!\n”); return 0; } printf("登录成功!\n”); menu(); scanf(”%d",&n); while(n) { sw
4、itch(n) { case 0: exit(0); case 1: input();break; case 2: search();break; case 3: del();break; case 4: modify();break; case 5: insert();break; case 6: order();break; case 7: total();break;
5、case 8: show();break; default:printf("输入有误,请重新输入:");break; } getch(); menu(); scanf("%d",&n); } return 0; } /*******自定义函数实现菜单功能******/ void menu() { system(”cls"); printf(”\t\t|——-—-—------—学生信息系统--——-—————|\n"); printf("\t\t|
6、 |\n”); printf("\t\t| 0. 退出系统\t\t\t |\n"); printf("\t\t| 1. 输入记录\t\t\t |\n"); printf("\t\t| 2. 查找记录\t\t\t |\n"); printf("\t\t| 3. 删除记录\t\t\t |\n"); printf("\t\t| 4. 修改记录\t\t\t |\n”); printf("\t\t| 5。 插入记录\t\t\t |\n"); printf(”\t\t| 6. 记录排序\t\t\t |\n”); printf("\t
7、\t| 7。 记录个数\t\t\t |\n”); printf("\t\t| 8. 显示记录\t\t\t |\n"); printf(”\t\t|—--———---—--———--—-----—-——-——---—-|\n\n”); printf(”\t\t请输入你的操作(0—8):"); } /*****录入学生信息**/ void input() { int i,m=0; char ch[2]; FILE *fp;/*定义指针文件*/ if((fp=fopen("stuData.tet","a+"))==NULL) { pri
8、ntf(”打开文件失败\n”); return; } while(!feof(fp)) { if(fread(&stu[m],LEN,1,fp)==1) m++; } fclose(fp); if(m==0) printf(”没有数据!\n"); else { system("cls”); show(); } if((fp=fopen(”stuData。txt”,"wb"))==NULL) { printf(”打开文件失败\n”); return; } for(i=0;i〈m;i++) {
9、 fwrite(&stu[i],LEN,1,fp); } printf("请确认(y/n):”); scanf("%s”,ch); while(strcmp(ch,”Y”)==0||strcmp(ch,”y”)==0) { printf(”学号:"); scanf("%d”,&stu[m]。num); for(i=0;i〈m;i++) if(stu[i]。num==stu[m].num) { printf(”此学号已存在!”); getch(); fclose(fp); return;
10、} printf(”姓名:"); scanf(”%s”,stu[m].name); printf("语文成绩:”); scanf("%f”,&stu[m].chinese); printf(”数学成绩:"); scanf("%f",&stu[m]。math); printf("英语成绩:"); scanf("%f",&stu[m].english); stu[m]。sum=stu[m]。chinese+stu[m].math+stu[m].english; if(fwrite(&stu[m],LEN,1,fp)!=
11、1) { printf(”保存失败!"); getch(); } else { printf("%s 已保存!\n”,stu[m]。name); m++; } printf("是否继续?(y/n):”); scanf("%s”,ch); } fclose(fp); printf("操作成功!\n”); } /******自定义查找*/ void search() { FILE *fp; int snum,i,m=0; char ch[2]; if((fp=fope
12、n("stuData。txt",”rb"))==NULL) { printf(”打开文件失败\n"); return; } while(!feof(fp)) if(fread(&stu[m],LEN,1,fp)==1) m++; fclose(fp); if(m==0) { printf(”文件无记录!\n”); return; } printf(”请输入需要查找的学生学号:"); scanf(”%d",&snum); for(i=0;i〈m;i++) if(snum==stu[i].num) {
13、 printf(”学生数据已找到,确认显示?(y/n)”); scanf(”%s",ch); if(strcmp(ch,”Y”)==0||strcmp(ch,"y")==0) { printf("学号 姓名 语文 数学 英语 总分\t\n"); printf(FORMAT,DATA); break; } } if(i==m) printf("查找失败!\n"); } /*****自定义删除***/ void del() { FILE*fp; int snum,i,j,m=0; c
14、har ch[2]; if((fp=fopen("stuData.tet","r+"))==NULL) { printf("打开文件失败\n");return; } while(!feof(fp)) if(fread(&stu[m],LEN,1,fp)==1) m++; fclose(fp); if(m==0) { printf(”文件无记录!\n”); return; } show(); printf("请输入需要删除的学生学号:"); scanf("%d”,&snum); for(i=0;i〈m;i++)
15、{ if(snum==stu[i]。num) { printf(”数据已经找到,是否确认删除?(y/n)"); scanf(”%s",ch); if(strcmp(ch,”Y”)==0||strcmp(ch,"y”)==0) { for(j=i;j〈m;j++) stu[j]=stu[i]; m-—; if((fp=fopen("stuData。txt","wb"))==NULL) { printf("打开文件失败\n"); return; } for
16、j=0;j 17、 modify()
{
FILE *fp;
int i,j,m=0,snum;
if((fp=fopen(”stuData。txt”,”r+”))==NULL)
{
printf(”打开文件失败\n");
return;
}
while(!feof(fp))
if(fread(&stu[m],LEN,1,fp)==1)
m++;
if(m==0)
{
printf(”文件无记录!\n");
fclose(fp);
return;
}
show();
printf(”请输入你要修改的的学生学号\n”);
18、 printf("学号是:”);
scanf(”%d",&snum);
for(i=0;i 19、);
scanf("%f",&stu[i].english);
printf("modify successful!");
stu[i]。sum=stu[i].chinese+stu[i]。math+stu[i].english;
if((fp=fopen("stuData.txt”,”wb"))==NULL)
{
printf("保存失败!”);
getch();
}
fclose(fp);
return;
}
}
printf(”没有找到匹配信息”);
}
/********自定义插入函数 20、****/
void insert()
{
FILE *fp;
int i,j,k,m=0,snum;
if((fp=fopen(”stuData。txt”,”r+”))==NULL)
{
printf("打开文件失败\n");
return;
}
while(!feof(fp))
if(fread(&stu[m],LEN,1,fp)==1)m++;
if(m==0)
{
printf("没有数据!\n");
fclose(fp);
return;
}
printf(”请输入数据插入的位置:\n”);
scan 21、f(”%d”,&snum);
for(i=0;i〈m;i++)
if(snum==stu[i].num)
break;
for(j=m—1;j〉i;j—-)
stu[j+i]=stu[j];
printf(”请输入待插入数据信息。\n");
printf("学号”);
scanf(”%d",&stu[i+1]。num);
for(k=0;k 22、
}
printf("姓名");
scanf(”%s”,stu[i+1]。name);
printf("语文成绩:”);
scanf(”%f”,&stu[i+1].chinese);
printf(”数学成绩:”);
scanf(”%f",&stu[i+1]。math);
printf(”英语成绩:”);
scanf(”%f”,&stu[i+1].english);
stu[i+1]。sum=stu[i+1].chinese+stu[i+1].math+stu[i+1]。english;
if((fp=fopen("stuData 23、txt”,”wb"))==NULL)
{
printf(”打开文件失败\n”);
return;
}
for(k=0;k〈=m;k++)
if(fwrite(&stu[k],LEN,1,fp)!=1)
{
printf(”保存失败!”);
getch();
return;
}
printf("插入函数成功!");
getch();
fclose(fp);
}
//************自定义排序函数****///
void order()
{
FILE *fp;
24、 struct student t;
int i=0,j=0,m=0;
if((fp=fopen(”stuData.txt”,"r+”))==NULL)
{
printf("打开文件失败!\n”);
return;
}
while(!feof(fp))
if(fread(&stu[m],LEN,1,fp)==1)
m++;
fclose(fp);
if(m==0)
{
printf(”无记录!\n");
return;
}
if((fp=fopen("stuData.txt",”wb"))==NULL)
{
25、 printf(”打开文件失败\n");
return;
}
for(i=0;i 26、ntf("打开文件失败\n”);
return;
}
while(!feof(fp))
if(fread(&stu[m],LEN,1,fp)==1)
m++;
if(m==0)
{
printf("文件无记录!\n”);
fclose(fp);
return;
}
printf("学生总数为 %d 位!\n”,m);
fclose(fp);
}
/*******显示学生信息*****/
void show()
{
FILE *fp;
int i,m=0;
fp=fopen(”stuData.txt",”rb" 27、
while(!feof(fp))
{
if(fread(&stu[m],LEN,1,fp)==1)
m++;
}
fclose(fp);
printf(”学号 姓名 语文 数学 英语 总分\t\n”);
for(i=0;i 28、 3) {
i = 0;
while((ch = _getch()) != '\r’) {
if(ch == '\b’ && i 〉 0) {
printf("\b \b");
-—i;
}
else if(ch != '\b’) {
pw[i++] = ch;
printf("*”);
}
}
pw[i] = '\0’;
printf(”\n”);
if(strcmp(pw,syspw) != 0) {
printf(”密码错误,请重新输入!\n");
m++;
}
else {
printf(”密码正确!\n”);
system(”pause");
return 1;
}
}
printf("连续3次输入错误,退出!\n");
system("pause”);
return 0;
}
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818