C语言课程设计--学生通讯录管理系统设计

一、题目内容的描述
学生通讯录管理系统设计
设计一个学生通信录,学生通迅录数据信息构成内容可自行设计(如:姓名、家庭地址、、电话号码等等),通信录数据类型定义为结构体类型。由键盘输入数据(最好要考虑输入数据输入的格式及输入数据的有效性),然后进行以下的功能实现。程序要求主函数是一个功能选择菜单,其它各功能都用各自的函数实现。
功能要求如下:
1、能建立、修改和增删学生通讯录
2、能够按多种方式进行查询,例如按姓名、按电话号码等。
3、通讯录的数据保存在文件中,运行程序时将通讯录数据从文件读取到内存中。对通讯录进行增加、删除、修改后,提供功能菜单,可以将内存中修改过的通讯录重新保存至文件。
二、应用程序功能的详细说明
1、应用程序实现了可视化的系统操作界面。
2、对学生通讯录形成了系统化的管理,操作简便明了。
3、程序具有系统帮助,添加、显示、查询、刷新、删除、排序、保存、修改、读取学生通讯录的功能。各项功能均可按照文字提示操作,浅显易懂。
4、系统的各个功能模块都用函数的形式来实现(readfile()seek()modify()sort()insert()del()save()menu())方便查看。
5.可以将信息保存在文件("")中,亦可将信息从文件中读取出来,灵活方便。
、主要模块的算法描述
开始
以可读写的方式打开一个数据文件
将此文件的内容读出,并存入一个新的结构体类型的数组中。
调用menu()菜单函数
进入while()主循环
输入1-8中的一数值,选择相应操作。
输入是否为0
判断键值,调用相应函数,完成相应功能。
是否已对修改存盘
调用函数save()函数,进行写数据文件操作
结束
模块一:头文件,变量定义,函数的声明
对系统所使用的变量进行定义,对函数进行声明。
   
模块二:录入学生信息
声明函数void readfile(),说明一个文件指针FILE *fp打开文
件""。
模块三:学生信息的查
声明void seek()为查函数,通过switch(item)设定用学号查,
用姓名查两个分支。
模块四:学生信息的修改
声明void modify()为学生信息修改函数,通过switch(item)设定
所要修改的项目。
模块五:刷新学生信息
声明void sort()将录入学生系按升序排列,用的是“冒泡排序法”
实现排序。
模块六:增加学生信息
声明void insert()插入学生信息,先通过判断学生是否存在,若
否则继续输入,若是则跳出,重新循环。
模块七:删除学生信息
声明void del()实现学生信息删除,通过学号对比确定要删除的信
息,然后用后一个替换掉。
模块八:显示学生信息
通过display()函数输出学生信息。
模块九:保存信息
通过fp=fopen("","w");写入信息。
模块十:汇总学生数目
通过number()函数将已有男女生及总学生数目汇总出来。
模块十一:系统帮助
通过help()函数帮助操作。
模块十二:界面菜单
通过switch(num)调用以上各函数,实现功能。
1、程序采用模块化设计,各模块独立,可分块调试,个模块由主函数控制调用。
2、其中主要模块(readfile()seek()modify())都是利用数组,指针来实现数据结构设计。
3、数据库设计的任务是确定系统所需要的数据库。数据库是表的集合,通常一个系统只需一个数据库。设计人是根据需求分析,确定数据库所包含的表及字段、表间的关系,然后具体确定表的结构,包括字段名、字段类型及宽度,需要的索引等。根据对需求得到的数据结构进行分析,按数据输入输出的要求,确定表和表间的关系,进行验证、调整、修改、完善,使其能够实现用户对数据和功能的要求。通讯信息表包括以下字段:号, 姓名,年龄,性别,出生年月,地址,电话, E-mail。学号为主索引。
、结束语
我设计的程序总体功能大都能够运行顺利,但有许多地方比较复杂,需要进一步修改,进行简化。通过这次课程设计的锻炼,我收获很多,具体归纳为以下几点:
1、首先,也是最重要的一点,学会如何将一个复杂的问题简化,将一个较大的问题分成几个小问题,再一一解决这些小问题。在设计一个程序之前,要学会对程序功能进行规划,将其分为几个不同的功能模块,要思路清晰,简单易用;
 
2、学会灵活运用已有的知识,同时适当的拓展一些知识;比如,这次设计过程中,有一些函数以前就很少用到,甚至没有见过,但对程序的设计及用户界面的改善带来方便;
3、解决问题时,要尽可能考虑全面。每一个细节都很重要,既要避免功能的重复,也要避免功能疏漏的地方!
4、在这次课程设计过程中,参考了许多资料,发现C语言真的很有意思!比如我看到一个
关于用C语言编写的小程序:五子棋、俄罗斯方块、推箱子等,等这次课程结束后,我就想利用C语言编写这些小游戏。曾经认为C是个挺枯燥的课程,现在发现这不仅仅是个简单的课程,而是个很实用的计算机工具!
、程序源代码清单
#include<stdio.h> 
#include<stdlib.h>
#include<string.h>
#define BUFLEN 100
#define LEN 15
#define N 100
struct record
{
char code[LEN+1];
char name[LEN+1];
int age;
char sex[3];
char time[LEN+1];
char add[30];
char tel[LEN+1];
char mail[30];
}stu[N];
int k=1,n,m;
void readfile();       
void seek();
void modify();
void insert();
void del();
void display();
void save();
void number();
void menu();
int main()
{
  while(k)
  menu();
  system("pause");
  return 0;
}
void readfile()//刷新学生信息
{
  char *p="";
        FILE *fp;
  int i=0;
      if ((fp=fopen("","r"))==NULL)
      { 
        printf("Open file %s error! Strike any key to exit!",p);
        system("pause");
        exit(0);
      }
      while(fscanf(fp,"%s %s%d%s %s %s %s %s",stu[i].code,stu[i].name,&stu[i].age,
            stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail)==8)
      {
        i++;
        i=i;
      }
        fclose(fp);
        n=i;
        printf("录入完毕!\n");
}
void seek()//查询学生信息
.
.
.
.
.
.
void modify()//修改学生信息
.
.
.
.
.
.
void sort()//对学生信息按学号排序
{
  int i,j,*p,*q,s;
  char temp[10];
    for(i=0;i<n-1;i++)
    {
      for(j=n-1;j>i;j--)
      if(strcmp(stu[j-1].code,stu[j].code)>0)

本文发布于:2024-09-23 23:33:38,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/91944.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:学生   信息   函数   功能   进行   数据
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议