C语言写的学生成绩管理系统(链表)

C语言写的学生成绩管理系统(链表)
C语言写的学生成绩管理系统(链表)

#include

#include

#include

struct stud{

long num;

char name[20];

float sx;

float dx;

float ts;

float dl;

float cx;

float zf;

float pj;

};

struct studcode{

struct stud student;

struct studcode *next;

};

void menu();

void input(struct studcode **);

void output(struct studcode *);

void binsearch(struct studcode *);

void insert(struct studcode **);

void delet(struct studcode **);

void good(struct studcode *);

void fail(struct studcode *);

void sort(struct studcode *);

void back();

void main()

{

char choose;

int flag=1;

struct studcode *head;

head=NULL;

printf(" 请先录入学生成绩信息\n");

printf(" 输入学生学号高数、英语读写、英语听说、计算机导论和程序设计的成绩

\n");

input(&head);

while (flag)

{

system("cls");

menu(); printf(" 请选择 :"); getchar(); choose=getchar();

switch(choose)

{

case '1': output(head); back(); break;

case '2': binsearch(head); back(); break;

case '3': insert(&head); output(head); back(); break;

case '4': delet(&head); output(head); back(); break;

case '5': good(head); back(); break;

case '6': fail(head); back(); break;

case '7': sort(head); output(head); back(); break;

case '0': flag=0; printf("\n *** The End! ***\n"); printf("\n #### 感使用,欢

迎再次登录,拜拜! break;

default: printf("\n Wrong Selection ! (选择错误,请

重选 ) \n"); back();

}

}

}

void menu()

{

void back()

{

int x;

printf("\n");

do{

printf(" 按 1 返回菜单界面 :"); scanf("%d",&x);

}while(x!=1);

} printf(" \n

学生成绩统计与分析系统 \n");

printf(" \n 菜 单 \n\n");

printf(" \n 1.

显示所有学生的信息 \n"); printf(" \n 2.

查找某学号的学生信息 \n"); printf(" \n 3.

插入某学生的信息 \n"); printf(" \n 4.

删除某学号学生的信息 \n"); printf(" \n 5.

统计各门课程成绩在 90 分以上学生所占百分比 printf(" \n 6.

统计各门课程成绩在 60 分以下学生所占百分比 printf(" \n 7.

按总分降序排序,依高低排出名次 \n"); printf(" \n

0. 退出 \n\n"); \n"); \n"); ####\n");

void input(struct studcode **headp) {

struct studcode *p;

while(1)

{

p=(struct studcode *)malloc(sizeof(struct studcode));

scanf("%ld",&p->student.num);

if(p->student.num==0) break;

scanf("%s%f%f%f%f%f",&p->https://www.360docs.net/doc/4410994070.html,,&p->student.sx,&p->student.dx,&p->student.ts,

&p->student.dl,&p->student.cx);

p->student.zf=p->student.sx+p->student.dx+p->student.ts+p->student.dl+p->student.cx;

p->student.pj=p->student.zf/ 5;

p->next=*headp;

*headp=p;

}

}

void output(struct studcode *head)

{

struct studcode *p;

p=head;

printf(”学号\t\t高数\t读写\t听说\t导论\t程序\t总分\t平均分\n");

while(p!=NULL){ printf("%-ld\t%-4s\t%-0.2f\t%-0.2f\t%-0.2f\t%-0.2f\t%-0.2f\t%-0.2f\t%-

0.2f\n",p->student.n

um,p->https://www.360docs.net/doc/4410994070.html,,p->student.sx,p->student.dx,p->student.ts,p->student.dl,p->student.cx,p-> s tudent.zf,p->student.pj);

p=p->next;

}

printf("\n");

}

void binsearch(struct studcode *head)

{

struct studcode *p;

int k=1;

long x;

p=head;

printf(" 请输入需要查找的学生的学号:"); scanf("%ld",&x);

printf("\n");

while(p!=NULL){ if(p->student.num==x)

{

printf(" 该学生信息如下:\n");

printf("学号\t\t高数\t读写\t听说\t导论\t程序\t总分\t平均分\n");

printf("%-ld\t%-4s\t%-0.2f\t%-0.2f\t%-0.2f\t%-0.2f\t%-0.2f\t%-0.2f\t%-

0.2f\n",p->student.num,p

->https://www.360docs.net/doc/4410994070.html,,p->student.sx,p->student.dx,p->student.ts,p->student.dl,p->student.cx,p->stud e nt.zf,p->student.pj);

k=0;

break;

}

p=p->next;

}

if(k) printf(" 没有此学生的信息\n");

}

void insert(struct studcode **headp)

{

struct studcode *p;

p=(struct studcode *)malloc(sizeof (struct studcode));

printf(" 请输入你想插入的学生的信息\n");

scanf("%ld%s%f%f%f%f%f",&p->student.num,&p->https://www.360docs.net/doc/4410994070.html,,&p->student.sx,&p->stude

nt.dx,&p->student.ts,&p->student.dl,&p->student.cx);

p->student.zf=p->student.sx+p->student.dx+p->student.ts+p->student.dl+p->student.cx;

p->student.pj=p->student.zf/ 5;

p->next=*headp;

*headp=p;

printf("***** 插入成功*****\n");

}

void delet(struct studcode **headp)

{

struct studcode *p,*last; long x;

p=*headp;

printf(" 请输入你要删除的学生的学号:"); scanf("%ld",&x);

while(p->student.num!=x&&p->next!=NULL){ last=p;

p=p->next;

} if(p->student.num==x)

{ if(p==*headp) *headp=p->next;

else

last->next=p->next;

free(p);

printf("\n***** 删除成功*****\n");

}

else printf("\n*** 删除失败,无该学生信息***\n");

}

struct studcode *p;

int x1,x2,x3,x4,x5,k;

float y1,y2,y3,y4,y5;

x1=x2=x3=x4=x5=k=0;

p=head;

while(p!=NULL){

k++;

if(p->student.sx>=90) x1++;

if(p->student.dx>=90) x2++;

if(p->student.ts>=90) x3++;

if(p->student.dl>=90) x4++;

if(p->student.cx>=90) x5++; p=p->next;

}

y1=(float)x1/k;

y2=(float)x2/k;

y3=(float)x3/k;

y4=(float)x4/k;

y5=(float)x5/k;

printf(" 高数\t 读写\t 听说\t 导论\t 程序\n"); printf("%-0.2f\t%-0.2f\t%-

0.2f\t%-0.2f\t%-0.2f\n",y1,y2,y3,y4,y5);

}

void fail(struct studcode *head) {

struct studcode *p; int x1,x2,x3,x4,x5,k; float y1,y2,y3,y4,y5; x1=x2=x3=x4=x5=k=0;

p=head; while(p!=NULL){ k++; if(p->student.sx<60) x1++; if(p->student.dx<60) x2++;

if(p->student.ts<60) x3++; if(p->student.dl<60) x4++; if(p->student.cx<60) x5++;

p=p->next;

}

y1=(float)x1/k;

y2=(float)x2/k;

y3=(float)x3/k;

y4=(float)x4/k;

y5=(float)x5/k;

printf(" 高数\t 读写\t 听说\t 导论\t 程序\n"); printf("%-0.2f\t%-0.2f\t%-

0.2f\t%-0.2f\t%-0.2f\n",y1,y2,y3,y4,y5);

}

{

struct stud temp;

int i,j,n;

struct studcode *p,*p1,*p2;

n=0;

p=head;

while(p!=NULL){

n++; p=p->next;

} for(p1=head,i=0;inext) for(p2=p1->next,j=i+1;jnext) if(p1->student.zfstudent.zf)

{

temp=p2->student; p2->student=p1->student; p1->student=temp;

}

printf("\n***** 排序成功*****\n");

C++课程设计单链表——学生信息管理系统

学生信息管理系统设计文档 一、设计任务描述 为了实现学籍管理的简单化,我们基于Visual C++集成开发环境编写了“学生信息管 理系统”软件,该软件适用于所有win dows操作系统,面向广大用户, 界面简洁,操作简单。此软件主要是实现对学生学籍信息进行系统化的管理,可 以对学生基本信息进行添加、删除、查找、修改以及对学生成绩的管理,主要是根据学生的学号及其姓名进行操作的。该软件可以更加方便管理者管理学生学籍信息。 二、功能需求说明 该系统所需要的功能有:1链表的建立; 2、学生信息的插入; 3、学生信息的查询; 4、学生信息的输出; 5、学生信息的修改; 6、学生信息的删除; 7、良好的欢迎选择界面。 三、总体方案设计 一、实现任务的方法 1、在欢迎选择界面中,使用Switch这一选择结构来连接程序的执行和用户的命令; 2、在从学生信息的建立直到删除,都是使用链表的相关知识; 3、在定义学生信息时,建立一个Inform类;在定义学生课程成绩时,自定义了一个achieve结构体;

ST rucr acnieve { int nunber : char nane [10] [10]; float achieveiaent [13]: float xuefen [10]: float 0 : float average ; achieve C): float count average (); struct Inform {chai name[10]: char num[20]: string sex: string: id; string bir; string adr : string tel, achieve ach; void achinput 0 : void achprint 0 ; }; 三、模块划分 (1)链表的建立。 (2)对链表信息的插入。 (3)对链表信息的查找。 (4)对链表信息的输出。 (5)对链表信息的删除。 (6)对链表信息的修改。 课程成绩信息作为附加信息,穿插于各个模块中 三、数据结构说明 一、自定义的数据结构: 1、achieve (课程成绩)用于存放课程成绩信息包括课程数、课程名、 成绩、学分、总分和平均分。 "谍稈数 〃课程容(最參课稈数为nn "成绩 "学专 "总分 "平均分 "默认枸隆雷教 "计算该学生课程的加权平均分(总咸绩/总学分) "元素类型 "姓名 〃学号 〃性别 "身份证号 //出生年月曰 〃家庭地址 "电话号码 "课程咸绩 "谍程成绩输入 "遥程成缢输出 3、结点结构-Nodetype,定义了数据域inform和指针域next; 2、inform (学生基本信息)用于存放学生基本信息,包括姓名、学号、性别等。

用链表与文件实现学生成绩管理系统

#include #include #include #include #include using namespace std; struct Class { int Chinese; int Math; int English; }; class Student { public: Student(); void Ofile(ofstream &of); void Infile(ifstream &f); void Out(); void Set(char *name,int no,Class score); char *GetName(); int GetNo(); Student *Next; protected: char Name[20]; int No; Class Score; }; Student::Student():Next(0){} char *Student::GetName() { return Name; } int Student::GetNo() {return No;} void Student::Set(char *name,int no,Class score) { strcpy(Name,name); No=no; Score=score; } void Student::Infile(ifstream &f) { f>>Name>>No>>Score.Chinese>>Score.Math>>Score.English; //将数据输入到文

用链表与文件实现学生成绩管理系统

用链表与文件实现学生成绩管理系统 学生姓名:李卉指导老师:肖增良 摘要学生成绩管理系统是典型的信息管理系统,是学校教务管理的重要组成部分,其处理信息量很大。本课程设计是用C++实现对学生的成绩管理作一个简单的模拟,实质是建立学生成绩单链表,每条记录由姓名、学号与成绩组成,即链表中每个结点由4个域组成,分别为:学号、姓名、成绩、存放下一个结点地址的next域。用菜单选择操作方式完成五项功能分别写成五个函数,插入学生成绩对应建立学生单链表的功能,输出全部学生成绩记录,后三个功能分别对应单链表的查询、修改与删除三大基本操作。该系统中的数据采用线性表中的链式存储结构即单链表来存储,用结构体类型和类类型定义每个学生记录并采用外部文件方式记录数据简便数据的读取与保存。 关键词程序设计;C++;单链表;学生成绩管理系统

1 引言............................................................................................................................................................ 3 1.1 课程设计目的..................................................................................................................................... 3 1.2课程设计内容...................................................................................................................................... 3 1.3课程设计目标...................................................................................................................................... 42系统需求与功能分析..................................................................................................................................... 5 2.1 系统需求分析..................................................................................................................................... 5 2.2系统功能分析...................................................................................................................................... 5 2.3系统性能分析...................................................................................................................................... 63总体结构设计................................................................................................................................................. 7 3.1系统的结构设计.................................................................................................................................. 7 3.2系统管理流程图.................................................................................................................................. 7 4 系统详细设计和系统实现............................................................................................................................ 9 5 系统测试.................................................................................................................................................... 13 6 结束语........................................................................................................................................................ 16参考文献........................................................................................................................................................ 17附录1:结构化设计源程序清单......................................................................................................... 18

单链表的学生成绩管理系统设计与实现

长春建筑学院《数据结构》课程设计(论文) 基于单链表的学生成绩管理系统设计与实现 Design and implementation of the system of student performance management based on single table 年级: 12级 学号: 121500103 姓名: 徐文辉 专业:计算机科学与技术 指导老师: 常大俊 二零一三年十二月

摘要 学生成绩管理系统是典型的信息管理系统,是学校教务管理的重要组成部分,其处理信息量很大。本课程设计是用C++实现对学生的成绩管理作一个简单的模拟,实质是建立学生成绩单链表,每条记录由姓名、学号与成绩组成,即链表中每个结点由4个域组成,分别为:学号、、成绩、存放下一个结点地址的next域。用菜单选择操作方式完成五项功能分别写成五个函数,插入学生成绩对应建立学生单链表的功能,输出全部学生成绩记录,后三个功能分别对应单链表的查询、修改与删除三大基本操作。该系统中的数据采用线性表中的链式存储结构即单链表来存储,用结构体类型和类类型定义每个学生记录并采用外部文件方式记录数据简便数据的读取与保存。 关键词:数据结构,单链表,C语言,学生成绩管理

Abstract Student achievement management system is a typical management information system, is an important part of the school educational administration management, the large amount of information. The curriculum design is used to achieve C++ performance management for the students to make a simplesimulation, the essence is to establish students report list, each recordconsists of name,and grade, namely the linked list in each node iscomposed of 4 domains, respectively: next domain name, student number,grade, put down a node address the. Complete the five functions were written in five function menu to select the mode of operation, into the student achievement established a single list of the output function of students, allstudents record, after the three functions corresponding to single table query,modify and delete the three basic operations. The system data in the linked storage structure of linear table is a single linked list to store, use the structure types and class types define each student records and the use of an external file to read and save data and simple data record.

C语言写的学生成绩管理系统(链表)

#include #include #include struct stud{ long num; char name[20]; float sx; float dx; float ts; float dl; float cx; float zf; float pj; }; struct studcode{ struct stud student; struct studcode *next; }; void menu(); void input(struct studcode **); void output(struct studcode *); void binsearch(struct studcode *); void insert(struct studcode **); void delet(struct studcode **); void good(struct studcode *); void fail(struct studcode *); void sort(struct studcode *); void back(); void main() { char choose; int flag=1; struct studcode *head; head=NULL; printf("请先录入学生成绩信息\n"); printf("输入学生学号姓名高数、英语读写、英语听说、计算机导论和程序设计的成绩\n"); input(&head); while (flag)

{ system("cls"); menu(); printf("请选择:"); getchar(); choose=getchar(); switch(choose) { case '1': output(head); back(); break; case '2': binsearch(head); back(); break; case '3': insert(&head); output(head); back(); break; case '4': delet(&head); output(head); back(); break; case '5': good(head); back(); break; case '6': fail(head); back(); break; case '7': sort(head); output(head); back(); break; case '0': flag=0; printf("\n *** The End! ***\n"); printf("\n ####感谢使用,欢迎再次登录,拜拜!####\n");

C++学生成绩管理系统(完整)

( 二〇一四 年 十 一月 课程设计说明书 本科毕业设计 题 目: 学生成绩管理系统(教师端) 学生姓名: 陈 学 院:工学院 专 业:数字媒体技术 班 级:2013级 指导教师:

目录 一、设计题目(问题)描述和要求 ................................................... - 1 - 二、系统分析与模块设计 ................................................................... - 1 - 三、系统设计 ....................................................................................... - 2 - 1. 系统总体框架 ............................................................................ - 4 - 2. 系统关键算法流程图 ................................................................ - 5 - 四、运行结果 ..................................................................................... - 10 - 五、小结 ............................................................................................. - 10 - 六、参考资料 ..................................................................................... - 20 -

C++课程设计 单链表——学生信息管理系统

C++课程设计单链表——学生信息管理系统

学生信息管理系统设计文档 一、设计任务描述 为了实现学籍管理的简单化,我们基于Visual C++集成开发环境编写了“学生信息管理系统”软件,该软件适用于所有windows操作系统,面向广大用户,界面简洁,操作简单。此软件主要是实现对学生学籍信息进行系统化的管理,可以对学生基本信息进行添加、删除、查找、修改以及对学生成绩的管理,主要是根据学生的学号及其姓名进行操作的。该软件可以更加方便管理者管理学生学籍信息。 二、功能需求说明 该系统所需要的功能有:1、链表的建立; 2、学生信息的插入; 3、学生信息的查询; 4、学生信息的输出; 5、学生信息的修改; 6、学生信息的删除; 7、良好的欢迎选择界面。 三、总体方案设计 一、实现任务的方法 1、在欢迎选择界面中,使用Switch 这一选择结构来连接程序的执行和用户的命令; 2、在从学生信息的建立直到删除,都是使用链表的相关知识; 3、在定义学生信息时,建立一个Inform 类;在定义学生课程成绩时,自定义了一个achieve 结构体; 二、总体结构

三、模块划分 (1)链表的建立。 (2)对链表信息的插入。 (3)对链表信息的查找。 (4)对链表信息的输出。 (5)对链表信息的删除。 (6)对链表信息的修改。 课程成绩信息作为附加信息,穿插于各个模块中。 三、数据结构说明 一、自定义的数据结构: 1、achieve(课程成绩)用于存放课程成绩信息包括课程数、课程名、成绩、学分、总分和平均分。 2、inform(学生基本信息)用于存放学生基本信息,包括姓名、学号、性别等。 3、结点结构-Nodetype,定义了数据域inform和指针域next;

利用单项链表实现简单的学生信息管理

利用单项链表实现简单的学生信息管理 一、题目: 利用单项链表实现简单的学生信息治理(07) 二、设计思路 1、总体设计 1)分析程序的功能 创建单项链表储存学生的各项信息,学号、姓名、成绩。并能够完成学生信息的插入、删除及信息的显示功能。 2)系统总体结构: 按照程序要求的功能采纳结构化的设计思想,划分为五个功能模块,即创建链表、插入函数、删除函数、显示函数和主函数。 2、各功能模块的设计:讲明各功能模块的实现方法 ①头文件:对自己定义的函数进行函数声明。 ②主函数:进行函数的调用,实现各函数的功能,达到预期的目的。 ③函数定义部分:定义各个功能函数,创建链表函数、插入新信息函数、删除信息函数、显 示信息函数。 3、设计中的要紧困难及解决方案 1)在插入新信息时,有插入点在表头、中间、表尾三种情形,为此采纳讨论的方法,把三种情形进行讨论使其分开进行。 2)在删除信息时,有删除的为头结点和中间结点的情形,采纳讨论的方法,把两种情形分开来进行。 4、你所设计的程序最终完成的功能 1)创建链表、插入新信息、删除信息、显示信息。 2)测试数据 ①输入的数据

99812 LiuLifang 91 学号姓名成绩 96085 WangLiPing 77 98120 ZhangLi 75 99912 LiuHai 80 ③删除的数据 学号姓名成绩 99812 liulifang 91 运行结果

三、程序清单 本程序包含creatlist.cpp、insert.cpp、del.cpp、output.cpp、main.cpp、头文件.h六个文件

#include #include"头文件.h" int n; student *creatlist() { student *head; student *p1; student *p2; n=0; head=NULL; p1=new(student); //创建一个新结点 p2=p1; cin>>p1->num>>p1->name>>p1->score; while(p1->num!=0) //链表建立过程终止的判定条件{ n++; head=p1; else p2->next=p1; //原链表结点指向新建结点p2=p1; p1=new(student); cin>>p1->num>>p1->name>>p1->score; } delete(p1); p2->next=NULL; return head; //返回表头 } 2、insert.cpp文件清单 #include #include"头文件.h" student *insert(student *head,student *t) { student *p0; //待插入点 student *p1; student *p2; //p0插入p1之前,p2之后p1=head; p0=t; if(p1==NULL) //原链表是空表 { head=p0; p0->next=NULL; } else

C语言程序设计基于链表的学生成绩管理系统

华北科技学院计算机系综合性实验 实验报告 课程名称C语言程序设计 实验学期2011至2012学年第二学期 学生所在系部计算机系 年级2011专业班级计算机科学与技术B-111 学生姓名学号 任课教师 实验成绩 计算机系制

实验报告须知 学生上交实验报告时,必须为打印稿(A4纸)。页面空间不够,可以顺延。 学生应该填写的内容包括:封面相关栏目、实验地点、时间、目的、设备环境、内 容、结果及分析等。 教师根据本课程的《综合性实验指导单》中实验内容的要求,评定学生的综合性实验 成绩;要求在该课程期末考试前将实验报告交给任课教师。综合性实验中,所涉及 的程序,文档等在交实验报告前,拷贝给任课教师。任课教师统一刻录成光盘,与 该课程的期末考试成绩一同上交到系里存档。 5、 未尽事宜,请参考该课程的实验大纲和教学大 纲。 1、 2、 3、 教师应该填写的内容包括:实验成绩、教师评价等。 4、

《c语言程序设计》课程综合性实验报告开课实验室:基础五2012年7月6日 实验题目基于链表的学生成绩管理系统、实验目的 1、掌握链表的创建、遍历显示和清除; 2、掌握链表数据的文件保存、读取; —、设备与环境 微型计算机、VC++6.0 三、实验内容 1、定义结构体,创建链表 structxs node in txh;

charxm[15]; in tgs; in tyy; in twl; structxs no de* next; }; 2、根据以上链表结点结构,实现以下功能 a、学生学号、姓名、各门成绩的录入; b、链表数据显示及清除; C、链表数据的文件保存与读取; 四、实验结果及分析 1、运行结果

学生成绩管理系统完整版C程序设计源代码不用链表有添加删除查找修改等功能

/*4. 定义一个结构体数组,存放 10 个学生的学号,姓名,三门课的成绩,编写一程序。应用简单菜单和子函数调用方式实现下面的功能: (1)从键盘输入 10 个学生的以上内容,存入文件 stud.txt (2)浏览显示成绩表(要求显示格式成绩时,格式较规范) (3)将 10 个学生按照平均分数从高到低进行排序,结果存入文件 stud1.txt ( 4)输入任意的一个课程名,分数从高到低进行排序,结果存入文件stud2.txt ( 5)向文件 stud1.txt 中插入一个记录,成绩排序不变,结果存入文件 stud1.txt #include "stdio.h" /* 头文件名*/ */ #inelude "stdlib.h" /*头文件名,因为程序中用到了exit(结束程序)和函数*/ #include "string.h"/*头文件名,因为程序中用到了字符串函数 */ #define N 1000 定义结构体模块 struct student { long num; /* 定义学生学号为长整型 */ char name[20]; /* 定义姓名为字符型,占 12 个字符*/ float math,English,physics,total,average; float TOT_math,TOT_English,TOT_physics,TOT_total,TOT_aver; float aver_math,aver_English,aver_physics,aver_total,aver_average; }student; /* 定义结构体名称为 student*/ 输入初始值模块 void input(struct student *p,int size){ int i; for(i=0;i

学生成绩管理(链表)

---------------------------------------------------------------最新资料推荐------------------------------------------------------ 学生成绩管理(链表) 实验一线性表学生成绩管理(链表) 05111341 班李凌豪1120191263 1.需求分析 1.1.问题重述(1)问题描述设计一个学生成绩管理系统。 主要实现学生信息的录入、添加、修改、删除、排序和查看等基本功能。 (2)具体要求编写一个学生成绩管理程序。 学生成绩以一个学生一条记录的形式存储,每个学生记录包含的信息有序号、学号、姓名及 5 门功课的成绩。 具体功能如下: a. 获取学生成绩。 可以从文件中读取成绩,也可直接录入。 查询学生成绩,输入学生学号或姓名等信息后,显示学生在成绩单中的位置及所有信息。 b. 添加学生成绩,在学生成绩单的指定位置添加学生成绩信息。 c. 修改学生成绩,在学生成绩单中,修改指定学生的成绩信息。 d. 删除学生成绩,在学生成绩单中,删除指定学生的成绩信息。 e. 保存文件。 当学生成绩单发生添加、修改、删除等变化后,都要对最终结果进行保存。 1 / 12

(3)数据结构及算法分析学生成绩可以用单链表存储,方便随时插入和删除学生成绩记录,实现动态管理。 一个学生作为一个结点。 使用链表的基本算法实现学生成绩单的各项管理功能。 1.2.问题分析本题要求用单链表的知识编程实现对学生成绩的管理。 要求既要能从文件读取学生成绩,也可以手动键入学生成绩,要建立单链表来储存获取的学生成绩。 然后,要对获取的学生成绩单进行添加、修改、删除等操作,在操作完后,还要进行保存,保存修改后的成绩单至文件。 2.概要设计 2.概要设计 2.1.抽象数据类型的定义根据链表的特点,本程序将一个学生的成绩及信息作为一个节点,并以此作为本程序的抽象数据类型,具体定义语句如下: struct stu{ char name[20]; char xuehao[10]; int pro1,pro2,pro3,pro4,pro5; struct stu *next; }; 一个节点包括的内容有: 字符型数组 name,用于存放学生的姓名;字符型数组 xuehao 用于存放学生的学号;整形变量 pro1,pro2,pro3,pro4,pro5,用于存储学生的五科成绩(本程序假设各科成绩均为整数);指针变量 next 为节点的指针域,用于存储所指向的下一个节点的地址。 考虑到序号在修改添加等操作时变动较大,故不作为链表节点的数据域内容,而是以节点的序号来作为一个隐藏的数据。

用链表与文件实现学生成绩管理系统

PINGDINGSHANUNIVERSITY 软件学院 项目报告书 课程:专业实训 项目名称: 学生成绩信息管理系统 专业年级: 软件项目10级 姓名: 蒋磊 学号: 101530147 指导教师: 马飞 2018年06月09日 摘要学生成绩管理系统是典型的信息管理系统,是学校教务管理的重要组成部分,其处理信息量很大。本课程设计是用C++实现对学生的成绩管理作一个简单的模拟,实质是建立学生成绩单链表,每条记录由姓名、学号与成绩组成,即链表中每个结点由4个域组成,分别为:学号、姓名、成绩、存放下一个结点地址的next域。用菜单选择操作方式完成五项功能分别写成五个函数,插入学生成绩对应建立学生单链表的功能,输出全部学生成绩记录,后三个功能分别对应单链表的查询、修改与删除三大基本操作。该系统中的数据采用线性表中的链式存储结构即单链表来存储,用结构体类型和类类型定义每个学生记录并采用外部文件方式记录数据简便数据的读取与保存。 1 引言1 1.1 课程设计目的1 1.2课程设计内容1 1.3课程设计目标2 2系统需求与功能分析3 2.1 系统需求分析3

2.2系统功能分析3 2.3系统性能分析4 3总体结构设计4 3.1系统的结构设计4 3.2系统管理流程图5 4 系统详细设计和系统实现5 5 系统测试9 6 结束语11 参考文献12 附录1:结构化设计源程序清单12 1 引言 1.1 课程设计目的 学生成绩管理是一个学校不可缺少的部分,它的内容对于学校的管理者和学生以及学生家长来说都至关重要,所以一个良好的学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段。学生成绩管理系统对学校加强学生成绩管理有着极其重要的作用.因为各个大学都在持续扩招,学生的数量日益庞大,对于如何管理如此庞大的学生成绩数据显得更为复杂,传统的手工成绩管理不仅工作量大,而且容易出现问题,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。已不能适应时代的发展。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,具有手工管理所无法比拟的优点。例:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高管理者管理的效率,也是学校走向科学化、正规化管理,与世界接轨的重要条件。 因此,开发设计这样一套学生成绩管理软件成为很有必要的事情。 该学生成绩管理系统采用C++语言开发研制,针对学生成绩及其数据特点,可以全面实现对学生成绩的插入、查询、修改、删除和输出等功能的计算机管理。它能使学生成绩数据的工作人员从繁重的工作中解脱出来,大大减轻了工作量,减少人为的工作失误,全面提高学生成绩管理的效率,从而使学校对于学生成绩的管理水平和技术水平跃上一个新的台阶。 1.2课程设计内容 在程序设计中,可以用许多种数据结构来处理数据存储,对于该学生管理系统而言

C++成绩管理系统实验报告(含源代码)

学生成绩管理系统设计报告 需求分析: 用数组或链表数据结构完成一个学生成绩管理系统,此系统的具 体功能要求如下: (1)学生信息录入功能 I )用户从键盘输入每个学生的信息:学号、姓名、性别、数学、英语、政 治、程序设计基础、物理五门课成绩。 2)可插入一个或多个学生信息到当前编辑的班级数据中。 3)可删除一个或多个学生信息。 (2) 文件保存功能 1) 学生信息每一班存为一个数据文件,数据文件可在程序中打开、编辑和 重新 保存。 2) 用户输入学生信息可随时保存数据文件。 (3) 文件打开功能 I )程序只能对当前打开的数据文件进行编辑。 (4) 査询功能 1) 2) 3) 4) 5) 6) (5) 报表输出功能 1) 按学号输岀一个班学生信息:学号、姓名、性别、数学、英语、政治、 程序 设计基础、物理成绩和总成绩,到屏幕和文件。 2) 按总成绩输出从高到低输出学号、姓名信息。 注:以上功能以菜单形式供用户使用,并有一定的容错功能。 概要设计 浏览所有学生信息; 按学号査询学生信息. 按姓名査询学生信息; 査询一个班总成绩和平均成绩; 査询一个班某一门课总成绩和平均成绩; 査询某一门课分数段(<60,60-69,70-79,80-89,>90)学生数。

整体框架: 整个学生成绩管理系统采用链表作为基本数据结构,创建一个类student用于保存学生的数据且是链表中的一个节点。类list作为保存整个链表之用。主函数通过switch语句来根据用户的需要连接各个模块,以实现用户的需要。 模块基本介绍: 1.用户输入模块 在此模块中,用户将根菜单提示结合自己的需求输入一个0~11的值,来实现一定的功能。 2.学生信息录入模块 此模块可以让用户从键盘输入每个学生的信息:学号、姓名、性别、数学、英语、 政治.程序设计基础.物理五门课成绩.用户可插入一个或多个学生信息到当前编辑的班级数据中。用户可删除一个或多个学生信息。 3.文件保存功能模块 用户在确定以录入的成绩无误之后,可以将学生信息以每一班为单位存为一 个数据文件。用户输入的学生信息可随时保存数据文件。 4.文件打开功能模块 用户可以用此模块将数据文件在程序中打开、编辑,程序只能对当前打开的 数据文件进行编辑。 5.査询功能模块在此模块里,用户可实现以下操作:1?浏览所冇学生信息;2?按学号査询学生信息:3?按姓名査询学生信息;4?査询一个班每个人的总成绩和平均成绩;5?査询一个班某一门课每个人的总成绩和平均成绩;6)进行成绩的统计分析:包括总人数, 每门课的最髙成绩.最低成绩.平均成绩.各个分数段的人数(100-90. 89-80. 79?70、69-60^ 59-50. 50以下入及格人数。 6.报表输出功能模块在此模块中,用户可以浏览所有学生的信息,或者可以按学号输出一个班学生信息:学号、姓名、性别、数学、英语.政治、程序设计基础、物理成绩和总成绩, 到屏辅和文件。也可以按总成绩输出从高到低输出学号、姓名信息。 模块图:

数据结构课程设计报告,学生成绩管理系统

学院:职业技术学院专业:计算机科学与技术 姓名:学号: 062002110311 班级:计科061班 实习性质:课程设计实习地点:蔡家关校区国合楼二楼计算机房指导教师:曾劼成绩:

学生成绩管理系统设计 一、需求分析 随着社会的发展,学校的规模不断的扩大,日常教学活动中提取相关信息,以反映教学情况。传统的手工操作方式,易发生数据丢失,统计错误,劳动强度高,且速度慢。使用计算机可以高速,快捷地完成以上工作。在计算机联网后,数据在网上传递,可以实现数据共享,避免重复劳动,规范教学管理行为,从而提高了管理效率和水平。学生成绩管理系统以计算机为工具,通过对学生成绩管理所需的信息管理,把管理人员和老师从繁琐的数据计算处理中解脱出来,使其有更多的精力从事教务管理政策的研究实施,教学计划的制定执行和教学质量的监督检查,从而全面提高教学质量。 信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济和社会生活的各个领域。计算机虽然与人类的关系愈来愈密切,还有人由于计算机操作不方便继续用手工劳动。为了适应现代社会人们高度强烈的时间观念,学生成绩管理系统软件为教学办公室带来了极大的方便。该软件是以C语言为实现语言,其功能在系统内部有源代码直接完成。通过操作目录,管理者和老师可以了解本软件的基本工作原理。管理者和老师只需输入一些简单的汉字、数字,即可达到自己管理学生成绩的目标。 在学生成绩管理系统中,需要从大量的日常教学活动中提取相关信息,以反映教学情况。传统的手工操作方式,易发生数据丢失,统计错误,劳动强度高,且速度慢。使用计算机可以高速,快捷地完成以上工作。在计算机联网后,数据在网上传递,可以实现数据共享,避免重复劳动,规范教学管理行为,从而提高了管理效率和水平。 通过本学生成绩管理系统,可以从一下几个方面减少老师的工作负担和提高学校的管理效率,实现学校的信息化和自动化。 1.应用学生成绩管理系统,把老师从繁杂的学生成绩了登记分数、统计分数、学生排名等等的工作职工解脱出来,把更多的时间和精力用来提高教学质量和学

学生成绩管理链表C代码

学生成绩管理 #include #include #include #include #define OK 1 #define ERROR 0 #define OVERFLOW -2 typedef int Status; typedef struct { char num[10]; // 学号 char name[20]; // 姓名 float score; // 成绩 }student; typedef student ElemType; typedef struct LNode { ElemType data; struct LNode *next; }LNode,*LinkList; typedef LinkList Sta; //创建一个空表 Sta CreateList_L(LinkList L) { L=(LinkList)malloc(sizeof(LNode)); if(!L) return OVERFLOW; L->next=NULL; return L; } Status ListInsert_L(LinkList L,int i,ElemType e) //在带头结点的单链表L中第i个位置前插入某个学生的信息{

LinkList p,s; p=L; int j=0; while(p&&jnext; ++j; } if(!p||j>i-1) return ERROR; s=(LinkList)malloc(sizeof(LNode)); s->data=e; s->next=p->next; p->next=s; return OK; } //删除学生信息 Status ListDelete_L(LinkList L,int i,ElemType *e) { LinkList p=L; int j=0; while(p->next&&jnext; ++j; } if(!(p->next)||j>i-1)return ERROR; LinkList q=NULL; q=p->next; p->next=q->next; *e=q->data; free(q); return OK; } Status LocateElem_L(LinkList L,student e) { if(L==NULL)printf("OK"); LinkList p=L->next; if(p==NULL)printf("OK"); int i=1; while(p)

c语言课程设计报告---学生信息管理系统

题目:学生信息管理系统 一、需求分析 任务要求: 自学C语言中有关链表及外部文件的内容,设计学生信息管理系统。具体要求如下: ◆建立学生信息,信息至少包括名字、性别、年龄、学号、系别、家庭信息等内容; ◆能够提供添加、删除和修改学生信息等功能; ◆能将通讯录保存在文件中; ◆能够按指定方式输出学生信息。 系统功能需求分析: ★1、为存储学生信息,需定义一个结构体类型,成员名字、性别、年龄、学号、系别、家庭信息等,并建立链表,定义该结构体类型的指针,用于指向各结点; ★ 2、分别建立具有添加、删除、修改、查询等功能的子函数,完成相应功能,对程序实现模块化。这其中要用到对链表的删除、插入等知识。删除时用一结构体指针指向链表的第一个结点,检查该节点的值是否等于输入的要删除的学号,若相等就删除,不相等则后移指针,直至表尾。插入时也要先找到相应结点,再添加。 ★3、为实现存储功能,需用到文件的相关函数,打开文件,将添加、修改或删除的信息存入磁盘中。 ★4、为以表格的形式输出文件,宏定义格式化输出语句,指定输出学生信息。

二、概要设计 系统总体设计框架: 对程序进行模块化,建立添加、修改、删除、查找和显示功能的子函数,各子函数中运用链表存储数据。从主函数开始执行,调用各个子函数,并运用文件相关知识将信息存入磁盘中。 系统功能模块图:

三、详细设计 主要功能模块的算法设计思路如下: 1、查询通讯录信息(void chakan()) (1)为开辟一个新单元 (2)输入查询关键字: (3)读取保存的文件数据输入ASCLL字符: (4)在链表中寻找相应结点; (5)调用输出函数,输出结点信息。 2、添加信息函数(void add()) (1)定义指向结构体变量的指针; (2)移动指针,找到插入结点; (3)在要插入的结点输入信息; (4)调用保存函数,打开文件,保存输入信息。 3、删除信息函数(void del()) (1)定义指向结构体变量的指针; (2)用指针检验链表中是否有记录,若没记录,返回主函数;(3)根据要修改的编号查找要删除的结点; (4)修改链表,删除对应结点。 4、修改信息函数(void xiugai()) (1)定义指向结构体变量的指针; (2)读取保存的文件数据输入ASCLL字符: (3)用指针检验链表中是否有记录,若没记录,返回主函数;(4)根据要修改的编号查找对应结点; (5)修改信息;

相关文档
最新文档