c语言课程设计成绩记录簿
C语言程序设计报告-学生成绩记录簿
2.2结构流程图
2.3功能
2.4性能
2.5输入输出项信息
3功能模块说明
3.1流程逻辑
3.2算法
4程序测试,运行结果及说明
5课程设计总结
6附录(参考文献,原代码解析,限制条件,程序测试)
6.1参考文献
6.2原代码解析
6.3限制条件
1.概述
1.1 题目
成绩记录簿
1.2程序描述
本程序是非数值计算型算法设计,我设计出了通讯录管理系统的基本功能,并设计了简单的界面。本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是链表的相关操作,包括结构体链表的创建、输入、输出、查找、删除等。我设计的这个通讯录系统也初步实现了人员信息的显示、删除、查找、修改、添加等必要的功能。
(2)按学号查询
4.查询班级成绩
5.写入文本文件
6.读取文本文件
4课程设计总结
短短的俩周已经过去了,在此我将交出我一周的成果,我真是百感交错
1.原先写程序直接编,条理性太差。如果先做一个流程图就条理很多。
2.学会了将文件存入和读取,并学会在文件中加入信息和删除信息。
3.我在查找学生姓名时遇到困难,从课本上找到了一个函数strcmp,解决了问题
1.建立一个主界面
2.用switch语句进行分类讨论
3.分别进入录入,查询,删除,求平均值等子函数。
4.将子函数与主函数相连即可。
1.3程序性能
该程序可以建立学生的成绩记录。可以方便老师和同学方便的查阅成绩;
这个程序有录入和删除的功能;
还可以求出平均成绩,并排序
2课题分析
2.1程序系统的结构
2.2程序流程图
按平均值排序只要加一个排序函数即可。
C语言程序的设计报告-学生成绩记录簿
应用技术学院课程设计2011 ~ 2012学年第 2 学期设计题目成绩记录簿院(系)计算机科学与信息工程专业网络工程班级 11104301 学号 1110430115学生 xx设计时间 2012.06.25~2012.07.06指导教师 xxx提交日期 2012.07.06目录1. 概述1.1 题目1.2程序简述1.3程序性能2 课题分析2.1 程序系统的结构2.2 结构流程图2.3 功能2.4 性能2.5 输入输出项信息3 功能模块说明3.1 流程逻辑3.2 算法4 程序测试,运行结果及说明5课程设计总结6附录(参考文献,原代码解析,限制条件,程序测试)6.1参考文献6.2原代码解析6.3限制条件1.概述1.1 题目成绩记录簿1.2程序描述本程序是非数值计算型算法设计,我设计出了通讯录管理系统的基本功能,并设计了简单的界面。
本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是链表的相关操作,包括结构体链表的创建、输入、输出、查找、删除等。
我设计的这个通讯录系统也初步实现了人员信息的显示、删除、查找、修改、添加等必要的功能。
1.建立一个主界面2.用switch语句进行分类讨论3.分别进入录入,查询,删除,求平均值等子函数。
4.将子函数与主函数相连即可。
1.3程序性能该程序可以建立学生的成绩记录。
可以方便老师和同学方便的查阅成绩;这个程序有录入和删除的功能;还可以求出平均成绩,并排序2课题分析2.1程序系统的结构2.2程序流程图课程编号2.3功能成绩记录簿中记录以下数据:学号、、课程编号、课程名称、成绩、学分,所有成绩都以百分制计分;输入信息时要检查数据项学号、课程编号、成绩、学分的合法性,学号:8位数字;课程编号:5位数字;成绩:0 ~ 100 之间的整数,学分: 1~ 5之间的实型数。
添加成绩:需要输入学生的学号或、课程编号及成绩,如已有该门课程成绩给出提示;查询(班级或个人)成绩:查询个人成绩:以学号或作为关键字,可查询一个学生的所有成绩,和已完成的总学分。
C语言程序设计报告学生成绩记录簿
C语言程序设计报告学生成绩记录簿Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】上海应用技术学院课程设计2011 ~ 2012学年第 2 学期设计题目成绩记录簿院(系)计算机科学与信息工程专业网络工程班级学号 15学生姓名 xx设计时间指导教师 xxx提交日期目录1. 概述题目程序简述程序性能2 课题分析程序系统的结构结构流程图功能性能输入输出项信息3 功能模块说明流程逻辑算法4 程序测试,运行结果及说明5课程设计总结6 .............. 附录(参考文献,原代码解析,限制条件,程序测试) 6.1 参考文献6.2 原代码解析限制条件1.概述题目成绩记录簿程序描述本程序是非数值计算型算法设计,我设计出了通讯录管理系统的基本功能,并设计了简单的界面。
本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是链表的相关操作,包括结构体链表的创建、输入、输出、查找、删除等。
我设计的这个通讯录系统也初步实现了人员信息的显示、删除、查找、修改、添加等必要的功能。
1.建立一个主界面2.用switch语句进行分类讨论3.分别进入录入,查询,删除,求平均值等子函数。
4.将子函数与主函数相连即可。
程序性能该程序可以建立学生的成绩记录。
可以方便老师和同学方便的查阅成绩;这个程序有录入和删除的功能;还可以求出平均成绩,并排序2课题分析程序系统的结构程序流程图课程编号功能号、课程编号、成绩、学分的合法性,学号:8位数字;课程编号:5位数字;成绩:0 ~ 100 之间的整数,学分: 1~ 5之间的实型数。
添加成绩:需要输入学生的学号或姓名、课程编号及成绩,如已有该门课程成绩给出提示;查询(班级或个人)成绩:查询个人成绩:以学号或姓名作为关键字,可查询一个学生的所有成绩,和已完成的总学分。
查询班级成绩:以课程编号为关键字,成绩表后面要统计平均分、及格率及全班同学不同课程在不同分数段分布的人数及百分比。
C语言程序设计报告材料-学生成绩记录簿簿
应用技术学院课程设计2011 ~ 2012学年第 2 学期设计题目成绩记录簿院(系)计算机科学与信息工程专业网络工程班级 11104301 学号 1110430115学生 xx设计时间 2012.06.25~2012.07.06指导教师 xxx提交日期 2012.07.06目录1. 概述1.1 题目1.2程序简述1.3程序性能2 课题分析2.1程序系统的结构2.2 结构流程图2.3功能2.4 性能2.5 输入输出项信息3 功能模块说明3.1 流程逻辑3.2 算法4 程序测试,运行结果及说明5课程设计总结6 附录(参考文献,原代码解析,限制条件,程序测试)6.1参考文献6.2原代码解析6.3限制条件1.概述1.1 题目成绩记录簿1.2程序描述本程序是非数值计算型算法设计,我设计出了通讯录管理系统的基本功能,并设计了简单的界面。
本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是链表的相关操作,包括结构体链表的创建、输入、输出、查找、删除等。
我设计的这个通讯录系统也初步实现了人员信息的显示、删除、查找、修改、添加等必要的功能。
1.建立一个主界面2.用switch语句进行分类讨论3.分别进入录入,查询,删除,求平均值等子函数。
4.将子函数与主函数相连即可。
1.3程序性能该程序可以建立学生的成绩记录。
可以方便老师和同学方便的查阅成绩;这个程序有录入和删除的功能;还可以求出平均成绩,并排序2课题分析2.1程序系统的结构2.2程序流程图课程编号2.3功能成绩记录簿中记录以下数据:学号、、课程编号、课程名称、成绩、学分,所有成绩都以百分制计分;输入信息时要检查数据项学号、课程编号、成绩、学分的合法性,学号:8位数字;课程编号:5位数字;成绩:0 ~ 100 之间的整数,学分:1~ 5之间的实型数。
添加成绩:需要输入学生的学号或、课程编号及成绩,如已有该门课程成绩给出提示;查询(班级或个人)成绩:查询个人成绩:以学号或作为关键字,可查询一个学生的所有成绩,和已完成的总学分。
C语言程序设计学生成绩记录簿
课程实验报告
本程序是非数值计算型算法设计,我设计出了学生成绩记录簿系统的基本功能,并设计了简单的界面。
本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是链表的相关操作,包括结构体链表的创建、输入、输出、查找、删除等。
我设计的这个成绩记录簿系统也初步实现了学生成绩信息的显示、输入、删除、查找等必要的功能。
1.建立一个主界面
2.用switch语句进行分类讨论
3.分别进入录入,查询,删除,等子函数。
4.将子函数与主函数相连即可。
该程序可以建立学生的成绩记录。
可以方便老师和同学方便的查阅成绩;这个程序有录入和删除的功能;
还可以求出平均成绩,并排序
成绩记录簿中记录以下数据:学号、姓名、课程编号、课程名称、成绩、学分
添加成绩:需要输入学生的学号或姓名、课程编号及成绩,如已有该门课程成绩给出提示;
查询(班级或个人)成绩:
查询个人成绩:以学号或姓名作为关键字,可查询一个学生的所有成绩,和已完成的总学分。
查询班级成绩:以课程编号为关键字,成绩表后面要统计平均分、及格率及全班同学不同课程在不同分数段分布的人数及百分比。
实
验
界
面
截
图2、添加
3、查询
4、查询成绩
5、写文本
6、读取
算
主程序提供一个界面,允许用户选择。
使用switch语句,用时直接输入数字即可。
增加函数,功能是插入学生成绩。
使用一个无穷循环,直到录入”n”时结束。
删除函数,功能是删除,分为两步,先找后删。
找,用strcmp函数来。
成绩记录薄的C语言设计程序
#include<stdio.h>#include<string.h>#include<stdlib.h>#define MAX 100typedef struct{char num[100];//char name[100];int grade;}Student;Student stu[MAX];int n;main(){void Input();void Display();void Readfile();void Find();void Modify();void Save();void Dis();int choose;do{printf("1输入学生信息并存档\n");printf("2读取学生信息并显示\n");printf("3按学号或姓名查询成绩\n");printf("4修改(删除)指定姓名或学号的学生的成绩并可存盘\n"); printf("5显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息\n");printf("退出(其他数字)\n");scanf("%d",&choose);if(choose==1) {Input();Save();}else if(choose ==2) {Readfile();Display();}else if(choose ==3) {Readfile();Find(1);}else if(choose==4) {Readfile();Find(0);}else if(choose==5) {Readfile();Dis();}}while(1);}void Dis(){int i;printf("60分以下的:\n");for(i=0;i<n;i++){if(stu[i].grade<60)printf("%s %s %d\n",stu[i].num,stu[i].name,stu[i].grade);}printf("60~79分的:\n");for(i=0;i<n;i++){if(stu[i].grade<80&&stu[i].grade>=60) printf("%s %s %d\n",stu[i].num,stu[i].name,stu[i].grade);}printf("80~89分的:\n");for(i=0;i<n;i++){if(stu[i].grade<90&&stu[i].grade>=80) printf("%s %s %d\n",stu[i].num,stu[i].name,stu[i].grade);}printf("90分的:\n");for(i=0;i<n;i++){if(stu[i].grade>=90)printf("%s %s %d\n",stu[i].num,stu[i].name,stu[i].grade);}}void Modify(int t){int choose;int i;printf("1.删除\n");printf("other.修改\n");scanf("%d",&choose);if(choose==1){for(i=t;i<n-1;i++){stu[i]=stu[i+1];}n--;}else{printf("请重新输入该学生的信息:\n");scanf("%s %s %d",stu[t].num,stu[t].name,stu[t].grade);}Save();}void Find(int p){int i;int choose,t;char ans[100];do{printf("1.按学号查找\n");printf("2.按姓名查找\n");printf("返回主菜单(其他数字)\n");scanf("%d",&choose);if(choose==1||choose==2){scanf("%s",ans);t=-1;if(choose==1){for(i=0;i<n;i++)if(strcmp(ans,stu[i].num)==0) {t=i;break;}}else{for(i=0;i<n;i++)if(strcmp(ans,stu[i].name)==0) {t=i;break;}}if(t==-1) printf("不存在该学生信息\n");else{if(p==1)printf("%s %s %d\n",stu[t].num,stu[t].name,stu[t].grade);elseModify(t);}}else return;}while(1);}void Display(){int i;printf("学号姓名成绩:\n");for(i=0;i<n;i++){printf("%s %s %d\n",stu[i].num ,stu[i].name ,stu[i].grade);}}void Readfile(){FILE *fp;if((fp=fopen("student.dat","r"))==NULL) return ;n=0;while(!feof(fp)){fscanf(fp,"%s%s%d",stu[n].num,stu[n].name,&stu[n].grade);n++;}fclose(fp);}void Input(){n=0;do{printf("请输入第%d个学生信息,输入exit结束输入(输入格式:学号姓名成绩)\n",n+1);scanf("%s",stu[n].num);if(strcmp(stu[n].num,"exit")==0) break;scanf("%s%d",stu[n].name,&stu[n].grade);n++;}while(1);}void Save(){int i;FILE* fp;if((fp=fopen("student.dat","a"))==NULL)fp=fopen("student.dat","w");for(i=0;i<n;i++){fprintf(fp,"%s %s %d\n",stu[i].num,stu[i].name,stu[i].grade);}fclose(fp);}。
C语言程序设计学生成绩记录簿
课程实验报告实验题目描述本程序是非数值计算型算法设计,我设计出了学生成绩记录簿系统的基本功能,并设计了简单的界面。
本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是链表的相关操作,包括结构体链表的创建、输入、输出、查找、删除等。
我设计的这个成绩记录簿系统也初步实现了学生成绩信息的显示、输入、删除、查找等必要的功能。
1.建立一个主界面2.用switch语句进行分类讨论3.分别进入录入,查询,删除,等子函数。
4.将子函数与主函数相连即可。
该程序可以建立学生的成绩记录。
可以方便老师和同学方便的查阅成绩;这个程序有录入和删除的功能;还可以求出平均成绩,并排序成绩记录簿中记录以下数据:学号、姓名、课程编号、课程名称、成绩、学分添加成绩:需要输入学生的学号或姓名、课程编号及成绩,如已有该门课程成绩给出提示;查询(班级或个人)成绩:查询个人成绩:以学号或姓名作为关键字,可查询一个学生的所有成绩,和已完成的总学分。
查询班级成绩:以课程编号为关键字,成绩表后面要统计平均分、及格率及全班同学不同课程在不同分数段分布的人数及百分比。
拓展功能:a) 程序启动时先从文件读入数据,如果文件中没有数据则给出提示;b) 每次修改的数据写入文件实验界面截图2、添加3、查询4、查询成绩5、写文本6、读取算法主程序提供一个界面,允许用户选择。
使用switch语句,用时直接输入数字即可。
增加函数,功能是插入学生成绩。
使用一个无穷循环,直到录入”n”时结束。
删除函数,功能是删除,分为两步,先找后删。
找,用strcmp函数来。
C语言课程设计实验报告成绩记录簿
.C语言课程设计报告题目:成绩记录簿学生姓名:学生学号:所在班级:任课教师:2012年6月19日目录1.设计目的2.设计思路3.总体设计4.详细设计5.设计体会6附录(所写是运行程序的图片)一、设计目的要求:编制一个C语言成绩记录簿,每个学生信息包括:学号、姓名、C语言成绩。
具体功能:(1)创建信息链表并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的成绩;(3)按学号或姓名查询成绩;(4)添加成绩记录;(5)修改指定姓名或学号的学生的成绩并可存盘;(6)显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息。
、二、设计思路1.设计好算法,用流程图或者用自己简单的想法,并记好记录。
2.分别做好主函数,和需要用到的各个函数,参考我们的教材一点点的综合在一起。
慢慢的从中学到技巧。
3.将已学过的代码和学过的函数拼接起来,做好调试和改正。
4.从新检查一遍,将没用的函数或者多余的步骤简化,提高运行速度。
5.完成系统总结报告以及使用说明书。
三、总体设计四、详细设计#include "stdio.h"#include "stdlib.h"#include "string.h"int shoudsave=0; //struct student{char num[20];//学号char name[20];int cgrade;char neartime[10];//最近更新时间};typedef struct node{struct student data;struct node *next;}Node,*Link;void menu(){printf("*************************************************************** *****************");printf("\t1输入学生资料\t\t\t\t\t2查询学生资料\n");printf("\t3修改学生资料\t\t\t\t\t4显示学生资料\n");printf("\t5统计学生成绩\t\t\t\t\t6保存学生资料\n");printf("\t7获取帮助信息\t\t\t\t\t0退出系统\n");printf("*************************************************************** *****************\n");}void printstart(){printf("-----------------------------------------------------------------------\n");}void Wrong(){printf("\n=====>提示:输入错误!\n");}void Nofind(){printf("\n=====>提示:没有找到该学生!\n");void printc() // 本函数用于输出中文{printf(" 学号\t 姓名C语言成绩\n");}void printe(Node *p)//本函数用于输出英文{printf("%-12s%s\t%d\t \n",p->data.num,p->,p->data.cgrade);}Node* Locate(Link l,char findmess[],char nameornum[]) //该函数用于定位连表中符合要求的接点,并返回该指针{Node *r;if(strcmp(nameornum,"num")==0) //按学号查询{r=l->next;while(r!=NULL){if(strcmp(r->data.num,findmess)==0)return r;r=r->next;}}else if(strcmp(nameornum,"name")==0) //按姓名查询{r=l->next;while(r!=NULL){if(strcmp(r->,findmess)==0)return r;r=r->next;}}return 0;}void Add(Link l) //增加学生{Node *p,*r,*s;char num[10];r=l;s=l->next;while(r->next!=NULL)r=r->next; //将指针置于最末尾while(1)printf("请你输入学号(以'0'返回上一级菜单:)");scanf("%s",num);if(strcmp(num,"0")==0)break;while(s){if(strcmp(s->data.num,num)==0){printf("=====>提示:学号为'%s'的学生已经存在,若要修改请你选择'4 修改'!\n",num);printstart();printc();printe(s);printstart();printf("\n");return;}s=s->next;}p=(Node *)malloc(sizeof(Node));strcpy(p->data.num,num);printf("请你输入姓名:");scanf("%s",p->);getchar();printf("请你输入c语言成绩:");scanf("%d",&p->data.cgrade);//信息输入已经完成p->next=NULL;r->next=p;r=p;shoudsave=1;}}void Qur(Link l) //查询学生{int sel;char findmess[20];Node *p;if(!l->next){printf("\n=====>提示:没有资料可以查询!\n");return;}printf("\n=====>1按学号查找\n=====>2按姓名查找\n"); scanf("%d",&sel);if(sel==1)//学号{printf("请你输入要查找的学号:");scanf("%s",findmess);p=Locate(l,findmess,"num");if(p){printf("\t\t\t\t查找结果\n");printstart();printc();printe(p);printstart();}elseNofind();}else if(sel==2) //姓名{printf("请你输入要查找的姓名:");scanf("%s",findmess);p=Locate(l,findmess,"name");if(p){printf("\t\t\t\t查找结果\n");printstart();printc();printe(p);printstart();}elseNofind();}elseWrong();}void Modify(Link l){Node *p;char findmess[20];if(!l->next){printf("\n=====>提示:没有资料可以修改!\n");return;}printf("请你输入要修改的学生学号:");scanf("%s",findmess);p=Locate(l,findmess,"num");if(p){printf("请你输入新学号(原来是%s):",p->data.num);scanf("%s",p->data.num);printf("请你输入新姓名(原来是%s):",p->);scanf("%s",p->);printf("请你输入新的c语言成绩(原来是%d分):",p->data.cgrade); scanf("%d",&p->data.cgrade);printf("\n=====>提示:资料修改成功!\n");shoudsave=1;}elseNofind();}void Disp(Link l){int count=0;Node *p;p=l->next;if(!p){printf("\n=====>提示:没有资料可以显示!\n");return;}printf("\t\t\t\t显示结果\n");printstart();printc();printf("\n");while(p){printe(p);p=p->next;}printstart();printf("\n");void Tongji(Link l){Node *pc = l; //用于指向分数最高的接点Node *r=l->next;if(!r){printf("\n=====>提示:没有资料可以统计!\n");return ;}while(r!=NULL){if(r->data.cgrade>=pc->data.cgrade)pc=r;r=r->next;}printf("------------------------------统计结果--------------------------------\n"); printf("c语言最高者:\t%s %d分\n",pc->,pc->data.cgrade); printstart();}void Save(Link l){FILE* fp;Node *p;int flag=1,count=0;fp=fopen("c:\\student","wb");if(fp==NULL){printf("\n=====>提示:重新打开文件时发生错误!\n");exit(1);}p=l->next;while(p){if(fwrite(p,sizeof(Node),1,fp)==1){p=p->next;count++;}else{flag=0;break;}if(flag){printf("\n=====>提示:文件保存成功.(有%d条记录已经保存.)\n",count); shoudsave=0;}fclose(fp);}void main(){Link l;//连表FILE *fp; //文件指针int sel;char ch;char jian;int count=0;Node *p,*r;printf("\t\t\t\t学生成绩记录簿\n\t\t\t\t-------计算机信息管理,张志坚(201140130207),李权(201140130106),刘进祎(201140130226),褚璐(201140130114)\n");l=(Node*)malloc(sizeof(Node));l->next=NULL;r=l;fp=fopen("C:\\student","rb");if(fp==NULL){printf("\n=====>提示:文件还不存在,是否创建?(y/n)\n");scanf("%c",&jian);if(jian=='y'||jian=='Y')fp=fopen("C:\\student","wb");elseexit(0);}printf("\n=====>提示:文件已经打开,正在导入记录......\n");while(!feof(fp)){p=(Node*)malloc(sizeof(Node));if(fread(p,sizeof(Node),1,fp)) //将文件的内容放入接点中{p->next=NULL;r->next=p;r=p; //将该接点挂入连中count++;}}fclose(fp); //关闭文件printf("\n=====>提示:记录导入完毕,共导入%d条记录.\n",count);while(1){menu();printf("请你选择操作:");scanf("%d",&sel);if(sel==0){if(shoudsave==1){ getchar();printf("\n=====>提示:资料已经改动,是否将改动保存到文件中(y/n)?\n");scanf("%c",&ch);if(ch=='y'||ch=='Y')Save(l);}printf("\n=====>提示:你已经退出系统,再见!\n");break;}switch(sel){case 1:Add(l);break; //增加学生case 2:Qur(l);break;//查询学生case 3:Modify(l);break;//修改学生case 4:Disp(l);break;//显示学生case 5:Tongji(l);break;//统计学生case 6:Save(l);break;//保存学生case 7:printf("\t\t\t==========帮助信息==========\n");break;default: Wrong();getchar();break;}}}五、设计体会通过这次的课程设计,增加了我对学习C语言和往后要学习C++的兴趣,虽然还不是真正的明白所有的C语言的子函数和里面的一些逻辑顺序,但我从C语言这门课程开始,已经发现程序设计的乐趣,在学习C语言的过程中也学到了许多计算机应用基础知识,对计算机的运行也有一个大体的了解。
C语言程序设计报告-学生成绩记录簿.docx
上海应用技术学院课程设计2011 ~ 2012 学年第 2学期设计题目成绩记录簿院(系)计算机科学与信息工程专业网络工程班级学号 15学生姓名xx设计时间指导教师xxx提交日期目录1.概述题目程序简述程序性能2课题分析程序系统的结构结构流程图功能性能输入输出项信息3功能模块说明流程逻辑算法4程序测试,运行结果及说明5课程设计总结6附录(参考文献,原代码解析,限制条件,程序测试)6.1参考文献6.2原代码解析限制条件1.概述题目成绩记录簿程序描述本程序是非数值计算型算法设计,我设计出了通讯录管理系统的基本功能,并设计了简单的界面。
本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是链表的相关操作,包括结构体链表的创建、输入、输出、查找、删除等。
我设计的这个通讯录系统也初步实现了人员信息的显示、删除、查找、修改、添加等必要的功能。
1.建立一个主界面2.用 switch 语句进行分类讨论3.分别进入录入,查询,删除,求平均值等子函数。
4.将子函数与主函数相连即可。
程序性能该程序可以建立学生的成绩记录。
可以方便老师和同学方便的查阅成绩;这个程序有录入和删除的功能;还可以求出平均成绩,并排序课题分析程序系统的结构主函数添加成绩求平均值删除成绩查询按平均值排序退出程序流程图课程编号添加成绩查询成绩添添添添查查加加加加询询学学课学学班生生程生生级学姓编成成成号名号绩绩绩查询学生成绩查询班级成绩课程功能学姓编号名号查查询询成绩记录簿中记录以下数据:学号、姓名、课程编号、课程名称、成绩、学分,所有成绩都以百分制计分;输入信息时要检查数据项学号、课程编号、成绩、学分的合法性,学号:8位数字;课程编号: 5 位数字;成绩: 0 ~ 100 之间的整数,学分:1~ 5 之间的实型数。
添加成绩:需要输入学生的学号或姓名、课程编号及成绩,如已有该门课程成绩给出提示;查询(班级或个人)成绩:查询个人成绩:以学号或姓名作为关键字,可查询一个学生的所有成绩,和已完成的总学分。
C语言程序设计学生成绩记录簿
课程实验报告
本程序就是非数值计算型算法设计,我设计出了学生成绩记录簿系统的基本功能,并设计了简单的界面。
本程序主要考察对自定义函数的熟悉程度,本程序主要使用的就是链表的相关操作,包括结构体链表的创建、输入、输出、查找、删除等。
我设计的这个成绩记录簿系统也初步实现了学生成绩信息的显示、输入、删除、查找等必要的功能。
1、建立一个主界面
2、用switch语句进行分类讨论
3、分别进入录入,查询,删除,等子函数。
4、将子函数与主函数相连即可。
该程序可以建立学生的成绩记录。
可以方便老师与同学方便的查阅成绩; 这个程序有录入与删除的功能;
还可以求出平均成绩,并排序
成绩记录簿中记录以下数据:学号、姓名、课程编号、课程名称、成绩、学分
添加成绩:需要输入学生的学号或姓名、课程编号及成绩,如已有该门课程成绩给出提示;
查询(班级或个人)成绩:
查询个人成绩:以学号或姓名作为关键字,可查询一个学生的所有成绩,与已完成的总学分。
查询班级成绩:以课程编号为关键字,成绩表后面要统计平均分、及格率及全班同学不同课程在不同分数段分布的人数及百分比。
实
验
界
面
截
图2、添加
3、查询
4、查询成绩
5、写文本
6、读取
算
主程序提供一个界面,允许用户选择。
使用switch语句,用时直接输入数字即可。
增加函数,功能就是插入学生成绩。
使用一个无穷循环,直到录入”n”时结束。
删除函数,功能就是删除,分为两步,先找后删。
找,用strcmp函数来。
C语言程序设计学生成绩记录簿
for (i = 0; i < StudentCount; i++)
{
if (0==strcmp(S[i].Name,a))
{
printf("\n学号:%s\t姓名:%s\n", S[i].Number, S[i].Name);
printf("\n课程编号\t课程名称\t课程成绩\t课程学分\n");
C语言程序设计学生成绩记录簿
课程实验报告
课程名称
C语言程序设计
班级
13新能源2班
实验日期
2013年8月1号
姓名
许鑫
学号
6
实验成绩
实验名称
学生成绩记录簿系统
实
验
题
目
描
述
本程序是非数值计算型算法设计,我设计出了学生成绩记录簿系统的基本功能,并设计了简单的界面。本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是链表的相关操作,包括结构体链表的创建、输入、输出、查找、删除等。我设计的这个成绩记录簿系统也初步实现了学生成绩信息的显示、输入、删除、查找等必要的功能。
增加函数,功能是插入学生成绩。使用一个无穷循环,直到录入”n”时结束。
删除函数,功能是删除,分为两步,先找后删。找,用strcmp函数 来做如果找到记录i值,反之记为-1;删除可以从i项开始将数组的后一项赋值给前一项。前一项自动被删掉。这样完成删除。
查询函数与之类似,将删除改为输出即可;
求平均值函数与查询类似只是输出时只输出平均值而已。
printf("\n| 6、读取文本文件 |\n");
printf("\n| 0、退出 |\n");
C语言程序设计学生成绩记录簿
课程实验报告以自己的电脑为主要的实验平台,运用Visual C++ 6.0 这个软件进行反复的编写实验。
实验环境1、开始时实验界面截图2、添加精品文档5、写文本6、读取主程序提供一个界面,允许用户选择。
使用 switch 语句,用时直接输 入数字即可。
增加函数,功能是插入学生成绩。
使用一个无穷循环,直到录入”n ”时结束。
删除函数,功能是删除,分为两步,先找后删。
找,用strcmp 函数 来 做如果找到记录i 值,反之记为-1 ;删除可以从i 项开始将数组的后一项赋 值给前一项。
前一项自动被删掉。
这样完成删除。
查询函数与之类似,将删除改为输出即可; 求平均值函数与查询类似只是输出时只输出平均值而已。
按平均值排序只要加一个排序函数即可。
退出函数什么都不写,即可。
程序流程图法 描 述 及 实 验步骤添添添 加加加学学课 生生程查询成绩添加成绩生查 询查 询 级调试过程及实验结果经过一个多星期的编译原理课程设计, 总设计。
结通过该课程设计,掌握了编译程序工作的基本过程及其各阶段的基本任务,熟悉了编译程序总流程框图,了解了编译程序的生成过程及其相关的技术,对课本上的知识也有了更深的理解。
老师常说,课本上的知识是机械的, 表面的,要学会去运用,要举一反三。
现在终于深刻的了解了这句话。
经过这次的课程设计,发现书本上很深奥的知识变的在我的努力下,顺利完成该课程更为简单,同样,对实验原理也了有更深的理解。
知道和理解了该理论在计算机中是怎样执行的,对该理论在实践中的应用有深刻的理解。
通过该课程设计,把死板的课本知识变得生动有趣,激发了学习的积极性。
能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。
课程设计中程序比较复杂,在调试时应该仔细,在程序调试时,注意指针,将不必要的命令去除。
除了课堂外,课程设计是最能学到东西的,最考验人精品文档11欢迎下载}void Printin terface() { int n;while (1){ prin tf("\n ---欢迎使用学生成绩记录簿系统 --- prin tf("\n| 1、添加 |\n"); prin tf("\n| 2、删除 |\n"); prin tf("\n| 3、查学生成绩 |\n"); prin tf("\n| 4、查班成绩表 |\n"); prin tf("\n| 5、与入文本文件 |\n"); prin tf("\n| 6 、读取文本文件|\n"); prin tf("\n| 0 、退出 |\n");prin tf("\n -------- ---------------- ");prin tf("\n选择操作:"); scanf("%d",&n); switch( n){case 1:if (Stude nt_In sert())printf("\n添加成功...回车继续\n");elseprintf("\n添加失败...回车继续\n"); break;case 2:Stude nt_Delete(); break; case 3:Stude nt_Select(); break; case 4:Class_Select();break;case 5:WriteFile();break;case 6:ReadFile();。
C语言程序设计学生成绩记录簿
课程实验报告实验题目描述本程序是非数值计算型算法设计,我设计出了学生成绩记录簿系统的基本功能,并设计了简单的界面。
本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是链表的相关操作,包括结构体链表的创建、输入、输出、查找、删除等。
我设计的这个成绩记录簿系统也初步实现了学生成绩信息的显示、输入、删除、查找等必要的功能。
1.建立一个主界面2.用switch语句进行分类讨论3.分别进入录入,查询,删除,等子函数。
4.将子函数与主函数相连即可。
该程序可以建立学生的成绩记录。
可以方便老师和同学方便的查阅成绩;这个程序有录入和删除的功能;还可以求出平均成绩,并排序成绩记录簿中记录以下数据:学号、姓名、课程编号、课程名称、成绩、学分添加成绩:需要输入学生的学号或姓名、课程编号及成绩,如已有该门课程成绩给出提示;查询(班级或个人)成绩:查询个人成绩:以学号或姓名作为关键字,可查询一个学生的所有成绩,和已完成的总学分。
查询班级成绩:以课程编号为关键字,成绩表后面要统计平均分、及格率及全班同学不同课程在不同分数段分布的人数及百分比。
拓展功能:a) 程序启动时先从文件读入数据,如果文件中没有数据则给出提示;b) 每次修改的数据写入文件实验界面截图2、添加3、查询4、查询成绩5、写文本6、读取算法主程序提供一个界面,允许用户选择。
使用switch语句,用时直接输入数字即可。
增加函数,功能是插入学生成绩。
使用一个无穷循环,直到录入”n”时结束。
删除函数,功能是删除,分为两步,先找后删。
找,用strcmp函数来。
c语言课程设计选手成绩记录
c语言课程设计选手成绩记录一、教学目标本课程旨在通过C语言编程教学,使学生掌握C语言的基本语法、数据结构、函数和指针等核心概念,培养学生具备基本的编程能力和算法思维,能运用C语言解决实际问题。
具体来说,学生需要掌握以下知识目标:1.理解C语言的基本语法和编程规范;2.掌握基本数据类型、运算符和表达式;3.理解函数的定义和调用,掌握常用的库函数;4.掌握数组的声明和使用,理解字符串的基本操作;5.掌握指针的概念和运用,理解指针与数组、函数的关系;6.理解控制结构,如if语句、循环语句等;7.掌握结构体和共用体的声明和使用,了解文件操作等。
在技能目标方面,学生需要具备以下能力:1.能够使用C语言编写简单的程序,如计算器、排序算法等;2.能够阅读和理解C语言程序代码;3.能够对已有的C语言程序进行修改和优化;4.能够运用C语言解决实际问题,如数据处理、系统编程等。
在情感态度价值观目标方面,学生应该:1.培养对编程的兴趣和热情,提高自主学习的积极性;2.培养团队合作精神,能够与他人共同解决问题;3.培养良好的编程习惯,注重代码的可读性和可维护性;4.培养创新思维,勇于尝试和挑战新的编程问题。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、函数和指针等核心概念,以及编程实践。
具体安排如下:1.C语言基本语法和编程规范:介绍C语言的基本语法规则,如数据类型、变量、运算符等;2.数据类型和表达式:讲解基本数据类型、运算符和表达式的使用;3.函数和库函数:介绍函数的定义和调用,讲解常用的库函数及其应用;4.数组和字符串:讲解数组的声明和使用,字符串的基本操作;5.指针:讲解指针的概念和运用,指针与数组、函数的关系;6.控制结构:讲解if语句、循环语句等控制结构的运用;7.结构体和共用体:介绍结构体和共用体的声明和使用;8.文件操作:讲解文件操作的基本方法。
三、教学方法本课程采用多种教学方法,包括讲授法、案例分析法、实验法等,以激发学生的学习兴趣和主动性。
c课程设计成绩记录薄总结
c 课程设计成绩记录薄总结一、教学目标本章节的教学目标包括以下三个方面:1.知识目标:使学生掌握课本中的基本概念、原理和方法,能够理解和运用相关知识。
2.技能目标:培养学生运用所学知识解决实际问题的能力,提高他们的分析和解决问题的能力。
3.情感态度价值观目标:培养学生对学科的兴趣和热情,增强他们的自主学习意识和团队合作精神。
二、教学内容本章节的教学内容主要包括以下部分:1.教材章节:第1章至第5章,涵盖基本概念、原理和方法的学习。
2.重点内容:对每个章节中的重点知识点进行详细讲解,包括但不限于基本概念、原理、方法和案例分析。
3.难点内容:针对每个章节中的难点知识点进行深入解析,帮助学生理解和掌握。
三、教学方法本章节的教学方法将采用多种教学手段,以激发学生的学习兴趣和主动性:1.讲授法:对基本概念、原理和方法进行系统讲解,确保学生掌握。
2.讨论法:学生进行小组讨论,促进他们主动思考和交流。
3.案例分析法:通过分析实际案例,使学生能够将理论知识应用于实际问题。
4.实验法:学生进行实验,培养他们的实验操作能力和科学思维。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:选用权威、实用的教材,为学生提供系统、全面的学习材料。
2.参考书:推荐适量的参考书目,帮助学生拓展知识面。
3.多媒体资料:制作精美的PPT、视频等多媒体资料,提高学生的学习兴趣。
4.实验设备:保障实验教学的需要,为学生提供充分的实践机会。
五、教学评估本章节的教学评估将采用多元化的评估方式,以全面反映学生的学习成果:1.平时表现:通过观察学生在课堂上的参与度、提问和回答问题的情况,评估他们的学习态度和理解程度。
2.作业:布置适量的作业,评估学生对知识点的掌握情况和应用能力。
3.考试:定期进行考试,全面测试学生对章节知识的掌握程度。
评估方式应客观、公正,能够全面反映学生的学习成果。
同时,注重评估学生的过程表现,鼓励他们在学习过程中不断进步。
c学生成绩簿课程设计
c 学生成绩簿课程设计一、课程目标知识目标:1. 学生能够理解成绩簿的基本概念,掌握成绩簿的组成结构和各项指标含义。
2. 学生能够运用成绩簿中的数据进行分析,了解自己在各学科中的学习状况和进步情况。
3. 学生掌握如何正确填写和解读成绩簿,从而提高自我管理和评价的能力。
技能目标:1. 学生能够独立完成成绩簿的填写,准确记录各科成绩和出勤情况。
2. 学生能够通过成绩簿分析,制定合适的学习计划和目标,提高学习效率。
3. 学生能够运用成绩簿进行自我评价,培养自我反思和调整学习策略的能力。
情感态度价值观目标:1. 培养学生对待成绩的积极态度,正确看待成绩的起伏,增强自信心。
2. 培养学生诚实守信的品质,遵守学术规范,不抄袭、不作弊。
3. 培养学生关心他人,学会互相鼓励和支持,形成良好的学习氛围。
课程性质:本课程属于实践性较强的学科,注重培养学生的实际操作能力和自我管理能力。
学生特点:考虑到学生所在年级的特点,学生在认知和情感方面逐渐成熟,具备一定的自我意识和反思能力。
教学要求:结合课程性质和学生特点,教学过程中应注重引导、实践和反馈,确保学生能够达到课程目标,实现学习成果的分解和落实。
二、教学内容1. 成绩簿的基本概念与作用- 成绩簿的定义及其重要性- 成绩簿的组成部分:姓名、学号、科目、成绩、出勤等2. 成绩簿的正确填写与解读- 如何准确记录各科成绩和出勤情况- 如何避免填写错误,确保成绩簿的真实性- 教材章节:第二章第三节3. 成绩分析与学习策略- 如何利用成绩簿分析学习状况- 根据成绩分析结果,调整学习计划和目标- 教材章节:第二章第四节4. 自我评价与反思- 依据成绩簿进行自我评价的方法- 反思学习过程中的优点与不足,制定改进措施- 教材章节:第二章第五节5. 案例分析与讨论- 分析优秀学生的学习成果,总结经验- 针对成绩簿中的问题,展开小组讨论,共同寻求解决方案教学大纲安排:第一课时:成绩簿的基本概念与作用,填写与解读方法第二课时:成绩分析,学习策略制定第三课时:自我评价与反思,案例分析第四课时:小组讨论,总结经验,巩固所学内容教学内容确保科学性和系统性,结合教材章节和教学进度,使学生能够逐步掌握成绩簿的使用方法和学习策略,提高自我管理和评价能力。
c语言学生成绩记录簿
C语言学生成绩记录簿一、引言学生成绩的记录与管理是学校教育工作的重要环节。
为了便于教师和学生对学生成绩进行及时、准确的统计和分析,开发一个C语言学生成绩记录簿是非常必要的。
本文将详细介绍该学生成绩记录簿的设计和实现。
二、需求分析2.1 学生信息管理在学生成绩记录簿中,首先需要实现学生信息的管理。
每个学生的信息包括学号、姓名、性别、年龄等基本信息。
为了方便查询和排序,还需要提供按学号和姓名进行查询的功能。
2.2 课程信息管理除学生信息外,还需要管理课程信息。
每门课程包括课程编号、课程名称和学分等基本信息。
同样地,为了方便查询和排序,也需要提供按课程编号和课程名称进行查询的功能。
2.3 学生成绩录入学生成绩录入是学生成绩记录簿的核心功能。
每个学生的成绩包括学号、课程编号和成绩等信息。
成绩信息的录入应具备以下特点:•提供学号和课程编号的输入框,保证输入的学生和课程有效存在。
•提供合法的成绩输入框,只接受0-100之间的整数或浮点数。
•录入的成绩会自动计算对应学生的平均成绩,并显示在学生信息中。
2.4 成绩查询与分析学生成绩记录簿还应提供按照学号、课程编号以及各种组合条件进行成绩查询的功能。
此外,还需要统计并展示每门课程的最高分、最低分、平均分以及及格人数等分析结果。
2.5 数据存储为了保证数据的持久性,学生成绩记录簿需要提供数据存储的功能。
可以使用文件方式将学生信息、课程信息和成绩信息保存在磁盘上。
同时,还需要提供载入数据和保存数据的功能,以便在程序启动和关闭时进行数据的读取和保存。
三、设计与实现3.1 学生信息管理模块3.1.1 添加学生信息根据用户输入的学生信息,创建一个学生对象,并将其存储在学生信息集合中。
3.1.2 修改学生信息根据用户输入的学号,查找对应的学生对象,并提供修改学生信息的选项。
用户可以修改学生的姓名、性别、年龄等信息。
3.1.3 删除学生信息根据用户输入的学号,从学生信息集合中移除对应的学生对象。
成绩记录簿C语言版
上海应用技术学院课程设计2013~~2014学年第二学期设计题目成绩记录簿院(系)工程创新学院专业电气工程及其自动化班级 131032Y1学号 1310300235学生姓名聂震设计时间 2014.06.30 -2014.07.04指导教师朱迅提交日期 2014.07.04一. 课程设计目的本课程设计是提高学生程序设计能力的重要实践性环节之一,是在学生学习完《程序设计基础(C)》课程后进行的一次全面的综合练习。
本课程设计的目的和任务:1. 巩固和加深学生对C语言课程的基本知识的理解和掌握;2. 掌握C语言编程和程序调试的基本技能;3. 利用C语言进行基本的软件设计;4. 初步掌握书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力。
二. 课程设计要求1. 分析课程设计题目的要求;2. 写出详细设计说明;3. 编写程序代码,调试程序使其能正确运行;4. 设计完成的软件要便于操作和使用,有整齐、美观的使用界面;5. 设计完成后提交课程设计报告(按学校要求装订)和源代码文件的电子文档。
三. 题目三成绩记录簿1. 设计要求:成绩记录簿中记录以下数据:学号、姓名、课程编号、课程名称、成绩、学分,所有成绩都以百分制计分。
在程序中可以输入新的成绩记录,可以按学号或姓名查询一个学生的所有成绩,和已完成的总学分。
也可以按课程编号查出一个班的成绩表,班成绩表后面要统计平均分,和及格率。
程序的主界面如下:2. 提高水平在程序中增加将数据写入文本文件和从文件中读入数据的功能,文件名由用户输入。
3. 提示在没有使用文件时,数据可以保存在一个大的数组中,要注意的数据项的类型。
四. 设计说明F.1程序系统的结构用一系列图表列出本程序系统内的每个程序(包括每个模块和子程序)的名称、标识符。
F.2程序1(标识符)设计说明F.2.1程序描述记录一些学生的学习情况,并保存下来。
能保存,删除,查询学生的成绩,可以按班级查询一门学科的学习状况等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
合肥学院计算机科学与技术系课程设计报告2012~2013学年第二学期课程面向过程综合设计课程设计名称C语言成绩簿学生姓名学号专业班级指导教师2013年6月第一章需求分析1.1 任务要求:编制一个C语言成绩记录簿,每个学生信息包括:学号、姓名、C语言成绩。
具体功能:(1)创建信息链表并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的成绩;(3)按学号或姓名查询成绩;(4)添加成绩记录;(5)修改指定姓名或学号的学生的成绩并可存盘;(6)显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息(可选项)。
1.2任务问题:如何运用我们已学的c语言知识完成要求?如何制作相应界面?switch的应用该如何实现?如何完成相应的数组或链表的实现与应用?怎样进行相应的文件的读写?1.3任务的解决步骤:步骤:1.建立一个主界面。
2.用switch语句进行分类讨论。
3.分别进入录入,查询,修改,学生分数段统计等子函数。
4.将子函数与主函数相连即可。
第二章算法设计1、设计思想2.1 程序结构(流程图)2.2 重要的数据结构2.3主要算法思想(文字描述)本程序是非数值计算型算法设计,我设计出了通讯录管理系统的基本功能,并设计了简单的界面。
本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是链表的相关操作,包括结构体链表的创建、输入、输出、查找、修改等。
我设计的这个通讯录系统也初步实现了人员信息的显示、修改、查找、等必要的功能,并通过子函数与主函数相连来完成相应的功能。
2.设计表示int Student_Insert( ); (添加学生成绩)void edit( ); (修改)void Student_Search( );(查找)void WriteFile( ); (写入文件)void ReadFile( ); (读取文件)void Student_Select( );(分数段选择)void PrintMark( );(打印学生分数)void NameChange( );(按姓名修改)void NumberChange( );(按学号修改)3.实现注释除了没有用链表进行实验的缺点外,基本可以实现任务要求,界面简洁,程序简单,易操作。
4.算法设计中一些新的想法:本程序主要包含了结构体与动态变量的相关知识;其中也多次用到了循环和判断结构;本程序还可以通过子函数实现删除,排序等操作。
用链表,指针也可以实现相应的任务要求。
第三章用户手册3.1使用说明主程序提供一个界面,允许用户选择。
使用switch语句,用时直接输入数字即可。
增加函数,功能是插入学生成绩。
使用一个无穷循环,直到录入”n”时结束。
修改函数,功能是修改,分为两步,先插入学生成绩后才能进行修改。
修改用strcmp 函数来做。
如果找到记录i值,反之记为-1;修改可以从i项开始将数组的后一项的新的数值赋值给前一项。
前一项自动被替换。
这样完成修改。
查询函数与之类似,用strcmp函数将修改变为输出即可;求各分数段的学生的相应成绩数据时,引用if-else语句可进行有效筛选。
退出函数什么都不写,即可。
所有修改,添加程序都可以用姓名,学号两种方式实现,可以实际情况实现。
输入的数据应按照固定的格式和顺序“姓名-学号-成绩”,否则会出现错误,无法输出。
注:输入项:char name[10] 定义学生名称为字符型long number 定义学号为长整型int score 定义学生成绩为整形输出项:int m1,m2,m3,score,xf; 定义整型3.2限制条件1.开始写程序时未使用链表,程序冗杂。
长度较大,不灵活。
2.我的程序无法在文件中修改,必须在开始时修改,文件存取不灵活。
3.一个学生的各项数据必须按顺序输入,否则会出现错误。
4.学号必须都是数字,且是十位,不能有0。
5.读取的数据必须存在,不能读取空数据。
第四章、调试及测试1.开始2.添加3.修改4.查学生成绩5.写入文本文件6.读取学生成绩7.筛选各成绩段学生对设计和编码的回顾讨论和分析:短短的俩周已经过去了,在此我将交出我一周的成果,我真是百感交错。
我有许多的原来不懂的问题在编写本程序得到解决,同时本次程序编写也暴露了我的许多的问题。
如:1.原先写程序直接编,条理性太差。
如果先做一个流程图就条理很多;2.学会了将文件存入和读取,并学会在文件中加入信息和修改信息;3.我在查找学生姓名时遇到困难,从课本上找到了一个函数strcmp,解决了问题困难;4.我在定义学生的学号时首先用整型%d。
发现输出与录入不同。
改用长整型%ld仍然不行,但是字符型%s却可以做到;5.我发现多次使用结构体,子函数可以有效的缩短程序长度,方便实用。
!第五章小结与过去相比,我认为这短短的两周的编程时光给我的感悟更为强烈。
在此,首先我要感谢老师,是老师把我带进了这一门,俗话说的好“万丈高楼平地起”,所以说,基础很重要。
而老师讲课认真,讲也很透彻,使我们能较好的理解这门课,可以跟紧课堂进度,是我们有机会能打下结实良好的基础。
而且老师在平时也鼓励我们多提问,在我们遇到问题时,富有耐心地为我们解答。
在此再次感谢老师对我们不辞操劳的讲解!谢谢!一开始,当我第一眼看到这课程设计的时候,我感到十分的“痛苦”,老实说,在还未进行编程之前,我就感到这与我们之前的编程完全不一样,与这次相比,以前的上机实验就像是小孩子玩得,一点技术含量也没有。
以前的那些实验只要看看书,花上一二个小时,基本就可以完成了,而且以前的小程序最多也不过二三十行,不像这次要百来行。
从中可见它的难度,从而联想到那些专业编程员,我更深刻感到自己的不足。
由于之前从未进行过如此大的编程,所以一开始根本没头绪,后来只好用死办法,像写作文一样,首先先在纸上列出大致的提纲,然后再一个个慢慢延伸展开,最后再输入计算机,用它来运行。
可惜不运行还好,一运行只见一片的红色错误提示。
有些错误很简单,很好改,是由于自己的粗枝大叶引起的,比如:有些字符未定义,漏了一个“;”等。
但也有些高深莫测的问题,例如:当我添加时是添加了三个同学的成绩,但当我查询全班成绩时,却只有两位同学的成绩。
后来在百思不得其解之下,我只好向周围同学寻求帮助,最终在大家的帮助之下才解决的,诸如此类的问题还不少!有的已经解决,但有些还未,可惜时间不够,也只能如此。
经过这两周的课程设计,我发现我懂得了很多,它使我在编程时更仔细了,也使我学会了向周围人求教,培养了我自我学习,独立思考。
并且,使我更体会到了和高中的不一样,一切靠自觉,没有人会跟在你后面一直催你,告诉你该怎样怎样。
同时,我也更加了解到自己的不足,基础严重不扎实。
虽然这门课快结束了,但我会努力在假期中把自己的基础补好,期待在下次的课程设计时能够得心应手!第六章参考文献:[1]黄明等编著《C语言课程设计》北京:电子工业出版社[2]郭翠英编著《C语言课程设计案例精编》北京:中国水利水电出版社[3] 宁正元《数据结构(c语言)》南京:东南大学出版社。
2000年6月第1版[4] 严蔚敏等《数据结构(c语言版)》北京:清华大学出版社,1997年4月第1版[5] 谭浩强编著《C程序设计题解与上机指导(第3版) 》北京:清华大学出版社[6] 谭浩强编著《C程序设计(第3版) 》北京:清华大学出版社(附录)原代码解析:#include "stdio.h"#include <stdlib.h>#include <string.h>#define MAX 1000struct Student{char Name[100];char Number[100];int LessonCount;int LessonMark;};struct Student S[MAX];int StudentCount = 0;void PrintInterface();int Student_Insert();void edit();void Student_Search();void WriteFile();void ReadFile();void Student_Select();void PrintMark();void NameChange();void NumberChange();int main(){int n;printf("欢迎进入学生成绩簿!");{PrintInterface();scanf("%d", &n);}}void PrintInterface(){int n;while (1){printf("\n -------------------------- ");printf("\n| 1、添加|\n");printf("\n| 2、修改|\n");printf("\n| 3、查学生成绩|\n");printf("\n| 4、写入文本文件|\n");printf("\n| 5、读取文本文件|\n");printf("\n| 6、筛选各分数段学生|\n");printf("\n| 0、退出|\n");printf("\n -------------------------- ");printf("\n选择操作:");scanf("%d",&n);switch(n){case 1:if (Student_Insert())printf("\n添加成功...回车继续\n");elseprintf("\n添加失败...回车继续\n");break;case 2:edit();break;case 3:Student_Search();break;case 4:WriteFile();break;case 5:ReadFile();break;case 6:Student_Select();break;case 0:exit(1);break;default:printf("无此功能,请重新选择,按回车确定\n");}}}int Student_Insert(){int i,n;printf("\n请输入所添加的学生人数:");scanf("%d", &n);if (StudentCount + n >= MAX)return 0;for (i = StudentCount; i < StudentCount + n; i++){printf("\n\t第%d个学生:\n", i - StudentCount + 1);printf("\n\t学生学号:");scanf("%s", &S[i].Number);if(strlen(S[i].Number)!=10){printf("输入错误,请重新输入");return 0;}printf("\n\t学生姓名:");scanf("%s", S[i].Name);printf("\n\t\tc课程成绩:");scanf("%d", &S[i].LessonMark);if(S[i].LessonMark<0 || S[i].LessonMark>100){printf("输入错误,请重新输入!");return 0;}}StudentCount += n ;return 1;}void edit(){int way=0;printf("请选择修改的方式:/n"); printf("1.按姓名修改"/n);printf("2.按学号修改"/n);scanf("%d",&way);switch(way){case 1:NameChange();break;case 2:NumberChange();break;default:printf("");break;}}void Student_Search(){int x;char y[100];char a[100];int i;printf("\n输入所查学生信息(1.姓名 2.学号)选择:");scanf("%d", &x);if ((x == 1 )||( x == 2) ){if (x == 1){printf("\n姓名:");getchar();gets(a);for (i = 0; i < StudentCount; i++){if (0==strcmp(S[i].Name,a)){printf("\n学号:%s\t姓名:%s\n", S[i].Number, S[i].Name);printf("c课程成绩\t\n");printf("-----------------------------------------------------\n");printf("%d",S[i].LessonMark);printf("\n\n");}}else{printf("\n学号:");getchar();gets(y);for (i = 0; i < StudentCount; i++){if (strcmp(S[i].Number,y)==0){printf("\n学号:%s\t姓名:%s\n", S[i].Number, S[i].Name);printf("c课程成绩\t\n");printf("-----------------------------------------------------\n");printf("%d",S[i].LessonMark);printf("\n\n");break;}}}printf("查找完毕...回车继续\n");getchar();}{printf("选择错误...回车继续\n");getchar();return;}}void WriteFile(){FILE *fp;int i;char a[100];printf("\n请输入写入的文件地址:\n\n地址输入格式:例如d:\\\\Student.txt:");scanf("%s",&a);printf("\n写入中......\n");if (fp = fopen(a,"w")){fprintf(fp,"%d\n",StudentCount);for (i = 0; i < StudentCount; i++){fprintf(fp,"%s\t%s\t%d\n",S[i].Number,S[i].Name,S[i].LessonMark);printf("\n写入完成...回车继续\n");fclose(fp);}else{printf("\n写入失败...回车继续\n");}getchar();}void ReadFile(){FILE *fp;int i;char a[100];printf("\n请输入读取的文件地址:\n\n地址输入格式:例如d:\\\\student.txt:");scanf("%s",&a);printf("\n读取中......\n");if (fp = fopen(a,"r+")){fscanf(fp,"%d",&StudentCount);for (i = 0; !feof(fp); i++)fscanf(fp,"%s%s%d",&S[i].Number, &S[i].Name,&S[i].LessonMark);}PrintMark();printf("\n读取成功...回车继续\n");fclose(fp);}else{printf("\n读取失败...回车继续\n");}getchar();}void Student_Select(){int j;for(j=0;j<StudentCount;j++){if(S[j].LessonMark>=100)printf("错误信息");if(S[j].LessonMark>=90){printf("90分以上的学生成绩信息:");printf("%s\t%s\t%d\n",S[j].Number, S[j].Name,S[j].LessonMark);}else if((S[j].LessonMark<90)||(S[j].LessonMark>=80)){printf("80分~89分的学生成绩信息:");printf("%s\t%s\t%d\n",S[j].Number,S[j].Name,S[j].LessonMark);}else if((S[j].LessonMark<80)||(S[j].LessonMark>=70)){printf("70分~79分的学生成绩信息:");printf("%s\t%s\t%d\n",S[j].Number, S[j].Name,S[j].LessonMark);}else if((S[j].LessonMark<70)||(S[j].LessonMark>=60)){printf("60分~69分的学生成绩信息:");printf("%s\t%s\t%d\n",S[j].Number, S[j].Name,S[j].LessonMark);}else{printf("60分以下的学生成绩信息:");printf("%s\t%s\t%d\n",S[j].Number, S[j].Name,S[j].LessonMark);}}}void PrintMark(){int i;for(i=0;i<StudentCount; i++){printf("%s\t%s\t%d\n",S[i].Number, S[i].Name,S[i].LessonMark);}}void NameChange(){char name[60];int i=0,j=0;printf("请输入要修改的学生姓名:");scanf("%s",&name);for(i=0;i<StudentCount;i++){if(strcmp(name,S[i].Name)==0){j=i;break;}printf("\t姓名\t学号\t成绩\n");printf("%s\t%s\t%d\n",S[i].Name,S[i].Number,S[i].LessonMark);printf("请重新输入该学生信息");printf("姓名:");scanf("%s",&S[j].Name);printf("学号:");scanf("%s",&S[j].Number);printf("成绩:");scanf("%d",&S[j].LessonMark);printf("修改完毕");}void NumberChange(){char id[60];int i=0,j=0;printf("请输入要修改的学生学号");scanf("%s",&id);for(i=0;i<StudentCount;i++){if(strcmp(id,S[i].Number)==0)j=i;}break;}printf("姓名\t学号\tc语言分数\t\n");printf("%s\t%s\t%d\n", S[i].Name,S[i].Number,S[i].LessonMark);printf("请重新输入该学生信息");printf("姓名:");scanf("%s",&S[j].Name);printf("学号:");scanf("%s",&S[j].Number);printf("成绩:");scanf("%d",&S[j].LessonMark);printf("修改完毕");}。