C语言程序设计课程设计大作业-学生成绩管理系统
C语言课程设计学生成绩管理系统

C语言课程设计学生成绩管理系统在当今数字化的时代,学生成绩管理系统对于学校和教育机构来说至关重要。
它不仅能够提高教学管理的效率,还能为教学决策提供有力的数据支持。
本次 C 语言课程设计的目标就是创建一个功能齐全、操作便捷的学生成绩管理系统。
一、系统需求分析首先,明确系统需要实现的基本功能。
包括学生信息的录入,如姓名、学号等;课程信息的设置,如课程名称、学分等;成绩的录入、修改和查询;以及成绩的统计分析,如计算平均分、排名等。
同时,系统应具备良好的用户界面,操作简单易懂,方便教师和管理人员使用。
对于数据的存储和管理,要保证数据的安全性和完整性,防止数据丢失或被篡改。
二、系统设计(一)数据结构设计选择合适的数据结构来存储学生、课程和成绩信息。
可以使用结构体来定义学生和课程的数据类型,使用数组或链表来存储多个学生和课程的信息。
例如,定义学生结构体如下:```ctypedef struct student {int id;char name50;float scores10; //假设最多 10 门课程} Student;```(二)功能模块设计将系统划分为多个功能模块,如录入模块、查询模块、修改模块、统计模块等。
每个模块负责完成特定的功能,模块之间相互独立,便于代码的维护和扩展。
录入模块负责接收用户输入的学生、课程和成绩信息,并进行合法性检查。
查询模块可以根据用户输入的条件,如学号、姓名、课程名称等,查询相应的学生成绩信息。
修改模块允许用户对已录入的成绩进行修改,但需要进行权限验证。
统计模块用于计算学生的平均分、总分,并进行排名。
(三)界面设计设计简洁明了的用户界面,使用菜单选项让用户选择不同的功能。
可以使用控制台输入输出的方式,也可以考虑使用图形界面库来实现更友好的界面。
三、系统实现(一)数据输入与存储使用文件来存储学生成绩数据,便于数据的持久化。
在程序启动时,读取文件中的数据;在程序结束时,将修改后的数据保存回文件。
c语言学生成绩管理系统课程设计

c语言学生成绩管理系统课程设计一、课程目标知识目标:1. 学生能理解C语言在开发学生成绩管理系统中的应用,掌握基本的程序结构和语法。
2. 学生能运用C语言实现对学生成绩的录入、查询、修改、删除和排序等功能。
3. 学生了解并掌握数组、结构体、文件操作等C语言核心知识在学生成绩管理系统中的运用。
技能目标:1. 学生能够独立设计并编写简单的C语言程序,实现学生成绩管理系统的基本功能。
2. 学生能够运用调试工具对程序进行调试,找出并修正程序中的错误。
3. 学生能够通过分析实际需求,提出合理的解决方案,提高编程解决问题的能力。
情感态度价值观目标:1. 学生通过学习C语言学生成绩管理系统,培养对计算机编程的兴趣和热情。
2. 学生在团队协作中,学会沟通、分享、合作,培养良好的团队精神和编程习惯。
3. 学生通过解决实际问题,体会编程带来的成就感,增强自信心,培养积极向上的学习态度。
课程性质:本课程属于实践性较强的课程,旨在让学生通过动手实践,掌握C 语言编程技能,并能够应用于实际问题的解决。
学生特点:学生已经具备一定的C语言基础,对编程有一定的了解,但对复杂程序的设计和开发尚处于起步阶段。
教学要求:结合学生特点和课程性质,本课程要求教师注重实践操作,引导学生通过动手实践掌握编程技能,并在实践中提高解决问题的能力。
同时,注重培养学生的团队协作和沟通能力,提高学生的综合素质。
通过本课程的学习,使学生能够达到上述课程目标,并为后续相关课程的学习打下坚实基础。
二、教学内容1. C语言基础知识回顾:包括数据类型、运算符、控制结构等,为后续课程打下基础。
(对应教材章节:1-3章)- 数据类型、变量定义- 运算符、表达式- 顺序结构、分支结构、循环结构2. 数组与函数:介绍数组的使用以及函数的定义与调用,为成绩管理系统提供数据存储和处理方法。
(对应教材章节:4-5章)- 一维数组、二维数组- 函数的定义、调用、参数传递- 递归函数3. 结构体与文件操作:讲解结构体的定义和使用,以及文件操作的基本方法,为成绩管理系统提供数据存储和读取功能。
C语言大作业——学生成绩管理系统v2.0

//成绩管理系统v2.0#include <stdio.h>#include <stdlib.h>#define N 30void Input (long num[],int score[],int n);void Totalave (int score[],int n);void Scoredes (long num[],int score[],int n,int (*compare)(int a,int b)); int Ascending (int a,int b);void Numas (long num[],int score[],int n);void Search (long num[],int score[],int n,int x);void statistis (long num[],int score[],int n);void List (long num[],int score[],int n);int main(){int n,score[N],c,x,i;long num[N];printf("输入学生人数");scanf("%d",&n);printf("1.Input record\n");printf("2.Caculate totel and average score of course\n");printf("3.Sort in descending order by score\n");printf("4.Sort in ascending order by number\n");printf("5.Search by number\n");printf("6.Statistic analysis\n");printf("7.List record\n");printf("0.Exit\n");printf("Please enter your choice:\n");printf("\n");for(;;){scanf("%d",&c);switch(c){case 1:Input (num,score,n);printf("Please enter your choice:\n");break;case 2:Totalave (score,n);printf("Please enter your choice:\n");break;case 3:Scoredes (num,score,n,Ascending);for(i=0;i<n;i++)printf("ID:%10ld,score:%d\n",num[i],score[i]);//以长整形打印用%ld printf("Please enter your choice:\n");break;case 4:Numas (num,score,n);printf("Please enter your choice:\n");break;case 5:printf("请输入查找学号\n");scanf("%d",&x);Search (num,score,n,x);printf("Please enter your choice:\n");break;case 6:statistis (num,score,n);printf("Please enter your choice:\n");break;case 7:List (num,score,n);Totalave (score,n);printf("Please enter your choice:\n");break;case 0:exit(0);}}return 0;}void Input (long num[],int score[],int n){int i;for(i=0;i<n;i++){printf("Input student's ID and score");scanf("%ld%d",&num[i],&score[i]);}}void Totalave (int score[],int n){int i,sum=0;double ave;for(i=0;i<n;i++)sum=sum+score[i];ave=(double)sum/n;printf("Caculate total=%d,average score of course=%f\n",sum,ave); }void Scoredes (long num[],int score[],int n,int(*compare)(int a,int b)){int i,j,k,t,h;for(i=0;i<n;i++){k=i;for(j=i+1;j<n;j++){if ((*compare)(score[j],score[k]))k=j;}if(i!=k){t=score[k],h=num[k];score[k]=score[i],num[k]=num[i];score[i]=t,num[i]=h;}}}int Ascending (int a,int b){return a<b;}void Numas (long num[],int score[],int n){int i,j,k,t,h;for(i=0;i<n;i++){k=i;for(j=i+1;j<n;j++){if (num[j]<num[k])k=j;}if(i!=k){t=score[k],h=num[k];score[k]=score[i],num[k]=num[i];score[i]=t,num[i]=h;}}for(i=0;i<n;i++)printf("ID:%10ld,score:%d\n",num[i],score[i]);//以长整形打印用%ld }void Search (long num[],int score[],int n,int x){int high=n-1,low=0,mid,c=0,pos,find=0,i,j,k,t,h;for(i=0;i<n;i++){k=i;for(j=i+1;j<n;j++){if (num[j]<num[k])k=j;}if(i!=k){t=score[k],h=num[k];score[k]=score[i],num[k]=num[i];score[i]=t,num[i]=h;}}while(find==0&&low<=high){mid=(high+low)/2;if(x>num[mid])low=mid+1;else if(x<num[mid])high=mid-1;else{pos=mid;find=1;}}if(find==0)printf("not find\n");else{for(i=0;i<n;i++){if(score[i]>score[pos])c++;}printf("ID:%10ld,order:%d,score:%d\n",num[pos],c+1,score[pos]);}}void statistis (long num[],int score[],int n){int a=0,b=0,c=0,d=0,e=0,i;double A,B,C,D,E;for(i=0;i<n;i++){if(score[i]>=90)a++;else if(score[i]>=80)b++;else if(score[i]>=70)c++;else if(score[i]>=60)d++;elsee++;}A=(double)a/n*100;B=(double)b/n*100;C=(double)c/n*100;D=(double)d/n*100;E=(double)e/n*100;printf("优秀人数%d,百分比:%f%%\n",a,A);printf("良好人数%d,百分比:%f%%\n",b,B);printf("中等人数%d,百分比:%f%%\n",c,C);printf("及格人数%d,百分比:%f%%\n",d,D);printf("不及格人数%d,百分比:%f%%\n",e,E); }void List (long num[],int score[],int n){int i;for(i=0;i<n;i++){printf("ID:%10ld,score:%d\n",num[i],score[i]);}}。
C语言课程设计_学生成绩管理系统

部署步骤:安装 操作系统、安装 数据库、安装应 用软件等
维护方案:定期 备份数据、定期 检查系统、定期 更新软件等
系统维护方案
定期备份数据: 确保数据安全, 防止数据丢失
定期更新系统: 确保系统安全, 防止病毒和恶意 软件攻击
定期检查硬件: 确保硬件正常运 行,防止硬件故 障
定期培训员工: 确保员工熟悉系 统操作,提高工 作效率
06 系统测试与优化
单元测试
目的:验证单个模块或功能的正确 性
测试内容:功能测试、性能测试、 兼容性测试、安全性测试
添加标题
添加标题
添加标题
添加标题
测试方法:白盒测试、黑盒测试、 灰盒测试
测 试 工 具 : JU n it 、 Te s t NG 、 Selenium等
集成测试
目的:验证系统各模块间的接口和交互是否正常 测试方法:黑盒测试、白盒测试、灰盒测试 测试内容:功能测试、性能测试、安全测试、兼容性测试 测试工具:JMeter、Selenium、Appium等
系统性能优化
性能测试:使用自 动化工具进行性能 测试,如JMeter、 LoadRunner等
性能瓶颈分析:分 析性能测试结果, 找出性能瓶颈,如 数据库查询、网络 延迟等
性能优化:针对性 能瓶颈进行优化, 如优化数据库查询 、减少网络延迟等
性能监控:建立性 能监控体系,实时 监控系统性能,及 时发现和解决性能 问题
学生成绩管理系统是一个用 于管理学生成绩的软件系统
Байду номын сангаас
系统采用模块化设计,易于 维护和扩展
系统支持多种数据格式,如 Excel、CSV等,方便数据
导入和导出
系统目标
提高学生成绩管理效率 方便教师查询、统计和分析学生成绩 提供个性化学习建议和指导 促进家校沟通,提高家长对学生成绩的了解
c语言程序设计学生成绩管理系统

目的和目标
目的
本系统的目的是为了解决传统纸质成 绩管理方式存在的效率低下、易出错 等问题,提供一个方便、快捷、准确 的学生成绩管理系统。
目标
本系统的目标是实现以下功能:学生 信息管理、成绩录入、成绩查询、成 绩修改和成绩删除等。同时,系统应 具备良好的用户界面和安全性,确保 数据的安全和完整。
02
数据需求
包括用户名、密码等字段。
包括学号、课程名称、成 绩等字段。
包括学号、姓名、性别、 年龄等字段。
成绩表 学生信息表
用户表
性能需求
响应时间
系统响应时间应在合理范围内,确保用户操 作的及时性。
数据准确性
系统应保证数据的准确性,避免出现数据错 误或异常。
系统稳定性
系统应具备较高的稳定性,保证长时间运行 不会出现故障。
数据输出模块
总结词
数据输出模块负责将处理后的学生成绩信息以用户友好的方式呈现出来。
详细描述
该模块需要设计清晰的报表和图表,如使用表格展示学生成绩排名、柱状图展示各科目平均分等。同 时,为了方便用户查看,这些报表和图表应支持导出功能,如导出为Excel文件或PDF文件。此外,该 模块还应提供打印功能,允许用户将报表或图表打印出来。
数据处理模块
要点一
总结词
数据处理模块是系统的核心,负责对学生成绩信息进行存 储、计算和分析。
要点二
详细描述
该模块首先需要设计一个高效的数据结构来存储学生成绩 信息,如使用结构体数组或链表。然后,根据实际需求, 实现对学生成绩的统计、计算和排序等功能,如计算平均 分、最高分、最低分,对学生成绩进行升序或降序排列等 。此外,该模块还应提供数据备份和恢复功能,确保数据 的安全性和完整性。
C语言课程设计—学生成绩管理系统

#include ”stdio.h”#include ”string.h”#include "stdlib.h"#include "conio.h"#include ”string.h”#include "fcntl。
h"typedef struct student{int num;char grade[10];char classroom[10];char name[10];float score_math;float score_chinese;float score_english;float average;float sum;}STU;typedef struct Node{STU data;struct Node *next;}*linklist;void menu();char *loginpassword(char password[],int n);//登录验证密码函数声明//linklist createstulist(linklist head);//创建学生链表即学生信息录入函数声明// void printstulist(linklist head);//学生信息输出函数声明//void searchstu_namelist(linklist head);//学生信息查询函数声明(按姓名)// void searchstu_numlist(linklist head);//学生信息查询函数声明(按学号) linklist modifystulist(linklist head);//学生信息修改函数声明//linklist delatestulist(linklist head);//学生信息删除函数声明//void savestulist(linklist head);//学生信息保存到文件函数声明// linklist loadstulist();//从文件中读取学生信息函数声明// void sortstulist(linklist head); //成绩排名函数(按年级)声明//void sort(STU stu[],int flag); //学生分班函数声明//void sortstuclass(linklist head); //成绩排名函数(按班级)声明////*************************************//void main(){char admin[]=”zhangqiong";char password[]=”123456";char person[20];char password1[10];int i;printf(”********************************************************************************\n”);printf("\t\t **********欢迎来到学生成绩管理系统**********\n\n");printf(”********************************************************************************\n\n”);printf(”\t\t\t\t用户登录\n\n\n\n");for(i=0;i<3;i++){printf("用户名:”);gets(person);fflush(stdin);printf(”\n\n\n”);loginpassword(password1,10);printf("\n\n\n”);if(strcmp(admin,person)==0&&strcmp(password,password1)==0){printf(”\t\t\t\t成功登录,亲!\n”);printf("\n\n”);printf(”按任意键继续!”);getch();menu();break;}elseprintf("\t用户名或者密码输入错误\n”);}if(i==3)printf("\t对不起,您今天输入次数太多,已被强制退出!\n”);}//**********************************************************////**********************************************************//char *loginpassword(char password[],int n)//登录密码函数,隐藏密码可见//{int i=0;int m=0;char ch;printf("用户密码:”);while((ch=getch())!='\r’&&m〈n){password[i++]=ch;printf(”*");}password[i]='\0';return password;}//***************************************************// void menu()//主界面函数//{system("cls");linklist L;L=(linklist)malloc(sizeof(Node));L—>next=NULL;int ch;do{printf(”\t -——-----—-******——--——--—---******—————-————-******-—-—-—-—-—\n\n");printf("\t\t\t**********学生成绩管理系统***********\n\n”);printf("\t ——----——--******-—-——------—******—---———--—-******—---———-——\n\n\n\n\n");printf("\t1。
C语言程序设计报告 ---学生成绩管理系统

C语言程序设计报告 ---学生成绩管理系统一、背景学生的学习成绩是一起重要的信息,为了管理好学生的学习成绩,学校及老师在教学过程中,需要有一个对学生成绩进行统计与记录,用于注册成绩,查询发放证书等工作,需要一个学生成绩管理系统来进行辅助操作。
本文主要介绍我校用C语言实现的学生成绩管理系统。
二、系统概述学生成绩管理系统主要由三个模块组成,即:数据录入模块、数据处理模块和数据输出模块。
数据录入模块:将每个学生的个人资料、成绩数据及相关信息,用户图形用户界面录入进系统;数据处理模块:利用程序能实现学生的成绩,统一的处理成绩,例如排名、查找,等;数据输出模块:该模块是整个系统的核心模块,将输出内容包括:学生基本信息、每门课程的各项成绩、平均成绩、综合排名等相关信息,通过程序。
三、系统功能介绍1.数据录入:学生的基本信息及考试成绩等信息的输入,用于后续数据处理及学生成绩的查询。
2.成绩查询:具备基本的查询功能,可以根据学生的学号及姓名查询学生的成绩,以及详细的学生考试成绩。
3.信息统计:可以进行全体学生的各项考试成绩信息综合统计,统计分析每个班级、每个专业、每门课程的考试情况,以及学生的排名,让用户知道整体的学习情况及有效管理学生的学习。
4.安全设置:系统具备安全设置功能,确保用户的信息安全,保证用户的登录权限,为系统及用户提供足够的安全保障,确保系统的数据安全。
四、系统分析系统分析阶段主要包含了分析及设计的步骤,为了更好的实现学生成绩管理的功能,系统分析中分析出学生信息、班级信息、考试信息等相关信息,以便为系统设计提供理论依据。
系统设计是系统分析的一个重要环节,通过设计,能够实现系统的功能,系统设计中定义出系统的基本流程及外部接口,使得系统能够正常运行。
五、系统实现六、系统测试学生成绩管理系统在功能测试过程中,通过实际的操作来测试学生成绩管理系统,测试的主要内容是系统的基本功能及系统的数据安全性,通过实际的操作,测试员可以详细的检查系统是否符合预期的功能,以及系统的正确度,从而保证系统的可靠性及安全性。
c语言学生成绩管理系统课程设计

c语言学生成绩管理系统课程设计一、教学目标本课程的教学目标是使学生掌握C语言学生成绩管理系统的开发方法,培养学生的编程能力和实际应用能力。
具体分为以下三个部分:1.知识目标:学生需要掌握C语言的基本语法、数据结构、函数、文件操作等编程知识,了解学生成绩管理系统的需求分析和系统设计方法。
2.技能目标:学生能够运用C语言独立完成一个学生成绩管理系统的设计和实现,具备一定的编程实践能力和问题解决能力。
3.情感态度价值观目标:培养学生对计算机科学的兴趣和热情,增强学生对技术改变生活的认识,培养学生的创新精神和团队合作意识。
二、教学内容教学内容以教材《C语言程序设计》为主线,结合实际应用需求,安排如下:1.C语言基础知识:数据类型、运算符、控制结构、数组、字符串等。
2.函数与模块化编程:函数定义与调用、局部变量与全局变量、递归、文件操作等。
3.数据结构:链表、栈、队列、树等。
4.学生成绩管理系统设计:需求分析、系统设计、模块划分、编程实现等。
5.调试与优化:调试方法、性能分析、代码优化等。
三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法相结合,以激发学生的学习兴趣和主动性。
1.讲授法:用于传授C语言基本语法和编程原理,帮助学生建立扎实的理论基础。
2.案例分析法:通过分析实际案例,让学生了解学生成绩管理系统的需求分析和设计方法,提高学生的实际应用能力。
3.实验法:安排实验课,让学生动手编写代码,培养学生的编程实践能力和问题解决能力。
四、教学资源教学资源包括教材、多媒体资料、实验设备等,以支持教学内容和教学方法的实施,丰富学生的学习体验。
1.教材:《C语言程序设计》。
2.多媒体资料:教学PPT、视频教程、在线编程练习等。
3.实验设备:计算机、网络设备、编程环境等。
五、教学评估教学评估是检验学生学习成果的重要手段,主要包括以下几个方面:1.平时表现:通过课堂参与、提问、讨论等方式评估学生的学习态度和积极性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言程序设计课程设计大作业-学生成绩管理系统计算机科学学院计算机科学与应用系C程序设计报告成绩管理系统设计学生姓名:* *学号:1004681082班级:计科102指导老师:* *报告日期:2011--02--161.题目与要求1)问题提出本人计划编写一个学生信息管理系统,主要用来管理学生基本信息及成绩信息。
2)本系统涉及的知识点单链表、结构体、函数、循环、指针、选择3)功能要求(1)建立学生信息,每个学生的信息包括:学号、姓名、成绩。
(2)求出每个学生的总分和平均分。
(3)查找:根据学号、姓名、成绩、总分、平均分中任一项查询该生的基本信息。
(4)排序:根据学号或总分将学生的信息按照一定的顺序进行排序。
(5)根据需要修改学生的基本信息。
(6)根据实际情况删除某生的信息。
(7)根据实际情况插入某生的信息。
(8)输出。
2.功能设计1)算法设计(1)利用switch语句设计如图所示的主菜单。
请输入选项编号1——查找2——排序3——学生信息的修改4——链表的删除5——链表的插入6——链表的输出7——退出图1 学生信息管理系统主菜单(2)选择1后,调用查找函数search,进入查找函数后利用switch语句实现如图所示的查找子菜单。
该菜单中每个选项调用一个函数(除选项10外)。
查找菜单请输入选项编号1——按学号查找2——按姓名查找3——按C语言分数查找4——按高数分数查找5——按英语分数查找6——按总分查找7——按平均分查找8——总分前三名9——不及格者10——班级成绩情况11——退出图2 查找子菜单(3)选项2后,调用排序函数arrange,进入查找函数后利用switch语句实现如图所示的查找子菜单。
该菜单中每个每个选项调用一个函数(除3外)。
排序菜单输入选项编号1——按学号排序2——按总分排序3——退出图3 排序子菜单(4)选择3后,调用修改函数correct,修改某个学生的信息。
(5)选择4后,调用删除函数del,根据需要删除某个学生的信息。
(6)选择5后,调用插入函数insert,根据需要插入某个学生的信息。
(7)选择6后,调用输出函数output,将每个学生的信息全部输出。
(8)选择7后,退出学生信息管理系统。
(9)根据所选菜单编号编写相应代码。
(a)函数welcome:欢迎用户使用。
(b)函数about: 简要介绍本程序。
(c)函数create:创建单链表,采用循环输入的方式输入学生的基本信息。
(d)函数SnoSearch:根据学号查找,输出该生的基本信息。
(e)函数NameSearch:根据姓名查找,输出该生的基本信息。
(f)函数CYuYanSearch:根据C语言成绩成绩查找,输出该生的基本信息。
(g)函数GaoShuSearch:根据高数成绩查找,输出该生的基本信息。
(h)函数YingYuSearch:根据英语成绩查找,输出该生的基本信息。
(i)函数ZongFenSearch:根据总分查找,输出该生的基本信息。
(j)函数AverageSearch:根据平均分查找,输出该生的基本信息。
k)函数QSMSearch:查看班级前三名学生信息情况。
((l)函数BuJiGeSearch:查看班级不及格学生信息情况。
成绩菜单输入选项编号1——C语言不及格者2——高数不及格者3——英语不及格者4——不及格者5——全不及格者6——退出图4 成绩子菜单(m)函数ClassScore:查看班级成绩平均分整体情况。
(n)函数SnoArrange:按照学号将学生信息进行排序。
(o)函数ZongFenArrange:按照总分将学生信息进行排序。
(n)函数over:感谢用户使用。
2)画模块图显示按学欢迎号查界面找显示按姓程序名查按C介绍找语言不及输入按成格者绩查查找成绩找查找按总按高分查数不排序找及格者查主找模修改按平块学生均分信息查找按英语不删除按前及格学生三名者查信息查找找插入按不学生及格按不信息查找及格者查输出按学找学生号排信息序按全显示按总不及结束分排格者界面序查找图5 成绩管理系统模块图3)画部分模块的流程图开始输入学生信息pnew->score=pnew->score1+pnew->score2+pnew->score3; pnew->avg=pnew->score/3a==pnew->snoN Yp->next=NULL 输入学生信息结束pnew->score=pnew->score1+pnew->score2+pnew->score3; pnew->avg=pnew->score/3图6 creat函数流程图开始输入at++t==num+1YNp=p->next a==p->snoNY输出学生信息结束图7 SnoSearch函数流程图开始输入bt=0;flag=0;p=head;t++Y Nt==num+1Yflag==0 k==0NN Y结束 flag=1输出学生信息p=p->next图8 NameSearch函数流程图开始s=0;r=0;w=0;t=0m=0;n=0;p=head;N Y s!=nums++ p=head;s=0N Y t<p->score s!=numNY s++t=p->scoret==p->scorep=p->next NY输出学生信息p=head p=p->next……结束图9 QSMSearch函数流程图开始p=head输入bNa==1Y Na>1&&a<num n=1Y a==num head=head->next n=2 N Y n=3 i=0j=0 Ni!=a-2 Nj!=a-2 Yp=p->next Yp=p->nexti++j++p->next=NULL p->next=p->next->next num=num-1结束图10 del函数流程图3.程序代码设计1.main函数:(1)函数原型:void main()(2)功能:分别调用 welcome函数、about函数、create函数、search函数、del函数、insert函数、output函数和over函数。
3)变量及类型: (int m,n; //switch选择变量(4)说明:main函数中用到system("cls"),其作用是清除屏幕上的文字。
2.welcome函数:(1)函数原型:void welcome()(2)功能:显示欢迎用户使用界面。
(3)说明:getchar()函数用于使屏幕停止,按下Enter键后再执行下面程序。
3.about函数:1)函数原型:void about() ((2)功能:简要介绍本程序。
(3)说明:getchar()函数用于使屏幕停止,按下Enter键后再执行下面程序。
4.create函数:(1)函数原型:void create()(2)功能:利用单链表、while循环和 scanf函数完成对学生信息的输入(学号、姓名、三门成绩),并计算出总分和平均分,再存入单链表中。
(3)变量及类型:int a=0; //判断学生信息输入是否结束(学号是否为0)struct student *p,*pnew; //结构体指针指向结点(4)说明:学生的人数不受限制,输入结束符号即可。
5.search函数:(1)函数原型:void search()(2)功能:通过选项来选择调用不同函数,完成不同的功能。
(3)变量及类型:int m,n; //switch选择变量6.SnoSearch函数:(1)函数原型:void SnoSearch()(2)功能:通过学号来查找该生的基本信息。
(3)变量及类型:int a,t; //a用来存储学号;t用来计数,以便跳出循环struct student *p; //指针p用于指向头结点Search函数:(1)函数原型:void NameSearch() (2)功能:通过姓名来查找该生的基本信息。
(3)变量及类型:int k,t,flag; //k用于判断;t用于计数;flag起标记作用char b[20]; //数组b用于存放姓名struct student *p; //指针p用于指向头结点8.CYuYanSearch函数:(1)函数原型:void CYuYanSearch() (2)功能:通过C语言成绩来查找该生的基本信息。
(3)变量及类型:int t,flag; //t用于计数;flag起标记作用float a; //a用于存放C语言成绩struct student *p; //指针p用于指向头结点9.GaoShuSearch函数:(1)函数原型:void GaoShuSearch() (2)功能:通过高数成绩来查找该生的基本信息。
3)变量及类型: (int t,flag; //t用于计数;flag起标记作用float b; //b用于存放高数成绩struct student *p; //指针p用于指向头结点10.YingYuSearch函数:(1)函数原型:void YingYuSearch() (2)功能:通过英语成绩来查找该生的基本信息。
(3)变量及类型:int t,flag; //t用于计数;flag起标记作用float c; //c用于存放英语成绩struct student *p; //指针p用于指向头结点11.ZongfenSearch函数:(1)函数原型:void ZongfenSearch() (2)功能:通过总分来查找该生的基本信息。
(3)变量及类型:int t,flag; //t用于计数;flag起标记作用float d; //d用于存放总分struct student *p; //指针p用于指向头结点12.AverageSearch函数:(1)函数原型:void AverageSearch() (2)功能:通过平均分来查找该生的基本信息。
(3)变量及类型:int t,flag; //t用于计数;flag起标记作用float e; //e用于存放平均分struct student *p; //指针p用于指向头结点13.QSMSearch函数:(1)函数原型:void QSMSearch() (2)功能:显示前三名的基本信息(3)变量及类型:int s=0,r=0,w=0; //s,r,w均用做计数float t=0,m=0,n=0; //t,m,n均用做记录最高分struct student *p; //指针p用于指向头结点14. BuJiGeSearch函数:(1)函数原型:void BuJiGeSearch() (2)功能:通过switch选择输出不及格情况。