学生证管理系统课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言课程设计实验报告课程设计题目:学生证管理系统
姓名:
学号:
班级:
专业:
指导教师:
2014年 1 月 2 日
学生证管理系统课程设计报告
1.需求分析。
根据学生证管理的需要,建一个“学生证管理系统”,以方便对学生证信息的各项管理操作。要求完成:1.能对学生证信息进行录入和修改2.能按照学号和班级号显示学生证信息和更改、删除信息。
2.总体设计。
根据以上分析,本系统主要包括:从键盘输入学生证信息、从指定的文件中读入学生证信息、按照学号和班号查询学生证信息、删除和修改学生证信息。
(1)主函数main():定义学生结构体数组,输出操作对话框,调用录入、查询、删除、输出等函数对学生证信息进行处理。
(2)录入函数enter():从键盘输入学生证信息。
(3)录入函数load():从文件输入学生证信息。
(4)查询函数search():按学号查找记录信息。
(5)查询函数display():按班级查找记录信息。
(6)删除函数del():删除指定学号的学生记录。
(7)修改函数modify():按照指定学号修改记录。
程序功能图如下:
3.详细设计。
本功能一共有16个函数,其中一个主函数,15个功能模块,每个功能模块都是由于主函数或其他功能模块调用,分别说明如下:
图1.2 主程序流程图
(2)键盘输入函数。
键盘输入函数主要完成学生信息从屏幕输入数据,并将数据保存到文本文件中,以备后用。流程图:
Y
(3)文件输入函数。
文件输入函数主要完成学生信息从文件中读入数据。
Y
(4)学号查询函数。
学号查询函数是完成由用户输入需要查询的学号,在现有学生信息中查询是否有此学生信息存在,查到输出学生全部信息,没查到则输出“此学生部存在”信息。
流程图如下:
图1.5 学号查询流程图
班级查询函数是完成由用户输入需要查询的班级,在现有学生信息中查询此班级的全部学生信息,查到输出全部信息,没差到则输出“此班级学生不存在”信息。
学号删除函数是完成由用户输入需要删除的学号,在现有学生信息中查询是否有该学生信息存在,查到则删除此学生全部信息,没查到则输出“此学生不存在”信息。
程序流程图如下:
(7)修改函数。
修改函数主要是完成根据学号查找到学生信息,输出学生信息,然后修改学生信息。程序流程如下:
图1.7 学号修改流程图
4.测试结果。
(1)程序运行主菜单
1.9 主菜单界面(2)从文件输入并显示结果
(3)按学号查找。
(4)修改测试。(5)按班号浏览。
(6)统计班级的人数。
(7)删除功能测试。
5.软件操作使用说明书。
本软件采用命令行对话方式进行操作,运行后出现主界面如图1.9所示,然后按菜单提示操作即可。
6.总结。
通过本次课程设计练习,我们学会了科学分析问题解决问题的方法,从问题分析下手,然后进行模块设计,详细设计,再进行代码编写和测试。在调试程序过程中,学会了分模块进行,避免了以前那种将程序全部功能都放在main()函数中完成的弊病,使得调试过程更加顺利。另外通过本次练习,在前面学习过程中碰到的诸如结构体使用.指针使用.函数之间参数传递等难点问题也迎刃而解了。
源代码:
//student.h
#include
#include
#include
#include
#define M 50 //定义常数表示记录数
typedef struct //定义数据结构
{
char no[20]; //学号
char name[20]; //
char sex[5]; //性别
char classes[20]; //班号
char subject[20]; //学院专业
}STUDENTS;
//以下是函数原型
#include"stufun.h"
//student.cpp
//菜单函数,函数返回值为整数,代表所选的菜单项 ................................
int menu_select()
{
char s[80];
int c;
printf("******************************主菜单*********************\n");
printf("* 0. 输入学生证信息记录*\n");
printf("* 1. 浏览学生证信息记录*\n");
printf("* 2. 按学号查找*\n");
printf("* 3. 按学号删除*\n");
printf("* 4. 按学号修改*\n");
printf("* 5. 插入学生记录*\n");
printf("* 6. 保存记录到文件*\n");
printf("* 7. 加载文件到存*\n");
printf("* 8. 按班号浏览*\n");
printf("* 9.统计班级人数*\n");
printf("* 10.程序退出*\n");
printf("*********************************************************\n");
do
{
printf("\n 输入您的菜单选项编号(0-10):"); //提示输入选项
scanf("%s",s); //输入选择项
c=atoi(s); //将输入的字符串转化为整型数
getchar();
}while(c<0||c>10); //选择项不在0~10之间重输
return c;
//返回选择项,主程序根据该数调用相应的函数
}
//输入记录,形参为结构体数组,函数值返回类型为整型表示记录长度 .......................
int enter(STUDENTS t[])
{
int i,n;
system("cls");
printf("\n请输入学生记录条数:\n");
scanf("%d",&n); //输入记录数
printf("请输入学生记录:\n");
printf("学号性别班号学院专业\n");
printf("------------------------------------------------------------------------\n");
for (i=0;i { scanf("%s",t[i].no); //输入学号 scanf("%s",t[i].name); //输入 scanf("%s",t[i].sex); //输入性别 scanf("%s",t[i].classes); //输入班号 scanf("%s",t[i].subject); //学院专业 } getchar(); return n; //返回记录条数 } //显示记录,参数为记录数组和记录条数 ......................... void list(STUDENTS t[],int n)