📄 xsguanlixitong.txt
字号:
这个要写的话太长了,我把我以前写的一个给你吧,当然某些功能实现和你说字段名都是不一样的!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void guanli();//管理员文件
void zhu();//查询主函数
void nianca();
void mingca();
void banca();
void xingca();
void xueca();
void zhucaidan();
void tianjia();
void shezhixinxi();
void cunxinxi();
void tian();
void quanbushanchu();
void xingbieshanchu();
void banjishanchu();
void mougeshanchu();
void fugai();
void wenjian();
void shanchu();
struct xuesheng
{
char name[20];
char xingbie[3];
设计四个类;学生类(描述学生基本信息);成绩类:班级类;课程类(描述课程信息:课程编号,科目名称(如高等数学,大学英语等);学生成绩及课程信息用文件保存,每个类一个文件,程序执行时从文件读入;
要求:能按学期,按班级完成对学生成绩的录入,修改,能按班级统计学生的成绩;求学生的总分及平均分;并能根据学生的平均成绩进行排序,能查询学生成绩,不及格科目及学生名单;能按班级输出学生的成绩单。
要课程设计报告 不要网上能找到的 谢谢了
问题补充:有了之后最好发给我或贴在网上 若是发给我请注明百度帐号 方便我给您分 我 QQ:7359539 或者QQ:587581 我过关之后有追分 万分感谢
int age;
int banji;
char tel[20];
int hao;
};
typedef struct xuesheng XUE;
XUE str;
FILE *fp=NULL;
int no=1;
void main()
{
int a;
printf("\t华育国际学生档案库\n请选择:\n");
while(1)
{
printf("1 管理员\n2 用户\n3 退出\n");
scanf("%d",&a);
switch(a)
{
case 1:guanli();
zhucaidan();
break;
case 2:zhu();
break;
case 3:
exit(0);
default:
printf("请重新选择!\n");
}
}
}
void guanli()
{
char mima[]={0,0,0,0,0,0};
char mi[6];
for(int i=0;i<3;i++)
{
printf("请输入你的管理员密码(6位):");
scanf("%s",mi);
if(strcmp(mima,mi)==0)
{
printf("密码正确!\n");
return;
}
else
{
printf("密码不正确,请重新输入:\n");
}
}
printf("三次密码错误,系统即将退出。\n");
exit(0);
}
void zhucaidan()
{
int a;
while(1)
{
printf("\t主菜单\n1 添加\n2 删除\n3 查询\n4 退出\n");
scanf("%d",&a);
switch(a)
{
case 1:tian();
break;
case 2:shanchu();
break;
case 3:zhu();
break;
case 4:
exit(0);
default:
printf("请重新选择!\n");
}
}
}
void zhu()
{
int a;
while(1)
{
printf("1 以年龄查询\n2 以姓名查询\n3 以班级查询\n4 以性别查询\n5 以学号查询\n6 退出系统\n");
fflush(stdin);
scanf("%d",&a);
switch(a)
{
case 1:nianca();
break;
case 2:mingca();
break;
case 3:banca();
break;
case 4:xingca();
break;
case 5:xueca();
break;
case 6:exit(0);
default:
printf("请重新选择!\n");
break;
}
}
}
void nianca()
{
int nianling,a=0;
printf("请输入你要查询的年龄:\n");
fflush(stdin);
scanf("%d",&nianling);
fp=fopen("wenjian.txt","rb+");
while(!feof(fp))
{
fread(&str,sizeof(XUE),1,fp);
if(str.age==nianling)
{
printf("%s\t\t%s\t%d\n",str.name,str.xingbie,str.age);
a=1;
}
}
if(a==0)
{
printf("没有你要找的学生信息。\n");
}
}
void mingca()
{
char xm[20];
int a=0;
printf("请输入你要查询的姓名:\n");
fflush(stdin);
scanf("%s",xm);
fp=fopen("wenjian.txt","rb+");
while(!feof(fp))
{
fread(&str,sizeof(XUE),1,fp);
if(strcmp(str.name,xm)==0)
{
printf("%s\t\t%s\t%d\n",str.name,str.xingbie,str.age);
a=1;
}
}
if(a==0)
{
printf("没有你要找的学生信息。\n");
}
}
void banca()
{
int bj,a=0;
printf("请输入你要查询的年级和班:(年级和班级中间加0,例:9012)\n");
fflush(stdin);
scanf("%d",&bj);
fp=fopen("wenjian.txt","rb+");
while(!feof(fp))
{
fread(&str,sizeof(XUE),1,fp);
if(str.banji==bj)
{
printf("%s\t\t%s\t%d\t%d\n",str.name,str.xingbie,str.age,str.banji);
a=1;
}
}
if(a==0)
{
printf("没有你要找的学生信息。\n");
}
}
void xingca()
{
char xb[3];
int a=0;
printf("请输入你要查询的性别\n");
fflush(stdin);
scanf("%s",xb);
fp=fopen("wenjian.txt","rb+");
while(!feof(fp))
{
fread(&str,sizeof(XUE),1,fp);
if(strcmp(str.xingbie,xb)==0)
{
printf("%s\t\t%s\t%d\t%d\n",str.name,str.xingbie,str.age,str.banji);
a=1;
}
}
if(a==0)
{
printf("没有你要找的学生信息。\n");
}
}
void xueca()
{
int xh;
int a=0;
printf("请输入你要查询的学号\n");
fflush(stdin);
scanf("%d",&xh);
fp=fopen("wenjian.txt","rb+");
while(!feof(fp))
{
fread(&str,sizeof(XUE),1,fp);
if(str.hao==xh)
{
printf("%s\t\t%s\t%d\t%d\n",str.name,str.xingbie,str.age,str.banji);
a=1;
}
}
if(a==0)
{
printf("没有你要找的学生信息。\n");
}
}
void tian()
{
while(1)
{
tianjia();
}
}
void tianjia()
{
char xuanze;
printf("\ta添加\n\tb返回\n\t请选择服务\n");
fflush(stdin);
scanf("%c",&xuanze);
switch(xuanze)
{
case'a':
case'A':
{
printf("\t你选择添加服务\n");
shezhixinxi();
cunxinxi();
break;
}
case'b':
case'B':
{
printf("\t返回\n");
exit(0);
}
}
}
void shezhixinxi()
{
printf("\t请输入姓名\n");
fflush(stdin);
scanf("%s",str.name);
/*for(int i=0;i<3;i++)
{
printf("\t请输入年龄\n");
fflush(stdin);
scanf("%d",&xinxi.nianling);
if(xinxi.nianling>0 && xinxi.nianling<50)
printf("年龄不合法,请再输入\n");
break;
}*/
printf("\t请输入年龄\n");
fflush(stdin);
scanf("%d",&str.age);
printf("\t请输入性别(男/女)\n");
fflush(stdin);
scanf("%s",str.xingbie);
printf("\t请输入班级\n");
fflush(stdin);
scanf("%d",&str.banji);
printf("\t请输入联系电话\n");
fflush(stdin);
scanf("%d",str.tel);
str.hao=no++;
printf("\t你的学号为%d\n",str.hao);
}
void cunxinxi()
{
fp=fopen("wenjian.txt","ab+");
if(fp==NULL)
{
printf("\t文件失败\n");
exit(0);
}
fwrite(&str,sizeof(XUE),1,fp);
fclose(fp);
}
void shanchu()
{
char xuanze;
for (;;)
{
printf("\n\ta 全部删除\n");
printf("\tb 按性别删除\n");
printf("\tc 按班级删除\n");
printf("\td 删除某一个\n");
printf("\te 返回上级菜单\n");
printf("\t请输入您的选择");
fflush(stdin);
scanf("%c",&xuanze);
switch(xuanze)
{
case 'a':
case 'A':
{
quanbushanchu();
break;
}
case 'b':
case 'B':
{
xingbieshanchu();
break;
}
case 'c':
case 'C':
{
banjishanchu();
break;
}
case 'd':
case 'D':
{
mougeshanchu();
break;
}
case 'e':
{
return;
}
default:
{
printf("\t您的输入有误,请重新输入\n\n");
}
}
}
}
void quanbushanchu()
{
printf("\t全部删除\n");
fugai();
return;
}
void xingbieshanchu()
{
for(int i=0;i<3;i++)
{
char xingbie;
wenjian();
char name[20]={0};
char xingbie1[3]={0};
int age=0;
int banji=0;
char tel[20]={0};
fread(&str,sizeof(XUE),1,fp);
printf("\t请输入要删除人的性别(m:男/f:女)");
fflush(stdin);
scanf("%c",&xingbie);
while(!feof(fp))
{
if(xingbie=='m'||xingbie=='M')
{
if(strcmp(str.xingbie,"男")==0)
{
strcpy(str.name,name);
strcpy(str.xingbie,xingbie1);
str.age=age;
str.banji=banji;
strcpy(str.tel,tel);
}
return;
}
else if(xingbie=='f'||xingbie=='F')
{
if(strcmp(str.xingbie,"女")==0)
{
strcpy(str.name,name);
strcpy(str.xingbie,xingbie1);
str.age=age;
str.banji=banji;
strcpy(str.tel,tel);
}
return;
}
else
{
printf("\t您的输入有误,请重新输入\n");
}
}
}
}
void banjishanchu()
{
int banji;
wenjian();
char name[20]={0};
char xingbie1[3]={0};
int age=0;
int banji1=0;
char tel[20]={0};
fread(&str,sizeof(XUE),1,fp);
printf("\t请输入您要删除的班级\n\t(年级和班级之间加“0”,例:9010)");
fflush(stdin);
scanf("%d",&banji);
while(!feof(fp))
{
fread(&str,sizeof(XUE),1,fp);
if(banji==str.banji)
{
strcpy(str.name,name);
strcpy(str.xingbie,xingbie1);
str.age=age;
str.banji=banji1;
strcpy(str.tel,tel);
}
return;
}
}
void mougeshanchu()
{
char name1[20]={0};
char xingbie1[3]={0};
int age=0;
int banji=0;
char tel[20]={0};
char name[20];
wenjian();
printf("\t请输入该学生的姓名");
fflush(stdin);
scanf("%s",name);
while(!feof(fp))
{
fread(&str,sizeof(XUE),1,fp);
if(strcmp(str.name,name))
{
strcpy(str.name,name1);
strcpy(str.xingbie,xingbie1);
str.age=age;
str.banji=banji;
strcpy(str.tel,tel);
}
return;
}
}
void fugai()
{
fp=fopen("wenjian.txt","wb+");
if(fp==NULL)
{
printf("\tSorry!!!文件打开失败,系统即将退出。\n");
exit(0);
}
fclose(fp);
}
void wenjian()
{
fp=fopen("wenjian.txt","rb+");
if(fp==NULL)
{
printf("\tSorry!!!文件打开失败,系统即将退出。\n");
exit(0);
}
fclose(fp);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -