1、 .
学生信息管理系统
#include
2、nt) #define FORMAT "%-12d%-12s%-13.1f%-13.1f%-13.1f%-13.1f\n" #define DATA stu[i].num,stu[i].name,stu[i].chinese,stu[i].math,stu[i].english,stu[i].sum /**************定义学生成绩构造体***********************/ struct student { int num; char name[15]; float chinese; float math; float english;
3、float sum; }; struct student stu[50]; /************函数声明与简介***************/ void input(); void show(); void order(); void del(); void modify(); void menu(); void insert(); void total(); void search(); int chcode(); /***********主函数****************/ int main() { int n; int login = c
4、hcode(); if(!login) { printf("登录失败!\n"); return 0; } printf("登录成功!\n"); menu(); scanf("%d",&n); while(n) { switch(n) { case 0: exit(0); case 1: input();break; case 2: search();break; case 3: del();break; case 4: mo
5、dify();break; case 5: insert();break; case 6: order();break; case 7: total();break; case 8: show();break; default:printf("输入有误,请重新输入:");break; } getch(); menu(); scanf("%d",&n); } return 0; } /*******自定义函数实现菜单功能*****
6、/ void menu() { system("cls"); printf("\t\t|-------------学生信息系统----------|\n"); printf("\t\t| |\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
7、"); 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\t| 7. 记录个数\t\t\t |\n"); printf("\t\t| 8. 显示记录\t\t\t |\n"); printf("\t\t|-----------------------------------|\n\n"); printf("\t\t请输入你的操作〔0-8〕:"); }
8、 /*****录入学生信息**/ void input() { int i,m=0; char ch[2]; FILE *fp;/*定义指针文件*/ if((fp=fopen("stuData.tet","a+"))==NULL) { printf("翻开文件失败\n"); return; } while(!feof(fp)) { if(fread(&stu[m],LEN,1,fp)==1) m++; } fclose(fp); if(m==0) printf("没有数据!\n"); else { s
9、ystem("cls");
show();
}
if((fp=fopen("stuData.txt","wb"))==NULL)
{
printf("翻开文件失败\n");
return;
}
for(i=0;i 10、num);
for(i=0;i 11、f("英语成绩:");
scanf("%f",&stu[m].english);
stu[m].sum=stu[m].chinese+stu[m].math+stu[m].english;
if(fwrite(&stu[m],LEN,1,fp)!=1)
{
printf("保存失败!");
getch();
}
else
{
printf("%s 已保存!\n",stu[m].name);
m++;
}
printf("是否继续?〔y/n〕:");
scanf("%s",ch 12、);
}
fclose(fp);
printf("操作成功!\n");
}
/******自定义查找*/
void search()
{
FILE *fp;
int snum,i,m=0;
char ch[2];
if((fp=fopen("stuData.txt","rb"))==NULL)
{
printf("翻开文件失败\n");
return;
}
while(!feof(fp))
if(fread(&stu[m],LEN,1,fp)==1)
m++;
fclose(fp);
if(m==0)
{
13、 printf("文件无记录!\n");
return;
}
printf("请输入需要查找的学生学号:");
scanf("%d",&snum);
for(i=0;i 14、 break;
}
}
if(i==m)
printf("查找失败!\n");
}
/*****自定义删除***/
void del()
{
FILE*fp;
int snum,i,j,m=0;
char 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 15、)
{
printf("文件无记录!\n");
return;
}
show();
printf("请输入需要删除的学生学号:");
scanf("%d",&snum);
for(i=0;i 16、];
m--;
if((fp=fopen("stuData.txt","wb"))==NULL)
{
printf("翻开文件失败\n");
return;
}
for(j=0;j 17、
else
{
printf("取消删除!\n");
return;
}
}
}
printf("没有找到要删除的信息!\n");
}
/*******自定义修改函数***/
void 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 18、)==1)
m++;
if(m==0)
{
printf("文件无记录!\n");
fclose(fp);
return;
}
show();
printf("请输入你要修改的的学生学号\n");
printf("学号是:");
scanf("%d",&snum);
for(i=0;i 19、tf("chinese");
scanf("%f",&stu[i].chinese);
printf("math:");
scanf("%f",&stu[i].chinese);
printf("english:");
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)
20、{
printf("保存失败!");
getch();
}
fclose(fp);
return;
}
}
printf("没有找到匹配信息");
}
/********自定义插入函数****/
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(&st 21、u[m],LEN,1,fp)==1)m++;
if(m==0)
{
printf("没有数据!\n");
fclose(fp);
return;
}
printf("请输入数据插入的位置:\n");
scanf("%d",&snum);
for(i=0;i 22、um);
for(k=0;k 23、
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.txt","wb"))==NULL)
{
printf("翻开文件失败\n");
return;
}
for(k=0;k<=m;k++)
if(fwrite(&stu[k],LEN,1,fp)!=1)
{
printf("保存失败!");
getch();
return 24、
}
printf("插入函数成功!");
getch();
fclose(fp);
}
//************自定义排序函数****///
void order()
{
FILE *fp;
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)
25、
m++;
fclose(fp);
if(m==0)
{
printf("无记录!\n");
return;
}
if((fp=fopen("stuData.txt","wb"))==NULL)
{
printf("翻开文件失败\n");
return;
}
for(i=0;i 26、
}
/*******显示学生总人数*******/
void total()
{
FILE *fp;
int m=0;
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("学生总数为 27、 %d 位!\n",m);
fclose(fp);
}
/*******显示学生信息*****/
void show()
{
FILE *fp;
int i,m=0;
fp=fopen("stuData.txt","rb");
while(!feof(fp))
{
if(fread(&stu[m],LEN,1,fp)==1)
m++;
}
fclose(fp);
printf("学号XX语文数学英语总分\t\n");
for(i=0;i 28、hcode() {
char pw[50],ch;
char *syspw = "1234"; // 原始密码
int i,m = 0;
printf("请输入密码:");
while(m < 3) {
i = 0;
while((ch = _getch()) != '\r') {
if(ch == '\b' && i > 0) {
printf("\b \b");
--i;
}
else if(ch != '\b') {
pw[i++] = ch;
printf("*");
}
} 29、
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;
}
. .word.zl.






