first commit

master
unknown 7 years ago
parent 99c6dcb25c
commit dcaab6884d

@ -0,0 +1,348 @@
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<windows.h>
FILE *fp;//文件指针
int i_entry=0;//学生的人数统计
#define MIN_C 100//每个数据对应字符串类型占据的大小
#define MAX_G 1000//学生信息量大小
struct student {
char stuid[MIN_C];//学生学号
char name[MIN_C];//学生姓名
char age[3];//学生年龄
char gender[MIN_C];//学生性别
char birth[MIN_C];//学生出生日期
char add[MIN_C];//学生地址
char tle[MIN_C];//学生电话
char email[MIN_C];//学生邮箱
}DATA[MAX_G];
struct student temp[MAX_G];//用于排序的中间变量
struct student are;
//被调函数
void init();//文件的初始化读入
void GREEN();//控制台颜色为绿色
void RED();//控制台调整前景色为红色
void LIGHT();//控制台调整前景色为强光
void deal();//处理数据
//dell()函数包含的自定义函数
void notice();//提示信息
void case1();//学生综合信息录入
void entry();
void file_save();
void case2();//学生综合信息浏览
void i_printf();
void case3();//综合信息排序浏览
void stuid_sort(int I,int L);
void name_sort(int I,int L);
void case4();//学生个人信息查询
void stuid_find();
void name_find();
void case5();//学生综合信息修改
void Change(int x);
int main()
{ GREEN();
printf(">********* 亲 ><欢迎使用学生信息管理系统 *********<\n");
printf(">*********亲 请输入正确的密码,超过三次错误将退出系统哦\n");
int u=3;
char s[15];
while(u--)
{if(u==2)
printf("亲 请输入正确密码 ") ;
else
printf("亲,您的密码有误,请重新输入");
scanf("%s",s);
if(strcmp("asdfghjkl",s)==0)
{
break;
}
else
continue;
}
if(u==0)
{ GREEN();
printf(" 》******* 亲您的密码输入有误sorry\n");
return 0;
}
else
{
if((fp=fopen("student_data.txt","r+"))==NULL)
{
printf("FILE\n");
fp=fopen("student_data.txt","w+");
}
init();//文件的初始化读入
LIGHT();
printf("当前总人数:%d\n",i_entry);
GREEN();//控制台颜色为绿色
printf(">********** 欢迎您使用学生信息管理系统1.1 **********<\n");
printf(">********** 请输入以下命令行所对应的数字进行操作: **********<\n");
printf(">**********请确定正确退出程序,否则文件将不能被正常保存。**********<\n");
deal();//处理数据
fclose(fp);//文件正常关闭
return 0;
}}
void init() //文件的初始化读取
{
while (!feof(fp))
{
fscanf(fp, "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", DATA[i_entry].stuid, DATA[i_entry].name, DATA[i_entry].age,
DATA[i_entry].gender, DATA[i_entry].birth, DATA[i_entry].add, DATA[i_entry].tle, DATA[i_entry].email);
i_entry++;
}
}
void RED() {//控制台调整前景色为红色
HANDLE kai_1 = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(kai_1, FOREGROUND_INTENSITY | FOREGROUND_RED); // 为红色
}
void GREEN() {//控制台调整前景色为绿色
HANDLE kai_2 = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(kai_2, FOREGROUND_INTENSITY | FOREGROUND_GREEN);// 为绿色
}
void LIGHT(){
HANDLE kai_2 = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(kai_2, FOREGROUND_INTENSITY | FOREGROUND_INTENSITY);// 为强光
}
void deal() {//主要处理函数
int k,flag,p;
p=1;
notice();
flag=1;
while(flag) {
if(p>1)
{
system("cls");
notice();
}
scanf("%d",&k);
system("cls");
switch(k) {
case 0: {
puts("温馨提醒:");
puts("\t ^…………^……^^谢谢您的支持,欢迎再次使用!^^……^…………^ ");
puts("\t*******学生基本信息已保存在当前目录文件 student_data.txt 下********");
flag=0;
LIGHT();
break;
}
case 1: {
case1();
break;
}
case 2: {
case2();
break;
}
case 3: {
case3();
break;
}
case 4: {
case4();
break;
}
case 5: {
case5();
break;
}
default: {
RED();
printf("请正确键入命令前数字!\n");
GREEN();
break;
}
}
p=1103;
puts("\n");
}
}
void notice() {//提示信息
RED();
puts("\t\t\t1.学生综合信息录入");
puts("\t\t\t2.学生综合信息浏览");
puts("\t\t\t3.综合信息排序浏览");
puts("\t\t\t4.学生个人信息查询");
puts("\t\t\t5.学生综合信息修改");
printf("\t\t\t0. 退 出 系 统\n");
GREEN();
printf("请键入:");
}
//11111111111
void case1() {//学生综合信息录入
int flag;
flag=1;
while(flag) {
entry();
LIGHT();
printf("提示1,继续录入0,录入完成.是否继续录入:");
GREEN();
scanf("%d",&flag);
i_entry++;
}
}
void entry() {//学生信息的录入
int flag,i;
system("cls");
init();
flag=1;
puts("***************>>>>>>当前模式为学生信息录入状态<<<<<<*************");
printf("请输入学生学号:");
flag=1;//标识变量,用以判断该信息是否已存在
scanf("%s",&DATA[i_entry].stuid);
for(i=0; i<i_entry; i++) //判断输入数据的正误,即文件中是否已存在该信息
if(strcmp(DATA[i].stuid,DATA[i_entry].stuid)==0) {
flag=0;
break;
}
if(flag==1) {
printf("请输入学生姓名:");
scanf("%s",DATA[i_entry].name);
printf("请输入学生年龄:");
scanf("%s",DATA[i_entry].age);
printf("请输入学生性别:");
scanf("%s",DATA[i_entry].gender);
printf("请输入学生出生年月日(以/隔开)");
scanf("%s",DATA[i_entry].birth);
printf("请输入学生联系地址:");
scanf("%s",DATA[i_entry].add);
printf("请输入学生联系电话:");
scanf("%s",DATA[i_entry].tle);
printf("请输入学生联系邮箱:");
scanf("%s",DATA[i_entry].email);
file_save();
}
if(flag==0)
puts("该学号已经存在,如需修改请转到修改命令!");
}
void file_save() {//信息以文件格式录入函数
fprintf(fp, "%s\t\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", DATA[i_entry].stuid, DATA[i_entry].name,DATA[i_entry].age,
DATA[i_entry].gender, DATA[i_entry].birth, DATA[i_entry].add, DATA[i_entry].tle, DATA[i_entry].email);
printf("保存成功!");
}
//2222222222222
void case2() {//学生综合信息浏览
puts("***************>>>>>>当前模式为学生信息浏览状态<<<<<<*************");
i_printf();
}
void i_printf() {//学生信息的输出
int i,k=1;
//printf("学号\t姓名\t年龄\t性别\t出生年/月/日\t联系地址\t联系电话\t联系邮箱");
printf("\n");
if(k)
{
for(i=0; i<i_entry; i++)
{
printf("学号:%-18s\n",&DATA[i].stuid);
printf("姓名:%-16s\n",DATA[i].name);
printf("年龄:%-4s\n",&DATA[i].age);
printf("性别:%-6s\n",DATA[i].gender);
printf("出生年月日:%-12s\n",&DATA[i].birth);
printf("地址:%-16s\n",DATA[i].add);
printf("联系方式:%-16s\n",DATA[i].tle);
printf("邮箱:%-15s\n\n",DATA[i].email);
}
LIGHT();
printf("提示退出请按0并按回车键。\n");
scanf("%d",&k);
}
}
//44444444444
void case4() {//学生个人信息查询
int v;
LIGHT();
printf("提示1,按照学号查询2,按照姓名查询.请键入:");
GREEN();
scanf("%d",&v);
if(v==1) {
stuid_find();
}
if(v==2) {
name_find();
}
}
void stuid_find() {//学号查找 利用strcmp()函数
int i,flag=0,k;
char wqs[MIN_C];
k=1;
system("cls");
puts("***************>>>>>>当前模式以学号查询信息状态<<<<<<*************");
while(k) {
printf("请键入学生学号: ");
scanf("%s",wqs);
for(i=0; i<i_entry; i++)
if(strcmp(DATA[i].stuid,wqs)==0) {
printf("学号:%-18s\n",&DATA[i].stuid);
printf("姓名:%-16s\n",DATA[i].name);
printf("年龄:%-4s\n",&DATA[i].age);
printf("性别:%-6s\n",DATA[i].gender);
printf("出生年月日:%-12s\n",&DATA[i].birth);
printf("地址:%-16s\n",DATA[i].add);
printf("联系方式:%-16s\n",DATA[i].tle);
printf("邮箱:%-15s\n",DATA[i].email);
flag=1;
}
if(flag==0)
puts("未查找到该同学信息,如需录入信息请重新键入命令.");
LIGHT();
puts("请按照文字提示键入命令:");
printf("\t\t1.继续查询\n\t\t0.退出查询\n请键入命令:");
GREEN();
scanf("%d",&k);
}
}
void name_find() {//姓名查找 利用函数strcmp()==0 的特性
int i,flag=0,k;
char wqs[MIN_C];
k=1;
system("cls");
puts("***************>>>>>>当前模式以姓名查询信息状态<<<<<<*************");
while(k) {
printf("请键入学生姓名: ");
scanf("%s",wqs);
for(i=0; i<i_entry; i++)
if(strcmp(DATA[i].name,wqs)==0) {
printf("学号:%-18s\n",&DATA[i].stuid);
printf("姓名:%-16s\n",DATA[i].name);
printf("年龄:%-4s\n",&DATA[i].age);
printf("性别:%-6s\n",DATA[i].gender);
printf("出生年月日:%-12s\n",&DATA[i].birth);
printf("地址:%-16s\n",DATA[i].add);
printf("联系方式:%-16s\n",DATA[i].tle);
printf("邮箱:%-15s\n",DATA[i].email);
flag=1;
}
if(flag==0)
puts("未查找到该同学信息,如需录入信息请重新键入命令.");
LIGHT();
puts("请按照文字提示键入命令:");
printf("\t\t1.继续查询\n\t\t0.退出查询\n请键入命令:");
GREEN();
scanf("%d",&k);
}
}

@ -3,6 +3,7 @@
#include<stdlib.h>
#include<math.h>
#include<windows.h>
#include"fu.h"
FILE *fp;//文件指针
int i_entry=0;//学生的人数统计
@ -270,7 +271,6 @@ void i_printf() {//ѧ
}
}
//44444444444
void case4() {//学生个人信息查询
int v;
@ -348,3 +348,4 @@ void name_find() {//
}

Loading…
Cancel
Save