程序设计基础课程设计
实验报告书
目录
1. 2.
设计题目 ..................................................................................................................................... 正文 ............................................................................................................................................. 2.1 系统简介 ......................................................................................................................................... 2.2选题背景 .......................................................................................................................................... 2.3设计内容 .......................................................................................................................................... 2.4设计思路 .......................................................................................................................................... 2.5算法(条列式或流程图) .............................................................................................................. 2.6程序清单与运行结果 ...................................................................................................................... 2.7总结 ..................................................................................................................................................
1. 设计题目
学生信息管理系统设计
2. 正文
2.1 系统简介
学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能: 1、系统以菜单方式工作
2、学生信息录入功能(学生信息用文件保存)--输入 3、学生信息浏览功能--输出
4、学生信息查询功能--按学号查询、按姓名查询、 5、学生信息的删除与修改(可选项) 要求:使用文件方式存储数据。
2.2选题背景
经典计算机问题,设计 学生信息管理系统,可以进行多项系统信息管理功能。
2.3设计内容
设计学生信息管理的各个功能。系统以菜单方式工作。学生信息录入功能(学生信息用文件保存)--输入。学生信息浏览功能--输出。学生信息查询功能--按学号查询、按姓名查询。学生信息的删除与修改(可选项)
2.4设计思路
将程序的各个功能分开独立的执行,问题有大而小,细化。
2.5算法(条列式或流程图)
主程序模块:
准 备
输入选择:
运行不同功能: 判断: 按退格键
创建文件模块(独立函数): 结束 输入要创建的文件夹输入学生数目: 得文件名,并创建文 件 输入一个学生信息并 NO 存放到文件夹: 是否人数足够 YES
删除信息模块(独立函数): 返回主程序
输入要删除得姓名 按读取方式打开用于存放文件 的文件夹创建 100个结构体,并将文 不相同 件中的信息全部存放到结
构体中 相同 将指针指向下一个结构通过链表把要删除得同学的信息在结构 体,判断该结构体的姓按写入方式打开文件,结构体全部写入体链表中删除 显示浏览信息模块(独立函数) 文件 名与要删除的姓名是否 相同 返回主程序
输入存放信息的文件夹的文件名,并打开文
件夹 创建一百个结构体数组 将一个结构体从文件中读入一个结构体大小,并 大小从文件中读取到内存,并显示 显示到内存
返回主程序文件是 否到 达 查找学生信息模块(独立函数):最后 输入存放信息的文件夹的文件名,并打开文件夹 创建一百个结构体数组 将一个结构体大小从文件中读取到内存,并显示 输入要查找信息的学生名,
指针指向下一个结构体
输出学生信息 返回主程序 判断学生信息与是否为要查找的人的2.6程序清单与运行结果信息 #include
struct student { };
void show( ) { }
\\* 创建文件夹并存入信息模块: *\\ void credit(int n) {
FILE *fp; char fpname[20]; int number,age,tel[10]; int year,month,day;
char name[10],sex,address[20],E_mail[20]; struct birth birthday; struct student *link;
printf(\请输入数字加回车键进行选择:\\n\
printf(\、学生信息录入功能(学生信息用文件保存)--输入\\n\printf(\、学生信息浏览功能--输出\\n\
printf(\、学生信息查询功能--按学号查询、按姓名查询\\n\printf(\、学生信息的删除与修改(可选项)\\n\printf(\按其他任意键加回车退出程序\\n\
struct student *head,*next,*end; int i;
printf(\请输入用于存放文件的文件路劲及文件名:\scanf(\getchar();
fp=fopen(fpname,\
head=(struct student *)malloc(sizeof(struct student));
printf(\请输入学生 学号 姓名 性别 出生年 月 日 地址 电话 e_mail:\
scanf(\getchar();
fprintf(fp,\end=head; for(i=1;i next=(struct student *)malloc(sizeof(struct student)); printf(\请输入学生 学号 姓名 性别 出生年 月 日 地址 电话 e_mail:\ ear,&(*head).birthday.month,&(*head).birthday.day,head->address,head->tel,head->E_mail); .year,(*head).birthday.month,(*head).birthday.day,head->address,head->tel,head->E_mail); scanf(\ getchar(); ear,&(*next).birthday.month,&(*next).birthday.day,next->address,next->tel,next->E_mail); } \\* 浏览信息模块: *\\ void show2(int n) { } \\* 按学号查找学生信息模块: *\\ int search1(int n) printf(\} fclose(fp); ar,(*head).birthday.month,(*head).birthday.day,head->address,head->tel,head->E_mail); fscanf(fp,\ay.year,&(*head).birthday.month,&(*head).birthday.day,head->address,head->tel,head->E_mail); FILE *fp; int i; char fpname[20]; struct student *head; head=(struct student *)malloc(sizeof(struct student)); printf(\请输入存放信息的文件路径以及文件名:\gets(fpname); fp=fopen(fpname,\for(i=0;i fprintf(fp,\ } fclose(fp); end->link=next; end=next; end->link=NULL; .year,(*next).birthday.month,(*next).birthday.day,next->address,next->tel,next->E_mail); { } \\* 按姓名查找学生信息模块: *\\ void search2(int n) { fscanf(fp,\ay.year,&(*head).birthday.month,&(*head).birthday.day,head->address,head->tel,head->E_mail); int i; FILE *fp; char fpname[20],checkname[10]; struct student *head; head=(struct student *)malloc(sizeof(struct student)); printf(\请输入存放信息的文件路径以及文件名:\gets(fpname); fp=fopen(fpname,\ printf(\请输入要查询信息的学生姓名:\scanf(\getchar(); for(i=0;i fscanf(fp,\ printf(\ } printf(\未找到\ fclose(fp); } return(1); if(checkname==head->number) { ay.year,&(*head).birthday.month,&(*head).birthday.day,head->address,head->tel,head->E_mail); int i,checkname; FILE *fp; char fpname[20]; struct student *head; head=(struct student *)malloc(sizeof(struct student)); printf(\请输入存放信息的文件路径以及文件名:\gets(fpname); fp=fopen(fpname,\ printf(\请输入要查询信息的学生学号:\scanf(\getchar(); for(i=0;i ear,(*head).birthday.month,(*head).birthday.day,head->address,head->tel,head->E_mail);
c语言课程设计学生档案管理系统



