源代码传送门:

(1条消息) 课程设计,班级档案管理系统-学生信息管理,源代码-C++文档类资源-CSDN文库

课程设计报告

1.课程设计目的

C语言课程设计是计算机科学与技术专业重要的实践性教学环节之一,本次设计结合实际应用的要求,使课程设计既覆盖C语言程序设计的知识点,又接近工程实际需要。本次设计的目的是通过课程设计的综合训练,培养学生实际分析问题、解决问题的能力,以及编程和动手能力,最终目标是通过课程设计这种形式,帮助学生系统掌握C语言程序设计这门课程的主要内容,养成良好的编程习惯,更好的完成教学任务。

2.课程设计任务与要求:

要求:

本次课程设计利用《C语言程序设计》课程中所学到的编程知识和编程技巧,完成具有一定难度和工作量的程序设计题目,帮助学生掌握编程、调试的基本技能,独立完成所布置的任务。

要求:

1、对系统进行功能需求分析

2、设计合理的数据结构和系统框架

3、编程简练,程序功能齐全,能正确运行

4、说明书、流程图要清楚

5、课题完成后必须按要求提交课程设计报告

任务:

班级档案管理系统:对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除、保存等操作的管理。

实现功能:

(1)本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:学号、姓名、性别、年龄、备注。

(2)本系统显示这样的菜单:

请选择系统功能项:

  1. 学生基本信息录入

  1. 学生基本信息显示

  1. 学生基本信息保存

  1. 学生基本信息删除

  1. 学生基本信息修改(要求先输入密码)

  1. 学生基本信息查询:a)按学号查询;b)按姓名查询;c)按性别查询;d)按年龄查询

  1. 退出系统

(3)执行一个具体的功能之后,程序将重新显示菜单。

(4)将学生基本信息保存到文件中。

(5)进入系统之前要先输入密码。

3.课程设计说明书

  1. 系统功能模块划分:

主函数:void main()

录入函数:void Get()

显示函数 void Display()

保存函数 void Save()

删除函数 void Delete()

修改函数 void Modfiy()

查询函数 void Search()

输出函数:void print()

(2)算法分析

对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除、保存等操作管理。

本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:学号、姓名、性别、年龄、备注。

班级档案管理系统有8个功能,把这8个功能做成8个子函数,最后在main函数里进行对这8个子函数实现,来实现整个系统的操作。

(3)函数说明

结构体数组:

struct student /*定义结构体数组*/

{

char name [10];

int num[10];

char sex;

int age;

char note[100]; /*备注*/

};

程序的模块组成:

bool Check(char code[])//密码验证

void Get(struct student *arr , int n)//学生基本信息录入

void Display(struct student *arr , int n)//学生基本信息显示

void Save(struct student *arr,int n)//学生基本信息保存,保存在c:\\student.txt

void Modify(struct student *arr , int n)//学生基本信息修改

{

  1. 修改学号

  1. 修改姓名

  1. 修改性别

  1. 修改年龄

}

void Delete(struct student *arr , int n)//学生基本信息删除

void Search(struct student *arr , int n)//学生基本信息查询

{

  1. 学号查询

  1. 姓名查询

  1. 性别查询

  1. 年龄查询

}

各函数的主要功能

密码验证函数:进入系统需要验证的密码,修改学生信息时也需要验证密码

录入函数:随时输入学生信息

显示函数:显示所有学生信息

删除函数:删除某学生的信息

修改函数:修改学生基本信息

查找函数:方便查找某个学生的信息

保存函数:保存好学生信息,以免丢失

文件说明:

学生基本信息保存,保存在c:\\student.txt

(4)遇到的问题及解决方案分析:

问题1:输入密码验证

起初构想的时候打算用if函数的,事先用数组存好密码,用if函数来匹配,如果匹配则进入系统,不然进不去提示密码错误,但是那个方法貌似效率不高。

解决办法:通过运用书上的文件部分内容的password函数进行

问题2:删除模块

用void Delet(struct student *arr , int n)函数实现,如何使已经录入的学生数据删除。

解决办法:通过查阅书籍用到了strcmp字符串比较函数,如果两个学号匹配,则用strcpy字符串复制函数,用空字符串复制到原有信息,删除功能就实现了。

4.课程设计成果

1.程序源代码:

//头文件

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#include<conio.h>

//全局声明

#define N 3

int i;

struct student

{

char name[10];

int num;

char sex;

int age;

char note[100];//备注

};

//子函数

void print()//打印主菜单界面

{

printf("_________________________________________________________________________\n");

printf("| 欢迎进入学生档案管理系统 |\n");

printf("| 主菜单 |\n");

printf("|_______________________________________________________________________|\n");

printf("|______________1:学生基本信息录入 | 2:学生基本信息显示__________________|\n");

printf("|______________3:学生基本信息保存 | 4:学生基本信息删除__________________|\n");

printf("|______________5:学生基本信息修改 | 6:学生基本信息查询__________________|\n");

printf("|______________7:退出学生信息系统 | ____________________________________|\n");

printf("|_________________________________|_____________________________________|\n");

printf("\n");

}

bool Check(char code[]) //密码验证

{

char password[20]="hahaha";

if(strcmp(password,code)==0)

return true;

else

printf("密码错误");

return false;

}

void Get(struct student *arr,int n)//学生基本信息录入

{

for(i=0;i<n;i++)

{

printf("输入学生的基本信息:姓名 学号 性别(m/w) 年龄 备注\n");

scanf("%s %d %c %d %s",arr[i].name,&arr[i].num,&arr[i].sex,&arr[i].age,arr[i].note);

if(arr[i].num==0)

break;

}

}

void Display(struct student *arr,int n)//学生基本信息显示

{

printf(" 学生的基本信息:姓名 学号 性别(m/w) 年龄 备注\n");

for(i=0;i<n;i++)

{

printf("%22s%15d%15c%15d%15s\n", arr[i].name,arr[i].num,arr[i].sex,arr[i].age,arr[i].note);

if(arr[i].num==0)

break;

}

}

void Save(struct student *arr,int n)//学生信息保存

{

FILE *fp;

fp=fopen("D:\\student.txt","w+");

if(fp==NULL)

{

printf("文件不存在!\n");

exit(0);

}

fwrite(arr,sizeof(struct student),n,fp);

fclose(fp);

printf("保存成功!\n");

}

void Delete(struct student *arr,int n)//学生基本信息删除

{

int number;

bool flag=false;

printf("请输入要删除学生的学号:\n");

scanf("%d",&number);

char a[10]="";

for(i=0;i<n;i++)

{

if(number==arr[i].num)

{

strcpy(arr[i].name,"");

arr[i].num=0;

strcpy(arr[i].note,"");

arr[i].sex=' ';

arr[i].age=0;

Save(arr,n);

printf("信息删除成功!\n");

flag=true;

}

}

if(!flag)

{

printf("该学生不存在!:\n");

}

}

void Modify(struct student *arr,int n)//学生基本信息修改

{

bool flag=false;

int number;

int id;

char temp[10];

char code[10];

printf("请输入密码:\n");

scanf("%s",code);

if(Check(code))

{

printf("密码正确!\n");

printf("请输入学号:");

scanf("%d",&id);

printf(" _______________________ \n");

printf("|_______1:修改姓名______|\n");

printf("|_______2:修改学号______|\n");

printf("|_______3:修改性别______|\n");

printf("|_______4:修改年龄______|\n");

printf("|_______5:修改备注______|\n");

printf("|_______6:退出 ______|\n");

printf("|_______________________|\n");

printf("请输入你要修改信息的对应序号:");

scanf("%d",&number);

for(i=0;i<n;i++)

{

if(id==arr[i].num)

{

printf("基本信息\n");

printf(" 姓名 学号 性别 年龄 备注\n");

printf("%10s%10d%10c%10d%10s\n",arr[i].name,arr[i].num,arr[i].sex,arr[i].age,arr[i].note);

switch(number)

{

case 1:

{

printf("请输入新名字:");

scanf("%s",arr[i].name);

} break;

case 2:

{

printf("请输入新学号:");

scanf("%d",&arr[i].num);

} break;

case 3:

{

printf("请输入新性别:");

scanf("%c",&arr[i].sex);

} break;

case 4:

{

printf("请输入新年龄:");

scanf("%d",&arr[i].age);

} break;

case 5:

{

printf("请输入新备注:");

scanf("%s",arr[i].note);

}

case 6: print(); break;

default: break;

}

Save(arr,n);

flag=true;

}

}

if(!flag)

printf("该学生不存在!\n");

}

}

void Search(struct student *arr,int n)//学生基本信息查询

{

int temp,i;

bool flag=false;

printf(" _________________________\n");

printf("|_______1:按学号查询______|\n");

printf("|_______2:按姓名查询______|\n");

printf("|_______3:按性别查询______|\n");

printf("|_______4:按年龄查询______|\n");

printf("|_______5:退出 ________|\n");

printf("|_________________________|\n");

scanf("%d",&temp);

switch(temp)

{

case 1:

{

int number;

printf("请输入学号:\n");

scanf("%d",&number);

for(i=0;i<n;i++)

{

if(number==arr[i].num)

{

printf("基本信息\n");

printf("姓名 学号 性别 年龄 备注\n");

printf("%s%15d%10c%10d%17s\n",arr[i].name,arr[i].num,arr[i].sex,arr[i].age,arr[i].note);

flag=true;

}

}

if(!flag)

{

printf("该学生不存在!\n");

}

} break;

case 2:

{

char nam[10];

printf("请输入名字:\n");

scanf("%s",nam);

for(i=0;i<n;i++)

{

if(!strcmp(nam,arr[i].name))

{

printf("基本信息\n");

printf("姓名 学号 性别 年龄 备注\n");

printf("%10s%10d%10c%10d%10s\n",arr[i].name,arr[i].num,arr[i].sex,arr[i].age,arr[i].note);

flag=true;

}

}

if(!flag)

{

printf("该学生不存在!\n");

}

} break;

case 3:

{

char ch;

printf("请输入性别:\n");

ch=getch();

for(i=0;i<n;i++)

{

if(ch==arr[i].sex)

{

printf("基本信息\n");

printf("姓名 学号 性别 年龄 备注\n");

printf("%10s%10d%10c%10d%10s\n",arr[i].name,arr[i].num,arr[i].sex,arr[i].age,arr[i].note);

flag=true;

}

}

if(!flag)

{

printf("该学生不存在。\n");

}

} break;

case 4:

{

char ag;

printf("请输入年龄:\n");

scanf("%d",&ag);

for(i=0;i<n;i++)

{

if(ag==arr[i].age)

{

printf("基本信息\n");

printf("姓名 学号 性别 年龄 备注\n");

printf("%10s%10d%10c%10d%10s\n",arr[i].name,arr[i].num,arr[i].sex,arr[i].age,arr[i].note);

flag=true;

}

}

if(!flag)

{

printf("该学生不存在。\n");

}

} break;

case 5: print(); break;

default: break;

}

}

int main()

{

struct student arr[N];

char code[10];

bool flag=false;

printf("请输入密码:\n");

scanf("%s",code);

flag=Check(code);

if(flag)

{

int select;

print();

printf("请输入1:");

scanf("%d",&select);

while(0<select&&select<7)

{

switch(select)

{

case 1:

Get(arr,N);

print();

break;

case 2:

Display(arr,N);

print();

break;

case 3:

Save(arr,N);

print();

break;

case 4:

Delete(arr,N);

print();

break;

case 5:

Modify(arr,N);

print();

break;

case 6:

Search(arr,N);

print();

break;

case 7:return 0;

default:

break;

}

printf("请选择序号:");

scanf("%d",&select);

}

}

}

5.课程设计心得

第一次做课设,深刻感受到了完成的难度巨大,不过,虽然代码看着比较繁琐复杂,其实只要抓住大体思路,运用所学的知识及网上搜索的内容,将主要函数整理出来,大概的模版制作出来后答题思路都差不多,大多数程序都是运用一个套路,所以我觉得只要掌握大体思路,再按照题目要求进行分步处理,最终会得到想要的结果。此次课程设计明显感觉到了自己对代码运用的不熟练以及对书本知识掌握欠佳,决定以后将书上的代码反复练习,提高自己的熟练程度。

班级档案管理系统_学生信息管理相关推荐

  1. 班级档案管理系统_学生信息管理3

    1.课程设计目的 C语言程序设计课程设计是计算机科学与技术专业重要的实践性教学环节之一,本次设计结合实际应用的要求,使课程设计既覆盖C语言的知识点,又接近工程实际需要.目的是通过课程设计的综合训练,培 ...

  2. jsp mysql电子档案管理系统_学生档案管理系统的设计与实现(JSP,MySQL)(含录像)

    学生档案管理系统的设计与实现(,MySQL)(含录像)(开题报告,毕业论文12100字,程序代码,MySQL数据库,答辩PPT) 本文主要工作内容是梳理学生档案管理系统工作的流程,吸收.借鉴先进的指导 ...

  3. 《数据结构课程实践》_01_学生成绩档案管理系统_实现

    01_学生成绩档案管理系统_实现 一.实验题目 二.编程语言以及开发环境 三.源代码 1.学生类 2.自定义数据库类 3.数据操作类 4.总服务类 5. main类 四.运行结果 五.实验小结 一.实 ...

  4. 《数据结构课程实践》_01_学生成绩档案管理系统_准备工作

    01_学生成绩档案管理系统_准备工作 一.实验题目与要求 二.编程语言以及开发环境 三.实验思路 1. 思考初始化数据处理 2. 学生对象处理 3. 操作处理 4. 方法描述 四.预习小结 一.实验题 ...

  5. c语言程序设计 学生档案管理系统,C语言程序设计--班级档案管理系统.doc

    PAGE PAGE 2 C语言程序设计 课程名称 : C语言课程设计 设计题目: 班级档案管理系统 学生姓名: 学 号: 专业班级: 指导老师: 数学与信息技术学院 2011 年 11 月1日 说 明 ...

  6. c语言程序设计班档案管理系统报告,C语言程序设计班级档案管理系统报告文档.doc...

    C语言程序设计班级档案管理系统报告文档 课 程 设 计 报 告 课程名称 <C语言程序设计> 课题名称 班级档案管理系统 专 业 计算机科学与技术专业 班 级 计算机1103班 学 号 姓 ...

  7. c语言程序设计班档案管理系统报告,C语言班级档案管理系统

    <C语言班级档案管理系统>由会员分享,可在线阅读,更多相关<C语言班级档案管理系统(28页珍藏版)>请在人人文库网上搜索. 1.c语言程序设计"课程设计报告班级档案管 ...

  8. c语言课程班级档案管理系统,C语言班级档案管理系统

    <C语言班级档案管理系统>由会员分享,可在线阅读,更多相关<C语言班级档案管理系统(23页珍藏版)>请在人人文库网上搜索. 1.精品文档课程设计任务书课程名称 C语言课程设计 ...

  9. 班级档案管理系统c课程设计语言,课程设计班级档案管理系统方案.doc

    . . . <高级语言程序设计> 课 程 设 计 报 告 书 题 目: 班级档案管理系统 专 业: 计算机科学与技术 学 号: 学生姓名: 指导教师: 完成日期: 目录 TOC \o &q ...

最新文章

  1. 计算机视觉:Bag of words算法实现过程中出现错误及解决方案
  2. AWS - Couldformation 初探
  3. android脚步---设置layout隐藏属性
  4. POJ1321 棋盘问题(DFS)
  5. Dataset之Facades:Facades数据集的简介、安装、使用方法之详细攻略
  6. MySQL自动备份到本地数据库_MYSQL数据库自动本地/异地双备份/MYSQL增量备份
  7. Java-SpringDataRedis使用入门
  8. java面试题七 char转int
  9. the pdf expert for android v2.6.0,PDF Expert
  10. py哪个函数可以返回输入的变量类型_[Python基础]二、pycharm,python变量
  11. 【SpringCloud】Spring cloud Stream
  12. (转)微信扫码登录网页实现原理
  13. 暮光之城4下高清下载地址|暮光之城4第二部高清下载地址
  14. 《Apache Spark源码剖析》
  15. 墨刀未能成功读取服务器,墨刀体验小感
  16. MySQL基础(一)---数据库的诱惑
  17. 中文输入法无论如何都要占用Ctrl+Space快捷键终极解决!
  18. 设备配网专题《原理分析,设备配网技术之AirKiss微信配网》
  19. 架构师之路---架构的演变详解
  20. ov2604寄存器配置

热门文章

  1. 如何选择CDN加速平台?
  2. QtChart-Qt官方绘图库安装与使用
  3. 二叉搜索树/二叉排序树/二叉查找树
  4. 高速公路出入口车道软件
  5. 只有在学习的时候,才能变成女侠
  6. Linux删除文件某一行
  7. 如何选择适合平台的直播美颜SDK:从技术和商业角度考虑
  8. 查看opencv版本(python)
  9. kali安装java8
  10. Python预测——多元线性回归