C语言知识程序设计实习报告-学生信息管理计划系统.doc
《C语言知识程序设计实习报告-学生信息管理计划系统.doc》由会员分享,可在线阅读,更多相关《C语言知识程序设计实习报告-学生信息管理计划系统.doc(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-+ C 语 言 课 程 设 计题 目: 学生信息管理系统设计者 : 梁天江专 业: 机械设计制造及其自动化班级学号: 072084-31所属院系: 机电学院指导教师: 吴湘宁 2010年7月17日1. 题目和要求:1.1问题提出与要求:学生成绩管理系统要求 设计一个学生成绩管理系统,对在校某班学生几门课程的考试成绩进行统一管理。每个学生记录包括学号、姓名、年龄、数学、英语、物理成绩,默认以学号为序存放。(1)一个文件按以班为单位存储学生记录。(2)将允许的操作分为六种A:插入一个新的学生记录(录入学生信息)B:修改学生记录C:删除一个学生记录D:登记成绩E:修改成绩F:浏览全班成绩 (3)计
2、算学生的总成绩 (4)输出全班成绩表1.2需求分析.根据题目要求,由于学生信息是存放在文件中,所以应提供文件的输入,输出等操作;在程序中需要浏览学生的信息,应提供显示,查找,排序等操作;另外还应提供键盘式选择菜单实现功能选择.2.功能实现设计:2.1总体设计:分析系统:根据题目的需求分析,可将这个系统设计为六大模块(见下图):插入学生信息,修改,删除,登记,浏览,统计。学生信息管理系统显示修改删除浏览退出插入2.2详细设计: 1、主函数主函数设计得比较简洁,只提供输入、功能处理和输出部分的函数调用。其中各功能模块用菜单方式选择;其流程图如下:开始显示一系列功能选项输入n,判断n是否是16? 根
3、据n的值调用各功能模块函数结束程序void main()int a; do printf(ttttn); printf(tttt学生成绩管理系统n); printf(n); printf(ttt作者:梁天江 班级:072084-31 学号:20081004528n); printf(ttt-nn); printf(t 1.插入新的学生记录n); printf(t 2.修改学生记录n); printf(t 3.删除学生记录n); printf(t 4.显示学生成绩和总分n); printf(t 5.浏览全班成绩n); printf(t 6.退出nn); printf( 输入你要操作的序号 : )
4、; scanf(%d,&a); switch(a) case 1:printf(n);input();break; case 2:printf(n);change();break; case 3:printf(n);del();break; case 4:printf(n);allgrade();break; case 5:printf(n);paixu();break; case 6:printf(n);exit(0);break; default:printf(nThe choice is between 1 to 6.n); while(a!=0);2、各功能模块设计(1)插入模块voi
5、d input() int j; char ch20;printf(n输入学生信息:n);do printf(n学号: ); scanf(%s,stuk.num); printf(n姓名: ); scanf(%s,stuk.name); printf(n年龄: ); scanf(%d,&stuk.age); for(j=0;j3;j+) printf(n成绩%d: ,j+1); scanf(%d,&stuk.gradej); k+; printf(n如要继续,请输入学生信息(y/n): ); scanf(%s,ch); while(strcmp(ch,y)=0|strcmp(ch,Y)=0);
6、 outputgrade();void outputgrade() int i; printf( 学生信息是:n); for(i=0;ik;i+) printf(t%s t%s t%d t%d t%d t%d,stui.num,stui.name,stui.age,stui.grade0,stui.grade1,stui.grade2);printf(n); (2)修改模块输入要修改的学号找到? Y N提示没有找到显示记录,调用修改函数继续? Y N返回主菜单void change()int i,j;char a20,ch10; printf(n输入你要修改的学生学号:); scanf(%s,
7、a); for(i=0;ik;i+) if(strcmp(stui.num,a)=0) printf(n你确定要修改学号吗?(y/n): ); scanf(%s,ch); if(strcmp(ch,y)=0|strcmp(ch,Y)=0) printf(nnum:); scanf(%s,stui.num); printf(n你确定要修改学生姓名吗?(y/n): ); scanf(%s,ch); if(strcmp(ch,y)=0|strcmp(ch,Y)=0) printf(nname); scanf(%s,stui.name); printf(n你确定要修改学生成绩吗?(y/n): ); s
8、canf(%s,ch); printf(n); if(strcmp(ch,y)=0|strcmp(ch,Y)=0) for(j=0;j3;j+) printf(grade%d:,j+1); scanf(%d,&stui.gradej); printf(n); outputgrade();(3)删除模块 输入要删除的学号找到? Y N提示没有找到显示记录,调用删除函数返回主菜单继续? Y Nvoid del()int i,j;char c20; printf(n输入你要删除的学生学号 :n); printf(num:); scanf(%s,&c); for(i=0;i3;i+) if(strcm
9、p(c,stui.num)=0) break; for(j=i;j=2;j+) stuj=stuj+1; printf(ttt你已经删除 %s的信息n,c); k-; outputgrade();(4)显示模块 (显示学生成绩总分)void allgrade() int i; float sum=0; for(i=0;ik;i+) printf(t%d t%d t%dn,stui.grade0,stui.grade1,stui.grade2); sum=sum+stui.grade0+stui.grade1+stui.grade2 ; printf(总成绩是 %f,sum);(5)浏览模块(浏
10、览全班学生成绩并按学号排序)void paixu() struct student temp; int i,j;for(i=0;ik-1;i+) for(j=i+1;jk;j+) if(stui.numstuj.num) temp=stui; stui=stuj; stuj=temp; outputgrade();2.上机操作1、数据源全班学生信息文件student.txt格式:每行储存一个学生信息,内容包括学生学号、姓名、年龄、数学成绩、英语成绩、物理成绩。例如:01 zhao 18 90 80 852、编译、链接和运行(略)3、结果(1)主菜单函数效果如下图所示:(2)插入模块在主界面出现
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 知识 程序设计 实习 报告 讲演 呈文 学生 信息管理 计划 规划 系统
限制150内