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

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

《高级语言程序设计》课程设计

题目:学生证管理程序

班级:

学生学号:

学生姓名:

指导老师:

提交时间:

华南农业大学信息(软件)学院

学生证管理程序

1系统分析

1.1问题描述:设计一个学生证的管理程序。实现录入、修改、删除学生的学生证信息,并能根据输入的学生的学号,显示该学生的学生证信息或根据输入的班级的名称,显示该班所有学生的学生证信息,以及实现一些统计各类信息的功能。

1.2系统功能分析:

学生证管理程序是用来进行学生证管理的应用软件,不属于学生可使用的系统,个人认为进入该系统不需要进行相应的身份登录。所以进入系统者应当可以使用所有功能;

使用者可行使基本功能有:录入某位学生的学生证信息;根据给定学生的学号,修改、删除或显示该学生的学生证信息;根据输入的班级的编号,显示该班所有学生的学生证信息和一些统计功能。

另外,为了方便管理员操作,减少管理员重复工作的可能,另外加入额外功能:批量录入学生的学生证信息和班级删除。除此以外,亦另外添加操作台指令,方便管理员进行功能切换。

1.3 开发平台及工具介绍:

根据所学知识及所要用到的相关操作,采用C语言进行开发。

开发平台:CodeBlocks+ MinGW + wxWidgets

2系统设计

2.1 系统总体结构设计

在对学生证管理程序进行系统功能分析之后,我对整个系统进行总体设计。

首先,确定大致的开发和设计的思路,并在此基础上,用图表将系统总体的设计架构勾画出来,制定模块结构图,通过模块功能分析对每一个模块进行总体设计。值得一提,总体的设计架构中,shell和kernel的设计应注意彼此的联系,这一方面设计的好坏对后面的设计有很大的影响。

然后,根据总体设计的需求,确定要首先那些函数。

学生证管理程序可视作一个简易身份证管理系统,开发设计的方向是方便管理员的操作,节省管理员的操作时间。对于这个问题,可采用批量操作和指令操作的思路。

可以将所有的学生证信息存储在一个文件(txt格式)中,在对大量学生证数据的处理用到链表和文件处理等基本技术,并用两个函数实现文件读取和写入。

2.2 系统各个功能模块详细设计

及功能模块之间关系设计(包括功能结构图等)

(1)添加模块(录入模块):可以逐个录入学生信息,也可以设定录入人数,批量录入学生信息。在输入学生信息时,可输入return返回,可随意输入指令进行功能切换。其功能图如下图.

(2)搜索模块:根据给出信息,可以是学号,名字或班级,搜索符合条件的某位学生或某些学生,并返回地址。

(3)修改模块:通过地址找到该学生信息,然后进行修改。

修改模块修改信息

(4)统计模块,统计学生总男女生人数;某班男生人数,女生人数;统计指定日子出生的学生;统计与指定名字相同的学生;

(5)显示模块,显示学生证信息。分为针对单人的详细显示和针对集体的行显示两种模式。

(6)删除模块,本模块有2种删除方式,分别是按学号删除和按班级名删除。

(7)指令模块,本模块负责辨认输入的为指令还是操作序号,并根据输入选择操作。

2.3 数据结构的设计(文件等)

(1)学生证信息结构

描述学生证信息,并作为一整条记录存放在文件中。

typedef struct stud

{

char name[20];

char sex[8];

char snumber[14];

char time[12];

char id[20];

char college[24];

char major[20];

char classes[40];

struct stud *next;

}LNode,*LinkList;

LinkList p,q,m,n,c;

(2)链表

存储学生证信息,并作为一整条记录在程序中进行操作。

p=(LinkList)malloc(sizeof(LNode));//头指针

q=p;

(3)文件

在程序开始前和结束后存储学生证信息

void rewirte()//程序结束后将一切写进文件

void load()//文件内容装载至链表

2.4 界面设计

遵循简洁美观、方便使用的原则。

(1)首页:用printf语句构造简单的界面,注重界面的简洁性。

(2)、录入界面

(3)、修改界面:

(4)删除界面(5)学号查询(6)班级查询(7)其他

(8)指令

(9)统计班级男女人数(10)统计同名

(11)统计同年同日出生流程图如下:

3系统实现

基于系统需求分析与系统总体设计的结果,本系统采用开发平台:CodeBlocks+ MinGW + wxWidgets实现各模块的功能,下面将展现某些模块的录入操作的详细设计和实现过程。

录入模块:

(1)

(2)代码段片段

相关函数

char console()//控制台

录入:

void entry()//录入

{

system("cls");

char ,op,i=1;

LinkList std;

std=(LinkList)malloc(sizeof(LNode));

std->next=NULL;

printf("请分别输入学生的信息\n");

while(i<9)

{

switch(i)

{

case 1:printf("姓名(如:王小明):");break;

case 2:printf("性别(如:男):");break;

相关文档
最新文档