寝室管理系统c语言
课程设计成绩
考勤成绩( %)
指导老师评语
报告及程序成绩( %)
总评成绩
指导老师签名:
《数据结构》
课 程 设 计 报 告
学院(系): 电计系
班 级: 软件一班
学生姓名: 董涛 学号 201020205114
指导教师: 李思莉
时间: 从2011 年 9月 5 日 到 2011 年9月9日
课程设计题目
程序设计目标
建立数据文件 ,数据文件按关键字(姓名、学号、房号)排序
0,插入学员
插入学员能在指定的寝室中插入,输入寝室号,规定每个寝室住4人,如果该寝室人数已满,则会显示:该寝室人数已满!插入成功会提醒:恭喜你已是该寝室成员。该项功能将有助于小规模调寝室。
1,重新输入学员
重新输入学员。功能是格式化原来记录,重新输入新成员,用于大规模的寝室调动。
2,删除记录
删除记录是输入学号进行删除,因为考虑到按照姓名删除会出现相同姓名的情况,故只设这种删除方式。
3,按照姓名查找
输入姓名后能查找该姓名的人的姓名,学号以及房号,相同姓名的人也会一起找到,并显示出来。
4,按照学号查找
输入学号,能准确快速的找到你要查找的记录。一旦找到记录,就会即刻跳出循环,减少时间。
5,按照寝室号查找
输入寝室号,会显示该寝室里住的每个成员。
6,按照姓名排序
按照姓名的首字母排序。从a到z。
7,按照学号排序
按照学号的大小排序。从小到大。
8,按照寝室号排序
按照寝室号码的顺序排序,从小到大。
9,显示记录
打印出所有记录。
10,保存记录
保存记录到程序目录下的record.txt文件中。
11,加载记录
自动读取程序目录下的record.txt文件。
12,退出
退出整个程序。
1、问题描述2、问题分析1、 数据结构2、 程序模块3、各模块之间的调用关系
流程框图
四、C源程序清单:
// 1213.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "ctype.h"
#define M 400/*M为寝室总人数*/
typedef struct/*定义一个结构体,存姓名,学号,寝室号*/
{
char name[20];/*姓名*/
char xuehao[20];/*学号*/
char fanghao[20];/*寝室号*/
}ADDRESS;
int tianjia(ADDRESS t[]);/*重新添加成员*/
int shanchu(ADDRESS t[],int n);/*删除寝室成员*/
int xingming(ADDRESS t[],int n);/*按照姓名查找*/
int xuehao(ADDRESS t[],int n);/*按照学号查找*/
int fanghao(ADDRESS t[],int n);/*按照寝室号查找*/
void xingmingpx(ADDRESS t[],int n);/*按照姓名排序*/
void xuehaopx(ADDRESS t[],int n);/*按照学号排序*/
void fanghaopx(ADDRESS t[],int n);/*按照寝室号排序*/
void xianshi(ADDRESS t[],int n);/*显示*/
void save(ADDRESS t[],int n);/*保存记录*/
int menu_select();/*主菜单*/
int load(ADDRESS t[]);/*从外部加载文件记录*/
int add(ADDRESS t[],int n);/*添加成员*/
void main()/*主函数*/
{
ADDRESS adr[M];/*定义一个结构体数组,M=400*/
int length;/*成员个数*/
system("cls");/*清屏*/
for(;;)/*无限循环,实现重复操作*/
{
switch(menu_select())/*功能选项*/
{