查找学生成绩与学号编程

合集下载

ActionScript编程 综合实例:学生成绩查询系统

ActionScript编程  综合实例:学生成绩查询系统

ActionScript编程综合实例:学生成绩查询系统在ActionScript中,数组通常是用于存储数据,这些数据可以是简单数据,也可以是复杂数据。

如果再与条件语句相结合使用,则可以实现对指定数据的检索。

根据这一特性,本例将制作一个学生成绩查询系统,如图5-2所示。

图5-2 学生成绩查询系统制作过程:(1)新建550×400像素的空白文档,在舞台中绘制一个蓝色(#76C5EF)渐变矩形,该矩形用来作为背景图形,如图5-3所示。

图5-3 绘制背景图形(2)在舞台的顶部输入标题文字,然后在其下方绘制一个绿色(#99CC99)的锯齿线作为分隔线,如图5-4所示。

图5-4 绘制分隔线(3)打开【组件】面板,将Button、ComboBox、TextArea和TextInput组件拖入到【库】面板中,以便通过ActionScript代码使用,如图5-5所示。

图5-5 拖入相关组件由于ComboBox组件中包含有List组件,因此将ComboBox组件拖入到【库】时,List组件也同时被拖入。

(4)在相同文件夹中新建名称为search的ActionScript文件,并在该文件中使用import 语句导入所需的类,以及创建包、search类和search()主函数,如下所示。

package {import flash.display.Sprite;import fl.controls.TextArea;import flash.text.TextFormat;import fl.controls.TextInput;import boBox;import fl.controls.Button;import flash.events.MouseEvent;//导入所需的类public class search extends Sprite {public function search() {//主函数体}}}(5)在search类中创建名称为score的函数,该函数创建一个数组,并将学生的相关信息存储到该数组中,如下所示。

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

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

*题目七:学生成绩管理系统设计学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)等。

主要功能:(1)能按学期、按班级完成对学生成绩的录入、修改(2)能按班级统计学生的成绩,求学生的总分及平均分(3)能查询学生成绩,不及格科目及学生名单(4)能按班级输出学生的成绩单要求:使用二进制文件方式存储数据,系统以菜单方式工作源代码:#include<stdio.h>#include<ctype.h>#include<stdlib.h>#include<string.h>struct Student{int cls;char nam[10];char num[10];int chinese;int english;int computer;int math;}stud1[100],stud2[100];{char a;while(a>'7'||a<'0'){system("cls");printf(" 欢迎使用学生成绩管理系统\n");printf(" 制作人:章建\n");printf("********************** 学生成绩管理系统************************\n");printf(" 1.输入学生成绩\n");printf(" 2.输出学生成绩\n");printf(" 3.查找并显示学生成绩\n");printf(" 4.按姓名查找,修改学生资料\n");printf(" 5.显示所有学生名单\n");printf(" 6.查找并删除学生信息\n");printf(" 7.从文件读取数据\n");printf(" 0.储存学生资料并退出系统\n");printf("********************************************************************* *\n");printf("请选择(0-7)\n");a=getchar();}return(a-'0');}/******************************************************************************int Input(Student stud[],int n) //输入数据(第一学期)。

c++学生成绩查询代码

c++学生成绩查询代码
#include <iostream.h>
#include <string.h>
#include <conio.h>
#include <iostream>
#include <ctime>
#define max 100
struct stu //学生资料结构体
{
int m=0;
while(m<=count)
if(num==data[m++].num)
break;
if(m>count)
return 0;
else
cout << "学生资料未删除" << endl;
getch();
}
}
void student::taxis()
{
int x,y,array[max];
int change;
for(x=0;x<count;x++)
};
void student::input(char *ch1,int num,char *ch2,float x,float y,float z)
{
strcpy(data[count].name,ch1);
data[count].num=num;
strcpy(data[count].adress,ch2);
cin >> ch2 >> x >> y >> z;
st.input(ch1,num,ch2,x,y,z);
}break;

C语言项目案例分析

C语言项目案例分析

C语言项目案例分析C语言项目案例:学生成绩管理系统概述:学生成绩管理系统是一个用于管理学生信息和成绩的软件系统。

该系统可以实现添加、删除、修改学生信息和成绩的功能,并且可以按照学生的学号或者姓名进行查找和排序。

功能要求:1. 学生信息管理:可以添加、删除、修改学生的基本信息,包括学号、姓名、性别、年龄等。

2. 成绩管理:可以添加、删除、修改学生的各科成绩,包括语文、数学、英语等。

3. 查找功能:可以根据学生的学号或者姓名查找学生信息和成绩。

4. 排序功能:可以按照学号、总成绩等排序学生信息和成绩。

设计思路:1. 数据结构设计:采用结构体数组来存储学生信息和成绩,结构体中包含学号、姓名、性别、年龄和各科成绩等字段。

2. 功能模块划分:将学生信息管理、成绩管理、查找功能和排序功能分别实现为不同的函数模块,通过调用这些函数来完成相应的功能。

3. 用户界面设计:通过命令行界面来实现用户与系统的交互,可以通过输入数字来选择相应的功能菜单,并根据用户的输入来执行相应的功能。

代码实现:以下是一个简单的学生成绩管理系统的代码示例:#include <stdio.h>#include <string.h>// 学生结构体struct student {int id;char name[20];int age;float chinese;float math;float english;};// 添加学生信息void addStudent(struct student* stu) {printf("请输入学生的学号:");scanf("%d", &stu->id);printf("请输入学生的姓名:");scanf("%s", stu->name);printf("请输入学生的年龄:");scanf("%d", &stu->age);printf("请输入学生的语文成绩:");scanf("%f", &stu->chinese);printf("请输入学生的数学成绩:");scanf("%f", &stu->math);printf("请输入学生的英语成绩:");scanf("%f", &stu->english);}// 删除学生信息void deleteStudent(struct student* stu) { stu->id = 0;strcpy(stu->name, "");stu->age = 0;stu->chinese = 0.0;stu->math = 0.0;stu->english = 0.0;}// 修改学生信息void modifyStudent(struct student* stu) { printf("请输入学生的学号:");scanf("%d", &stu->id);printf("请输入学生的姓名:");scanf("%s", stu->name);printf("请输入学生的年龄:");scanf("%d", &stu->age);printf("请输入学生的语文成绩:"); scanf("%f", &stu->chinese);printf("请输入学生的数学成绩:"); scanf("%f", &stu->math);printf("请输入学生的英语成绩:"); scanf("%f", &stu->english);}// 查找学生信息void findStudent(struct student* stu, int id) {if (stu->id == id) {printf("学号:%d,姓名:%s,年龄:%d,语文成绩:%.1f,数学成绩:%.1f,英语成绩:%.1f\n", stu->id, stu->name, stu->age, stu->chinese, stu->math, stu->english);}}// 排序学生信息void sortStudents(struct student* stu, int count) {// 冒泡排序for (int i = 0; i < count - 1; i++) {for (int j = 0; j < count - i - 1; j++) {if (stu[j].id > stu[j + 1].id) {struct student temp = stu[j];stu[j] = stu[j + 1];stu[j + 1] = temp;}}}}int main() {int choice;int count = 0;struct student students[100];do {printf("学生成绩管理系统\n");printf("1. 添加学生信息\n");printf("2. 删除学生信息\n");printf("3. 修改学生信息\n");printf("4. 查找学生信息\n");printf("5. 排序学生信息\n");printf("0. 退出\n");printf("请选择操作:");scanf("%d", &choice);switch (choice) {case 1:addStudent(&students[count]);count++;break;case 2:deleteStudent(&students[count - 1]);count--;break;case 3:modifyStudent(&students[count - 1]); break;case 4: {int id;printf("请输入要查找的学生学号:"); scanf("%d", &id);for (int i = 0; i < count; i++) {findStudent(&students[i], id);}break;}case 5:sortStudents(students, count);break;case 0:break;default:printf("请输入正确的操作!\n");break;}} while (choice != 0);return 0;}总结:通过以上的案例分析,可以看出,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语言课程设计 200行代码 -学生成绩查询系统.doc

C语言课程设计 200行代码 -学生成绩查询系统.doc

功能:查询修改统计成绩。

#include <stdio.h>struct student /*成绩表的结构声明*/{int num;char name[15];char sex;float WuLi;float ShuXue;float YingYu;float KuaiJi;float totle;};/*定义6个学生的信息:*/#define STU_NUMBER 6 /*宏定义学生数为6*/struct student Stu[STU_NUMBER]={{101,"yuchen", 'F', 98,85,96,89,0},{102,"xiaotong", 'F', 99,91,90,93,0},{103,"likanglong",'M', 76,83,74,82,0},{104,"yinger", 'F', 88,76,89,77,0},{105,"fengjiao", 'F', 97,100,94,96,0},{106,"sunyao", 'M', 87,89,66,84,0} };int SelectMainMenu(); /*显示并选择主菜单。

返回:被选择的菜单项*//*所有的函数声明:*/void Show(); /*成绩查询模块*/void Modify(); /*成绩修改模块*/void Stat(); /*成绩统计模块*/void StatAve(float *AveWuLi,float *AveShuXue,float *AveYingYu,float *AveKuaiJi);/*统计平均分*/int FindStudent(int num); /*根据学号查找某一学生*/void SetAllTotle(); /*计算所有学生总分*/void SetTotle(int No); /*计算第No个学生总分*/void ShowAllStudent(); /*显示所有成绩*/void ShowTitle(); /*显示表头信息*/void ShowStudent(int No); /*显示第No个的学生信息*/void main(){int isend=0,password=0; /*程序结束标志量,0表示不结束,1表示结束*/SetAllTotle(); /*计算所有学生总分*/while(password!=666){printf("qing shu ru mi ma:\n");scanf("%d",&password);}{switch(SelectMainMenu()) /*显示并选择主菜单*/{case 1: /*成绩查询*/Show(); /*调用成绩查询函数*/break;case 2: /*成绩修改*/Modify(); /*调用成绩修改函数*/break;case 3: /*成绩统计*/Stat(); /*调用成绩统计函数*/break;case 4: /*退出系统*/printf("\nxie xie nin de shi yong,zai jian!\n\n");isend = 1; /*设置程序结束标志*/break;}if(isend) break; /*程序结束*/}}int SelectMainMenu() /*显示并选择主菜单。

学生成绩单管理组织系统源代码

学生成绩单管理组织系统源代码

学生成绩单管理系统利用面向对象编程方法设计一个学生成绩单管理系统,要求实现以下功能:●录入(添加)学生信息:学号、姓名、平时成绩和考试成绩,系统自动计算总评成绩(平时成绩占20%,考试成绩占80%)。

可以一次录入多名学生的信息。

●查询学生成绩:输入要查询的学生的学号,查询该学生的信息并显示。

●显示学生成绩单:按学号顺序显示学生成绩单。

●删除学生信息:输入要删除的学生的学号,得到用户确认后,删除该学生的信息。

●修改学生信息:输入要修改的学生的学号,显示该学生的原有信息,用户输入修改后的信息。

●对成绩进行统计分析:可以对总成绩进行统计分析,分别统计出各个成绩段的人数和比例, 本课程班级平均成绩等。

实验步骤如下:1. 创建项目创建一个Win32 Console Application,项目名为“StudentScore”。

2. 定义学生类CStudent(1)新建一个“C/C++ Header File”,文件名为“student.h”,代码如下:// student.h 学生类的定义class CStudent {public:CStudent( char * id="", char *na="",int us=0, int ts=0 ); // 构造函数CStudent( const CStudent &s ); // 拷贝构造函数~CStudent();char* GetID(); // 获取学生的学号double GetTotalScore(); // 获取总评成绩static void TableHead( ); // 输出表头void Display( ); // 显示学生信息private:c har ID[5]; // 学号c har name[10]; // 姓名i nt UsualScore; // 平时成绩i nt TestScore; // 考试成绩d ouble TotalScore; // 总评成绩v oid CalcTotalScore(); // 计算总评成绩};(2)新建一个“C++ Source File”,文件名为“student.cpp”,代码如下:// student.cpp 学生类的成员函数实现#include <iomanip.h>#include <string.h>#include "student.h"CStudent::CStudent( char * id, char *na,int us, int ts ) // 构造函数{strcpy(ID,id);strcpy(name,na);UsualScore=us;TestScore=ts;CalcTotalScore();}CStudent::CStudent( const CStudent &s ) // 拷贝构造函数{strcpy( ID, s.ID );strcpy( name, );UsualScore=ualScore;TestScore=s.TestScore;TotalScore=s.T otalScore;}CStudent::~CStudent(){ }char* CStudent::GetID() // 取得学生的学号{ return ID; }double CStudent::GetTotalScore() // 获取总成绩{ return TotalScore;}void CStudent::TableHead( ) // 输出学生信息表头{cout<<setw(4)<<"学号"<<setw(10)<<"姓名"<<setw(10)<<"平时成绩"<<setw(10)<<"考试成绩"<<setw(12)<<"总成绩\n";}void CStudent::Display( ) // 显示学生信息{ cout<<setw(3)<<ID<<setw(10)<<name<<setw(10)<<UsualScore <<setw(10)<<TestScore<<setw(10)<<TotalScore<<endl;}void CStudent::CalcTotalScore() // 计算总成绩{ TotalScore= UsualScore*0.2 + TestScore*0.8; }}3. 定义成绩单类CStuDataBase(1)新建一个“C/C++ Header File”,文件名为“StuDataBase.h”,代码如下:// StuDataBase.h 定义成绩单类,用来管理所有学生的成绩信息#include "student.h"const int MaxStuNum=51; // 班级学生人数最多50人class CStuDatabase {public:CStuDatabase(); // 构造函数,从文件中读入学生成绩信息~CStuDatabase(); // 析构函数,将学生成绩信息写入到文件中void ListScore( ); // 显示成绩单,输出所有学生信息void SelectStuInfo( ); // 查询学生信息void AddStuInfo( ); // 添加学生成绩void DelStuInfo( ); // 删除学生信息void EditStuInfo( ); // 修改学生信息void AnalyScore( ); // 对成绩进行统计分析v oid StuDBM( int ); // 成绩库维护i nt FunctionMenu(); // 功能菜单private:int num; // 学生人数CStudent stu[MaxStuNum]; // 学生数组,stu[0]不用i nt SearchStu(const char* id); // 查找指定学号的学生v oid SortStu( ); // 按学号从小到大对成绩单排序};(2)新建一个“C++ Source File”,文件名为“StuDataBase.cpp”,代码如下:// StuDataBase.cpp 成绩单类的实现#include <fstream.h>#include <string.h>#include <stdlib.h>#include <iomanip.h>#include <conio.h>#include "StuDataBase.h"int InputScore( ) // 输入百分制成绩{ int score;cin>>score;while ( score<0 || score>100 ){ cout<<"成绩超出范围,请重新输入百分制成绩(0---100分):";cin>>score;}return score;}CStuDatabase::CStuDatabase() // 从文件中读入学生信息{ CStudent s; // 学生对象num=0;fstream StuFile; // 该文件用来保存学生信息StuFile.open( "StuInfo.dat", ios::in );if ( !StuFile ){ cout<<"文件StuInfo.dat不能打开!\n";return;}S tuFile.read( (char*)&s, sizeof(s) );w hile ( !StuFile.eof() ){ num++;stu[num]=s;StuFile.read( (char*)&s, sizeof(s) );}S tuFile.close();}CStuDatabase::~CStuDatabase() // 将学生信息写入到文件中{f stream StuFile; // 该文件用来保存学生信息S tuFile.open( "StuInfo.dat", ios::out );i f ( !StuFile ){cout<<"文件StuInfo.dat不能创建!\n";return;}f or ( int i=1; i<=num; i++ ){StuFile.write( (char*)&stu[i], sizeof(stu[i]) ); }S tuFile.close();}int CStuDatabase::SearchStu(const char * id) // 查找指定学号的学生{for ( int i=1; i<=num; i++ )if ( strcmp(stu[i].GetID(),id)==0 )return i;return -1;}int CStuDatabase::FunctionMenu() //功能菜单{ int FuncNum; // 保存操作编号system("cls"); //清屏cout<<"\n\n\n";cout<<setw(20)<<' '<<"**********************************\n\n\n";cout<<setw(24)<<' '<<"请选择要进行的操作:\n\n";cout<<setw(28)<<' '<<"1 --- 查询学生成绩\n\n"<<setw(28)<<' '<<"2 --- 显示学生成绩单\n\n"<<setw(28)<<' '<<"3 --- 添加学生信息\n\n"<<setw(28)<<' '<<"4 --- 删除学生信息\n\n"<<setw(28)<<' '<<"5 --- 修改学生信息\n\n"<<setw(28)<<' '<<"6 --- 对成绩进行统计分析\n\n"<<setw(28)<<' '<<"0 --- 退出\n\n\n";cout<<setw(20)<<' '<<"**********************************\n\n\n";cin>>FuncNum;while ( FuncNum<0 || FuncNum>6 ){cout<<"请重新选择要进行的操作:"<<endl;cin>>FuncNum;}return FuncNum;}void CStuDatabase::StuDBM( int FuncNum ) // 成绩维护{switch ( FuncNum ) {case 1: SelectStuInfo(); break; // 查询学生成绩case 2: ListScore( ); break; // 显示成绩单case 3: AddStuInfo( ); break; // 添加学生信息case 4: DelStuInfo( ); break; // 删除学生信息case 5: EditStuInfo( ); break; // 修改学生信息case 6: AnalyScore( ); break; // 对成绩进行统计分析}}void CStuDatabase::SelectStuInfo( ) // 查询学生信息{system("cls"); //清屏char no[5]; // 临时保存学号cout<<"\n请输入要查询的学生学号:"<<endl;cin>>no;i nt i=SearchStu(no);i f ( i==-1 ){cout<<"\n你查找的学生不存在!\n"; }e lse{ cout<<"\n你所查找的学生成绩如下:\n\n ";CStudent::T ableHead( ); // 输出表头stu[i].Display();}c out<<"\n按任意键返回...."<<endl;getch();}void CStuDatabase::ListScore( ) // 显示成绩单{system("cls"); //清屏if ( num == 0 ){cout<<"当前还没有学生成绩!\n"; }e lse{SortStu( ); // 按学号对成绩单排序CStudent::T ableHead( ); // 输出表头for ( int i=1; i<=num; i++ )stu[i].Display();cout<<"\n共有"<<num<<" 条学生成绩信息\n";}cout<<"\n显示成绩完毕!\n\n按任意键返回...."<<endl;getch();}void CStuDatabase::AddStuInfo( ) // 添加学生成绩{ system("cls"); //清屏char no[5]; // 临时保存学号cout<<"请输入要添加的学生的学号(输入-1 结束):";cin>>no;while ( strcmp(no,"-1")!=0 ){int i=SearchStu( no );while ( i!=-1 ){ cout<<"\n你添加的学生已存在!\n请重新输入学号(-1结束):";cin>>no;if ( strcmp(no,"-1")==0 ){cout<<"\n本次操作完成!\n\n按任意键返回...."<<endl;getch();return;}i=SearchStu( no );}num++;char na[10];cout<<"\n请输入要添加的学生的姓名:";cin>>na;cout<<"\n请输入要添加的学生的平时成绩:\n";int us = InputScore();cout<<"\n请输入要添加的学生的考试成绩:\n";int ts = InputScore();CStudent s(no,na,us,ts);stu[num]=s;cout<<"\n\n请输入要添加的学生的学号(输入-1 结束):";cin>>no;}cout<<"\n本次操作完成!\n\n按任意键返回...."<<endl;getch();}void CStuDatabase::DelStuInfo( ) // 删除学生信息模块{ system("cls"); //清屏char no[5]; // 临时保存学号cout<<"\n请输入要删除的学生学号:"<<endl;cin>>no;int i=SearchStu( no );if ( i==-1 ){ cout<<"\n你要删除的学生不存在!\n"; }else{ cout<<"\n您所删除的学生信息如下:\n\n ";CStudent::T ableHead( ); // 输出表头stu[i].Display();char anser;cout<<"\n是否真的要删除该学生?(Y/N):";cin>>anser;if ( anser=='y' || anser=='Y'){for ( int j=i+1; j<=num; j++ )stu[j-1]=stu[j];num--;cout<<"\n删除信息成功!"<<endl;}}cout<<"\n\n按任意键返回...."<<endl;getch();}void CStuDatabase::EditStuInfo( ) // 修改学生信息模块{ system("cls"); //清屏char no[5]; // 临时保存学号cout<<"\n请输入要修改的学生学号:"<<endl;c in>>no;i nt i=SearchStu( no );i f ( i==-1 ){cout<<"\n你要修改的学生不存在!\n"; }e lse{ cout<<"\n您所修改的学生成绩如下:\n\n ";CStudent::T ableHead( ); // 输出表头stu[i].Display();cout<<"\n请输入学生的新信息:";cout<<"\n请输入学生的姓名:";char na[10];cin>>na;cout<<"\n请输入学生的平时成绩:\n";int us = InputScore();cout<<"\n请输入学生的考试成绩:\n";int ts = InputScore();CStudent s(no,na,us,ts);stu[i]=s;cout<<"\n修改信息成功!"<<endl;}cout<<"\n\n按任意键返回...."<<endl;getch();}void CStuDatabase::AnalyScore( ) // 对成绩进行统计分析{ system("cls"); // 清屏int c[5]={0}; // 用来保存各个分数段的人数double AveScore=0; // 用来保存所有学生的平均成绩double ts; // 临时保存总评成绩for ( int i=1; i<=num; i++ ){ts=stu[i].GetTotalScore();AveScore+=ts;switch ( int( ts/10 ) ){case 10:case 9: c[0]++; break; // 90(含90)分以上人数case 8: c[1]++; break; // 80(含80)---90(不含90)分人数case 7: c[2]++; break; // 70(含70)---80(不含80)分人数case 6: c[3]++; break; // 60(含60)---70(不含70)分人数default: c[4]++; break; // 不及格人数}}AveScore/=num;cout<<"\n学生成绩分布情况如下:\n\n";c out<<"优秀(90分---100分)人数:"<<c[0]<<",\t占"<<double(c[0])/num*100<<" %\n\n";cout<<"良好(80分--- 89分)人数:"<<c[1]<<",\t占"<<double(c[1])/num*100<<" %\n\n";cout<<"中等(70分--- 79分)人数:"<<c[2]<<",\t占"<<double(c[2])/num*100<<" %\n\n";c out<<"及格(60分--- 69分)人数:"<<c[3]<<",\t占"<<double(c[3])/num*100<<" %\n\n";cout<<"不及格(60分以下)人数:"<<c[4]<<",\t占"<<double(c[4])/num*100<<" %\n\n";cout<<"学生总人数为:"<<num<<endl;cout<<"\n班级平均成绩为:"<<AveScore<<endl;cout<<"\n按任意键返回...."<<endl;getch();}void CStuDatabase::SortStu( ) // 按学号从小到大对成绩单排序{ int i, j, k;f or ( i=1; i<num; i++ ){k=i;for ( j=i+1; j<=num; j++ )if ( strcmp( stu[j].GetID(),stu[k].GetID() )<0 )k=j;CStudent temp=stu[i];stu[i]=stu[k];s tu[k]=temp;}}4. 定义主程序新建一个“C++ Source File”,文件名为“StudentScoreMain.cpp”,代码如下:#include <iomanip.h>#include <conio.h>#include "StuDataBase.h"void welcome();void main(){welcome(); // 欢迎画面CStuDatabase stuDB; // 生成成绩单对象int FuncNum; // 保存操作编号FuncNum=stuDB.FunctionMenu(); // 显示功能菜单while ( FuncNum!=0 ){stuDB.StuDBM( FuncNum ); // 学生库管理FuncNum=stuDB.FunctionMenu();}}void welcome(){cout<<"\n\n\n";cout<<setw(20)<<' '<<"**********************************\n\n\n";cout<<setw(24)<<' '<<"欢迎使用学生成绩单管理系统\n\n\n";cout<<setw(20)<<' '<<"**********************************\n\n\n";cout<<"\n按任意键继续...."<<endl;getch();}_。

学生成绩管理系统源代码

学生成绩管理系统源代码

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <dos.h>#include<ctype.h>#include<conio.h>#include<stddef.h>#include<time.h>#define PRINT1 textcolor(12); cprintf("\r 请按任意键返回主菜单\n\r");textcolor(10); getch();clrscr(); break;int shoudsave=0;struct student /* 学生信息结构体定义*/{char num[10],name[20],cla[4];int score1,score2,score3,total,ave;};typedef struct node{struct student data;struct node *next;}Node,*L;void print1(){cprintf("\r======================================================================= =========");}void print2(){cprintf("\n\r 1.输入学生成绩信息在这里你可以按照提示输入学生的班级,学号,姓名及各科成绩.\n");cprintf("\n\r 2.注销学生成绩信息在这里你可以按照学号或姓名将某名学生的信息从本系统中删除.\n");cprintf("\n\r 3.查询学生成绩信息在这里你可以按照学号或姓名查询某一名学生的信息.\n");cprintf("\n\r 4.修改学生成绩信息在这里你可以按照提示修改某一名学生的学号,姓名及各科成绩.");cprintf("\n\r 5.学生成绩信息排序在这里你可以看到所有学生的各科成绩.\n"); cprintf("\n\r 6.学生成绩信息统计在这里本系统将为你显示所有科目的最高分及最低分所得学生.\n");cprintf("\n\r 7.显示学生成绩信息在这里你可以看到系统中所有学生的信息.\n"); cprintf("\n\r 8.保存学生成绩信息在这里你可以将学生你信息保存到内存中.\n"); cprintf("\n\r 9.帮助学生成绩信息在这里你可以获得帮助信息.\n");cprintf("\n\r 0.退出系统在这里选择是否保存后,你可以安全的退出本系统.\n\n\r ");}void menu(){cprintf("\n\r\xc9\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xc d\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcb\xcd\xcd\xcd\xcd\ xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xc d\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbb");cprintf("\r\xba 学生信息导入\xba 学生信息处理\xba");cprintf("\r\xba____________________________________\xba___________________________ _______________\xba");cprintf("\r\xba 1-->输入学生成绩信息\xba 6-->学生成绩信息统计\xba");cprintf("\r\xba 2-->注销学生成绩信息\xba 7-->显示学生成绩信息\xba");cprintf("\r\xba 3-->查询学生成绩信息\xba 8-->保存学生成绩信息\xba");cprintf("\r\xba 4-->修改学生成绩信息\xba 9-->帮助学生成绩信息\xba");cprintf("\r\xba 5-->学生成绩信息排序\xba 0-->退出系统\xba");cprintf("\r\xc8\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\ xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xca\xcd\xcd\xcd\xcd\xc d\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\ xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbc");}void wrong(){cprintf("\n\r输入错误!请验证后重新输入.\n");}void notfind(){cprintf("\n\r该学生信息不存在!请验证后重新输入.\n");}void printc() /* 此函数用于输出中文格式*/{cprintf("\r学号姓名班级英语数学C语言总分平均分\n ");}void printe(Node *p) /* 此函数用于输出英文格式*/{cprintf("\r%-4s%-4s%4s%5d%5d%8d%5d%7d\n\r",p->data.num,p->,p->data.cla,p->dat a.score3,p->data.score2,p->data.score1,p->data.total,p->data.ave);}Node* Locate(L l,char findinfo[],char nameornum[]) /* 该函数用于定位连表中符合要求的接点,并返回该指针*/{Node *r;if(strcmp(nameornum,"num")==0)/* 按学号查询*/{r=l->next;while(r!=NULL){if(strcmp(r->data.num,findinfo)==0)return r;r=r->next;}}else if(strcmp(nameornum,"name")==0) /* 按姓名查询*/{r=l->next;while(r!=NULL){if(strcmp(r->,findinfo)==0)return r;r=r->next;}}return 0;}void input(L l) /* 增加学生*/{Node *p,*r,*s;char num[10];r=l;s=l->next;while(r->next!=NULL)r=r->next;/* 将指针置于最末尾*/while(1){ cprintf("\r如果输入完毕,请按任意键返回主菜单\n");cprintf("\r如果你还想输入,请按y(yes)继续\n\r");scanf("%s",num);if(strcmp(num,"y")==0){ cprintf("请你输入学号:");scanf("%s",num); } else break;while(s){if(strcmp(s->data.num,num)==0){printf("\t学号为'%s'的学生已经存在,若要修改请你选择'4 修改'!\n",num);print1();printc();printe(s);print1();printf("\n");getch();return;}s=s->next;}p=(Node *)malloc(sizeof(Node));strcpy(p->data.num,num);cprintf("\r请你输入姓名:");scanf("%s",p->);getchar();cprintf("\r请你输入班级:");scanf("%s",p->data.cla);getchar();cprintf("\r请你输入c语言成绩(0-100):");scanf("%d",&p->data.score1);getchar();cprintf("\r请你输入数学成绩(0-100):");scanf("%d",&p->data.score2);getchar();cprintf("\r请你输入英语成绩(0-100):");scanf("%d",&p->data.score3);getchar();p->data.total=p->data.score3+p->data.score1+p->data.score2;p->data.ave=p->data.total / 3; /* 信息输入已经完成*/p->next=NULL;r=p;shoudsave=1;}}void query(L l) /* 查询学生信息*/{int select;char findinfo[20];Node *p;if(!l->next){cprintf("\n 没有信息可以查询!\n");return;}cprintf("\n1==>按学号查找\n\r2==>按姓名查找\n\r");scanf("%d",&select);if(select==1) /* 学号*/{cprintf("\r请你输入要查找的学号:");scanf("%s",findinfo);p=Locate(l,findinfo,"num");if(p){cprintf(" 查找结果\n\r");print1();printc();printe(p);print1();}elsenotfind();}else if(select==2) /* 姓名*/{cprintf("\r请你输入要查找的姓名:");scanf("%s",findinfo);p=Locate(l,findinfo,"name");if(p){cprintf(" 查找结果\n\r");print1();printc();print1();}elsenotfind();}elsewrong();}void Delete(L l) /* 删除学生信息*/{int select;Node *p,*r;char findinfo[20];if(!l->next){cprintf("\n 没有信息可以删除!\n");return;}cprintf("\n1==>按学号删除\n\r2==>按姓名删除\n\r");scanf("%d",&select);if(select==1){cprintf("\r请你输入要删除的学号:");scanf("%s",findinfo);p=Locate(l,findinfo,"num");if(p){r=l;while(r->next!=p)r=r->next;r->next=p->next;free(p);cprintf("\n\r该学生已经成功删除!\n");shoudsave=1;}elsenotfind();}else if(select==2){cprintf("\r请你输入要删除的姓名:");scanf("%s",findinfo);p=Locate(l,findinfo,"name");if(p){r=l;while(r->next!=p)r=r->next;r->next=p->next;free(p);cprintf("\n\r该学生已经成功删除!\n");shoudsave=1;}elsenotfind();}else wrong();}void modify(L l) /*修改学生信息*/{Node *p;char findinfo[20];if(!l->next){cprintf("\n\r没有信息可以修改!\n");return;}cprintf("\r请你输入要修改的学生学号:");scanf("%s",findinfo);p=Locate(l,findinfo,"num");if(p){cprintf("\r请你输入新学号(原来是%s):",p->data.num);scanf("%s",p->data.num);cprintf("\r请你输入新姓名(原来是%s):",p->);scanf("%s",p->);getchar();cprintf("\r请你输入新班级(原来是%s):",p->data.cla);scanf("%s",p->data.cla);cprintf("\r请你输入新的c语言成绩(原来是%d分):",p->data.score1);scanf("%d",&p->data.score1);getchar();cprintf("\r请你输入新的数学成绩(原来是%d分):",p->data.score2);scanf("%d",&p->data.score2);getchar();cprintf("\r请你输入新的英语成绩(原来是%d分):",p->data.score3);scanf("%d",&p->data.score3);p->data.total=p->data.score3+p->data.score1+p->data.score2;p->data.ave=p->data.total/3;cprintf("\n\r信息修改成功!\n");shoudsave=1;}elsenotfind();}void display(L l){/*显示全部学生信息*/int count=0;Node *p;p=l->next;if(!p){cprintf("\n\r 没有信息可以显示!\n");return;}cprintf(" 显示结果");print1();printc();while(p){ if(count%5==0) getch();printe(p);p=p->next;count++;}print1();cprintf("\n");}void Statistic(L l) /*统计学生信息*/{Node *pm_max,*pe_max,*pc_max,*pt_max,*pa_max; /* 用于指向分数最高的接点*/ Node *pm_min,*pe_min,*pc_min,*pt_min,*pa_min;Node *r=l->next;if(!r){cprintf("\n\r 没有信息可以统计!\n");return ;}pm_max=pe_max=pc_max=pt_max=pa_max=pm_min=pe_min=pc_min=pt_min=pa_min=r; while(r!=NULL){if(r->data.score1>=pc_max->data.score1)pc_max=r;if(r->data.score1<=pc_min->data.score1)pc_min=r;if(r->data.score2>=pm_max->data.score2)pm_max=r;if(r->data.score2<=pm_min->data.score2)pm_min=r;if(r->data.score3>=pe_max->data.score3)pe_max=r;if(r->data.score3<=pe_min->data.score3)pe_min=r;if(r->data.total>=pt_max->data.total)pt_max=r;if(r->data.total<=pt_min->data.total)pt_min=r;if(r->data.ave>=pa_max->data.ave)pa_max=r;if(r->data.ave<=pa_min->data.ave)pa_min=r;r=r->next;}cprintf("====================================统计结果====================================\n");cprintf("\r总分最高者: %-16s %d分\n",pt_max->,pt_max->data.total); cprintf("\r平均分最高者: %-16s %d分\n",pa_max->,pa_max->data.ave); cprintf("\r英语最高者: %-16s %d分\n",pe_max->,pe_max->data.score3); cprintf("\r数学最高者: %-16s %d分\n",pm_max->,pm_max->data.score2); cprintf("\rc语言最高者: %-16s %d分\n\r",pc_max->,pc_max->data.score1); cprintf("\r总分最低者: %-16s %d分\n",pt_min->,pt_min->data.total); cprintf("\r平均分最低者: %-16s %d分\n",pa_min->,pa_min->data.ave); cprintf("\r英语最低者: %-16s %d分\n",pe_min->,pe_min->data.score3); cprintf("\r数学最低者: %-16s %d分\n",pm_min->,pm_min->data.score2); cprintf("\rc语言最低者: %-16s %d分\n\r",pc_min->,pc_min->data.score1); print1();}void Sort(L l){L ll;Node *p,*rr,*s;ll=(L)malloc(sizeof(Node)); /* 用于做新的连表*/ll->next=NULL;if(l->next==NULL){cprintf("\n\r 没有信息可以排序!\n");return ;}p=l->next;while(p){s=(Node*)malloc(sizeof(Node)); /* 新建接点用于保存信息*/s->data=p->data;s->next=NULL;rr=ll;while(rr->next!=NULL && rr->next->data.total>=p->data.total)rr=rr->next;if(rr->next==NULL)rr->next=s;else{s->next=rr->next;rr->next=s;}p=p->next;}free(l);l->next=ll->next;cprintf("\n\r 排序已经完成!\n");}void Save(L l) /* */{FILE* fp;Node *p;int flag=1,count=0;fp=fopen("c:\\student","wb");if(fp==NULL){cprintf("\n\r 重新打开文件时发生错误!\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){cprintf("\n\r 文件保存成功.(有%d条信息已经保存.)\n\r",count);shoudsave=0;}fclose(fp);}void main() /* */{L l; /* 链表*/FILE *fp; /* 文件指针*/int count=0 ,i,menu_select; /*菜单选择*/char ch ,creat;Node *p,*r;time_t it;clrscr();textmode(C80);window(1,1,80,25);textbackground(1); clrscr();textcolor(10);printf("\r 学生成绩管理系统");printf("\r -------扬州大学信息工程学院软件0902班") ;printf("\r 设计人员:李天鹏");l=(Node*)malloc(sizeof(Node));l->next=NULL;r=l;fp=fopen("c:\\student","rb");if(fp==NULL){cprintf("\n\r 该文件还未存在,是否需要创建?(y/n,Y/N)\n\r");scanf("%c",&creat);if(creat=='y'||creat=='Y'){fp=fopen("c:\\student","wb");}elseexit(0);}gotoxy(9,11); textcolor(12);cprintf("\n\r 文件已经打开,系统正在导入信息");for(i=0;i<6;i++){ cprintf(".");sleep(1);}textcolor(10);gotoxy(9,11); cprintf("\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);/* 关闭文件*/gotoxy(1,3);cprintf("\n\r信息导入完毕,系统共导入%d条信息",count);sleep(1);while(1){ menu();textcolor(12);cprintf("\r现在时间: "); it=time(NULL);cprintf(ctime(&it));cprintf("\r左边数字对应功能选择,请按0--9选择操作:\n\r");textcolor(10) ;scanf("%d",&menu_select);if(menu_select==0){if(shoudsave==1){ getchar(); textcolor(128+12);cprintf("\n\r 信息已经改动,是否将改动保存到文件中(y/n Y/N)?\n\r"); scanf("%c",&ch);if(ch=='y'||ch=='Y')Save(l);}cprintf("\n\r 你已经成功退出学生成绩信息系统,欢迎下次继续使用!\n"); break;}switch(menu_select){case 1: clrscr(); input(l); clrscr(); break; /* 输入学生*/case 2: clrscr(); Delete(l); PRINT1 /* 删除学生*/case 3: clrscr(); query(l); PRINT1 /* 查询学生*/case 4: clrscr(); modify(l); PRINT1 /* 修改学生*/case 5: clrscr(); Sort(l); PRINT1case 6: clrscr(); Statistic(l); PRINT1case 7: clrscr(); display(l); PRINT1case 8: clrscr(); Save(l); PRINT1 /* 保存学生*/case 9: clrscr(); cprintf(" ==========帮助信息==========\n");print2(); PRINT1 ;default: wrong(); getchar(); break;}}}。

学生成绩管理系统代码

学生成绩管理系统代码

#include<stdio。

h>#include〈windows.h〉#include<string。

h>#include〈time。

h〉#include<conio。

h〉struct Stu //定义结构体{char Num[10];//学号char Name[10];//姓名char Sex;//性别char Gread[10];//班级double Chinese;//语文成绩double Math;//数学成绩double English;//英语成绩double All;//总分int mark;}student[100]={{"10001","罗兰花花”,'M',”c1”,100,90,80,270,1},{"10002","罗兰星星",'M’,”c1",99,89,79,267,1},{”10003”,"罗兰小天”,’F',"c1”,88,88,78,254,1},{"10004”,"罗兰龙帝",'M',”c1”,97,87,77,261,1},{”10005”,”罗兰芳儿",’F’,”c2",96,86,76,258,1},{”10006",”罗兰夜听”,'M',”c2",95,85,75,255,1},{”10007",”罗兰唯美",’F’,”c2”,54,84,94,232,1},{"10008”,”罗兰人才”,'M',”c2”,93,83,73,249,1}};//函数声明void face1();//启动页面1void face2();//启动页面2void face3();//菜单页面void face4();//查找子菜单void face5();//排序子菜单void face6();//统计子菜单void face7();//按科统计评级学生子菜单void Menu();///////////////主菜单void Print();//输出函数void Add();//添加函数void Change();//修改函数void Delete();//删除函数void Deleall();//清空函数void Search();////////////查找菜单void Search1();//查找指定姓名学号函数void Search2();//按班级查找void Search3();//按性别查找void Sort();///////////////排序菜单void Sort1();//按总分排序函数void Sort2();//按学号排序void Sort3();//按姓名排序void Total();//////////////统计菜单void Total1();//统计所有void Total2();//按班级统计int count =8;//系统中已有学生的人数void face1()//启动页面1{int i,j;int a;system("color B”);printf("\t\t\t请输入你喜欢的文字颜色\n");printf("\t\t\t ═════════════════════\n");printf("\t\t\t║\t0 = 黑色 8 = 灰色║\n");printf("\t\t\t║\t1 = 蓝色 9 = 淡蓝色║\n”);printf(”\t\t\t║\t2 = 绿色 10= 淡绿色║\n");printf("\t\t\t║\t3 = 浅绿色 11= 淡浅绿色║\n”);printf("\t\t\t║\t4 = 红色 12= 淡红色║\n");printf("\t\t\t║\t5 = 紫色 13= 淡紫色║\n");printf("\t\t\t║\t6 = 黄色 14= 淡黄色║\n");printf("\t\t\t║\t7 = 白色 15= 亮白色║\n");printf("\t\t\t╚════════════════════╝\n");printf(”\t\t\t请选择:");scanf(”%d",&a);switch(a){case 1:system(”color 1”);break;case 2:system(”color 2");break;case 3:system(”color 3");break;case 4:system("color 4”);break;case 5:system("color 5");break;case 6:system(”color 6”);break;case 7:system(”color 7”);break;case 8:system("color 8”);break;case 9:system(”color 9”);break;case 10:system(”color A”);break;case 11:system("color B”);break;case 12:system("color C");break;case 13:system("color D”);break;case 14:system("color E");break;case 15:system("color F");break;}system(”cls”);getchar();printf(”\t\t\t正在启动学生成绩管理系统请等待\n");printf("\t\t\t”);for(j=0;j<30;j++){for(i=0;i<50000000;i++); //为每一个符号输出创造时延printf(”〉");}printf("\n”);//system(”cls");}//登陆页面2void face2(){int i;char c;char name[20],password[20]={0},str1[20]="jack",str2[20]=”123456";printf("\n\n\t>〉〉>〉>〉>>〉>>〉〉〉>〉>>〉>欢迎进入学生成绩管理系统〈<<〈〈<〈<<〈<<<<〈〈〈<\n\n");printf("\t O(∩_∩)O~\t\t\t\t\n");printf("\t\t★ \n");printf(”\t\t★ \n”);printf(”\t\t★★★★★★★★ \n");printf("\t\t★★★★★★★ \n”);printf(”\t\t★★★★★★ \n");printf(”\t\t★★★★★★★★★★ \n");printf("\t\t★★★★★★ \n”);printf(”\t\t★★★★★★ \n");printf(”\t\t★★★★★★★★★★★★ \n\n");printf("\t〉〉〉>>〉>〉〉请输入登陆信息(帐号:jack,密码:123456):<<<〈<<〈<〈<\n\n");do{printf("\t\t\t请输入你的姓名:");gets(name);if(strcmp(name,str1)) printf("\t\t\t输入有误!!!\n");}while(strcmp(name,str1));do{i=0;printf("\t\t\t请输入密码:”);while((c=getch())!=13){if(c==8){if(i==0)continue;putchar('\b’);putchar(' ’);putchar(’\b’);password[--i]=0;continue;}printf("*”);password[i++]=c;}//password[i]=0;//gets(password);if(strcmp(password,str2)) printf(”\t\t\t输入有误!!!\n”);}while(strcmp(password,str2));printf(”\t\t\t登陆成功\n”);}void face3()//菜单页面{printf("\t\n”);printf(”\t ═════════════════════════════\n”); printf(”\t║║\n”); printf(”\t║学生成绩管理系统║\n”); printf("\t║───────────────—║\n");//printf("\t║ \n”); printf(”\t║ 1。

学生信息录入(学号姓名成绩),并按学号查找。

学生信息录入(学号姓名成绩),并按学号查找。

学⽣信息录⼊(学号姓名成绩),并按学号查找。

#include<stdio.h>#include<stdlib.h>#define N 100struct student{char num[9];char name[20];int score;};void imput(struct student stu[],int n){int i;printf("依次输⼊学⽣学号、姓名、成绩:\n");for(i=0;i<n;i++){scanf("%s",stu[i].num);scanf("%s",stu[i].name);scanf("%d",&stu[i].score);}}void sort(struct student st[],int n){struct student t;int i,j,k;for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++){if(st[k].score<st[j].score)k=j;}if(k!=i){t=st[i];st[i]=st[k];st[k]=t;}}}void output(struct student stu[],int n){printf("排序后的信息为:\n");int i;for(i=0;i<n;i++){printf("%s ",stu[i].num);printf("%s ",stu[i].name);printf("%d ",stu[i].score);printf("\n");}}void serch(struct student st[],int n){printf("请输⼊学⽣8位学号进⾏查找:\n");int i,k=-1;char c[9];scanf("%s",c);for(i=0;i<n;i++){if(strcmp(st[i].num,c)==0){k=i;printf("%s ",st[i].num);printf("%s ",st[i].name);printf("%d ",st[i].score);printf("\n");}}if(k==-1)printf("该学号不存在。

教材案例源代码及查询练习(学生成绩系统)

教材案例源代码及查询练习(学生成绩系统)

一、新建数据库库名为自己姓名的全拼,要求库的字符集为GBK。

二、进入新建的库中,复制并执行以下SQL语句完成建表操作-- student表的结构CREATE TABLE `student` (`sno` char(9) NOT NULL COMMENT '学号',`sname` varchar(10) NOT NULL COMMENT '姓名',`ssex` char(2) default NULL COMMENT '性别',`sbirthday` date default NULL COMMENT '年龄',`sdept` varchar(8) NOT NULL COMMENT '系别',PRIMARY KEY (`sno`)) ENGINE=InnoDB DEFAULT CHARSET=gbk;--course表的结构CREATE TABLE `course` (`cno` char(4) NOT NULL COMMENT '课程编号',`cname` varchar(20) NOT NULL COMMENT '课程名称',`cpno` char(4) default NULL COMMENT '先修课编号',`ccredit` int(11) default NULL COMMENT '学分',PRIMARY KEY (`cno`)) ENGINE=InnoDB DEFAULT CHARSET=gbk;--sc表的结构CREATE TABLE `sc` (`sno` char(9) NOT NULL COMMENT '学号',`cno` char(4) NOT NULL COMMENT '课程编号',`grade` float default NULL COMMENT '成绩',PRIMARY KEY (`sno`,`cno`)) ENGINE=InnoDB DEFAULT CHARSET=gbk;三、复制以下SQL语句,分别向三个表中插入数据--向student表插入数据INSERT INTO `student` (`sno`, `sname`, `ssex`, `sbirthday`, `sdept`) VALUES('200515001', '赵菁菁', '女', '1994-08-10', '网络系'),('200515002', '李勇', '男', '1993-02-24', '网络系'),('200515003', '张力', '男', '1992-06-12', '网络系'),('200515004', '张衡', '男', '1995-01-04', '软件系'),('200515005', '张向东', '男', '1992-12-24', '软件系'),('200515006', '张向丽', '女', '1994-04-12', '软件系'),('200515007', '王芳', '女', '1993-10-05', '网络系'),('200515008', '王明生', '男', '1991-09-16', '通信系'),('200515009', '王小丽', '女', '1993-08-18', '通信系'),('200515010', '李晨', '女', '1993-12-01', '通信系'),('200515011', '张毅', '男', '1993-02-24', '外语系'),('200515012', '杨丽华', '女', '1994-02-01', '英语系'),('200515013', '李芳', '女', '1992-05-03', '通信系'),('200515014', '张丰毅', '男', '1995-05-05', '网络系'),('200515015', '李雷', '女', '1994-03-02', '英语系'),('200515016', '刘杜', '男', '1992-07-02', '中文系'),('200515017', '刘星耀', '男', '1994-06-17', '数学系'),('200515018', '李贵', '男', '1994-02-17', '英语系'),('200515019', '林自许', '男', '1991-07-23', '网络系'),('200515020', '马翔', '男', '1993-09-24', '网络系'),('200515021', '刘峰', '男', '1994-01-18', '网络系'),('200515022', '朱晓鸥', '女', '1994-01-01', '软件系'),('200515023', '牛站强', '男', '1993-07-28', '中文系'),('200515024', '李婷婷', '女', '1993-01-29', '通信系'),('200515025', '严丽', '女', '1992-07-12', '数学系');--向course表中插入数据INSERT INTO `course` (`cno`, `cname`, `cpno`, `ccredit`) VALUES ('1', '数据库', '5', 4),('10', '人工智能', '', 2),('2', '数学', '', 2),('3', '信息系统', '1', 4),('4', '操作系统', '6', 3),('5', '数据结构', '7', 4),('6', '数据处理', '', 2),('7', 'PASCAL语言', '6', 4),('8', '大学英语', '', 4),('9', '计算机网络', '', 4);--向sc表中插入数据INSERT INTO `sc` (`sno`, `cno`, `grade`) VALUES('200515001', '1', 75),('200515001', '4', 62),('200515001', '5', 58),('200515001', '7', 70),('200515002', '1', 85),('200515002', '3', 53),('200515002', '4', 85),('200515003', '1', 86),('200515004', '1', 74),('200515004', '2', 46),('200515005', '1', 58),('200515005', '10', 65),('200515005', '2', 89),('200515006', '1', 84),('200515006', '2', 65),('200515008', '2', 72),('200515009', '2', 76),('200515010', '2', 96),('200515010', '8', 96),('200515011', '8', 72),('200515015', '8', 10),('200515016', '8', 0),('200515017', '8', 0),('200515018', '8', 68),('200515021', '6', 58),('200515021', '9', 54);四、用SQL语句完成下列单表查询1、查询全体学生的学号与姓名。

c语言数据查询程序简单的代码

c语言数据查询程序简单的代码

C语言数据查询程序简单的代码一、背景介绍C语言作为一种通用的编程语言,在软件开发领域有着广泛的应用。

数据查询是软件开发中常见的需求之一,因此编写一个数据查询程序是很有必要的。

本文将介绍如何用C语言编写一个简单的数据查询程序的代码。

二、程序设计在C语言中,要实现数据查询,可以使用数组或链表等数据结构来存储数据,然后通过循环或递归等方式来进行数据的查询操作。

下面是一个简单的C语言代码示例,实现了一个基于数组的数据查询程序。

```c#include <stdio.h>// 定义数据结构typedef struct {int id;char name[20];int score;} Student;// 查询函数int query(Student students[], int n, int targetId) {for (int i = 0; i < n; i++) {if (students[i].id == targetId) {return i;}}return -1;}int m本人n() {// 初始化数据Student students[3] = {{1, "张三", 80},{2, "李四", 90},{3, "王五", 85}};// 查询数据int targetId = 2;int index = query(students, 3, targetId);if (index != -1) {printf("学号:d,尊称:s,成绩:d\n", students[index].id,students[index].name, students[index].score);} else {printf("未找到该学生\n");}return 0;}```三、代码解析1. 定义了一个包含学生学号、尊称和成绩的数据结构Student。

学生成绩管理系统的设计与实现代码

学生成绩管理系统的设计与实现代码

学生成绩管理系统的设计与实现代码本系统有增加学生记录、修改学生记录、删除学生记录、按姓名查询学生记录、按C语言成绩对学生进行排序、退出系统6大功能。

能够对学生的姓名,学号,c语言成绩做相应的操作。

在检测到输入成绩大于55时,会自动加上5。

该管理系统设计功能模块图:下面是源代码:#include "stdio.h"#include "string.h"/*定义学生结构体*/struct Student{char ID[20]; //学号char Name[20]; //姓名float C_Mark; //C语言成绩};/*声明学生数组及学生数量*/struct Student students[1000];int num=0;/*通过学号返回数组下标*/int Student_SearchByIndex(char id[]) {int i;for (i=0;i<num;i++){if (strcmp(students[i].ID,id)==0) {return i;}}return -1;}/*通过姓名返回数组下标*/int Student_SearchByName(char name[]) {int i;for (i=0;i<num;i++){if (strcmp(students[i].Name,name)==0){return i;}}return -1;}/*显示单条学生记录*/void Student_DisplaySingle(int index){printf("%10s%10s%8s\n","学号","姓名","C语言成绩");printf("-------------------------------------------------------------\n");printf("%10s%10s%8.2f\n",students[index].ID,students[index] .Name,students[index].C_Mark);}/****1、增加学生记录*****/void Student_Insert(){while(1){printf("请输入学号:");scanf("%s",&students[num].ID);getchar();printf("请输入姓名:");scanf("%s",&students[num].Name);getchar();printf("请输入C语言成绩:");scanf("%f",&students[num].C_Mark);getchar();if (54<students[num].C_Mark && students[num].C_Mark< 60) //把55~59分之间的成绩都加上5分{students[num].C_Mark += 5;}num++;printf("是否继续?(Y/N),继续请按任意键,否则输入N:");if (getchar()=='N'){break;}}}/******2、修改学生信息**********/void Student_Modify(){while(1){char id[20];int index;printf("请输入要修改的学生的学号:");scanf("%s",&id);getchar();index=Student_SearchByIndex(id);if (index==-1){printf("该学生不存在!\n");}else{printf("你要修改的学生信息为:\n");Student_DisplaySingle(index);printf("-- 请输入新值--\n");printf("请输入学号:");scanf("%s",&students[index].ID);getchar();printf("请输入姓名:");scanf("%s",&students[index].Name);getchar();printf("请输入C语言成绩:");scanf("%f",&students[index].C_Mark);getchar();}printf("是否继续?(Y/N),继续请按任意键,否则输入N:");if (getchar()=='N'){break;}}}/****3、删除学生信息****/void Student_Delete(){int i;while(1){char id[20];int index;printf("请输入要删除的学生的学号:");scanf("%s",&id);getchar();index=Student_SearchByIndex(id);if (index==-1){printf("学生不存在!\n");}else{printf("你要删除的学生信息为:\n");Student_DisplaySingle(index);printf("是否真的要删除?(Y/N)");if (getchar()=='Y'){for (i=index;i<num-1;i++){students[i]=students[i+1];//把后边的对象都向前移动}num--;}getchar();printf("已删除\n");}printf("是否继续删除?(Y/N),继续请按任意键,否则输入N:");if (getchar()=='N'){break;}}}/****4、按姓名查询******/void Student_Select(){while(1){char name[20];int index;printf("请输入要查询的学生的姓名:");scanf("%s",&name);getchar();index=Student_SearchByName(name);if (index==-1){printf("学生不存在!\n");}else{printf("你要查询的学生信息为:\n");Student_DisplaySingle(index);}printf("是否继续?(Y/N),继续请按任意键,否则输入N:");if (getchar()=='N'){break;}}}/******5、按C语言成绩排序*******/void Student_SortByAverage(){int i,j;struct Student tmp;for (i=0;i<num;i++){for (j=1;j<num-i;j++){if (students[j-1].C_Mark<students[j].C_Mark){tmp=students[j-1];students[j-1]=students[j];students[j]=tmp;}}}}/*显示学生信息*/void Student_Display(){int i;printf("%10s%10s%8s\n","学号","姓名","成绩");printf("-------------------------------------------------------------\n");for (i=0;i<num;i++){printf("%10s%10s%8.2f\n",students[i].ID,students[i].Name ,students[i].C_Mark);}}/*将学生信息从文件(Database.txt)中读出*/void IO_ReadInfo(){FILE *fp;int i;if ((fp=fopen("Database.txt","rb"))==NULL){printf("不能打开文件!\n");return;}if (fread(&num,sizeof(int),1,fp)!=1){num=-1;}else{for(i=0;i<num;i++){fread(&students[i],sizeof(struct Student),1,fp);}}fclose(fp);}/*将学生信息写入文件(Database.txt)*/void IO_WriteInfo(){FILE *fp;int i;if ((fp=fopen("Database.txt","wb"))==NULL){printf("不能打开文件!\n");return;}if (fwrite(&num,sizeof(int),1,fp)!=1){printf("写入文件错误!\n");}for (i=0;i<num;i++){if (fwrite(&students[i],sizeof(struct Student),1,fp)!=1){printf("写入文件错误!\n");}}fclose(fp);}/***********主程序*********/void main(){int choice;IO_ReadInfo(); //读取文件while(1){/*主菜单*/printf("\n------ 学生成绩管理系统------\n");printf("1. 增加学生记录\n");printf("2. 修改学生记录\n");printf("3. 删除学生记录\n");printf("4. 按姓名查询学生记录\n");printf("5. 按C语言成绩排序\n");printf("6. 退出\n");printf("请选择(1-6):");scanf("%d",&choice);getchar();switch(choice){case 1:Student_Insert();break;case 2:Student_Modify();break;case 3:Student_Delete();break;case 4:Student_Select();break;case 5:Student_SortByAverage();Student_Display();break;case 6:exit(0);break;}IO_WriteInfo();}}1234567891011121415161718192021222324252627282930313233343637383940414243444546474849505152535455565859606162636465666768697071727374757677788081828384858687888990919293949596979899 100102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320322323324325326327328329330331332333334335336337338运行结果:测试第一个功能,输入四个学生的成绩:测试第二个功能,修改学生记录:测试第三个功能,删除学生记录:测试第四个功能,按姓名查询学生记录:测试第五个功能,显示所有学生的成绩,按照C语言成绩由高到底排序:我们可以看到,各项功能的实现,在第2个步骤中,将赵的成绩改为80,而第3个步骤删除了李的成绩。

学生成绩管理系统设计与代码实现完整版

学生成绩管理系统设计与代码实现完整版

学生成绩管理系统案例描述案例要求模拟开发一个学生成绩管理系统,此系统具有以下功能:(1)添加学生信息,包括学号、姓名、语文、数学成绩;(2)显示学生信息,将所有学生信息打印输出;(3)修改学生信息,可以根据姓名查找到学生,然后可以修改学生姓名、成绩项;(4)删除学生信息,根据学号查找到学生,将其信息删除;(5)查找学生信息,根据学生姓名,将其信息打印输出;(6)按学生总成绩进行从高到低排序。

请通过编程完成此系统的开发。

案例分析因为学生信息包括学号、姓名和成绩等不同数据类型的属性,所以需要定义一个学生类型的结构体。

在存储学生信息时,可选用数组或链表,考虑到学生要根据总成绩来排序,为方便排序,我们选用数组来存储学生信息。

案例实现功能模块1500558349275功能函数实现添加记录—add()函数;显示记录—showAll()函数;修改记录—modify()函数;删除记录—del()函数;查找记录—search()函数;排序—sort()函数。

案例代码Student.h#ifndef STUDENT //先测试STUDENT是否被宏定义过,避免重新使用#define STUDENT //定义STUDENT#include <stdio.h>#include <string.h>#include <stdlib.h>#define HH printf("%-10s%-10s%-10s%-10s%-10s\n","学号", "姓名", "语文成绩", "数学成绩", "总分")struct student //学生记录{int id; //学号char n ame[8]; //姓名int chinese; //语文成绩int math; //数学成绩int sum; //总分};static int n; //记录学生信息条数void menu();void add(struct student stu[]); //函数声明void show(struct student stu[], int i);void showAll(struct student stu[]);void modify(struct student stu[]);void del(struct student stu[]);void search(struct student stu[]);void sort(struct student stu[]); //函数声明#endif //结束条件编译Student.c#define _CRT_SECURE_NO_WARNINGS#include "Student.h"void menu(){system("cls");//清空屏幕printf("\n");printf("\t\t --------------学生成绩管理系统--------------\n");printf("\t\t︱\t\t 1 添加记录︱\n");printf("\t\t︱\t\t 2 显示记录︱\n");printf("\t\t︱\t\t 3 修改记录︱\n");printf("\t\t︱\t\t 4 删除记录︱\n");printf("\t\t︱\t\t 5 查找记录︱\n");printf("\t\t︱\t\t 6 排序记录︱\n");printf("\t\t︱\t\t 0 退出系统︱\n");printf("\t\t --------------------------------------------\n");printf("\t\t请选择(0-6):");}void add(struct student stu[]){int i, id = 0; //i作为循环变量,id用来保存新学号char quit; //保存是否退出的选择do{printf("学号:");scanf("%d", &id);for (i = 0; i < n; i++){if (id == stu[i].id) //假如新学号等于数组中某生的学号{printf("此学号存在!\n");return;}}stu[i].id = id;printf("姓名:");scanf("%s", &stu[i].name);printf("语文成绩:");scanf("%d", &stu[i].chinese);printf("数学成绩:");scanf("%d", &stu[i].math);stu[i].sum = stu[i].chinese + stu[i].math; //计算出总成绩n++; //记录条数加1printf("是否继续添加?(Y/N)");scanf("\t%c", &quit);} while (quit != 'N');}void show(struct student stu[], int i){printf("%-10d", stu[i].id);printf("%-10s", stu[i].name);printf("%-10d", stu[i].chinese);printf("%-10d", stu[i].math);printf("%-10d\n", stu[i].sum);}void showAll(struct student stu[]){int i;HH;for (i = 0; i < n; i++){show(stu, i);}}void modify(struct student stu[]){char name[8], ch; //name用来保存姓名,ch用来保存是否退出的选择int i;printf("修改学生的记录。

学生信息管理系统C语言编程

学生信息管理系统C语言编程

学生信息管理系统C语言编程【问题描述】学生信息的管理是每个学校必须具有的管理功能,主要是对学生的基本情况及学习成绩等方面的管理。

该系统模拟一个简单的学生管理系统,要求对文件中所存储的学生数据进行各种常规操作,如:排序、查找、计算、显示等功能。

通过此课题,熟练掌握文件、数组、结构体的各种操作,在程序设计中体现一定的算法思想,实现一个简单的学生信息管理系统。

【基本要求】(1)学生信息包括:学生基本信息文件()(注:该文件不需要编程录入数据,可用文本编辑工具直接生成)的内容如下:(2)学生成绩基本信息文件()及其内容如下:((注:该文件内容需要编程录入数据,具体做法见下面的要求)学号课程编号课程名称学分平时成绩实验成绩卷面成绩综合成绩实得学分(3)需要实现的功能1)数据录入和计算功能:对进行数据录入,只录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据,综合成绩、实得学分由程序根据条件自动运算。

综合成绩的计算:如果本课程的实验成绩为-1,则表示无实验,综合成绩=平时成绩*30卷面成绩*70%;如果实验成绩不为-1,表示本课程有实验,综合成绩=平时成绩*15实验成绩*15卷面成绩*70% 。

实得学分的计算:采用等级学分制,综合成绩在90-100之间,应得学分=学分*100%;综合成绩在80-90之间,应得学分=学分*80%;综合成绩在70-80之间 ,应得学分=学分*75%;综合成绩在60-70之间,应得学分=学分*60%;综合成绩在60以下 ,应得学分=学分*0%。

2)查询功能:分为学生基本情况查询和成绩查询两种(1)学生基本情况查询:①、输入一个学号或姓名(可实现选择),查出此生的基本信息并显示输出,格式如下:②、输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。

(格式如上所示)(2)成绩查询:①、输入一个学号时,查询出此生的所有课程情况,格式如下:学号:姓名:课程编号:课程名称:综合成绩:实得学分:课程编号:课程名称:综合成绩:实得学分:课程编号:课程名称:综合成绩:实得学分:……………………共修:科,实得总学分为:(3)删除功能:提供待删除学生的学号,则在和中删除所有与该学生有关的信息。

C语言利用结构体数组实现学生成绩管理系统

C语言利用结构体数组实现学生成绩管理系统

C语⾔利⽤结构体数组实现学⽣成绩管理系统要求:某班有最多不超过30⼈(具体⼈数由键盘输⼊)参加期末考试,最多不超过6门(具体门数由键盘输⼊)。

定义结构体类型描述学⽣信息,每个学⽣信息包括:学号、姓名、多门课的成绩、总成绩和平均成绩。

⽤结构体数组作为函数参数,编程实现如下菜单驱动的学⽣成绩管理系统。

(1)录⼊每个学⽣的学号、姓名和各科考试成绩。

(2)计算每门课程的总分和平均分。

(3)计算每个学⽣的总分和平均分。

(4)按每个学⽣的总分由⾼到低排出名次表。

(5)按学号由⼩到⼤排出成绩表。

(6)按姓名的字典顺序排出成绩表。

(7)按学号查询学⽣排名极其考试成绩。

(8)按姓名查询学⽣排名极其考试成绩。

(9)按优秀(90~100)、良好(80~90)、中等(70~80)、及格(60~70)、不及格(0~59)5个类别,对每门课程分别统计每个类别的⼈数以及所占的百分⽐。

(10)输出每个学⽣的学号、姓名、各科考试成绩以及每门课程的总分和平均分。

代码:#include<stdio.h>#include<Windows.h>#include<conio.h>#define SN 30 //学⽣⼈数#define CN 6 //科⽬数#define NL 20 //名字字节长度typedef struct student{long int num;char name[NL];float score[CN];float sum;float aver;}STU;STU s[SN];int itemSelected=-1;int n=0;//学⽣数int m=0;//课程数int Menu();//菜单void chose(int itemSelected);//选择void inputScore();//输⼊分数void AverofC();//计算每门课程平均数void AverofS();//每名学⽣总分和平均分void sortByNum();//学⽣总分排⾏void sortByGrade();void sortByName();void findByNum();void findByName();void statisticsAnalysis();void printScore();void main(){printf("请输⼊学⽣总数(n<%d):\n",SN);scanf("%d",&n);printf("请输⼊课程总数(m<%d):\n",CN);scanf("%d",&m);while(1){itemSelected=Menu();chose(itemSelected);itemSelected=-1;}}int Menu(){int itemSelected;system("cls");printf("\n ==============学⽣成绩管理系统===============\n");printf("\t 1.输⼊学号、姓名及各科成绩\n");printf("\t 2.计算每门课程总分和平均分\n");printf("\t 3.计算每个学⽣总分和平局分\n");printf("\t 4.按每个学⽣总分⾼低排出名次表\n");printf("\t 5.按学号从⼩到⼤排出成绩表\n");printf("\t 6.按学⽣字典顺序排出成绩表\n");printf("\t 7.按学号查询学⽣排名和考试成绩\n");printf("\t 8.按姓名查询学⽣排名和成绩\n");printf("\t 9.结果分析\n");printf("\t 10.输出信息\n");printf("\t 0.退出\n");printf("===============================================\n"); printf("请选择选项:");scanf("%d",&itemSelected);return itemSelected;}void chose(int itemSelected){switch(itemSelected){case 1: inputScore(); break;case 2: AverofC();break;case 3: AverofS();break;case 4: sortByGrade();break;case 5: sortByNum();break;case 6: sortByName();break;case 7: findByNum();break;case 8: findByName();break;case 9: statisticsAnalysis();break;case 10: printScore();break;case 0: exit(0);printf("即将退出程序");break;default: printf("输⼊错误!");break;}}void inputScore(){printf("\n===============================================\n"); printf("请输⼊学⽣学号、姓名及各科信息(输⼊0停⽌信息输⼊)\n");for(int i=0;i<n;i++){printf("学号(8位)");scanf("%ld",&s[i].num);if(s[i].num==0) break;getchar();//吸收多余换⾏符printf("姓名");gets(s[i].name);printf("请输⼊各科成绩");s[i].sum=0;for(int j =0;j<m;j++){scanf("%f",&s[i].score[j]);s[i].sum +=s[i].score[j];}}}void AverofC(){float sum[CN]={0};float average[CN]={0};for(int i=0;i<m;i++){for(int j=0;j<n;j++){sum[i]+=s[j].score[i];}average[i]=sum[i]/n;printf("第%d门课程的总分为:%.2f,平均分为%.2f\n",i+1,sum[i],average[i]); }getch();}void AverofS(){float sum[SN]={0};float average[SN]={0};for (int i=0;i<n;i++){for(int j=0;j<m;j++){sum[i]+=s[i].score[j];}average[i]=sum[i]/m;printf("第%d个学⽣的总分为:%.2f,平均分为%.2f\n",i+1,sum[i],average[i]);}getch();}void sortByNum(){//按学号从⼩到⼤排序STU temp1={0};for(int i=0;i<n-1;i++){if(s[i].num>s[i+1].num){temp1=s[i];s[i]=s[i+1];s[i+1]=temp1;}}printf("\n==============按学号从⼩到排序===============\n"); for(int j=0;j<n;j++){printf("该学⽣的学号为:%d\n",s[j].num);printf("该学⽣的姓名为:");for(int k=0;k<NL;k++){printf("%c",s[j].name[k]);}printf("\n该学⽣的各科成绩为\n");for(int c=0;c<m;c++){printf("第%d门成绩为%.2f\n",c+1,s[j].score[c]);}printf("\n");}getch();}void sortByGrade(){//按总分从⾼到低排序STU temp1={0};for(int i=0;i<n-1;i++){if(s[i].sum<s[i+1].sum){temp1=s[i];s[i]=s[i+1];s[i+1]=temp1;}}printf("\n============按总成绩从⾼到低排序===========\n");for(int j=0;j<n;j++){printf("该学⽣的学号为:%d\n",s[j].num);printf("该学⽣的姓名为:");for(int k=0;k<NL;k++){printf("%c",s[j].name[k]);}printf("\n该学⽣的各科成绩为\n");for(int c=0;c<m;c++){printf("第%d门成绩为%.2f\n",c+1,s[j].score[c]);}printf("该学⽣的总成绩为:%.2f",s[j].sum);printf("\n");}getch();}void sortByName(){//按姓名⾸字母字典顺序排序STU temp1={0};for(int i=0;i<n-1;i++){if(((int)(s[i].name[0])>(int)(s[i+1].name[0]))){//将名字⾸字母转成成ASCII码从⽽⽐较⼤⼩排序temp1=s[i];s[i]=s[i+1];s[i+1]=temp1;}}printf("\n==============按学号从⼩到排序===============\n"); for(int j=0;j<n;j++){printf("该学⽣的学号为:%d\n",s[j].num);printf("该学⽣的姓名为:");for(int k=0;k<NL;k++){printf("%c",s[j].name[k]);}printf("\n该学⽣的各科成绩为\n");for(int c=0;c<m;c++){printf("第%d门成绩为%.2f\n",c+1,s[j].score[c]);}printf("该学⽣的总成绩为:%.2f",s[j].sum);printf("\n");}getch();}void findByNum() {int find=-1;//记录需要查找的学号,并作为查找成功与否的标识符printf("请输⼊要查找的学号:");scanf("%d",&find);for(int i=0;i<n;i++){if(s[i].num==find){printf("\n查找成功\n");printf("该学⽣的学号为%d\n",s[i].num);printf("该学⽣的姓名为:");for(int k=0;k<NL;k++){printf("%c",s[i].name[k]);}printf("\n该学⽣的各科成绩为\n");for(int c=0;c<m;c++){printf("第%d门成绩为%.2f\n",c+1,s[i].score[c]);}printf("该学⽣的总成绩为:%.2f",s[i].sum);printf("\n");find=-2;}}if(find!=-2){printf("查⽆此⼈\n");printf("按任意键继续");}getch();}void findByName(){int is_find=0;char find[SN];printf("请输⼊要查找的姓名:");getchar();gets(find);for(int i=0;i<n;i++){if(strcmp(s[i].name,find)==0){printf("\n查找成功\n");printf("该学⽣的学号为%d\n",s[i].num);printf("该学⽣的姓名为:");for(int k=0;k<NL;k++){printf("%c",s[i].name[k]);}printf("\n该学⽣的各科成绩为\n");for(int c=0;c<m;c++){printf("第%d门成绩为%.2f\n",c+1,s[i].score[c]);}printf("该学⽣的总成绩为:%.2f",s[i].sum);printf("\n");is_find=1;}}if(is_find!=1){printf("查⽆此⼈\n");printf("按任意键继续");}getch();}void statisticsAnalysis(){printf("输出每门课程优秀、良好、中等、及格、不及格⼈数所占的百分⽐\n"); int a1[CN]={0},a2[CN]={0},a3[CN]={0},a4[CN]={0},a5[CN]={0};for(int i=0;i<n;i++){for(int j=0;j<m;j++){if(s[i].score[j]>=90 && s[i].score[j]<=100){a1[j]++;}else if (s[i].score[j]>=80 && s[i].score[j]<90){a2[j]++;}else if (s[i].score[j]>=70 && s[i].score[j]<80){a3[j]++;}else if (s[i].score[j]>=60 && s[i].score[j]<70){a4[j]++;}else if (s[i].score[j]<60){a5[j]++;}}}printf("\n====================各们课程概况==================\n");for(int k=0;k<m;k++){printf("第%d门课的优秀⼈数占%.2f%%,",k+1,(a1[k]/(n*1.0))*100);printf("良好⼈数占%.2f%%,",(a2[k]/(n*1.0))*100);printf("中等⼈数占%.2f%%,",(a3[k]/(n*1.0))*100);printf("及格⼈数占%.2f%%,",(a4[k]/(n*1.0))*100);printf("不及格⼈数占%.2f%%,",(a5[k]/(n*1.0))*100);printf("\n");}getch();}void printScore(){printf("==============以下为学⽣信息==============");for(int j=0;j<n;j++){printf("该学⽣的学号为:%d\n",s[j].num);printf("该学⽣的姓名为:");for(int k=0;k<NL;k++){printf("%c",s[j].name[k]);}printf("\n该学⽣的各科成绩为\n");for(int c=0;c<m;c++){printf("第%d门成绩为%.2f\n",c+1,s[j].score[c]);}printf("该学⽣的总成绩为:%.2f",s[j].sum);printf("\n");}getch();}更多学习资料请关注专题《》。

学生成绩管理系统-T-SQL编程3

学生成绩管理系统-T-SQL编程3

学生成绩管理系统-T-SQL编程3/*--案例:查询学号是12003学生参加2009年6月10日举办的“Java Logic”课程考试的成绩,使用Print语句输出学生姓名和成绩--*/ DECLARE @NAME varchar(50) --姓名DECLARE @Result decimal(5,2) --考试成绩DECLARE @NO int SET @NO = 10000 SELECT @NAME = StudentName FROM Student WHERE StudentNo=@NO SELECT @Result = StudentResult FROM Student INNER JOIN Result ON Student.StudentNo=Result.StudentNo INNER JOIN Subject ON Result.SubjectNo=Subject.SubjectNo WHERE SubjectName='Java Logic' AND Student.StudentNo=@NO AND ExamDate>='2009-2-15' AND ExamDate<'2009-2-16' PRINT '姓名:'+@NAME --PRINT '成绩:'+ @Result PRINT '成绩:'+ Cast(@Result as varchar(10))/*--案例:查询学号是20011学生的姓名和年龄,并输出比他大1岁和小1岁的学生信息--*/DECLARE @NO int SET @NO = 20011 -- 获得学号是20011的学生姓名和年龄SELECT StudentName 姓名,FLOOR(DATEDIFF(DY, BornDate, GETDATE())/365) 年龄 FROM student WHERE StudentNo=@NO -- 查询输出比学号是20011的学生大1岁和小1岁的学生信息DECLARE @date datetime,@year int --出生日期SELECT @date=BornDate FROM Student WHERE StudentNo=@NO --使用SELECT赋值print @date SET @year = DATEPART(YY,@date) SELECT * FROM Student WHERE DATEPART(YY,BornDate)=@year+1 or DATEPART(YY,BornDate)=@year-1/*--案例:按年月日格式显示系统当前日期--*/ PRINT CONVERT(varchar(4),DATEPART(year,GETDATE()))+'年'+CONVERT(varchar(2),DATEPART(month,GETDATE()))+'月'+CONVERT(varchar(2),DATEPART(day,GETDATE()))+'日'/*--案例:统计学生“Java Logic”课最近一次考试的平均分并显示后3名学生成绩--*/ DECLARE @date datetime --最近考试时间SELECT @date=max(ExamDate) FROM Result INNER JOIN Subject ON Result.SubjectNo=Subject.SubjectNoWHERE SubjectName='Java Logic'DECLARE @myavg decimal(5,2) --平均分SELECT @myavg=AVG(StudentResult) FROM Student INNER JOIN Result ON Student.StudentNo=Result.StudentNo INNER JOIN Subject ON Result.SubjectNo=Subject.SubjectNo WHERE SubjectName='Java Logic' AND ExamDate=@datePRINT '平均分:'+CONVERT(varchar(5),@myavg) IF (@myavg>70) BEGINPRINT '考试成绩优秀,前三名的成绩为' SELECT TOP 3 StudentNo, StudentResult FROM ResultINNER JOIN Subject ON Result.SubjectNo=Subject.SubjectNoWHERE SubjectName='Java Logic' AND ExamDate=@dateORDER BY StudentResult DESC ENDELSEBEGINPRINT '考试成绩较差,后三名的成绩为' SELECT TOP 3 StudentNo, StudentResult FROM ResultINNER JOIN Subject ON Result.SubjectNo=Subject.SubjectNoWHERE SubjectName='Java Logic' AND ExamDate=@dateORDER BY StudentResult END----资料来源北大青鸟中关村官网北大青鸟中关村软件园官网北大青鸟中关村学士后本部官网。

学生成绩管理系统代码(c语言编写)

学生成绩管理系统代码(c语言编写)

C程序学生管理系统宇文皓月/* Note:Your choice is C IDE */ #include"stdio.h"#include"stdlib.h"#include"string.h"typedefstruct student//定义学生{char name[10];int number;char sex[2];int math;int eglish;int clanguge;int average;}student;typedefstruct unit//定义接点{student date;struct unit *next;}unit;unit* build()//建立链表并返回指针{unit *p;if((p=(unit*)malloc(sizeof(unit)))==NULL){ printf("=>初始化失败!");return 0;}else{p->next=NULL;p->date.number=0;//头结点存放学生人数 printf("初始化成功!\n");return p;}}void add(unit *head)//增加学生{unit *p,*q;int m,n=0;q=head->next;p=(unit*)malloc(sizeof(unit));printf("=>请输入新生姓名!\n");gets(p->);fflush(stdin);while(n==0){scanf("%d",&m);fflush(stdin);if(q==NULL) n=1;while(q){if(q->date.number==m){printf("=>你输入的学号与已有同学的学号相同,请重新输入!\n");q=head->next;break;}else{q=q->next;if(q==NULL) n=1;}}}p->date.number=m;gets(p->date.sex);fflush(stdin);printf("=>请输入数学成绩\n");scanf("%d",&m);fflush(stdin);p->date.math=m;printf("=>请输入英语成绩\n");scanf("%d",&m);fflush(stdin);p->date.eglish=m;printf("=>请输入c语言成绩\n");scanf("%d",&m);fflush(stdin);p->date.clanguge=m;p->date.average=(p->date.math+p->date.eglish+p->date.clanguge);q=head->next;head->next=p;p->next=q;head->date.number++;}void deletion(unit *head)//删除一名学生{unit *p=head->next,*q=head;char N[10];printf("=>请输入你想删除的学生姓名!\n");gets(N);fflush(stdin);if(p==NULL)printf("=>系统无学生可删除!\n");while(p){if(strcmp(p->,N)==0){q->next=p->next;head->date.number--;printf("=>删除%s成功!\n",p->);free(p);break;}else{p=p->next;q=q->next;if(p==NULL)printf("=>你要删除的学生不存在,删除失败!\n");}}}int display(unit *head)//显示学生信息{unit *p=head->next;int m,n=0;char N[10];if(p==NULL){printf("=>系统无学生!\n");return 0;}while(n==0){printf("******************************************** **********************************\n");printf("=>请选择你的操纵!\n");printf("=>\t\t\t1.显示所有\t2.按姓名查找\n\t\t\t3.按学号查找\t4.返回主菜单\n");scanf("%d",&m);fflush(stdin);switch(m){case 1:printf("\n=>该系统拥有%d名学生!\n\n",head->date.number);p=head->next;printf("\t姓名\t学号\t性别\t数学\t 英语\tc语言\t综合\n\n");while(p){printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p->,p->date.number,p->date.sex,p->date.math,p->date.eglish,p->date.clanguge,p->date.average);p=p->next;}break;case 2:printf("=>请输入查找姓名!\n");gets(N);fflush(stdin);p=head->next;while(p){if(strcmp(p->,N)==0){printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t综合\n");printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p->,p->date.number,p->date.sex,p->date.math,p->date.eglish,p->date.clanguge,p->date.average);break;}else{p=p->next;if(p==NULL)printf("=>你要查的学生不存在!"); }}break;case 3: printf("=>请输入查找学号!\n");scanf("%d",&m);fflush(stdin);p=head->next;while(p){if(p->date.number==m){printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t综合\n");printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p->,p->date.number,p->date.sex,p->date.math,p->date.eglish,p->date.clanguge,p->date.average);break;}else{p=p->next;if(p==NULL)printf("=>你要查的学生不存在!\n");}}break;case 4:n=1;break;}}return 1;}int range(unit *head)//排序{unit *p=head,*q=head->next;int n,i,m=head->date.number;printf("******************************************** ***********************************\n");printf("\t\t\t1.按学号\t2.按成绩\n\n");printf("=>请选择操纵!\n》");scanf("%d",&n);fflush(stdin);if(q==NULL){ printf("=>无学生可排序!\n");return 0;}switch(n){case 2:for(i=0;i<m;i++)//按总分排序{p=head;q=head->next;while(q->next){if((q->date.average)<(q->next->date.average)){p->next=q->next;p=p->next;q->next=p->next;p->next=q;}else{p=p->next;q=q->next; }}}break;case 1:for(i=0;i<=m;i++)//按学号排序{p=head;q=head->next;while(q->next){if((q->date.number)>(q->next->date.number)){p->next=q->next;p=p->next;q->next=p->next;p->next=q;}else{p=p->next;q=q->next; }}}break;}printf("=>排序成功!\n");return 1;}void menu(){printf("\n********************************* 主菜单***************************************\n");printf("\t\t\t1.新建系统\t2.添加学生\n\t\t\t3.删除学生\t4.检查信息\n\t\t\t5.排列顺序\t6.读取信息\n\t\t\t7.保管信息\t8.退出系统\n");printf("=>请选择你的操纵!\n");}int save(unit *head)//保管{FILE *fp;unit *p;p=head;if((fp=fopen("d:\\学生","wb+"))==NULL){printf("=>保管失败!");return 0;}while(p){fwrite(&(p->date),sizeof(student),1,fp);p=p->next;}printf("=>保管成功!");fclose(fp);return 1;}unit* read()//读入系统学生信息{int i;unit *p,*q,*head;FILE *fp;if((head=(unit*)malloc(sizeof(unit)))==NULL){ printf("=>开辟空间失败!");exit(1);}else{head->next=NULL;head->date.number=0;//头结点存放学生人数}q=head;if((fp=fopen("d:\\学生","rb"))==NULL){printf("=>系统无学生!\n");return 0;}fread(&(q->date),sizeof(student),1,fp);for(i=0;i<head->date.number;i++){if((p=(unit*)malloc(sizeof(unit)))==NULL){ printf("=>读值失败!");exit(1);}fread(&(p->date),sizeof(student),1,fp);p->next=q->next;q->next=p;}fclose(fp);return head;}void main(){int m=0,n, i;unit *head;printf("************************************************* *******************************\n\n");printf("\t\t\t* 欢迎使用学生成绩管理系统 * \n");printf("\n\t\t\t\t\t\t\t\t编译员:岳英明\n\n"); printf("=>正在读取系统信息......\n");if((head=read())==0){printf("=>是否新建?\n");printf("\t\t\t是(1)\t\t否(2)\n");scanf("%d",&i);fflush(stdin);if(i==1)head=build();elseif(i==2)exit(1);}elseprintf("=>信息导入成功!");while(m==0){menu();scanf("%d",&n);fflush(stdin);switch(n){case 1: head=build();break;case 2:add(head);break;case 3:deletion(head);break;case 4:display(head);break;case 5: range(head);break;case 6:head=read();if(head!=0) printf("=>读取存盘成功!\n");break;case 7:save(head);break;case 8:m=1;break;}}}。

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

云南师范大学
实验报告
课程:《计算机技术基础》任课教师:陈娟实验指导教师:陈娟
姓名:李华福学号:114090395 专业:物电学院电子信息科学类日期:2012-5-31
成绩:
一.实验项目名称:《学生成绩查询》
二.实验项目的目的和任务:存入N个学生的成绩表(学号、姓名、成绩),输入学号或姓名,查找其成绩。

输入学生信息,制成学生成绩信息表,通过查找方法查询该学生成绩(比较输入的学生姓名或学号与原来的信息大小,判断是否符合),最后输出表及成绩。

三.实验内容:通过input函数录入学生成绩表,并通过output函数输出学生成绩表;xmchazhao函数和xhchazhao函数能分别以不同的方式查找成绩;最后顺利查找到学生成绩。

四.程序描述:考虑到结构体非常适合该题解答(后面总结结构体与与数组在该题中的优劣),首先定义结构体struct biao[],并分别定义了序号、姓名、学号、成绩信息(假设其为10个字符长)。

编写函数input(),该函数实现了从键盘输入数据,构成前面说到列表。

随之的是函数output(),实现把学生信息制表。

Xmchazhao()(姓名查找)函数能比较两字符串的大小,将其输出,xhchazhao()(学号查找)函数类似前一个函数。

最后是主函数,实现了调用input()、output()、xmchazhao()、xhchazhao ()函数,并利用switch( )函数选择查找方式。

五.运行截图:
(图一:录入数据并制表)
(图二:按1通过姓名查找成绩) (图三:按2通过学号查找成绩)
(图四:输入的不是1和2) (图五:姓名输入错误)
(图六:学号输入错误)
五.程序代码:
六.#include<stdio.h>
七.#include<string.h>
八.#define N 3 //N 位同学的信息
九.struct //定义结构体
十.{
十一. int num; //序号
十二. char xingming[11]; //姓名
十三. char xuehao[11]; //学号
十四. char chengji[11]; //成绩
十五. }biao[N];
十六. int input() //输入函数
十七. {
十八. int n=0;
十九. while(n<N)
二十. {
二十一. biao[n].num=n+1;
二十二. printf("\n 第%d 条信息:
\n",biao[n].num);
二十三.printf("请输入姓名:");
二十四.gets(biao[n].xingming);
二十五.if(biao[n].xingming[0]=='\0')
二十六.break;
二十七.printf("请输入学号:");
二十八.gets(biao[n].xuehao);
二十九.printf("请输入成绩:");
三十.gets(biao[n].chengji);
三十一.n++;
三十二.}
三十三.
三十四.return n;
三十五.}
三十六.void output() //输出函数
三十七.{
三十八. int i;
三十九.puts("\n序号\t姓名\t学号\t成绩");
四十.for(i=0;i<N;i++)
四十一.
printf("%d\t%s\t%s\t%s\n",biao[i].num,biao[i].xingming,biao[i] .xuehao,biao[i].chengji);
四十二.}
四十三.int xmchazhao() //按姓名查找
四十四.{
四十五. int i=0;
四十六. char xm[11];
四十七. printf("\n请输入姓名:");
四十八. scanf("%s",xm);
四十九. while(strcmp(xm,biao[i].xingming)!=0&&i<N) //比较两个字符串的大小
五十.i++;
五十一.
五十二.if(i>=N)
五十三.i=-1;
五十四.return i;
五十五.}
五十六.int xhchazhao() //按学号查找
五十七.{
五十八.int i=0;
五十九.char xh[11];
六十.printf("\n请输入学号:");
六十一.scanf("%s",xh);
六十二.while(strcmp(xh,biao[i].xuahao)!=0&&i<N) //比较大小
六十三.i++;
六十四.if(i>=N)
六十五.i=-1;
六十六.return i;
六十七.}
六十八.Void main()
六十九.{
七十.
七十一. int n,i;char ch;char A[11],B[11];
七十二. n=input(n);
七十三. output(n);
七十四. puts("\n1.通过姓名查找!");
七十五. puts("\n2.通过学号查找!");
七十六. printf("请选择:");
七十七. scanf("%d",&ch);
七十八.switch(ch)
七十九. {
八十. case 1:i=xmchazhao();
八十一. if(i>=0) puts(strcpy(A,biao[i].chengji));
//如果找到,把它复制到数组A中
八十二. else
八十三. printf("输入错误!");
八十四. break;
八十五. case 2:i=xhchazhao();
八十六. if(i>=0) puts(strcpy(B,biao[i].chengji));
//如果找到,把它复制到数组B中
八十七.
八十八. else
八十九. printf("输入错误!");
九十. break;
九十一. default: //当输入的
不是1和2时提示错误
九十二. printf("\n选择错误!\n");
九十三. }
九十四.}
九十五.实验总结:通过该实验认真学习了解了:结构体的定义与使用情况(体会到了结构体与数组的异同:数组要同类型的数据才能进行定义和使用,而结构体可以有不同数据类型,如序号是整,姓名、学号、成绩是字符型;可以把结构体看成是几个不同的一位数组加以定义和使用);循环结构的使用与意义;函数调用使得整个程序看起来清晰有序,容易理解与查找错误;主函数有几个函数组成(input、output、xmchazhao和xhchazhao),使得主函数更有针对性。

九十六.三天的努力成果,貌似不错。

不过也遇到不少麻烦:比如,puts(strcpy(B,biao[i].chengji))中把biao[i].chengji复制给B数组写反了,查找了半天;调用函数时形参与实参模糊,对数据的传递理解也是个问题。

相关文档
最新文档