中易网

如何用c语言制作一个学生信息管理系统,要求以文件形式保存

答案:2  悬赏:0  
解决时间 2021-02-22 23:38
哪位大神帮帮忙~
最佳答案
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//链表结点结构体声明
typedef struct subjects
{
char name[20];
float score;
}sub;
typedef struct student
{
int num;
char name[20];
sub  subject[3];
struct student* next;
}stu,*pstu;
#define SIZE sizeof(stu)
//函数申明
pstu LoadInfo();
void PrintMenu();
pstu AddStu(pstu );
pstu DeleStu(pstu );
pstu RwrStu(pstu );
void FindStu(pstu , char );
void Count(pstu ,char * ,float ,float );
void Rank(pstu ,char * );
void SaveQuit(pstu );
 //创建菜单,进入选择循环
while(1)
{
PrintMenu();
printf("请输入您的选择编号:");
scanf("%d",&n);
getchar();                      
switch(n)
{
case 1: 
{
system("cls");             
j=0;
while(4!=j)         
{
printf("欢迎进入信息管理版块!\n\n");
printf("\025 1、添加学生\n");
printf("\025 2、删除学生\n");
printf("\025 3、修改学生信息\n");
printf("\025 4、返回\n");
printf("请输入您的选择编号:\n");
scanf("%d",&j);
getchar();
if     ( 1 == j) head = AddStu(head);       
else if( 2 == j) head = DeleStu(head);      
else if( 3 == j) head = RwrStu(head);       
else if( 4 == j) ;
else printf("输入有误,请重新输入!\n");
}
case 2:

{
//信息查询
system("cls");
printf("欢迎进入信息查询版块!\n");
printf("请输入要查询的学生编号:");
scanf("%d",&j);
getchar();
//printf("%d\n",j);          //检测输入是否成功,调试程序用
FindStu(head,j);            //查询并输出
printf("\n请输入回车键返回主菜单!");
getchar();
system("cls");
break;
}



扩展资料:
C语言包含的各种控制语句仅有9种,关键字也只有32 个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。
实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。
参考资料来源:百度百科-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(struct student),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(struct student),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(struct student),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(struct student),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(struct student),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(struct student),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(struct student),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(struct student),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; } } }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
东辛店村在什么地方啊,我要过去处理事情
用12345678这八个数字组成两个四位数,使这两
钻戒Vvs1 G色 切工:很好 52分 大概多少钱
G1816/S201(路口)地址有知道的么?有点事想过
思明区中国银行ATM(湖明路)地址在什么地方,
电子科技大学清水河校区在什么地方啊,我要过
U701手机OPPO输入法怎么删除以前打过的句子、
word里面连在一起的正负号怎么打
农业工程专业好考研么
)找钢网是什么?
盘算是什么意思
英语四级考了两次都没过 该怎么办啊
江永到吉首乘车怎么最快
热拌沥青混合料和温拌沥青混合料是一样的吗
淘宝上的小米4才几百块,是假的吗?为什么没
推荐资讯
四柱日干甲见午属食神还是伤官?为什么?
温泉东路/温泉东路北三巷(路口)地址在哪,我
刘必豪提高教学效率的建议
怎样快速的才能注册有亨云商店铺?
excel表格:单元格内不见文字,在编辑栏却可
北京通州六中教学怎么样?
破家无贵是什么意思?
都市118连锁酒店平邑浚河路店怎么去啊,有知
鸿福兽药在什么地方啊,我要过去处理事情
大坪院地址在什么地方,想过去办事
Oh! Dear!I`m late for (s )?括号里面填什么
有朋友知道咸阳机场到平凉的班车每天的时刻表
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?