C语言程序设计报告学生成绩记录簿

合集下载

C语言程序设计报告-学生成绩记录簿

C语言程序设计报告-学生成绩记录簿
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程序描述
本程序是非数值计算型算法设计,我设计出了通讯录管理系统的基本功能,并设计了简单的界面。本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是链表的相关操作,包括结构体链表的创建、输入、输出、查找、删除等。我设计的这个通讯录系统也初步实现了人员信息的显示、删除、查找、修改、添加等必要的功能。
(2)按学号查询
4.查询班级成绩
5.写入文本文件
6.读取文本文件
4课程设计总结
短短的俩周已经过去了,在此我将交出我一周的成果,我真是百感交错
1.原先写程序直接编,条理性太差。如果先做一个流程图就条理很多。
2.学会了将文件存入和读取,并学会在文件中加入信息和删除信息。
3.我在查找学生姓名时遇到困难,从课本上找到了一个函数strcmp,解决了问题
1.建立一个主界面
2.用switch语句进行分类讨论
3.分别进入录入,查询,删除,求平均值等子函数。
4.将子函数与主函数相连即可。
1.3程序性能
该程序可以建立学生的成绩记录。可以方便老师和同学方便的查阅成绩;
这个程序有录入和删除的功能;
还可以求出平均成绩,并排序
2课题分析
2.1程序系统的结构
2.2程序流程图
按平均值排序只要加一个排序函数即可。

学生成绩信息表(c语言程序)

学生成绩信息表(c语言程序)

# include<stdio.h># include<stdlib.h># include<string.h>typedef struct student{int ij;char no[10];char name[10];float score[2];float average;}student;typedef struct link{student ia;struct link*next;}List;List *input0() //录入数据{List *p;student x;p=NULL;x.average=0;int i=0;float y=0;fflush(stdin);puts("\t请输入学生学号:(输0结束)");gets(x.no);if(strcmp(x.no,"0")!=0){puts("\t请输入学生姓名:");gets();puts("\t请输入数学成绩:");scanf("%f",&x.score[0]);y=y+x.score[0];puts("\t请输入英语成绩:");scanf("%f",&x.score[1]);y=y+x.score[1];x.average=y/2.0;p=(List *)malloc(sizeof(List));strcpy(p->ia.no,x.no);strcpy(p->,);for(i=0;i<2;i++)p->ia.score[i]=x.score[i];p->ia.average=x.average;p->next=NULL;}return p;}List *creat_List() //创建链表{int ix;List *head,*p,*tail;head=(List*)malloc(sizeof(List));head->next=NULL;tail=head;p=input0();while(p!=NULL){tail->next=p;tail=p;tail->next=NULL;p=input0();}return head;}void output_List(List *head) //遍历链表{int i;int ii=1;List *p=head->next;puts("\t序号\t学号\t姓名\t数学\t英语\t平均成绩");while(p!=NULL){printf("\t%d",ii);ii++;printf("\t%s",p->ia.no);printf("\t%s",p->);for(i=0;i<2;i++)printf("\t%-4.1f",p->ia.score[i]);printf("\t%-4.1f\n",p->ia.average);p=p->next;}}List *input1() //插入数据的学生信息{List *p;char ix[10];int i=0;float y=0;fflush(stdin);puts("请输入学生学号:");gets(ix);p=(List *)malloc(sizeof(List));strcpy(p->ia.no,ix);puts("\t请输入学生姓名:");gets(p->);puts("\t请输入数学成绩:");scanf("%f",&p->ia.score[0]);y=y+p->ia.score[0];puts("\t请输入英语成绩:");scanf("%f",&p->ia.score[1]);y=y+p->ia.score[1];p->ia.average=y/2.0;p->next=NULL;return p;}void insert_List(List *head,List *p) //链表的插入{List *q,*s;s=(List *)malloc(sizeof(List));s=p;q=head;while(strcmp(q->next->ia.no,s->ia.no)<=0){q=q->next;if(q->next==NULL)break;}s->next=q->next;q->next=s;}List *output0(List *p) //输出某位学生的信息{int i;puts("\t学号\t姓名\t数学\t英语\t平均成绩");printf("\t%s",p->ia.no);printf("\t%s",p->);for(i=0;i<2;i++)printf("\t%-4.1f",p->ia.score[i]);printf("\t%-4.1f\n",p->ia.average);return p;}void find1_List(List *head) // 查找学生信息{List *p;char ix[10];int ii=0;fflush(stdin);p=head->next;puts("请输入学生学号:");gets(ix);while(1){if(p==NULL){if(ii==0){puts("不存在此学号的学生信息");break;}break;}while(strcmp(ix,p->ia.no)==0){output0(p);if(p->next==NULL)break;p=p->next;ii++;}p=p->next;}}List *find2(List *head) //查找指定节点{List *p;char ix[10];fflush(stdin);p=head->next;puts("输入查找学生的学号:");gets(ix);while(p!=NULL&&strcmp(ix,p->ia.no)!=0)p=p->next;return p;}List *delete_List(List *head,List *p) //链表的删除{List *q=head,*s=head->next;while(s!=NULL&&strcmp(p->ia.no,s->ia.no)!=0){q=s;s=s->next;}q->next=s->next;free(s);return head;}int length_List(List *head) //链表长度{List *p=head;int ii=0;while(p->next!=NULL){p=p->next;ii++;}return ii;}List *find3(List *head,int ij) //查找指定节点{List *p;int ii;fflush(stdin);p=head->next;while(p!=NULL&&ii!=ij){ii++;p=p->next;}return p;}List *paixu(List *head) /*排序*/ {List *p,*q,*large;float itemp;int i;char ctemp[10];for(p=head->next;p->next!=NULL;p=p->next)for(q=p->next;q!=NULL;q=q->next){large=p;if(p->ia.average<q->ia.average)large=q;if(large==q){strcpy(ctemp,p->ia.no);strcpy(p->ia.no,q->ia.no);strcpy(q->ia.no,ctemp);strcpy(ctemp,p->);strcpy(p->,q->);strcpy(q->,ctemp);for(i=0;i<2;i++){itemp=p->ia.score[i];p->ia.score[i]=q->ia.score[i];q->ia.score[i]=itemp;}itemp=p->ia.average;p->ia.average=q->ia.average;q->ia.average=itemp;}}return(head);}int menu() //链表菜单{int ii=0;puts("\t\t 欢迎进入链表系统");puts("========================================================="); /*界面设计*/puts("|\t\t 请选择下列某一项 \t\t\t|");puts("|\t\t\t(1)创建 \t\t\t|");puts("|\t\t\t(2)序号输出\t\t\t|");puts("|\t\t\t(3)查找 \t\t\t|");puts("|\t\t\t(4)插入 \t\t\t|");puts("|\t\t\t(5)删除 \t\t\t|");puts("|\t\t\t(6)成绩输出\t\t\t|");puts("|\t\t\t(7)退出 \t\t\t|");puts("=========================================================");do{fflush(stdin);puts("请输入你的选择:");scanf("%d",&ii);}while(ii<1||ii>7);return ii;}void main(){int ii,I,ij,ix,in;List *head,*p;do{system("cls"); /*清屏函数*/fflush(stdin); /*清除键盘缓冲区*/ii=menu();switch(ii){case 1: head=creat_List(); puts("录入成功");break;case 2: output_List(head);break;case 3: find1_List(head);break;case 4: p=input1();insert_List(head,p);puts("插入成功");break;case 5: p=find2(head);if(p==NULL)puts("该学生不存在");else{delete_List(head,p);puts("删除成功");}break;case 6: paixu(head);output_List(head);break;case 7: puts("谢谢使用!再见");getch();exit(0);}puts("输入任意键返回:");getch();}while(ii!=0);}。

C语言程序的设计报告-学生成绩记录簿

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语言程序设计报告学生成绩记录簿

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语言程序设计报告 ---学生成绩管理系统

C语言程序设计报告 ---学生成绩管理系统

C语言程序设计报告 ---学生成绩管理系统一、背景学生的学习成绩是一起重要的信息,为了管理好学生的学习成绩,学校及老师在教学过程中,需要有一个对学生成绩进行统计与记录,用于注册成绩,查询发放证书等工作,需要一个学生成绩管理系统来进行辅助操作。

本文主要介绍我校用C语言实现的学生成绩管理系统。

二、系统概述学生成绩管理系统主要由三个模块组成,即:数据录入模块、数据处理模块和数据输出模块。

数据录入模块:将每个学生的个人资料、成绩数据及相关信息,用户图形用户界面录入进系统;数据处理模块:利用程序能实现学生的成绩,统一的处理成绩,例如排名、查找,等;数据输出模块:该模块是整个系统的核心模块,将输出内容包括:学生基本信息、每门课程的各项成绩、平均成绩、综合排名等相关信息,通过程序。

三、系统功能介绍1.数据录入:学生的基本信息及考试成绩等信息的输入,用于后续数据处理及学生成绩的查询。

2.成绩查询:具备基本的查询功能,可以根据学生的学号及姓名查询学生的成绩,以及详细的学生考试成绩。

3.信息统计:可以进行全体学生的各项考试成绩信息综合统计,统计分析每个班级、每个专业、每门课程的考试情况,以及学生的排名,让用户知道整体的学习情况及有效管理学生的学习。

4.安全设置:系统具备安全设置功能,确保用户的信息安全,保证用户的登录权限,为系统及用户提供足够的安全保障,确保系统的数据安全。

四、系统分析系统分析阶段主要包含了分析及设计的步骤,为了更好的实现学生成绩管理的功能,系统分析中分析出学生信息、班级信息、考试信息等相关信息,以便为系统设计提供理论依据。

系统设计是系统分析的一个重要环节,通过设计,能够实现系统的功能,系统设计中定义出系统的基本流程及外部接口,使得系统能够正常运行。

五、系统实现六、系统测试学生成绩管理系统在功能测试过程中,通过实际的操作来测试学生成绩管理系统,测试的主要内容是系统的基本功能及系统的数据安全性,通过实际的操作,测试员可以详细的检查系统是否符合预期的功能,以及系统的正确度,从而保证系统的可靠性及安全性。

C语言程序设计报告材料-学生成绩记录簿簿

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语言程序设计学生成绩管理系统报告

c语言程序设计学生成绩管理系统报告C语言程序设计学生成绩管理系统报告一、引言随着计算机技术的不断发展,计算机在教育领域中的应用也越来越广泛。

学生成绩管理系统是一种基于计算机技术的教育管理工具,可以方便、快捷地管理学生的成绩信息。

本报告介绍了一种基于C语言的学生成绩管理系统的设计与实现。

二、系统设计1.需求分析学生成绩管理系统需要实现以下功能:(1)录入学生信息:包括学生姓名、学号、性别、年龄等基本信息。

(2)录入学生成绩:包括语文、数学、英语等科目的成绩。

(3)查询学生成绩:可以按照学号、姓名等条件查询学生成绩。

(4)修改学生成绩:可以修改学生的成绩信息。

(5)删除学生成绩:可以删除学生的成绩信息。

2.系统设计(1)数据结构设计本系统采用结构体来存储学生信息和成绩信息。

结构体的定义如下:typedef struct student{char name[20]; //姓名char id[20]; //学号char sex[10]; //性别int age; //年龄float chinese; //语文成绩float math; //数学成绩float english; //英语成绩}STUDENT;(2)界面设计本系统采用命令行界面,用户可以通过输入数字选择相应的功能。

(3)功能实现本系统实现了录入学生信息、录入学生成绩、查询学生成绩、修改学生成绩和删除学生成绩等功能。

具体实现方法如下:① 录入学生信息用户输入学生的基本信息,程序将信息存储到结构体中。

② 录入学生成绩用户输入学生的学号,程序查找该学生的信息并录入成绩。

③ 查询学生成绩用户输入学号或姓名,程序查找学生的信息并输出成绩。

④ 修改学生成绩用户输入学号,程序查找该学生的信息并修改成绩。

⑤ 删除学生成绩用户输入学号,程序查找该学生的信息并删除成绩。

三、系统实现本系统采用C语言编写,具体实现方法如下:(1)定义结构体typedef struct student{char name[20]; //姓名char id[20]; //学号char sex[10]; //性别int age; //年龄float chinese; //语文成绩float math; //数学成绩float english; //英语成绩}STUDENT;(2)录入学生信息void input_student(STUDENT *stu) {printf("请输入学生姓名:");scanf("%s", stu->name);printf("请输入学生学号:");scanf("%s", stu->id);printf("请输入学生性别:");scanf("%s", stu->sex);printf("请输入学生年龄:");scanf("%d", &stu->age);}(3)录入学生成绩void input_score(STUDENT *stu) {printf("请输入学生学号:");char id[20];scanf("%s", id);if(strcmp(stu->id, id) == 0){printf("请输入语文成绩:");scanf("%f", &stu->chinese);printf("请输入数学成绩:");scanf("%f", &stu->math);printf("请输入英语成绩:");scanf("%f", &stu->english);}}(4)查询学生成绩void search_score(STUDENT *stu){printf("请输入学号或姓名:");char id[20];scanf("%s", id);if(strcmp(stu->id, id) == 0 || strcmp(stu->name, id) == 0){printf("姓名:%s 学号:%s 性别:%s 年龄:%d 语文成绩:%.2f 数学成绩:%.2f 英语成绩:%.2f\n", stu->name, stu->id, stu->sex, stu->age, stu->chinese, stu->math, stu->english);}}(5)修改学生成绩void modify_score(STUDENT *stu) {printf("请输入学号:");char id[20];scanf("%s", id);if(strcmp(stu->id, id) == 0){printf("请输入语文成绩:"); scanf("%f", &stu->chinese); printf("请输入数学成绩:"); scanf("%f", &stu->math);printf("请输入英语成绩:"); scanf("%f", &stu->english); }}(6)删除学生成绩void delete_score(STUDENT *stu) {printf("请输入学号:");char id[20];scanf("%s", id);if(strcmp(stu->id, id) == 0){stu->chinese = 0;stu->math = 0;stu->english = 0;}}四、系统测试本系统经过测试,能够正常运行,并且实现了所有功能。

C语言课程设计实验报告成绩记录簿

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语言的过程中也学到了许多计算机应用基础知识,对计算机的运行也有一个大体的了解。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言程序设计报告学生成绩记录簿
上海应用技术学院
课程设计
~ 第 2 学期
设计题目成绩记录簿
院(系)计算机科学与信息工程
专业网络工程
班级 11104301 学号
学生姓名 xx
设计时间 .06.25~ .07.06
指导教师 xxx
提交日期.07.06
2
目录
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.将子函数与主函数相连即可。

4
1.3程序性能
该程序能够建立学生的成绩记录。

能够方便老师和同学方便的查阅成绩;
这个程序有录入和删除的功能;
还能够求出平均成绩,并排序
2 课题分析
2.1程序系统的结构
2.2程序流程图
课程编号。

相关文档
最新文档