C++学籍管理系统课程设计报告(含代码)
C++课程设计报告(学生学籍管理系统)
C++课程设计实验报告课题名称:学生学籍管理系统班级:学院:资源与安全工程学院指导老师:姓名:第1章概述1.1 系统实现的目标课程设计的任务:制作一个小型的学生学籍管理系统,要求制作一个菜单,实现数据的录入,数据的显示,数据查找,数据的删除,数据的保存,数据的修改,系统的退出。
系统的设计要求用到C++面向对象的程序设计,要求用到类来实现,同时每一个功能用到一个函数。
基本功能:学生基本信息(学号,姓名,性别,班级,联系方式,出生日期)扩展功能:学生数据的添加、修改、与删除学生数据的读取与存储系统特点:系统数据的录入为手工录入;系统统计学生的基本信息较全面,包括学号,姓名,学号,姓名,性别,班级,联系方式,出生日期;程序中查找运用了两种查找方式即班级查找和姓名查找。
1.2 系统实现方案第一步:分析题目,建立类并派生出它的子类,画出类图。
第二步:画出流程,根据流程图编写程序清单第三步:上机调试程序(使用单步调试,设置断点、分块调试的方法)。
第五步:及时整理资料,撰写课程设计报告中有关这个题目的内容。
第2章系统分析2.1 调查程序对学生学籍的数据处理要求①能够输入并浏览学生的基本信息;②能够实现对学生信息的查询和修改;;③能够对学生的信息进行保存;现行的系统功能:资料维护:系统维护包括对各学生信息的录入操作。
资料维护:对数据表中的信息进行浏览。
系统查询:可以对不同班级的学生进行信息查询。
2.2现行系统分析3.1 系统功能设计系统功能结构图:3.2 类设计类:student数据成员学号,姓名,性别,班级,联系方式,出生日期类:school成员函数录入函数Input():输入学生信息;查询函数found():按学号或姓名查找学生的信息;修改函数mend():按学号或姓名修改学生的信息;删除函数del():删除指定学号学生记录;输出函数show():输出班级所有学生信息;UML图:3.3 输入输出的设计1.界面的设计 ①、界面设计程序运行后会出现一个简捷的窗口,便于用户查询数据。
c语言课设报告-学籍管理系统(含源代码)
课程设计课程设计名称:C语言程序设计题目:学籍管理系统学生姓名:学生学号:学院(系):软件学院专业班级:112021 指导教师:设计时间:2012 年9 月日 2012 年9月_ 14 日实验题目:学籍管理系统一、实验目的综合应用所学的C语言程序设计知识,自行设计并实现一个较为完整的小型管理信息系统。
通过系统分析、系统设计、编程实现,写实验报告等环节,初步掌握软件系统的设计方法和步骤,提高灵活运用程序语言进行软件开发的技能,提高程序设计水平和分析问题、解决问题的能力。
二、实验内容1):熟悉C语言的开发环境,按照给定的上机步骤练习完成;2):熟悉C程序的编辑,编译,链接和运行的过程。
3):编译一个应用系统程序,形成一个软件系统。
三.实验要求1.1、分析系统功能(1)用户进入主菜单后,就会在看到,菜单选项中添加有系统的各项功能,进入的应的选项就可进行相应的操作.其主要功能有:1、录入学生信息2、删除学生信息3、查询学生信息4、学生信息排序5、改学生信息6、保存退出系统(2)用户选择所需操作的选项,进入相应的操作界面,在这里用户就可开始进行操作。
四、使用说明学生学籍管理系统是针对学生信息的管理,主要功能是添加学生信息、删除学生信息、查询学生信息、学生信息排序、修改学生信息、保存信息。
1,用户打开程序,进入主界面,输入学生信息如图2,按回车进入主菜单,列出各项功能如图输入1,是查询整个班级的学生的信息,如图输入2,是查询个别学生的信息,如查询第一学生的信息,如图输入3,是删除个别学生的信息,如删除第一个学生,如图输入4,是插入某些学生的信息,如插入第三个,如图输入5,是修改某个同学的信息,如删除第一个,如图三、心得体会两周的课程过起来其实也是很快的。
这是我第一次做课程设计,起初还没做的时候觉得很快自己就将得编一个较大的程序,将会很有意思。
带着最初的好奇心,新鲜感就这样开始了第一天的编程,结果是大失所望。
c语言学生管理系统课程设计报告
C语言学生管理系统课程设计报告一、引言学生管理系统是一种用来管理学生信息的软件系统。
C语言学生管理系统课程设计旨在帮助学生掌握C语言的基本语法和编程能力,同时熟悉软件开发过程中的分析、设计和实现等环节。
本报告将详细介绍C语言学生管理系统的设计和实现过程。
二、需求分析为了明确系统的功能需求,在进行系统设计之前,我们需要进行需求分析。
对于一个学生管理系统,常见的功能包括学生信息录入、查找学生信息、修改学生信息和删除学生信息等。
2.1 学生信息录入学生信息录入是系统的基本功能之一。
管理员可以通过系统按照一定的格式输入学生的基本信息,包括学号、姓名、性别、年龄、班级等。
2.2 查找学生信息系统应提供根据学号或姓名快速查找学生信息的功能。
用户可以输入学号或姓名进行查询,并显示该学生的详细信息。
2.3 修改学生信息管理员可以通过系统修改学生的基本信息。
用户可以选择指定要修改的学生的学号,并对学生的姓名、班级、年龄等信息进行修改。
2.4 删除学生信息管理员可以通过系统删除指定学生的信息。
用户可以输入学号或姓名进行查询,并选择删除该学生的信息。
三、系统设计在需求分析的基础上,进行系统设计是为了明确系统的整体架构和各个模块之间的关系。
本章将对C语言学生管理系统的设计进行详细介绍。
3.1 系统架构C语言学生管理系统采用单层架构,将所有功能模块整合在一个程序中。
系统采用面向过程的设计思路,通过函数的调用和参数传递实现不同模块之间的交互。
3.2 数据结构设计系统的核心数据结构是学生信息结构体。
学生信息结构体包括学号、姓名、性别、年龄、班级等字段。
为了方便管理学生的信息,可以使用链表来存储学生信息。
链表的每个节点代表一个学生,通过指针连接起来形成一个链表。
3.3 模块设计系统的功能可以划分为若干个模块,包括学生信息录入模块、查找学生信息模块、修改学生信息模块和删除学生信息模块。
3.3.1 学生信息录入模块学生信息录入模块通过从键盘读取用户输入的信息,并将输入的信息保存到链表中。
C#学生管理系统课程设计报告及代码
课程设计(大作业)报告课程名称:软件代码开发技术(c#)设计题目:设计一个学生管理系统院系:信息技术学院班级:08级本科4班设计者:王辉学号:***********指导教师:***设计时间:2011.6.1~2011.6.10昆明学院昆明学院课程设计(大作业)任务书课程设计(大作业)报告一、题目分析1.背景分析●编写目的本需求的编写目的在于研究学籍管理系统软件的开发途径和应用方法。
以及明确所要开发的软件应具有的功能、性能与界面,是系统分析人员及软件开发人员能清楚的了解用户的需求,并再次基础上进一步提出概要设计说明书和完成后续设计与开发工作。
●项目背景近年来随着高校的扩招,需要处理的学生信息日趋加大,不仅花费大量的教师资源,处理的效果还十分低下。
为了提高学生管理的管理水平,优化资源,尽可能的降低管理成本,成为学生管理的新课题。
学生管理系统是从学生管理的现状出发,根据学生管理的新要求进行开发设计的,它解决了学生管理数据信息量大,修改不方便,对一系列数据进行统计与分析花费时间长等问题,帮助学生管理人员有效管理学生信息,成为高校管理中必不可少的管理工具。
2.系统功能分析●管理员对功能的需求管理员权限最大,可以对学生、班级、课程情况进行统一的管理,细分如下:添加、修改、删除管理员;有关学生信息的浏览,包括学生姓名、性别、民族、出生日期、入学时间、所在班级、籍贯和备注信息;学生信息的添加、修改和删除;学校基本课程的浏览,包括课程名、课程类型、学时、学分和课程具体描述;学校基本课程的添加、修改和删除;学生成绩信息的浏览与统计,可按成绩具体范围对成绩进行统计;学生成绩信息的添加、修改和删除;学生选课信息的管理,包括修改与删除;学生选课人数的统计。
●学生对功能的需求学生只是利用此系统进行与自己有关的信息查询、输入等,细分如下:浏览个人基本信息,具体内容包括姓名、学号、民族、出生日期、籍贯、所在班级、备注等;学生登陆系统后,修改个人密码;浏览课程信息,具体内容包括课程名、课程类型、学时、学分和课程具体描述;学生利用此系统选修课程、在选课过程中,可查询待选课程基本信息;浏览个人选课情况。
学籍管理系统c语言课程设计报告
学籍管理系统c语言课程设计报告一、引言学籍管理系统是一种管理学生信息的工具,它可以帮助学校更好地管理学生的个人信息、课程信息、成绩信息等。
本报告旨在介绍一个基于C语言的学籍管理系统的设计与实现。
二、需求分析1. 功能需求(1)学生信息管理:包括添加、修改和删除学生个人信息。
(2)课程信息管理:包括添加、修改和删除课程信息。
(3)成绩录入:可以输入每个学生在每门课程中的成绩。
(4)成绩查询:可以查询每个学生在每门课程中的成绩。
(5)统计分析:可以统计每门课程的平均分和及格率。
2. 非功能需求(1)界面友好:界面简洁明了,易于操作。
(2)数据安全性高:能够保证数据安全性,避免数据丢失或泄露等问题。
三、系统设计1. 总体设计思路本系统采用模块化设计思路,将整个系统划分为多个模块,以便于开发和维护。
主要模块包括:(1)学生信息模块;(2)课程信息模块;(3)成绩录入模块;(4)成绩查询模块;(5)统计分析模块。
2. 数据结构设计本系统采用链表存储学生和课程信息,每个节点包含学生或课程的基本信息,以及指向下一个节点的指针。
成绩信息则采用二维数组存储。
3. 界面设计本系统采用控制台界面,通过菜单进行操作。
每个菜单选项对应一个功能模块。
四、系统实现1. 学生信息模块(1)添加学生信息:输入学生姓名、性别、年龄等基本信息,并将该学生添加到链表中。
(2)修改学生信息:根据学生ID修改相应的学生信息。
(3)删除学生信息:根据学生ID删除相应的学生信息。
(4)显示所有学生信息:遍历链表输出所有学生的基本信息。
2. 课程信息模块(1)添加课程信息:输入课程名称、授课教师、上课时间等基本信息,并将该课程添加到链表中。
(2)修改课程信息:根据课程ID修改相应的课程信息。
(3)删除课程信息:根据课程ID删除相应的课程信息。
(4)显示所有课程信息:遍历链表输出所有课程的基本信息。
3. 成绩录入模块输入学生ID和课程ID,然后输入该学生在该课程中的成绩,将成绩保存到二维数组中。
c语言学生管理系统课程设计报告(一)
c语言学生管理系统课程设计报告(一)C语言学生管理系统课程设计报告1. 项目介绍•课程名称:C语言学生管理系统课程设计•项目类型:学生管理系统•设计时间:2021年1月•设计人员:XXX2. 项目背景•学生管理系统是一种常见的信息管理系统,用于管理学校、学院或班级的学生信息。
•C语言是一种常用的编程语言,具有良好的跨平台性和高效性。
3. 功能需求设计一个C语言学生管理系统,能够实现以下功能:•学生信息录入:输入学生的基本信息,包括学号、姓名、性别、年龄等。
•学生信息查询:根据学号或姓名查询学生的基本信息。
•学生成绩录入:输入学生的各科成绩,包括语文、数学、英语等。
•学生成绩统计:计算学生的总成绩、平均成绩,并根据成绩进行排名。
•学生信息修改:对已有的学生信息进行修改,包括基本信息和成绩信息。
•学生信息删除:根据学号或姓名删除学生的信息。
4. 技术实现在C语言学生管理系统的设计中,使用到以下技术:•结构体:用于定义学生的基本信息,如学号、姓名、性别、年龄等。
•数组:用于存储多个学生的信息。
•文件读写:将学生信息保存到文件中,实现信息的长久保存和读取。
5. 项目结构•主函数:包括用户菜单的选择和对应功能的调用。
•学生信息模块:实现学生信息的录入、查询、修改和删除等功能。
•成绩管理模块:实现学生成绩的录入、统计等功能。
6. 开发流程•需求分析:明确项目需求,确定功能设计。
•系统设计:设计程序的整体结构,划分模块和函数。
•编码实现:使用C语言编写各个模块的代码,并进行调试测试。
•系统测试:对系统进行整体测试,修复错误和漏洞。
•系统部署:将系统部署到目标环境中,进行性能优化和问题排查。
•用户培训:对系统进行使用说明和培训,保证用户能够熟练使用学生管理系统。
7. 总结与展望通过C语言学生管理系统的设计,我学到了很多关于C语言的基础知识和编程技巧。
在项目开发过程中,我充分利用了C语言的特点,编写出高效、稳定的代码。
(完整word版)C学籍管理系统实验报告
山东理工大学计算机学院课程设计(数据库设计实践)班级姓名学号指导教师二○一年月日课程设计任务书及成绩评定课题名称学生学籍管理系统Ⅰ、题目的目的和要求通过数据库设计实践的操作与实践,使学生了解关系数据库的相关理论知识和有关工具软件的使用技巧,在一定程度上提高应用程序的综合开发能力和创新意识、创新能力,具体掌握的基本能力有以下几方面:1、学习和巩固《数据库系统原理》的基本知识。
2、关系数据库管理系统的基本使用方法。
3、熟悉SQL语言的主要功能及SQL语句的使用操作。
4、熟悉数据库管理系统的设计过程,培养解决实际问题的能力。
5、小型数据库应用系统的设计方法。
要求独立完成该课题设计.Ⅱ、设计进度及完成情况Ⅲ、主要参考文献及资料[1]王珊,萨师煊主编。
数据库系统概论(第四版).北京:高等教育出版社,2006。
5[2]蒋文沛主编。
SQL Server 2005实用教程 .人民邮电出版社,2009.6 [3]罗福强,杨剑,张敏辉主编。
C#程序设计经典教程 .清华大学出版社,2011。
10学科部主任___________Ⅳ、成绩评定设计成绩:指导老师:二○一三年十二月六日(完整word版)C学籍管理系统实验报告目录第一章系统概述 (1)第二章系统分析 (2)第三章功能分析 (4)第四章系统实现 (6)第五章调试过程中的问题及系统测试情况 (14)第六章结束语 (17)第一章概述1。
前言学校大多要管理成千上万学生的信息,但仍有很多学校然传统的管理模式……使用计算机对学生信息进行管理,具有手工管理所无法比拟的优点.例如:出错可能性小、处理效率高、易于管理等等.本系统为学生学籍管理系统,是一个的信息管理系统,其开发主要包括数据库的建立和维护以及前端应用程序的开发两个方面.……经过分析,使用了VS2010开发工具,利用其提供的各种面向对象的开发工具,在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成一个满意的可行系统.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语言学籍管理系统实验报告
c语言学籍管理系统实验报告实验报告课程程序设计基础实验名称课内实验共5页系别计算机系专业班级姓名学号实验题目:使用 C 编程实现一个学籍管理系统1. 程序设计与分析程序实现的功能1.提供基本的菜单选项,能根据不同的选项执行不同操作;2. 对学生信息进行录入信息、删除学生信息、查询信息、学生信息排序、学生信息统计输出的操作;数据类型学生信息:结构体数组学生学号、班级、姓名:字符串数组学生的三个成绩及总分:浮点型变量用户选项、计数器:整形变量各个功能模块:被调函数核心算法2. 程序设计中存在的问题和解决思路存在问题:1.从调用函数返回主函数后无法再次调用主函数。
2.全程使用数组而没用指针。
3.不会编写退出程序的指令。
4.一些基础性的语法错误。
解决思路:1.在被调函数中使用return;语句,在主函数中利用while(1)循环,使每次返回主函数均可再次调用主函数。
2.再设置一个指向结构体的指针,利用该指针的自增输出结构体。
3.在用户选择为退出程序时,在跳出switch函数后再利用一个break;语句跳出while循环,读取return 0;语句,退出程序。
4.利用编译器中的build功能进行语法筛查。
3. 实验总结收获:1.懂得了编写程序前计划好核心算法的重要性。
2.对于调用函数有了更清楚的认识,可以更加熟练地运用return 语句。
3.更加了解结构体,熟悉了结构体指针、结构体数组。
4.熟练掌握输入输出语句。
5.学会分块编译程序,调试程序更加熟练。
不足:1.对于指针的理解不足,没有用指针做成链表进行函数间的调用。
2.尚存在一些基础性的语法错误,这要通过复习课本、上机实验来消灭这些错误。
3.对于调用函数掌握不足,可以尝试着做一些带返回值的函数。
4. 源代码清单#include#includestruct Student{char id[10];char cla[10];char name[10];float score1;floatscore2;float score3;float sum;}stu[3],mark,temp,*p;/*学生信息结构体数组,mark用来标记待删除的学生信息,temp用来交换,*p指向结构体数组*/ intchoice,i, j;char str1[10],str2[10]={"no"};//用以判断是否继续void homepage()//输出主页面并获取用户的选项{printf("1.input\n2.delete\n3.select\n4.order\n5.output\n6.q uit\nplease input your option\n");scanf("%d",&choice);}void input()//输入学生信息{for(i=0;;i++,p++){printf("id ");scanf("%s",&stu[i].id);printf("class ");scanf("%s",&stu[i].cla);printf("name ");scanf("%s",&stu[i].name);printf("score1 ");scanf("%f",&stu[i].score1);printf("score2 ");scanf("%f",&stu[i].score2);printf("score3 ");scanf("%f",&stu[i].score3);stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;printf("continue?\n");scanf("%s",str1);if(strcmp(str1,str2)==0)break;}return;}void del()//用指针将数据输出,将用户想找到的学生信息进行标记{char find[10];scanf("%s",find);for(i=0,p=stu;i<3,p<stu+3;i++,p++)< p="">{if((strcmp(stu[i].name,find)!= 0)&&(strcmp(stu[i].id,find) != 0)){printf("%s,%s,",p->id,p->cla);printf("%s,",p->name);printf("%4.1f,%4.1f,%4.1f,",p->score1,p->score2,p->score3);printf("%5.1f\n",p->sum);}if((strcmp(stu[i].name,find)== 0)||(strcmp(stu[i].id,find) == 0)) mark=stu[i];}printf("continue?\n");scanf("%s",str1);if(strcmp(str1,str2)==0) return;else del();}void select()/*用find字符串数组查找用户希望查找的信息,利用num作为计数器来判断是否查找到*/{char find[10];scanf("%s",find);intnum=0;for(i=0,p=stu;i<3,p<stu+3;i++,p++)< p="">{if((strcmp(stu[i].id,find)==0)||(strcmp(stu[i].cla,find)== 0)){printf("%s,%s,",p->id,p->cla);printf("%s,",p->name);printf("%4.1f,%4.1f,%4.1f,",p->score1,p->score2,p->score3);printf("%5.1f\n",p->sum);num=num+1;}}if(num==0){printf("there is no eligible student");return;}if(num!=0){printf("continue?\n");scanf("%s",str1);if(strcmp(str1,str2)==0) return;else select();}}void order()//先以班级字符串大小为标准排序,再以总分大小排序,直接交换结构体{for(i=0;i<2;i++){for(j=0;j<(2-i);j++){if(strcmp(stu[j].cla,stu[j+1].cla)>0){temp=stu[j];stu[j]=stu[j+1];stu[j+1]=temp;}}}for(i=0;i<2;i++){for(j=0;j<(2-i);j++){if(stu[j].sum>stu[j+1].sum){temp=stu[j];stu[j]=stu[j+1];stu[j+1]=temp;}}}for(i=0,p=stu;i<3,p<stu+3;i++,p++)< p="">{if((strcmp(stu[i].name,)!=0)){printf("%s,%s,",p->id,p->cla);printf("%s,",p->name);printf("%4.1f,%4.1f,%4.1f,",p->score1,p->score2,p->score3);printf("%5.1f\n",p->sum);}}return;}void output()//根据上面的结果输出学生信息{for(i=0,p=stu;i<3,p<stu+3;i++,p++)< p="">{if((strcmp(stu[i].name,)!=0)){printf("%s,%s,",p->id,p->cla);printf("%s,",p->name);printf("%4.1f,%4.1f,%4.1f,",p->score1,p->score2,p->score3);printf("%5.1f\n",p->sum);}}return;}int main(){while(1)/*每次调用函数返回时若为真,则进入循环体、进入主界面,若用户选择为6退出,则跳出循环*/{homepage();switch(choice){case 1:input();break;case 2:del();break;case 3:select();break;case 4:order();break;case 5:output();break;case 6:break;}if(choice==6)break;}return 0;}</stu+3;i++,p++)<> </stu+3;i++,p++)<> </stu+3;i++,p++)<> </stu+3;i++,p++)<>。
C语言课设之学生学籍管理系统
题目:学生学籍管理系统目录:一.个人简介。
二.报告摘要。
三.报告目录。
四.报告正文。
1、系统需求分析2、系统总体设计3、系统详细设计六.总结。
二.报告摘要这个C语言课程设计是关于学生学籍管理系统的设计,题目要求能够录入数据,查询,删除和排序的功能。
报告依次以主函数板块、数据录入板块、查询板块、删除板块、排序板块的顺序进行。
三.报告目录1 主函数2 数据录入3 查询4 删除5 排序四.报告正文1 系统需求分析根据题目需求,在程序中要求浏览学生的信息,应该提供数据录入、查询、删除、排序的操作。
题目要求实得成绩、实得学分根据条件自动运算,应该提供求综合成绩和实得学分的算法,另外还应该提供键盘式选择菜单实现功能选择。
2 系统总体设计3 系统详细设计(1)主函数负责提供输入、处理和输出部分的函数调用,其中各功能模块用菜单方式选择。
程序:void menu(){int n,w;do{puts("\t\t****************MENU******************\n\n");puts("\t\t\t\t1.enter new data-student");puts("\t\t\t\t2.search by name");puts("\t\t\t\t3.search by learn number");puts("\t\t\t\t4.delete data");puts("\t\t\t\t5.insert data");puts("\t\t\t\t6.enter new data-sorce");puts("\t\t\t\t6.exit");puts("\n\n\t\t************************************\n");printf("choice your number(1-9):[]\\b\b");scanf("%d",&n);if(n<1||n>9){w1=1;getchar();}else w1=0;}while(w1==1);switch(n){case 1:enter();breakcase 2:search by name();break;case 3:search by learn number();break;case 4:del();break;case 5:insert():break;case 6:exit(0);break;}}main(){menu();}(2)数据录入板块数据信息中学号、姓名等是字符型,采用字符型数组,分数、号码、等为整数,可以采用整型数组,实得学分可能为小数,采用实型。
C学籍管理系统课程设计报告含代码
C学籍管理系统课程设计报告含代码Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#摘要:学籍管理信息系统是高校管理的重要组成部分,为老师、同学提供存档、查询等手段。
根据教学安排,我们有两周的时间进行学籍管理信息系统课程设计,我们小组团结一心,分工明确,积极讨论,终于在组员的努力下及老师的指导帮助下,我们顺利完成了本次课程设计,系统包括学生资料设置,成绩设置,成绩、排名查询,修改资料关键字:系统查询课程设计论文管理目录第一章绪论-------------------------------------------------(1)课程设计背景 (1)课程设计目的 (1)课程设计思路 (1)第二章系统总体规划-----------------------------------------(2)前期准备 (2)系统功能 (2)第三章系统分析设计-----------------------------------------(3)建立MFC主界面及代码设计 (3)学生资料设置及代码设计 (10)学生成绩设置及代码设计 (19)查询功能及代码设计 (28)修改密码功能及代码设计 (30)删除功能及代码设计 (34)修改功能及代码设计 (36)第四章界面设计与实现----------------------------------------(37)学生信息管理系统 (37)学生资料设置 (37)成绩设置 (38)学生资料显示 (38)成绩显示 (39)修改密码 (39)总结---------------------------------------------------------(40)工作安排-----------------------------------------------------(43)参考文献-----------------------------------------------------(44)第一章绪论1.1课程设计背景经过一个学期对《C++程序设计》的学习,学习到了基本的理论知识,了解到了C++语言程序设计的思想,现在把这些知识运用到实际中来。
C语言课程设计报告-学生学籍管理系统
信息学院课程设计Ⅰ报告课程名称___C语言程序设计_ __题目名称学生学籍管理系统学生学院_ 信息学院_ __ __专业班级_ 计科12 学号学生姓名指导教师_______ ___ __2013 年12月26 日目录一、设计目的与要求 ...................... 错误!未定义书签。
题目与设计要求 .......................... 错误!未定义书签。
本程序设计的知识点 ...................... 错误!未定义书签。
二、功能设计 ........................... 错误!未定义书签。
总体设计................................ 错误!未定义书签。
详细设计................................ 错误!未定义书签。
测试结果及分析 .......................... 错误!未定义书签。
五、总结................................ 错误!未定义书签。
六、参考文献 ............................. 错误!未定义书签。
一、设计目的与要求题目与设计要求题目:学生学籍管理系统目的:1、了解和熟悉Visual C++软件编程开发环境2、熟练掌握结构化程序设计的步骤和模块化设计方法3、熟练掌握C语言数据类型,熟记字符型数据和整形数据的定义和使用4、熟练掌握用while语句、do…while语句和for语句实现循环结构程序设计的方法5、掌握一维数组、二维数组的定义、赋值和输入输出的方法6、掌握与数组有关的算法(特别是排序算法,熟练掌握冒泡排序法)7、熟悉函数的定义、声明方法及全局变量和局部变量的概念与用法,掌握函数的调用方法8、掌握结构体类型变量的定义和使用及结构体类型数组的概念和应用设计要求:学生学籍信息管理系统设计1、需求分析学生基本信息、学生成绩基本信息要存入文件当中,因而要提供文件的输入输出操作;查询功能要求提供查找和显示操作;删除功能要求实现删除操作;排序功能要求实现排序操作;另外还应该提供键盘式选择菜单以实现功能选择。
C程实验报告(学籍管理系统)
实验题目:使用 C 编程实现一个学籍管理系统1. 程序设计与分析1.1程序实现的功能主要用于学籍管理,实现对于多个学生信息(姓名、班级、学号、成绩)的输入、删除、查找、排序和输出,达到基本的学籍管理的功能。
同时,在学生数量过多或者在一定范围内的不正常的操作时,给出警告。
1.2采用的数据类型采用结构体“Result”来存储每个学生的信息,其中Id为字符型数组,班级(cla)为整型,姓名(nam)为字符型数组,三门功课的分数(s)为浮点型数组,总分(sum)为浮点型。
鉴于学生数和课程数在整个程序中是恒定的,为程序的可扩充性,将学生数和课程数设为符号常量.1.3核心算法存储:采用结构体,储存信息。
输入:设一个暂时的结构数组元素,再将其导入正式的结构数组中,使得程序方便修改,并且方便输出.删除:首先用string.h中的strcmp完成查找。
调用deleteRecord()函数,以完成对于信息的删除,即将后面是的信息覆盖代替选中的学生的信息,期间调用cpyRecord()函数完成覆盖。
查找:启用flag做标记,已达到若输入的信息难以匹配,警告。
用string.h中的strcmp 和strcpy完成查找,用printRecord()函数输出.排序:将比较与交换分开,用dicSort()函数完成比较,再调用exchange()函数完成交换,期间用选择法进行排序。
输出:再次调用printRecord()函数,输出所要值。
自定义函数的各项功能:void input(int x):根据输入的选择数字进行不同的调用void informationInput():将信息导入暂存结构体数组void put2result(struct Result tmp):将暂存数组导入正式数组void deleteInformation():进入删除的过程,完成比较void deleteRecord(int iRecord):完成需要改变位置的数组的循环void cpyRecord(int dst, int src):完成相应两个数组的覆盖void selectInformation():完成转换和比较void orderInformation():完成相应数组的循环int dicSort(int dst, int src):比较int exchange(int x, int y):交换void printRecord(int i):暂时输出void printInformation():最终输出2. 程序设计中存在的问题和解决思路2.1 出现的主要问题a。
学籍管理系统_C语言程序课设报告
北****学课程设计报告课程名称:C语言程序设计课设项目名称:学籍管理系统学院:专业:姓名:学号:指导教师:成绩:2010年6月4日目录第1部分课程设计题目与要求 (1)1.问题描述 (1)2.功能要求 (1)3.任务分工 (3)第2部分《学籍管理系统》的设计与功能实现 (4)1.总体设计 (4)2.数据结构 (5)3.算法设计 (5)4.程序代码设计 (11)5.测试与调试 (19)第3部分课程设计总结 (28)1.个人总结 (28)2.结束语 (29)附录Ⅰ程序清单 (30)附录Ⅱ用户使用说明书 (57)参考文献 (60)第1部分课程设计题目与要求1.问题描述为了分析教学效果并进行相应的学籍处理,各学校每到学期末都对综合成绩进行分类统计、上报成绩汇总结果等,这给每位老师和学籍管理人员带来很大的工作量。
使用学籍管理系统可以减少工作者的工作负担。
为了方便管理人员查找学生信息,在创新功能中,增加查询成绩功能,增加按学科成绩排名的功能,由于学籍管理系统涉及学生成绩及信息的安全,所以有必要给系统增加密码保护的功能,以保护系统信息的安全。
2.功能要求循环显示如图-1所示的主菜单。
其中,原始数据的排列是无序的。
系统应能够保留原始成绩单。
图-1在主菜单选择1:可以进行成绩的录入。
在主菜单选择2:进入如图-2的子菜单,并统计成绩。
在此可以计算平均、统计各分数段、按学号排序、按平均分排序。
在子菜单选择1时,将该班学生的成绩按学号升序排序后的顺序存入std.dat文件中,以方便打印。
在子菜单选择2时,求出每位学生的平均分,并按平均分从高到低的顺序进行排序后,写入文件sort.dat中。
在子菜单选择3时,统计出各门课、各分数段学生的人数,并如下表的形式输出。
在子菜单选择4,返回主菜单;选择0,退出整个系统。
图-2在主菜单选择3:进入如图-3所示的子菜单,处理学籍。
在子菜单中选择1,为不及格的学生打印重考通知单时,应在通知单上写明重考的课程、时间和地点(由键盘输入)。
C#学生管理系统课程设计报告及代码
课程设计(大作业)报告课程名称:软件代码开发技术(c#)设计题目:设计一个学生管理系统院系:信息技术学院班级:08级本科4班设计者:王辉学号:438指导教师:王亚宁设计时间:昆明学院昆明学院课程设计(大作业)任务书任务起止日期:课程设计题目:设计一个学生管理系统5)规定时间内安要求完成代码及作业。
课程设计题目:设计一个学生管理系统学号信息。
经过进一步查找资料,我明白了在信息窗体Form8中调用Form1中的属性或函数,与在Form1中调用Form8中的属性或函数不一样。
窗体Form1下,其中的属性和函数都有确定的值或表达式,直接调用Form8将值传进去可行,因为此时Form1中的数据存在;而在Form8窗体中调用Form1窗体中的函数和属性,则Form1窗体已经关闭,改窗体中的也就无值了,获取该窗体中中的学生学号信息也就无法实现。
通过编写代码,使我很熟练的可以运用C#中的数据集Dataset、Connection对象、Command对象、DataResder对象和DataAdapter 对象。
并对SQL的select、insert、delete、update熟练掌握。
课程设计(大作业)报告一、题目分析1.背景分析编写目的本需求的编写目的在于研究学籍管理系统软件的开发途径和应用方法。
以及明确所要开发的软件应具有的功能、性能与界面,是系统分析人员及软件开发人员能清楚的了解用户的需求,并再次基础上进一步提出概要设计说明书和完成后续设计与开发工作。
项目背景近年来随着高校的扩招,需要处理的学生信息日趋加大,不仅花费大量的教师资源,处理的效果还十分低下。
为了提高学生管理的管理水平,优化资源,尽可能的降低管理成本,成为学生管理的新课题。
学生管理系统是从学生管理的现状出发,根据学生管理的新要求进行开发设计的,它解决了学生管理数据信息量大,修改不方便,对一系列数据进行统计与分析花费时间长等问题,帮助学生管理人员有效管理学生信息,成为高校管理中必不可少的管理工具。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要:学籍管理信息系统是高校管理的重要组成部分,为老师、同学提供存档、查询等手段。
根据教学安排,我们有两周的时间进行学籍管理信息系统课程设计,我们小组团结一心,分工明确,积极讨论,终于在组员的努力下及老师的指导帮助下,我们顺利完成了本次课程设计,系统包括学生资料设置,成绩设置,成绩、排名查询,修改资料关键字:系统查询课程设计论文管理目录第一章绪论-------------------------------------------------(1)1.1 课程设计背景 (1)1.2 课程设计目的 (1)1.3 课程设计思路 (1)第二章系统总体规划-----------------------------------------(2)2.1 前期准备 (2)2.2系统功能 (2)第三章系统分析设计-----------------------------------------(3)3.1 建立MFC主界面及代码设计 (3)3.2 学生资料设置及代码设计 (10)3.3学生成绩设置及代码设计 (19)3.4查询功能及代码设计 (28)3.5修改密码功能及代码设计 (30)3.6删除功能及代码设计 (34)3.7修改功能及代码设计 (36)第四章界面设计与实现----------------------------------------(37)4.1 学生信息管理系统 (37)4.2 学生资料设置 (37)4.3 成绩设置 (38)4.4 学生资料显示 (38)4.5 成绩显示 (39)4.6 修改密码 (39)总结---------------------------------------------------------(40)工作安排-----------------------------------------------------(43)参考文献-----------------------------------------------------(44)第一章绪论1.1课程设计背景经过一个学期对《C++程序设计》的学习,学习到了基本的理论知识,了解到了C++语言程序设计的思想,现在把这些知识运用到实际中来。
学籍管理信息系统是高校管理的重要组成部分,它能够为用户提供充足的信息和快捷的查询手段。
使用计算机对学生资料、成绩信息进行管理,能够极大的提高学生管理的效率,节约教育经费,这也是适应学校信息化建设发展趋势的重要因素。
因此我们有必要开发学籍管理信息系统。
1.2课程设计目的全面系统的学习面向对象程序设计的基本概念、基本语法和编程方法。
正确理解掌握C++面向对象程序设计的基本特性:类、对象、继承与派生、多态、虚函数、模板、流类库等。
遵循软件过程的各个环节进行系统分析、设计、实现、集成、测试,并相应给出软件规格说明书等制品。
了解当前常用的软件开发工具(Visual C++),要求熟练掌握基于MFC的程序设计,培养解决实际问题的能力。
1.3 课程设计思路实现学生基本情况的录入、修改、删除等基本操作;能实现学生成绩的录入、修改、删除等基本操作;能方便的对学生的各个学期成绩进行统计;能具有成绩统计、排名等功能;可行性分析由于本系统管理的对象单一,都是在校学生,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。
第二章 系统总体规划2.1 前期准备学习C++6.0课本理论知识,查找、搜集相关资料,讨论出具体思路、方法,在整个过程中周老师给了我们必不可少的许多指导,使我们能够顺利地完成前期各项工作。
2.2系统功能基于系统需求分析,该系统具有以下基本功能:用户管理:管理系统操作人员,设置操作人员账号、密码、用户资料等。
用户资料:学生通过登录,可以查询到自己的资料、成绩、排名,同时可以修改密码。
成绩管理:管理员根据学生成绩保存到系统中,同时可计算出综合排名、平均分等信息。
基础数据管理:维护学生资料,主要包括院系、专业设置,联系方式、学号等个人信息设置等。
功能图第三章系统分析设计3.1 建立MFC主界面及代码设计#include "stdafx.h" //头文件#include "学生信息管理系统.h"#include "学生信息管理系统Dlg.h"#include "xueshengziliao2.h"#include "xueshengziliao1.h"#include "stu.h"#include "fstream.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endifclass CAboutDlg : public CDialog //定义类CAboutDlg及数据和方法{public:CAboutDlg();enum { IDD = IDD_ABOUTBOX };protected:virtual void DoDataExchange(CDataExchange* pDX);protected:DECLARE_MESSAGE_MAP()};CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD){}void CAboutDlg::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);}BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)END_MESSAGE_MAP()CMyDlg::CMyDlg(CWnd* pParent ) //构造函数: CDialog(CMyDlg::IDD, pParent){m_xuehao2 = 0.0f;m_mima = 0.0f;m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);}void CMyDlg::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);DDX_Text(pDX, IDC_EDIT1, m_xuehao2);DDX_Text(pDX, IDC_EDIT2, m_mima);}BEGIN_MESSAGE_MAP(CMyDlg, CDialog) //窗口链接函数的实现ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_guanliyuandenglu, Onguanliyuandenglu)ON_BN_CLICKED(IDC_xueshengdenglu, Onxueshengdenglu)ON_BN_CLICKED(IDC_guanbi, Onguanbi)END_MESSAGE_MAP()BOOL CMyDlg::OnInitDialog() //布尔函数的实现{CDialog::OnInitDialog();ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL){CString strAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if (!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);}}SetIcon(m_hIcon, TRUE);SetIcon(m_hIcon, FALSE);return TRUE;}void CMyDlg::OnSysCommand(UINT nID, LPARAM lParam) {if ((nID & 0xFFF0) == IDM_ABOUTBOX){CAboutDlg dlgAbout;dlgAbout.DoModal();}else{CDialog::OnSysCommand(nID, lParam);}}void CMyDlg::OnPaint() //添加背景图片{if (IsIconic()){CPaintDC dc(this);SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);int cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;dc.DrawIcon(x, y, m_hIcon);}else{//CDialog::OnPaint(); //要禁止这个调用 CPaintDC dc(this);CRect rect;GetClientRect(&rect);CDC dcMem;dcMem.CreateCompatibleDC(&dc);CBitmap bmpBackground;bmpBackground.LoadBitmap(IDB_BITMAP1); BITMAP bitmap;bmpBackground.GetBitmap(&bitmap);CBitmap *pbmpOld=dcMem.SelectObject(&bmpBackground);dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0, bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);}}HCURSOR CMyDlg::OnQueryDragIcon() //最小化窗口{return (HCURSOR) m_hIcon;}void CMyDlg::Onguanliyuandenglu() //管理员登录{this->UpdateData(true);if(m_mima==123&&m_xuehao2==321){xueshengziliao2 a;this->OnCancel(); //跳出此窗口时关闭此窗口a.DoModal(); //跳转到另一窗口}elsethis->MessageBox("管理员的学号或密码输入错误!");}Void CMyDlg::Onxueshengdenglu() //学生登录{struct stu stu;bool num=false;bool code=false;int find=0;this->UpdateData(true);ifstreamii("data.txt"); //读取数据while(ii.eof()==0){ii.read((char *)&stu,sizeof(stu));if(stu.xuehao==m_xuehao2){find=1;break;}}ii.close();if(find==0){this->MessageBox("该学号尚未注册!");}else {num=true;if(stu.mima==m_mima){code=true;}elsethis->MessageBox("密码错误!");}if(num==true&&code==true){xueshengziliao1 aa;this->UpdateData(true);aa.m_dianhua1=stu.dianhua; //更新关联变量 aa.m_dizhi1=stu.dizhi;aa.m_mima1=stu.mima;aa.m_nianbanji1=stu.nianbanji;aa.m_xingbie1=stu.xingbie;aa.m_xingming1=stu.xingming;aa.m_xuehao1=stu.xuehao;aa.m_xueyuan1=stu.xueyuan;aa.m_zhuanye1=stu.zhuanye;aa.m_jiguan1=stu.jiguan;this->UpdateData(false);this->OnCancel();aa.DoModal(); //跳转窗口}}voidCMyDlg::Onguanbi() //关闭此窗口{this->OnOK();}3.2 学生资料设置及代码设计#include "stdafx.h"#include "学生信息管理系统.h"#include "学生信息管理系统Dlg.h"#include "xueshengziliao2.h"#include "chengji2.h"#include "fstream.h"#include "stu.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endifxueshengziliao2::xueshengziliao2(CWnd* pParent /*=NULL*/) : CDialog(xueshengziliao2::IDD, pParent){m_zhuanye2 = _T("");m_xueyuan2 = _T("");m_xuehao2 = 0.0f;m_xingming2 = _T("");m_xingbie2 = _T("");m_nianbanji2 = _T("");m_mima2 = 0.0f;m_jiguan2 = _T("");m_dizhi2 = _T("");m_dianhua2 = 0.0f;}void xueshengziliao2::DoDataExchange(CDataExchange* pDX) {CDialog::DoDataExchange(pDX);DDX_Text(pDX, IDD_zhuanye2, m_zhuanye2);DDX_Text(pDX, IDD_xueyuan2, m_xueyuan2);DDX_Text(pDX, IDD_xuehao2, m_xuehao2);DDX_Text(pDX, IDD_xingming2, m_xingming2);DDX_Text(pDX, IDD_xingbie2, m_xingbie2);DDX_Text(pDX, IDD_nianbanji2, m_nianbanji2);DDX_Text(pDX, IDD_mima2, m_mima2);DDX_Text(pDX, IDD_jiguan2, m_jiguan2);DDX_Text(pDX, IDD_dizhi2, m_dizhi2);DDX_Text(pDX, IDD_dianhua2, m_dianhua2);}BEGIN_MESSAGE_MAP(xueshengziliao2, CDialog)ON_BN_CLICKED(IDC_chaxun2, Onchaxun2)ON_BN_CLICKED(IDC_fanhui2, Onfanhui2)ON_BN_CLICKED(IDC_guanbi2, Onguanbi2)ON_BN_CLICKED(IDC_queren2, Onqueren2)ON_BN_CLICKED(IDC_shanchu2, Onshanchu2)ON_BN_CLICKED(IDC_shezhichengji2, Onshezhichengji2)ON_BN_CLICKED(IDC_xiugai2, Onxiugai2)END_MESSAGE_MAP()Void xueshengziliao2::Onfanhui2() //关闭此窗口并返回{this->OnCancel();CMyDlg a;a.DoModal();}Void xueshengziliao2::Onguanbi2() //关闭此窗口{this->OnOK();}Void xueshengziliao2::Onchaxun2() //查询用户资料{int findFlag=0;this->UpdateData(true);struct stu stu;ifstream is("data.txt");while(is.eof()==0){is.read((char *)&stu,sizeof(stu));if(m_xuehao2==stu.xuehao){findFlag=1;break;}}is.close();if(findFlag==1){m_xingming2=stu.xingming;m_mima2=stu.mima;m_xuehao2=stu.xuehao;m_dianhua2=stu.dianhua;m_dizhi2=stu.dizhi;m_nianbanji2=stu.nianbanji;m_xingbie2=stu.xingbie;m_xueyuan2=stu.xueyuan;m_zhuanye2=stu.zhuanye;m_jiguan2=stu.jiguan;}else{this->MessageBox("此学号用户不存在!");m_xingming2="";m_mima2=0;m_xuehao2=0;m_dianhua2=0;m_dizhi2="";m_nianbanji2="";m_xingbie2="";m_xueyuan2="";m_zhuanye2="";m_jiguan2="";}this->UpdateData(false);}void xueshengziliao2::Onxiugai2() //修改用户资料{unsigned long position = NULL;int findFlag=0;this->UpdateData(true);struct stu stu;ifstream is("data.txt");while(is.eof()==0){position = is.tellg();is.read((char *)&stu,sizeof(stu));if(stu.xuehao==m_xuehao2){findFlag=1;break;}}is.close();if(findFlag==0){this->MessageBox("此学号用户不存在!");return;}ofstream os("data.txt", ios::ate);os.seekp(position);strcpy(stu.xingming,m_xingming2);stu.mima=m_mima2;stu.xuehao=m_xuehao2;stu.dianhua=m_dianhua2;strcpy(stu.dizhi,m_dizhi2);strcpy(stu.nianbanji,m_nianbanji2);strcpy(stu.xingbie,m_xingbie2);strcpy(stu.xueyuan,m_xueyuan2);strcpy(stu.zhuanye,m_zhuanye2);strcpy(stu.jiguan,m_jiguan2);os.write((char *)&stu,sizeof(stu));os.close();this->MessageBox("修改成功");}void xueshengziliao2::Onqueren2() //用户注册{stu stu,stu1;this->UpdateData(true);strcpy(stu.xingming,m_xingming2);stu.mima=m_mima2;stu.xuehao=m_xuehao2;stu.dianhua=m_dianhua2;strcpy(stu.dizhi,m_dizhi2);strcpy(stu.nianbanji,m_nianbanji2);strcpy(stu.xingbie,m_xingbie2);strcpy(stu.xueyuan,m_xueyuan2);strcpy(stu.zhuanye,m_zhuanye2);strcpy(stu.jiguan,m_jiguan2);ifstream is("data.txt");int i=0;while(is.eof()==0){is.read((char *)&stu1,sizeof(stu1));if(stu1.xuehao==m_xuehao2){i=1;this->MessageBox("此学号用户已登记!");break;}}is.close();if(i==0){ofstream os("data.txt",ios::app);os.write((char *)&stu,sizeof(stu));os.close();MessageBox("此学号用户注册成功!");}}Void xueshengziliao2::Onshanchu2() //删除用户资料{unsigned long position = NULL;struct stu stu;int findFlag=0;this->UpdateData(true);ifstream is("data.txt");while(is.eof()==0){position = is.tellg();is.read((char *)&stu,sizeof(stu));if(stu.xuehao==m_xuehao2){findFlag=1;break;}}is.close();if(findFlag==0){this->MessageBox("此学号用户不存在,删除失败!");return;}ofstream os("data.txt", ios::ate);os.seekp(position);strcpy(stu.xingming,"");stu.mima=0;stu.xuehao=0;stu.dianhua=0;strcpy(stu.dizhi,"");strcpy(stu.nianbanji,"");strcpy(stu.xingbie,"");strcpy(stu.xueyuan,"");strcpy(stu.zhuanye,"");strcpy(stu.jiguan,"");os.write((char *)&stu,sizeof(stu));os.close();m_xingming2="";m_mima2=0;m_xuehao2=0;m_dianhua2=0;m_dizhi2="";m_nianbanji2="";m_xingbie2="";m_xueyuan2="";m_zhuanye2="";m_jiguan2="";this->MessageBox("删除成功");this->UpdateData(false);}Void xueshengziliao2::Onshezhichengji2() //判断学生资料存在与否和跳到学生资料窗口{chengji2 a;a.DoModal(); }3.3 学生成绩设置及代码设计// chengji2.cpp : implementation file#include "stdafx.h"#include "学生信息管理系统.h"#include "chengji2.h"#include "fstream.h"#include "fen.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endifchengji2::chengji2(CWnd* pParent ): CDialog(chengji2::IDD, pParent){m_c1 = 0.0f;m_changweifen1 = 0.0f;m_makesiyuanli1 = 0.0f;m_pingjunfen1 = 0.0f;m_shufen1 = 0.0f;m_tiyu1 = 0.0f;m_wuli1 = 0.0f;m_wulishiyan1 = 0.0f;m_yingyu1 = 0.0f;m_zongfen1 = 0.0f;m_paiming1 = 0.0f;m_xuehao1 = 0.0f;}void chengji2::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);DDX_Text(pDX, IDD_c1, m_c1);DDX_Text(pDX, IDD_changweifen1, m_changweifen1);DDX_Text(pDX, IDD_makesiyuanli1, m_makesiyuanli1);DDX_Text(pDX, IDD_pingjunfen1, m_pingjunfen1);DDX_Text(pDX, IDD_shufen1, m_shufen1);DDX_Text(pDX, IDD_tiyu1, m_tiyu1);DDX_Text(pDX, IDD_wuli1, m_wuli1);DDX_Text(pDX, IDD_wulishiyan1, m_wulishiyan1);DDX_Text(pDX, IDD_yingyu1, m_yingyu1);DDX_Text(pDX, IDD_zongfen1, m_zongfen1);DDX_Text(pDX, IDC_paiming11, m_paiming1);DDX_Text(pDX, IDC_xuehao21, m_xuehao1);}BEGIN_MESSAGE_MAP(chengji2, CDialog)ON_BN_CLICKED(IDC_queren2, Onqueren2)ON_BN_CLICKED(IDC_fanhui2, Onfanhui2)ON_BN_CLICKED(IDC_guanbi2, Onguanbi2)ON_BN_CLICKED(IDC_shanchu2, Onshanchu2)ON_BN_CLICKED(IDC_xiugai2, Onxiugai2)ON_BN_CLICKED(IDC_chaxun2, Onchaxun2)END_MESSAGE_MAP()void chengji2::Onqueren2() //登记小学生成绩{fen fen,fen1;this->UpdateData(true);fen.c=m_c1;fen.changweifen=m_changweifen1;fen.makesiyuanli=m_makesiyuanli1;fen.shufen=m_shufen1;fen.tiyu=m_tiyu1;fen.wuli=m_wuli1;fen.wulishiyan=m_wulishiyan1;fen.yingyu=m_yingyu1;fen.xuehao=m_xuehao1;fen.sum=m_c1+m_changweifen1+m_makesiyuanli1+m_shufen1+m_tiyu1+m_wuli 1+m_wulishiyan1+m_yingyu1;ifstream is("data1.txt");int i=0;while(is.eof()==0){is.read((char *)&fen1,sizeof(fen1));if(fen1.xuehao==m_xuehao1){i=1;this->MessageBox("此学号用户成绩已登记!");break;}is.close();if(i==0){ofstream os("data1.txt",ios::app);os.write((char *)&fen,sizeof(fen));os.close();MessageBox("成绩登记成功!");}}}void chengji2::Onfanhui2() //关闭窗口{this->OnOK();}void chengji2::Onguanbi2(){this->OnOK();}void chengji2::Onshanchu2() //删除成绩数据{unsigned long position = NULL;int findFlag=0;this->UpdateData(true);struct fen fen;ifstream is("data1.txt");while(is.eof()==0){position = is.tellg();is.read((char *)&fen,sizeof(fen));if(fen.xuehao==m_xuehao1){findFlag=1;break;}}is.close();if(findFlag==0){this->MessageBox("此学号用户不存在,删除失败!");return;}ofstream os("data1.txt", ios::ate);os.seekp(position);fen.c=0;fen.changweifen=0;fen.makesiyuanli=0;fen.shufen=0;fen.tiyu=0;fen.wuli=0;fen.wulishiyan=0;fen.yingyu=0;fen.xuehao=0;fen.sum=0;os.write((char *)&fen,sizeof(fen));os.close();m_c1=0;m_changweifen1=0;m_makesiyuanli1=0;m_shufen1=0;m_tiyu1=0;m_wuli1=0;m_wulishiyan1=0;m_yingyu1=0;m_xuehao1=0;m_zongfen1=0;m_pingjunfen1=0;m_paiming1=0;this->UpdateData(false);this->MessageBox("删除成功");}Void chengji2::Onxiugai2() //修改用户数据{unsigned long position = NULL;int findFlag=0;this->UpdateData(true);struct fen fen;ifstream is("data1.txt");while(is.eof()==0){position = is.tellg();is.read((char *)&fen,sizeof(fen));if(fen.xuehao==m_xuehao1){findFlag=1;break;}}is.close();if(findFlag==0){this->MessageBox("此学号用户不存在!");return;}ofstream os("data1.txt", ios::ate);os.seekp(position);fen.c=m_c1;fen.changweifen=m_changweifen1;fen.makesiyuanli=m_makesiyuanli1;fen.shufen=m_shufen1;fen.tiyu=m_tiyu1;fen.wuli=m_wuli1;fen.wulishiyan=m_wulishiyan1;fen.yingyu=m_yingyu1;fen.xuehao=m_xuehao1;fen.sum=m_c1+m_changweifen1+m_makesiyuanli1+m_shufen1+m_tiyu1+m_wuli 1+m_wulishiyan1+m_yingyu1;os.write((char *)&fen,sizeof(fen));os.close();this->MessageBox("修改成功");}void chengji2::Onchaxun2() //实现查询功能{int findFlag=0;this->UpdateData(true);struct fen fen;ifstream is("data1.txt");while(is.eof()==0){is.read((char *)&fen,sizeof(fen));if(fen.xuehao==m_xuehao1){findFlag=1;break;}}is.close();if(findFlag==1){//this->MessageBox("此数据存在!");m_c1=fen.c;m_changweifen1=fen.changweifen;m_makesiyuanli1=fen.makesiyuanli;m_shufen1=fen.shufen;m_tiyu1=fen.tiyu;m_wuli1=fen.wuli;m_wulishiyan1=fen.wulishiyan;m_yingyu1=fen.yingyu;m_xuehao1=fen.xuehao;m_zongfen1=fen.sum;m_pingjunfen1=fen.sum/8;}else{this->MessageBox("此学号用户成绩未登记!");m_c1=0;m_changweifen1=0;m_makesiyuanli1=0;m_shufen1=0;m_tiyu1=0;m_wuli1=0;m_wulishiyan1=0;m_yingyu1=0;m_xuehao1=0;m_zongfen1=0;}this->UpdateData(false); }3.4 查询功能及代码设计Void xueshengziliao1::Onchaxuechengji1() //查询成绩{chengji1 tt;this->UpdateData(true);struct fen fen;int findFlag=0;float i=1;ifstream jj("data1.txt");while(jj.eof()==0){jj.read((char *)&fen,sizeof(fen));if(fen.xuehao==m_xuehao1){findFlag=1;tt.m_c1=fen.c;tt.m_changweifen1=fen.changweifen;tt.m_makesiyuanli1=fen.makesiyuanli;tt.m_shufen1=fen.shufen;tt.m_tiyu1=fen.tiyu;tt.m_wuli1=fen.wuli;tt.m_wulishiyan1=fen.wulishiyan;tt.m_yingyu1=fen.yingyu;tt.m_zongfen1=fen.c+fen.changweifen+fen.makesiyuanli+fen.shufen+f en.tiyu+fen.wuli+fen.wulishiyan+fen.yingyu;tt.m_pingjunfen1=fen.sum/8;break;}}jj.close();ifstream jjj("data1.txt");if(findFlag==1) //成立则显示出data文档中相应的储存数据 {struct fen gg;while(jjj.eof()==0){jjj.read((char *)&gg,sizeof(gg));if(fen.sum<gg.sum)i=i+1; tt.m_paiming1=i;}jjj.close();this->UpdateData(false);tt.DoModal();}else this->MessageBox("未登入成绩!","消息:");}Void xueshengziliao1::Onguanbi1() //关闭此窗口{this->OnOK();}Void xueshengziliao1::Onfanhui1() //关闭此窗口并返回{this->OnCancel();CMyDlg a;a.DoModal();}3.5修改密码功能及代码设计#include "stdafx.h"#include "学生信息管理系统.h"#include "xueshengziliao1.h"#include "xiugaimima1.h"#include "stu.h"#include "fstream.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endifxiugaimima1::xiugaimima1(CWnd* pParent ): CDialog(xiugaimima1::IDD, pParent){m_xuehao1 = 0.0f;m_qingshuruxinmima1 = 0.0f;m_jiumima1 = 0.0f;m_zaicishuruxinmima1 = 0.0f;}void xiugaimima1::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);DDX_Text(pDX, IDD_xuehao1, m_xuehao1);DDX_Text(pDX, IDD_qingshuruxinmima1, m_qingshuruxinmima1);DDX_Text(pDX, IDD_jiumima1, m_jiumima1);DDX_Text(pDX, IDD_zaicishuruxinmima1, m_zaicishuruxinmima1); }BEGIN_MESSAGE_MAP(xiugaimima1, CDialog)ON_BN_CLICKED(IDC_queren1, Onqueren1)ON_BN_CLICKED(IDC_fanhui2, Onfanhui2)END_MESSAGE_MAP()void xiugaimima1::Onqueren1() //修改密码功能的实现{this->UpdateData(true);struct stu stu1;bool num=false;bool code=false;unsigned long position = NULL;int find=0;this->UpdateData(true);ifstream ii("data.txt");while(ii.eof()==0){ii.read((char *)&stu1,sizeof(stu1));if(stu1.xuehao==m_xuehao1){find=1;break;}}ii.close();if(find==0){this->MessageBox("该学号用户尚未注册!","消息:");}else {num=true;if(stu1.mima==m_jiumima1){code=true;}elsethis->MessageBox("旧密码错误!","消息:");}if(num==true&&code==true){if(m_qingshuruxinmima1==m_zaicishuruxinmima1){stu1.mima=this->m_zaicishuruxinmima1;ofstream tt("data.txt", ios::ate);tt.seekp(position);tt.write((char *)&stu1,sizeof(stu1)); //通过write方式进行数据覆盖,达到修改的目的tt.close();this->MessageBox("修改成功!请保留您的号码和密码!","消息:");this->UpdateData(false);}else this->MessageBox("两次新号码不相等,请检查!","警告:");}}BEGIN_EVENTSINK_MAP(xiugaimima1, CDialog)END_EVENTSINK_MAP()void xiugaimima1::OnBeforeDragOverImage1(LPDISPATCH Cancel, LPDISPATCH Data, float X, float Y, long DragState, LPDISPATCH Effect, short Shift) {}Void xiugaimima1::Onfanhui2() //关闭此窗口并返回学生资料窗口{this->OnCancel();xueshengziliao1 a;a.DoModal();}3.6删除功能及代码设计Void xueshengziliao2::Onshanchu2() //删除用户资料{unsigned long position = NULL;struct stu stu;int findFlag=0;this->UpdateData(true);ifstream is("data.txt");while(is.eof()==0){position = is.tellg();is.read((char *)&stu,sizeof(stu));if(stu.xuehao==m_xuehao2){findFlag=1;break;}}is.close();if(findFlag==0){this->MessageBox("此学号用户不存在,删除失败!");return;}ofstream os("data.txt", ios::ate);os.seekp(position);strcpy(stu.xingming,"");stu.mima=0;stu.xuehao=0;stu.dianhua=0;strcpy(stu.dizhi,"");strcpy(stu.nianbanji,"");strcpy(stu.xingbie,"");strcpy(stu.xueyuan,"");strcpy(stu.zhuanye,"");strcpy(stu.jiguan,"");os.write((char *)&stu,sizeof(stu));os.close();m_xingming2="";m_mima2=0;m_xuehao2=0;m_dianhua2=0;m_dizhi2="";m_nianbanji2="";m_xingbie2="";m_xueyuan2="";m_zhuanye2="";m_jiguan2="";this->MessageBox("删除成功");this->UpdateData(false);}Void xueshengziliao2::Onshezhichengji2() //判断学生资料存在与否和跳到学生资料窗口{chengji2 a;a.DoModal();}3.7修改功能及代码设计voidchengji2::Onxiugai2() //修改用户数据{unsigned long position = NULL;int findFlag=0;this->UpdateData(true);struct fen fen;ifstream is("data1.txt");while(is.eof()==0){position = is.tellg();is.read((char *)&fen,sizeof(fen));if(fen.xuehao==m_xuehao1){findFlag=1;break;}}is.close();if(findFlag==0){this->MessageBox("此学号用户不存在!");return;}ofstream os("data1.txt", ios::ate);os.seekp(position);fen.c=m_c1;fen.changweifen=m_changweifen1;fen.makesiyuanli=m_makesiyuanli1;fen.shufen=m_shufen1;fen.tiyu=m_tiyu1;fen.wuli=m_wuli1;fen.wulishiyan=m_wulishiyan1;fen.yingyu=m_yingyu1;fen.xuehao=m_xuehao1;fen.sum=m_c1+m_changweifen1+m_makesiyuanli1+m_shufen1+m_tiyu1+m_wuli 1+m_wulishiyan1+m_yingyu1;os.write((char *)&fen,sizeof(fen));os.close();this->MessageBox("修改成功");}第四章界面设计与实现4.1 学生信息管理系统4.2 学生资料设置4.3 成绩设置4.4 学生资料显示4.5 成绩显示4.6 修改密码。