C语言实现简易的信息管理系统

1 功能需求分析

1 存储个人信息(姓名,序号,年龄,性别等 后续可以增加其他信息) 
2 增加信息的录入(手动登记以上信息)
3 信息的本地存储,存储到指定的txt文件中
4 可以根据关键字进行查找,比如查找姓名,序号等
5 信息的排序,(目前只实现了根据序号从大到小或者从小到大的排列)

2 模块结构规划

根据实现的功能进行模块的划分,可以参考以上分析

3 数据结构的选择

系统实现的功能是能完成对多人复杂数据的操作,所以采用结构体数组来实现数据的承载。

4 规划函数

main.c:

负责系统的主导运行,子函数功能的调用。

ui.c:

因为系统是通过控制台跟用户进行交流的,所以考虑到美观性,用各种字符等模拟窗口显示,该文件包含了各个界面的显示函数。

addinformation.c

信息的录入功能。向模拟的数据库中增加信息。

find.c

查找函数,根据输入的选择项,查找相匹配的信息。

file.c

因为数据文件最终要存储到txt文本中,file.c文件中主要包含了对文件的读写等操作。

sort.c

排序功能函数,实现根据序号从大到小或者从小到大的排列

print.c

输出数据功能,把全部数据内容打印到屏幕上

exit.c

程序的安全退出功能,保证数据及时存储到本地。

5 代码演示

#include "main.h"
void find_id(int id)
{
int i=0;
for(i=0;iname);
/**********ID输入********************/
printf("          请输入唯一ID(ID范围1----10000):");
scanf("%d",&temp->id);
while((temp->id)>10000 || (temp->id)<1)
{
printf("          对不起,您输入的ID超出范围,请重新输入:");
scanf("%d",&temp->id);
}
/****************性别输入*******************/
printf("          请输入性别:男 或者 女:");
scanf("%s",&temp->sex);
/****************年龄输入*************************/
printf("          请输入年龄: ");
scanf("%d",&temp->age);
while((temp->age)>150||(temp->age)<1)
{
printf("          对不起,您输入的年龄超出范围,请重新输入:");
scanf("%d",&temp->age);
}
return temp;
}
add_information(void)
{
while(1)
{
int key=2;
add_information_ui();
p= scanf_a_struct( &database[num] );
database[num] =*p;
num++;
printf("                                 信息录入成功! \n");
printf("                        继续录入请按1;返回上一层界面请按0:");
scanf("%d",&key);
while(key!=0&&key!=1)
{
printf("********************************************************************************");
printf("输入错误,请重新输入,继续录入请按1;返回上一层界面请按0\n");
printf("********************************************************************************");
}
if(key==0)
{
output_database();
main_system_ui();
return 0;
}
}
}#include "main.h"
void find_id(int id)
{
int i=0;
for(i=0;iname[20]*******************************/
if(fputs(temp->name,fp))
puts("写入name成功");
else
puts("写入name失败");
fputc(' ',fp);
/***************写入temp->id*****************************************/
if(fprintf(fp,"%d",temp->id))
puts("写入id成功");
else
puts("写入id失败");
fputc(' ',fp);
/******************写入temp->sex*************************************/
if(fputs(temp->sex,fp))
puts("写入sex成功");
else
puts("写入sex失败");
fputc(' ',fp);
/********************写入temp->age***********************************/
if(fprintf(fp,"%d",temp->age))
puts("写入age成功");
else
puts("写入age失败");
fputc('\n',fp);                                               //输出换行符
}
/******** ************************************************************
*                            从文本中读取一个结构体内容
*                           输入:结构体指针
*                           输出:0----完毕或无数据   1-------
*********************************************************************/
char read_a_struct(struct people * temp)
{
int i=0;
char ch;
/**************检测每个数据段开头能否读取到数据*************/
ch = fgetc(fp);
if(ch==EOF)
{
//puts("没有第一个字符数据\n");
return 0;
}
/*****************读取temp->name***********************/
while(   ch  !=' ' &&  ch != EOF )                      //已经读取name后的空格
{
temp->name[i]=ch;
i++;
ch = fgetc(fp);
}
temp->name[i]='\0';
/*
if( ch  ==' ' ||  ch == EOF)
puts("读取name成功");
else
puts("读取name失败");
*/
/************读取temp->id*****************************/
fscanf(fp,"%d",&temp->id);
/*
if(fscanf(fp,"%d",&temp->id))
puts("读取id成功");
else
puts("读取id失败");
*/
fgetc(fp)==' ';
/*
if(fgetc(fp)==' ')
puts("读取空格成功");
*/
/***************读取temp->sex*************************/
i=0;
ch = fgetc(fp);
while(   ch  !=' ' &&  ch != EOF )                      //已经读取name后的空格
{
temp->sex[i]=ch;
i++;
ch = fgetc(fp);
}
temp->sex[i]='\0';
/*
if( ch  ==' ' ||  ch == EOF)                            //空格已经读取
puts("读取sex成功");
else
puts("读取sex失败");
*/
/***************读取temp->age************************/
fscanf(fp,"%d",&temp->age);
/*
if(fscanf(fp,"%d",&temp->age))
puts("读取age成功");
else
puts("读取age失败");
*/
fgetc(fp)=='\n';
/*
if(fgetc(fp)=='\n')
puts("读取换行符成功");
*/
return 1;
}
/**********************************************************************
*                          从文本中直接读取全部数据库-------->数组
*                               从文本开头读取,直到末尾
*                                      输出:无
*                                       输入:无
**********************************************************************/
void read_all_database(void)
{
int i=0;
char stop=0;
file_open();
for(i=0;idatabase[j].id)
{
temp=database[i];
database[i]=database[j];
database[j]=temp;
}
}
}
printf("排序完成!\n");
print_all_database();
return 0;
}
void sort_information(void)
{
while(1)
{
int key=3;
sort_information_ui();
printf("请选择功能项:");
scanf("%d",&key);
while(key!=0&&key!=1&&key!=2&&key!=3)
{
printf("对不起,指令输入错误,请重新输入:");
scanf("%d",&key);
}
if(key==3)
{
exit_system();
}
if(key==2)
{
main_system_ui();
return 0;
}
else if(key==0)               //按照ID从大到小排序
{
sort_down();
}
else
{
sort_up();
}
}
}/*********************************************************************************
*                       打印一个结构体的内容
*           输入:            &结构体名----------地址
*           输出:            无
**********************************************************************************/
#include "main.h"
void print(struct people  * temp )                      //注意输入是什么
{
printf("***************************************************************************\n\n");
printf("      姓  名:  %s", temp->name);
printf("      证件号:  %d", temp->id);
printf("      性  别:  %s",  temp->sex);
printf("      年  龄:  %d\n\n",temp->age);
return 0;
}
/**************输出所有数据库的内容******************/
void print_all_database(void)
{
int key=2;
int i=0;
for(i=0;i


C语言实现的个人信息管理系统相关推荐

  1. c语言结构体老师信息管理系统,C语言课程设计职工信息管理系统结构体数组实现程序源代码.doc...

    word格式 整理版 学习参考 //C语言课程设计 职工信息管理系统-结构体数组实现 #include #include #include struct employee { char num[10] ...

  2. c语言程序设计学生程序查询,《c语言程序设计报告-学生信息管理系统》.doc

    <c语言程序设计报告-学生信息管理系统> 中南大学 ? ? C语言程序设计实践报告 ? ? ? ? ? 题 目 学生信息管理系统 学生姓名 张眼 指导教师 刘伟荣 学 院 信息科学与工程学 ...

  3. c语言用链表写管理系统程序,c语言课程设计职工信息管理系统单链表实现程序源代码-20210401015126.docx-原创力文档...

    文档编制序号:[KKIDT-LLE0828-LLETD298-POI08] 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08] C语言课程设计职工信息管理系统单链表实现程序源代 ...

  4. 学生信息管理系统c 语言程序设计报告,C语言程序设计报告(学生信息管理系统)[1].txt...

    C语言程序设计报告(学生信息管理系统)[1].txt C CCCC * * * * * * * * * * * * * * * * .3 3 .4 1. .4 2. 4 3. 4 4. .5 飺 .5 ...

  5. c语言编辑学生信息录入的程序,c语言编的学生信息管理系统小程序!!有不足的请指出,谢谢!!...

    c语言编的学生信息管理系统小程序!!有不足的请指出,谢谢!! #include #include #include struct st { char name[20]; int english; in ...

  6. 学委作业管理系统c语言,c语言大作业-学生信息管理系统.doc

    c语言大作业-学生信息管理系统.doc 课程设计报告书 题目:学生信息管理系统设计 学 院 电子与信息学院 专 业 电子信息类 学生姓名 学生学号 指导教师 课程编号 135160 课程学分 1学分 ...

  7. c语言课程设计宠物店,c语言课程设计-宠物店信息管理系统.doc

    c语言课程设计-宠物店信息管理系统 合肥学院 计算机科学与技术系 课程设计报告 2012-2013学年第二学期 课程面向过程综合设计课程设计名称宠物(小动物)店信息管理系统 学生姓名宋俊 学号 专业班 ...

  8. C语言报告书学生信息管理系统,C语言实训 学生信息管理系统

    C语言实训 学生信息管理系统 实 训 报 告 实训名称 C语言编程开发实训 专业班级 物联1541 姓 名 张禄泽 学 号 指导教师 黄标兵.王丽平 实训时间 2016.2.29-2016.3.11 ...

  9. c语言程序设计图书管理,C语言程序设计报告 图书馆信息管理系统

    C语言程序设计报告 图书馆信息管理系统 2011 年第二阶段课程设计成果报告实训项目: 程序设计技术课程设计 学号: 0112959 姓名: 张麦华 专业: 信息管理与信息系统 实训日期:2011 年 ...

  10. c语言课程设计 职工信息管理系统,C语言课程设计-职工信息管理系统程序设计.doc...

    C语言课程设计-职工信息管理系统程序设计 C语言课程设计报告 设计题目:职工信息管理系统程序设计 课程设计评语2 目 录3 1.课程论文题目4 2.程序设计思路4 3.功能模块图5 4.数据结构设计5 ...

最新文章

  1. 《程序员面试宝典》-数据结构编程练习1
  2. Web前端经典面试试题(一)
  3. win10搜索计算机中所有excel,windows10系统下怎样使用excel进行高级筛选
  4. shell命令直接分区
  5. java学习_java学习原理篇|java程序运行套路
  6. 行为设计模式 - 策略设计模式
  7. Vue为何采用异步渲染
  8. 你真的懂语音特征吗?
  9. 为什么那么多自学WEB前端的人后来都放弃了?
  10. 英雄由此诞生------直击微软2008发布大会
  11. 结巴分词有前空格_NLP 分词的那些事儿
  12. 【AdaBoost算法】积分图代码实现
  13. HSRP+生成树+vlan间路由!
  14. Java制作简易计算器
  15. 活体检测 Domain Generalization via Shuffled Style Assembly for Face Anti-Spoofing 论文学习记录
  16. 多光谱高光谱图像算法面经
  17. 用R进行一元线性回归分析建模
  18. HTML+CSS笔记5
  19. 差异化地推手段,让营销效果翻十倍!
  20. AJAX-客户端服务器端通信

热门文章

  1. 我为什么从阿里巴巴集团离职?
  2. 用html如何做发帖的页面,如何用html发帖
  3. undi是什么意思_undefined什么意思?
  4. 简单描述数字签名:私钥签名;公钥验签。
  5. [POI2013]LUK-Triumphal arch【树形DP+二分答案】
  6. 云计价i20快速入门技巧——“附加费”应用
  7. Java 两个日期间的天数计算
  8. 《手机传感器》参数与选择
  9. 渐变背景和背景图片并存
  10. golang使用gorm出现reflect.Value.Addr of unaddressable value [recovered]