好文档 - 专业文书写作范文服务资料分享网站

c语言课程设计报告---学生信息管理系统

天下 分享 时间: 加入收藏 我要投稿 点赞

题目:学生信息管理系统

一、需求分析

任务要求:

自学C语言中有关链表及外部文件得内容,设计学生信息管理系统。具体要求如下:

◆ 建立学生信息,信息至少包括名字、性别、年龄、学号、系别、家庭信息等内容;

◆ 能够提供添加、删除与修改学生信息等功能; ◆ 能将通讯录保存在文件中; ◆ 能够按指定方式输出学生信息.

系统功能需求分析:

★ 1、为存储学生信息,需定义一个结构体类型,成员名字、性别、

年龄、学号、系别、家庭信息等,并建立链表,定义该结构体类型得指针,用于指向各结点;

★ 2、分别建立具有添加、删除、修改、查询等功能得子函数,完成相应功能,对程序实现模块化。这其中要用到对链表得删除、插入等知识。删除时用一结构体指针指向链表得第一个结点,检查该节点得值就是否等于输入得要删除得学号,若相等就删除,不相等则后移指针,直至表尾。插入时也要先找到相应结点,再添加.

★3、为实现存储功能,需用到文件得相关函数,打开文件,将添加、修改或删除得信息存入磁盘中。

★4、为以表格得形式输出文件,宏定义格式化输出语句,指定输出学

生信息。

二、概要设计

系统总体设计框架:

对程序进行模块化,建立添加、修改、删除、查找与显示功能得子函数,各子函数中运用链表存储数据。从主函数开始执行,调用各个子函数,并运用文件相关知识将信息存入磁盘中。 系统功能模块图:

主菜单 学生形象查询 学生信息添加 学生信息删除 学生信息添加 就是否保存 关闭文件

三、详细设计

主要功能模块得算法设计思路如下:

1、查询通讯录信息(void chakan()) (1)为开辟一个新单元 (2)输入查询关键字:

(3)读取保存得文件数据输入ASCLL字符: (4)在链表中寻找相应结点;

(5)调用输出函数,输出结点信息. 2、添加信息函数(void add()) (1)定义指向结构体变量得指针; (2)移动指针,找到插入结点; (3)在要插入得结点输入信息;

(4)调用保存函数,打开文件,保存输入信息。

3、删除信息函数(void del()) (1)定义指向结构体变量得指针;

(2)用指针检验链表中就是否有记录,若没记录,返回主函数; (3)根据要修改得编号查找要删除得结点; (4)修改链表,删除对应结点。

4、修改信息函数(void xiugai()) (1)定义指向结构体变量得指针;

(2)读取保存得文件数据输入ASCLL字符:

(3)用指针检验链表中就是否有记录,若没记录,返回主函数; (4)根据要修改得编号查找对应结点; (5)修改信息;

(6)打开文件,保存修改记录。 5、保存信息函数(baocun())

(1)定义指向结构体变量得指针;

(2)用文件指针指向要读写得磁盘文件名,若没有则新建此文件名: (3)用指针检验链表中就是否有记录,若没记录,返回主函数: (4)打开文件,保存记录:

6、屏幕操作函数(void stubent187()) (1)以一定格式输出所想要得图形:

四、主要源程序代码

定义变量:(对整个程序定义全局变量)

#include ”stdio、h” #include \onio、h"

#define STUDENT ID /*所有STUDENT都用ID来代替*/ typedef struct node /*定义结构体*/

{ char ming[50]; /*名字*/

char xing[50]; /*性别*/ char nian[50]; /*年龄*/

int xuehao; /*学号*/ char xibie[50]; /*专业*/

char sushe[50]; /*宿舍号*/

char jia[50]; /*家庭地址*/

struct node *next;

}ID; /*学生信息(变量名)*/

ID *head=NULL; /*定义一个头指针*/ FILE *zhi; /*定义一个文件指针*/

主菜单界面:(进入屏幕界面得形式)

void stubent187() /*屏幕格式函数*/

{ printf(”****************************************\\n\);

printf(\* 学生信息管理系统 *\n\

printf(\ *\\n”); printf(\ 请选择:1:查瞧; 2:添加; 3:删除; *\\n\);

printf(”* 4:修改; 0:退出系统 *\n\ printf(”* *\\n”);

printf("*******************************************\\n”); printf(”>>〉〉>>〉>〉>>〉〉输入 0~4 数字<<<<<<〈<〈<<<<\\n”);

return ; }

查瞧学生信息记录:(对以保存在磁盘文件得学生信息进行查询)

void chakan()

{ /* 查瞧*/ ID *t; t=head;

t=(ID *)malloc(sizeof(ID)); /*为t开辟一个新单元*/ if((zhi=fopen(\hu1、txt\,”rb”))==NULL) printf("没有此文件\\n\); else

{ printf(”s%10s%10s%10s%10s%10ss\\n\,\,"nian",\,\g","sushe\,”jia"); /*输出一个屏幕格式*/

while (!feof(zhi))

{ fscanf(zhi,”%10s%10s%10sd%10ss%10s\\n\,&t->ming,&t->xing,&t—>nian,&t—〉xuehao,&t-〉xibie,&t—>sushe,&t->jia); /*读取保存得文件数据输入ASCLL字符:*/

printf("%10s%10s%10s%10d%10s%10ss\\n\,t->ming,t->xing,t—〉nian,t—〉xuehao,t-〉xibie,t—〉sushe,t—>jia); /*以这形式输出各个学生信息*/

t—〉next=(ID *)malloc(sizeof(ID));t=t->next;

} };

}

添加学生信息记录:()

void add() {

char i; /*添加*/ ID *t1,*t2; t1=t2=NULL;

loop: t1=(ID *)malloc(sizeof(ID)); /*为t1开辟一个新单元*/

printf("请输入姓名:”);scanf(”%s",&t1->ming); /* 姓名 */

printf(”请输入性别:");scanf("%s\,&t1->xing); /* 性别 */

printf("请输入年龄:");scanf(”%s",&(t1-〉nian)); /* 年龄 */

printf(\请输入学号:\);scanf(”%d”,&(t1->xuehao)); /* 学号 */

printf(\请输入系别:\);scanf(\”,&(t1->xibie)); /*系别*/

printf(\请输入宿舍号:");scanf(\%s\,&(t1—〉sushe)); /*宿舍号*/

printf(\请输入家庭地址:”);scanf(\,&(t1-〉jia)); /*家庭地址*/

t1—>next=NULL;

if (head==NULL) /*如果头结点为空*/

{ head=t1; /*t1指向头结点*/ t2=t1; } else {

t2=head;

while (t2—>next!=NULL) t2=t2->next; /*没有成立则指向下个结点*/

t2->next=t1; } getchar();

printf("就是否继续添加(Y/N):\\n"); scanf(\%s\,&i); /*输入Y/N*/ if(i=='y'||i=='Y’)

{clrscr(); goto loop; /* 清屏 在 循环*/ }

else {printf(”就是否保存此次添加(Y/N)\\n");scanf(\",&i); if(i==’y'||i=='Y') /*就是否要保存*/ {baocun(); /*调用保存*/

c语言课程设计报告---学生信息管理系统

题目:学生信息管理系统一、需求分析任务要求:自学C语言中有关链表及外部文件得内容,设计学生信息管理系统。具体要求如下:◆建立学生信息,信息至少包括名字、性别、年龄、学号、系别、家庭信息等内容;◆能够提供添加、删除与修改学生信息等功能;◆能将通讯录保存在文件中;◆能够按指定方式输出学生信息.<
推荐度:
点击下载文档文档为doc格式
943hv8to791qw0b8cvba7dd7d92whi01anc
领取福利

微信扫码领取福利

微信扫码分享