c语言学生证管理系统课程设计报告.docx

上传人:b****1 文档编号:1189000 上传时间:2022-10-18 格式:DOCX 页数:42 大小:481.01KB
下载 相关 举报
c语言学生证管理系统课程设计报告.docx_第1页
第1页 / 共42页
c语言学生证管理系统课程设计报告.docx_第2页
第2页 / 共42页
c语言学生证管理系统课程设计报告.docx_第3页
第3页 / 共42页
c语言学生证管理系统课程设计报告.docx_第4页
第4页 / 共42页
c语言学生证管理系统课程设计报告.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

c语言学生证管理系统课程设计报告.docx

《c语言学生证管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《c语言学生证管理系统课程设计报告.docx(42页珍藏版)》请在冰豆网上搜索。

c语言学生证管理系统课程设计报告.docx

c语言学生证管理系统课程设计报告

红河学院工学院

专业:

年级:

姓名:

成绩:

批改时间:

红河学院工学院编制

说明

1、本报告供学生课程设计时使用。

2、学生应认真阅读课程设计要求。

3、课程设计报告里面的内容要手工填写,以备存档使用(源程序可打印)。

4、课程设计的总评成绩根据课程的性质,按一定比例计入该门课程成绩。

5、课程设计报告中的各模块填写的内容是评分的主要依据,如果不够书写,可以自行添加附页。

6、按规定的时间提交报告给教师评定成绩,由任课教师交到工学院存档。

课程设计目录

课程名称:

高级语言程序设计

序号

课程设计名称

起止页码

设计任务

题目

名称

学生证管理系统设计

班级

1

指导

教师

地点

工学院

成绩

添加模块

N

Y

学年

2011-2012

开始

日期

结束

日期

一、问题分析(围绕设计题目,进行课程设计开始前的准备过程,在此以问题分析的形式展开,从设计的总体性上对所承担的设计题目的思考,分析,此模块内容请手工填写)

对这个系统需求分析,学生证管理系统要有储存、录入、读取、输出、添加、删除、修改、查询、统计的功能。

我们将各种功能模块化,以便进行设计。

分为保存信息、输入模块、读取信息、更新模块(添加学生信息,删除信息,修改模块)、查询模块(按学号查找,按姓名查找,按班级查找)、统计模块。

然后根据各模块分别设计程序。

二.设计流程图

根据需求分析,可以把这个系统的设计分为添加、修改、查询、浏览、统计、删除六大模块,其中查询模块可以分为三个子模块,统计模块可以分为三个子模块,子模块下面还有子函数;系统功能模块图如下所示:

1.主函数模块

2.添加模块

3.修改模块4.浏览模块

 

5.查询模块

6.统计模块

7.删出模块

三.程序代码

#include

#include

#include

#defineN100

structClass//班级

{

charCname[20];//班名

charCno[20];//班号

};

structStudent//学生

{

charSname[20];//姓名

charSex[10];//性别

charSno[20];//学号

intAge;//年龄

structClassCInfo;//嵌套结构体,表示班级信息

}StuInfo[N];

voidmenu();//主菜单

voidadd();//添加模块

voidmodify();//修改模块

voidDelete();//删除模块

voidbrowse();//浏览模块

voidquiry();//查询模块

voidstastic();//统计模块

voidbySname();//按姓名查询,子模块

voidbySno();//按学号查询,子模块

voidbyCno();//按班号查询,子模块

voidStuMsg();//返回全体学生统计信息,子模块

voidFemale();//女生统计信息,子模块

voidMale();//男生统计信息,子模块

intFemaleNum();//返回女生人数,子函数

floatFemaleMG();//返回女生平均年龄,子函数

intMaleNum();//返回男生人数,子函数

floatMaleMG();//返回男生平均年龄,子函数

intStuNum();//返回全体学生人数,子函数

floatMG();//返回全体学生的平均年龄,子函数

voidmain()

{

menu();

getchar();

}

voidmenu()//菜单

{

intchose;

intright;

do

{

system("cls");//清屏

printf("\n\t\t\t\t学生证管理系统\n");

printf("········································");

printf("菜单:

\t1-添加\t2-修改\t3-浏览全部\t4-查询\t5-统计\t6-删除\t7-退出\n");

printf("········································");

printf("请输入数字选择:

");

scanf("%d",&chose);

if(chose<1||chose>7)

{

printf("输入错误,请重新输入!

\n");

right=1;

getchar();

}

elseright=0;

}while(right==1);

switch(chose)

{

case1:

add();break;

case2:

modify();break;

case3:

browse();break;

case4:

quiry();break;

case5:

stastic();break;

case6:

Delete();break;

case7:

exit(0);

}

}

voidadd()//添加学生信息,一次添加一条记录

{

intnum;

inti;

intage;

charsno[20];

charsex[20];

charcno[20];

intright;

FILE*fp;

if((fp=fopen("StuInfo.txt","r+"))==NULL)//以读写方式打开

{

if((fp=fopen("StuInfo.txt","w"))==NULL)//文件不存在则创建文件

{

printf("\n文件不存在且创建失败,返回!

\n");

menu();

}

printf("\n请按照提示输入学生信息:

\n\n");

printf("姓名:

");

scanf("%s",&StuInfo[0].Sname);

do

{

printf("\n性别(男或女):

");

scanf("%s",sex);

if((strcmp(sex,"男")!

=0)&&(strcmp(sex,"女")!

=0))

{

printf("输入错误,请输入男或女!

\n");

right=1;

getchar();

}

elseright=0;

}while(right==1);

strcpy(StuInfo[0].Sex,sex);

do

{

printf("\n学号(11位):

");

scanf("%s",sno);

if(strlen(sno)!

=11)

{

printf("输入错误,学号长度应为11位数!

\n");

right=1;

getchar();

}

elseright=0;

}while(right==1);

strcpy(StuInfo[0].Sno,sno);

do

{

printf("\n年龄:

");

scanf("%d",&age);

if(age<=0||age>100)

{

printf("年龄应在0-100之间,请重新输入年龄!

\n");

right=1;

getchar();

}

elseright=0;

}while(right==1);

StuInfo[0].Age=age;

do

{

printf("\n班号(6位):

");

scanf("%s",cno);

if(strlen(cno)!

=6)

{

printf("输入错误,班号长度应为6位数!

\n");

right=1;

getchar();

}

elseright=0;

}while(right==1);

strcpy(StuInfo[0].CInfo.Cno,cno);

printf("\n班名:

");

scanf("%s",&StuInfo[0].CInfo.Cname);

fprintf(fp,"\n%s\t%s\t%s\t%d\t%s\t%s",StuInfo[0].Sname,StuInfo[0].Sex,StuInfo[0].Sno,StuInfo[0].Age,StuInfo[0].CInfo.Cno,StuInfo[0].CInfo.Cname);

fclose(fp);

printf("\n保存成功!

\n");

printf("\n请按enter键返回主菜单!

\n");

getchar();

getchar();

menu();

}

for(i=0;!

feof(fp);i++)//读取文件

{

fscanf(fp,"%s%s%s%d%s%s",&StuInfo[i].Sname,&StuInfo[i].Sex,&StuInfo[i].Sno,&StuInfo[i].Age,&StuInfo[i].CInfo.Cno,&StuInfo[i].CInfo.Cname);

}

num=i;

if(num==N)

{

printf("\n保存记录数超出结构体数组数的大小,请先修改N的值\n");

menu();

}

printf("\n请按照提示输入学生信息:

\n\n");

printf("姓名:

");

scanf("%s",&StuInfo[num].Sname);

do

{

printf("\n性别(男或女):

");

scanf("%s",sex);

if((strcmp(sex,"男")!

=0)&&(strcmp(sex,"女")!

=0))

{

printf("输入错误,请输入男或女!

\n");

right=1;

getchar();

}

elseright=0;

}while(right==1);

strcpy(StuInfo[num].Sex,sex);

do

{

printf("\n学号(11位):

");

scanf("%s",sno);

if(strlen(sno)!

=11)

{

printf("输入错误,学号长度应为11位数!

\n");

right=1;

getchar();

}

elseright=0;

for(i=0;i

{

if(strcmp(sno,StuInfo[i].Sno)==0)

{

printf("该学号已经存在,请重新输入!

\n");

right=1;

getchar();

}

}

}while(right==1);

strcpy(StuInfo[num].Sno,sno);

do

{

printf("\n年龄:

");

scanf("%d",&age);

if(a

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

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1