C语言学生管理系统_综合实验报告
C语言学生信息管理系统实验报告
实验四:结构体实验目的:1.更加灵活的使用数组作为函数参数;2.初步掌握开发一个小型实用系统的基本方法;3.初步掌握书写程序设计开发文档的能力。
实验内容:程序一:学生信息管理系统编写程序,实现学生信息的管理(包括学生信息的建立、增加、删除、修改、查找),要求:小组分工情况小组分工情况统计表I设计一个学生成绩管理系统至少具有以下功能:(1)菜单功能:采用文本菜单界面。
(2)学生信息的建立。
(3)学生信息的增加。
(4)学生信息的删除。
(5)学生信息的修改。
(6)学生信息的查找。
II数据库结构struct student{ char num[10];char name[10];char xibie[10];char sex;int age;}st[30];二总体设计框架结构图(系统的功能结构图)程序流程图: (visio)三、详细设计(流程图!!!)四、程序源代码(参考答案)1.用结构体数组完成2.用结构体指针完成1. #includ e "stdio.h"#includ e "string.h"typede f struct node{ char num[10];char name[10];char xibie[10];char sex;int age;int n;st *cresli nk(){int i;st s[10];printf("请输入要录入的人数:");scanf("%d",&n);for (i=0;i<=n-1;i++){ printf("请输入第%d名学生的学号,姓名,系别,年龄,性别:",i+1);scanf("%s%s%s%d%c",s[i].num,s[i].name,s[i].xibie,&s[i].age,&s[i].sex);}return s;}int getlen(st s[]){return n;}insert(st s[],char num[],char name[],char xibie[],int age,char sex){ strcpy(s[n].num,num);strcpy(s[n].name,name);strcpy(s[n].xibie,xibie);s[n].age=age;s[n].sex=sex;n++;}delete(st s[],char num[]){int i,j;for(i=0;i<n;i++)if(strcmp(s[i].num,num)==0)break;for(j=i+1;j<n;j++)s[j-1]=s[j];n--;}void list(st s[]){ int i;printf("学号\t姓名\t系别\t年龄\t性别\n");for(i=0;i<n;i++)printf("%s\t%s\t%s\t%d\t%c\n",s[i].num,s[i].name,s[i].xibie,s[i].age,s[i].sex);}void main(){int k,f,age;char num[10],name[10],xibie[10],sex;while(1){printf("\n\n\t\t\t学生信息管理系统\n");printf("\t\t*************************************\n");printf("\t\t\t1.录入学生信息\n");printf("\t\t\t2.插入新学生信息\n");printf("\t\t\t3.删除学生信息\n");printf("\t\t\t4.输出学生信息\n");printf("\t\t\t5.输出学生总数\n");printf("\t\t\t6.退出\n");printf("\t\t*************************************\n");printf("请选择:");scanf("%d",&k);switch(k){case 1:s=cresli nk();break;case 2: printf("请输入新学生的学号,姓名,系别,年龄,性别:");scanf("%s%s%s%d%c",num,name,xibie,&age,&sex);i nsert(s,num,name,xibie,age,sex);b reak;case 3:printf("请输入要删除的学生的学号:");scanf("%s",num);d elete(s,num);break;case 4:list(s);break;case 5:f=getlen(s);printf("学生总数为:%d",f);break;case 6:return;}}}2.#includ e "stdio.h"#includ e "string.h"#define null 0typede f struct node{ char num[10];char name[10];char xibie[10];char sex;int age;struct node *next;}slink;slink*cresli nk(){slink*head,*p,*s;int i,n;printf("请输入要录入的人数:");scanf("%d",&n);if(n<1)return null;p=head=(slink*)malloc(sizeof(slink));head->next=null;for (i=1;i<=n;i++){s=(slink*)malloc(sizeof(slink));printf("请输入第%d名学生的学号,姓名,系别,年龄,性别:",i); scanf("%s%s%s%d%c",s->num,s->name,s->xibie,&s->age,&s->sex);p->next=s;p=s;}p->next=null;return head;}int getlen(slink*head){slink*p;int n;p=head->next;n=0;while(p!=null){n++;p=p->next;}return n;}insert(slink*head,char num[],char name[],char xibie[],int age,char sex) {slink*p,*q;p=head;while(p->next!=null) p=p->next;q=(struct node *)malloc (sizeof(slink));strcpy(q->num,num);strcpy(q->name,name);strcpy(q->xibie,xibie);q->sex=sex;q->age=age;q->next=p->next;p->next=q;}delete(slink*head,char num[]){slink*p,*q;p=head;while(p->next!=null&&strcmp(p->next->num,num)!=0)p=p->next;q=p->next;p->next=q->next;free(q);}void list(slink*head){slink*p;printf("学号\t姓名\t系别\t年龄\t性别\n");p=head->next;while(p!=null){printf("%s\t%s\t%s\t%d\t%c\n",p->num,p->name,p->xibie,p->age,p->sex);p=p->next;}printf("\n");}void main(){int k,f,age;char num[10],name[10],xibie[10],sex;slink*head;while(1){printf("\n\n\t\t\t学生信息管理系统\n");printf("\t\t*************************************\n");printf("\t\t\t1.录入学生信息\n");printf("\t\t\t2.插入新学生信息\n");printf("\t\t\t3.删除学生信息\n");printf("\t\t\t4.输出学生信息\n");printf("\t\t\t5.输出学生总数\n");printf("\t\t\t6.退出\n");printf("\t\t*************************************\n");printf("请选择:");scanf("%d",&k);switch(k){case 1:head=cresli nk();break;case 2: printf("请输入新学生的学号,姓名,系别,年龄,性别:");scanf("%s%s%s%d%c",num,name,xibie,&age,&sex);insert(head,num,name,xibie,age,sex);b reak;case 3:printf("请输入要删除的学生的学号:");scanf("%s",num);d elete(head,num);break;case 4:list(head);break;case 5:f=getlen(head);printf("学生总数为:%d",f);break;case 6:return;}}}。
C语言学生信息管理系统设计实验报告
信
信
信
息
息
息
的
的
的
浏
增
录
览
加
入
信
信
退
息
息
出
的
的
系
修
查
统
改
询
信
信
信
息
息
息
导
录
保
出
入
存
按
按
学
姓
号
名
查
查
询
询
7.各模块功能简介 信息浏览模块:用导入函数调入信息,用 for 循环依次输出学生信息。
3
信息的增添模块:先确定增添人数,用 for 循环输入指针数组数据,调用保存函 数进行保存。 信息的录入模块:确定人数,for 循环依次输入信息,调用保存函数保存。 信息的修改模块:用 if(strcmp(work[i].name,name)==0) 先找出要修改的学生信息,用 switch 确定修改那一项,输入修改的数据进行保 存。 信息的查询模块:用 if(strcmp(work[i].name,name)==0)查找学生姓名,用 if(num1==work[i].num)对学号查找。 退出:用 goto 语句指向固定行。 8.主要函数流程图 修改函数
录入学生个数
文件
work_list.txt
保存学生信息
2
函数
baicun()、type_in()、 保存 录入 删除 del()、change()、add 修改 查找 插入 ()、scan()search() 显示学生信息、查
找
4.设计平台 有 Visual C 语言编写,语言简单、紧凑,使用方便、灵活。运算符丰富,数据 类型丰富,具有结构化的控制语句,语法限制不太严格,程序设计自由度大。C 语言允许直接访问物理地址,能进行行位操作,能实现汇编语言的大部功能。生 产目标代码质量高,程序执行效率高,用 C 语言编写的程序可移植性好。 5.设计思想 采用了系统模块化:(1)自顶向下;(2)逐步细化;(3)模块化设计;(4) 结构化编码。用这种方法便于验证算法的正确性,在向下展开之前应仔细检查本 层设计是否正确,只有上一层正确才能向下细化。本程序分为六大模块:浏览模 块、增加模块、录入模块、修改模块、查询模块、退出。其中录入模块包括录入、 导出、保存。查询模块包括学号查询和姓名查询。浏览函数由岳映强完成,增添 模块由马玉帅完成,录入模块由章成完成,修改模块由陈耀明和徐川鹤完成,查 询模块由刘永亮完成,退出模块由钱程完成。 6.设计框图
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",#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语言案例设计实验报告实验二姓名:学号:专业:自动化课程名称:C语言程序设计指导教师:实验时间:实验地点:教师评分:实验目的和要求1、掌握软件设计开发调试的完整过程;2、掌握单链表,结构体,指针的使用方法;3、掌握使用CodeBlocks软件编程和调试的方法。
一、主要仪器设备及开发环境1、计算机2、CodeBlocks集成开发环境V13.12二、实验原理与分析设计3.1 设计内容1.显示菜单2.获取用户选择的菜单编号3.创建一个节点,他会返回一个新创建的学生信息节点的指针4.把学生信息节点加入到链表中5.返回指定编号学生节点的上一个节点的指针6.显示所有学生信息7.显示信息数量8.修改学生信息,参数为要修改的学生编号9.获取用户的选择10.获取用户输入的学生编号11.删除编号为num的学生信息12.删除所有学生信息13.把信息保存到文件中14.从文件中读取学生信息3.2 数据结构设计a.显示菜单 ShowMenu()b.获取用户选择的菜单编号 GetMenuChoose()C.创建一个节点,返回一个新创建的学生信息节点的指针PSTUDENT CreateStudent()d.把学生信息节点加入到链表中 AddStudent(PSTUDENT pstu)e.返回指定编号学生节点的上一个节点的指针PSTUDENT GetPrevAddr(int num)f.显示所有学生信息ShowAll()g.显示信息数量ShowStudentCount()f.修改学生信息,参数为要修改的学生编号ModityStudent(int num)g.获取用户的选择Question(const char *pstr)h.获取用户输入的学生编号GetInputNum()i.删除编号为num的学生信息DelStudent(int num)j.删除所有学生信息DelAll()k.把信息保存到文件中SaveToFile()l.从文件中读取学生信息 LoadFromFile()3.4 流程图四、程序设计4.1程序主函数int main(){i nt running=1;w hile(running){switch(GetMenuChoose()){case 0:running=0;break;case 1:printf("你选择了菜单1\n");AddStudent(CreateStudent());break;case 2:printf("你选择了菜单2\n");DelStudent(GetInputNum());break;case 3:printf("你选择了菜单3\n");break;case 4:printf("你选择了菜单4\n");ModityStudent(GetInputNum());break;case 5:printf("你选择了菜单5\n");DelAll();break;case 6:printf("你选择了菜单6\n");ShowAll();break;case 7:printf("你选择了菜单7\n");ShowStudentCount();break;case 8:printf("你选择了菜单8\n");TagStudent();break;case 9:printf("你选择了菜单9\n");SaveToFile();break;}system("pause");}r eturn 0;}4.2显示菜单void ShowMenu(){s ystem("cls");p rintf("------------------------------------------------------------------------");p rintf("\n\t1.添加学生信息 2.删除某个学生信息 3.显示某个学生信息\n");p rintf("\t4.修改学生信息 5.删除所有学生信息 6.显示所有学生信息\n");p rintf("\t7.显示信息数量8.读取文件学生信息9.保存学生信息至文件\n");p rintf("\t10.退出系统\n");p rintf("------------------------------------------------------------------------");}4.3获取用户选择的菜单编号int GetMenuChoose(){i nt num;//保存用户选择的菜单编号S howMenu();p rintf("请选择菜单(0~9):") ;/*scanf("%d %d",&aa,&b);函数返回值为int型,如果a和b都被成功读入,那么scanf的返回值就是2:如果只有a被成功读入,返回值为1:如果a和b都未被成功读入,返回值为0:如果遇到错误或遇到end of file,返回值为Eof。
c语言学生系统报告
c语言学生系统报告学生管理系统是管理学校学生信息的一个重要工具。
本系统使用C语言编写,实现了对学生信息的管理、增加、修改和查询功能,方便教师管理每个学生的个人信息和学习情况。
系统可以提高教师工作效率和管理水平,并能够迅速地处理学生信息,提高办公效率和工作效率。
一、需求分析此次系统的开发,主要是为了解决手动管理学生信息所带来的繁琐问题,达到高效的管理方式,实现以下需求:(1)方便快捷的输入、查询和管理学生信息。
(2)能够记录学生每次考试的成绩情况,方便教师进行评估。
(3)能够显示学生的年龄、性别、所在班级等信息,方便教师查看。
二、设计思路针对以上需求,设计了如下的系统结构:(1)数据采集模块:该模块用于对学生的基本信息进行录入,包括学生的姓名、年龄、性别、学号和班级等。
(2)数据管理模块:该模块用于对学生信息进行增加、修改和删除功能,实现对学生信息的管理。
(3)数据查询模块:该模块能够根据学生姓名、学号、班级等信息进行查询,方便教师快速查找学生信息。
三、系统功能实现(1)录入学生信息首先,系统需要录入学生的基本信息,包括学生的姓名、年龄、性别、学号和班级等,这些信息是后续管理工作的基础,教师需要认真核对每个学生的信息。
录入学生信息时,需要输入如下信息:姓名:请输入学生的姓名性别:请输入学生的性别(男/女)班级:请输入学生所在的班级在学生信息录入之后,系统需提供对学生信息的管理功能,包括增加、修改和删除功能。
教师可以根据需要对学生信息进行修改和删除操作。
具体功能如下:增加学生信息:在已有的信息中增加新学生信息。
修改学生信息:修改学生信息,如姓名、学号、年龄、性别、班级等。
删除学生信息:删除一位或多位学生的信息。
在系统中,教师可以根据关键字查询学生信息,包括学生姓名、学号、班级等信息。
系统会返回符合条件的学生记录。
具体查询功能如下:按姓名查询:输入学生姓名,返回该学生的所有信息。
建立查询、删除、增加和修改菜单方便用户进行操作。
C语言课程设计实验报告学生信息管理系统
C语言课程设计实验报告学生信息管理系统语言程序设计实验报告C报告人:孟凡超指导老师:姜林报告日期:XX年x月x日C语言程序设计实验报告C语言课程设计实验报告1设计目的:学生信息管理系统设计学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-等试设计一学生信息管理系统,使之能提供以下功能: 1 系统以菜单方式工作 2 学生信息录入功能---输入 3 学生信息浏览功能---输出 4 查询、排序功能---算法按学号查询按姓名查询5 学生信息的删除与修改2总体设计:程序设计组成框图学生信息录入学生信息浏览主菜单学分查询信息编辑信息添加信息删除信息查询信息添加姓名查询信息编辑信息删除2C语言程序设计实验报告流程图开始清屏n=1判断n>0?NYpr输入选择chch1调用2 调用3 调用 pr24N=0结束3C语言程序设计实验报告3详细设计:1>函数入口说明 pr 输出主菜单pr2 输出检索菜单界面文件操作:打开文件操作:保存( n) 编辑子菜单:对姓名编辑 ( n) 编辑子菜单:对年龄编辑 ( n) 编辑子菜单:对性别编辑 ( n) 编辑子菜单:对出生年月编辑 ( n) 编辑子菜单:对住址编辑 ( n) 编辑子菜单:对电话进行编辑( n) 编辑子菜单:对电子邮件地址编辑 ( n) 显示翻页致末尾的信息 ( n) 信息编辑函数 ( n) 删除信息的函数 ( n) 输出编辑界面检索:按学号检索:按姓名录入、添加信息学生信息查看主函数 2>调用关系( n) ( n)pr( n)pr2( n)( n)( n)( n) (同上)( n)( n) ( n) ( n) ( n) ( n)3>参数说明( n)、( n)、( n) 、( n) 、( n) 、( n)、( n)、( n)、( n)、( n)、( n) 函数中的n都为检索中确定的学生数组下标4C语言程序设计实验报告4调试与测试:1>调用pr2函数一闪而过解决方法:添加语句使程序暂停2>无法有效的控制输出函数循环终止解决方法:添加全局变量“”使用该全局变量来记录学生总数,从而控制输出循环的次数3>查询函数数据量过多时同时输出,先输出的内容无法查看,或需用户自行查看解决方法:添加语句使程序暂停,当用户按时继续4>文件在打开和保存时有问题解决方法:调整文件的打开方式,从原来的单纯的w+修改为添加一个语句,当没有文件时执行w+的操作,否则执行r+避免了原存储文件被覆盖的问题5C语言程序设计实验报告5源程序清单和执行结果:#<> #<> #<> #<> =0; { id; [30]; ; [2]; [9]; [80]; [15];[25]; }[];pr { (""); ("******学生信息管理系统******"); ("\n----------V ----------"); ("\n您想要:"); ("\n 1录入学生信息"); ("\n 2浏览学生信息"); ("\n 3检索学生信息"); ("\n 4退出信息管理"); ("\n----- 孟凡超-----"); ("\n****************************\n"); }pr2 { ; ; a; ch; (a) { (""); ("******学生信息管理系统******"); ("\n----------检索----------"); ("\n您想要:"); ("\n 1按学号检索"); ("\n 2按姓名检索"); ("\n 3返回主菜单"); ("\n\n----- 孟凡超-----"); ("\n****************************\n"); ch=; (ch) { '1':;; '2':;; '3':a=0;; } } }{ *fp; n; ((fp=("""r+"))==) fp=("""w+"); (n=0;n<;n++) (&[n]( )1fp);(&41fp);(fp); }{ n; *fp; fp=("""r+");6C语言程序设计实验报告(n=0;n<;n++) (&[n]( )1fp); (&41fp); (fp); }( n) { ("\n新姓名:"); ("%s"[n]); }( n) { ("\n新年龄:"); ("%d"&[n]); }( n) { ("\n新性别:"); ("%s"[n]); }( n) { ("\n新出生年月"); ("%s"[n]); }( n) { ("\n新地址:"); ("%s"[n]); }( n) { ("\n新电话:"); ("%s"[n]); }( n) { ("\n新E-:"); ("%s"[n]); }( n) { (n==) (""); //清屏 ("******学生信息管理系统******"); ("\n----------检索----------"); ("\n已检索到末尾"); ("\ "); ("\n\n----- 孟凡超-----"); ("\n****************************\n"); }( n) { ch; a=1b; (a) { (""); ("******学生信息管理系统******"); ("\n----------修改----------"); ("\n请输入你想修改的内容:"); ("\n1姓名 2年龄 3性别 4出生年月 5地址 6电话 \n"); ("\n\n----- 孟凡超-----"); ("\n****************************\n"); ; ch=; (ch) {7C语言程序设计实验报告'1':(n);; '2':(n);; '3':(n);; '4':(n);; '5':(n);; '6':(n);; '7':(n);; } b=1; (b) { ("\n确认吗?(y/n)"); ; ch=; (ch) { 'Y': 'y':b=0;a=0;; 'N': 'n':b=0;; } } } }( n) { a; (a=n;a<;a++) { ([a][a+1]); [a]=[a+1]; ([a][a+1]); ([a][a+1]); ([a][a+1]); ([a][a+1]); ([a][a+1]); } --; ("删除成功!"); }( n) { a=1; ch; (a) { ; ("\n您想要:"); ("\n\n1修改学生信息"); ("\n2删除该条信息"); ("\n3返回上级菜单"); ("\n4查看下条信息"); ch=; (ch) { '1':(n)a=0;; '2':(n)a=0;; '3':a=0;(0);; '4':a=0;; } } }{ nij=0; (""); ("******学生信息管理系统******"); ("\n----------检索----------"); ("\n请输入想要检索的学号:"); ("%d"&n); (n<=) { n=n--; //拷贝后一个学生信息到前一个人上8C语言程序设计实验报告("学号姓名年龄性别出生年月\n"); ("%4d "[n]id); ("%12s "[n]); ("%4d "[n]); ("%4s "[n]); ("%8s \n"[n]); ("\n\n\n学号电话E- 地址\n"); ("%4d "[n]id); ("%15s "[n]); ("%15s "[n]); ("%s\n" [n]); j=(n); i++; } (i==0) { ("\:无此学生"); ("\n----- 孟凡超-----"); ("\n****************************\n"); } { (j==0) ; { (""); (n); ; } }:; }{ nji=0; m[30]; (""); ("******学生信息管理系统******"); ("\n----------检索----------"); ("\n请输入想要检索的姓名:"); ("%s"m); (n=0;n<;n++) { ((m[n])==0) { (""); ("学号姓名年龄性别出生年月\n"); ("%4d "[n]id); ("%8s "[n]); ("%4d "[n]); ("%4s "[n]); ("%8s \n"[n]); ("\n\n\n学号电话 E- 地址\n"); ("%4d "[n]id); ("%15s "[n]); ("%15s "[n]); ("%s\n" [n]); i++; ((j=(n))==0) ; } } (i==0) ("\:无此学生"); (j!=0) (n); ; ; }{ an=1m;9C语言程序设计实验报告ch; (n) { a=; (""); ("ID:"); [a]id=(a+1); ("%d"[a]id); ("\:"); ("%s"&[a]); ("\:"); ("%d"&[a]); ("\:"); ("%s"&[a]); ("\( ):"); ("%s"&[a]); ("\:"); ("%s"&[a]); ("\:"); ("%s"&[a]); ("\nE-:"); ("%s"&[a]); m=1; (m) //做一个循环,直到m=0时跳出{ (""); ("ID:"); ("%d"[a]id); ("\:"); ("%s"[a]); ("\:"); ("%d"[a]); ("\:"); ("%s"&[a]); ("\:"); ("%s"[a]); ("\:"); ("%s"[a]); ("\:"); ("%s"[a]); ("\nE-"); ("%s"[a]); ("\n请选择:1确认并继续 2重新填写 3放弃并返回 4确认并返回"); ch=; (ch) { '1':m=0;++;; '2':m=0;; '3':m=0n=0;; //选择此项时,m=0,循环终止 '4':m=0n=0;a=++;; } } } }{ =1in=1=1=/5+1; //设定变量控制翻页 ch; (n) { (""); ("学号姓名年龄性别出生年月\n"); (i=-1;i<+4&&i<;i++) { ("%4d "[i]id); ("%12s "[i]); ("%4d "[i]); ("%4s "[i]); ("%8s\n"[i]); } ("\n\n\n学号电话 E- 地址\n"); (i=-1;i<+4&&i<;i++)10C语言程序设计实验报告{ ("%4d "[i]id); ("%15s "[i]); ("%15s "[i]); ("%s\n" [i]); } ("\n1上一页 2下一页 0退出共学生%d人第%d页共%d页\n"); ch=; (ch) { '1':--; (==0) =(-1)*5+1=; =(-1)*5+1;; '2':++; (>) =1=1; =(-1)*5+1;; '0':n=0;; } } }。
C语言学生管理系统实验报告
C语言学生管理系统实验报告
实验目的:
1.更加灵活的使用数组作为函数参数;
2.初步掌握开发一个小型实用系统的基本方法;
3.初步掌握书写程序设计开发文档的能力。
实验内容:
程序一:学生信息管理系统
编写程序,实现学生信息的管理(包括学生信息的建立、增加、删除、修改、查找),要求:
小组分工情况
小组分工情况统计表
班级
信息工程学院计算机科学与技术专业2012级软件工程(方向)班组
名称
学生成绩管理系统
项目组长
(本次项目小组组长)
组员
组员学号
工作简介
一需求分析
I设计一个学生成绩管理系统至少具有以下功能:(1)菜单功能:采用文本菜单界面。
(2)学生信息的建立。
(3)学生信息的增加。
(4)学生信息的删除。
(5)学生信息的修改。
(6)学生信息的查找。
II数据库结构
structstudent
{charnum[10];
charname[10];
charxibie[10];
charsex;
intage;
}st[30];
二总体设计
框架结构图(系统的功能结构图)
学生成绩管理系统
学生成绩管理系统
输入
增加
……。
退出
程序流程图:(visio)
退出结束
退出
结束
开始
输出菜单
根据菜单输入n的值选择程序输入
增加
删除
修改
查找
三、详细设计
(流程图!!!)
四、程序源代码(参考答案)
1.用结构体数组完成
2.用结构体指针完成。
C语言课程设计报告 --学生管理系统
C语言课程设计报告 --学生管理系统一、实验目的:通过本次实验,学习C语言的语法和数据类型,设计一个简单的学生管理系统,结合文件I/O所学,可以将学生信息保存至文件中,再读取时自动填充至程序中。
同时,体验软件开发的流程,从需求分析到具体实现。
二、需求分析:1、学生信息包括:学号、姓名、性别、年龄、成绩。
2、学生信息需要添加、删除、修改、查找和显示。
3、程序启动时自动从文件中读取数据,退出时自动保存数据。
三、实验过程:1、确定数据结构和变量类型通过分析需求,学生信息包含多个属性,可以使用结构体来保存每个学生的信息。
同时,为了便于程序运行,需要定义一个链表来保存所有学生信息。
/* 学生信息结构体 */typedef struct _Student {char id[12]; // 学号char name[20]; // 姓名char gender; // 性别int age; // 年龄double score; // 成绩} Student;/* 学生信息链表节点 */typedef struct _StudentNode {Student data; // 学生信息struct _StudentNode *next; // 下一节点指针} StudentNode;/* 学生信息链表头节点 */StudentNode *head = NULL;2、设计主菜单功能考虑学生管理系统的主要功能,可以设计以下主菜单:---------------------------1. 添加学生2. 删除学生3. 修改学生信息4. 查找学生5. 显示所有学生6. 退出---------------------------可以使用一个while循环来循环处理,直到用户选择退出。
3、实现主菜单功能添加学生:先从用户输入中获取学生信息,然后创建一个新的学生信息节点,并将其添加到链表的末尾。
1. 定义变量/* 输入缓存区大小 */#define BUFFER_SIZE 2562. 实现函数/* 添加学生到链表末尾 */void add_student() {Student student; // 待添加的学生信息printf("请输入学号:");scanf("%s", student.id);printf("请输入姓名:");scanf("%s", );printf("请输入性别(M/F):");scanf(" %c", &student.gender);printf("请输入年龄:");scanf("%d", &student.age);printf("请输入成绩:");scanf("%lf", &student.score);StudentNode *node =(StudentNode*)malloc(sizeof(StudentNode));node->data = student;node->next = NULL;if (head == NULL) {head = node;} else {StudentNode *p = head;while (p->next != NULL) {p = p->next;}p->next = node;}printf("添加学生成功!\n");}删除学生:先从用户输入中获取学生学号,然后遍历链表,找到该学号对应的学生信息节点,并删除。
c语言实验报告(学生学籍管理系统).doc
实验报告学生学籍管理系统专业:信息管理与信息系统班级:学号:姓名:学生学籍管理系统一、实验要求:一个班级有若干名学生(不超过10名),共有三门课程,分别是语文、数学、英语,要求编写一个成绩的管理系统,每个学生要求有学号、姓名、性别、三门课的成绩以及平均成绩,要实现从键盘上输入学号(必须为数字)、姓名、性别、三门课程的成绩,并求每一位学生的平均成绩(即每一行的平均值)、每一位学生的最高分(每一行的最大值),求每一门课程的平均分(即每一列的平均值)、每一门课的最高分(即每一列的最大值),并输出全部结果。
根据学生的平均成绩进行排序,对语文、数学、英语成绩进行排序,并输出排序结果,排序必须使用冒泡排序法。
并且具有如下的菜单:学生学籍管理系统***********************MENU***********************1、Enter new data2、Browse all3、Search by num4、Order by average5、Exit***************************************************用户可以根据菜单来选择操作,菜单的含义如下:1、Enter new data 输入新数据2、Browse al 浏览所有数据3、Search by num 根据学号查询学生信息4、Order by average 根据平均成绩排序5、Exit 退出系统实验步骤:二、实验目的1、了解和熟悉Visual C++软件编程开发环境2、熟练掌握结构化程序设计的步骤和模块化设计方法3、熟练掌握C语言数据类型,熟记字符型数据和整形数据的定义和使用4、熟练掌握用while语句、do…while语句和for语句实现循环结构程序设计的方法5、掌握一维数组、二维数组的定义、赋值和输入输出的方法6、掌握与数组有关的算法(特别是排序算法,熟练掌握冒泡排序法)7、熟悉函数的定义、声明方法及全局变量和局部变量的概念与用法,掌握函数的调用方法8、掌握结构体类型变量的定义和使用及结构体类型数组的概念和应用三、实验步骤1、分析设计题目:根据题目要求,可以使用结构体数组来存储学生的信息,包括学号、姓名、性别、各科成绩、平均成绩五个成员,分别使用字符数组、整型数组、浮点型变量来表示。
c语言学生信息管理系统实验报告
C语言学生信息管理系统实验报告C语言课程设计学生信息管理系统姓名洪伟生院系计算机学院日期年 7 月 5 日目录第一章设计要求………………………………………………第二章算法分析1.理论依据…………………………………………………2.主要实现方法……………………………………………2.1整体流程图………………………………………2.2函数功能和函数之间的调用关系………………第三章代码(源代码)………………………………………第四章分析说明………………………………………………第五章总结……………………………………………………第一章、设计要求1、利用所学的知识、理论和实际结合,利用资源,采用模块化的结构,使用模仿修改自主设计相结合的方法,锻炼学生综合分析解决实际问题的编程能力;2、经过C语言各个函数功能来实现对学生信息的管理,学生信息包括学生姓名,学号,各科成绩;管理方式包括对学生信息的录入,保存,排序,查找、修改、删除等功能。
第二章、算法分析1、程序理论依据经过C语言的程序设计基础的掌握,对学生成绩管理系统进行编写程序。
首先,经过链表这一数据结构来对学生的信息进行录入以及操作,在其过程中,经过各个功能语句以及选择结构,循环结构等方式的结合来达到所要实现的程序功能。
最后经过对C 语言中对文件的操作,对已有学生成绩的读取和新建学生成绩的录入保存。
2、主要实现方法2.1整体流程图2.2、函数功能和函数之间的调用关系2.2.1、函数功能:void Menu_1(); //主菜单void Menu_2(); //二级菜单学生信进退出学生信学生信学生信学生信学生信学生信返回主void swap(struct student * phead,struct student * pback);// 链表节点互换void Save(struct student * head); // 写入磁盘void Search(struct student * head); // 查找学生信息void Read(struct student * head); // 显示学生信息void Sort(struct student * head); // 链表节点排序struct student * Create(); //学生信息手动录入struct student * Readpoint(); //磁盘文件写入内存struct student * Modify(struct student * head); // 链表结构体成员修改struct student * Add(struct student * head); // 链表节点插入struct student * Delete(struct student * head); // 链表节点删除。
C语言学生学习成绩管理系统实验报告
C语言学生学习成绩管理系统实验报告学生学习成绩管理系统1.课程设计的目的1.对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。
2.掌握自顶而下的设计方法,将大问题进行模块化,领会结构化程序设计的方法。
3.熟练掌握C语言的基本语法,灵活运用各种数据类型.4.进一步掌握在集成环境下如何调试程序(单步调试,设置断点、观察表达式,分块调试)和修改程序。
2。
课程设计的要求1.程序在运行时,均以菜单形式提供选择界面,并提供一定的数据安全和提示具有良好的交互功能。
2.设计中的每一个小功能均由子函数来完成3.提前编制下次调试的程序,对于难点问题要积极查阅相关教材、资料,计划好每次上机的内 ,高效、独立地完成这次设计任务4.在硬盘上建立自己的目录,将程序文件存储到该目录下,即有利于调试文件,又保证了文件的安全性. 3.课程设计报告内容 3.1任务定义本系统主要应用数据结构的设计思想,在TC环境下运用C语言进行编程设计一个学生成绩管理系统,该系统主要实现对学生的学号、姓名等自然信息以及学生成绩信息进行创建、增加、删除、查询、插入、显示的功能以及计算所有学生总成绩的总分,并依照学生各类信息高低进行排名的功能。
系统给用户提供了一个简单的人机界面,使用户可以根据提示输入操作项,调用系统提供的管理功能。
3。
2系统运行环境操作系统:Windows 98/2000/XP 运行软件:TC3。
3功能需求(问题分析)学生成绩管理系统为教师和学生提供了一个对学生自然信息和学科成绩进行管理和查看的平台,给用户提供了一个简单友好的用户接口,功能需求分析描(1)编写菜单函数,为用户提供一个友好的操作选择界面。
(2)学生信息输入:用户根据提示输入学生的学号、姓名、各科成绩,可一次性输入多条学生的成绩信息记录;当要停止输入并退回主菜单时,只须输入0符号回车即可。
(4)学生信息删除:提示用户输入要删除的学生学号或姓名,如果输入的学号不存在,系统会立即提示不存在该学号的学生请先添加。
C语言学生管理系统_综合实验报告
C语言学生管理系统_综合实验报告一、引言学生管理系统是一种方便高校进行学生信息管理的工具,具备添加、删除、查询、修改等基本功能,可以提高学校教务部门的工作效率,减少人力资源的浪费。
本文将介绍一个基于C语言的学生管理系统的设计和实现。
二、系统设计1.需求分析学生管理系统主要包括学生信息、教师信息和课程信息的录入、查询、修改和删除等功能,同时要求可以按照学号、姓名等字段进行快速检索。
系统还需要能够自动生成学生的成绩单和课程表,方便学生进行查看。
2.系统架构学生管理系统采用客户端-服务器模式,客户端和服务器之间通过网络进行数据传输。
客户端通过命令行界面与用户交互,服务器负责处理客户端发送的请求并返回相应的结果。
3.系统功能模块(1)学生信息管理模块:包括学生信息的添加、查询、修改和删除等功能。
(2)教师信息管理模块:包括教师信息的添加、查询、修改和删除等功能。
(3)课程信息管理模块:包括课程信息的添加、查询、修改和删除等功能。
(4)成绩管理模块:包括成绩的录入和查询功能。
(5)课程表模块:根据学生选课情况生成学生的课程表。
三、系统实现1.开发环境系统开发环境选择C语言,编译器使用GCC,开发工具使用Dev-C++。
2.数据存储系统的数据存储采用文本文件的形式,每个学生、教师和课程信息分别存储在一个文本文件中,使用逗号分隔各个字段。
3.界面设计系统界面使用命令行界面,通过菜单来提供各个功能的选项,用户可以根据提示输入相应的指令进行操作。
4.功能实现(1)学生信息管理功能:用户输入学生信息后,系统将学生信息保存到指定的文本文件中,并返回操作结果。
(2)教师信息管理功能:用户输入教师信息后,系统将教师信息保存到指定的文本文件中,并返回操作结果。
(3)课程信息管理功能:用户输入课程信息后,系统将课程信息保存到指定的文本文件中,并返回操作结果。
(4)成绩管理功能:用户输入学生学号和对应的课程信息后,系统将成绩保存到指定的文本文件中,并返回操作结果。
c 学生成绩管理系统实验报告
c 学生成绩管理系统实验报告《C 学生成绩管理系统实验报告》摘要:本实验旨在设计并实现一款基于C语言的学生成绩管理系统,通过该系统可以实现学生信息的录入、查询、修改和删除等功能,并能够对学生成绩进行统计和分析。
通过实验结果表明,该系统具有良好的稳定性和高效性,可以满足学校对学生成绩管理的需求。
1. 引言学生成绩管理是学校教务管理工作中的重要组成部分,有效的成绩管理系统可以提高学校管理效率,为学生提供更好的学习环境。
因此,设计一款稳定高效的学生成绩管理系统对于学校教务管理工作具有重要意义。
2. 系统设计本实验设计了一个基于C语言的学生成绩管理系统,系统主要包括学生信息管理模块和成绩管理模块。
学生信息管理模块可以实现学生信息的录入、查询、修改和删除等功能;成绩管理模块可以对学生成绩进行统计和分析。
系统采用了文件存储学生信息和成绩数据,具有良好的数据持久性。
3. 实验方法本实验采用了自顶向下的模块化设计方法,将系统划分为多个模块,每个模块负责不同的功能。
通过模块化设计,可以提高系统的可维护性和可扩展性。
在实验过程中,我们使用了C语言进行编程,利用了C语言丰富的库函数和指针等特性,提高了系统的效率和性能。
4. 实验结果经过实验测试,我们发现该系统具有良好的稳定性和高效性,可以满足学校对学生成绩管理的需求。
学生信息的录入、查询、修改和删除等功能均能够正常运行,成绩的统计和分析功能也能够准确地反映学生成绩的情况。
5. 结论本实验成功设计并实现了一款基于C语言的学生成绩管理系统,系统具有良好的稳定性和高效性,可以满足学校对学生成绩管理的需求。
通过本实验,我们对C语言的应用有了更深入的了解,也对学生成绩管理系统的设计和实现有了更加深刻的认识。
综上所述,C 学生成绩管理系统实验报告得出了该系统具有良好的稳定性和高效性,可以满足学校对学生成绩管理的需求。
C语言学生信息管理系统实验报告
C语言学生信息管理系统实验报告 -C语言学生信息管理系统实验报告一、实验目的本次实验旨在通过C语言编程实现一个简单的学生信息管理系统,以帮助学生更好地理解和掌握C语言的基本语法、数据类型、程序控制结构以及文件操作等知识点。
同时,通过实际操作,提高学生的编程能力和问题解决能力。
二、实验内容1、系统的基本功能:实现学生信息的输入、存储、查询、修改和删除等操作。
2、数据存储方式:使用文件存储学生信息,保证数据的持久性。
3、用户界面:实现一个简单的命令行界面,方便用户进行操作。
三、实验步骤及实现1、打开一个新文件,命名为“student_info.txt”,用于存储学生信息。
2、定义一个结构体,包含学生的基本信息,如学号、姓名、年龄、性别等。
3、编写程序,实现学生信息的输入、存储和输出。
4、编写程序,实现学生信息的查询、修改和删除操作。
5、在命令行界面中,使用scanf函数获取用户输入的指令,并根据指令执行相应的操作。
6、在操作结束后,将结果显示在命令行界面上。
四、实验结果与分析1、学生信息管理系统的基本功能已经实现,可以正常进行学生信息的输入、存储、查询、修改和删除等操作。
2、使用了文件操作函数,可以将学生信息持久化存储,避免了每次运行程序都需要重新输入信息的麻烦。
3、通过实际操作,学生对C语言的基本语法、数据类型、程序控制结构以及文件操作等知识点有了更深入的理解和掌握。
五、实验总结与建议1、在实现学生信息管理系统时,需要注意数据的正确性和完整性,尤其是输入数据时需要做好错误处理。
2、在实现系统功能时,可以进一步优化代码,提高程序的效率和可读性。
3、可以增加更多的功能,如统计学生人数、打印学生信息等,以使系统更加完善。
4、在实际应用中,需要考虑系统的安全性和稳定性,如数据的备份和恢复、系统的异常处理等。
通过本次实验,学生对C语言有了更深入的理解和掌握,同时提高了编程能力和问题解决能力。
建议在今后的实验中,注重理论与实践相结合,提高学生的实际应用能力。
C语言学生管理系统综合实验报告
C语言学生管理系统综合实验报告##一、实验目的本实验旨在设计和实现一个简单的学生管理系统,使用C语言编写,帮助学生了解C语言常用的数据结构和文件操作,并能够实际应用在实际的学生管理中。
##二、实验内容本实验要求设计一个学生管理系统,能够完成以下功能:1.添加学生信息:包括学号、姓名、性别、年龄等基本信息;2.修改学生信息:根据学号修改学生的基本信息;3.删除学生信息:根据学号删除学生的信息;4.查询学生信息:根据学号或姓名查询学生的信息;5.显示全部学生信息:将所有学生的信息显示出来;6.保存学生信息到文件:将学生的信息保存到文件中;7.从文件读取学生信息:从文件中读取学生的信息。
##三、实验设计###数据结构设计在设计学生管理系统时,我们需要选择合适的数据结构来存储学生的信息。
本实验中,我们选择使用结构体来表示学生的信息,代码如下:```cstruct Studentint id; // 学号char name[20]; // 姓名char gender[5]; // 性别int age; // 年龄};```###功能实现根据实验要求,我们需要实现添加、修改、删除、查询、显示和文件操作等功能。
以下是具体实现的思路:1.添加学生信息:从用户输入获取学生的信息,并将其添加到学生数组中;2.修改学生信息:根据用户输入的学号,在学生数组中找到对应的学生信息,并更新其基本信息;3.删除学生信息:根据用户输入的学号,在学生数组中找到对应的学生信息,并将其删除;4.查询学生信息:根据用户输入的学号或姓名,在学生数组中找到对应的学生信息,并将其显示出来;5.显示全部学生信息:遍历学生数组,将所有学生的信息显示出来;6.保存学生信息到文件:将学生数组中的所有学生信息保存到文件中;7.从文件读取学生信息:从文件中读取学生信息,并将其存储到学生数组中。
##四、实验结果经过实验的设计与实现,我们成功完成了学生管理系统的编写,并进行了测试。
C语言学生管理系统综合实验报告
printf("%-8s",stu[c].sex);
printf("%-16s",stu[c].clas);
printf("%-6d",stu[c].yw);
printf("%-6d",stu[c].sx);
printf("%-4d",stu[c].yy);
printf("\n");
}
printf("----------------------------------------------------------------\n");
}
void cx()
{
int count=0;
char str[10];
printf("\n请输入要查询的学生学号:");
i++;
printf("\t是否继续输入数据(Y.N)");cin>>x;
if(x=='n'||x=='N') break;
}
}
void EditData()
{
int count=0;
char str[10];
printf("\n请输入学生学号:");
cin>>str;
while (count<i)
printf("%-4d",stu[count].yy);
printf("\n");
printf("----------------------------------------------------------------\n");
c语言学生信息管理系统实训报告
c语言学生信息管理系统实训报告
C语言学生信息管理系统是以C语言为编程语言开发的数据管理系统,该系统基于数
据库技术,实现了人事档案管理、班级管理、成绩管理、考勤管理及学生信息管理等功能。
本次实训,我使用C语言编程,在Visual Studio2017环境下,实现了一种自定义的
学生信息管理系统。
该系统实现学生信息的查询、删除、添加及修改功能。
在项目的开发
过程中,我也使用了文件读取与保存、数据结构训练、数据处理等编程技术。
其中,采用
C语言处理文本文件,用链表结构组织数据,并实现增删改查等功能;使用链表结构处理学生信息,实现数据的添加、修改和删除等操作;使用文件读取及保存,在开发过程中
记录及复用学生信息,并按要求输出学生信息报表;使用数据结构进行数据处理,通过
数据的排序、查找等操作,实现提高学生管理的效率。
实训过程运用C语言基础知识和结构化编程思想,巩固了编写程序的知识和编程技术,让我更加深入地理解面向对象思想。
在实训过程中,我熟练掌握了if语句、while语句、switch语句等基础编程语句,加深了对编程概念的理解,同时也学会了在实际编程中如何把这些概念运用到编程中,从而熟练掌握C语言的编程技巧。
实训结束时,我认为自己在编程方面有了很大的进步,对C语言的编程也有了更深的
理解,同时自己也掌握了一套独立的编程思维,并能够利用面向对象思想,实现学生信息
管理系统客户端最新需求。
学生系统 c 实验报告
学生系统c 实验报告引言学生管理系统是一种用于管理学生信息的软件,它能够帮助学校、教育机构以及各类培训机构对学生的信息进行存储、查询和管理。
在本次实验中,我们使用C 语言设计并实现了一个简单的学生系统,通过该系统可以进行学生信息的新增、修改、查询和删除等操作。
设计思路在本次实验中,我们采用了模块化的设计思路,将学生系统分为学生信息管理模块、数据库模块和用户界面模块。
学生信息管理模块该模块用于处理学生信息相关的操作,包括增加学生信息、修改学生信息、查询学生信息和删除学生信息等功能。
为了方便之后的扩展性,我们将学生信息的数据结构定义为一个结构体,包括学生姓名、学号、性别和年龄等信息。
在学生信息管理模块中,我们通过链表的方式进行数据的存储和管理。
数据库模块数据库模块用于实现学生信息的持久化,将学生信息存储到磁盘文件中,以便之后的读取和修改操作。
在本次实验中,我们采用了文本文件的方式实现数据库模块,将学生信息保存为文本格式,并通过文件操作函数对数据进行读写。
用户界面模块用户界面模块用于实现与用户的交互,包括菜单显示、用户输入和信息输出等功能。
我们通过命令行界面的方式设计用户界面,用户可以通过输入对应的命令来操作学生信息。
实验结果经过实验的设计和编码,我们成功实现了一个简单的学生系统。
用户可以通过菜单选择不同的操作,进行学生信息的增删改查。
系统在运行时可以正常读取和保存学生信息,并且能够根据用户的选择执行相应的操作。
实验总结通过本次实验,我们深入理解了学生系统的设计思路和实现过程。
学会了如何使用C 语言进行模块化设计,分解问题并解决问题。
同时,我们也对文件操作和链表数据结构有了更深入的了解和掌握。
在实验过程中,我们也遇到了一些问题和挑战,比如对学生信息的输入和验证、文件读写的处理和用户界面的设计等。
通过不断的调试和优化,我们最终完成了系统的开发和测试。
通过本次实验,我们不仅提高了编程能力和解决问题的能力,还加深了对学生系统的理解和应用。
C语言学生管理系统实验设计报告
吉林大学实验设计设计题目:学院:专业班级:姓名:学号:指导教师:学生成绩管理系统一、设计目的1、掌握对链表、结构体、指针、文件的操作和C语言算法的应用。
2、用程序实现动态链表的建立、查找、修改、删除、插入、输出、排序,或结构体数组的输入、修改、删除、插入、输出,或文件记录的添加、修改、删除、排序(包括对文件记录按某个数据项排序)、查询、插入。
二、设计过程1.需求分析1)、系统界面需求进入系统时应当出现相对人性化的字符界面或图形界面,提供菜单选项,按提示选择序号执行相应的功能,输入输出数据或操作成功时要有相应提示信息,此外还要提供帮助信息,如系统的功能介绍等,提供系统信息或程序信息,如学生、详细信息等。
2)、系统功能需求对设计题目进行分析,可知系统主要功能可以有下面几种,而且各种功能互相组合,形成或构成新的功能。
①、输入功能。
第一次可通过在内存中新建或创建动态链表输入学生的成绩记录和其他数据记录,而且随时可以退出输入,既可在退出时可自动保存或提示保存或输入完毕后返回主菜单选择“Save the file”命令进行手动保存到硬盘,也可以在输入过程中自动保存。
如果以前已经建立过动态链表且已经保存到文件中,可先选择“Load the file”(相当于打开文件、读取文件),再插入新的记录到动态链表。
②、删除功能。
根据学号、姓名或其他数据项在动态链表中查找并删除一个学生的成绩记录。
③、显示记录。
直接输出已按某数据项排序(学号顺序)的动态链表中所有学生的记录于屏幕上显示。
④、查找功能。
查找的目的可能是查看学生数据、修改数据或删除数据。
查找的方式有精确查找和模糊查找两种。
精确查找,指根据学号、姓名或其他数据项在动态链表中查找并显示一个学生的成绩记录。
模糊查找,指根据学号、姓名或其他数据项的逻辑组合条件在动态链表中查找并显示符合条件的学生的成绩记录。
查找的结果可以返回地址(指针)用于查看、修改或删除数据插入功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四、程序清单
#include<stdio.h>
#include<iostream.h>
#include<string.h>
struct student
{
char num[10];
char name[10];
char sex[4];
char clas[20];
int yw,sx,yy;
float ave;
}stu[100];
int i,j;
void InputData()
{
char x;
while(1)
{
printf("\t学号:");
scanf("%s",stu[i].num); printf("\t姓名:");
scanf("%s",stu[i].name);
printf("\t性别:");
六、实验总结(调试分析、体会、致谢)
从这一次的综合实验中,我感触很深
可以这么说,为了这个实验花费比较的功夫。
就我个人来说,其实我很害怕与电脑,程序有关的东西,可能因为一直以来很少接触电脑吧,对于相关的东西比较难理解。
很认真去学,还是感觉很吃力。
每次上课或做实验,发现自己在这方面很跟上大家的脚步。
比如说,我去做了题,但是不能理解,也记不住。
但是,这次的综合实验二做起来相对之前,我发现自己有了进步。
从开始着手做,我就发现这个实验所需要的知识在前面的实验已经做过了。
特别是综合实验一。