数据结构课程设计报告姓名:学号:班级:2015年6月8日1. 题目和要求:1.1问题提出与要求:学生成绩管理系统[要求] 设计一个学生成绩管理系统,对在校某班学生几门课程的考试成绩进行统一管理每个学生记录包括学号、姓名、年龄、数学、英语、物理成绩,默认以学号为序存放1)一个文件按以班为单位存储学生记录 (2)将允许的操作分为六种A:插入一个新的学生记录(录入学生信息)B:修改学生记录C:删除一个学生记录D:登记成绩E:修改成绩F:浏览全班成绩 (3)计算学生的总成绩 (4)输出全班成绩表1.2需求分析.根据题目要求,由于学生信息是存放在文件中,所以应提供文件的输入,输出等操作;在程序中需要浏览学生的信息,应提供显示,查找,排序等操作;另外还应提供键盘式选择菜单实现功能选择.2.功能实现设计:2.1总体设计:分析系统:根据题目的需求分析,可将这个系统设计为六大模块(见下图):插入学生信息,修改,删除,登记,浏览,统计学生信息管理系统显示 修改删除浏览退出插入2.2详细设计: 1、主函数主函数设计得比较简洁,只提供输入、功能处理和输出部分的函数调用其中各功能模块用菜单方式选择;其流程图如下:开始显示一系列功能选项输入n,判断n是否是1~6? 根据n的值调用各功能模块函数结束[程序]void main(){int a; do { printf("\t\t\t\t\n"); printf("\t\t\t\t学生成绩管理系统\n"); printf("\n"); printf("\t\t\t作者:梁天江 班级:072084-31 学号:20081004528\n"); printf("\t\t\t-------------------------------------------\n\n"); printf("\t 1.插入新的学生记录\n"); printf("\t 2.修改学生记录\n"); printf("\t 3.删除学生记录\n"); printf("\t 4.显示学生成绩和总分\n"); printf("\t 5.浏览全班成绩\n"); printf("\t 6.退出\n\n"); printf(" 输入你要操作的序号 : "); 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)插入模块void input(){ int j; char ch[20];printf("\n输入学生信息:\n");do{ printf("\n学号: "); scanf("%s",stu[k].num); printf("\n姓名: "); scanf("%s",stu[k].name); printf("\n年龄: "); scanf("%d",&stu[k].age); for(j=0;j<3;j++) { printf("\n成绩%d: ",j+1); scanf("%d",&stu[k].grade[j]); } k++; printf("\n如要继续,请输入学生信息(y/n): "); scanf("%s",ch); }while(strcmp(ch,"y")==0||strcmp(ch,"Y")==0); outputgrade();}void outputgrade(){ int i; printf(" 学生信息是:\n"); for(i=0;i
例如:01 zhao 18 90 80 852、编译、链接和运行(略)3、结果(1)主菜单函数效果如下图所示:(2)插入模块在主界面出现后输入1回车,即可插一个学生信息,包括学号、姓名、年龄、数学、英语、物理成绩如下图所示:(3)修改模块(4)删除模块(5)显示模块(显示全班学生成绩和总分)(6)浏览模块4.下面附上此次C语言课程设计的源程序#include#include#include#includestruct student{ char num[10]; char name[12]; int age; int grade[3]; }stu[20];int k=0;void input();void outputgrade();void change();void del();void allgrade();void paixu();void main(){int a; do { printf("\t\t\t\t\n"); printf("\t\t\t\t学生成绩管理系统\n"); printf("\n"); printf("\t\t\t作者:梁天江 班级:072084-31 学号:20081004528\n"); printf("\t\t\t-------------------------------------------\n\n"); printf("\t 1.插入新的学生记录\n"); printf("\t 2.修改学生记录\n"); printf("\t 3.删除学生记录\n"); printf("\t 4.显示学生成绩和总分\n"); printf("\t 5.浏览全班成绩\n"); printf("\t 6.退出\n\n"); printf(" 输入你要操作的序号 : "); 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); } void input(){ int j; char ch[20];printf("\n输入学生信息:\n");do{ printf("\n学号: "); scanf("%s",stu[k].num); printf("\n姓名: "); scanf("%s",stu[k].name); printf("\n年龄: "); scanf("%d",&stu[k].age); for(j=0;j<3;j++) { printf("\n成绩%d: ",j+1); scanf("%d",&stu[k].grade[j]); } k++; printf("\n如要继续,请输入学生信息(y/n): "); scanf("%s",ch); }while(strcmp(ch,"y")==0||strcmp(ch,"Y")==0); outputgrade();}void outputgrade(){ int i; printf(" 学生信息是:\n"); for(i=0;i
开始上机实习时,面对着繁琐的程序结构,我无从下手,一头雾水的我看到了《C语言课程设计与学习指导》中的第五章,“举一反三”部分看完后,我“依葫芦画瓢”地在VISUAL C++上写了简单的程序模块在同学的帮助下我做完了程序的主体部分 C语言课程的学习已经过去了几个星期刚开始学习这门课程的时候,我发现老师在课堂上讲授的东西很抽象,不能应用于实际的生活中,并且C语言中的结构,算法等很高深,不容易被我们消化吸收在上机实习的过程中,我发现C语言才是真正能够为现实生活中的问题提供一个简单快捷并且蕴涵着深深智慧的一个工具,作为当今时代的大学生,我们应该好好学习并掌握C语言实际应用中我发现,很多的操作系统都能够C语言编出来,真正实现了办事效率的优化在上机实习的过程中,我发现C语言中的算法和结构具有很深的智慧,一个看似复杂的问题,用很巧妙的C程序算法和结构能奇妙地解决我们应该在以后的学习和生活中将C语言所特有的解决问题的思路和办法融入自己的智慧中另外,C语言编出来的程序很清晰,整洁,将问题有条不紊地分离开来,在一个大框架的总体思路下,将要求化为几个并列的函数,一个函数又一个函数地将问题一一解决 C语言这门课程所包含的东西还很多,很深。
作为一名初次接触的学生,我在C语言课程的学习和这7次的实际上机操作中,对C语言有了进一步的理解从老师开始从C语言的历史开始讲解,到现在,能在老师和同学的帮助下完成一个简单的程序设计,我获益匪浅 遇到问题,分析问题,着手解决问题,并总结问题,C语言程序设计将解决问题并完善问题的总体过程告诉了我们,这对我们都是大有裨益的。