c语言课设之学生成绩管理系统

上传人:shaoy****1971 文档编号:108245718 上传时间:2019-10-23 格式:DOC 页数:18 大小:107KB
返回 下载 相关 举报
c语言课设之学生成绩管理系统_第1页
第1页 / 共18页
c语言课设之学生成绩管理系统_第2页
第2页 / 共18页
c语言课设之学生成绩管理系统_第3页
第3页 / 共18页
c语言课设之学生成绩管理系统_第4页
第4页 / 共18页
c语言课设之学生成绩管理系统_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《c语言课设之学生成绩管理系统》由会员分享,可在线阅读,更多相关《c语言课设之学生成绩管理系统(18页珍藏版)》请在金锄头文库上搜索。

1、C语言程序设计报告 目录学生成绩管理程系题目要求 3需求分析 3总体设计 4详细设计 4上机操作 11源程序 13总结 19学生成绩管理程序一 题目要求 1. 问题描述:对在校学生几门课程的考试成绩进行统一管理.每个学生记录包括学号,姓名,年龄,数学,英语,物理成绩,默认以学号为序存放.2. 要求:(1):一个文件按以班为单位存储学生记录.(2)将允许的操作分为四种,以A,B ,C,D,E,F为标志:A:插入一个学生记录;B:修改学生记录;C:删除一个学生记录;D:查找一个学生记录;E:浏览学生成绩:F:退出3. 计算学生的总成绩.4. 按学号排序输出全班学生成绩表.二 需求分析根据题目要求,

2、由于学生信息是存放在文件中,所以应提供文件的输入,输出等操作;在程序中需要浏览学生的信息,应提供显示,查找,排序等操作;另外还应提供键盘式选择菜单实现功能选择.三 总体设计根据上面的需求分析,可以将这个系统分为以下模块:输入模块,修改模块,删除模块,查找模块,显示模块.学生成绩管理系统数据输入数据显示数据修改数据删除数据查找四 详细设计1. 主函数:主函数一般设计得比较简单,只提供输入,处理和输出部分的函数调用,其中各功能模块用菜单方式选择.流程图:显示一系列功能模块 N输入n,判断n是否是A-F Y根据n的值调用各功能模块函数程序:main() while(1) clrscr();print

3、f(*welcome to use student manage*n); printf(*menu*n); printf(* = * n); printf(* Ashuru Bxiugai * n); printf(* Cshanchu Dchazhao * n); printf(*Exianshi Fexit * n); printf(* * n); printf(* - * n); printf( Please input which you want(A-F):); ch=getch(); switch(ch) case A:shuru();break; case B:xiugai();

4、 break; case C:shanchu(); break; case D:chazhao(); break; case E:xianshi(); break; case F:exit(0); default: continue; 2. 输入模块:分析:单独看各数据信息,学号,姓名是字符型,可以采用字符型数组;分数为整数,采用整数;数据信息存放在文件中,一条记录对应一个学生,既符合习惯又方便信息管理.如果要存放若干学生信息就用结构体数组:struct score /*结构体score*/ int mingci; char xuehao8; char mingzi20; char nianl

5、ing3;float score6; data,info1000; int i,j,k=0; char temp20,ch; FILE *fp,*fp1;程序:void shuru() if(fp=fopen(s_score.txt,ab+)=NULL) /*以读写方式打开名为s_score的文件*/ printf(cannot open this file.n); getch();exit(0); for(i=0;i=1000;i+) printf(nPlease shuru xuehao:); gets(data.xuehao); printf(Please shuru mingzi:);

6、 gets(data.mingzi); printf(please shuru nianling:);gets(data.nianling);printf(Please shuru shuxue score:); gets(temp);data.score0=atof(temp); printf(Please input yingyu score:); gets(temp);data.score1=atof(temp); printf(Please shuru wuli score:); gets(temp);data.score2=atof(temp); data.score3=data.s

7、core0+data.score1+data.score2;fwrite(&data,sizeof(data),1,fp); printf(another?y/n); ch=getch(); if(ch=n|ch=N) break; fclose(fp); 3. 修改模块:分析:用户输入要修改学生的学号,根据学生的学号查找学生记录,并提示用户修改该记录的哪部分信息.根据用户选择修改相应的信息.流程图:输入要修改的学号找到? Y N提示没有找到显示记录,调用修改函数返回主菜单继续? Y N程序:void xiugai() if(fp=fopen(s_score.txt,rb+)=NULL|(fp

8、1=fopen(temp.txt,wb+)=NULL) /*检查是否出错*/ printf(Cannot open this file.n); exit(0); printf(nPLease shuru xiugai xuehao:); scanf(%d,&i); getchar(); while(fread(&data,sizeof(data),1,fp)=1) j=atoi(data.xuehao); if(j=i) printf(xuehao:%snmingzi:%snnianling:%sn,data.xuehao,data.mingzi,data.nianling); printf(

9、Please shuru mingzi:); gets(data.mingzi); printf(Please shuru shuxue score:); gets(temp);data.score0=atof(temp); printf(Please input yingyu score:); gets(temp);data.score1=atof(temp); printf(Please input wuli score:); gets(temp);data.score2=atof(temp); data.score3=data.score0+data.score1+data.score2

10、; fwrite(&data,sizeof(data),1,fp1); fseek(fp,0L,0); /*将位置指针移到离头文件0个字节处*/fseek(fp1,0L,0); while(fread(&data,sizeof(data),1,fp1)=1) fwrite(&data,sizeof(data),1,fp); fclose(fp); fclose(fp1); 4. 删除模块: 分析:该模块的功能是,用户输入要删除的学生的学号,根据学生学号查找记录并删除.流程图: 输入要删除的学号找到? Y N提示没有找到显示记录,调用删除函数返回主菜单继续? Y N程序:void shanchu

11、() if(fp=fopen(s_score.txt,rb+)=NULL|(fp1=fopen(temp.txt,wb+)=NULL) printf(nopen score.txt was failed!); getch(); exit(0); printf(nPlease input ID which you want to del:); scanf(%d,&i);getchar(); while(fread(&data,sizeof(data),1,fp)=1) j=atoi(data.xuehao); if(j=i) printf(Anykey will delet it.n); getch(); continue; fwrite(&data,sizeof(data),1,fp1); fclose(fp); fclose(fp1); remove(s_score.txt); rename(temp.txt,s_score.txt); printf(Data delet was succesful!n); printf(Anykey will return to main.); getch(); 5. 查找模块:需求分析:

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号