学生证管理系统课程设计报告Word格式文档下载.docx

上传人:b****2 文档编号:4289715 上传时间:2023-05-03 格式:DOCX 页数:27 大小:228.56KB
下载 相关 举报
学生证管理系统课程设计报告Word格式文档下载.docx_第1页
第1页 / 共27页
学生证管理系统课程设计报告Word格式文档下载.docx_第2页
第2页 / 共27页
学生证管理系统课程设计报告Word格式文档下载.docx_第3页
第3页 / 共27页
学生证管理系统课程设计报告Word格式文档下载.docx_第4页
第4页 / 共27页
学生证管理系统课程设计报告Word格式文档下载.docx_第5页
第5页 / 共27页
学生证管理系统课程设计报告Word格式文档下载.docx_第6页
第6页 / 共27页
学生证管理系统课程设计报告Word格式文档下载.docx_第7页
第7页 / 共27页
学生证管理系统课程设计报告Word格式文档下载.docx_第8页
第8页 / 共27页
学生证管理系统课程设计报告Word格式文档下载.docx_第9页
第9页 / 共27页
学生证管理系统课程设计报告Word格式文档下载.docx_第10页
第10页 / 共27页
学生证管理系统课程设计报告Word格式文档下载.docx_第11页
第11页 / 共27页
学生证管理系统课程设计报告Word格式文档下载.docx_第12页
第12页 / 共27页
学生证管理系统课程设计报告Word格式文档下载.docx_第13页
第13页 / 共27页
学生证管理系统课程设计报告Word格式文档下载.docx_第14页
第14页 / 共27页
学生证管理系统课程设计报告Word格式文档下载.docx_第15页
第15页 / 共27页
学生证管理系统课程设计报告Word格式文档下载.docx_第16页
第16页 / 共27页
学生证管理系统课程设计报告Word格式文档下载.docx_第17页
第17页 / 共27页
学生证管理系统课程设计报告Word格式文档下载.docx_第18页
第18页 / 共27页
学生证管理系统课程设计报告Word格式文档下载.docx_第19页
第19页 / 共27页
学生证管理系统课程设计报告Word格式文档下载.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

学生证管理系统课程设计报告Word格式文档下载.docx

《学生证管理系统课程设计报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《学生证管理系统课程设计报告Word格式文档下载.docx(27页珍藏版)》请在冰点文库上搜索。

学生证管理系统课程设计报告Word格式文档下载.docx

学号查询

文件输入

班级查询

删除记录

修改记录

3.详细设计。

本功能一共有16个函数,其中一个主函数,15个功能模块,每个功能模块都是由于主函数或其他功能模块调用,分别说明如下:

1.主函数main()。

Y

N

图1.2主程序流程图

(2)键盘输入函数。

键盘输入函数主要完成学生信息从屏幕输入数据,并将数据保存到文本文件中,以备后用。

流程图:

N

(3)文件输入函数。

文件输入函数主要完成学生信息从文件中读入数据。

开始

打开文件

读入学生证信息

是否继续

关闭文件

结束

图1.4文件输入流程图

(4)学号查询函数。

学号查询函数是完成由用户输入需要查询的学号,在现有学生信息中查询是否有此学生信息存在,查到输出学生全部信息,没查到则输出“此学生部存在”信息。

流程图如下:

输入查询学号

查到否

输出学生不存在信息

输入查到学生信息

图1.5学号查询流程图

(5)班级查询函数。

班级查询函数是完成由用户输入需要查询的班级,在现有学生信息中查询此班级的全部学生信息,查到输出全部信息,没差到则输出“此班级学生不存在”信息。

读入学生信息

输入查询班号

查到否?

输出此班级学生不存在信息

输出查到学生信息

(6)学号删除函数。

学号删除函数是完成由用户输入需要删除的学号,在现有学生信息中查询是否有该学生信息存在,查到则删除此学生全部信息,没查到则输出“此学生不存在”信息。

程序流程图如下:

输入删除学号

找到否?

输入此学生不存在信息

删除此学生信息

(7)修改函数。

修改函数主要是完成根据学号查找到学生信息,输出学生信息,然后修改学生信息。

程序流程如下:

读入学生学号

输入修改学号

找到否?

输出此学生不存在信息

修改此学生信息

图1.7学号修改流程图

4.测试结果。

(1)程序运行主菜单

1.9主菜单界面

(2)从文件输入并显示结果

(3)按学号查找。

(4)修改测试。

(5)按班号浏览。

(6)统计班级的人数。

(7)删除功能测试。

5.软件操作使用说明书。

本软件采用命令行对话方式进行操作,运行后出现主界面如图1.9所示,然后按菜单提示操作即可。

6.总结。

通过本次课程设计练习,我们学会了科学分析问题解决问题的方法,从问题分析下手,然后进行模块设计,详细设计,再进行代码编写和测试。

在调试程序过程中,学会了分模块进行,避免了以前那种将程序全部功能都放在main()函数中完成的弊病,使得调试过程更加顺利。

另外通过本次练习,在前面学习过程中碰到的诸如结构体使用.指针使用.函数之间参数传递等难点问题也迎刃而解了。

源代码:

//student.h

#include<

stdio.h>

//I/O函数

stdlib.h>

//标准库函数

string.h>

//字符串函数

ctype.h>

//字符操作函数

#defineM50//定义常数表示记录数

typedefstruct//定义数据结构

{

charno[20];

//学号

charname[20];

//姓名

charsex[5];

//性别

charclasses[20];

//班号

charsubject[20];

//学院专业

}STUDENTS;

//以下是函数原型

#include"

stufun.h"

//student.cpp

//菜单函数,函数返回值为整数,代表所选的菜单项................................

intmenu_select()

chars[80];

intc;

printf("

******************************主菜单*********************\n"

);

*0.输入学生证信息记录*\n"

*1.浏览学生证信息记录*\n"

*2.按学号查找*\n"

*3.按学号删除*\n"

*4.按学号修改*\n"

*5.插入学生记录*\n"

*6.保存记录到文件*\n"

*7.加载文件到内存*\n"

*8.按班号浏览*\n"

*9.统计班级人数*\n"

*10.程序退出*\n"

*********************************************************\n"

do

{

printf("

\n输入您的菜单选项编号(0-10):

"

//提示输入选项

scanf("

%s"

s);

//输入选择项

c=atoi(s);

//将输入的字符串转化为整型数

getchar();

}while(c<

0||c>

10);

//选择项不在0~10之间重输

returnc;

//返回选择项,主程序根据该数调用相应的函数

}

//输入记录,形参为结构体数组,函数值返回类型为整型表示记录长度.......................

intenter(STUDENTSt[])

inti,n;

system("

cls"

\n请输入学生记录条数:

\n"

scanf("

%d"

&

n);

//输入记录数

请输入学生记录:

学号姓名性别班号学院专业\n"

------------------------------------------------------------------------\n"

for(i=0;

i<

n;

i++)

t[i].no);

//输入学号

t[i].name);

//输入姓名

t[i].sex);

//输入性别

t[i].classes);

//输入班号

t[i].subject);

//学院专业

}

getchar();

returnn;

//返回记录条数

}

//显示记录,参数为记录数组和记录条数.........................

voidlist(STUDENTSt[],intn)

inti;

\n********************学生清单************************\n"

for(i=0;

{

%-20s%-20s%-10s%-10s%-10s\n"

t[i].no,t[i].name,t[i].sex,t[i].classes,t[i].subject);

if((i+1)%10==0&

&

n%10>

0)//判断输出是否达到10条记录

{

printf("

每页显示10条学生记录,按回车键向后翻页...\n"

getchar();

system("

}

}

//查找记录..........................

voidsearch(STUDENTSt[],intn)

chars[20];

//保存待查找学号字符串

//保存查找到结点的序号

请输入查找的学号:

//输入待查找学号

i=find_no(t,n,s);

//调用find_no函数,得到一个整数

if(i>

n-1)//如果整数i值大于n-1,说明没找到

没有学号为%s的学生!

else

print(t[i]);

//找到,调用显示函数显示记录

//删除函数,参数为记录数组和记录条数...........................

intdel(STUDENTSt[],intn)

//要删除记录的学号

intch=0;

请输入要删除的学生学号:

//输入学号

//调用find_no函数

if(i==n)

没有找到学号为%s的学生!

else

正在删除中!

for(;

i++)//从删除位置开始依次前移学生记录

{

strcpy(t[i].name,t[i+1].name);

strcpy(t[i].no,t[i+1].no);

strcpy(t[i].sex,t[i+1].sex);

strcpy(t[i].classes,t[i+1].classes);

strcpy(t[i].subject,t[i+1].subject);

n--;

//删除后记录数减1

删除成功!

//返回记录数

//插入记录函数,参数为结构体数组和记录数.................................

intadd(STUDENTSt[],intn)

STUDENTStemp;

//新插入记录信息

inti,j;

//确定插入在哪个记录之前

请输入要插入的学生记录:

************************************************\n"

%s%s%s%s%s"

temp.no,temp.name,temp.sex,temp.classes,temp.subject);

//输入插入信息

if(n>

0)

请输入插入位置的姓名,将新记录插入在该名字前:

//输入插入位置的姓名

i=find_name(t,n,s);

//调用find_name,确定插入位置

i=0;

for(j=n-1;

j>

=i;

j--)//从最后一个结点开始向后移动一条

strcpy(t[j+1].no,t[j].no);

//当前记录的学号拷贝到后一条

strcpy(t[j+1].name,t[j].name);

//当前记录的姓名拷贝到后一条

strcpy(t[j+1].sex,t[j].sex);

//当前记录的性别拷贝到后一条

strcpy(t[j+1].classes,t[j].classes);

//当前记录的班号拷贝到后一条

strcpy(t[j+1].subject,t[j].subject);

//当前记录的学院专业拷贝到后一条

strcpy(t[i].no,temp.no);

//将新插入记录的学号拷贝到第i个位置

strcpy(t[i].name,temp.name);

//将新插入记录的姓名拷贝到第i个位置

strcpy(t[i].sex,temp.sex);

//将新插入记录的性别拷贝到第i个位置

strcpy(t[i].classes,temp.classes);

strcpy(t[i].subject,temp.subject);

//将新插入记录的年龄拷贝到第i个位置

n++;

//记录数加1

//返回记录数

//保存函数,参数为结构体数组和记录数..................................

voidsave(STUDENTSt[],intn)

FILE*fp;

//指向文件的指针

if((fp=fopen("

record.txt"

"

wb"

))==NULL)//打开文件,并判断打开是否正常

无法打开学生记录文件!

//打开失败

exit

(1);

//退出

\n正在保存中\n"

fprintf(fp,"

n);

//将记录数写入文件

\r\n"

//将换行符号写入文件

fprintf(fp,"

%-20s%-30s%-10s%-10s%-10s"

//格式写入记录

//将换行符号写入文件

fclose(fp);

//关闭文件

****保存成功***\n"

//显示保存成功

//读入函数,参数为结构体数组.............................

intload(STUDENTSt[])

//指向文件的指针

rb"

))==NULL)//打开文件

//退出

fscanf(fp,"

//读入记录数

fscanf(fp,"

%20s%30s%10s%10s%10s"

//按格式读入记录

//关闭文件

已经成功加载学生记录文件到内存!

//显示保存成功

//返回记录数

//按班号显示记录函数.................................

voiddisplay(STUDENTSt[],intn)

请输入班号:

//输入班号

i=find_classes(t,n,s);

n-1)

没有班号为%d的班级\n"

------------------------------------------------------------------------\n-"

i++)

{

if(strcmp(s,t[i].classes)==0)

{

}

}

//按班号统计人数........

voidclasscount(STUDENTSt[],intn)

intj=0;

i++)

j++;

该班一共有%d人\n"

j);

//显示指定的一条记录

voidprint(STUDENTStemp)

\n****************************************************\n"

//按姓名查找函数,参数为记录数组和记录条数以及姓名s...................................

intfind_name(STUDENTSt[],intn,char*s)

i++)//记录开始,直到最后一条

if(strcmp(s,t[i].name)==0)//记录中的姓名

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2