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

合集下载

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

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

c语言学生成绩管理系统设计报告C语言是计算机领域最为重要的编程语言之一,用于许多应用系统的开发。

这里我将围绕C语言学生成绩管理系统的设计报告,分步骤阐述该系统的设计与实现。

第一步:需求分析在进行设计之前,必须先进行需求分析,明确系统所需的功能和性能。

针对学生成绩管理系统,我们需要实现以下功能:1. 学生信息管理:包括学生姓名,学号等信息。

2. 成绩信息管理:包括课程分数,总分、平均分等信息。

3. 数据录入和修改:教师可以输入学生的成绩信息,并对已有的信息进行修改。

4. 成绩查询功能:学生可以查询自己的成绩情况。

第二步:系统设计根据需求分析,我们可以对系统进行具体设计。

该系统主要分为以下模块:1. 学生信息管理模块:用于录入和管理学生的信息。

2. 成绩信息管理模块:用于录入和管理学生的成绩信息。

3. 数据操作模块:用于操作学生和成绩信息的增删改查。

4. 用户管理模块:用于管理系统用户,包括学生和教师。

第三步:系统实现在进行系统实现时,我们需要注意以下几个方面:1. 界面设计:尽量简洁明了,易于使用。

2. 数据库设计:需要对数据进行分类储存,便于操作。

3. 数据库连接:需要通过C语言的数据库API来连接数据库。

4. 代码编写:需要根据设计要求进行代码编写,并进行测试调整,确保系统的稳定性和性能。

第四步:系统测试完成系统的设计和实现后,就需要对系统进行测试。

测试主要包括以下几个方面:1. 单元测试:对系统各个功能模块进行单独测试,确保每个模块的运行效果。

2. 集成测试:对系统各个模块进行集成测试,确保各个模块之间的相互交互正常。

3. 用户测试:邀请用户来测试系统,听取他们的反馈和建议,进行调整和改进。

总结:本文围绕C语言学生成绩管理系统的设计报告,分步骤阐述了系统的设计、实现和测试。

这对于开发人员在进行类似系统开发时具有一定的指导意义。

不过,由于每个系统都具有其独特性和特点,因此具体实现还需根据具体情况而定。

C语言课程设计报告学生成绩管理系统(广工)

C语言课程设计报告学生成绩管理系统(广工)

一、课程设计题目:学生成绩管理二、需求分析给出n个学生的m门考试的成绩表,每个学生的信息由学号、姓名、性别以及各科成绩组成。

对学生的考试成绩进行有关统计:按总数高低次序,打印出名次表,分数相同的为同一名次;按名次打印出每个学生的学号、姓名、总分以及各科成绩,并打印统计表。

三、概要设计程序要有的功能:1。

输入记录2。

用指定格式显示全部记录3。

根据姓名查找记录4。

根据姓名删除记录5. 保存记录到文件6。

按序号显示记录7。

按姓名由小到大的顺序排序程序运行当中,通过选择对应的功能序号来实现所需功能。

对输入的数据要有事先的分析,如果用户输入的数据与实际不相符如输入成绩的数值为负,则程序应输出相应的提示:“您输入的数据有误,请核实!”。

再者就是,当再输入完相应的数据后,程序作出相应的提示,询问用户是否要保存数据。

在排列学生成绩时候,如果出现成绩相同的情况,程序自动作出处理。

最后,在程序可以正确运行的基础上,再增加一些功能,如在排列的时候,自动输出最高分与最低分。

与及格成绩作比较,输出及格人数等相关信息。

流程图:四、详细设计源程序:#include ”stdio。

h”#include "stdlib.h”#include "string。

h”int shoudsave=0;/* */struct student{char num[10];/*学号*/char name[20];char sex[4];int cgrade;int mgrade;int egrade;int totle;int ave;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\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%s\t%d\t%d\t%d\t %d\t %d\n",p—〉data。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

物理与电子信息学院C语言课程设计(科创实验)报告学生成绩管理系统专业年级学生姓名学号指导教师2021年 1 月 4 日目录1 设计任务 (1)2 需求分析 (1)2.1基础功能 (1)2.2扩展功能 (2)3系统设计概要 (2)3.1开发与运行环境 (2)3.2数据结构设计 (2)3.2总体设计 (3)4系统详细设计 (3)5 系统测试 (4)6 总结与反思 (8)参考文献 (8)附录 (9)1.设计任务设计一个系统,使其能够记录学生的学号、姓名、专业和5门课程的成绩。

该系统能够实现添加、删除、修改功能。

并且能够计算某学生的总分和平均成绩,能够按照总分排序输出。

2.需求分析学生成绩管理系统主要是提供成绩查询,方便管理的网上的信息查阅平台,学生可以通过该系统查阅与自己相关信息。

教师可以通过成绩管理系统查阅学生成绩信息。

系统管理员可以实现以上的所有功能,还有对学生的添加、删除、修改、教师的添加、删除、修改。

根据开发要求,学生成绩管理系统主要应用于教育系统,完成对日常的教学、教务、教师以及学生的计算机化的管理。

开发学生成绩管理系统可使学院教职员工减轻工作压力,比较系统地对教务、教学上的各项服务和信息进行管理,同时,可以减少劳动力的使用,加快查询速度、加强管理,以及国家各部门关于信息化的步伐,使各项管理更加规范化。

目前,学校工作繁杂、资料重多。

目前,管理信息系统已进入高校,但还未普及,而对于学生成绩管理来说,目前还没有一套完整的、统一的系统。

因此,开发一套适和大众的、兼容性好的系统是很有必要的。

2.1基础功能该系统所具有的基础功能有能够记录学生的学号、姓名、专业和5门课程的成绩。

该系统能够实现添加、删除、修改功能。

并且能够计算某学生的总分和平均成绩,能够按照总分排序输出。

2.2扩展功能该系统在原有的基础功能上还增加了查询不及格学生的记录、按照单科成绩排序、添加学生信息后可以写进文件。

3.系统概要设计3.1开发与运行环境3.1.1开发环境1.开发语言为C语言。

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

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

移通学院C语言程序设计报告书设计名称:学生成绩管理系统专业:指导老师:班级:姓名:学号:座号:时间一、实验目的1.在编辑应用程序过程中,逐步加深对C语言编程的理解;2.加强实践的能力,动手能力,同时进一步对所学的知识进行巩固;3.培养初步编程的能力,为以后的学习奠定基础;二、实验内容运用所学的C语言知识编辑一个应用程序:学习成绩管理系统三.系统软件环境:本程序主要运行在: Visual C++ 6.0Turbo C/C++ 3.0四.课程设计题目:学生成绩管理系统程序说明:有N个学生,每个学生的数据包含学号不重复、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统,使之能提供以下功能:1主菜单2各菜单项功能①成绩录入:输入学生的学号、姓名及三门课的成绩;②成绩查询:按学号查询学生记录;③成绩统计:计算学生的平均分;根据学生的平均分高低,对学生的数据进行排序后输出;④退出系统:退出整个系统即主菜单;五.数据结构设计描述:↓int num; /定义学号,变量为整型/char name; /定义姓名,变量为字符型/int score; /定义课程的成绩,变量为整型/float average; /定义平均分,变量为浮点型/七.系统各函数的功能,、相互调用关系1.函数实现功能说明:1menu函数是定义一个菜单函数,其功能在于输出菜单界面供使用者选择;2input函数是定义用于输入学生信息;3select 函数是定义用于查询学生信息;包括学号、姓名及各科成绩;4statistics 函数计算学生的平均分;根据学生的平均分高低,对学生的数据进行排序输出;2.相互调用关系:Main函数调用menu函数;Menu 函数可以调用input 函数、select函数和statistics 函数八.心得体会C语言是一种较为基础和普遍的编程语言,应用相当广泛,这次课程设计的要求与C语言的广泛应用相比较还有很大的差距;我们对于C语言的理解和使用还处在一个初级的阶段,我们要想掌握它,要学习的还很多,同时要懂得创新,许多的编程方法都是人们一步一步总结出来的,我想我们也要努力拓展自己的思维,努力去寻求新的方法,以创造出更为完善的应用程序; 九.程序:include <stdio.h>include <stdlib.h>include <conio.h>define N 3 /学生人数/define M 3 /课程门数/struct student{int num; /学号/char name20; /姓名/int score3; /三门课成绩/float average;}stuN; /学生数/void input; /查询/void select; /统计/void menu;void input{int i,j;printf"\t\t①成绩录入\n\n";fori=0;i<N;i++{printf"请输入学号:";scanf"%d",&stui.num;printf"请输入姓名:";scanf"%s",&;forj=0;j<M;j++{printf"第%d门成绩的分数:",j+1;scanf"%d",&stui.scorej;}printf"\n\n";}printf"\n\n";printf"输入完毕按任意键返回主菜单";}/2.查询/void selectint no{int i;printf"学生%d号: \n",no; printf"学号: %d\n",stuno-1.num; printf"姓名: %s\n",;for i=0;i<M;i++{printf"第%d门课程的成绩为: ",i+1; printf"%d\n",stuno-1.scorei;}printf"\n按任意键返回主菜单";getch;}/3.统计/void statistics{float temp=0;int i=0;/学生成绩平均分/temp=0;printf"\t\t③成绩统计\n\n";forj=0;j<N;j++{fori=0;i<M;i++{temp=temp+stuj.scorei;}stuj.average=temp/N;printf"\n学生%s的成绩平均成绩为:",;printf"%0.2f分",stuj.average;temp=0;}/排序/for j=0;j<N;j++fori=0;i<N-j-1;i++ifstui.average<stui+1.average{ temp=stui.average;stui.average=stui+1.average;stui+1.average=temp;}printf"\n\n学生平均成绩前三名:";fori=0;i<3;i++{printf"\n第%d名:%0.2f分",i+1,stui.average;}printf"\n\n按任意键返回主菜单";getch;}void menu{ int num=0;int n=0;printf"\n\t\t\t学生成绩管理系统\n\n";printf"\n\t\t\t①成绩录入\n\t\t\t②成绩查询\n\t\t\t③成绩统计\n\t\t\t④退出系统\n";printf"\t\t\tchoose:";scanf"%d",&num;switchnum{case 1:system"cls";input;break;case 2:system"cls";printf"\t\t②成绩查询\n\n"; printf"请输入要查询的学生号1~3:";scanf"%d",&n;selectn;break;case 3:system"cls";statistics;break;case 4:exit0;default:;}}void main{while1{system"cls"; /清屏/menu;}}。

C语言课程设计—学生成绩管理系统

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语言课程设计报告(一)学生成绩管理系统C语言课程设计报告摘要本文介绍了一款学生成绩管理系统的C语言课程设计报告。

该系统可实现学生信息的录入、成绩的计算和管理等功能。

本报告详细介绍了系统的需求分析、概要设计和实现细节等内容。

系统需求分析功能需求•系统管理员可以进行学生信息的录入、删除和修改操作。

•系统可以根据已有的学生成绩进行排名,并输出排名列表。

•系统可以查询某个学生的成绩和排名。

•系统可支持标准输出数据、文件存储数据两种方式,并提供相应的查询功能。

性能需求•系统应该能够在1秒内响应用户的操作请求。

•系统的数据存储应该具有较高的可靠性和安全性。

界面需求•系统的界面应该易于操作和友好。

•界面的色彩搭配应该符合用户的视觉需求。

概要设计总体设计•系统分为两个主要模块:学生信息管理模块和成绩查询排名模块。

•学生信息管理模块包括对学生信息的增删改查等操作。

•成绩查询排名模块可以查询学生的成绩并输出排名列表。

•数据存储采用文件存储方式,具有较高的可靠性和安全性。

数据结构设计•采用结构体的方式存储学生信息,包括学生ID、姓名、性别、年龄和成绩等信息。

struct Student{int id; //学生IDchar name[20]; //学生姓名char sex[5]; //学生性别int age; //学生年龄float score; //学生成绩};约束条件•系统仅支持标准C语言的编写。

实现细节数据存储•学生信息存储在文件中,每个学生的信息存储在一行中。

•系统启动时初始化学生信息的文件。

•系统在每次修改或录入学生信息后自动保存信息到文件中。

功能实现•学生信息管理模块实现学生信息的增删改查等操作,并将操作结果输出到文件和屏幕上。

•成绩查询排名模块实现了对某个学生的单独查询和对所有学生的排名查询,并将查询结果输出到文件和屏幕上。

总结本文针对学生成绩管理系统的C语言课程设计报告进行了介绍。

从需求分析、概要设计到实现细节,本文详细地介绍了该系统的开发过程。

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

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

c语言成绩管理系统课程设计报告一、引言:成绩管理系统是一种可以有效管理学生课程成绩的工具。

通过该系统,教师可以方便地录入、修改和查询学生的成绩,而学生和家长也可以方便地查看自己的成绩情况。

本次课程设计旨在设计一个基于C语言的成绩管理系统,实现对学生课程成绩的录入、修改和查询等功能。

二、系统设计:1. 数据结构设计:为了实现成绩管理系统的各项功能,需要设计相关的数据结构。

对于学生信息,可以设计一个结构体,包含学号、姓名、性别等字段;对于课程成绩,可以设计一个结构体,包含学号、课程名称、成绩等字段。

2. 功能设计:(1) 学生信息录入功能: 教师可以通过输入学生的学号、姓名、性别等信息,将学生信息录入系统中。

(2) 成绩录入功能: 教师可以通过输入学生的学号和课程名称,将学生的课程成绩录入系统中。

(3) 成绩修改功能: 教师可以根据学生的学号和课程名称,修改学生的课程成绩。

(4) 成绩查询功能: 学生和家长可以通过输入学生的学号,查询学生的课程成绩。

三、系统实现:1. 用户界面设计:使用C语言中的控制台窗口,通过菜单的方式显示系统功能选项,用户可以通过键盘输入选择对应的功能。

2. 数据存储设计:使用文件存储学生信息和课程成绩。

通过读取和写入文件的方式,实现数据的持久化存储。

3. 功能实现:(1) 学生信息录入功能的实现: 用户输入学生的学号、姓名、性别等信息后,将学生信息写入文件。

(2) 成绩录入功能的实现: 用户输入学生的学号、课程名称和成绩后,将成绩信息写入文件。

(3) 成绩修改功能的实现: 用户输入学生的学号、课程名称和新的成绩后,根据学号和课程名称找到对应的成绩信息并修改。

(4) 成绩查询功能的实现: 用户输入学生的学号后,根据学号在文件中查找对应的成绩信息并显示在控制台窗口。

四、系统测试:对于每一个功能,设计相应的测试用例,验证系统的正确性和稳定性。

例如,录入一个学生信息后,查询该学生的信息是否正确;录入一门课程成绩后,修改该成绩并查询是否修改成功等。

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

C语言课程设计报告:学生成绩管理系统系统需求一、当前学生信息:通过结构体struct student 来保存学生的姓名,学号,性别,语文,数学,英语和计算机等等相关信息,并且通过cin函数来进行给当前学生输入初始信息.二、学生成绩查询: 输入一个学号, 在文件中查找此学生, 若找到则输出此学生的全部信息和成绩; 若找不到则输出查找失败的信息. 同时也可以全部把各科的平均成绩,最高和最低分输出。

三、新生插入:通过给该生的学号来和原班上的学生的学号比较大小,若大就在后,若小则靠前排,将此生的信息保存下来。

四、输出全部学生信息和全部学生成绩。

五、退出系统.六、附加说明:系统将来完善的功能有:可以通过性别来模糊查询,也可以通过姓名的姓来先进行模糊查询,以便后面精确查找。

总体设计一、仔细阅读系统要求,首先将此系统化分为如下模块(即如下函数)1、输入初始的学生信息:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu *p1)来实现此操作。

2、查询模块:可用stu *lookdata(stu *p1) 来实现。

找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。

3、插入模块:可用insert( )函数来实现。

其中通过学号的大小来比较的,并且以此来排序。

4、输出学生的信息以及成绩:通过学生的姓名来查看学生的语文、数学、英语和计算机等相关成绩,同时也可以分别通过caverage() 、maverage() 、eaverage() 和comaverage() 来输出语文、数学、英语和计算机等成绩的平均分数、最高和最低分数。

5、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。

二、系统主模块结构图:详细设计一、界面设计此系统界面采用图形和数字化菜单设计。

主界面设计如下:学生成绩管理系统请选择相应的数字执行相应的功能:1:是否输入其他数据2:查看数据3:插入数据4:查找数据5:更新数据6:保留数据7:显示或打印数据8:语文成绩状况9:数学成绩状况10:英语成绩状况11:计算机成绩状况12:?13:退出系统二、数据结构设计:程序设计中用到的结构体类型:学生信息结构体类型:typedef struct student{char name[MAX];int num[MAX];char sex[MAX];int chinese;int mathematic;int english;int computer;struct student *next;}程序代码://原始密码是123456#include"stdio.h"#include"stddef.h"#include"stddef.h"#include"string.h"#define MAX 10typedef struct student{ /*定义结构体*/char name[MAX]; /*姓名*/int num[MAX]; /* 学号*/char sex[MAX]; /*性别*/int chinese; /*语文*/int mathematic; /* 数学*/int english; /*英语*/int computer; /*计算机*/struct student *next; /*结构体指针*/}stu;stu *head; /*头指针*/void print() /*显示或打印函数*/ {system("cls");printf("\t\t\tScore Manage System\n"); /*成绩管理系统*/printf("<1>Enter Record\t"); /*输入数据*/printf("<2>Display\t"); /*显示*/printf("<3>Insert\t"); /*插入数据*/printf("<4>Quest\t"); /*访问数据*/printf("<5>Update\t"); /*以前数据*/printf("<6>Save\t"); /*保留数据*/printf("<7>Fresh\t"); /*更新数据*/printf("<8>Chinese Average\t"); /*语文平均成绩*/printf("<9>Math Average\t"); /*数学平均成绩*/printf("<10>English Average\t"); /*英语平均成绩*/printf("<11>Computer Average\t"); /*计算机平均成绩*/printf("<12>Quit\t\n"); /*退出*/}void cin(stu *p1) /*输入相关数据的函数*/ { printf("Enter name:\n");scanf("%s",&p1->name);printf("Enter num:\n");scanf("%d",&p1->num);printf("Enter sex:\n");scanf("%s",&p1->sex);printf("Enter score:\n");printf("Enter chinese:\n");scanf("%d",&p1->chinese);printf("Enter math:\n");scanf("%d",&p1->mathematic);printf("Enter English:\n");scanf("%d",&p1->english);printf("Enter Computer:\n");scanf("%d",&p1->computer);}stu *cindata() /*其他数据是否继续输入的函数*/ { stu *p1,*p2;int i=1;char ch;p1=(stu *)malloc(sizeof(stu));head=p1;while(i){cin(p1);printf("Do you Want to Continue?yes or no"); /*是否继续输入数据*/ch=getchar();ch=getchar();if(ch=='n'||ch=='N'){ i=0;p1->next=NULL;}else{ p2=p1;p1=(stu *)malloc(sizeof(stu));p2->next=p1;}}return(p1->next);}stu *lookdata(stu *p1) /*查看数据的函数*/{while(p1!=NULL){ printf("Num:%d\t",p1->num);printf("Name:%s\t",p1->name);printf("Sex:%s\t",p1->sex);printf("\n");printf("Chinese:%d\t",p1->chinese);printf("Math:%d\t",p1->mathematic);printf("English:%d\t",p1->english);printf("\n");p1=p1->next;}return p1;}void insert() /*通过比较学号来插入数据的函数*/ { stu *p1,*p3,*p2;char ch;p1=head;p3=(stu *)malloc(sizeof(stu));p3->next=NULL;if(head==NULL){ head=p3; return;}cin(p3);while(p1!=NULL&&(p1->num<p3->num)) /*通过学号的比较来插入*/{ p2=p1;p1=p1->next;}if(p2==head) {p3->next=head; head=p3; return;}p3->next=p1;p2->next=p3;}find(stu *p2) /*通过姓名查找查看数据的函数*/ { char name[20];int b=0;printf("Enter the name of the student you want to find:"); /*通过姓名查看*/scanf("%s",name);while(p2!=NULL){if(strcmp(name,p2->name)==0){printf("The data you want has be found\n");printf(" Name:%s\t",p2->name);printf("Num:%d\t",p2->num);printf("sex%s\t",p2->sex);printf("\n");printf("Chinese:%d\t",p2->chinese);printf("Math:%d\t",p2->mathematic);printf("English:%d\t",p2->english);printf("\n");b=1;}else if(b==0)printf("sorry not find data!");p2=p2->next;}if(b==1){print();printf("Find one\n");}else{print();printf("Not find\n");}}void caverage() /*求各学生语文平均分、最高和最低分成绩的函数*/{ stu *p1;int i;float max=0.0,min=200.0;float sum=0.0,aver=0;p1=head;if(p1==NULL)printf("not data!");else{for(i=0;p1!=NULL;i++,p1=p1->next)sum+=p1->chinese;aver=sum/i;p1=head;for(i=0;p1!=NULL;i++,p1=p1->next){if(max<p1->chinese)max=p1->chinese;}p1=head;for(i=0;p1!=NULL;i++,p1=p1->next)if(min>p1->chinese)min=p1->chinese;}printf("Chinese Average:%f",aver);printf("Chinese Max:%f",max);printf("Chinese Min:%f",min);}void maverage() /*求各学生数学平均分、最高和最低分成绩的函数*/{ stu *p1;int i;float max=0.0,min=200.0;float sum=0.0,aver=0;p1=head;if(p1==NULL)printf("not data!");else{for(i=0;p1!=NULL;i++,p1=p1->next)sum+=p1->mathematic;aver=sum/i;p1=head;for(i=0;p1!=NULL;i++,p1=p1->next){if(max<p1->mathematic)max=p1->mathematic;}p1=head;for(i=0;p1!=NULL;i++,p1=p1->next)if(min>p1->mathematic)min=p1->mathematic;}printf("Mathe Average:%f",aver);printf("Mathe Max:%f",max);printf("Mathe Min:%f",min);}void eaverage() /*求各学生英语平均分、最高和最低分成绩的函数*/ { stu *p1;int i;float max=0.0,min=200.0;float sum=0.0,aver=0;p1=head;if(p1==NULL)printf("not data!");else{for(i=0;p1!=NULL;i++,p1=p1->next)sum+=p1->english;aver=sum/i;p1=head;for(i=0;p1!=NULL;i++,p1=p1->next){if(max<p1->english)max=p1->english;}p1=head;for(i=0;p1!=NULL;i++,p1=p1->next)if(min>p1->english)min=p1->english;}printf("English Average:%f",aver);printf("English Max:%f",max);printf("English Min:%f",min);}void comaverage() /*求各学生计算机平均分、最高和最低分成绩的函数*/ { stu *p1;int i;float max=0.0,min=200.0;float sum=0.0,aver=0;p1=head;if(p1==NULL)printf("not data!");else{for(i=0;p1!=NULL;i++,p1=p1->next)sum+=p1->computer;aver=sum/i;p1=head;for(i=0;p1!=NULL;i++,p1=p1->next){if(max<p1->computer)max=p1->computer;}p1=head;for(i=0;p1!=NULL;i++,p1=p1->next)if(min>p1->computer)min=p1->computer;}printf("Computer Average:%f",aver);printf("Computer Max:%f",max);printf("Computer Min:%f",min);}update(stu *p2) /*通过姓名查找来更新数据*/{char name[10]; /*p2为指向结构体struct student的指针*/ int b=0;printf("Enter The Name"); /*输入姓名*/scanf("%s",name);while(p2!=NULL){if(strcmp(name,p2->name)==0){printf("Find you data\n");scanf("Name:%s",p2->name);scanf("Num:%s",p2->num);scanf("Sex:%s",p2->sex);scanf("Chinese:%d",p2->chinese);scanf("Math:%d",p2->mathematic);scanf("english:%d",p2->english);scanf("Computer:%d",p2->computer);printf("Success!");b=1;}else if(b==0)printf("Sorry not Find data!");p2=p2->next;}if(b==0){print();printf("Sorry not Find data!");}else{print();printf("Finish!");}}save(stu *p2) /*保留数据函数*/{FILE *fp;char file[10];printf("Enter file name"); /*输入文件名*/scanf("%s",file);fp=fopen(file,"w");while(p2!=NULL){fprintf(fp,"%s",p2->name);fprintf(fp,"%s",p2->num);fprintf(fp,"%s",p2->sex);fprintf(fp,"%d",p2->chinese);fprintf(fp,"%d",p2->mathematic);fprintf(fp,"%d",p2->english);fprintf(fp,"%d",p2->computer);p2=p2->next;}fclose(fp);}char password[7]="123456"; /*定义初始密码*/void main() /*主函数*/{ int choice;stu *p2;char s[8];int flag=0,i; /*标志项*/int n=3;do{ printf("Enter password:\n");scanf("%s",s);if(!strcmp(s,password)) /*进行密码匹配验证*/{ printf("PASS\n\n\n");flag=1;break;}else{printf("Error Enter again:\n");n--;}}while(n>0);if(!flag){printf("you have Enter 3 times!"); /*输入密码超过了3次!!*/exit(0); /*自动退出*/}/*密码验证成功后进入的界面*/printf("~~~~~~~~~~\t\t\t~~~~~~~~~~~~\n"); /*操作界面*/printf("\t\tWelcom to the Mis\n");printf("Author:-----\tClass:------\tNum:------\n"); /*作者,班级和号码*/printf("Adress:HG\n"); /*地址*/printf("%%%%%%%%%%%%%%%%%%%%%%%%%%%\n");printf("\t\tEnter OP:\n");printf("\n\n\n\n");printf("==============\t\t==============\n");printf("==============\t\t==============\n");printf("\t\tEnter the MIS yes or no\n"); /*问进入系统与否*/scanf("%d",&choice);if(choice=='n'||choice=='N')exit(1);print();while(1){printf("Enter choice:");scanf("%d",&i);if(i<1||i>13){printf("Enter num from 1 to 13:\n"); /*再从1-13中进行选择*/exit(1);}switch(i){ case 1:p2=cindata(); /*其他数据是否继续输入的函数*/break;case 2:p2=lookdata(head); /*查看数据的函数*/break;case 3:insert(); /*通过比较学号来插入数据的函数*/break;case 4:find(head); /*通过姓名查找查看数据的函数*/break;case 5:update(head); /*通过姓名查找来更新数据*/break;case 6:save(head); /*保留数据函数*/break;case 7:print(); /*显示或打印函数*/break;case 8:caverage(); /*求各学生语文平均分、最高和最低分成绩的函数*/break;case 9:maverage(); /*求各学生数学平均分、最高和最低分成绩的函数*/break;case 10:eaverage(); /*求各学生英语平均分、最高和最低分成绩的函数*/break;case 11:comaverage(); /*求各学生计算机平均分、最高和最低分成绩的函数*/break;case 12:; /*空操作*/case 13:exit(1); /*退出*/break;}scanf("%d",&i);}}程序中出现的问题及解决方法问题一、学生初始信息模块:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu *p1)来实现此操作。

相关文档
最新文档