C程序设计报告.doc
大连民族学院理学院c课程设计报告课程名称 C语言课程设计 设计题目 学生成绩管理 学生姓名 南银兰 学 号 2009052112 专业班级 信息与计算科学09-1班 指导教师 孙雪莲 2011年 6 月9日目录1、设计目的2、总体设计(程序设计组成框图、流程图)3、详细设计(模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)4、调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施5、源程序清单和执行结果:清单中应有足够的注释6. C程序设计总结7. 参考文献C程序设计报告一 设计目的;1)复习和巩固c语言的基础知识,加深对c语言编程的理解和掌握;2)能通过c语言所学知识编写出学生成绩管理系统,其内容为1、能按学期、按班级完成对学生成绩的录入、修改2、能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序3、能查询学生成绩,不及格科目及学生名单4、能按班级输出学生的成绩单3)培养学生在项目中的团队合作精神和实战能力;二 总体设计三 详细设计模块功能说明;void input(student stu)输入学生信息 void output(student *stu,int n)输出学生信息void SortScore(student *stu,int n)用一个函数来实现排序int main( ) 主函数四调试与测试1. 调试方法; 调试方法:逐条的对程序中的错误进行修改;修改程序中的变量、声明新函数以及声明头文件对函数进行调2. 测试结果的分析与讨论1. 测试过程中遇到的主要问题及采取的解决措施 遇到的问题1、运行时不能够按学号查询成绩解决问题;在for循环是没有加括号,使他不能正确的运行,加上括号后问题解决了。 遇到问题2、在运行时发现缺平均分的计算,解决问题2;在结构体加入平均分的的结构体变量,在输入中和输出中添加此功能好问题解决了。五源程序清单和执行结果#include <stdio.h> #define STU_NUM 2 /*宏定义学生的数量*/ struct student /*定义一个结构体用来存放学生学号、三门课成绩、总分及平均成绩*/ int tclass;int stu_id; /*学生学号;*/ float score3; /*三门课成绩;*/ float total; /*总成绩;*/ float aver; /*平均成绩;*/ ; /*计算不及格成绩*/void bujihge(student stu,int n) for(int i=0;i<n;i+) printf(" 不及格科目是:"); if(stui.score0<60|stui.score1<60|stui.score2<60) printf("学号:%d",stui.stu_id); if(stui.score0<60)/如果成绩小于60分 printf("数学: %f",stui.score0); if(stui.score1<60) printf("英语: %f",stui.score1); if(stui.score2<60) printf("计算机: %f",stui.score2); void findclass(student stu,int n)/按班级查找 int tclass; scanf("%d",&tclass);for(int i=0;i<n;i+)if(stui.tclass=tclass)printf("班级: %dtn",stui.tclass); printf("序号: %dtn",i+1); printf(" 学号:%dtn",stui.stu_id); printf(" 数学:%ft",stui.score0); printf("英语:%ft",stui.score1); printf("计算机:%fn",stui.score2);void input(student stu) int i; /*输入这十个学生的相关信息*/ for( i = 0; i<STU_NUM; i+) printf("请输入班级:",i+1); scanf("%d",&stui.tclass); printf("请输入第%d个学生的学号:",i+1); scanf("%d",&stui.stu_id); printf("输入第%d个学生的数学成绩:",i+1); scanf("%f",&stui.score0); printf("输入第%d个学生的英语成绩:",i+1); scanf("%f",&stui.score1); printf("输入第%d个学生的计算机成绩:",i+1); scanf("%f",&stui.score2); stui.total = stui.score0+stui.score1+stui.score2; stui.aver = stui.total/3; void change(student *stu,int n)/修改学生信息 int number; scanf("%d",&number);for(int i=0;i<n;i+)if(stui.stu_id=number) printf("请输入班级:"); scanf("%d",&stui.tclass); printf("请输入学生的学号:"); scanf("%d",&stui.stu_id); printf("输入学生的数学成绩:"); scanf("%f",&stui.score0); printf("输入学生的英语成绩:"); scanf("%f",&stui.score1); printf("输入学生的计算机成绩:"); scanf("%f",&stui.score2); stui.total = stui.score0+stui.score1+stui.score2; stui.aver = stui.total/3; printf("修改成功!"); break;void output(student *stu,int n)/输出学生信息 for(int i = 0 ; i < STU_NUM; i+) printf("班级: %dtn",stui.tclass); printf("序号: %dtn",i+1); printf(" 学号:%dtn",stui.stu_id); printf(" 数学:%ft",stui.score0); printf("英语:%ft",stui.score1); printf("计算机:%fn",stui.score2); printf(" 平均成绩:%ft",stui.aver); printf("总分:%ftn",stui.total); printf("nn"); /*用一个函数来实现排序*/ void SortScore(student *stu,int n) student stud; for(int i = 0; i < n-1; i+) for(int j = i+1 ; j < n; j+) if(stui.aver < stuj.aver) stud = stui; stui = stuj; stuj = stud; int main( ) student stuSTU_NUM; /*创建结构体数组中有10个元素,分别用来保存这10个人的相关信息。*/ printf("n"); printf(" 欢迎使用信息查询系统n");/换行=nprintf("n"); printf(" * n" );printf(" * WELCOME * 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");int number;while(1) printf("n请输入您的选择"); scanf("%d",&number);switch(number)case 1: input(stu); break;case 2: SortScore(stu,STU_NUM); printf("排序成功!"); break;case 3: change(stu,STU_NUM); break;case 4: bujihge(stu,STU_NUM); break;case 5:output(stu,STU_NUM);break;case 6: findclass(stu,STU_NUM); break; case 7: return 0; return 0;执行结果修改学生信息查询不及格成绩六学习心得通过本次的学习,对于c语言的特点和算法有了新的了解。这两周的课程设计让我巩固以前的知识并在此基础上能够有所突破。在组员的共同努力下,我们顺利的完成啦对此程序的编译及调试运行。在设计程序的过程中,我们了解到设计一个完整的程序,最难的就是程序的框架,其中需要经过很多次测修改和调试,所以必须有耐心,直至最后设计出自己想要的程序。七参考文献C程序设计谭浩强