一个简单的档案管理应用(DOS平台)
来源:互联网 发布:最便宜的淘宝网 编辑:程序博客网 时间:2024/06/05 17:39
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<windows.h>#define stuN 100static int stunum;struct Student{char idstu[20];char name[20];char sex[6];int age;char comment[100];}; void InputInfo(struct Student *p);void ShowInfo(struct Student *p);void SaveInfo(struct Student *p);void DelInfo(struct Student *p);void ModifyInfo(struct Student *p);void SearchInfo(struct Student *p);void ExitSystem(struct Student *p);void PasswdAsk();void ShowMenu(struct Student *p);void(*menu[])(struct Student *p)={InputInfo,ShowInfo,SaveInfo,DelInfo,ModifyInfo, SearchInfo,ExitSystem}; void Search_byidnum(struct Student *p);void Search_byname(struct Student *p);void Search_bysex(struct Student *p);void Search_byage(struct Student *p);void(*sonmenu[])(struct Student *p)={Search_byidnum,Search_byname,Search_bysex,Search_byage};int main(){struct Student stu[stuN];struct Student *k;k=stu;PasswdAsk();ShowMenu(k);return 0;}void InputInfo(struct Student *p){int i;system("cls");printf("开始录入信息!\n");printf("输入人数: ");scanf("%d",&stunum);for(i=0;i<stunum;i++){printf("\n输入第%d个学生的学号: ",i+1);scanf("%s",p[i].idstu);printf("姓名: ");scanf("%s",p[i].name);printf("性别: ");scanf("%s",p[i].sex);printf("年龄: ");scanf("%d",&p[i].age);printf("备注: ");scanf("%s",p[i].comment);system("cls");}printf("录入完毕!\n");Sleep(2000);system("cls");ShowMenu(p);}void ShowInfo(struct Student *p){int i,j,idlen,nalen;system("cls");printf("--------------------学生数据显示--------------------\n");printf("-----学号---------姓名----性别----年龄----备注-------\n");for(i=0;i<stunum;i++){idlen=strlen(p[i].idstu);nalen=strlen(p[i].name);printf("-%s",p[i].idstu);for(j=1;j<16-idlen;j++)printf("-");printf("%s",p[i].name);for(j=0;j<9-nalen/2;j++)printf("-");printf("%s-----",p[i].sex);printf("%d----",p[i].age);puts(p[i].comment);}printf("显示完毕!\n"); Sleep(5000);system("cls");ShowMenu(p);}void SaveInfo(struct Student *p){int i,j,idlen,nalen;FILE *fp;fp=fopen("D:\\成绩保存.txt","w");fprintf(fp,"--------------------学生数据显示--------------------\n");fprintf(fp,"-----学号---------姓名----性别----年龄----备注-------\n");for(i=0;i<stunum;i++){idlen=strlen(p[i].idstu);nalen=strlen(p[i].name);fprintf(fp,"-%s",p[i].idstu);for(j=1;j<16-idlen;j++)fprintf(fp,"-");fprintf(fp,"%s",p[i].name);for(j=0;j<9-nalen/2;j++)fprintf(fp,"-");fprintf(fp,"%s-----",p[i].sex);fprintf(fp,"%d----",p[i].age);fputs(p[i].comment,fp);fprintf(fp,"\n");}fclose(fp);printf("已保存!\n");Sleep(3000);system("cls");ShowMenu(p);}void DelInfo(struct Student *p){int i;for(i=0;i<stunum;i++){memset(p[i].idstu,0,sizeof(p[i].idstu));memset(p[i].name,0,sizeof(p[i].name));memset(p[i].sex,0,sizeof(p[i].sex));p[i].age=0;memset(p[i].comment,0,sizeof(p[i].comment));}if(!remove("D:\\成绩保存.txt")) printf("删除成功!\n");else printf("删除失败!\n");Sleep(3000);system("cls");ShowMenu(p);}void ModifyInfo(struct Student *p){int lack_state=1;char setpasswd[20]={"hello"}; char passwd[20];reload:system("cls");printf("-----身份验证-----\n");printf("输入密码: ");scanf("%s",passwd);if(strcmp(passwd,setpasswd)==0){lack_state=0;printf("登陆成功!\n");Sleep(2000);system("cls");}else{printf("密码错误!重新输入!\n");memset(passwd,0,20);Sleep(2000);goto reload;}if(lack_state==0){int i;int find_state=0,record;char searchnum[20];printf("开始修改!\n");printf("输入要修改的学生学号: ");scanf("%s",searchnum);for(i=0;i<stunum;i++)if(strcmp(searchnum,p[i].idstu)==0){record=i;find_state=1;break;}if(find_state==1){memset(p[record].idstu,0,sizeof(p[record].idstu)); memset(p[record].name,0,sizeof(p[record].name)); memset(p[record].sex,0,sizeof(p[record].sex)); p[record].age=0; memset(p[record].comment,0,sizeof(p[record].comment));printf("新学号: ");scanf("%s",p[record].idstu); printf("姓名: "); scanf("%s",p[record].name); printf("性别: "); scanf("%s",p[record].sex); printf("年龄: "); scanf("%d",&p[record].age); printf("备注: "); scanf("%s",p[record].comment);printf("修改完成!\n");}else printf("无此记录!\n");}Sleep(3000);system("cls");ShowMenu(p);}void SearchInfo(struct Student *p){int select;system("cls");printf("------------------学生基本信息查询--------------------\n");printf("----- (1)按学号查询 -----\n");printf("----- (2)按姓名查询 -----\n");printf("----- (3)按性别查询 -----\n");printf("----- (4)按年龄查询 -----\n");printf("输入菜单功能对应的序号: ");scanf("%d",&select);sonmenu[select-1](p);}void Search_byidnum(struct Student *p){int i,find_state=0;char searchnum[20];system("cls");printf("输入学号: ");scanf("%s",searchnum);for(i=0;i<stunum;i++)if(strcmp(searchnum,p[i].idstu)==0){printf("查询结果:\n");printf("学号: %s\n",p[i].idstu);printf("姓名: %s\n",p[i].name);printf("性别: %s\n",p[i].sex);printf("年龄: %d\n",&p[i].age);printf("备注: %s\n",&p[i].comment);find_state=1;break;}if(find_state==1) printf("查询完毕!\n");else printf("无此记录!\n");Sleep(3000);ShowMenu(p);}void Search_byname(struct Student *p){int i,count=1,find_state=0;int namerecord[stuN];char searchname[20];system("cls");printf("输入姓名: ");scanf("%s",searchname);for(i=0;i<stunum;i++){if(strcmp(searchname,p[i].name)==0){namerecord[count]=i;find_state=1;count++;}}if(find_state==1){for(i=1;i<count;i++){printf("查询结果%d:\n",i); printf("学号: %s\n",p[namerecord[i]].idstu); printf("姓名: %s\n",p[namerecord[i]].name); printf("性别: %s\n",p[namerecord[i]].sex); printf("年龄: %d\n",p[namerecord[i]].age);printf("备注: %s\n",p[namerecord[i]].comment);}}else printf("无此记录!\n");Sleep(3000);system("cls");ShowMenu(p);}void Search_bysex(struct Student *p){char searchsex[6];int i,j,find_state=0,count=1;int idlen,nalen;int sexrecord[stuN];system("cls");printf("请输入性别: ");scanf("%s",searchsex);for(i=0;i<stunum;i++){if(strcmp(searchsex,p[i].sex)==0){find_state=1;sexrecord[count]=i;count++;}}if(find_state==1){for(i=1;i<count;i++){idlen=strlen(p[sexrecord[i]].idstu); nalen=strlen(p[sexrecord[i]].name); printf("-%s",p[sexrecord[i]].idstu); for(j=1;j<16-idlen;j++) printf("-"); printf("%s",p[sexrecord[i]].name); for(j=0;j<9-nalen/2;j++) printf("-"); printf("%s-----",p[sexrecord[i]].sex); printf("%d----",p[sexrecord[i]].age); puts(p[sexrecord[i]].comment);}}else printf("无此记录!\n");Sleep(3000);system("cls");ShowMenu(p);}void Search_byage(struct Student *p){int i,j,searchage,count=1,find_state=0;int agerecord[stuN],idlen,nalen;system("cls");printf("请输入年龄: ");scanf("%d",&searchage);for(i=0;i<stunum;i++){if(searchage==p[i].age){find_state=1;agerecord[count]=i;count++;}}if(find_state==1){for(i=1;i<count;i++){idlen=strlen(p[agerecord[i]].idstu); nalen=strlen(p[agerecord[i]].name); printf("-%s",p[agerecord[i]].idstu); for(j=1;j<16-idlen;j++) printf("-"); printf("%s",p[agerecord[i]].name); for(j=0;j<9-nalen/2;j++) printf("-"); printf("%s-----",p[agerecord[i]].sex); printf("%d----",p[agerecord[i]].age); puts(p[agerecord[i]].comment);}}else printf("无此记录!\n");Sleep(3000);system("cls");ShowMenu(p);}void ExitSystem(struct Student *p){printf("成功退出系统!\n");exit(0);}void PasswdAsk(){char passwd[20];char setpasswd[20]={"hello"};int pass_state=0;refresh:printf("----------系统登陆验证-----------\n");printf("输入密码: ");scanf("%s",passwd);if(strcmp(passwd,setpasswd)==0){pass_state=1;printf("登陆成功!\n");Sleep(1000);system("cls");}else{printf("密码错误!重新输入!\n");Sleep(1000);memset(passwd,0,20);system("cls");goto refresh;}}void ShowMenu(struct Student *p){char selectchar;system("cls");reshow:printf("-------------------------MENU-------------------------\n");printf("----- a.学生基本信息录入 -----\n");printf("----- b.学生基本信息显示 -----\n");printf("----- c.学生基本信息保存 -----\n");printf("----- d.学生基本信息删除 -----\n");printf("----- e.学生基本信息修改(要求先输入密码)--\n");printf("----- f.学生基本信息查询 -----\n");printf("----- g.退出系统 -----\n"); getchar();printf("输入菜单功能对应的序号: ");while(1){scanf("%c",&selectchar); if(selectchar>=97&&selectchar<=103){menu[(int)(selectchar-49)-'0'](p);break;}else {printf("无此序号,重新输入!");Sleep(1000);system("cls");goto reshow;}}}
0 0
- 一个简单的档案管理应用(DOS平台)
- Cloudstack+XenServer配置和管理一个简单的云平台
- 一个简单易用的容器管理平台-Humpback
- docker一个简单易用的容器管理平台-Humpback
- npm node 模块管理、简单的dos命令
- 什么是有效的电子档案管理
- Linux的档案与目录管理
- 【docker】docker—应用的管理平台
- 介绍一个简单的数据库开发平台——mcis应用服务器中间件
- 通过Ionic构建一个简单的混合式(Hybrid)跨平台移动应用
- 一个简单的缓存管理
- 使用Process进行DOS命令交互的简单应用
- 使用Process进行DOS命令交互的简单应用
- 【代码】一个简单的ATM提款机的DOS操作系统
- Ai简单绘制档案的图标
- 写一个简单的打飞机游戏(Dos界面)
- ajax的一个简单应用
- 一个简单的AJAX应用
- DHT网络原理制作bt采集蜘蛛,开源版
- Android的虚拟机的键盘显示"not enabled in AVD"解决方法
- POJ 1149PIGS(网络流之最大流)
- 高斯约当法求逆矩阵的算法实现(C++)
- poj 2485:Highways
- 一个简单的档案管理应用(DOS平台)
- Android初级教程_onKeyDown监听返回键无效
- Android中AutoCompleteTextView,Spinner和ListView的使用
- object-c里self与super的区别
- 详解Javahome 与 Path 与ClassPath的含义
- 折腾
- WebGIS 学习笔记(3) GeoServer 的层
- C# 流总结
- Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback之间的关系