2015C语言课程设计--学生信息管理系(优秀)
- 格式:doc
- 大小:543.59 KB
- 文档页数:36
c语言程序设计学生信息管理系统学生信息管理是学校管理系统中非常重要的一部分,因此我们需要一个高效的系统进行管理。
在此背景下,C语言程序设计可以成为一个非常有用的工具。
首先,我们需要定义学生信息的数据结构。
通常情况下,学生信息包括姓名,性别,年龄,出生日期,籍贯,班级等等。
我们可以使用结构体来定义这个数据类型,代码如下:```typedef struct{char name[20];char sex[10];int age;char birth[20];char place[20];char clazz[20];}STUDENT;```其中,我们使用了char数组来存储字符串类型的数据。
在使用数组之前,我们需要考虑数据大小,以免溢出。
在这里,我们将数组的大小设置为了20。
接下来,我们需要实现学生信息的输入和输出功能。
我们可以使用scanf函数来输入信息,使用printf函数来输出信息。
代码如下:```void input_stu(STUDENT *stu){printf("Input Student's Name:");scanf("%s",stu->name);printf("Input Student's Gender:");scanf("%s",stu->sex);printf("Input Student's Age:");scanf("%d",&stu->age);printf("Input Student's Birth:");scanf("%s",stu->birth);printf("Input Student's Place:");scanf("%s",stu->place);printf("Input Student's Class:");scanf("%s",stu->clazz);}void output_stu(STUDENT *stu){printf("Name:%s\n",stu->name);printf("Gender:%s\n",stu->sex);printf("Age:%d\n",stu->age);printf("Birth:%s\n",stu->birth);printf("Place:%s\n",stu->place);printf("Class:%s\n",stu->clazz);}```注意,在使用scanf函数输入字符串类型的数据时,应该使用%s 格式控制符。
c学生信息管理系统课程设计一、教学目标本课程旨在让学生了解和掌握学生信息管理系统的基本原理和应用,培养学生运用信息技术解决实际问题的能力。
具体目标如下:1.知识目标:使学生了解学生信息管理系统的概念、功能和应用场景;掌握学生信息管理系统的基本原理和技术。
2.技能目标:培养学生运用学生信息管理系统进行学生信息管理的实际操作能力;培养学生运用编程语言进行简单的学生信息管理系统开发能力。
3.情感态度价值观目标:培养学生对信息技术应用的积极态度,提高学生信息素养;培养学生团队协作、创新思维和解决问题的能力。
二、教学内容1.学生信息管理系统概述:介绍学生信息管理系统的基本概念、功能和应用场景。
2.学生信息管理系统原理:讲解学生信息管理系统的工作原理、关键技术及其实现方法。
3.学生信息管理系统应用:介绍学生信息管理系统的实际应用案例,分析其优势和不足。
4.学生信息管理系统开发:教授学生运用编程语言进行简单的学生信息管理系统开发过程。
三、教学方法1.讲授法:通过讲解、演示等方式,使学生了解学生信息管理系统的基本概念、原理和应用。
2.案例分析法:分析实际案例,使学生了解学生信息管理系统的优势和不足。
3.实验法:引导学生动手实践,培养学生运用学生信息管理系统进行实际操作的能力。
4.讨论法:学生进行小组讨论,培养学生的团队协作能力和创新思维。
四、教学资源1.教材:选择内容丰富、结构清晰的学生信息管理系统教材,为学生提供系统性的学习资源。
2.参考书:提供相关领域的参考书籍,丰富学生的知识体系。
3.多媒体资料:制作PPT、视频等多媒体资料,提高课堂教学效果。
4.实验设备:准备计算机、网络设备等实验器材,为学生提供实践操作的机会。
五、教学评估本课程采用多元化的评估方式,全面客观地评价学生的学习成果。
评估方式包括:1.平时表现:评估学生在课堂上的参与度、提问回答等情况,以体现学生的学习态度和积极性。
2.作业:布置课后作业,评估学生的理解和应用能力。
题目名称:学生信息管理系统算法分析:1用结构体标出信息系统的成员:学生学号,学生姓名,班级,成绩,排名2 利用c语言的文件知识将系统的信息存放在c盘下的“”的文件夹下3 定义各个子函数1定义输入信息函数,将学生信息按一定格式用scanf函数输入统计M个学生的信息;2定义输出函数,每两个表一页直到最后一个;3定义信息查询函数;a,定义按学号查询函数,如果输入的学号等于学生学号则输出要查询的信息;b,定义按姓名查询函数,如果输入的姓名字符串等于其中一个学生的姓名字符串则输出信息;c,定义按班级查找函数,如果输入的数字等于其中学生的班级数,则输出该信息;d,定义按成绩查找函数,如果输入的数字等于其中学生的成绩数,则输出该信息;e,定义查找总函数,输入一个数选择查找方式,1-4分别对应调用abcd四个函数;4定义删除信息函数;输入的数字作为要删除的学生学号,输出要删除的学生信息后选择是否删除,删除后将第g+1个的信息赋给第g 个,输出删除后的信息表;5定义信息修改函数;输入的数字等于要修改的学生学号,输出要修改的学生信息后选择是否修改,用switch,case语句选择要修改的项目,输入n,y决定是否继续直到不继续修改,输出学生信息;6定义信息统计函数;输入一个数字作为成绩,比较M个学生成绩是否等于输入的数字,统计相等的个数n输出;7定义成绩排序函数;用冒泡排序法将M个学生的成绩按从大到小的顺序排列后输出;4 定义主函数;调用读取文件函数,输入数字1-5分别对应调用修改学生信息函数,删除学生信息函数,查找学生信息函数,统计学生信息函数,学生成绩排行信息函数,0表示退出系统;最后调用保存文件函数;结束程序; 流程设计:代码设计:include<>include<>include<>define M 2define PAGE 2/学生信息结构体类型/typedef struct{int num; /学号/char name20; /姓名/int banji; /班级/int chengji; /成绩/int paiming; /排名/}STUDENTS;int read_fileSTUDENTS students/文件的读取/{ FILE fp;/定义一个文件指针变量/int i=0;iffp=fopen"","r"==NULL/文件空判断,fopen打开一个文件/ { printf"\n\n库存文件不存在请创建";return 0;}whilefeoffp=1/文件是否结束/{ fread&studentsi,sizeofSTUDENTS,1,fp;/读取文件/ifstudentsi.num==0/学号是否为零/break;elsei++;}fclosefp;/关闭文件/return i;}void save_fileSTUDENTS students,int sum/保存文件/{ FILE fp;int i;iffp=fopen"","wb"==NULL/判断文件是否为空/{ printf"读文件错误\n";return;}fori=0;i<sum;i++iffwrite&studentsi,sizeofSTUDENTS,1,fp=1/向文件写入的数据块不等于1/printf"写文件错误\n";fclosefp;}/输入模块/int inputSTUDENTS students{ int i=0;printf"\n\n 录入学生信息最多%d人\n",M;printf"----------------------------------------------------\n";do{ printf"\n 第%d人",i+1;printf"\n 学生学号:";scanf"%d",&studentsi.num; ifstudentsi.num==0break;printf"\n 学生姓名:";scanf"%s",;printf"\n 班级:";scanf"%d",&studentsi.banji;printf"\n 成绩:";scanf"%d",&studentsi.chengji;printf"\n 排名:";scanf"%d",&studentsi.paiming;i++;}whilei<M;printf"\n --%d个学生信息输入完毕--\n",i;printf"\n 按任意键返回主菜单";getchar;return i;}/输出模块/void outputSTUDENTS students{int i=0,j=0,page=1;printf"\n\n --学生信息表-- 第%d页\n\n",page;/每两个一页/printf"学生学号----姓名-----班级----- 成绩-----排名\n";printf"-------------------------------------------------------\n";do{ ifstudentsi.num=0{ j++;ifj%PAGE=0{ printf"%12d %10s %2d %3d %4d \n",studentsi.num,,studentsi.banji,studentsi.chengji,studentsi.paiming;printf"------------------------------------------------------\n";}}else{ printf"按任意键继续";getchar;printf"\n\n --学生信息表-- 第%d页\n\n",++page;printf"学生学号----姓名-----班级----- 成绩-----排名\n"; printf"------------------------------------------\n";{ printf"%12d %10s %2d %3d %4d \n",studentsi.num,,studentsi.banji,studentsi.chengji,studentsi.paiming;printf"---------------------------------------------\n"; }}i++;}whilestudentsi.num<M;printf"按任意键返回主菜单";getchar ;}/学生信息查询/void find_by_numSTUDENTS students,int sum /按学号查找/{ int i,find_num;printf"\n 请输入要查找的学生学号:";scanf"%d",&find_num;fori=0;i<sum;i++ifstudentsi.num==find_num{printf"这是您所查找到的学生信息:\n";printf"学生学号----姓名-----班级----- 成绩-----排名\n"; printf"------------------------------------------\n";printf"%12d %10s %2d %3d %4d \n",studentsi.num,,studentsi.banji,studentsi.chengji,studentsi.paiming;printf"---------------------------------------------\n"; break;}else{printf"\n 未找到要查找的学生信息,按任意键返回";getchar;}}void find_by_nameSTUDENTS students,int sum/按姓名查找/{int i;char find_name20;printf"\n 请输入要查找的学生姓名:";scanf"%s",find_name;fori=0;i<sum;i++;,find_name==0 /字符串比较相等返回0/{printf"这是您所查找到属于该学生的信息:";printf"学生学号----姓名-----班级----- 成绩-----排名\n";printf"------------------------------------------\n";printf"%12d %10s %2d %3d %4d \n",studentsi.num,,studentsi.banji,studentsi.chengji,studentsi.paiming;printf"---------------------------------------------\n";}else{printf"\n 未找到要查找的学生信息,按任意键返回";getchar;}}void find_by_banjiSTUDENTS students,int sum/按班级查找/ {int i;int find_banji;printf"\n 请输入要查找的学生班级:";scanf"%d",&find_banji;fori=0;i<sum;i++ifstudentsi.banji==find_banji{printf"这是您所查找到属于该班级的学生:";printf"学生学号----姓名-----班级----- 成绩-----排名\n";printf"------------------------------------------\n";printf"%12d %10s %2d %3d %4d \n",studentsi.num,,studentsi.banji,studentsi.chengji,studentsi.paiming;printf"---------------------------------------------\n";}else{printf"\n 未找到要查找的班级信息,按任意键返回";getchar;}}void find_by_chengjiSTUDENTS students,int sum/按成级查找/ {int i;int find_chengji;printf"\n 请输入要查找的学生成绩:";scanf"%d",&find_chengji;fori=0;i<sum;i++{ifstudentsi.chengji==find_chengji{printf"这是您所查找到有该成绩的学生:";printf"学生学号----姓名-----班级----- 成绩-----排名\n";printf"------------------------------------------\n";printf"%12d %10s %2d %3d %4d \n",studentsi.num,,studentsi.banji,studentsi.chengji,studentsi.paiming;printf"---------------------------------------------\n";}else{printf"\n 未找到要查找的学生信息,按任意键返回";getchar;}}}void findSTUDENTS students,int sum/定义查找总函数/{ int choice;printf"\n 您要按照哪种方式查找 \n";/用switch语句/printf"\n 1.按学生学号查找 \n";printf"\n 2.按学生姓名查找 \n";printf"\n 3.按学生班级查找 \n";printf"\n 4.按学生成绩查找 \n";printf"\n 0. 退出\n";printf"\n 请选择0-4: \n";scanf"%d",&choice;switchchoice{ case 1: find_by_numstudents,sum; break;case 2: find_by_namestudents,sum; break;case 3: find_by_banjistudents,sum; break;case 4: find_by_chengjistudents,sum; break;case 0: break;}}/删除信息模块/void delSTUDENTS students{ int i,g,sum;int del_num;printf"\n 请输入要删除的学生学号:";scanf"%d",&del_num;fori=0;i<sum;i++ifstudentsi.num==del_num/通过学号判断/{printf"这是您所要删除学生信息:\n";printf"学生学号----姓名-----班级----- 成绩-----排名\n";printf"------------------------------------------\n";printf"%12d %10s %2d %3d %4d\n",studentsi.num,,studentsi.banji,studentsi.chengji,studentsi.paiming;printf"---------------------------------------------\n";printf"您确认要删除吗";printf"按任意键继续";getchar;printf"已成功删除学生信息";}forg=i;g<sum;g++{ studentsg=studentsg+1;printf"删除后的信息表:\n";printf"学生学号----姓名-----班级----- 成绩-----排名\n";printf"------------------------------------------\n";printf"%12d %10s %2d %3d %4d\n",studentsi.num,,studentsi.banji,studentsi.chengji,studentsi.paiming;printf"---------------------------------------------\n";}}/信息修改模块/void modifySTUDENTS students,int sum{int i=0,choice,modify_num,flag;do{printf"请输入要修改的学生学号:";scanf"%d",&modify_num;fori=0;i<sum;i++ifstudentsi.num==modify_num{ printf"\n\n --学生信息-- \n\n";printf"学生学号----姓名-----班级----- 成绩-----排名\n";printf"------------------------------------------\n";printf"%12d %10s %2d %3d %4d\n",studentsi.num,,studentsi.banji,studentsi.chengji,studentsi.paiming;printf"---------------------------------------------\n"; printf"\n 您要修改哪一项\n";printf"\n 1.学生姓名\n";printf"\n 2.学生班级\n";printf"\n 3.成绩\n";printf"\n 4.排名\n";printf"\n 请选择1-4:\n";scanf"%d",&choice;switchchoice{ case 1: printf"\n 请输入修改后的学生姓名:";scanf"%s",; break;case 2: printf"\n 请输入修改后的学生班级:";scanf"%s",studentsi.banji; break;case 3: printf"\n 请输入修改后的成绩:";scanf"%s",studentsi.chengji; break;case 4: printf"\n 请输入修改后的排名:";scanf"%d",&studentsi.paiming; break;}printf"\n\n --学生信息-- \n\n";printf"学生学号----姓名-----班级----- 成绩-----排名\n";printf"------------------------------------------\n";printf"%12d %10s %2d %3d %4d\n",studentsi.num,,studentsi.banji,studentsi.chengji,studentsi.paiming;printf"---------------------------------------------\n"; break;}else{printf"\n 该学生不存在";}printf"\n 修改成功\n";printf"您要继续修改吗Y/N";if choice=='Y'||choice=='y'{ flag=1;printf"\n 继续\n";}else flag=0;}while flag==1; /直到不修改结束循环/printf"\n 按任意键返回主菜单";getchar;}/学生信息统计模块/void countSTUDENTS students,int sum /统计某个成绩的学生个数/ {int i;int count_chengji;int n=0;printf"请输入一个成绩:\n";scanf"%d",&count_chengji;fori=0;i<sum;i++{ifstudentsi.chengji==count_chengji/计数/n++;break;}printf"统计出属于该成绩的一共有%d个人\n",n;}/成绩排序模块/void sortSTUDENTS students,int sum{STUDENTS t;int i,j;printf"\n\n --学生信息-- \n\n";printf"学生学号----姓名-----班级----- 成绩-----排名\n";printf"------------------------------------------\n";fori=1;i<sum;i++{ forj=i+1;j<sum;j++ifstudentsj.chengji>studentsi.chengji/冒泡排序法/{t=studentsj;studentsj=studentsi;studentsi=t;}}fori=0;i<sum;i++{ printf"%12d %10s %2d %3d %4d \n",studentsi.num,,studentsi.banji,studentsi.chengji,studentsi.paiming;printf"---------------------------------------------\n"; }}void main{STUDENTS studentsM;int choice,sum;sum=read_filestudents;/文件读取/if sum==0{printf"请录入学生信息\n";sum=inputstudents;/输入信息/}do{printf"\n\n\n 学生信息管理系统 \n\n";printf" 1.修改学生信息 \n\n";printf" 2.删除学生信息\n\n";printf" 3.查找学生信息\n\n";printf" 4.统计学生信息\n\n";printf" 5.学生成绩排行信息\n\n"; printf" 0.退出系统\n\n";printf" 请选择\n\n";scanf"%d",&choice;switchchoice{ case 1 : modifystudents,sum; break;case 2 : delstudents; break;case 3 : findstudents,sum; break;case 4 : countstudents,sum; break;case 5 : sortstudents,sum; break;case 0 : break;}}whilechoice=0; /直到选择退出系统/save_filestudents,sum;}运行结果:。
题目:学生信息管理系统一、需求分析任务要求:自学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)修改链表,删除对应结点。
C语言程序设计课程设计报告设计题目:学生信息管理系统专业电子信息工程班级学生指导教师年学期一、总体设计<一>.模块划分总体分为4大板块,分别为:1、输入信息模块:输入信息并将信息保存到文件当中:2、浏览信息模块:显示需要全部的学生信息:3、编辑信息模块:输入密码,修改或删除学生信息:4、修改密码模块:修改系统密码;5、系统初始化模块:删除保存的数据和修改后的密码,初始化系统。
<二>.数据结构#define N 100 /* 所能容纳的数据数量*/struct student{int number;char name[10];char gender[6];int birthday;char major[18];char Class[10];char address[30];char dormitory[10];}stu[N];<三>. 函数原型声明1、int menu1(); 主菜单输出函数2、int menu2(); 浏览选项子菜单输出函数3、int menu3(); 编辑选项子菜单输出函数4、void input(); 信息输入函数5、void scan(); 浏览学生信息子函数6、void display(); 信息显示函数7、void save(int n); 将输入的信息保存为文件8、void edit(); 编辑学生信息子函数9、void search(int s); 查找函数10、void revise_info(); 信息修改函数11、void code(); 密码管理函数12、void del(); 信息删除函数13、void recover(); 初始化程序二、功能实现1.main( )(流程图)2.各功能模块详细流程图(1)、输入信息模块输入人数——输入信息——保存信息至文件(2)、浏览信息模块①、全部显示:从文件中读取信息至结构体——输出信息②、按姓名查找:输入姓名——从文件中读取信息至结构体——查找姓名——输出信息③、按学号查找:输入学号——从文件中读取信息至结构体——查找学号——输出信息(3)、编辑信息模块①、修改信息:输入学号——从文件中读取信息至结构体——查找学号——选择修改项目——修改信息——保存信息至文件②、删除信息:输入学号——从文件中读取信息至结构体——查找学号——确认删除——删除信息——保存剩余信息至文件(4)、修改密码模块从文件中读取旧密码——输入旧密码——输入新密码——保存至文件——修改成功(5)、系统初始化模块删除原文件——建立空白文件三、测试及调试(测试方案、存在的问题及解决方法)1、主菜单与子菜单无法建立联系,即输入相应的选项后不能运行相应的子函数。
c 课程设计设计学生信息管理系统一、教学目标本课程的教学目标是使学生掌握学生信息管理系统的基本概念、设计和实现方法。
通过本课程的学习,学生应能理解学生信息管理系统的需求分析、数据库设计、界面设计和程序实现等基本环节,提高运用计算机技术解决实际问题的能力。
具体来说,知识目标包括:1.掌握学生信息管理系统的基本概念和组成部分。
2.了解学生信息管理系统的需求分析方法和数据库设计原则。
3.熟悉学生信息管理系统的界面设计和程序实现技术。
技能目标包括:1.能够进行学生信息管理系统的需求分析。
2.能够设计学生信息管理系统的数据库结构。
3.能够编写学生信息管理系统的界面和程序。
情感态度价值观目标包括:1.培养学生对计算机技术的兴趣和热情,提高学生运用计算机技术解决实际问题的意识。
2.培养学生团队合作精神和创新思维,提高学生在项目开发中的沟通协调能力。
二、教学内容本课程的教学内容主要包括学生信息管理系统的基本概念、需求分析、数据库设计、界面设计和程序实现。
具体安排如下:1.学生信息管理系统的基本概念:介绍学生信息管理系统的发展历程、组成部分和应用场景。
2.需求分析:讲解如何进行学生信息管理系统的需求分析,包括需求收集、需求整理和需求文档编写。
3.数据库设计:介绍数据库设计的基本原则和方法,讲解如何设计学生信息管理系统的数据库表结构。
4.界面设计:介绍界面设计的基本原则和技术,讲解如何设计学生信息管理系统的界面。
5.程序实现:讲解如何编写学生信息管理系统的程序代码,包括前端和后端开发技术。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法和实验法等。
1.讲授法:用于讲解基本概念、原理和方法。
2.讨论法:用于探讨需求分析、数据库设计和界面设计等方面的问题,培养学生的团队合作精神和创新思维。
3.案例分析法:通过分析实际案例,使学生更好地理解学生信息管理系统的开发过程。
4.实验法:让学生动手实践,编写学生信息管理系统的程序代码,提高学生的实际操作能力。
C语言课程设计题目:学生信息管理系统学号:**姓名:***班级:信计1102成绩:正文1系统功能本程序利用结构体数组及函数的调用完成对学生基本信息的动态管理。
可以对学生基本信息进行录入、查询、删除、修改、浏览、成绩汇总的功能。
2设计思想利用宏定义,函数的调用及结构体数组,通过菜单选择的方式,在不同函数功能间进行切换,从而达到实验设计的目的、使之具有学生信息管理的功能。
3概要设计1.模块介绍:采用模块化设计,功能放在各模块中实现。
主函数是程序的入口,在其中声明一些必要的变量,设计以无限循环程序,循环体为一个switch语句,该语句的条件是通过调用主菜单函数得到返回值,根据该返回值调用相应的各功能函数,同时要设置一个循环结束条件,以免造成死循环。
2.系统流程:主程序输入录入浏览查询删除修改汇总退出4详细设计1.代码介绍:本程序中,用num、name、banji、age、sex、birthday 、addr、phone、course、grade,来分别代表学生的学号、姓名、班级、年龄、性别、出生日期、住址、电话、所选课程、分数。
然后再利用结构体数组,将其归为学生的属性。
再用enter、print、save 、search、del、modify、rank、return,来分别表示学生信息的输入、浏览、录入、查找、删除、修改,学生成绩的汇总,程序的返回的功能。
在程序中,通过对各个代码的使用及各功能函数的调用,可实现本程序设计目的。
2.函数介绍:1.main( )主函数主函数是程序的入口,在其中定义一些必要的变量,设计以无限循环程序,循环体为一个switch语句,该语句的函数是通过调用主菜单函数得到返回值,根据返回值调用相应的各功能函数,同时要设置一个循环结束条件,以免造成死循环。
2.menu( )函数----制作菜单通过printf( )函数在屏幕上绘制一个菜单,将菜单进行编号,并显示一个提示输入选项,输入1~8之间的数字。
c语言课程设计(学生信息管理系统)一、系统功能学生信息管理系统是一款基于C语言开发的数据管理程序,可实现对学生信息的增删改查等功能。
具体功能列表如下: a. 添加学生信息:可根据学生的基本信息,如学生学号、姓名、性别、地址、联系电话等,依次记录入系统; b. 删除学生信息:可根据学生学号、姓名等信息,从系统中删除不必要的学生信息; c. 修改学生信息:可根据已有的学生信息,修改学生某些属性内容,以更新系统中的数据; d. 查看学生信息:可根据学生学号、姓名等信息,查看指定学生的所有信息及多种查询功能; e. 数据保存功能:可将当前系统中的学生信息,保存成文件的形式; f. 备份/恢复功能:可对学生信息文件进行备份并对备份文件进行恢复; g. 查询统计功能:可根据学院代号、专业代号等信息,进行不同的查询统计; h. 排序功能:可根据学生学号、姓名等信息,对学生信息进行排序; i. 帮助功能:可提供详细的使用帮助文档,以帮助用户更好地使用系统;二、程序实现及结构1. 主程序:此程序用于控制整个系统的运行,可实现系统菜单显示、功能调用及功能切换等功能,可根据用户的操作需求,调用其他子程序实现各项功能。
2. 子程序:此程序是系统的主要部分,可实现学生信息的增删改查等功能,并可支持学生信息的备份,恢复,排序及查询统计等功能,用于实现主程序调用的功能。
3. 管理模块:此模块可实现对用户的登录及注册功能,可检测用户登录及注册的账号是否正确,以及是否有权限使用系统;4. 数据库模块:此模块可实现对学生信息的存储及调用,便于对各类学生信息进行更方便的管理。
此模块还可以负责系统的备份及恢复功能的实现。
5. 图形界面模块:此模块负责实现系统的图形化界面,使用户可以更加友好地操作系统,可以根据用户的需求,随时更改系统界面设置。
三、程序设计学生信息管理系统的设计主要有四个部分:1. 主程序:主程序的设计要求负责控制整个系统的运行,并根据用户的操作调用子程序实现各个功能。
c语言课程设计学生信息管理系统一、教学目标本课程旨在通过学习C语言,使学生掌握学生信息管理系统的基本概念、设计方法和实现技巧。
具体目标如下:1.知识目标:学生应掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识。
学生应了解学生信息管理系统的需求分析、系统设计、编码实现、测试等基本过程。
2.技能目标:学生能够运用C语言编写简单的程序,解决实际问题。
学生能够独立完成学生信息管理系统的设计和实现。
3.情感态度价值观目标:学生应培养对计算机科学的兴趣和热情,形成良好的学习习惯和团队合作精神。
学生应理解编程不仅仅是一种技能,更是一种思考问题和解决问题的方式。
二、教学内容本课程的教学内容主要包括C语言的基本语法和编程方法,以及学生信息管理系统的设计和实现。
具体安排如下:1.C语言基本语法:数据类型、运算符、控制结构、函数等。
2.学生信息管理系统需求分析:系统功能、数据结构、界面设计等。
3.学生信息管理系统设计:模块划分、算法实现、接口设计等。
4.学生信息管理系统实现:编码、调试、测试等。
三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:讲解C语言的基本语法和概念,学生信息管理系统的需求分析和设计方法。
2.案例分析法:分析实际案例,引导学生运用C语言解决实际问题。
3.实验法:学生动手编写代码,实现学生信息管理系统。
4.讨论法:分组讨论,促进学生之间的交流与合作。
四、教学资源本课程所需教学资源包括:1.教材:《C语言程序设计》等相关教材。
2.参考书:提供给学生额外的学习资料,以加深对C语言和编程的理解。
3.多媒体资料:PPT、视频教程等,用于辅助讲解和演示。
4.实验设备:计算机、编程环境等,用于学生动手实践。
五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:通过课堂参与、提问、讨论等环节,评估学生的学习态度和积极性。
2.作业:布置适量的作业,评估学生的编程能力和对知识的理解程度。
《计算机软件设计》课程综合设计报告课题名称:学生信息管理程序学院:信息科学技术学院专业班:组员:学号姓名:学号姓名:指导教师:北京理工大学课程设计任务书2014~2015学年第1学期学生姓名:专业班级:指导教师:工作部门:计算机学院一、课程设计题目二、课程设计内容(含技术指标)设计要点:编写一个菜单驱动的程序。
实现如下管理功能:●学生信息录入功能---输入●学生信息浏览功能---输出●排序●按学号查询●按姓名查询●学生信息的删除与修改关键技术分析:该软件需要运用指针、数组、函数、结构体、文件等知识,排序算法等。
解决思路:菜单的实现:在循环内嵌套分支语句实现;数据的存储:使用结构体数组保存临时数据,然后写入文件中三、进度安排1.老师讲解课程设计的目的要求,学生在了解要求后查阅相关资料,为后续的程序设计做准备。
(2学时)2.根据要求,画出程序框图。
(4学时)3.编写程序,并进行各模块的调试。
(20学时)4.集成调试。
(2学时)5.撰写课程设计报告。
(2学时)四、基本要求1.程序的界面友好2. 有较强的健壮性3.、执行效率较高。
.课程负责人签名:年月日课程设计分工安排课程设计成绩评定表学生信息管理程序摘要学生信息管理系统是典型的管理信息系统(MIS),它掌握了学生有关的各种基本信息,并将这种信息提供给校内的系统用户。
为了达到提供有用的信息目的,系统内必须实现某些过程,特别是信息输入过程和查询管理过程。
系统接受各种数据,将他们转变成信息,将数据和信息加以存贮并将信息提供给用户。
其开发主要包括后台数据库的建立与维护以及前端应用程序的开发两个方面。
对于前者要求建立数据的一致性、完整性以及数据库的安全性。
而对于后者则要求应用程序功能完备,易使用等特点。
经过分析,我们使用的Visual Basic 6.0为开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一方便而简洁操纵数据库的智能化对象。
首先在短时间内建立系统应用原型,然后对初始原型系统进行需求迭代,不断修正和改进, 直到形成满意的可行系统。
关键词:学生信息管理系统、Visual Basic 6.0AbstractCollege student management system is a typical management information system. It has university with information on the various events and objects,and will provide the information to users outside the university. In order to provide useful information,it must achieve certain process in the system, in particular the process of transformation and associated information. The system accepts each kind of data and transforms information ,and performs data and the information to store and provide the information to user. It includes the establishment and maintenance of database and front-end application development. The former requires that build the data consistency、completeness and the data base security. The latter requires that the application function is complete and easy to be put into use.After analysis,I use the visual basic 6.0 of Microsoft development tools,it provide the use of its object-oriented development tools,the particular windows is convenient and simple data manipulation intelligent object database. First build the system application prototype in short time and then iteration of the initial prototype system,constantly revised and improved,until satisfied with the information of a viable system.Keywords: student management system; visual basic 6.0目录第一章系统概述81.1系统说明81.2功能分析8 第二章功能模块9 第三章数据结构及其说明10第四章程序功能及其流程图134.1主函数功能及主函数流程图134.2其它函数功能及函数流程图14 第五章程序操作说明17 第六章程序代码23 参考文献35 心得体会35一、系统概述1.需求说明:学生信息管理系统的开发主要是基于对学生的信息管理的需求,便于对一定群体的学生进行相关的学生基本信息管理,方便对这个指定群体的学生信息进行相关的管理,实现对每个学生的基本信息的储存、修改、添加、删除.还有相关的查询、排序、浏览的实际操作,确保记录,储存正确的学生信息。
2.功能分析:该学生信息管理系统的基本功能有:(1)学生的信息可以以不同的群体作为一个单位来存放学生信息;(2)每个学生的信息的字段(数据)有:性别、年龄、姓名、学号、性别、地址和联系电话、E-mail;(3)可以添加新的学生信息,记录保存新的数据;(4)可以对相关学生的信息进行所有字段的修改;(5)可以按照姓名或者是学号查找相关学生的信息;(6)可以删除相关学生的信息;(7)能浏览在打开的文件的所有学生的信息;(10)可以对打开的文件的所有学生信息进行浏览;(11)对学生信息按照学号排序;二、功能模块模块1:输入学生信息模块2:浏览学生信息模块3:学号查询学生信模块4:姓名查询学生信模块5:删除学生信息模块6:修改学生信息模块7:学生信息排序模块0:退出系统第三章三、数据结构及说明本程序中,运用了多种数据结构。
首先对于学生各项详细信息的记录用了结构数组的形式,然后又运用链表动态地分配内存单元,在void main函数中,把保存在数组中的值再赋值给其中的一个结点,通过指针的后移,把多个数据连成一个链,形成一个链表。
在这过程当中,还运用了数据文件的方式,每一次从终端输入的数据都以数据文件的形式保存到了磁盘。
对于主要数据结构的举例如下:结构数组:struct student{char NO[20];char name[20];int age;char sex[3];char birthday[10];char address[30];char phone[20];chare_mail[20];}链表:①typedef struct student STU;STU *head=NULL;int n,i=0; //void show_menu();void menu();void insert_stu();void print_stu();void search_NO();void search_name();void arrage_stu();void del_stu();void revise_stu();void begin();//建立链表struct student{char NO[20];char name[20];int age;char sex[3];char birthday[10];char address[30];char phone[20];char e_mail[20];struct student *next;};数据文件:①FILE *fp;long size;STU *NEW,*cur;head=(STU *)malloc(sizeof(STU));head->next=NULL;if((fp=fopen("fname.txt","r"))==NULL){printf(" *************************这是新表*************************\n");return;}fseek(fp,0L,2);size=ftell(fp);if(!size){printf("这是空表\n");return;}②rewind(fp);//移动到文件首cur=head->next;while(!feof(fp)){NEW=(STU *)malloc(sizeof(STU));fscanf(fp,"%s %s %d %s %s %s %s %s\n",NEW->NO,NEW->name,&NEW->age,\ NEW->sex,NEW->birthday,NEW->address,NEW->phone,NEW->e_mail);NEW->next=NULL;//创建节点完if(head->next==NULL)head->next=NEW;elsecur->next=NEW;cur=NEW;n++;}cur->next=NULL;fclose(fp);}第四章四、程序功能及流程图1.主函数功能,及主函数流程图本程序执行的入口是main函数,然后在main函数中调用了函数,这就实现了对学生管理系统中的数据以文件的方式进行读入。
通过对各个函数的调用。
被调用的函数都是没有形参的,但是通过对链表的使用,可以使得每一次的函数调用都能得到返回值。
最后,再从main函数中结束整个程序的运行。
其中涉及到被调用的函数有:void insert ()void print_ ()void search_name ()void search_NO ()void revise_stu ()void del_stu ()void arrage_stu ()void save()2.其他函数的功能,及函数的流程图Insert 函数;输入学生信息Search no 函数学号查找信息Search name;姓名查找信息Del 函数;删除学生信息Revise 函数:修改学生信息Arrage 函数:排序学生信息?第五章五、程序操作说明(1)操作说明就如上一页的程序流程图说明一样,大概的操作是:首先,打开VC编译器,打开该文件之后,调试,连接,运行,就可以看到控制台易用程序的学生信息管理系统,接下来是多条路径的选择了:I ,该程序要求的是首先要输入该管理系统要打开提示:在这个学生信息管理系统中,已经有一个储存了学生信息的,可以直接打开这个文件检验该系统是否运行正确。