c语言课设学生信息管理系统

合集下载

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

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

c语言课程设计学生信息管理系统一、背景介绍二、需求分析1.功能需求2.性能需求三、系统设计1.系统架构设计2.数据库设计3.界面设计四、系统实现与测试1.环境搭建与配置2.代码实现3.测试与调试五、总结一、背景介绍学生信息管理系统是一个基本的信息管理系统,用于管理学生的基本信息和课程成绩等数据。

在高校中,学生信息管理系统是一个非常重要的工具,可以帮助教师和管理员更好地了解学生情况,为教育教学提供数据支持。

C语言作为一门非常重要的编程语言,在计算机科学领域得到了广泛应用。

在C语言课程设计中,开发一个学生信息管理系统是非常有意义的。

二、需求分析1.功能需求(1)添加学生信息:包括姓名、性别、年龄等基本信息以及选修课程成绩等详细信息。

(2)删除学生信息:根据学号或姓名删除已有的学生信息。

(3)修改学生信息:根据学号或姓名修改已有的学生信息。

(4)查询学生信息:根据姓名或年龄等条件查询学生基本信息以及选修课程成绩等详细信息。

(5)统计学生信息:统计学生的人数、男女比例、平均年龄等信息。

2.性能需求(1)系统响应速度快,操作简单方便。

(2)数据存储稳定可靠,数据安全性高。

三、系统设计1.系统架构设计本系统采用B/S架构,即浏览器/服务器架构。

用户通过浏览器访问服务器上的网站,进行学生信息管理操作。

服务器端采用C语言编写,通过CGI技术实现与客户端的交互。

客户端使用HTML、CSS和JavaScript等技术实现用户界面。

2.数据库设计本系统采用MySQL数据库存储学生信息和课程成绩等数据。

数据库中包含两张表:学生表和成绩表。

其中,学生表包含字段:学号、姓名、性别、年龄;成绩表包含字段:学号、课程名称、成绩。

3.界面设计本系统的界面应该简洁明了,易于操作。

主要分为以下几个模块:(1)登录模块:用户输入账号和密码登录系统。

(2)添加模块:用户可以添加新的学生信息和课程成绩等数据。

(3)删除模块:用户可以根据学号或姓名删除已有的学生信息。

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

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

C语言课程设计学生信息管理系统1. 简介本文将详细介绍基于C语言的学生信息管理系统的设计和实现。

该系统旨在帮助学校或教育机构有效管理和维护学生的个人信息,包括基本信息、成绩等。

通过该系统,可以方便地查询、修改和删除学生信息,实现学生信息的快速检索和更新。

2. 系统需求分析在设计学生信息管理系统之前,我们首先需要明确系统的需求。

以下是该系统的基本需求:1.学生基本信息管理:包括学生的姓名、学号、性别、年龄、出生日期等信息。

2.学生成绩管理:包括学生的各科成绩、总分以及平均分等信息。

3.学生信息查询:用户可以根据学生的学号或姓名进行信息查询。

4.学生信息修改:用户可以修改学生的基本信息和成绩信息。

5.学生信息删除:用户可以删除学生的信息。

3. 系统设计与实现3.1 数据结构设计为了存储和管理学生信息,我们需要设计合适的数据结构。

以下是一个简单的示例:struct Student {char name[100];int studentId;char gender[10];int age;char birthdate[20];float scores[5];float totalScore;float averageScore;};3.2 界面设计在设计用户界面时,我们可以利用C语言提供的基本控制台窗口进行操作。

可以使用菜单方式的交互,通过键盘输入选择相应的功能。

3.3 功能实现根据系统需求,我们需要实现以下功能:3.3.1 学生信息录入用户可以输入学生的基本信息和成绩信息,并将其存储到系统中。

在录入信息时,需要检查输入的合法性,如学号是否唯一、成绩是否在有效范围内等。

3.3.2 学生信息查询用户可以根据学生的学号或姓名进行信息查询。

系统会返回与输入内容匹配的学生信息列表,并打印在屏幕上供用户查看。

3.3.3 学生信息修改用户可以选择要修改的学生信息,并提供新的值进行修改。

系统会根据用户的输入更新相应学生的信息。

c语言课程设计之学生信息管理系统 (2)

c语言课程设计之学生信息管理系统 (2)

学生信息管理系统设计案例一、引言学生信息管理系统是一种集学生信息录入、查询、修改和删除等功能于一体的软件系统。

为了满足学校对学生信息的有效管理和查询需求,本文将介绍一种用C语言实现的学生信息管理系统设计案例。

二、需求分析学生信息管理系统主要有以下几个功能模块: 1. 学生信息录入:包括学生姓名、学号、年龄、性别等基本信息的录入。

2. 学生信息查询:可以根据学号或姓名进行查询,并显示查询结果。

3. 学生信息修改:可以根据学号或姓名选择要修改的学生信息,并进行修改操作。

4. 学生信息删除:可以根据学号或姓名选择要删除的学生信息,并进行删除操作。

三、系统设计1. 数据结构设计为了存储学生信息,我们需要定义一个学生结构体,包括姓名、学号、年龄、性别等字段。

同时,为了方便管理学生信息,我们可以使用链表数据结构来存储学生信息,并设计一个头节点来指向链表的第一个节点。

struct student {char name[20];int student_id;int age;char gender[10];struct student* next;};struct student* head; // 头节点2. 功能模块设计2.1 学生信息录入在该功能模块中,用户需要输入学生的姓名、学号、年龄和性别等信息,并将该学生信息添加到链表中。

为了方便起见,我们可以将该功能模块定义为一个函数add_student()。

2.2 学生信息查询在该功能模块中,用户可以根据学号或姓名进行学生信息的查询。

查询结果将会显示学生的基本信息。

为了方便起见,我们可以将该功能模块定义为一个函数search_student()。

2.3 学生信息修改在该功能模块中,用户可以根据学号或姓名选择要修改的学生信息,并进行修改操作。

为了方便起见,我们可以将该功能模块定义为一个函数update_student()。

2.4 学生信息删除在该功能模块中,用户可以根据学号或姓名选择要删除的学生信息,并进行删除操作。

学生管理系统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语言课程设计学生学籍管理系统一、教学目标本课程旨在让学生掌握C语言的基本语法,培养学生编写结构化程序的能力,使学生能够运用C语言实现简单的学生学籍管理系统。

通过本课程的学习,学生将能够:1.知识目标:–理解C语言的基本数据类型、运算符和表达式;–掌握函数的定义和调用,理解局部变量和全局变量的概念;–熟悉控制结构,如if语句、for循环和while循环;–了解数组、字符串和指针的基本使用方法。

2.技能目标:–能够使用C语言编写简单的程序,解决实际问题;–掌握基本的调试技巧,能够找出并修复程序中的错误;–具备阅读和理解他人代码的能力。

3.情感态度价值观目标:–培养学生对计算机科学的兴趣和热情,提高学生的自主学习能力;–培养学生团队协作的精神,增强学生的沟通能力;–培养学生解决问题的能力,提高学生的创新意识。

二、教学内容本课程的教学内容主要包括以下几个部分:1.C语言基本语法:数据类型、运算符、表达式、函数、局部变量和全局变量等;2.控制结构:if语句、for循环、while循环等;3.数据结构:数组、字符串、指针等;4.学生学籍管理系统的实现:学生信息的添加、删除、修改和查询等功能。

三、教学方法本课程采用讲授法、案例分析法和实验法等多种教学方法相结合的方式进行教学:1.讲授法:通过讲解C语言的基本语法和概念,使学生掌握相关知识;2.案例分析法:通过分析实际案例,使学生理解并掌握C语言在学生学籍管理系统中的应用;3.实验法:让学生动手编写代码,实现学生学籍管理系统的功能,提高学生的实际操作能力。

四、教学资源本课程的教学资源包括:1.教材:《C语言程序设计》;2.参考书:《C语言 Primer》;3.多媒体资料:教学PPT、视频教程等;4.实验设备:计算机、网络等。

以上教学资源将有助于实现本课程的教学目标,提高学生的学习效果。

五、教学评估本课程的教学评估将采用多元化评价方式,全面客观地评价学生的学习成果。

学生信息管理系统详细设计说明c语言

学生信息管理系统详细设计说明c语言

学生信息管理系统详细设计说明c语言如何设计一个学生信息管理系统。

一、需求分析学生信息管理系统是以管理学生信息为主要功能的软件系统。

在设计之前,我们需要了解用户的需求。

通过对用户需求的分析,我们得出以下功能模块:1、学生信息录入:录入学生信息,包括学号、姓名、性别、出生日期、班级等信息。

2、学生信息查询:根据学号、姓名等关键字进行学生信息的查询,支持模糊查询。

3、学生信息修改:可以修改学生的相关信息,包括学号、姓名、班级等。

4、学生信息删除:删除已经录入的学生信息。

5、学生成绩查询:根据学号查询该学生的相关成绩信息。

6、学生成绩录入:录入学生的相关成绩信息,包括语文、数学、英语等。

二、系统设计在需求分析的基础上,我们可以开始进行系统设计。

1、数据结构设计(1)学生信息结构体/* 学生信息结构体*/typedef struct {/* 学号*/char id[11];/* 姓名*/char name[21];/* 性别*/char sex[3];/* 出生日期*/char birthday[11];/* 班级*/char class[21];} Info;(2)学生成绩结构体/* 学生成绩结构体*/typedef struct {/* 学号*/char id[11];/* 语文成绩*/int chinese;/* 数学成绩*/int math;/* 英语成绩*/int english;} Score;2、功能模块设计(1)学生信息录入在学生信息录入模块中,我们需要设计一个函数来进行学生信息的录入。

void AddInfo(Info *info);该函数的参数是学生信息结构体的指针,通过该参数可以将学生信息录入到系统中。

在该函数中,我们需要进行如下操作:1、提示用户输入学生信息;2、从键盘获取用户输入;3、将用户输入保存到结构体中;4、将结构体保存到文件中。

(2)学生信息查询在学生信息查询模块中,我们需要设计一个函数来查询学生信息。

C语言--学生信息管理系统设计

C语言--学生信息管理系统设计

目录1.前言 (2)2.设计目的 (2)3.功能描述 (2)4.总体设计 (3)1、功能模块设计 (3)2、数据结构设计 (4)3、函数功能描述 (5)5.程序实现 (7)1、源程序(略) (7)2、运行结果 (7)6.小结 (10)1.前言在计算机技术和互联网飞速发展的今天,计算机成为了现代生活中一个重要的工具。

学生信息管理系统利用计算机对学生信息进行统一管理,为学校老师的工作提供便利。

本程序是利用结构数组实现此学生信息管理系统。

2.设计目的利用本课程设计的目的是要培养学生初步具有系统分析思想,并能利用开发工具开发一个简单实用的综合程序。

为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力,提高学生适应实际,实践编程的能力。

3.功能描述如图1所示,学生信息管理系统主要利用数组来实现,其数组元素是结构体类型,整个系统由如下几大功能模块组成。

图1 学生信息管理系统功能模块(1)输入记录模块。

输入记录模块主要完成将数据存入数组中的工作。

在此学生信息管理系统中,记录可以从以文本形式存储的数据文件中读入,也可从键盘逐个输入记录。

当从数据文件中读入记录时,它就是在以记录为单位存储的数据文件中,将记录逐条复制到结构体类型的数组元素中。

(2)查询记录模块。

查询记录模块主要完成在数组中查找满足相关条件的记录。

在此学生信息簿管理系统中,用户可以按照学生姓名或学生学号在数组中进行查找。

若找到该记录,则显示出此记录的信息;否则,显示出未找到该记录的提示信息。

(3)更新记录模块。

更新记录模块主要完成对记录的维护。

在此电话簿管理系统中,它实现对记录的修改、删除操作。

一般而言,系统进行了这些操作之后,需要将修改的数据存入源数据文件。

(4)输出记录模块。

输出记录模块主要完成两个任务。

第一,它实现对记录的存盘操作,即将数组中各元素中存储的记录信息写入数据文件中。

用c语言编写的一个学生信息管理系统

用c语言编写的一个学生信息管理系统

路漫漫其修远兮,吾将.上F而求索・百度文库用C语言实现线性表的基本操作,能创建一个基于学生信息管理的链表,至少包含数据输入、数据输出、数据处理等操作。

在主函数里能实现以下功能。

运行后出现一个选择提示。

可选择的功能有1)创建新的学生信息链表2)增加一个新的学生信息3)按学号删除某个学生信息4)按学号查找某个学生信息5)可以按照学生成绩对■链表排序6)退出系统#include "stdio.h"#include "stdlib.h"#include "string.h n#include ,,conio.h Hjiemian();struct student(char name[50];char sex[5];int age;char num[50];float scorel;float score2;float score3;float sum;float ave;}stu[50],del;void gnl()(int i=0;char numl;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);11目上下而求索•百度文库printf(”请输入学生的三门成绩:'俏;printf("语文门;scanf(,,%f,,,&stu[i].scorel);printf(“数学门;scanf(,,%f,,,&stu[i].score2);printf("英语巧;scanf(,,%f,,,&stu[i].score3);printf("是否继续添加:y/n\n“); scanf(,,%c,,,&numl);scanf(,,%c,,,&numl);if(numl==,N, 11 numl=="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)==O) (stu[i].sum=stu[i].scorel+stu[i].score2+stu[i].score3;stu[i].ave=stu[i].sum^;printf(',%s\t%s\t%s\t%d\t%,2f\t%.2f\t%.2f\t%.2f\t%.2f:\n'l/stu[i].num/stu[i].name/stu[i].sex/stu[i] .age,s tu[i].scorel/stu[i].score2/stu[i].score3/stu[i].sum/stu[i].ave);break;)if(i==50)printf("查找不到!请重新输入!\n");22路漫漫其修远兮,吾将上F而求索・百度文库getch(); systemf'cls"); jiemian();)void gn3()(char numlJ=0;printf("请输入要修改的学生学号:\n“);scanf(,,%s,,/stu[i].num);printf(,l%s\t%s\t%s\t%d\t%,2f\t%.2f\t%.2f\t%.2f\t%.2f:\n'l/stu[i].num/stu[i].name/stu[i].sex/stu[i] .age,s tu[i].scorel/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].scorel);printf(“数学门;scanf(,,%f,,,&stu[i].score2);printf("英语门;scanf(,,%f,,,&stu[i].score3);printf("是否继续修改:y/n?\n“);scanf(,,%c"/&numl);scanf(,,%c,\&numl);if(numl==,N, 11 numl==,n,)systemf'cls"); jiemian();)void gn4()(int i;char num[50];printf("请输入要删除的学生学号:\n“);scanf(,,%s,,,num);for(i=0;i<50;i++) 33if(strcmp(num,stu[i].num)==O)(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].scorel/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].scorel+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==O)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].scorel/stu[i].score2/stu[i].score3/stu[i].sum/stu[i].ave);)printf("按任意键返回.getch();system(,,cls n);jiemian();)void gn6()(FILE *fp;int i;char filename[50];printf(,,\n N); 44路漫漫其修远兮,吾将上F而求索・百度文库printf(,,\n M);printf(“请输入要保存的文件名:");scanf(”%s”,filename);if((fp=fopen(filename/,wb,,))==NULL)printf("文件名为空,不能保存!\n");for(i=0;i<50;i++)(if(fwrite(&stu[i],sizeof(struct student),l,fp)!=l) printf("文件保存失败!\n”);)fclose(fp);printf (“文件己保存!\n“);printf。

C实现简单的学生信息管理系统控制台程序

C实现简单的学生信息管理系统控制台程序

C实现简单的学生信息管理系统控制台程序学生信息管理系统是一种用于管理学生的基本信息的应用程序。

在这个系统中,可以实现学生信息的录入、修改、查询和删除等功能,以便对学生信息进行有效的管理和维护。

下面是一个用C语言实现的简单学生信息管理系统的示例代码。

```c#include <stdio.h>#include <stdlib.h>//定义学生结构体struct studentint id;char name[50];int age;};//全局变量,用于存储学生信息struct student students[100];int count = 0;//函数声明void menu(;void addStudent(;void listStudents(;void searchStudent(;void deleteStudent(;void updateStudent(;//主函数int maimenu(;return 0;//菜单函数void menint choice;doprintf("\n====== Student Information Management System ======\n");printf("1. Add student\n");printf("2. List students\n");printf("3. Search student\n");printf("4. Delete student\n");printf("5. Update student\n");printf("0. Exit\n");printf("Please enter your choice: "); scanf("%d", &choice);switch (choice)case 1:addStudent(;break;case 2:listStudents(;break;case 3:searchStudent(;break;case 4:deleteStudent(;break;case 5:updateStudent(;break;case 0:printf("Exit the system\n");break;default:printf("Invalid choice! Please try again\n");break;}} while (choice != 0);//添加学生函数void addStudenif (count >= 100)printf("The number of students has reached the upper limit!\n");return;}struct student newStudent;printf("Please enter student ID: ");scanf("%d", &newStudent.id);printf("Please enter student name: ");scanf("%s", );printf("Please enter student age: ");scanf("%d", &newStudent.age);students[count] = newStudent;count++;printf("Add student successfully!\n");//列出学生函数void listStudentif (count == 0)printf("No student information is available!\n");return;}printf("====== Student List ======\n");printf("ID\tName\t\tAge\n");for (int i = 0; i < count; i++)printf("%d\t%s\t\t%d\n", students[i].id, students[i].name, students[i].age);}void searchStudenif (count == 0)printf("No student information is available!\n"); return;}int id;printf("Please enter student ID: ");scanf("%d", &id);for (int i = 0; i < count; i++)if (students[i].id == id)printf("Student Information:\n");printf("ID: %d\n", students[i].id);printf("Name: %s\n", students[i].name);printf("Age: %d\n", students[i].age);return;}}printf("Student with ID %d does not exist!\n", id);void deleteStudenif (count == 0)printf("No student information is available!\n"); return;}int id;printf("Please enter student ID: ");scanf("%d", &id);for (int i = 0; i < count; i++)if (students[i].id == id)for (int j = i; j < count - 1; j++)students[j] = students[j+1]; // 将后面的学生信息往前移动}count--;printf("Delete student successfully!\n");return;}}printf("Student with ID %d does not exist!\n", id); //更新学生函数void updateStudenif (count == 0)printf("No student information is available!\n"); return;}int id;printf("Please enter student ID: ");scanf("%d", &id);for (int i = 0; i < count; i++)if (students[i].id == id)printf("Please enter student name: ");scanf("%s", students[i].name);printf("Please enter student age: ");scanf("%d", &students[i].age);printf("Update student information successfully!\n"); return;}}printf("Student with ID %d does not exist!\n", id);```这是一个简单的学生信息管理系统控制台程序,实现了学生的添加、列出、查询、删除和更新等功能。

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

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

2>N-S流程图三、详细设计说明:1>头文件#include <stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>2>数入口说明main();主函数;void menu();主菜单界面;void add();添加新的学生信息;void print(int i);打印学生信息;void scan();查找学生信息;void res();检索学生信息界面;void res_name();按姓名检索;void res_num();按学号检索;void del(int i);删除学生信息;void modify(int i);修改学生信息;void fileopen();打开文件;void filesave();保存文件;2>调用关系4.调试与测试: 编译工具1.C/C++程序设计学习与实验系统2.Tcmain() filesave()res()res_num()res_name()modify(int i)del(int i)menu()3.VC++6.0均通过调试!主菜单添加新的学生信息浏览所有学生信息检索信息库继续查找下一条修改学生信息删除信息库所有记录五、调试中所遇到的问题及解决方法1>问题:程序退出后,再次打开,上次输入的数据无法保存。

解决:调用fileopen()与filesave()保存文件数据,方便第二次打开程序时仍能调用上次输入的数据。

2>问题:跳出的界面与选择分支中的对应项不符合。

解决:改getchar()为getch(),头文件中加”conio.h”.因为getchar()从输入输出流中一次只能读取一个字符,而且需要以回车来确认输入。

本文件中多次用到getchar(),键盘缓冲区的’\n’会被下次调用getchar()时接收。

而getch()则不会,从键盘上读入一个数据,不给回显,不需要回车确认,按下键就实现了函数。

c语言课程设计(学生信息管理系统)

c语言课程设计(学生信息管理系统)

c语言课程设计(学生信息管理系统)一、系统功能学生信息管理系统是一款基于C语言开发的数据管理程序,可实现对学生信息的增删改查等功能。

具体功能列表如下: a. 添加学生信息:可根据学生的基本信息,如学生学号、姓名、性别、地址、联系电话等,依次记录入系统; b. 删除学生信息:可根据学生学号、姓名等信息,从系统中删除不必要的学生信息; c. 修改学生信息:可根据已有的学生信息,修改学生某些属性内容,以更新系统中的数据; d. 查看学生信息:可根据学生学号、姓名等信息,查看指定学生的所有信息及多种查询功能; e. 数据保存功能:可将当前系统中的学生信息,保存成文件的形式; f. 备份/恢复功能:可对学生信息文件进行备份并对备份文件进行恢复; g. 查询统计功能:可根据学院代号、专业代号等信息,进行不同的查询统计; h. 排序功能:可根据学生学号、姓名等信息,对学生信息进行排序; i. 帮助功能:可提供详细的使用帮助文档,以帮助用户更好地使用系统;二、程序实现及结构1. 主程序:此程序用于控制整个系统的运行,可实现系统菜单显示、功能调用及功能切换等功能,可根据用户的操作需求,调用其他子程序实现各项功能。

2. 子程序:此程序是系统的主要部分,可实现学生信息的增删改查等功能,并可支持学生信息的备份,恢复,排序及查询统计等功能,用于实现主程序调用的功能。

3. 管理模块:此模块可实现对用户的登录及注册功能,可检测用户登录及注册的账号是否正确,以及是否有权限使用系统;4. 数据库模块:此模块可实现对学生信息的存储及调用,便于对各类学生信息进行更方便的管理。

此模块还可以负责系统的备份及恢复功能的实现。

5. 图形界面模块:此模块负责实现系统的图形化界面,使用户可以更加友好地操作系统,可以根据用户的需求,随时更改系统界面设置。

三、程序设计学生信息管理系统的设计主要有四个部分:1. 主程序:主程序的设计要求负责控制整个系统的运行,并根据用户的操作调用子程序实现各个功能。

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

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

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.作业:布置适量的作业,评估学生的编程能力和对知识的理解程度。

用C语言编写学生信息管理系统

用C语言编写学生信息管理系统

用C语言编写学生信息管理系统Design Purpose:Design Content:1. Problem n:Design a student n management system that includes student n such as student ID, name, age, gender, date of birth, address, phone number, and email.2. nal Requirements:1. The system works in menu mode.2. Student n entry n (student n is saved in a file) - input.3. Student n browsing n - output.4. Student n query n - algorithm according to student ID query and name query.Detailed Design:1. Menu: void menu() {}2. Establish n: void readfile() {}3. Search: void seek() {}4. Modify n: void modify() {}5. Insert n: void insert() {}6. Delete n:void del(){}7. Browse n:void display(){}8. Save:void save(){Debugging and Testing:1. System nal menu.2. Select the menu "", enter the system help and ns n.3. Select menu "4" to add student n. (1) Input the number of people to be added. (2) Enter the student ID, name, age, gender, date of birth, address, phone number, and email in order. After input, the menu pops up.#include#include#include#define BUFLEN 100 #define LEN 15struct record{char code[LEN+1]; char name[LEN+1]; int age;char sex[3];char time[LEN+1];char add[30];char tel[LEN+1];char mail[30];void readfile();void seek();void modify();void modify() {int i, item, num;char sex1[3], s1[LEN+1], s2[LEN+1];printf("请输入要修改的学生的学号:\n"); scanf("%s", s1);for (i = 0; i < n; i++) {if (strcmp(stu[i].code, s1) == 0) {num = i;}}printf("------------------\n");printf("1.修改姓名\n");printf("2.修改年龄\n");printf("3.修改性别\n");printf("4.修改出生年月\n");printf("5.修改地址\n");printf("6.修改电话号码\n");printf("7.修改E-mail地址\n");printf("8.退出本菜单\n");printf("------------------\n");while (1) {printf("请选择子菜单编号:");scanf("%d", &item);switch (item) {case 1:printf("请输入新的姓名:\n"); scanf("%s", s2);strcpy(stu[num].name, s2);break;case 2:printf("请输入新的年龄:\n");scanf("%d", &stu[num].age);break;case 3:printf("请输入新的性别:\n");scanf("%s", sex1);strcpy(stu[num].sex, sex1);break;case 4:printf("请输入新的出生年月:\n"); scanf("%s", s2);strcpy(stu[num].time, s2);break;case 5:printf("请输入新的地址:\n");scanf("%s", s2);strcpy(stu[num].add, s2);break;case 6:printf("请输入新的电话号码:\n");scanf("%s", s2);strcpy(stu[num].phone, s2);break;case 7:printf("请输入新的E-mail地址:\n");scanf("%s", s2);strcpy(stu[num].email, s2);break;case 8:return;default:printf("输入有误,请重新选择子菜单编号\n"); break;}}void input(){int i;char s[10];printf("请输入学生人数:\n"); scanf("%d",&n);for(i=0;i<n;i++){printf("请输入学号:\n");scanf("%s",stu[i].code);printf("请输入姓名:\n");scanf("%s",stu[i].name);printf("请输入性别:\n");scanf("%s",stu[i].sex);printf("请输入年龄:\n");scanf("%d",&stu[i].age);printf("请输入出生日期:\n"); scanf("%s",stu[i].time);printf("请输入家庭住址:\n"); scanf("%s",stu[i].add);printf("请输入电话号码:\n");scanf("%s",stu[i].tel);printf("请输入E-mail地址:\n");scanf("%s",stu[i].mail);}void modify(){int num,choice;char s2[10];printf("请输入要修改信息的学生的学号:\n");scanf("%s",s2);for(num=0;num<n;num++){if(strcmp(stu[num].code,s2)==0){printf("请选择要修改的信息:\n");printf("1.学号 2.姓名 3.性别 4.年龄 5.出生日期\n");printf("6.家庭住址 7.电话号码 8.E-mail地址 9.退出\n");scanf("%d",&choice);switch(choice){case 1:printf("请输入新的学号:\n"); scanf("%s",s2);strcpy(stu[num].code,s2);break;case 2:printf("请输入新的姓名:\n"); scanf("%s",s2);strcpy(stu[num].name,s2);break;case 3:printf("请输入新的性别:\n"); scanf("%s",s2);strcpy(stu[num].sex,s2);break;case 4:printf("请输入新的年龄:\n");scanf("%d",&stu[num].age);break;case 5:printf("请输入新的出生日期:\n"); scanf("%s",s2);strcpy(stu[num].time,s2);break;case 6:printf("请输入新的家庭住址:\n"); scanf("%s",s2);strcpy(stu[num].add,s2);break;case 7:printf("请输入新的电话号码:\n"); scanf("%s",s2);strcpy(stu[num].tel,s2);break;case 8:printf("请输入新的E-mail地址:\n"); scanf("%s",s2);strcpy(stu[num].mail,s2);break;case 9:return;default:printf("请在1-8之间选择\n"); }}}void sort(){int i,j,*p,*q,s;char temp[10];for(i=0;i<n-1;i++){for(j=n-1;j>i;j--){if(strcmp(stu[j-1].code,stu[j].code)>0){strcpy(temp,stu[j-1].code);strcpy(stu[j-1].code,stu[j].code); strcpy(stu[j].code,temp);strcpy(temp,stu[j-1].name);strcpy(stu[j-1].name,stu[j].name); strcpy(stu[j].name,temp);strcpy(temp,stu[j-1].sex);strcpy(stu[j-1].sex,stu[j].sex);strcpy(stu[j].sex,temp);strcpy(temp,stu[j-1].time);strcpy(stu[j-1].time,stu[j].time); strcpy(stu[j].time,temp);strcpy(temp,stu[j-1].add);strcpy(stu[j-1].add,stu[j].add);strcpy(stu[j].add,temp);strcpy(temp,stu[j-1].tel);strcpy(stu[j-1].tel,stu[j].tel);strcpy(stu[j].tel,temp);strcpy(temp,stu[j-1].mail);strcpy(stu[j-1].mail,stu[j].mail);strcpy(stu[j].mail,temp);p=&stu[j-1].age;q=&stu[j].age;s=*q;*q=*p;*p=s;}}}}void insert() {int i = n, j, flag;printf("请输入待增加的学生数:\n");scanf("%d", &m);do {flag = 1;while (flag) {flag = 0;printf("请输入第%d个学生的学号:\n", i + 1);scanf("%s", stu[i].code);for (j = 0; j < i; j++) {if (strcmp(stu[i].code, stu[j].code) == 0) {printf("已有该学号,请检查后重新录入!\n");flag = 1;break;}}}printf("请输入第%d个学生的姓名:\n", i + 1);scanf("%s", stu[i].name);printf("请输入第%d个学生的年龄:\n", i + 1);scanf("%d", &stu[i].age);printf("请输入第%d个学生的性别:\n", i + 1);scanf("%s", stu[i].sex);printf("请输入第%d个学生的出生年月:(格式:年.月)\n", i + 1);scanf("%s", stu[i].time);printf("请输入第%d个学生的地址:\n", i + 1);scanf("%s", stu[i].add);printf("请输入第%d个学生的电话:\n", i + 1); scanf("%s", stu[i].tel);printf("请输入第%d个学生的E-mail:\n", i + 1); scanf("%s", stu[i].mail);if (flag == 0) {i++;}} while (i < n + m);n += m;printf("录入完毕!\n\n");sort();void del() {int i, j, flag = 0;char s1[LEN + 1];printf("请输入要删除学生的学号:\n");scanf("%s", s1);for (i = 0; i < n; i++) {if (strcmp(stu[i].code, s1) == 0) {flag = 1;for (j = i; j < n - 1; j++) {stu[j] = stu[j + 1];}n--;printf("删除成功!\n\n"); break;}}if (flag == 0) {printf("未找到该学号!\n\n"); }。

学生信息管理系统c语言代码

学生信息管理系统c语言代码

学生信息管理系统c语言代码以下是一个简单的学生信息管理系统的 C 语言代码示例,包含了学生信息的添加、查询、修改和删除功能。

由于代码超过了 400 字,我将提供一个简化的版本,你可以根据需要进行扩展和改进。

```c#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX_STUDENTS 100// 学生结构体struct Student {char id[10];char name[50];int age;};// 学生信息列表struct Student students[MAX_STUDENTS];// 学生数量int studentCount = 0;// 添加学生信息void addStudent() {if (studentCount >= MAX_STUDENTS) {printf("学生数量已满,无法添加更多学生。

\n");return;}printf("请输入学生 ID: ");scanf("%s", students[studentCount].id);printf("请输入学生姓名: ");scanf("%s", students[studentCount].name);printf("请输入学生年龄: ");scanf("%d", &students[studentCount].age);studentCount++;printf("学生信息添加成功。

\n");}// 查询学生信息void queryStudent() {if (studentCount == 0) {printf("没有学生信息可供查询。

设计一个C语言课程的学生信息管理系统

设计一个C语言课程的学生信息管理系统

1. 设计一个C语言课程的学生信息管理系统在计算机编程领域,学生信息管理系统是一种常见且重要的工具。

针对C语言课程,设计一个学生信息管理系统可以使教师和学生更有效地管理和跟踪课程进展。

本文将基于这一需求,介绍一个设计方案,并讨论其实现和应用。

1.1 系统需求分析设计学生信息管理系统的首要步骤是确定系统的需求。

在C语言课程中,我们通常需要管理学生的基本信息(例如尊称、学号、通信方式等),以及他们的课程成绩、作业提交情况等。

针对这些需求,我们可以将学生信息管理系统的功能分为以下几个方面:1.学生信息录入:教师或管理员可以将学生的基本信息录入系统,包括尊称、学号、通信方式等。

2.成绩管理:系统可以记录和管理学生的课程成绩,并提供查询和统计功能。

3.作业管理:学生可以通过系统提交作业,教师可以查看和评分。

4.考勤管理:记录学生的出勤情况,方便教师管理课堂纪律。

1.2 系统设计与实现1.2.1 数据结构设计为了有效地管理学生信息,我们需要设计合适的数据结构。

在C语言中,可以使用结构体来表示学生的信息,其中包括尊称、学号、通信方式等字段。

为了便于管理多个学生,可以使用链表或数组来组织学生信息。

typedef struct Student {char name[50];int studentId;char contact[50];float grade;struct Student* next;} Student;在上述代码中,我们定义了一个Student结构体,包含了学生的尊称、学号、通信方式、课程成绩以及一个指向下一个学生的指针。

1.2.2 功能实现为了实现学生信息管理系统的各个功能,我们需要编写相应的函数。

下面是几个基本功能的示例代码:1.2.2.1 学生信息录入Student* createStudent(char name[50], int studentId, char contact[50]) { // 创建一个新的学生结构体Student* student = (Student*)malloc(sizeof(Student));// 设置学生的基本信息strcpy(student->name, name);student->studentId = studentId;strcpy(student->contact, contact);student->grade = 0.0;student->next = NULL;return student;}void addStudent(Student** head, Student* newStudent) {if (*head == NULL) {// 如果链表为空,则直接将新学生作为头节点*head = newStudent;} else {// 找到链表的尾节点,并将新学生添加到末尾Student* current = *head;while (current->next != NULL) {current = current->next;}current->next = newStudent;}}void inputStudentInformation(Student** head) {char name[50], contact[50];int studentId;printf("请输入学生尊称:");scanf("%s", name);printf("请输入学生学号:");scanf("%d", &studentId);printf("请输入学生通信方式:");scanf("%s", contact);// 创建新的学生信息Student* newStudent = createStudent(name, studentId, contact);// 将学生信息添加到链表addStudent(head, newStudent);printf("学生信息录入成功!\n");}在上述代码中,我们首先定义了一个createStudent函数,用于创建一个新的学生结构体并初始化其基本信息。

C语言学生信息管理系统(完整版)

C语言学生信息管理系统(完整版)

#define PRINT0 printf("name:%s\nsex:%s\nage:%d\nID_card:%d\naddress:%s\n",st[i].name,st[i].sex,st[i].age,st[i] .ID_card,st[i].addr)#define PRINT1 printf("prefession:%s\nstudent_number:%d\n*****score*****\nwuli:%d\n",st[i].prefession,st[i] .student_number,st[i].score.wuli)#define PRINT2 printf("gaoshu:%d\nyingyu:%d\ntiyu:%d\naverage: %d\n",st[i].score.gaoshu,st[i].score.yingyu,st[i ].score.tiyu,st[i].score.aver)#define print1 printf("________________________________")#define N 2#include "string.h"#include "stdio.h"int sum=0;struct score{int wuli;int gaoshu;int yingyu;int tiyu;int aver;};struct message{ char name[10];int age;char sex[5];int ID_card;char addr[30];char prefession[30];int student_number;struct score score;}st[100];/*************write message*************/write_message(){ int flag;char chioce;do{system("cls");flag=2; sum++;printf("_______________________________");printf("please input student's message:\n");printf("\n");print1;printf("%dth student message:",sum);print1;printf("\nname:");scanf("%s",st[sum].name);printf("\nsex:");scanf("%s",st[sum].sex);printf("\nage:");scanf("%d",&st[sum].age);printf("\nID_card:");scanf("%d",&st[sum].ID_card);printf("\naddress:");scanf("%s",st[sum].addr);printf("\nprefession:");scanf("%s",st[sum].prefession);printf("\nschool number:");scanf("%d",&st[sum].student_number);printf("\n*****score******\n");printf("wuli:");scanf("%d",&st[sum].score.wuli);printf("\ngaoshu:");scanf("%d",&st[sum].score.gaoshu);printf("\nyingyu:");scanf("%d",&st[sum].score.yingyu);printf("\ntiyu:");scanf("%d",&st[sum].score.tiyu);printf("\naverage:");scanf("%d",&st[sum].score.aver);do{printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");getchar();scanf("%c",&chioce);printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}else if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);save_message();}/*************save message****************/save_message(){ FILE *fp;int i;if((fp=fopen("student.txt","wb"))==NULL){printf("read error \n");printf("press any key back to menu\n");getch();exit(1);}for(i=0;i<sum;i++)if(fwrite(&st[i],sizeof(struct message),1,fp)!=1){printf("write error\n");fclose(fp);}fclose(fp);printf("\n********___OK!___**********\n___press any key back___");sum=i;bioskey(0);}/***************add message*****************/add_message(){int i,j,flag; char chioce;i=0;j=sum-1;flag=0;do{ system("cls");i++; j++;print1;printf("add %dth student's meaasge\n",i);print1;printf("\nname:");scanf("%s",st[j].name);printf("\nsex:");scanf("%s",st[j].sex);printf("\nage:");scanf("%d",&st[j].age);printf("\nID_card:");scanf("%d",&st[j].ID_card);printf("\naddress:");scanf("%s",st[j].addr);printf("\nprefession:");scanf("%s",st[j].prefession);printf("\nstudent_number:");scanf("%d",&st[j].student_number);printf("\n*****score******\n");printf("wuli:");scanf("%d",&st[j].score.wuli);printf("\ngaoshu:");scanf("%d",&st[j].score.gaoshu);printf("\nyingyu:");scanf("%d",&st[j].score.yingyu);printf("\ntiyu:");scanf("%d",&st[j].score.tiyu);printf("\naverage:");scanf("%d",&st[j].score.aver);printf("\n\nweather add %dth student's message: \n",i+1);do{printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");getchar();scanf("%c",&chioce);printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}else if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;}while(1);}while(flag==1);sum=j+1;save_message();}/**********inqiure message******/inqiure_message(){int chioce;do{system("cls");printf("**********choose 0-3**********\n\n\n");printf(" 1:name inquire\n\n\n");printf(" 2:IDcard inqiure\n\n\n");printf(" 3:student_number\n \n\n");printf(" 0:back menu\n\n\n");scanf("%d",&chioce);switch(chioce){case 1: name_inqiure();break;case 2: ID_card_inqiure();break;case 3: grade_inqiure();break;case 0:break;}}while(chioce!=0);}/**********name inqiure*********/name_inqiure(){char NAME[30];int i; int flag,k;char chioce;do{ system("cls");k=0;printf("please input the message you inqiure");printf("\nname:");scanf("%s",NAME);getchar();printf("\n");for(i=0;i<sum;i++){if(strcmp(st[i].name,NAME)==0){PRINT0;PRINT1;PRINT2;k=1;}}if(k==0) printf("without message you inqiure\n");do{ printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");scanf("%c",&chioce); getchar();printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);printf("press any key return to menu");bioskey(0);}/**********IDcard inqiure*********/ID_card_inqiure(){int card;int i; int flag,k;char chioce;do{ clrscr(); k=0;printf("please input the message you inqiure");printf("\nIDcard:");scanf("%d",&card);getchar();printf("\n");for(i=0;i<sum;i++){if(st[i].ID_card==card){PRINT0;PRINT1;PRINT2;k=1;}}if(k==0) printf("without message you inqiure\n");do{ printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");scanf("%c",&chioce); getchar();printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);printf("press any key return to menu");bioskey(0);}/*********grade inqiure***********/grade_inqiure(){int GRADE;int i; int flag,k;char chioce;do{ system("cls");k=0;printf("please input the message you inqiure");printf("\nstudent_number:");scanf("%d",&GRADE);getchar();printf("\n");for(i=0;i<sum;i++){if(st[i].student_number==GRADE){PRINT0;PRINT1;PRINT2;k=1;}}if(k==0) printf("without message you inqiure\n");do{ printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");scanf("%c",&chioce); getchar();printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);printf("press any key return to menu");bioskey(0);}/*********change message**********/change_message(){char pre[30],chioce;int i,gra,flag,num,s;s=0;do{system("cls");printf("please input message you want to change\n ");printf("student_number:");scanf("%d",&gra); getchar();for(i=0;i<sum;i++){if(st[i].student_number==gra){PRINT0;PRINT1;PRINT2;printf("\n********input message you want to change********\n");printf("0:name***1:sex***2:age***3:ID_card***4:address***\n5:prefession***6:wuli***7:stud ent_number***8\n:gaoshu***9:yingyu***10:tiyu***11:average***________\n");printf("choose 0-11\n");scanf("%d",&num); getchar();switch(num){case 0: printf("input the name changed\n");scanf("%s",st[i].name); getchar(); break;case 1: printf("input the sex changed\n");scanf("%s",st[i].sex); getchar(); break;case 2: printf("input the age changed\n");scanf("%d",&st[i].age); getchar(); break;case 3: printf("input the ID_card changed\n");scanf("%d",&st[i].ID_card); getchar(); break;case 4: printf("input the address changed\n");scanf("%s",st[i].addr); getchar(); break;case 5: printf("input the prefession changed\n");scanf("%s",st[i].prefession); getchar(); break;case 6: printf("input the wuli_score changed\n");scanf("%d",&st[i].score.wuli); getchar(); break;case7: printf("input the student_number changed\n");scanf("%d",&st[i].student_number); getchar(); break;case 8: printf("input the gaoshu_score changed\n");scanf("%d",&st[i].score.gaoshu); getchar(); break;case 9: printf("input the yingyu_score changed\n");scanf("%d",&st[i].score.yingyu); getchar(); break;case 10: printf("input the tiyu_score changed\n");scanf("%d",&st[i].score.tiyu); getchar(); break;case 11: printf("input the average_score changed\n");scanf("%d",&st[i].score.aver); getchar(); break;default: printf("input error\n"); break;}printf("\n*********the changed message*********\n\n");PRINT0;PRINT1;PRINT2;s=1;}}if(s!=1) printf("without message you want to change\n");do{ printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");scanf("%c",&chioce); getchar();printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);save_message();}/*********delete message**********/delete_message(){ int GRADE;int i,j,flag1,flag;char chioce1,chioce2;flag1=3;flag=3;do{ system("cls");printf("please input student's student_number you want to delete\n");printf("student_number:");scanf("%d",&GRADE); getchar();for(i=0;i<sum;i++)if(st[i].student_number==GRADE){do{PRINT0;PRINT1;PRINT2;printf("\n******************************\n_________________ _________________\n");printf("press y/Y deleted:\npress n/N cancel:\n");scanf("%c",&chioce1);getchar();system("cls");if(chioce1=='y'||chioce1=='Y') flag1=1;else if(chioce1=='n'||chioce1=='N') return;else {printf("***input error***\n___press any ker return___\n"); bioskey(0);}}while(flag1!=1);for(j=i;j<sum;j++){ st[j]=st[j+1];flag=2;printf("message was deleted\n");sum-=1; }}if(flag!=2) printf("without message you want to delete\n");do{printf("press y/Y continue:\npress n/N stop:\n");scanf("%c",&chioce2);printf("****************************\n");if(chioce2=='y'||chioce2=='Y') {flag=1; break;}else if(chioce2=='n'||chioce2=='N') {flag=0; break;}else {system("cls");printf("input error\n");}print1;printf("\n");}while(1);}while(flag==1);save_message();}/************insert message*************/insert_message(){ int chioce,flag,i; flag=2;do{system("cls");printf("please input the number of people you insert\n");scanf("%d",&chioce);if(chioce>=sum){printf("xin xi pai zai zui hou ");chioce=sum;}for(i=sum;i>chioce;i--) st[i]=st[i-1];printf("\nplease input message you insert");printf("\nname:");scanf("%s",st[i].name);printf("\nsex:");scanf("%s",st[i].sex);printf("\nage:");scanf("%d",&st[i].age);printf("\nID_card:");scanf("%d",&st[i].ID_card);printf("\naddress:");scanf("%s",st[i].addr);printf("\nprefession:");scanf("%s",st[i].prefession);printf("\ngrade:");scanf("%d",&st[i].student_number);printf("\n*****score******\n");printf("wuli:");scanf("%d",&st[i].score.wuli);printf("\ngaoshu:");scanf("%d",&st[i].score.gaoshu);printf("\nyingyu:");scanf("%d",&st[i].score.yingyu);printf("\ntiyu:");scanf("%d",&st[i].score.tiyu);printf("\naverage:");scanf("%d",&st[i].score.aver);sum+=1;do{printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");getchar();scanf("%c",&chioce);printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}else if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);save_message();}/*********school_number_order***********/grade_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].student_number>st[j].student_number){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("grade order from min to max\n");for(i=0;i<sum;i++){ print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);bioskey(0);}/***********wuli score order***************/wuli_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].score.wuli>st[j].score.wuli){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("wuli score order from min to max\n");for(i=0;i<sum;i++){print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);print1;bioskey(0);}/***********gaoshu score order***************/gaoshu_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].score.gaoshu>st[j].score.gaoshu){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("gaoshu score order from min to max\n");for(i=0;i<sum;i++){print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);print1;bioskey(0);}/***********yingyu score order***************/yingyu_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].score.yingyu>st[j].score.yingyu){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("yingyu score order from min to max\n");for(i=0;i<sum;i++){print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);print1;bioskey(0);}/***********tiyu score order***************/tiyu_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].score.tiyu>st[j].score.tiyu){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("yitu order from min to max\n");for(i=0;i<sum;i++){print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);print1;bioskey(0);}/***********average score order***************/average_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].score.wuli>st[j].score.wuli){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("average score order from min to max\n");for(i=0;i<sum;i++){print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);print1;bioskey(0);}/********order message****************/order_message(){int chioce;do{system("cls");printf("**********choose 0-6**********\n\n");printf(" 1:grade order\n\n");printf(" 2:wuli score order\n\n");printf(" 3:gaoshu score order\n \n");printf(" 4:ying yu score order\n\n");printf(" 5:tiyu score order\n\n");printf(" 6:average score order\n\n");printf(" 0:back menu\n\n");scanf("%d",&chioce);switch(chioce){case 1: grade_order();break;case 2: wuli_order();break;case 3: gaoshu_order();break;case 4: yingyu_order();break;case 5: tiyu_order();break;case 6: average_order();break;case 0:break;}}while(chioce!=0);}/**********answer secretory***********/mima_message(){int flag;char answer[10];char secret[10]="abcd";flag=2;do{system("cls");printf("\n______________________mi ma wei 'abcd'________________\n\n");printf("______________________qing shu ru mi ma:");scanf("%s",answer);getchar();if(strcmp(secret,answer)==0){flag=1;printf("\n\n =====throngh=====\n\n\n");printf("____________________press any key into next:\n");bioskey(0);}else{flag=0;printf("______________________input error:\n");printf("______________________press any key to return:\n");bioskey(0);}}while(flag!=1);}/*********read message****************/read_message(){int i;system("cls");if(sum<=0){ printf("without message\n");getch();return;}for(i=0;i<sum;i++){system("cls");print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;printf("\n********press any key -show the next one********\n ");getch();}printf("________________totle num :%d________________\n",sum); printf("_____________press any key return______________\n"); bioskey(0);}/*************************************/main(){int chioce,flag;mima_message();do{system("cls");chioce=9;printf("**********************************************\n");printf("****welcome to system of managing students****\n");printf("**********************************************\n\n");printf("-------------------choose 0-8-----------------\n\n");printf(" 1:write message\n\n");printf(" 2:add message\n\n");printf(" 3:inqiure name\n\n");printf(" 4:change message\n\n");printf(" 5:insert message\n\n");printf(" 6:order message\n\n");printf(" 7:delete message\n\n");printf(" 8:read messaeg\n\n");printf(" 0:***exit***\n\n");scanf("%d",&chioce);getchar();switch(chioce){case 1: write_message();break;case 2: add_message();break;case 3: inqiure_message();break;case 4: change_message();break;case 5: insert_message();break;case 6: order_message();break;case 7: delete_message();break;case 8: read_message();break;case 0: printf("___sure press y/Y:___\n\n___no sure press n/N:___");scanf("%c",&chioce);getchar();if(chioce=='y'||chioce=='Y') flag=0;else flag=1;break;default : printf("\n ___input error___\n\n");printf("***press any key to go on***\n");getch();break;}}while(flag!=0);save_message();system("cls");printf("\n\n___message was saved___\n\n\n*****file name is student.txt*****\n");bioskey(0);}。

c语言课程设计学生信息管理系统.

c语言课程设计学生信息管理系统.

c语言课程设计学生信息管理系统.一、教学目标本课程的教学目标是使学生掌握C语言编程的基本方法,能够运用C语言设计学生信息管理系统。

通过本课程的学习,学生将能够理解C语言的基本语法、数据类型、运算符、控制结构等知识,掌握函数、数组、指针等高级概念,并能够运用这些知识设计、编写和调试C语言程序。

此外,学生还将通过课程学习,培养编程思维、解决问题的能力和团队合作精神。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数、数组、指针等知识。

在学习过程中,我们将以教材为基础,结合实际案例,引导学生掌握C语言编程的基本方法。

具体内容包括:1.C语言的基本语法和规则;2.数据类型、变量和常量;3.运算符和表达式;4.控制结构:条件语句、循环语句;5.函数的定义和调用;6.数组和指针的应用;7.学生信息管理系统的需求分析和设计。

三、教学方法为了提高学生的学习兴趣和主动性,我们将采用多种教学方法进行教学。

具体包括:1.讲授法:讲解C语言的基本语法、数据类型、运算符、控制结构等知识,为学生提供清晰的学习思路;2.案例分析法:通过分析实际案例,让学生了解和掌握C语言编程的方法和技巧;3.实验法:安排实验室实践环节,让学生动手编写C语言程序,提高编程能力;4.讨论法:学生进行分组讨论,培养团队合作精神和解决问题的能力。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用权威、实用的C语言教材,为学生提供系统、全面的学习资料;2.参考书:提供相关的C语言编程参考书籍,丰富学生的知识储备;3.多媒体资料:制作课件、教学视频等多媒体资料,提高课堂教学效果;4.实验设备:保障实验室硬件设施齐全,为学生提供良好的编程实践环境。

五、教学评估本课程的教学评估将采取多元化、全过程的方式进行,以全面、客观、公正地评估学生的学习成果。

评估方式包括:1.平时表现:通过课堂参与、提问、回答问题等方式,评估学生的学习态度和课堂表现;2.作业:布置适量的作业,评估学生的知识掌握和编程能力;3.实验报告:评估学生在实验室实践环节的表现和实验报告的质量;4.考试成绩:通过期末考试,评估学生的综合编程能力和知识掌握情况。

学生信息管理系统C语言编程

学生信息管理系统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语言程序设计;希望通过项目实践,熟悉巩固所学知识,以使自己熟练掌握高级语言程序设计,为日后学习计算机科学技术的专业知识能有进一步深入了解,奠定基础;二、设计内容1、问题描述:设计一个学生信息管理系统设计;学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等;2、功能要求:1、系统以菜单方式工作2、学生信息录入功能学生信息用文件保存--输入3、学生信息浏览功能--输出4、学生信息查询功能--算法按学号查询按姓名查询5、学生信息的删除与修改可选项三、详细设计1、菜单:void menu{}2、建立信息:void readfile{}3、查找:void seek{}4、修改信息:void modify{}5、插入函数:void insert{}6、删除信息:void del{}7、浏览信息:void display{}8、保存:void save{}四、调试与测试1、系统功能菜单2、选择菜单“0”,进入系统帮助及说明功能3、选择菜单“4”,添加学生信息1输入增加人数2依次输入学生学号,姓名,年龄,性别,出生年月,地址,电话,E-mail 3录入完毕,弹出菜单4、选择菜单“3”,修改学生信息:输入被修改者学号1选择子菜单“1",修改姓名2选择子菜单“2”,修改年龄3选择子菜单“3”,修改性别4选择子菜单“4”,修改出生年月5选择子菜单“5”,修改地址6选择子菜单“6”,修改电话7选择子菜单“7”,修改E-mail5、选择菜单“2”,查询学生信息1选择子菜单“1”,按学号查询2选择子菜单“2”,按姓名查询3选择子菜单“3”,退出子菜单,弹出主菜单6、选择菜单“6”,显示当前信息7、选择菜单“5”,按学号删除信息1输入要删除的学生学号2再次输入“6”,确认是否删除该学生信息五、源程序清单源程序代码如下include<>include<>include<>define BUFLEN 100define LEN 15define N 100struct record{char codeLEN+1;char nameLEN+1;int age;char sex3;char timeLEN+1;char add30;char telLEN+1;char mail30;}stuN;int k=1,n,m;void readfile;void seek;void modify;void insert;void del;void display;void save;void menu;int main{whilekmenu;system"pause";return 0;}void help{printf"\n0.欢迎使用系统帮助\n";printf"\n1.进入系统后,先刷新学生信息,再查询;\n";printf"\n2.按照菜单提示键入数字代号;\n";printf"\n3.增加学生信息后,切记保存按;\n";printf"\n4.谢谢您的使用\n";}void readfile{char p="";FILE fp;int i=0;if fp=fopen"","r"==NULL{printf"Open file %s error Strike any key to exit",p; system"pause";exit0;}whilefscanffp,"%s %s%d%s %s %s %s %s",stui.code,,&stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail==8{i++;i=i;}fclosefp;n=i;printf"录入完毕\n";}void seek{int i,item,flag;char s121;printf"------------------\n";printf"-----1.按学号查询-----\n";printf"-----2.按姓名查询-----\n";printf"-----3.退出本菜单-----\n";printf"------------------\n";while1{printf"请选择子菜单编号:";scanf"%d",&item;flag=0;switchitem{case 1:printf"请输入要查询的学生的学号:\n";scanf"%s",s1;fori=0;i<n;i++ifstrcmpstui.code,s1==0{flag=1;printf"学生学号学生姓名年龄性别出生年月地址电话E-mail\n";printf"--------------------------------------------------------------------\n";printf"%6s %7s %6d %5s %9s %8s %10s %14s\n",stui.code,,stui .age,stui.sex,stui.time,stui.add,stui.tel,stui.mail;}ifflag==0printf"该学号不存在\n"; break;case 2:printf"请输入要查询的学生的姓名:\n";scanf"%s",s1;fori=0;i<n;i++,s1==0{flag=1;printf"学生学号学生姓名年龄性别出生年月地址电话E-mail\n";printf"--------------------------------------------------------------------\n";printf"%6s %7s %6d %5s %9s %8s %10s %14s\n",stui.code,,stui .age,stui.sex,stui.time,stui.add,stui.tel,stui.mail;}ifflag==0printf"该姓名不存在\n"; break;case 3:return;default:printf"请在-3之间选择\n";}}}void modify{int i,item,num;char sex13,s1LEN+1,s2LEN+1;printf"请输入要要修改的学生的学号:\n";scanf"%s",s1;fori=0;i<n;i++ifstrcmpstui.code,s1==0num=i;printf"------------------\n";printf"1.修改姓名\n";printf"2.修改年龄\n";printf"3.修改性别\n";printf"4.修改出生年月\n";printf"5.修改地址\n";printf"6.修改电话号码\n";printf"7.修改E-mail地址\n";printf"8.退出本菜单\n";printf"------------------\n";while1{printf"请选择子菜单编号:";scanf"%d",&item;switchitem{case 1:printf"请输入新的姓名:\n";scanf"%s",s2;,s2; break;case 2:printf"请输入新的年龄:\n"; scanf"%d",&stunum.age;break;case 3:printf"请输入新的性别:\n"; scanf"%s",sex1;strcpystunum.sex,sex1; break; case 4:printf"请输入新的出生年月:\n"; scanf"%s",s2;strcpystunum.time,s2; break;case 5:printf"请输入新的地址:\n"; scanf"%s",s2;strcpystunum.add,s2; break;case 6:printf"请输入新的电话号码:\n"; scanf"%s",s2;strcpystunum.tel,s2; break;case 7:printf"请输入新的E-mail地址:\n"; scanf"%s",s2;strcpystunum.mail,s2; break;case 8:return;default:printf"请在-8之间选择\n"; }}}void sort{int i,j,p,q,s;char temp10;fori=0;i<n-1;i++{forj=n-1;j>i;j--ifstrcmpstuj-1.code,stuj.code>0{strcpytemp,stuj-1.code;strcpystuj-1.code,stuj.code; strcpystuj.code,temp; strcpytemp,;,; ,temp; strcpytemp,stuj-1.sex;strcpystuj-1.sex,stuj.sex; strcpystuj.sex,temp;strcpytemp,stuj-1.time;strcpystuj-1.time,stuj.time;strcpystuj.time,temp;strcpytemp,stuj-1.add;strcpystuj-1.add,stuj.add;strcpystuj.add,temp;strcpytemp,stuj-1.tel;strcpystuj-1.tel,stuj.tel;strcpystuj.tel,temp;strcpytemp,stuj-1.mail;strcpystuj-1.mail,stuj.mail;strcpystuj.mail,temp;p=&stuj-1.age;q=&stuj.age;s=q;q=p;p=s;}}}void insert{int i=n,j,flag;printf"请输入待增加的学生数:\n";scanf"%d",&m;do{flag=1;whileflag{flag=0;printf"请输入第%d 个学生的学号:\n",i+1;scanf"%s",stui.code;forj=0;j<i;j++ifstrcmpstui.code,stuj.code==0{printf"已有该学号,请检查后重新录入\n";flag=1;break;}}printf"请输入第%d 个学生的姓名:\n",i+1;scanf"%s",;printf"请输入第%d 个学生的年龄:\n",i+1;scanf"%d",&stui.age;printf"请输入第%d 个学生的性别:\n",i+1;scanf"%s",stui.sex;printf"请输入第%d 个学生的出生年月:格式:年.月\n",i+1; scanf"%s",stui.time;printf"请输入第%d 个学生的地址:\n",i+1;scanf"%s",stui.add;printf"请输入第%d 个学生的电话:\n",i+1;scanf"%s",stui.tel;printf"请输入第%d 个学生的E-mail:\n",i+1;scanf"%s",stui.mail;ifflag==0{i=i;i++;}}whilei<n+m;n+=m;printf"录入完毕\n\n";sort;}void del{int i,j,flag=0;char s1LEN+1;printf"请输入要删除学生的学号:\n";scanf"%s",s1;fori=0;i<n;i++ifstrcmpstui.code,s1==0{flag=1;forj=i;j<n-1;j++stuj=stuj+1;}ifflag==0printf"该学号不存在\n";ifflag==1{printf"删除成功,显示结果请选择菜单\n";n--;}}void display{int i;printf"所有学生的信息为:\n";printf"学生学号学生姓名年龄性别出生年月地址电话E-mail\n";printf"--------------------------------------------------------------------\n";fori=0;i<n;i++{printf"%6s %7s %5d %5s %9s %8s %10s %14s\n",stui.code,,stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail;}}void save{int i;FILE fp;fp=fopen"","w";fori=0;i<n;i++{fprintffp,"%s %s %d %s %s %s %s %s\n",stui.code,,stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail;}fclosefp;}void menu{int num;printf" \n\n 学生信息管理系统 \n\n";printf"系统功能菜单 \n";printf"友情提示:查询前请先刷新系统\n";printf" ---------------------- ---------------------- \n";printf" \n";printf" 0.系统帮助及说明 1.刷新学生信息 \n";printf" \n";printf" 2.查询学生信息 3.修改学生信息 \n";printf" \n";printf" 4.增加学生信息 5.按学号删除信息 \n";printf" \n";printf" 6.显示当前信息 7.保存当前学生信息 \n";printf" \n";printf" 8.退出系统 \n";printf" \n";printf" ---------------------- ---------------------- \n";printf"请选择菜单编号:";scanf"%d",&num;switchnum{case 0:help;break;case 1:readfile;break;case 2:seek;break;case 3:modify;break;case 4:insert;break;case 5:del;break;case 6:display;break;case 7:save;break;case 8:k=0;break;default:printf"请在-8之间选择\n"; }}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

c语言课设学生信息管理系统Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】沈阳航空航天大学课程设计报告课程设计名称:C语言课程设计课程设计题目:学生信息管理系统的设计与实现院(系):计算机学院专业:计算机科学与技术班级:学号:姓名:指导教师:完成日期:目录第1章概要设计题目的内容与要求课程设计的内容是设计一个简单的单词替换程序,可以替换文本文件中指定的单词。

要求:(1)输入信息要包括学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。

(2)通过菜单进行信息的录入,查询,修改,删除等等功能。

(3)查询模块要分别用两种方式查询,学号查询,姓名查询。

(4)文件保存到文本中。

(5)采用VC环境进行调试运行。

总体结构本程序主要分为8个模块(功能模块图见图):1.主模块,主要显示系统菜单,并且读取所选功能选项。

2.信息录入模块,对学生信息进行录入。

3.信息插入模块,从所有数据中的任一位置插入学生的信息。

4.信息查询模块,对学生的信息进行查询,分两种方式:学号查询,姓名查询。

5.信息浏览模块,将所有学生的信息逐个显示出。

6.信息删除模块,将指定信息删除。

7.信息修改模块,修改指定信息。

8.学生人数统计模块,统计当前所存储的数据条数。

图功能模块图第2章详细设计主模块控制整个程序的运行,控制菜单操作,通过主函数模块分别调用各个模块,实现各项功能,主要应用循环和switch语句,流程如图所示。

图主模块流程图注释:本流程图主要实现了一个switch语句,合法数据域为0~7,输入0则退出,在流程图上没有0是因为数值合法且数值不为1~7的时候即为0。

学生信息录入模块(input函数)输入要输入的学生信息,可以显示已保存的学生信息内容,并将内容输出,若内容为空,将提示是否录入数据,直到选择不继续,就回到主菜单,主要流程如图所示。

注释:1.学号为字符串2.直到输入不继续才会结束。

3.结束为回主菜单,而不是结束程序图显示模块流程图信息插入模块插入新信息,主要将信息插入任意处,其余信息依次下移一条。

不能覆盖某一条信息,而是顺序下移。

主要流程如图所示。

图信息插入模块流程图注释:1.检测重复时会将所输入的学号跳过,对之前存在数据进行检测。

2.若没有数据,则会显示无数据并直接退回到主菜单。

信息查询模块本模块分为两种查询方式,实际上操作方式是相同的,姓名和学号均为字符串形式,主要流程如图所示。

图信息查询模块流程图注释:1.学号与学生姓名均为字符串2.程序中会显示选项,流程图中没有表示。

信息浏览模块可以将所有已保存信息信息显示到屏幕上,计划是将其作为一个单独函数,然后突然发现该模块可以和信息插入模块联系到一起,并且可以更好地实现两个模块的功能,如果没有数据,则调用信息录入模块录入新信息,若有数据则直接显示出来,主要是将文件中的内容读取到屏幕上。

并且在信息录入时可以显示出已有信息。

信息删除模块可以删除指定学生的信息,通过学号查找来查找删除目标,在打开文件后会判定是否有数据,可以在删除时确定是否删除。

主要流程如图所示。

图信息删除模块流程图注释:1.删除后被删除项之后的数据依次向上移动2.数据总个数会减一信息修改模块可以修改指定学生的信息,通过学号查找来查找修改目标,在打开文件后会判定是否有数据,可以在修改时确定是否修改。

主要流程如图所示。

图信息修改模块统计图注释:1.修改时其余数据不会变化学生人数统计模块统计数据条数,即学生人数,主要就是应用每条数据所占总长度是固定的,检测共有多少条。

第3章调试分析1.对主函数进行调试图为菜单2.第一次数据录入3.第二次录入出现问题图中上部表头不能对齐,通过一次次对show函数中显示内容进行修改,最终正确对齐。

已改正4.对信息浏览模块的检测出现问题,出现多余信息。

改正后测试时屏幕一闪而过,但已观测到问题已改正。

5.删除模块出现问题删除前:删除:删除后:错误的删除了内容。

经仔细查看代码发现将学号的形式错误的定义成整形,已改正,图为改正结果,删除功能完全正常,如下图。

第4章使用说明与执行结果运行操作及结果:主界面,输入数字进行操作。

输入1 并选择录入新信息,即输入y。

输入学生的个人信息即可。

输入完成,可以选择继续输入或退出。

选择 n 即回到主菜单界面。

输入2 进入信息插入系统,输入插入位置。

输入插入的信息插入成功,按任意键返回主菜单。

输入3 进入查询系统可以分别进行学号查找和姓名查找学号查找姓名查找输入4 进入学生信息浏览系统,将显示所有已录入学生信息按任意键返回主菜单输入5进入学生信息删除界面通过学号查找方式进行删除删除后可以输入4 确认是否删除输入 6 可以进入信息修改界面查找方式为学号查找修改完成。

输入7 会统计保存的数据有多少条。

输入0 退出系统参考文献[1] Ivor Horton . C语言入门经典(第五版) . 清华大学出版社,2013[2] 刘艳伟. C函数全能速查宝典 . 人民邮电出版社,2012[3] 戴艳 . 零基础学算法(第三版) . 机械工业出版社,2014[4] 郭旭文 . C语言程序设计与项目实践 . 电子工业出版社,2011[5] 王敬华 . C语言程序设计教程(第二版) . 清华大学出版社,2009附录(程序清单)程序源代码:#include<>#include<>#include<>#define LEN sizeof(struct student)#define FORMAT "%-15s%-10s%-6d%-7s%-13s%-16s%-12s\n"#define ALLstu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].birth,stu[i] .address,stu[i].telstruct student出 |\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");printf("\t| 7.学生人数统计|\n");printf("\t|----------------------------------------------|\n");printf("\t请输入数字0~7:");scanf("%d",&num);while(num>7||num<0)um);um,stu[m].num)==0){printf("该学号已存在,请按任意键继续!\n");getch();fclose(fp);return;}printf("姓名:");scanf("%s",stu[m].name);ge);ex);irth);ddress);el);ame); m++;}printf("是否继续(是:y/否:n):");um)==0)break;for(j=m-1;j>i;j--)stu[j+1]=stu[j];um);for(k=0;k<m;k++){if(k==(i+1))continue;if(strcmp(stu[k].num,stu[i+1].num)==0){printf("该学生已存在\n");getch();fclose(fp);return;}}printf("姓名:");scanf("%s",stu[i+1].name);ge);ex);irth);ddress);el);号查找\n");printf("\t2.姓名查找\n");printf("\t请选择查找方式:");scanf("%d",&sear);if(sear==1){printf("请输入学号\n");scanf("%s",&snum);for(i=0;i<m;i++)if(strcmp(snum,stu[i].num)==0)ame)==0)um)==0)break;if(i==m){printf("无此学生信息\n");return;}printf("发现该学生信息,是否删除(是:y/否:n):");scanf("%s",ch);if(strcmp(ch,"y")==0)um)==0)ame);ge);ex);irth);ddress);el);//输入电话}elsereturn;if((fp=fopen("","wb"))==NULL){printf("无法打开\n");return;}for(j=0;j<m;j++)//将新修改的信息写入指定的磁盘文件中 if(fwrite(&stu[j] ,LEN,1,fp)!=1){printf("无法保存");getch();}printf("修改成功");fclose(fp);}void all()//学生人数统计模块{FILE *fp;int m=0;if((fp=fopen("","r+"))==NULL){printf("无法打开\n");return;}while(!feof(fp))if(fread(&stu[m],LEN,1,fp)==1) m++;if(m==0){printf("没有数据\n");fclose(fp);return;}elseprintf("共有%d条数据",m); fclose(fp);}。

相关文档
最新文档