资源描述:
《c语言程序管理系统课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、-22-C语言课程设计报告实验报告专业:班级:姓名:学号:题目:学生成绩管理程序该程序是一个简单的学生成绩管理程序.它可以录入多个同学的基本情况:学号、姓名、数学,英语,C语言分数,同时还可以输出学生的平均,分总分,并且能够将所有学生的基本情况和各课的成绩作适当修改和删除以及统计与排名,同时能够将每个学生的成绩输出.一:数据结构设计及用法说明在整个程序中采用了多种数据结构,包括有基本类型中的:1:整型int、char、long。-22-2:浮点型:double、float。3:导出类型:指针、数组、结构(stru
2、ct),链表。程序中的几个主要的结构:voidmain(){intmm;for(;1;){printf("请输入密码");scanf("%d",&mm);if(mm==123)break;elseprintf("密码错误;请重输入密码");}Linkl;/*定义链表*/FILE*fp;/*文件指针*/intselect;/*保存选择结果变量*/charch;/*保存(y,Y,n,N)*/intcount=0;/*保存文件中的记录条数(或结点个数)*/Node*p,*r;/*定义记录指针变量*/l=(Nod
3、e*)malloc(sizeof(Node));if(!l){printf("内存分配失败");/*如没有申请到,打印提示信息*/return;/*返回主界面*/}l->next=NULL;r=l;fp=fopen("C:\student","ab+");/*以追加方式打开一个二进制文件,可读可写,若此文件不存在,会创建此文件*/if(fp==NULL){printf("=====>无法打开文件!");exit(0);}while(!feof(fp)){p=(Node*)malloc(sizeof(
4、Node));-22-if(!p){printf("memorymallocfailure!");/*没有申请成功*/exit(0);/*退出*/}if(fread(p,sizeof(Node),1,fp)==1)/*一次从文件中读取一条学生成绩记录*/{p->next=NULL;r->next=p;r=p;/*r指针向后移一个位置*/count++;}}fclose(fp);/*关闭文件*/printf("=====>打开文件成功,共记录的数目:%d.",count);menu();while(1)
5、{system("cls");menu();p=r;printf("请输入您的选择(0~9):");/*显示提示信息*/scanf("%d",&select);if(select==0){if(saveflag==1)/*若对链表的数据有修改且未进行存盘操作,则此标志为1*/{getchar();printf("=====>是否保存修改记录文件?(y/n):");scanf("%c",&ch);if(ch=='y'
6、
7、ch=='Y')Save(l);}printf("=====>谢谢使用!");getch
8、ar();break;}switch(select){case1:Add(l);break;/*增加学生记录*/case2:Del(l);break;/*删除学生记录*/case3:Qur(l);break;/*查询学生记录*/-22-case4:Modify(l);break;/*修改学生记录*/case5:Insert(l);break;/*插入学生记录*/case6:Tongji(l);break;/*统计学生记录*/case7:Sort(l);break;/*排序学生记录*/case8:Save(l);b
9、reak;/*保存学生记录*/case9:{system("cls");Disp(l);printf("按任何键返回");chara;scanf("%d",&a);break;}/*显示学生记录*/default:Wrong();getchar();break;/*按键有误,必须为数值0-9*/}}}程序中建立了多个函数分别来完成每个所要求的功能:读文件和写文件函数,建链表函数,插入、修改和删除函数,排序、统计和输出函数.程序利用各个函数来完成前面要求所需要的功能。二:程序调用图:主函数main密码验证函数功能8
10、保存成绩1.输入成绩2删除成绩5插入成绩3查询成绩4修改成绩6统计成绩7成绩排序0退出系统9显示成绩-22-三:功能菜单#***************************菜单**************************;*1输入成绩*2删除成绩*3查询成绩*4修改成绩*5插入成绩*6统计成绩"*7成绩排序*8保存成绩*9显示成绩*0退出系统#********