课程设计报告学生成绩管理系统

合集下载

学生成绩管理系统课程设计报告

学生成绩管理系统课程设计报告

学生成绩管理系统-课程设计报告学生成绩管理系统-课程设计报告一、引言学生成绩管理系统是一种能够方便高效地管理学生学业成绩的软件系统。

随着教育信息化的发展,学生成绩管理系统已经成为各个学校和教育机构不可或缺的一部分。

本课程设计报告旨在设计和实现一款学生成绩管理系统,以满足学校对学生成绩管理的需求。

二、系统需求分析1.学生信息管理:系统需要能够存储学生的基本信息,包括学号、姓名、性别、年级等。

2.课程管理:系统需要能够管理学校的各门课程信息,包括课程名称、授课教师、学分等。

3.成绩录入:系统需要能够录入学生的成绩信息,包括学生学号、课程名称、成绩等。

4.成绩查询:系统需要提供成绩查询功能,学生和教师能够通过系统查询学生的成绩。

5.成绩统计:系统需要能够对学生的成绩进行统计和分析,包括计算平均成绩、最高分、最低分等。

6.成绩报表:系统需要能够生成成绩报表,以便学校和教师能够查看学生成绩的总体情况。

三、系统设计1.数据库设计:设计一个学生表和一个课程表,学生表包括学生的学号、姓名、性别、年级等信息,课程表包括课程的名称、授课教师、学分等信息。

成绩信息通过学生表和课程表建立关联关系。

2.用户界面设计:设计一个用户友好的界面,包括学生登录界面、教师登录界面和管理员登录界面。

学生能够查询个人成绩和课程信息,教师能够录入学生成绩和查询学生成绩,管理员能够管理学生和课程信息。

3.功能模块设计:将系统划分为学生管理模块、课程管理模块、成绩录入模块、成绩查询模块、成绩统计模块和成绩报表模块。

每个模块实现相应的功能,模块之间通过接口进行数据交互。

四、系统实现本系统采用Java语言和MySQL数据库进行开发。

使用Java技术实现用户界面和功能模块,使用MySQL数据库存储学生、课程和成绩信息。

五、系统测试与调试进行系统测试,包括功能测试、性能测试和稳定性测试。

通过测试发现并修复系统中存在的问题,确保系统能够正常运行。

六、系统部署与维护将系统部署到学校的服务器上,并进行系统维护工作,包括定期备份数据、更新系统版本等。

学生成绩管理系统课程设计报告c++

学生成绩管理系统课程设计报告c++

学生成绩管理系统课程设计报告前言一、系统的设计需求1、整个系统均用C语言实现;2、利用指针、链表来实现学生成绩的数据结构设计;3、系统具有输入、显示、删除、排序、退出基本功能;4、系统的各个功能模块都用函数的形式来实现;5、可以将学生信息全部显示出来出来。

二、系统的功能模块划分每一条记录包括一个学生的姓名、成绩。

同时1、输入功能:一次可以完成一个学生成绩记录的输入。

2、显示功能:完成全部学生记录的显示。

3、删除功能:对指定学生的成绩进行删除.4、排序功能:按学生从大到小进行排序。

5、修改功能:对学生的成绩进行修改。

三、系统的整体设计1。

数据结构设计:A、输入功能的设计:void insert_func(void){char s_temp[4];ptr=(struct student *) malloc(sizeof(struct student));printf(” Student name :");gets(ptr—〉name);// gets从标准输入设备读取字符串// printf(” Student score:");gets(s_temp);ptr->score = atoi(s_temp);//把字符串转化为整数//B、删除功能的设计:void delete_func(void)//现在进入删除操作//{char del_name[20];printf(" Delete student name:");gets(del_name);prev = head;current = head-〉next;while ((current != NULL)&& (strcmp(current-〉name , del_name)!=0))//用到了strcmp 比较字符串{prev = current;current = current->next;}if (current != NULL){prev—〉next = current—〉next;free(current);//释放当前位置//printf(" %s student record deleted\n”,del_name);//输出被删除的姓名//}elseprintf(” Student %s not found\n",del_name);//否则此学生不存在//C、排序功能的设计:void sort_func(void)//插入数据//{prev = head;//把头指针所指的值付给prev//current = head—〉next;//把头指针的下一个指针值付给当前指针所指的位置// while ((current != NULL)&&(current—〉score 〉ptr—〉score)){prev = current;current = current->next;}ptr-〉next = current;prev—〉next = ptr;D、修改功能的设计:void modify_func(void){char n_temp[20],s_temp[4];//定义字符类型//printf(” Modify student name:”);gets(n_temp);//这样输入姓名current=head—>next;while ((current != NULL)&& (strcmp(current->name , n_temp)!=0)){prev = current;current = current-〉next;}if (current != NULL){printf(” **************************\n");printf(” Student name :%s\n”,current-〉name);printf(” Student score:%d\n”,current—>score);printf(” **************************\n");printf(" Please enter new score:”);gets(s_temp);current—〉score = atoi(s_temp);printf(" %s student record modified\n”,n_temp);}//输出被修改的成绩//elseprintf(” Student %s not found\n”,n_temp);//否则此学生不存在//anykey_func();E、显示功能的设计:void display_func(void)//定义显示//{int count=0;system(”cls”);if(head—〉next == NULL)//如果头指针所指数为空//{printf(” No student record\n”);//则输出学生记录为空//}else//否则输出学生姓名和成绩//{printf(” NAME SCORE\n”);printf(” —--——--—————-—-—-——-—-——-——\n”);current=head->next;while(current != NULL){printf(” %-20s %3d\n", current—〉name, current—〉score);count++;current=current—〉next;if(count % 20 == 0)getch();}printf(” --——————-—————————--—-—-—--\n”);printf(" Total %d record(s) found\n”, count);2.功能模块的具体设计整个系统除了主函数外,另外还有8个函数,实现5大功能:输入功能、显示功能、排序功能、删除功能、修改功能。

学生成绩管理系统c语言课程设计报告

学生成绩管理系统c语言课程设计报告

学生成绩管理系统c语言课程设计报告一、引言学生成绩管理系统是一个为学校或教育机构提供学生学业成绩管理的重要工具。

通过该系统,可以方便地记录和查询学生的各项成绩,帮助教师和学生了解学生的学业表现,及时作出教学和学习的调整和改进。

本文将介绍一个基于C语言的学生成绩管理系统的设计与实现。

二、需求分析1. 学生信息管理:包括学生基本信息的录入、修改和删除。

2. 成绩信息管理:包括成绩的录入、修改和删除。

3. 成绩查询与统计:可以按照学生学号或姓名查询学生的成绩,并能够进行成绩的统计分析,如计算平均分和排名等。

4. 数据存储与备份:能够将学生信息和成绩信息存储在文件中,并能够进行数据的备份和恢复。

三、系统设计1. 学生信息管理模块:设计一个结构体来存储学生的基本信息,包括学号、姓名、性别、年龄等。

通过菜单选择,可以实现学生信息的录入、修改和删除功能。

2. 成绩信息管理模块:设计一个结构体来存储学生的成绩信息,包括科目名称和成绩。

通过菜单选择,可以实现成绩信息的录入、修改和删除功能。

3. 成绩查询与统计模块:通过学号或姓名查询学生的成绩,并能够进行成绩的统计分析,如计算平均分和排名等。

4. 数据存储与备份模块:设计文件操作函数,将学生信息和成绩信息存储在文件中,并能够进行数据的备份和恢复。

四、系统实现1. 使用C语言编写程序代码,通过结构体和数组等数据结构实现学生信息和成绩信息的存储。

2. 利用文件操作函数实现数据的读取和存储,包括学生信息和成绩信息的存储和备份。

3. 设计菜单界面,通过用户选择来实现各个功能模块的调用。

五、系统测试与优化1. 针对各个功能模块进行测试,验证系统的正确性和稳定性。

2. 根据测试结果优化程序代码,提高系统性能和用户体验。

3. 完善系统功能,考虑异常情况的处理,提高系统的容错性和健壮性。

六、总结与展望通过本次课程设计,我们成功实现了一个基于C语言的学生成绩管理系统。

该系统能够方便地记录和查询学生的成绩信息,帮助教师和学生进行教学和学习的分析和改进。

学生成绩管理系统课程设计报告

学生成绩管理系统课程设计报告

数据库系统原理及其应用教程课程设计报告题目名称:学生成绩管理系统任课教师:姓名:学号:一.概述1.设计背景学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段,但是几年前,各个学校的学生成绩管理基本上都是靠手工进行,随着各个学校的规模增大,有关学生成绩管理工作所涉及的数据量越来越大,有的学校不得不靠增加人力、物力来进行学生成绩管理。

这种管理方式存在着许多缺点,如:效率低、保密性差,另外所用其时间长,产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。

如今学校的学生越来越多,成绩管理的工作量越来越大,手工管理成绩的弊端也越来越明显。

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

作为计算机应用的一部分,使用计算机对学生档案信息进行管理,具有手工管理所无法比拟的优点。

例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大地提高学生档案管理的效率。

所以我想借本次课程设计之际,设计一个简易的学生成绩管理系统。

2. 设计目的1、掌握运用数据库原理进行系统分析和设计的方法;2、掌握关系数据库的设计方法;3、掌握利用SQL Server 2000技术;4、加强C++的编程能力3. 设计内容1.设计一个简易学生成绩管理的数据库系统,包括数据库的建立的需求分析,数据的输入输出。

2.设计用户的操作界面,主要实现数据的查询,添加,修改,删除基本功能。

二.需求分析1.功能分析在成绩管理系统中最主要的是对学生成绩的管理,管理主要包括:对学生成绩的录入,修改,删除,以及按不同的方式对学生成绩进行查询。

系统中包括学生的基本信息(如:学号,姓名,专业等),学生的各科成绩信息,教师的基本信息(如:教师编号,姓名,性别,所教科目,学历等),学生所学科目科目的基本信息(如:科目编号,名称,出版社等),以便查询。

管理信息系统课程设计学生成绩管理系统

管理信息系统课程设计学生成绩管理系统

管理信息系统课程设计学生成绩管理系统随着信息技术的快速发展和普及,管理信息系统在高校中的应用日益广泛。

作为一门重要的课程,管理信息系统课程设计是培养学生综合能力和实践能力的重要环节之一。

本文旨在设计一个学生成绩管理系统,以便高效地管理学生的成绩信息,提供及时准确的成绩查询和分析。

一、系统概述学生成绩管理系统旨在实现对学生的成绩信息进行全面管理和统计分析。

系统将采用数据库技术和Web开发技术,实现学生信息的录入、成绩的录入与修改、成绩查询和统计分析等功能。

二、系统功能需求1. 学生信息管理:实现学生信息的录入、修改和删除,在系统中保存学生基本信息,如姓名、学号、性别等。

2. 成绩录入与修改:教师可以通过系统录入学生成绩,并支持对已录入成绩的修改和删除。

3. 成绩查询:学生和教师可以通过系统进行成绩查询。

学生可以查询自己的成绩,包括各门课程的成绩和总评成绩;教师可以查询班级或课程的成绩情况。

4. 成绩统计分析:系统能够对学生成绩进行统计分析,包括各门课程的平均成绩、班级平均成绩、优秀、合格和不合格人数等。

5. 成绩报表打印与导出:系统支持成绩报表的打印和导出,方便学校进行档案管理和统计分析。

三、系统设计与实现1. 技术选型:该系统将采用和MSSQL Server作为开发平台和数据库,确保系统具有良好的稳定性和性能。

2. 数据库设计:数据库采用关系型数据库,设计学生表和成绩表。

学生表包括学号、姓名、性别等字段;成绩表包括学号、课程号、成绩等字段。

3. 界面设计:系统采用简洁、直观的界面设计,方便用户操作。

学生和教师登录后可以进入各自的功能页面,实现成绩录入、查询和统计分析等功能。

4. 功能实现:根据功能需求,开发人员将分别实现学生信息管理模块、成绩录入与修改模块、成绩查询模块和成绩统计分析模块。

四、系统测试在开发完成后,需要对系统进行充分的测试,包括功能测试、性能测试和安全性测试等。

通过测试,确保系统功能完备、性能稳定,并能在实际使用中保证数据的安全和准确性。

学生成绩管理系统c语言课程设计报告

学生成绩管理系统c语言课程设计报告

《学生成绩管理系统》课程设计报告专业:信息科学与工程学院班级:电气信息类0916班姓名:曹坤指导教师:汤哲学号: 02课程设计报告一、课程设计题目学生成绩管理系统1、需要处理的基础数据学生基本信息:如班级、学号、姓名、性别、年龄等。

学生选修课程的基本信息:课程编号、课程名称、学分、考试成绩、平时成绩、综合成绩(考试成绩*+平时成绩*)等。

主菜单2、系统的基本功能数据的录入:如录入学生的基本信息,以及该学生选修课程的基本信息;数据的修改:如修改指定学号、或者指定姓名的学生信息,或者修改其选修课程信息;数据的插入:插入某个学生信息;数据的查询:如按学号查询、按姓名查询等;数据的删除:如删除指定学号、或者指定姓名的学生及其选修课程信息;平均成绩的计算:计算每个学生各门功课的平均成绩,并按平均成绩从高到低的次序输出学生信息;列出不及格学生清单(学号、姓名、不及格的课程和成绩)。

考虑用文件把数据保存起来(可选)。

3、链表struct stu /*定义学生基本信息结构体*/{int i; /*以输入的顺序来确定的学生序号*/char num[11];char classnum[5];char name[128];char sex[32];int age;float ave;struct stu *next;};int n=0; /*学生人数*/struct stu *head=0;struct stu1 /*定义学生选修课信息结构体*/{char lessonnum[11];char lessonname[256];float score;float testgrade;float commongrade;float grade;struct stu1 *next;};int m;struct stu1 *a[max_num] ;/*定义一个指针数组来记住课程链表地址*/ /*---------------------- 数据的录入程序-----------------------*/void create(void) /*建立学生基本信息链表*/{n=0;struct stu *p1,*p2;char ch,ch1;struct stu1 *create1(void);do{n=n+1;a[n]=0;system("cls");p1=(struct stu *)malloc(LEN);printf("\n学号:");scanf("%s",p1->num);printf("\n班级:");scanf("%s",p1->classnum);printf("\n姓名:");scanf("%s",p1->name) ;printf("\n性别:");scanf("%s",p1->sex);printf("\n年龄:");scanf("%d",&p1->age);if(n==1)head=p1;else p2->next=p1;p2=p1;printf("\n是否输入选修课信息(y/n)\n");fflush(stdin); /*清空输入缓冲区*/ch1=getchar();if(ch1=='y'||ch1=='Y')a[n]=create1(); /*根据序号来记忆课程链表地址*/ p1->i=n;system("cls");printf("\n是否继续输入另一学生信息(y/n)\n");fflush(stdin); /*清空输入缓冲区*/ch=getchar();}while(ch=='y'||ch=='Y');p2->next=0;}struct stu1 *create1(void) /*建立课程链表*/{m=0;struct stu1 *p1,*p2;char ch;struct stu1 *head=0;do{m=m+1;system("cls");p1=(struct stu1 *)malloc(LEM);printf("\n课程编号:");scanf("%s",p1->lessonnum);printf("\n课程名称:");scanf("%s",p1->lessonname);printf("\n学分:");scanf("%f",&p1->score);printf("\n考试成绩:");scanf("%f",&p1->testgrade);printf("\n平时成绩:");scanf("%f",&p1->commongrade);p1->grade=p1->testgrade*+p1->commongrade*;printf("\n综合成绩:%-6.1f",p1->grade);if(m==1)head=p1;else p2->next=p1;p2=p1;printf("\n是否继续输入另一课程信息(y/n)\n");fflush(stdin); /*清空输入缓冲区*/ch=getchar();}while(ch=='y'||ch=='Y');p2->next=0;return(head);}二、设计思路界面:界面的显示由循环语句和switch语句来控制完成。

c语言课程设计学生成绩管理系统报告

c语言课程设计学生成绩管理系统报告

c语言课程设计学生成绩管理系统报告一、教学目标本课程旨在通过C语言编程实现一个学生成绩管理系统,让学生掌握C语言的基本语法、数据结构、函数、文件操作等知识,培养学生编写程序解决实际问题的能力。

具体目标如下:1.知识目标:(1)掌握C语言的基本语法和编程技巧;(2)了解数据结构的基本概念,学会使用数组、链表等数据结构;(3)熟悉函数的定义和调用,掌握函数的参数传递和返回值;(4)掌握文件操作,了解文件读写的原理和方法。

2.技能目标:(1)能够独立编写C语言程序,解决实际问题;(2)具备良好的编程习惯,代码结构清晰、可读性强;(3)掌握调试和优化程序的方法,提高程序的运行效率;(4)学会使用版本控制系统,如Git,进行代码管理和协作开发。

3.情感态度价值观目标:(1)培养学生的编程兴趣,激发学习C语言的积极性;(2)培养学生团队协作精神,提高沟通与协作能力;(3)培养学生的问题解决能力,培养创新意识和持续学习的态度;(4)培养学生具有良好的职业道德,遵守编程规范,尊重他人代码。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、函数、文件操作等。

具体安排如下:1.C语言基本语法:介绍C语言的数据类型、运算符、表达式、控制语句等基本概念;2.数据结构:讲解数组、链表、栈和队列等数据结构的基本原理和应用;3.函数:讲解函数的定义、声明、调用,以及函数的参数传递和返回值;4.文件操作:介绍文件的概念、文件读写的方法和技巧。

三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法相结合,以激发学生的学习兴趣和主动性。

具体方法如下:1.讲授法:通过讲解C语言的基本语法、数据结构、函数和文件操作等知识,使学生掌握课程的基本概念和编程技巧;2.案例分析法:分析实际编程案例,让学生学会将理论知识应用于实际问题解决;3.实验法:安排上机实验,让学生动手编写程序,培养实际编程能力;4.小组讨论法:学生进行小组讨论,培养团队协作和沟通能力。

学生成绩管理系统c++课程设计报告

学生成绩管理系统c++课程设计报告

学生成绩管理系统c++课程设计报告一、引言学生成绩管理系统是一种在学校教学管理中广泛应用的软件系统,用于记录和管理学生的考试成绩、课程信息等。

本课程设计旨在利用C++语言设计并实现一个简单的学生成绩管理系统,以加深对C++编程语言的理解和应用。

二、系统设计1. 系统功能•添加学生信息:包括学生姓名、学号、班级等。

•删除学生信息:根据学号删除学生信息。

•查询学生成绩:输入学号查询学生的考试成绩。

•修改学生成绩:根据学号修改学生的考试成绩。

•显示所有学生信息:以表格形式展示所有学生的信息。

2. 类设计在设计学生成绩管理系统时,需要设计以下几个类:(1)学生类class Student {private:string name;int id;string className;float score;public:// 构造函数Student(string n, int i, string c, float s);// 获取学生信息void displayInfo();// 获取学生成绩float getScore();// 修改学生成绩void modifyScore(float s);};(2)学生管理类class StudentManager {private:vector<Student> students;public:// 添加学生信息void addStudent(Student s);// 删除学生信息void deleteStudent(int id);// 查询学生成绩void queryScore(int id);// 修改学生成绩void modifyScore(int id, float score);// 显示所有学生信息void displayAll();};三、系统实现1. 主函数主函数实现了与用户的基本交互,包括菜单的显示和选项的选择。

```cpp int main() { StudentManager sm; int choice; while (true) { // 显示菜单cout <<。

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

理工大学华夏学院课程设计报告书课程名称:数据结构课程设计题目:用C语言实现成绩统计程序的设计系名:信息工程系专业班级:计算机1121姓名:吴涛学号:10210412104指导教师:司晓梅2016年3 月20日理工大学华夏学院信息工程系课程设计任务书课程名称:数据结构课程设计指导教师:司晓梅班级名称:计算机1121 开课系、教研室:信息系计算机一、课程设计目的与任务《数据结构》课程设计是为训练学生的数据组织能力和提高程序设计能力而设置的增强实践能力的课程。

目的:学习数据结构课程,旨在使学生学会分析研究数据对象的特性,学会数据的组织方法,以便选择合适的数据的逻辑结构和存储结构以及相应操作,把现实世界中的问题转换为计算机部的表示和处理,这就是一个良好的程序设计技能训练的过程。

提高学生的程序设计能力、掌握基本知识、基本技能,提高算法设计质量与程序设计素质的培养就是本门课程的课程设计的目的。

任务:根据题目要求,完成算法设计与程序实现,并按规定写出课程设计报告。

二、课程设计的容与基本要求设计题目:用C语言实现成绩统计程序的设计〔问题描述〕给出n个学生的m门课程的考试成绩信息,每条信息由姓名、课程代号与分数组成,要求设计算法:(1)输入每个人的各门课程的成绩,计算每人的平均成绩;(2)按平均成绩的高低次序,打印出个人的名次,平均成绩相同的为同一名次;(3)按名次列出每个学生的姓名和各科成绩;〔基本要求〕学生的考试成绩必须通过键盘输入,且需对输出进行格式控制;〔算法提示〕可以用选择排序、冒泡排序等多种排序算法求解;具体要完成的任务是:A. 编制完成上述问题的C语言程序、进行程序调试并能得出正确的运行结果。

B. 写出规的课程设计报告书;三、课程设计步骤及时间进度和场地安排时间:1周地点:现代教育中心具体时间安排如下:第一天:布置题目,确定任务、查找相关资料第二天~第四天:功能分析,编写程序,调试程序、运行系统;第五天上午:撰写设计报告;第五天下午:程序验收、答辩。

四、课程设计考核及评分标准课程设计考核将综合考虑学生的系统设计方案、运行结果、课程设计报告书的质量、态度、考勤、答辩情况等各因素。

具体评分标准如下:(1)设计方案正确,具有可行性、创新性;30分(2)系统开发效果较好;20分(3)设计报告规、课程设计报告质量高;20分(4)课程设计答辩时,问题回答正确;20分(5)态度认真、刻苦钻研、遵守纪律;10分按上述五项分别记分后求和,总分按五级制记载最后成绩。

优秀(100~90分),良好(80~89分),中等(70~79分),及格(60~69分),不及格(0~59分)目录一、问题描述 (5)二、基本要求 (5)三、数据结构设计 (6)四、软件模块结构图 (7)五、程序设计思想 (9)六、程序流程图 (13)七、源程序 (18)八、调试分析 (32)九、测试数据 (33)十、用户使用手册 (35)一、问题描述〔问题描述〕给出n个学生的m门课程的考试成绩信息,每条信息由姓名、课程代号与分数组成,要求设计算法:(1)输入每个人的各门课程的成绩,计算每人的平均成绩;(2)按平均成绩的高低次序,打印出个人的名次,平均成绩相同的为同一名次;(3)按名次列出每个学生的姓名和各科成绩;〔基本要求〕学生的考试成绩必须通过键盘输入,且需对输出进行格式控制;〔算法提示〕可以用选择排序、冒泡排序等多种排序算法求解;二、基本要求〔基本要求〕学生的考试成绩必须通过键盘输入,且需对输出进行格式控制;〔算法提示〕可以用选择排序、冒泡排序等多种排序算法求解;三、数据结构的设计为了对学生信息进行统一操作,使用了结构体这一数据结构,学生的各项数据信息都能用结构体来表示,具体如下:struct stu{int num;/*学号,整型变量*/char name[50];/*姓名,长度为50的字符串数组*/char classes[50]/*班级名称,长度为50的字符串数组*/;double gsps_score;/*高等数学平时成绩,双精度实型变量*/double gsks_score;/*高等数学考试成绩,双精度实型变量*/ double gszh_score;/*高等数学综合成绩,双精度实型变量*/ double dlps_score;/*电路理论平时成绩,双精度实型变量*/ double dlks_score;/*电路理论考试成绩,双精度实型变量*/ double dlzh_score;/*电路理论综合成绩,双精度实型变量*/ double yyps_score;/*英语平时成绩,双精度实型变量*/ double yyks_score;/*英语考试成绩,双精度实型变量*/ double yyzh_score;/*英语综合成绩,双精度实型变量*/ double wlps_score;/*物理平时成绩,双精度实型变量*/ double wlks_score;/*物理考试成绩,双精度实型变量*/ double wlzh_score;/*物理综合成绩,双精度实型变量*/ double pj_score;/*平均成绩,双精度实型变量*/}student[1000];/*最多存储1000个学生数据*/该结构体数据定义为全局变量。

四、软件模块结构图模块功能描述:a.主菜单控制模块:主菜单直接控制七个模块(学生信息输出模块的两个子模块直接归主菜单控制),在各模块间起到纽带的作用。

在主菜单,可以通过选择进入其他模块,其他模块运行结束后也可回到主菜单继续选择。

b.学生信息录入模块:循环输入学生信息,建立临时的学生信息数据库。

c.学生信息查询模块:可选择按学号或者按姓名查询学生信息,如学生信息不存在则给出提示。

d.学生信息修改模块:查找到要修改的学生信息后,可对该学生的信息进行逐项修改。

e.学生信息删除模块:查找到要删除的学生信息后,可对其进行删除操作。

f.学生信息插入模块:在数据库末尾插入学生信息,逐项输入要插入的学生信息即可。

g.学生信息输出模块:输出优秀学生信息模块能够输出优秀学生(平均成绩大于等90分)的学号和姓名;输出不及格学生信息模块能够输出不及格学生的相关信息。

h.课程成绩统计模块:可以得到每门课程的平均成绩,还可以任意抽取一门课按单科成绩排定学生名次。

五、程序设计思想结构化的程序设计主要靠设计和调用各模块的函数来实现。

本程序设计了多个函数,每个函数自身能完成一个任务,有的函数和别的函数结合能完成更大的任务。

每一个模块功能的实现其实就是对函数的调用,本说明首先介绍本程序所涉及的子函数,再介绍主函数,最后介绍程序整体的实现过程。

1.void Inputfun()此函数较特别,它只进行输入操作,但由于此函数所包含的语句较长且需要被其他三个函数使用,为方便调用单写了一个函数。

此函数在源程序中放在最前,所以在此先作说明。

此函数可细分为11个小块,用来输入学生的基本数据。

每小块的结构基本相同即for(;;){基本语句+一个continue语句+基本语句+一个break语句}之所以用这个结构为了使输入的数据更加正规。

比如在分数的输入中就限定了只能输入0至100之间的数值,这也符合分数录入规则。

需要特别注意的是,这个函数完成了本程序中要做的两个计算。

其一是在每门课的考试试成绩输入后完成了对这门课的综合成绩的加权计算(考试成绩*0.7+平时成绩*0.3);其二是在最后一门课程的综合成绩算出后,计算了该学生四门课的平均成绩。

2.void Getinformation() 此函数用来录入学生信息。

它调用了void Inputfun()函数,其实它的主体部分就是void Inputfun()函数。

这函数还用了一个for循环以达到循环输入的目的。

3.int Searchbynum (int no)\int Searchbyname (char na[50]) 这是两个“兄弟函数”,是按学号查找和按姓名查询模块中的两个重要函数。

主要功能是根据用户输入的学号\姓名返回改学生所在的的数组下标。

利用for循环嵌套一个if语句实现,若找到学生该学生信息就返回数组下标,若找不到就返回-1。

4.void Seekinformation()\void Printinformation(int x) 这两个函数关系紧密,所以一起介绍。

void Seekinformation()函数利用for循环和if语句使查找中能够使用学号和姓名两种方式。

如源程序所示,在用if语句确定了查找方式后先后调用了int Searchbynum (int no)\int Searchbyname (char na[50])和void Printinformation(int x)两个函数,根据int Searchbynum (int no)\int Searchbyname (char na[50])返回的数组下标,运用void Printinformation(int x)输出所查询的容。

所以int Searchbynum (int no)\int Searchbyname (char na[50])\void Seekinformation()\void Printinformation(int x)这四个函数是查询模块的四个联系紧密的重要函数,在它们的共同作用下查询模块的功能得以实现。

5.void Modifyinformation()此函数用于修改学生信息。

基本原理就是用输入的新数据覆盖原来的老数据,达到修改的目的。

本函数还调用了查找模块的函数,使修改前能按学号或姓名找到要修改的学生信息。

修改过程中调用了Inputfun()函数6.void Deleteinformation() 此函数用于删除学生信息。

同样调用了查找模块的函数。

删除模块的关键语句是for (i=x;i<999;i++) student[i]=student[i+1];从要删除的那一个数据开始,用后一个数据覆盖它,一直循环到最后,相当于把开始的第一个数据删除了。

7.void Insertinformaton() 此函数用于插入学生数据。

由于没有用链表,所以选择插入在最后一个有效数据之后。

本函数运用if(student[j].num==0)这个语句找到了最后一个有效数据之后的数组下标j,然后将数据输入到student[j]中,便完成的了插入。

插入过程中,调用了Inputfun()函数。

8.void Showthefail() 此函数用于显示不及格学生的信息。

能够按要求输出不及格学生的学号、姓名、各科成绩以及平均成绩。

首先用这条if语句搜索该学生是否有成绩不及格,当四门课中至少有一门不及格时会输出该学生的相关信息。

相关文档
最新文档