C课程设计学生信息管理系统
学生管理系统c语言简单版
学生管理系统c语言简单版学生管理系统c语言简单版介绍:学生管理系统是一种用于管理学生信息的软件,它可以方便地对学生的基本信息、课程成绩等进行录入、查询、修改和删除等操作。
本文将介绍如何使用C语言编写一个简单的学生管理系统。
功能:1. 添加学生信息2. 查询学生信息3. 修改学生信息4. 删除学生信息5. 显示所有学生信息实现方法:1. 添加学生信息添加学生信息需要输入以下内容:姓名、性别、年龄、班级和电话号码。
我们可以定义一个结构体来存储这些信息,代码如下:```struct Student {char name[20];char sex[10];int age;char class[20];char phone[20];};```然后定义一个数组来存储多个学生的信息:```struct Student students[100];int count = 0; // 学生数量```接下来,我们可以编写一个函数来添加新的学生信息:```void addStudent() {struct Student student;printf("请输入姓名:");scanf("%s", );printf("请输入性别:");scanf("%s", student.sex);printf("请输入年龄:");scanf("%d", &student.age);printf("请输入班级:");scanf("%s", student.class);printf("请输入电话号码:");scanf("%s", student.phone);students[count++] = student; // 将新的学生信息存储到数组中 printf("添加成功!\n");}```2. 查询学生信息查询学生信息可以按照姓名或电话号码进行查询。
C语言程序设计实习报告学生信息管理系统
C语言程序设计实习报告学生信息管理系统C 语言课程设计题目:学生信息管理系统设计者:梁天江专业:机械设计制造及其自动化班级学号: 072084-31所属院系:机电学院指导教师:吴湘宁7月17日1.题目和要求:1.1问题提出与要求:学生成绩管理系统[要求]设计一个学生成绩管理系统,对在校某班学生几门课程的考试成绩进行统一管理。
每个学生记录包括学号、姓名、年龄、数学、英语、物理成绩,默认以学号为序存放。
(1)一个文件按以班为单位存储学生记录。
(2)将允许的操作分为六种A:插入一个新的学生记录(录入学生信息)B:修改学生记录C:删除一个学生记录D:登记成绩E:修改成绩F:浏览全班成绩(3)计算学生的总成绩(4)输出全班成绩表1.2需求分析.根据题目要求,由于学生信息是存放在文件中,因此应提供文件的输入,输出等操作;在程序中需要浏览学生的信息,应提供显示,查找,排序等操作;另外还应提供键盘式选择菜单实现功能选择.2.功能实现设计:2.1总体设计:分析系统:根据题目的需求分析,可将这个系统设计为六大模块(见下图):插入学生信息,修改,删除,登记,浏览,统计。
2.2详细设计:1、主函数主函数设计得比较简洁,只提供输入、功能处理和输出部分的函数调用。
其中各功能模块用菜单方式选择;其流程图如下:[程序]void main(){int a;do{printf("\t\t\t\t\n");printf("\t\t\t\t学生成绩管理系统\n");printf("\n");printf("\t\t\t作者:梁天江班级:072084-31 学号: 1004528\n"); printf("\t\t\t-------------------------------------------\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\n");。
c++学生管理系统课程设计
c++学生管理系统课程设计C++学生管理系统课程设计是一个非常常见的编程项目,旨在帮助学生练习使用C++语言来实现一个基本的学生信息管理系统。
这个系统可以用于录入、查看、修改和删除学生信息,并可以计算学生的平均分和排名。
在这个系统中,学生信息可以包括学号、姓名、性别、年龄、班级和成绩等。
通过使用C++的面向对象编程思想,可以创建一个学生类来表示学生信息,并可以在主程序中实例化该类来创建和管理学生对象。
首先,系统需要提供一个菜单界面,让用户可以选择不同的操作,比如添加学生信息、查看学生信息、修改学生信息和删除学生信息等。
用户可以通过输入相应的选项来执行特定的操作。
对于添加学生信息的操作,系统会要求用户输入学生的各个属性值,并根据输入的值创建一个新的学生对象并将其添加到系统中。
系统还可以提供验证机制,确保输入的学号不重复。
对于查看学生信息的操作,系统会将保存的学生信息按照一定的格式打印出来,以便用户查看。
用户可以选择按学号、姓名、班级等排序方式来查看学生信息。
对于修改学生信息的操作,系统会提示用户输入要修改的学生的学号,并根据学号在系统中查找对应的学生对象。
然后,用户可以选择要修改的属性,并输入新的值来更新学生对象的信息。
对于删除学生信息的操作,系统会提示用户输入要删除的学生的学号,并根据学号在系统中查找对应的学生对象。
然后,系统会确认用户是否要删除该学生信息,并在用户确认后将该学生对象从系统中移除。
除了上述基本功能,学生管理系统还可以提供其他附加功能,比如计算学生的平均分和排名。
系统可以遍历所有学生对象,并计算出他们的平均分和排名,然后将结果打印出来供用户查看。
总的来说,C++学生管理系统课程设计是一个综合性的编程项目,通过实现该项目,学生可以练习和巩固他们在C++语言和面向对象编程方面的知识。
此外,通过这个项目,学生还可以提高他们的逻辑思维能力和问题解决能力。
课程设计学生信息管理系统
课程设计学生信息管理系统一、课程目标知识目标:1. 理解学生信息管理系统的基本概念、功能及作用;2. 掌握数据库的基本操作,如数据录入、查询、更新和删除;3. 学会运用编程语言(如Python)实现学生信息管理系统的基本功能;4. 了解信息系统的安全性和可靠性,提高信息保护意识。
技能目标:1. 能够运用所学知识设计并实现一个简单的学生信息管理系统;2. 培养分析问题、解决问题的能力,通过编程解决实际问题;3. 提高团队协作和沟通能力,通过项目实践共同完成任务;4. 掌握项目管理和时间规划,合理安排学习进度。
情感态度价值观目标:1. 培养学生对信息技术的兴趣和热情,提高学习积极性;2. 培养学生严谨、认真的工作态度,养成良好的编程习惯;3. 增强学生的信息安全意识,尊重个人隐私,树立正确的道德观念;4. 培养学生的团队精神,学会分享和合作,提高人际交往能力。
本课程针对初中年级学生,结合学科特点和教学要求,以实用性为导向,旨在让学生通过学习学生信息管理系统,掌握信息技术的基本知识和技能,同时培养其情感态度价值观。
课程目标具体、可衡量,便于后续教学设计和评估。
在教学过程中,教师需关注学生的个体差异,充分调动学生的积极性,引导他们主动参与课堂实践,提高课堂效果。
二、教学内容1. 学生信息管理系统概述- 了解信息系统的基本概念、功能及作用;- 掌握学生信息管理系统的基本模块和流程。
2. 数据库基础知识- 学习数据库的基本概念、数据模型;- 掌握SQL语言的基本操作,如插入、查询、更新和删除。
3. 编程语言应用- 学习Python编程基础,掌握基本语法和常用库;- 利用Python实现学生信息管理系统的功能。
4. 系统设计与实现- 分析学生信息管理系统的需求,进行系统设计;- 学习项目管理方法,制定项目计划,分工协作。
5. 系统测试与优化- 学习系统测试的基本方法,对实现的功能进行测试;- 根据测试结果,优化系统性能和用户体验。
学生管理系统c语言毕业设计
学生管理系统c语言毕业设计学生管理系统是一个用于管理学生信息和学校日常运营的软件系统。
它能够帮助学校管理学生的个人信息、课程安排、成绩记录以及其他相关事务。
以下是关于学生管理系统的一些常见问题和解释:1. 学生管理系统是什么学生管理系统是一种软件系统,用于帮助学校管理学生信息和学校事务。
它可以存储学生的个人信息,包括姓名、年龄、性别、联系方式等。
同时,学生管理系统还提供了一系列功能,例如课程安排、成绩记录、考勤管理等。
2. 学生管理系统有哪些功能学生管理系统通常包含以下主要功能:-学生信息管理:可以记录学生的个人信息,包括姓名、年龄、性别、住址等。
-课程安排:可以安排学生的课程表,包括课程名称、教师信息、上课时间和地点等。
-成绩记录:可以记录学生的考试成绩和平时成绩,以便后续查询和统计。
-考勤管理:可以记录学生的出勤情况,包括迟到、早退、请假等。
-统计分析:可以根据学生的成绩和出勤情况进行统计分析,提供相关报表和图表。
3. 学生管理系统的优势是什么学生管理系统有以下几个优势:-提高工作效率:学生管理系统可以自动化学生信息的录入和管理,减少了手工操作的时间和错误。
-方便数据查询:学生管理系统可以快速查询和检索学生的个人信息、课程安排和成绩记录,提供了方便快捷的数据访问方式。
-信息安全性:学生管理系统可以设置权限和保护机制,保证学生信息的安全性和隐私保护。
4. 如何设计一个学生管理系统设计一个学生管理系统需要考虑以下几个方面:-数据库设计:需要设计一个合适的数据库结构来存储学生信息、课程安排和成绩记录等。
-用户界面设计:需要设计用户友好的界面,方便用户进行操作和查询。
-功能实现:根据需求,实现学生信息管理、课程安排、成绩记录等功能模块。
-数据安全性和权限控制:保证学生信息的安全性和隐私保护,设置合适的权限和保护机制。
希望以上解答对您的学生管理系统项目有所帮助。
如果您需要更具体的信息或具体的代码实现,还请进一步提供相关要求。
C语言课程设计报告(学生成绩管理系统)
C语言课程设计报告:学生成绩管理系统系统需求一、当前学生信息:通过结构体struct student 来保存学生的姓名,学号,性别,语文,数学,英语和计算机等等相关信息,并且通过cin函数来进行给当前学生输入初始信息。
二、学生成绩查询: 输入一个学号,在文件中查找此学生, 若找到则输出此学生的全部信息和成绩;若找不到则输出查找失败的信息。
同时也可以全部把各科的平均成绩,最高和最低分输出.三、新生插入:通过给该生的学号来和原班上的学生的学号比较大小,若大就在后,若小则靠前排,将此生的信息保存下来.四、输出全部学生信息和全部学生成绩。
五、退出系统.六、附加说明:系统将来完善的功能有:可以通过性别来模糊查询,也可以通过姓名的姓来先进行模糊查询,以便后面精确查找。
总体设计一、仔细阅读系统要求,首先将此系统化分为如下模块(即如下函数)1、输入初始的学生信息:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu *p1)来实现此操作。
2、查询模块:可用stu *lookdata(stu *p1)来实现。
找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。
3、插入模块:可用insert( )函数来实现。
其中通过学号的大小来比较的,并且以此来排序.4、输出学生的信息以及成绩:通过学生的姓名来查看学生的语文、数学、英语和计算机等相关成绩,同时也可以分别通过caverage()、maverage()、eaverage() 和comaverage() 来输出语文、数学、英语和计算机等成绩的平均分数、最高和最低分数。
5、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。
二、系统主模块结构图:详细设计一、界面设计此系统界面采用图形和数字化菜单设计。
主界面设计如下:学生成绩管理系统请选择相应的数字执行相应的功能:1:是否输入其他数据2:查看数据3:插入数据4:查找数据5:更新数据6:保留数据7:显示或打印数据8:语文成绩状况9:数学成绩状况10:英语成绩状况11:计算机成绩状况12:?13:退出系统二、数据结构设计:程序设计中用到的结构体类型:学生信息结构体类型:typedef struct student{char name[MAX];int num[MAX];char sex[MAX];int chinese;int mathematic;int english;int computer;struct student *next;}程序代码://原始密码是123456#include"stdio.h”#include"stddef.h"#include"stddef。
C语言课程设计实验报告学生信息管理系统
课程设计课程名称C语言程序课程设计题目名称学生信息管理系统设计_____学生学院_自动化学院_______________专业班级__自动化X__________________ 学号__311100XXXX______________ 学生姓名_____________________指导教师2013年10月20日广东工业大学课程设计任务书题目名称学生信息管理系统设计____学生学院___自动化学院____________专业班级___自动化X_______________学号___3111000XXX____________学生姓名___谢XX_________________1.目的与要求:学生信息管理系统设计学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail 等。
试设计一学生信息管理系统,使之能提供以下功能:1.系统以菜单方式工作2.学生信息录入功能---输入3.学生信息浏览功能---输出4.查询、排序功能---算法按学号查询按姓名查询5.学生信息的删除与修改(可选项)2.总体设计:程序设计组成框图学生信息录入学生信息浏览3>参数说明editname(int n)、editage(int n)、editsex(int n) 、editbir(int n) 、editadd(int n) 、edittel(int n)、editemail(int n)、last(int n)、edit(int n)、del(int n)、editpr(int n) 函数中的n都为检索中确定的学生数组下标。
4.调试与测试:1>调用pr2()函数(检索界面)一闪而过。
解决方法:添加getchar()语句使程序暂停。
2>无法有效的控制输出函数循环终止。
解决方法:添加全局变量“stunum”,使用该全局变量来记录学生总数,从而控制输出循环的次数。
3>查询函数数据量过多时同时输出,先输出的内容无法查看,或需用户自行查看。
c语言课程设计报告+学生成绩信息管理系统+源代码
实验报告一、问题陈述及其需求分析(一)问题陈述学生信息管理系统是对学生信息的基本管理,其中包括以下及模块:(1)增加一个学生的信息(需输入要增加学生的所有信息);(2)统计本班学生总人数及男女生人数。
(3)分别按照学号查找学生的信息;若找到则输出该学生全部信息,否则输出查找不到的提示信息。
(4)按学号对所有学生信息排序,并输出结果;(5)删除一个学生的信息(需指定要删除学生的学号);同时显示删除后的结果。
(二)功能需求分析学生信息管理系统设计学生信息包括:学号,姓名,性别,出生年月,电话使之提供以下功能:1、系统以菜单方式工作2、建立链表并显示3、插入新的学生信息4、删除某学号的学生信息5、查找某学号的学生信息6、对学生信息排序7、统计学生人数8、输出学生信息二总体设计(一)模块依据程序的数据结构,描述该程序的层次结构,如下图:1、建立链表并显示voidcreatelist(structstucode**r);2、插入新的学生信息voidinsert(structstucode**r);3、删除某学号的学生信息voiddel(structstucode**r);4、查找某学号的学生信息voidsearch1(structstucode*r);5、对学生信息排序voidsort(structstucode**r);6、统计学生人数voidsearch2(structstucode*r);7、输出学生信息voidout(structstucode*r);(二)程序总体框架模块层次结构,只确定了模块之间的关系和函数原型,不是程序的执行步骤。
程序总体框架是该程序的总体流程图。
改程序不是顺序连续地执行全部功能,而是在某一时刻有选择地执行一种或多种功能。
因此选用菜单方式是较佳的方案,程序总体框架如下图:(三)运行环境(软,硬件环境)硬件:CPU,内存,主板,硬盘,显卡,键盘,显示器等等。
软件:WindowsXPtruboc应用软件。
C语言课设之学生学籍管理系统
C语言课设之学生学籍管理系统学生学籍管理系统是一个用于管理学生学籍信息的软件系统。
它主要用于管理学生的基本信息、课程信息、成绩信息以及其他相关信息。
学生学籍管理系统是对学生学籍信息进行综合管理和统计分析的重要工具。
它能够为学院、学校、教师、学生和家长提供便利,实现信息共享,促进教学管理工作的科学化和信息化。
一、需求分析学生学籍管理系统的需求分析主要包括以下几个方面:1.系统功能需求(1)学生基本信息管理:包括学生的基本资料、考籍信息、入学时间、家庭信息等。
(2)课程信息管理:包括课程名称、授课教师、上课时间和地点等。
(3)成绩管理:包括期中成绩、期末成绩和平时成绩等。
(4)教师管理:包括教师的基本资料、授课信息、联系方式等。
(5)系统管理:包括用户权限管理、数据备份、数据恢复等。
(1)系统应该稳定可靠,能够正常运行,并保证数据的准确性和完整性。
(2)系统应该具备良好的响应速度,确保用户的使用顺畅。
(3)系统应该具备较高的安全性,能够保护用户的隐私信息。
3.用户需求(1)方便快捷地查询学生的学籍信息,并能够修改、添加、删除学生信息。
(2)能够快速查询课程信息和成绩信息。
(3)提供数据报表和统计分析功能,以便教师、学生和家长进行综合分析和评估。
二、系统设计1.学生信息管理模块该模块用于管理学生的基本信息、课程信息、成绩信息以及其他相关信息。
包括学生的姓名、学号、性别、年龄、所选课程、考试成绩等信息。
该模块用于管理课程信息,包括课程名称、授课教师、上课时间和地点等信息。
该模块还可以通过查询功能,快速查询某一课程的授课教师及上课时间等信息。
3.成绩管理模块该模块用于管理学生的成绩信息。
包括期中成绩、期末成绩和平时成绩等信息。
通过该模块,教师可以快速查询学生的成绩信息,同时还可以将成绩信息导出成绩报表。
该模块用于管理系统的用户权限、数据备份和恢复等管理工作。
管理员可以通过该模块对用户进行管理,对数据进行备份和恢复工作,确保系统安全可靠。
C课程设计学生学籍管理系统
课程名称:C++面向对象程序设计课程设计题目:大学生学籍管理系统目录:一、系统设计目标、意义二、系统设计思路三、系统功能介绍四、输入输出的设计(1)界面的设计(2)数据输出设计(3)系统运行结果五、详细设计(1)系统功能结构图(2)U ML六、附录七、系统设计、开发过程中遇到的问题八、心得体会学生学籍管理系统一、系统设计目标、意义一系统实现的目标1、课程设计的任务:制作一个小型的学生学籍管理系统,要求制作一个菜单,实现数据的录入,数据的显示,数据查找,数据的删除,数据的保存,数据的统计,数据的修改,系统的退出;系统的设计要求用到C++面向对象的程序设计,要求用到类来实现,同时每一个功能用到一个函数;2、1基本功能:学生基本信息编号,姓名,性别,籍贯,民族,生日,政治面貌,省份证,数学成绩,英语成绩,计算机成绩成绩统计各科总成绩,各科平均成绩,各科的及格率2扩展功能:学生数据的添加、修改、与删除学生数据的读取与存储3、系统特点:系统要能够对相应的数据进行很好的测试,系统的统计对每一科的总成绩,平均成绩,及格律都进行了统计;系统数据的录入除可以手工录入外,还可以采用文件的录入;系统统计学生的基本信息较全面,包括学号,姓名,民族,政治面貌,身份证号,生日,性别,数学、英语、计算机的成绩;程序中查找运用了两种查找方式即学号查找和姓名查找;二系统设计的意义通过设计此项程序,能够对学生的学籍进行统一的管理,对学生的学籍进行录入、修改、保存等功能进行处理,从而能够较快地对信息进行处理,系统数据的录入除可以手工录入外,还可以采用文件的录入;系统统计学生的基本信息较全面,程序中查找运用了两种查找方式即学号查找和姓名查找,方便查询;二、系统设计思路第一步:分析题目,建立类并派生出它的子类,画出类图;第二步:画出流程,根据流程图编写程序清单第三步:上机调试程序使用单步调试,设置断点、分块调试的方法;第四步:及时整理资料,撰写课程设计报告中有关这个题目的内容;三、系统功能介绍一程序对学生学籍的数据处理要求①能够输入并浏览学生的基本信息;②能够实现对学生信息的查询和修改;③能够对成绩进行统计;④能够对学生的信息进行保存;二系统功能:资料维护:系统维护包括对各学生信息和成绩的录入操作;资料维护:对数据表中的信息进行浏览;系统查询:可以对不同科目的总成绩、不及率、各科平均成绩相关信息;四、输入输出的设计1.界面的设计①、界面设计程序运行后会出现一个简捷的窗口,便于用户查询数据;②、功能设计通过主窗体调用其他窗体,具体实现可以参照系统分析相关内容;应用系统主控界面包括学生信息录入,查找等功能模块;学生信息录入功能完成学生信息和成绩的输入;记录查询功能可以对数据各分类的记录进行查询;2.数据输出设计主要运行界面:统计界面:查找界面:显示界面:录入界面:保存界面:修改界面:删除界面:3、系统运行的结果:仅部分五、详细设计1、系统功能结构图:2、1类:student数据成员:编号,,省份证,数学成绩,英语成绩,计算机成绩2类:school成员函数:录入函数Input:输入编号到计算机的成绩;统计函数count:统计各科的总成绩,计算平均成绩,统计各科的及格率;查询函数found:按学号或姓名查找学生的记录;修改函数mend:修改指定学号学生成绩记录;删除函数del:删除指定学号学生记录;输出函数show:输出班级所有学生成绩记录;UML图:{int getnumber{ return number;}double getscoreint i { return scorei;}float getg{ return score0+score1+score2; }void input{ int e=1;cout<<"\t\t\t按提示输入:"<<endl;cout<<"\t\t输入编号: "; cin>>number;cout<<"\t\t输入姓名: "; cin>>name;do{cout<<"\t\t输入性别: ";cin>>sex;ifstrcmpsex,"男"==0 || strcmpsex,"女"==0{ cout<<"\t\t输入籍贯: ";cin>>place; cout<<"\t\t输入民族: ";cin>>nation;cout<<"\t\t输入生日: ";cin>>birth; cout<<"\t\t输入政治面貌: ";cin>>party; cout<<"\t\t输入身份证号: ";cin>>id; cout<<"\t\t输入数学分数: ";cin>>score0;cout<<"\t\t输入英语分数: ";cin>>score1;cout<<"\t\t输入计算机分数: ";cin>>score2;e=0;}else{cout<<"\t\t\t无此类型性别重新输入"<<endl;e=1; }}whilee;return ;}void inputifstream & is{is>>number>>name>>sex>>place>>nation>>birth>>party>>id>>score0>>score1>>score2;; }void output{cout<<"学生基本信息如下:"<<endl;cout<<"编号:"<<number<<" 姓名:"<<name<<" 性别:"<<sex <<" 籍贯:"<<place <<" 民族:"<<nation<<" 生日:"<<birth<<" 政治面貌:"<<party<<endl<<"身份证号:"<<id<<" 数学:"<<score0<<" 英语:"<<score1<<" 计算机:"<<score2<<" 总分:"<<getg<<endl<<endl;}void outputofstream & os{ os<<setw6<<number <<setw15<<name<<setw20<<place<<setw6<<nation<<setw20<<birth<<setw20<<party<<setw20<<id<<setw6<<score0<<setw6<<score1<<setw6<<score2<<endl;}};//操纵符指定宽度class school{public:school{ head=new student; head->next=NULL; key=0; }~school{ delete head; }void input; void mend; void del;int findstudent p,int num,char pn="^";void found; void show; void count;void save; void begin; void clear;char mainmenu;int getkey{ return key;}void setkeyint k{ key=k; }private:student head; int key;};//录入函数void school::input{student p,p2=NULL;p=head; int n;whilep->nextp=p->next;whilen{ p2=new student; p2->input;p->next=p2; p2->next=NULL; p=p->next; school::setkey1;cout<<"\t\t\t按1继续,按0返回 : "; cin>>n;} }//子查找函数int school::findstudent p1,int num,char pn{ student p; p=head;whilep->next{p1=p;if p->next->getnumber==num||strcmp p->next->getname,pnreturn 1; p=p->next;}return 0; }//查找函数void school::found{ student p;int num=-1,n=9; char name20="^";do{ cout<<"\t\t1:按编号查找,2:按姓名查找: ";cin>>n;}whilen<1||n>2;ifn==1{ cout<<"\t\t\t输入编号: ";cin>>num;}ifn==2{ cout<<"\t\t\t输入姓名: ";cin>>name; }iffind&p,num,name{ cout<<"\t\t找不到你要查找的内容"<<endl;return;}p->next->output;}//删除函数void school::del{ student p,p2; int num;cout<<"\t\t\t输入编号: "; cin>>num;if find&p,num,"^"{ cout<<"\t\t找不到你要删除的内容"<<endl;return;}p->next->output;p2=p->next; p->next=p2->next;delete p2;school::setkey1; }void school::show //显示函数{ student p; p=head;whilep->next{ p->next->output;p=p->next;}}//修改函数void school::mend{ student p; int num=-1,n;char name20="^";do{ cout<<"\t\t1:按编号修改,2:按姓名修改: "; cin>>n;}whilen<1||n>2;ifn==1{ cout<<"\t\t\t输入编号: ";cin>>num;}ifn==2{cout<<"\t\t\t输入姓名: ";cin>>name;}if find&p,num,name{ cout<<"\t\t找不到你要修改的内容"<<endl; return;}p->next->output; p->next->input; school::setkey1;}void school::save //保存函数{ student p; p=head;ofstream os"",ios::out;if school::getkey==1{whilep->next{ p->next->outputos;p=p->next; }}cout<<"\t\t\t文件已保存 "<<endl;school::setkey0;}void school::begin//初始化函数{ student p,p2;p=head; clear;long t;ifstream is"",ios::in;ifis{ ofstream os"",ios::out;;return ;}int num=-1;while1{ num=-1; t=;is>>num;t;ifnum<0{ ;return;}p2=new student; p2->inputis;p->next=p2; p2->next=NULL; p=p->next;}}void school::clear//清空函数{student p,p2;p=head->next;while p{p2=p; p=p->next;delete p2;}}void school::count//统计函数{student p; p=head;int n=0;double g3={0,0,0}; float j3={0,0,0};whilep->next{ p=p->next;n++;forint i=0;i<3;i++{ gi=gi+ p->getscorei ;p->getscorei >= ji++ : 0 ;}}cout<<"\t\t\b\b\b\b数学总分:"<<g0<<" 平均分:"<<g0/n <<" 及格率:"<<j0/n<<endl<<"\t\t\b\b\b\b英语总分:"<<g1<<" 平均分:"<<g1/n<<" 及格率:"<<j1/n<<endl<<"\t\t\b\b\b\b计算机总分: "<<g2<<" 平均分: "<<g2/n<<" 及格率:"<<j2/n<<endl;}//主选菜单函数char school::mainmenu{char n6;cout<<"\n\n ☆☆☆☆欢迎进入学籍管理系统☆☆☆☆"<<endl<<endl <<" "<<endl<<" "<<endl<<" 1: 录入学生信息 "<<endl<<" 2: 显示学生信息 "<<endl<<" 3: 查找学生信息 "<<endl<<" 4: 删除学生信息 "<<endl<<" 5: 修改学生信息 "<<endl<<" 6: 统计学生成绩 "<<endl<<" 7: 保存学生信息 "<<endl<<" 0: 退出系统 "<<endl<<" "<<endl<<" "<<endl<<" 请选择:";cin>>n;return n0;}//主函数void main{school pp;int k=1; char n; ;whilek==1{ n=;switchn{ case '1':; break;case '2':; break;case '3':; break;case '4':; break;case '5':; break;case '6':; break;case '7':; break;case '0':if==1{ cout<<"\t\t\t是否保存 1 : 保存 0:不保存 : ";cin>>k;ifk==1;};k=0;break; }}}七、系统设计、开发过程中遇到的问题及创新点本程序基本完成了题目要求的功能;但是由于显示的限制,所罗列的学生成绩只给出了数学,英语,计算机的成绩;程序可通过改进,增加科目数;程序在显示学生信息时输入过于繁杂,不够清晰明朗,若显示成类似表格的形式就好了;解决办法将输出函数的输出格式改一下,难点是计算输出点的控制;至于创新,就是在课题的选择上,我更加偏向于选择自己感兴趣的课题,更加注意程序的实用性八、心得体会通过这次课程设计,我学会了很多的知识,我通过自学相关的书籍,浏览网站,接触了大量的编程知识,在编程过程中逐渐提升自己的自学能力,克服困难的能力;我觉得首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试;程序实现上,设计了简单的查询界面,将各个功能集中出来按照程序编写原则,便于查询;根据C++课程所学的概念、理论和方法,按照C++程序设计的基本步骤,设计出一个适当规模的程序;进一步加深对C++语言的理解和掌握;理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力;我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力;。
c++课设实验报告——学生信息管理系统
目录一、需求分析 (02)二、概要设计 (02)三、详细设计 (03)四、调试分析 (14)五、用户手册 (14)六、测试数据 (14)七、附录 (15)一、需求分析1、用数组存储学生信息,包括姓名学号,各科目成绩。
2、在用户输入成绩时,需要分别输入平时成绩和期末成绩,在程序的aver函数中计算平时成绩和期末成绩所占百分比,算出最终成绩,并且在退出程序时保存。
3、查询学生成绩支持用学号查询或者用姓名查询。
4、修改成绩界面可以选择各科目,修改时要求分别输入平时成绩和期末成绩。
5、菜单选项可以查询并且显示各科优秀(大于90分)的学生和不及格(小于60分)的学生。
6、排名,把所有学生的最终成绩求和,按总分从大到小排序并且显示学生姓名学号总分。
7、各个科目平均分,每门科目的最终成绩相加除去学生人数。
8、退出并且保存用户输入,修改的数据,生成stu.dat,可以以记事本的方式打开查看学生成绩信息。
二、概要设计1、程序结构较为简单,因此声名两个类:学生成绩类class score,学生信息类class stu,前者处理学生成绩计算(求总分,排序,求平均分),后者完成学生信息输入查询和修改。
2、建立六个数组,分别存储姓名学号,四门科目,每门科目先通过平时成绩期末成绩,平时成绩百分比计算后放入各科目数组中。
3、查询学生信息时通过int t=0;for(;t<f;t++)if(strcmp(name,stusco[t].getname())==0){ u[j]=t;j++;}验证学生姓名,和int t=0;for(;t<f;t++){if(number==stusco[t].getnumber())验证学生学号,然后验证通过后显示学生信息和成绩。
4、输入学生成绩时通过if(stusco[lo].getnumber()==stusco[i].getnumber()){flag = 0;}验证是否已经储存相同学号的学生,如果有,则显示信息添加失败。
C#学生信息管理系统
C#学生信息管理系统C学生信息管理系统一、系统概述学生信息管理系统是一个用于管理学生相关信息的软件应用程序。
它涵盖了学生的基本信息、课程成绩、考勤记录、奖惩情况等多个方面。
通过这个系统,学校管理人员、教师和学生可以方便地查询、更新和分析学生的各类信息,从而更好地支持教学和管理决策。
二、系统功能1、学生信息录入与编辑能够方便地录入新生的信息,包括姓名、性别、出生日期、家庭住址等基本资料。
同时,对于已录入的信息,也支持随时修改和更新。
2、课程管理可以设置课程名称、课程编号、学分、授课教师等课程相关信息。
还能够将学生与课程进行关联,便于后续的成绩录入和统计。
3、成绩管理教师能够录入学生的课程成绩,系统可以自动计算平均分、总分等统计数据。
学生和家长可以查询成绩,了解学习情况。
4、考勤管理记录学生的出勤情况,如迟到、早退、旷课等,并生成相应的考勤报表。
5、奖惩管理记录学生在校期间的奖励和处罚情况,为综合素质评价提供依据。
6、报表生成能够根据用户的需求生成各种报表,如学生信息报表、成绩报表、考勤报表等,方便打印和存档。
7、用户权限管理为不同的用户设置不同的权限,如管理员拥有最高权限,可以进行系统的全面管理;教师可以录入和查询与教学相关的信息;学生只能查询自己的信息等。
三、系统设计1、数据库设计合理的数据库设计是系统稳定运行的基础。
根据系统的需求,设计了学生表、课程表、成绩表、考勤表、奖惩表等多个数据表,并通过主键和外键建立了表之间的关联。
2、界面设计系统界面采用简洁、直观的设计风格,方便用户操作。
对于重要的操作,如数据录入和修改,会进行数据有效性验证,确保数据的准确性。
3、代码架构采用分层架构,将系统分为表示层、业务逻辑层和数据访问层。
表示层负责与用户进行交互,业务逻辑层处理各种业务逻辑,数据访问层负责与数据库进行交互。
四、系统实现1、数据录入与编辑功能的实现通过 C的控件和数据库操作语句,实现了对学生信息、课程信息等的录入和编辑功能。
学生信息管理系统课程设计
学生信息管理系统课程设计一、课程目标知识目标:1. 让学生理解学生信息管理系统的基本概念,掌握系统设计的基本原理。
2. 使学生掌握数据库的基本操作,包括数据录入、查询、更新和删除。
3. 帮助学生了解数据表之间的关系,并能运用到实际的学生信息管理系统中。
技能目标:1. 培养学生运用所学知识设计简单学生信息管理系统的能力。
2. 培养学生运用编程语言实现学生信息管理系统功能的能力。
3. 提高学生分析问题、解决问题的能力,使其能够在实际操作中灵活运用所学知识。
情感态度价值观目标:1. 培养学生对信息技术的兴趣和热情,增强其学习动力。
2. 培养学生合作意识,使其在团队项目中能够积极参与,相互协作,共同完成任务。
3. 培养学生严谨、负责的学习态度,使其在设计和实现学生信息管理系统时,注重数据安全性和准确性。
课程性质:本课程为实践性较强的信息技术课程,以项目为导向,结合学生年级特点和教学要求,注重理论与实践相结合。
学生特点:学生具备一定的计算机操作能力,对编程有一定了解,但系统设计能力较弱。
教学要求:结合课程性质、学生特点,将课程目标分解为具体的学习成果,通过项目实践,使学生掌握学生信息管理系统的设计、开发和应用。
在教学过程中,注重激发学生兴趣,培养其团队合作能力和解决问题的能力,为后续课程学习打下坚实基础。
二、教学内容1. 学生信息管理系统概述:介绍学生信息管理系统的基本概念、功能及应用场景,使学生了解课程学习的实际意义。
教材章节:第一章 学生信息管理系统概述2. 数据库基础知识:讲解数据库的基本概念、数据表设计、数据类型及数据表之间的关系。
教材章节:第二章 数据库基础知识3. SQL语句:使学生掌握SQL语句的基本操作,包括数据录入、查询、更新和删除。
教材章节:第三章 SQL语句及其应用4. 系统设计:讲解系统设计的基本原理,引导学生运用所学知识设计学生信息管理系统。
教材章节:第四章 系统设计5. 编程语言实现:教授如何运用编程语言(如Python、Java等)实现学生信息管理系统的功能。
用C语言编写的一个学生信息管理系统
用C语言实现线性表的基本操作,能创建一个基于学生信息管理的链表,至少包含数据输入、数据输出、数据处理等操作。
在主函数里能实现以下功能。
运行后出现一个选择提示。
可选择的功能有1)创建新的学生信息链表2)增加一个新的学生信息3)按学号删除某个学生信息4)按学号查找某个学生信息5)可以按照学生成绩对链表排序6)退出系统#include "stdio.h"#include "stdlib.h"#include "string.h"#include "conio.h"jiemian();struct student{char name[50];char sex[5];int age;char num[50];float score1;float score2;float score3;float sum;float ave;}stu[50],del;void gn1(){int i=0;char num1;for(i=0;i<50;i++){printf("请输入要添加的学生资料:\n");printf("学号:");scanf("%s",stu[i].num);printf("姓名:");scanf("%s",stu[i].name);printf("性别:");scanf("%s",&stu[i].sex);printf("年龄:");scanf("%d",&stu[i].age);printf("请输入学生的三门成绩:\n");printf("语文:");scanf("%f",&stu[i].score1);printf("数学:");scanf("%f",&stu[i].score2);printf("英语:");scanf("%f",&stu[i].score3);printf("是否继续添加:y/n\n");scanf("%c",&num1);scanf("%c",&num1);if(num1=='N' || num1=='n'){system("cls");jiemian();}}}void gn2(){int i;char num[50];printf("请输入要查找的学生学号:\n");scanf("%s",num);for(i=0;i<50;i++)if(strcmp(stu[i].num,num)==0){stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;stu[i].ave=stu[i].sum/3;printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);break;}if(i==50)printf("查找不到!请重新输入!\n");getch();system("cls");jiemian();}void gn3(){char num1,i=0;printf("请输入要修改的学生学号:\n");scanf("%s",stu[i].num);printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);printf("姓名:");scanf("%s",stu[i].name);printf("性别:");scanf("%s",stu[i].sex);printf("年龄:");scanf("%d",&stu[i].age);printf("请输入学生的三门成绩:\n");printf("语文:");scanf("%f",&stu[i].score1);printf("数学:");scanf("%f",&stu[i].score2);printf("英语:");scanf("%f",&stu[i].score3);printf("是否继续修改:y/n?\n");scanf("%c",&num1);scanf("%c",&num1);if(num1=='N' || num1=='n')system("cls");jiemian();}void gn4(){int i;char num[50];printf("请输入要删除的学生学号:\n");scanf("%s",num);for(i=0;i<50;i++)if(strcmp(num,stu[i].num)==0){printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);stu[i]=del;printf("信息已删除,按任意键返回..\n");break;}if(i==50)printf("您输入的信息不存在!\n");getch();system("cls");jiemian();}void gn5(){int i=0;stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;stu[i].ave=stu[i].sum/3;printf("学号\t姓名\t性别\t年龄\t语文\t数学\t英语\t总成绩\t 平均成绩\n"); for(i=0;i<50;i++){if(stu[i].age==0)break;printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);}printf("按任意键返回...");getch();system("cls");jiemian();}void gn6(){FILE *fp;int i;char [50];printf("\n");printf("\n");printf("请输入要保存的文件名:");scanf("%s",);if((fp=fopen(,"wb"))==NULL)printf("文件名为空,不能保存!\n");for(i=0;i<50;i++){if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)printf("文件保存失败!\n");}fclose(fp);printf("文件已保存!\n");printf("按任意键返回...\n");getch();system("cls");jiemian();}void gn7(){FILE *fp;int i=0; //打开文件流char [50];printf("请输入文件名:");scanf("%s",); //输入要载入的文件名if((fp=fopen(,"rb"))==0) //如果当前目录下不存在相对应的文件,输出文件不存在,退出系统。
学生信息管理系统C语言报告
学生信息管理系统C语言报告简介学生信息管理系统是一种可以对学生信息进行管理的软件系统。
通过该系统,可以方便地添加、修改、查询和删除学生信息,提高学生信息管理的效率和准确性。
本报告将介绍学生信息管理系统的设计和实现过程,包括系统功能、技术选型和代码结构等方面。
通过该报告的阅读,读者可以了解到该系统的开发背景和主要功能,以及查看源代码和运行效果。
系统功能学生信息管理系统的主要功能如下:1. 添加学生信息:可以输入学生的姓名、年龄、性别、学号等基本信息,并保存到系统中。
2. 修改学生信息:可以根据学生的学号或姓名,修改学生的基本信息。
3. 查询学生信息:可以根据学生的学号、姓名、年龄、性别等条件,查询学生的基本信息。
4. 删除学生信息:可以根据学生的学号或姓名,将学生的基本信息从系统中删除。
技术选型为了实现学生信息管理系统的需求,我们选择使用C语言进行开发。
C语言是一种高效、可靠的编程语言,有着丰富的开发资源和庞大的用户群体。
在开发过程中,我们采用了以下技术选型:- 编程语言:C语言C语言作为一种结构化的编程语言,具有强大的计算能力和灵活的控制语句,非常适合开发类似学生信息管理系统这样的小规模应用。
代码结构学生信息管理系统的代码结构如下:cinclude <stdio.h>struct Student {char name[50];int age;char gender[10];int student_id;};void add_student(struct Student *students, int *count) {添加学生信息的代码逻辑}void modify_student(struct Student *students, int count) {修改学生信息的代码逻辑}void query_student(struct Student *students, int count) {查询学生信息的代码逻辑}void delete_student(struct Student *students, int *count) {删除学生信息的代码逻辑}int main() {struct Student students[100];int count = 0;主程序逻辑,包括用户界面等}在代码结构中,我们定义了一个`Student`结构体,用于存储学生的基本信息。
学生信息管理系统C语言编程
学生信息管理系统C语言编程【问题描述】学生信息的管理是每个学校必须具有的管理功能,主要是对学生的基本情况及学习成绩等方面的管理。
该系统模拟一个简单的学生管理系统,要求对文件中所存储的学生数据进行各种常规操作,如:排序、查找、计算、显示等功能。
通过此课题,熟练掌握文件、数组、结构体的各种操作,在程序设计中体现一定的算法思想,实现一个简单的学生信息管理系统。
【基本要求】(1)学生信息包括:学生基本信息文件(student.txt)(注:该文件不需要编程录入数据,可用文本编辑工具直接生成)的内容如下:(2)学生成绩基本信息文件(score.dat)及其内容如下:((注:该文件内容需要编程录入数据,具体做法见下面的要求)学号课程编号课程名称学分平时成绩实验成绩卷面成绩综合成绩实得学分(3)需要实现的功能1)数据录入和计算功能:对score.dat进行数据录入,只录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共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)成绩查询:①、输入一个学号时,查询出此生的所有课程情况,格式如下:学号:xx 姓名:xxxxx课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx ……………………共修:xx科,实得总学分为: xxx(3)删除功能:提供待删除学生的学号,则在student.txt和score.dat中删除所有与该学生有关的信息。
C语言上机实验报告--学生信息管理系统设计__内附源代码
C语言上机实验报告------学生信息管理系统设计姓名:学号:班级:指导老师:学院:学校:C语言上机实验报告------学生信息管理系统设计一、实验题目学生信息管理系统设计学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail 等。
试设计一学生信息管理系统,使之能提供以下功能:(1)系统以菜单方式工作(2)学生信息录入功能(学生信息用文件保存)---输入(3)学生信息浏览功能---输出(4)查询、排序功能---算法(5)按学号查询(6)按姓名查询(7)学生信息的删除与修改(可选项)二、本课程的地位、作用与目的为综合应用C语言程序设计理论知识、进一步提高学生综合解决问题、协调工作的能力和良好的软件开发习惯,特安排本实验内容。
希望通过该实习能够进一步激发学生的学习热情,培养学生初步编程的能力,为后续的学习和发展奠定基础。
三、分析过程1、能够实现对学生基本信息数据的增加和删除2、实现对录入保存后的学生基本信息进行格式化浏览3、提供学号和姓名两种方式对学生基本信息数据的查询4、能够对随机输入的学生基本信息数据按学号进行排序5、学生信息数据保存在文件中,方便数据的多次使用为了实现以上功能,必须设计的函数如下:录入函数、查询函数(分为姓名查询和学号查询)、删除函数、排序函数和几个菜单绘制函数等四、实验源代码:#include <stdio.h>#include<string.h>#include<conio.h>#include<stdlib.h>#include<time.h>#define num 12//定义学生结构体typedef struct student{int id;char name[num];int age;char sex[4];struct birth{int year;int month;int day;}date;char add[30];int phone;}stu;//功能选择菜单void menu(){printf("\n");printf("\n");printf(" 学生信息管理系统\n");printf("\n");printf("********************************************************************* **\n");printf(" ==============1.学生信息录入 2.学生信息浏览===============\n");printf("\n");printf(" ==============3.学号查询信息 4.姓名查询信息===============\n");printf("\n");printf(" ==============5.按学号排序 6.删除学生信息===============\n");printf("\n");printf(" ============== 0.退出系统===============\n");printf("\n");printf("\n");printf("********************************************************************* *\n");printf("\n");printf(" 按编号选择对应功能\n");printf("\n");printf(" +++++++++++++++++++ XXXXXXX制作+++++++++++++++++++++\n");printf("\n");}//修改菜单void printmenu(){printf("********************************************************* **\n");printf("-------1.完全修改 2.学号修改---------");printf("-------3.姓名修改 4.性别修改---------");printf("-------5.生日修改 6.地址修改---------");printf("-------7.电话修改 0.退出修改---------");printf("********************************************************* **\n");}//取当前时间int nowtime(){struct tm *local;time_t t;t=time(NULL);local=localtime(&t);return local->tm_year+1900;//求出当前时间的年份}//输出文件中学生信息void print(char *file){stu temp;FILE *fp=fopen(file,"r");if(fp==NULL){printf("打开文件%s失败!\n",file);return;}printf("文件%s中学生信息如下:\n",file);printf("%8s%8s%6s%6s%8s%4s%4s%16s%12s\n","学号","姓名","年龄","性别","出生年","月","日","地址","电话");fseek(fp,0,SEEK_SET);//从文件开始为之读取while(fread(&temp,sizeof(stu),1,fp))printf("%8d%8s%6d%6s%8d%4d%4d%16s%12d\n",temp.id,,temp.age,t emp.sex,temp.date.year,temp.date.month,temp.date.day,temp.add,temp.ph one);//格式化输出学生信息fclose(fp);//关闭文件}void luru(char *file){int count,sexnum,i=0,m;stu temp,temp1;FILE *fp=fopen(file,"a+");//追加方式打开文件if(fp==NULL){printf("打开文件%s失败!",file);return;}printf("请确定本次需要录入几名学生信息:");scanf("%d",&count);for (i=0;i<count ;i++ ){printf("录入要写入文件%s的第%d名学生信息\n",file,i+1); Repeat:printf("请输入学号:");m=scanf("%d",&temp.id);if (m==0){printf("输入的数据不是整型数据!\n");fflush(stdin);//清除缓存goto Repeat;}fseek(fp,0,SEEK_SET);//从文件开始位置读取while(fread(&temp1,sizeof(stu),1,fp)){if (temp1.id==temp.id)//判断学号是否已存在{printf("学号已存在!\n");goto Repeat;}//若学号已存在,返回继续读取学号}printf("请输入姓名:");scanf("%s",);printf("请输入性别:0为女生,1为男生:");{scanf("%d",&sexnum);if (sexnum==1) strcpy(temp.sex,"男");else strcpy(temp.sex,"女");}printf("请输入出生年月日:");scanf("%d%d%d",&temp.date.year,&temp.date.month,&temp.date.day);temp.age=nowtime()-temp.date.year;printf("请输入地址:");scanf("%s",&temp.add);printf("请输入联系电话11位:");scanf("%d",&temp.phone);if(!fwrite(&temp,sizeof(stu),1,fp)){printf("向文件%s写入信息失败!\n",file);return;}}printf("向文件%s写入信息成功!\n",file);fclose(fp);}int IsEmpty(FILE *fp){int len;fseek(fp,0,SEEK_END);//指针移动到文件尾len=ftell(fp);//取指针的文职获取长度return(len==0)?1:0;//0代表文件为空}void idsearch(char *file){int findid;stu temp;FILE *fp=fopen(file,"r");if (fp==NULL){printf("文件无法打开!");return;}if(IsEmpty(fp)){printf("文件为空,请先录入信息!");return;}printf("输入要查找学生的学号:");scanf("%d",&findid);fseek(fp,0,SEEK_SET);while(fread(&temp,sizeof(stu),1,fp)){if(temp.id==findid){printf("%8s%8s%6s%6s%8s%4s%4s%16s%11s\n","学号","姓名","年龄","性别","出生年","月","日","地址","电话");printf("%8d%8s%6d%6s%8d%4d%4d%16s%11d\n",temp.id,,temp.a ge,temp.sex,temp.date.year,temp.date.month,temp.date.day,temp.add,tem p.phone);//格式化输出学生信息return;}}printf("没有找到学号为%d的学生的信息!",findid);return;fclose(fp);}void namesearch(char *file){char name[num];stu temp;FILE *fp=fopen(file,"r");if (fp==NULL){printf("文件无法打开!");return;}if(IsEmpty(fp)){printf("文件为空,请先输入学生信息!");return;}printf("输入要查找的学生的姓名:");scanf("%s",name);fseek(fp,0,SEEK_SET);while(fread(&temp,sizeof(stu),1,fp)){if (!strcmp(,name)){printf("下面是姓名为%s的学生的信息:\n",name);printf("%8s%8s%6s%6s%8s%4s%4s%16s%11s\n","学号","姓名","年龄","性别","出生年","月","日","地址","电话");printf("%8d%8s%6d%6s%8d%4d%4d%16s%11d\n",temp.id,,temp.a ge,temp.sex,temp.date.year,temp.date.month,temp.date.day,temp.add,tem p.phone);//格式化输出学生信息return;}}printf("没有找到姓名为%s的学生的信息!",name);fclose(fp);}//排序函数void paixu(char *file){int i,j,k,len;stu s[num],temp;FILE *fp=fopen(file,"r");if(fp==NULL){printf("文件无法打开!");return;}if(IsEmpty(fp)){printf("文件为空,请先录入信息!");return;}fseek(fp,0,SEEK_END);//指针移动到文件末尾len=ftell(fp)/sizeof(stu);fseek(fp,0,SEEK_SET);for(i=0;i<len;i++)fread(s+i,sizeof(stu),1,fp);fclose(fp);for(i=0;i<len;i++){k=i;for(j=i+1;j<len;j++){if(s[j].id<s[k].id)k=j;}if(k!=i){temp=s[i];s[i]=s[k];s[k]=temp;}}printf("下面是按学号从小到大顺序排序后的学生的信息:\n");printf("%8s%8s%6s%6s%8s%4s%4s%16s%11s\n","学号","姓名","年龄","性别","出生年","月","日","地址","电话");for(i=0;i<len;i++)printf("%8d%8s%6d%6s%8d%4d%4d%16s%11d\n",s[i].id,s[i].name,s[i].a ge,s[i].sex,s[i].date.year,s[i].date.month,s[i].date.day,s[i].add,s[i ].phone);//格式化输出学生信息remove("学生信息表.txt");//删除以前存放数据的文件fp=fopen(file,"w");for(i=0;i<len;i++)fwrite(s+i,sizeof(stu),1,fp);fclose(fp);}//删除函数void shanchu(char *file){int i=0,len,del;stu s[num];FILE *fp=fopen(file,"r");if(fp==NULL){printf("文件无法打开!");return;}if(IsEmpty(fp)){printf("文件为空,请先录入学生信息!");return;}printf("输入需要删除的学生的学号:");scanf("%d",&del);fseek(fp,0,SEEK_SET);while(fread(s+i,sizeof(stu),1,fp)){if(s[i].id==del){printf("下面是按学号为%d的学生的信息:\n",del);printf("%8s%8s%6s%6s%8s%4s%4s%16s%11s\n","学号","姓名","年龄","性别","出生年","月","日","地址","电话");printf("%8d%8s%6d%6s%8d%4d%4d%16s%11d\n",s[i].id,s[i].name,s[i].a ge,s[i].sex,s[i].date.year,s[i].date.month,s[i].date.day,s[i].add,s[i ].phone);//格式化输出学生信息i=i-1;}i++;}fclose(fp);len=i;fp=fopen(file,"w");fseek(fp,0,SEEK_SET);for(i=0;i<len;i++) //删除后重写文件fwrite(s+i,sizeof(stu),1,fp);fclose(fp);}void main(){int key;char file[]={"学生信息表.txt"};do{menu();printf("选择对应功能操作:");scanf("%d",&key);switch(key){case 1:luru(file);break;case 2:print(file);break;case 3:idsearch(file);break;case 4:namesearch(file);break;case 5:paixu(file);break;case 6:shanchu(file);break;case 0:exit(0);default:printf("选择错误,请重新选择!");}printf("\n");printf("按任意键返回上级菜单!");getch();fflush(stdin);system("cls");}while (key!=0);}五.实验过程及结果:1.程序主菜单运行界面2.学生信息录入运行界面3.学生信息浏览运行界面4.学生学号查询运行界面5.学生姓名查询运行界面6.按学号排序运行界面第一次出现乱码,改正后运行如第二张图片所示7.删除学生信息运行界面六、感想在本次实验的过程中,出现了各种各样的问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C课程设计学生信息管理系统The latest revision on November 22, 2020课程设计说明书题目:学生信息管理系统学院:信息工程学院班级:软件09-12011 年 1 月 21 日X X 大学课程设计(论文)任务书课程名称:面向对象程序设计课程设计学院:信息工程学院班级:软件09-1 学生姓名: X X X ___ 学号: 0000指导教师: X X X目录前言学生信息管理系统,是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的管理信息系统。
它是一个教育单位不可缺少的部分,它的内容对于学校管理者来说是至关重要的,能有效的帮助学校和老师掌握学生的情况。
在传统模式下利用人工进行学生信息管理,存在着较多的缺点,如:效率底,保密性差,时间一长将产生大量的文件和数据,更不便于查找,更新,维护等。
诸如这些情况,令学校管理者对学生的信息管理带来了很大困难,严重影响了教育工作者的工作效率。
随着科学技术的不断提高,使用日趋成熟的计算机技术来代替传统的人工模式,来实现学生信息的现代化管理,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟的优点。
例如:检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、保密性好、寿命长、成本低等。
这些优点能够极大地提高学生信息管理的效率,也是学校实现科学化、正规化管理的重要条件。
因此,开发这样一套管理软件成为很有必要的事情。
第一章系统概述功能简介本软件是一个简单的学校学生信息管理系统,软件窗口为DOS页面。
学生信息管理系统的功能主要是实现学校学生的信息化管理。
通过学生信息管理系统,教学管理人员可以实现对学生信息的增加、删除、修改和查询等操作。
本系统最大的优点就是操作简便快捷等。
设计思路将学生信息定义为一个student类,在类中包含私有数据成员int num、string name、string sex、string politic、string address,分别表示学号、姓名、性别、政治面貌、家庭住址。
公有成员函数包括set( ) ,add( ) ,del( ) ,change( ) ,research( ) ,show( ) ,分别用来实现对学生信息的数据初始录入、增加数据、删除数据、修改数据、查询数据、显示所有数据功能。
然后定义了一个menu( ) 菜单函数,使功能菜单显示在运行窗口以提示用户如何进行操作。
主函数是一个程序必不可少的,在主函数中,使用一个switch语句来选择调用主菜单中的各个功能函数。
第二章系统功能的分析和设计在本章中,主要是介绍各个功能函数的设计思路和实现方法。
初始录入功能此函数实现的功能主要是,对学生信息的初始化录入功能,在初始时,文件中没有任何数据,可以通过次函数输入任意个学生的信息,在输入时通过一个if条件语句来实现控制循环,当输入的姓名是“0”时,使用break语句就跳出循环,即停止输入学生信息。
在此函数中使用文件处理的方式,先建立一个文件输出流对象,以写的方式打开文件,使输入的学生信息都写入文件。
添加函数此函数实现的功能主要是,添加一个学生的信息,也就是说调用一次这个函数只能添加一个学生的信息。
在此函数中也使用文件处理的方式,但使用的是以追加的方式打开文件,使输入的学生信息写在文件里原有信息的后面。
删除函数此函数实现的功能主要是,删除一个学生的信息。
在此函数中,先以读的方式打开文件,读出文件里的信息在显示在屏幕上,用户再根据提示信息输入想要删除第几个人的信息,关闭文件。
再以写的方式打开文件,以一个if条件语句控制,再重新将学生信息写入文件(除了打算删除的那个学生的信息),由于是以写的方式打开的文件,所以文件里原有的输入就都没有了,存入的新的数据。
修改函数此函数实现的功能主要是,修改一个学生的信息。
此函数的设计方法和删除函数的设计思想相类似,应用的思想都是将学生信息重新写入文件的方法,将原有数据覆盖。
查询函数在查询功能中,可以按多条件查询,本系统分为两个查询条件,即按学号查询和按姓名查询。
使用if语句来选择查询条件。
按学号查询根据提示信息输入学号后,然后使用一个for循环语句,从第一个学生开始检索,如果该学生的学号和输入的学号相等,则输出该学生的信息,由于学生的学号是唯一固定的,所以并使用break语句跳出循环。
当无查询结果时,会输出一条提示信息“无此人信息!”。
按姓名查询根据提示信息输入姓名后,然后使用一个for循环语句,从第一个学生开始检索,如果该学生的姓名和输入的姓名一样,则输出该学生的信息,由于学生的姓名有可能重复出现,所以不能使用break语句跳出循环,应该从第一个学生开始检索直到最后一名学生。
当无查询结果时,会输出一条提示信息“无此人信息!”。
显示函数此函数实现的功能主要是,显示所有学生的信息。
先是从文件中读取学生信息,然后在输出到显示窗口中。
用一个for循环语句,来把所有学生的信息都输出。
退出系统当输入“0”时,就能退出系统,这是通过while语句来控制实现的。
第三章调试及运行结果主菜单主菜单显示如下:图3-1 主菜单显示功能按6则显示全部信息,如图3-2:图3-2 显示功能增加功能进入主菜单后选择2,进入增加功能,按要求输入学生信息,增加数据前显示如图3-2:增加后显示如图3-3:图3-3 增加后删除功能进入主菜单后选择3,进入删除功能,按要求输入要删除的学生信息,删除数据前显示如图3-3:删除数据后显示如图3-4:图3-4 删除后修改功能进入主菜单后选择4,进入修改功能,按要求输入要修改的学生信息,修改数据前显示如图3-4:修改后如图3-5:图3-5 修改后查询功能进入主菜单后选择5,进入查询功能,如图3-6:图3-6选择查询条件按学号查询如图3-7:按姓名查询如图3-8:图3-7 按学好查询:图3-8按姓名查询第四章总结遇到的问题及解决方法首先,是对文件的处理不够熟练,通过看书和搜集一些资料解决了这个问题;其次,是在编写程序的过程中出现了一些语法错误,后通过调试逐一解决。
收获和体会此次c++面向对象课程设计,在指导教师的精心教导下,我们学会了如何用C++编写一个简单的应用程序。
首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。
程序实现上,设计了简单的菜单界面,将各个功能集中出现在主菜单中,便于调用。
根据C++课程所学的概念、理论和方法,按照C++程序设计的基本步骤,设计出一个适当规模的程序;进一步加深对C++语言的理解和掌握。
理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。
我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力。
参考文献[1] 《C++语言程序设计(第三版)》,郑莉,清华大学出版社,2004[2]《C++语言程序设计案例教程》,郑莉,清华大学出版社,2005[3]《C++程序设计教程》,钱能主编,清华大学出版社,[4]《C++程序设计》,谭浩强,清华大学出版社,2004[5]《C++程序设计实践指导》,谭浩强,清华大学出版社,2005[6]《C++程序设计课程设计》,刘振安,机械工业出版社,附录:程序代码#include<iostream>#include<fstream>#include<string>#include<iomanip>using namespace std;#define M 200 学号查找 b.按姓名查找"<<endl;ifstream infile("",ios::in);if(!infile){cerr<<" open error"<<endl;exit(1);}for(i=0;i<N;i++){infile>>num[i];a[i]=num[i];infile>>name[i];b[i][0]=name[i];infile>>sex[i];b[i][1]=sex[i];infile>>politic[i];b[i][2]=politic[i];infile>>address[i];b[i][3]=address[i];}cout<<"请输入a或者b!"<<endl;cin>>ch;if(ch=='a'){cout<<"请输入学号!"<<endl;cin>>n;for(i=0;i<N;i++)if(a[i]==n){w=1;cout<<" 学号姓名性别政治面貌家庭住址"<<endl;cout<<" ";cout<<setw(9)<<a[i];cout<<setw(9)<<b[i][0];cout<<setw(9)<<b[i][1];cout<<setw(9)<<b[i][2];cout<<setw(9)<<b[i][3]<<endl;}if(w==0)cout<<"无此人信息!"<<endl;}else if(ch=='b'){cout<<"请输入姓名!"<<endl;cin>>searchname;for(i=0;i<N;i++)if(name[i]==searchname){w=1;cout<<" 学号姓名性别政治面貌家庭住址"<<endl;cout<<" ";cout<<setw(9)<<a[i];cout<<setw(9)<<b[i][0];cout<<setw(9)<<b[i][1];cout<<setw(9)<<b[i][2];cout<<setw(9)<<b[i][3]<<endl;}if(w==0)cout<<"无此人信息!"<<endl;}else cout<<"没有此选项!"<<endl;}void student::display(){int k,num;string name,sex,politic,address;ifstream infile("",ios::in);if(!infile){cerr<<" open error"<<endl;exit(1);}cout<<" 学号姓名性别政治面貌家庭住址"<<endl;for(k=0;k<N;k++){cout<<" ";infile>>num;cout<<setw(9)<<num;infile>>name;cout<<setw(9)<<name;infile>>sex;cout<<setw(9)<<sex;infile>>politic;cout<<setw(9)<<politic;infile>>address;cout<<setw(9)<<address<<endl;}();}student stu;void main(){char ch;void menu();menu();cin>>ch;while(ch!='0'){system("cls");switch(ch){case '1':();break;case '2':();break;case '3':();break;case '4':();break;case '5':();break;case '6':();break;case '0':cout<<"退出系统!";break;default:cout<<"没有此选项!"<<endl;break;}menu();cin>>ch;}}void menu(){cout<<"******************"<<endl;cout<<"* 1.输入 *"<<endl;cout<<"* 2.添加 *"<<endl;cout<<"* 3.删除 *"<<endl;cout<<"* 4.修改 *"<<endl;cout<<"* 5.查询 *"<<endl;cout<<"* 6.显示全部 *"<<endl;cout<<"* 0.退出 *"<<endl;cout<<"******************"<<endl; }。