first commit

master
idealthm 6 years ago
commit b6b20b9b21

@ -0,0 +1,28 @@
# Project: ¿ÎÉè
# Makefile created by Dev-C++ 5.7.1
CPP = g++.exe
CC = gcc.exe
WINDRES = windres.exe
OBJ = main.o
LINKOBJ = main.o
LIBS = -L"C:/Program Files (x86)/Dev-Cpp/MinGW32/lib" -L"C:/Program Files (x86)/Dev-Cpp/MinGW32/mingw32/lib" -static-libstdc++ -static-libgcc -g3
INCS = -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/lib/gcc/mingw32/4.8.1/include"
CXXINCS = -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/lib/gcc/mingw32/4.8.1/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW32/lib/gcc/mingw32/4.8.1/include/c++"
BIN = ¿ÎÉè.exe
CXXFLAGS = $(CXXINCS) -g3 -std=c99
CFLAGS = $(INCS) -g3 -std=c99
RM = rm.exe -f
.PHONY: all all-before all-after clean clean-custom
all: all-before $(BIN) all-after
clean: clean-custom
${RM} $(OBJ) $(BIN)
$(BIN): $(OBJ)
$(CC) $(LINKOBJ) -o $(BIN) $(LIBS)
main.o: main.c
$(CC) -c main.c -o main.o $(CFLAGS)

@ -0,0 +1 @@
18408000401 宋亮晴 1 1 1

@ -0,0 +1,14 @@
void menus();
void input();
void display();
void save();
int my_delete();
void end();
int password();
int login();
int cpassword();
int alter();
void demand();
void _menus();
void out();
void _menus2();

523
main.c

@ -0,0 +1,523 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
#include <time.h>
#include <conio.h>
//#include <unistd.h>
#include "head.h"
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int num=0;//当前数组中存储的数据量
struct node{
char stnum[20];
char stname[20];
char sex[8];
int age;
char detail[100];
}student[1000];
int main(int argc, char *argv[]) {
//if(!login())return 0;
menus();
char choice;
while(1){
printf("请输入正确选项!\n");
choice=getch();
system("cls");
switch(choice){
case '1':
input();
end();
break;
case '2':
display();
break;
case '3':
printf("\a保存后将退出系统\n是否继续?\n继续则输入'Y'\n按其他任意键取消\n");
char ch;
ch=getch();
if(ch=='Y'||ch=='y'){
save();
out();
return 0;
}
break;
case '4':
if(my_delete()!=1){
out();
return 0;
}
break;
case '5':
if(alter()!=1){
out();
return 0;
}
break;
case '6':
demand();
break;
case '7':
if(cpassword()!=1){
out();
return 0;
}
break;
case '8':
out();
return 0;
default:
system("cls");
end();
break;
}
system("cls");
menus();
}
return 0;
}
void out()
{
system("cls");
printf("本次使用到此结束!\n即将退出程序!\n");
for(int i=3;i>0;i--){
printf("%d秒后退出程序\n",i);
Sleep(1000);
}
}
void menus()
{
printf("\t\t\t\t**********请选择系统功能选项**************\n");
printf("\t\t\t\t*--------1 学生基本信息录入--------------*\n");
printf("\t\t\t\t*--------2 学生基本信息显示--------------*\n");
printf("\t\t\t\t*--------3 学生基本信息保存--------------*\n");
printf("\t\t\t\t*---4 学生基本信息删除(此选项须输入密码)-*\n");
printf("\t\t\t\t*---5 学生基本信息修改(此选项须输入密码)-*\n");
printf("\t\t\t\t*--------6 学生基本信息查询--------------*\n");
printf("\t\t\t\t*------------7 密码修改------------------*\n");
printf("\t\t\t\t*------------8 退出系统------------------*\n");
printf("\t\t\t\t******************************************\n\n");
}
void input()
{
int n=0;
char c='0';
int falg=1;
printf("请输入你要录入的学生信息数:\n");
do{
c=getch();
if(c>'9'||c<'0'){
system("cls");
printf("数值非法!!!\n请重新输入!\n");
}
}while(c>'9'||c<'0');
n=c-'0';
printf("你选择录入%d名学生\n",n);
if(num+n+1>=1000){
printf("本次录入只能录入%d名学生\n",1000-num-1);
falg=0;
}
for(int i=num;i<n+num;i++){
if(i==num)printf("请输入学生基本信息!\n");
printf("学号\t姓名\t性别\t年龄\t备注\n");
if(!falg){
printf("您还可以录入%d名学生",1000-i-1);
scanf("%s %s %s %d %s",&student[i].stnum,&student[i].stname,&student[i].sex,&student[i].age,&student[i].detail);
}else{
scanf("%s %s %s %d %s",&student[i].stnum,&student[i].stname,&student[i].sex,&student[i].age,&student[i].detail);
}
if(i!=n+num-1)printf("请输入下一名学生基本信息!\n");
}
if(!falg)num=1000;
else num+=n;
printf("录入成功!\a\n");
Sleep(1000);
}
void display()
{
struct node tem[1000];
int i=0;
printf("已保存的名学生基本信息:\n");
FILE *fp=fopen("data.txt","r");
while(fscanf(fp,"%s%s%s%d%s",tem[i].stnum,tem[i].stname,tem[i].sex,&tem[i].age,tem[i].detail)!=EOF){
printf("学号:%-12s姓名:%-8s\t性别:%-4s\t年龄:%-4d\t备注:%-4s\n",tem[i].stnum,tem[i].stname,tem[i].sex,tem[i].age,tem[i].detail);
i++;
}
fclose(fp);
end();
}
void save()
{
FILE *fp;
fp=fopen("data.txt","a+");
if(fp==NULL){
printf("文件打开失败!\n即将返回菜单\n");
return ;
}
for(int i=0;i<num;i++){
fprintf(fp,"%s\t%s\t%s\t%d\t%s\n",student[i].stnum,student[i].stname,student[i].sex,student[i].age,student[i].detail);
}
printf("已录入%d名学生基本信息\a\n",num);
Sleep(1000);
int c=fclose(fp);
if(c!=0){
printf("文件打开失败!\n");
}
}
int my_delete()
{
display();
if(password()==0)return 0;
struct node tem[1000];
FILE *fp=fopen("data.txt","r");
FILE *out=fopen("data2.txt","w");
int i=0;
char s[20];
printf("仅支持按学号删除!!\n");
printf("请输入您所要删除的信息的相关学号:");
scanf("%s",s);
while(fscanf(fp,"%s%s%s%d%s",tem[i].stnum,tem[i].stname,tem[i].sex,&tem[i].age,tem[i].detail)!=EOF){
if(strcmp(s,tem[i].stnum)!=0)fprintf(out,"%s\t%s\t%s\t%d\t%s\n",tem[i].stnum,tem[i].stname,tem[i].sex,tem[i].age,tem[i].detail);
i++;
}
fclose(fp);
fclose(out);
unlink("data.txt");
rename("data2.txt","data.txt");
printf("删除完成!\a");
Sleep(500);
system("cls");
return 1;
}
int alter()
{
display();
if(password()==0)return 0;
struct node tem[1000];
FILE *fp;
fp=fopen("data.txt","r");
FILE *ou;
ou=fopen("data2.txt","w");
int i=0;
char s[20];
char t[20];
int d;
printf("仅支持按学号修改!!\n");
printf("请输入您所要删除的信息的相关学号:");
scanf("%s",s);
system("cls");
_menus2();
printf("请选择你的选项!\n");
char cho;
cho=getch();
printf("\n请输入数据:");
switch (cho){
case '1':
scanf("%s",t);
while(fscanf(fp,"%s%s%s%d%s",tem[i].stnum,tem[i].stname,tem[i].sex,&tem[i].age,tem[i].detail)!=EOF){
if(strcmp(s,tem[i].stnum)==0)
{
fprintf(ou,"%s\t%s\t%s\t%d\t%s\n",t,tem[i].stname,tem[i].sex,tem[i].age,tem[i].detail);
printf("学号:%-12s姓名:%-8s\t性别:%-4s\t年龄:%-4d\t备注:%-4s\n",t,tem[i].stname,tem[i].sex,tem[i].age,tem[i].detail);
}
else fprintf(ou,"%s\t%s\t%s\t%d\t%s\n",tem[i].stnum,tem[i].stname,tem[i].sex,tem[i].age,tem[i].detail);
i++;
}
break;
case '2':
scanf("%s",t);
while(fscanf(fp,"%s%s%s%d%s",tem[i].stnum,tem[i].stname,tem[i].sex,&tem[i].age,tem[i].detail)!=EOF){
if(strcmp(s,tem[i].stnum)==0)
{
fprintf(ou,"%s\t%s\t%s\t%d\t%s\n",tem[i].stnum,t,tem[i].sex,tem[i].age,tem[i].detail);
printf("学号:%-12s姓名:%-8s\t性别:%-4s\t年龄:%-4d\t备注:%-4s\n",tem[i].stnum,t,tem[i].sex,tem[i].age,tem[i].detail);
}
else fprintf(ou,"%s\t%s\t%s\t%d\t%s\n",tem[i].stnum,tem[i].stname,tem[i].sex,tem[i].age,tem[i].detail);
i++;
}
break;
case '3':
scanf("%s",t);
while(fscanf(fp,"%s%s%s%d%s",tem[i].stnum,tem[i].stname,tem[i].sex,&tem[i].age,tem[i].detail)!=EOF){
if(strcmp(s,tem[i].stnum)==0)
{
fprintf(ou,"%s\t%s\t%s\t%d\t%s\n",tem[i].stnum,tem[i].stname,t,tem[i].age,tem[i].detail);
printf("学号:%-12s姓名:%-8s\t性别:%-4s\t年龄:%-4d\t备注:%-4s\n",tem[i].stnum,tem[i].stname,t,tem[i].age,tem[i].detail);
}
else fprintf(ou,"%s\t%s\t%s\t%d\t%s\n",tem[i].stnum,tem[i].stname,tem[i].sex,tem[i].age,tem[i].detail);
i++;
}
break;
case '4':
scanf("%d",&d);
while(fscanf(fp,"%s%s%s%d%s",tem[i].stnum,tem[i].stname,tem[i].sex,&tem[i].age,tem[i].detail)!=EOF){
if(strcmp(s,tem[i].stnum)==0)
{
fprintf(ou,"%s\t%s\t%s\t%d\t%s\n",tem[i].stnum,tem[i].stname,tem[i].sex,d,tem[i].detail);
printf("学号:%-12s姓名:%-8s\t性别:%-4s\t年龄:%-4d\t备注:%-4s\n",tem[i].stnum,tem[i].stname,tem[i].sex,d,tem[i].detail);
}
else fprintf(ou,"%s\t%s\t%s\t%d\t%s\n",tem[i].stnum,tem[i].stname,tem[i].sex,tem[i].age,tem[i].detail);
i++;
}
break;
default:
out();
return 1;
}
while(fscanf(fp,"%s%s%s%d%s",tem[i].stnum,tem[i].stname,tem[i].sex,&tem[i].age,tem[i].detail)!=EOF){
if(strcmp(s,tem[i].stnum)!=0)fprintf(ou,"%s\t%s\t%s\t%d\t%s\n",tem[i].stnum,tem[i].stname,tem[i].sex,tem[i].age,tem[i].detail);
i++;
}
fclose(fp);
fclose(ou);
unlink("data.txt");
rename("data2.txt","data.txt");
printf("文件修改完成!\a");
Sleep(2500);
system("cls");
return 1;
}
void demand()
{
char choice;
while(1){
while(1){
system("cls");
_menus();
printf("请输入正确选项!\n");
choice=getch();
if(choice<'6'&&choice>'0'){
printf("您选择的是%d选项\n",choice-'0');
break;
}
}
struct node tem[1000];
FILE *fp;
fp=fopen("data.txt","r");
if(fp==NULL){
printf("文件打开失败!\n");
end();
return ;
}
int i=0;
while(fscanf(fp,"%s%s%s%d%s",tem[i].stnum,tem[i].stname,tem[i].sex,&tem[i].age,tem[i].detail)!=EOF){
i++;
}
fclose(fp);
int sum=i;
char d[20];
int c;
int fa=1;
switch(choice){
case '1':
printf("请输入学号:");
scanf("%s",d);
printf("\n");
for(int i=0;i<sum;i++){
if(strcmp(d,tem[i].stnum)==0){
printf("学号:%s\t姓名:%s\t性别:%s\t年龄:%d\t备注:%s\n",tem[i].stnum,tem[i].stname,tem[i].sex,tem[i].age,tem[i].detail);
fa=0;
}
}
printf("%s\a\n",fa==1?"此次查询无有效信息!":"查询结果如上!");
end();
break;
case '2':
printf("请输入姓名:");
scanf("%s",d);
printf("\n");
for(int i=0;i<sum;i++){
if(strcmp(d,tem[i].stname)==0){
printf("学号:%s\t姓名:%s\t性别:%s\t年龄:%d\t备注:%s\n",tem[i].stnum,tem[i].stname,tem[i].sex,tem[i].age,tem[i].detail);
fa=0;
}
}
printf("%s\a\n",fa==1?"此次查询无有效信息!":"查询结果如上!");
end();
break;
case '3':
printf("请输入性别:");
scanf("%s",d);
printf("\n");
for(int i=0;i<sum;i++){
if(strcmp(d,tem[i].sex)==0){
printf("学号:%s\t姓名:%s\t性别:%s\t年龄:%d\t备注:%s\n",tem[i].stnum,tem[i].stname,tem[i].sex,tem[i].age,tem[i].detail);
fa=0;
}
}
printf("%s\a\n",fa==1?"此次查询无有效信息!":"查询结果如上!");
end();
break;
case 4:
printf("请输入年龄:");
scanf("%d",&c);
printf("\n");
for(int i=0;i<sum;i++){
if(c==tem[i].age){
printf("学号:%s\t姓名:%s\t性别:%s\t年龄:%d\t备注:%s\n",tem[i].stnum,tem[i].stname,tem[i].sex,tem[i].age,tem[i].detail);
fa=0;
}
}
printf("%s\a\n",fa==1?"此次查询无有效信息!":"查询结果如上!");
end();
break;
case '5':
return ;
}
}
}
void end()
{
char c;
printf("按任意键继续!\n");
c=getch();
}
void _menus()
{
printf("\t\t\t\t\t********选择你需要的查询********\n");
printf("\t\t\t\t\t*--------1 按学号查询----------*\n");
printf("\t\t\t\t\t*--------2 按姓名查询----------*\n");
printf("\t\t\t\t\t*--------3 按性别查询----------*\n");
printf("\t\t\t\t\t*--------4 按年龄查询----------*\n");
printf("\t\t\t\t\t*--------5 退出查询------------*\n\n");
}
void _menus2()
{
printf("\t\t\t\t\t*********请选择修改方式*******\n");
printf("\t\t\t\t\t*--------1 修改学号----------*\n");
printf("\t\t\t\t\t*--------2 修改姓名----------*\n");
printf("\t\t\t\t\t*--------3 修改性别----------*\n");
printf("\t\t\t\t\t*--------4 修改年龄----------*\n");
printf("\t\t\t\t\t*--------5 退出--------------*\n\n");
}
int password()
{
char mi[100];
char mi2[100];
char zhang2[100];
int fa=1;
FILE *fp;
fp=fopen("user.txt","r");
if(fp==NULL){
printf("打开文件失败!\n");
}
fscanf(fp,"%s",zhang2);
fscanf(fp,"%s",mi2);
fclose(fp);
while(1){
if(fa>3){
char si;
printf("密码错误超过三次!\n");
printf("是否继续输入");
printf("按Y则继续输入\n否则退出!\n");
si=getch();
if(si!='Y')return 0;
}
printf("请输入密码!\n");
scanf("%s",mi);
if(strcmp(mi,mi2)==0){
printf("密码正确!\n");
Sleep(1000);
return 1;
}else {
printf("密码错误!\n");
Sleep(1000);
}
fa++;
}
return 0;
}
int login()
{
char mi[100];
char zhang[100];
char mi2[100];
char zhang2[100];
FILE *fp;
fp=fopen("user.txt","r");
if(fp==NULL){
printf("打开文件失败!\n");
Sleep(1000);
return 0;
}
fscanf(fp,"%s",zhang2);
fscanf(fp,"%s",mi2);
fclose(fp);
for(int i=0;i<3;i++){
printf("请输入您的账号:");
scanf("%s",zhang);
printf("\n");
printf("请输入您的密码:");
scanf("%s",mi);
printf("\n");
if(strcmp(mi,mi2)!=0||strcmp(zhang,zhang2)!=0){
system("cls");
printf("账号或密码输入错误!\n请重新输入!\n你还有%d次机会\n",3-i-1);
if(3-i-1==0){
printf("本次使用到此结束!\n");
printf("按任意键退出!\n");
getchar();
getchar();
return 0;
}
}else{
printf("欢迎使用本系统!\n");
end();
system("cls");
return 1;
}
}
end();
return 0;
}
int cpassword()
{
char mi[100];
char zhang[100];
char mi2[100];
char zhang2[100];
if(password()!=1){
return 0;
}
FILE *out;
out=fopen("user.txt","r");
fscanf(out,"%s",zhang2);
fclose(out);
while(1){
printf("请修改您的密码!\n");
scanf("%s",mi2);
printf("请确认您的密码!\n");
scanf("%s",mi);
if(strcmp(mi,mi2)==0){
FILE *fp;
fp=fopen("user.txt","w+");
fprintf(fp,"%s %s",zhang2,mi2);
fclose(fp);
break;
}else {
printf("两次密码不匹配\n请重新输入!\n");
Sleep(1000);
system("cls");
}
}
printf("密码修改成功!\n");
printf("请重新登陆!\n");
Sleep(1000);
system("cls");
return login();
}

Binary file not shown.

BIN
main.o

Binary file not shown.

@ -0,0 +1 @@
123 123

@ -0,0 +1,72 @@
[Project]
FileName=¿ÎÉè.dev
Name=¿ÎÉè
Type=1
Ver=2
ObjFiles=
Includes=
Libs=
PrivateResource=
ResourceIncludes=
MakeIncludes=
Compiler=
CppCompiler=
Linker=
IsCpp=0
Icon=
ExeOutput=
ObjectOutput=
LogOutput=
LogOutputEnabled=0
OverrideOutput=0
OverrideOutputName=
HostApplication=
UseCustomMakefile=0
CustomMakefile=
CommandLine=
Folders=
IncludeVersionInfo=0
SupportXPThemes=0
CompilerSet=0
CompilerSettings=0000000000000000001000000
UnitCount=2
[VersionInfo]
Major=1
Minor=0
Release=0
Build=0
LanguageID=1033
CharsetID=1252
CompanyName=
FileVersion=
FileDescription=Developed using the Dev-C++ IDE
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=
AutoIncBuildNr=0
SyncProduct=1
[Unit1]
FileName=main.c
CompileCpp=0
Folder=¿ÎÉè
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit2]
FileName=head.h
CompileCpp=0
Folder=¿ÎÉè
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=

Binary file not shown.

@ -0,0 +1,29 @@
[Editors]
Focused=0
Order=1,0
[Editor_0]
Open=1
Top=1
CursorCol=19
CursorRow=6
TopLine=1
LeftChar=1
[Editor_1]
Open=1
Top=0
CursorCol=12
CursorRow=6
TopLine=1
LeftChar=1
[Editor_2]
Open=1
Top=1
CursorCol=27
CursorRow=26
TopLine=1
LeftChar=1
[Editor_3]
CursorCol=1
CursorRow=1
TopLine=1
LeftChar=1
Loading…
Cancel
Save