#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
struct student
{
char number[20];//学号
char name[20];//姓名
char select[20];//选题
char tel[20];//电话
}p[100];
int NUM=0;
struct project
{
char name[20];//题目
char course[20];//内容
char tea[10];//教师
}T[100];
int T_NUM=0;
void init()
{
int i=0;
printf(" 系统正在初始化,请稍后\n");
printf(" --------------");
for(i=0;i<=100;i++)
{
Sleep(50);
printf("\b\b\b\b%-3d%%",i);
}
printf("\n 初始化成功!\n");
printf("欢迎使用毕业生选题系统\n");
system("pause");
system("cls");
}
int stu_menu()
{
int n;
system("cls");
printf("------------------------------\n");
printf("1:新增学生信息\n");
printf("2:显示学生信息\n");
printf("3:删除学生信息\n");
printf("4:查找学生信息\n");
printf("5:修改学生信息\n");
printf("0:返回\n");
printf("------------------------------\n");
printf("请输入编号进行操作!\n");
scanf("%d",&n);
while(n<0||n>5)
{
printf("输入范围错误,重新输入");
scanf("%d",&n);
}
return n;
}
int tea_menu()
{
int n;
system("cls");
printf("------------------------------\n");
printf("1:新增毕设信息\n");
printf("2:显示毕设信息\n");
printf("3:删除毕设信息\n");
printf("4:查找毕设信息\n");
printf("5:修改毕设信息\n");
printf("0:返回\n");
printf("------------------------------\n");
printf("请输入编号进行操作!\n");
scanf("%d",&n);
while(n<0||n>5)
{
printf("输入范围错误,重新输入");
scanf("%d",&n);
}
return n;
}
/*新增*/
void add_new_stu()
{
system("cls");
printf("请输入新增学生学号\n");
scanf("%s",&p[NUM].number);
printf("请输入新增学生姓名\n");
scanf("%s",&p[NUM].name);
printf("请输入新增学生选题\n");
scanf("%s",&p[NUM].select);
printf("请输入新增学生电话\n");
scanf("%s",&p[NUM].tel);
NUM++;//学生人数+1
printf("新增学生成绩成功!\n");
system("pause");
}
void add_new_tea()
{
system("cls");
printf("请输入新增毕设名称\n");
scanf("%s",&T[T_NUM].name);
printf("请输入新增毕设内容\n");
scanf("%s",&T[T_NUM].course);
printf("请输入新增毕设指导教师\n");
scanf("%s",&T[T_NUM].tea);
T_NUM++;
printf("新增毕设信息成功!\n");
system("pause");
}
/*显示全部联系人*/
void show_stu()
{
int i=0;
system("cls");
printf("学号 姓名 选题 电话\n");
for(i=0;i<NUM;i++)
{
printf("%-10s%-10s%-12s%s\n",p[i].number,p[i].name,p[i].select,p[i].tel);
}
printf("\n");
system("pause");
}
void show_tea()
{
int i=0;
system("cls");
printf("名称 内容 指导教师\n");
for(i=0;i<T_NUM;i++)
{
printf("%-10s%-14s%s\n",T[i].name,T[i].course,T[i].tea);
}
printf("\n");
system("pause");
}
/*读取文件*/
void Open_Stu_File()
{
int i=0;
FILE *fp;
if((fp=fopen("student.txt","rb"))==NULL)
{
;
}
else
{
while(fread(&p[i],sizeof(struct student),1,fp))
{
i++;
NUM++;
}
fclose(fp);
}
}
void Open_Tea_File()
{
int i=0;
FILE *fp;
if((fp=fopen("project.txt","rb"))==NULL)
{
;
}
else
{
while(fread(&T[i],sizeof(struct project),1,fp))
{
i++;
T_NUM++;
}
fclose(fp);
}
}
/*保存文件*/
void Save_Stu_File()
{
FILE *fp;
int i;
if((fp=fopen("student.txt","wb"))==NULL)
{
printf("文件打开失败!");
system("pause");
return;
}
for(i=0;i<NUM;i++)
{
fwrite(&p[i],sizeof(struct student),1,fp);
}
fclose(fp);
}
void Save_Tea_File()
{
FILE *fp;
int i;
if((fp=fopen("project.txt","wb"))==NULL)
{
printf("文件打开失败!");
system("pause");
return;
}
for(i=0;i<T_NUM;i++)
{
fwrite(&T[i],sizeof(struct project),1,fp);
}
fclose(fp);
}
/*按名字删除*/
void del_stu_name()
{
int i,j;
char name[20];
system("cls");
printf("请输入要删除的学生姓名\n");
scanf("%s",name);
for(i=0;i<NUM;i++)
{
if(!strcmp(name,p[i].name))
{
for(j=i;j<NUM-1;j++)
{
p[j]=p[j+1];
}
break;
}
}
if(i==NUM)
{
printf("无此学生信息!删除失败!\n");
system("pause");
system("cls");
}
else
{
NUM--;
printf("删除成功!\n");
system("pause");
system("cls");
}
}
void del_tea_name()
{
int i,j;
char name[20];
system("cls");
printf("请输入要删除的毕设名称\n");
scanf("%s",name);
for(i=0;i<T_NUM;i++)
{
if(!strcmp(name,T[i].name))
{
for(j=i;j<T_NUM-1;j++)
{
T[j]=T[j+1];
}
break;
}
}
if(i==T_NUM)
{
printf("无此毕设信息!删除失败!\n");
system("pause");
system("cls");
}
else
{
T_NUM--;
printf("删除成功!\n");
system("pause");
system("cls");
}
}
/*按学号删除*/
void del_stu_num()
{
int i,j;
char temp[20];
system("cls");
printf("请输入要删除的学生学号\n");
scanf("%s",temp);
for(i=0;i<NUM;i++)
{
if(!strcmp(temp,p[i].number))
{
for(j=i;j<NUM-1;j++)
{
p[j]=p[j+1];
}
break;
}
}
if(i==NUM)
{
printf("无此学生信息!删除失败!\n");
system("pause");
system("cls");
}
else
{
NUM--;
printf("删除成功!\n");
system("pause");
system("cls");
}
}
void del_stu_menu()
{
int n;
do
{
system("cls");
printf("1:按学号删除\n");
printf("2:按姓名删除\n");
printf("0:返回\n");
scanf("%d",&n);
switch(n)
{
case 1:
del_stu_num();
break;
case 2:
del_stu_name();
break;
}
}while(n!=0);
}
/*按名字查找*/
void find_stu_name()
{
int i;
char n[20];
system("cls");
printf("请输入查找学生名字\n");
scanf("%s",n);
for(i=0;i<NUM;i++)
{
if(!strcmp(n,p[i].name))
{
printf("学号 姓名 选题 电话\n");
printf("%-10s%-10s%-12s%s",p[i].number,p[i].name,p[i].select,p[i].tel);
printf("\n");
break;
}
}
if(i==NUM)
printf("无此学生信息!\n");
system("pause");
}
void find_tea_name()
{
int i;
char n[20];
system("cls");
printf("请输入查找毕设名称\n");
scanf("%s",n);
for(i=0;i<T_NUM;i++)
{
if(!strcmp(n,T[i].name))
{
printf("名称 内容 指导教师\n");
printf("%-10s%-14s%s",T[i].name,T[i].course,T[i].tea);
printf("\n");
break;
}
}
if(i==T_NUM)
printf("无此教师信息!\n");
system("pause");
}
void find_stu_num()
{
int i;
char n[20];
system("cls");
printf("请输入查找学生学号\n");
scanf("%s",n);
for(i=0;i<NUM;i++)
{
if(!strcmp(n,p[i].name))
{
printf("学号 姓名 选题 电话\n");
printf("%-10s%-10s%-12s%s",p[i].number,p[i].name,p[i].select,p[i].tel);
printf("\n");
break;
}
}
if(i==NUM)
printf("无此学生信息!\n");
system("pause");
}
void find_stu_menu()
{
int n;
do
{
system("cls");
printf("1:按学号查找\n");
printf("2:按姓名查找\n");
printf("0:返回\n");
scanf("%d",&n);
switch(n)
{
case 1:
find_stu_num();
break;
case 2:
find_stu_name();
break;
}
}while(n!=0);
}
int case_menu()
{
int n;
system("cls");
printf("1:学生信息管理\n");
printf("2:毕设信息管理\n");
printf("3:是否存在相同选择\n");
printf("0:退出\n");
printf("请输入编号进行操作!\n");
scanf("%d",&n);
while(n<0||n>3)
{
printf("输入范围错误,重新输入");
scanf("%d",&n);
}
return n;
}
void modify_stu()
{
int i;
char n[20];
system("cls");
printf("请输入要修改学生学号\n");
scanf("%s",n);
for(i=0;i<NUM;i++)
{
if(!strcmp(n,p[i].name))
{
printf("学号 姓名 选题 电话\n");
printf("%-10s%-10s%-12s%s",p[i].number,p[i].name,p[i].select,p[i].tel);
printf("\n");
break;
}
}
if(i==NUM)
printf("无此学生信息!\n");
else
{
printf("请修改学生学号\n");
scanf("%s",&p[i].number);
printf("请修改学生姓名\n");
scanf("%s",&p[i].name);
printf("请修改学生选题\n");
scanf("%s",&p[i].select);
printf("请修改学生电话\n");
scanf("%s",&p[i].tel);
printf("修改成功!\n");
}
system("pause");
}
void modify_tea()
{
int i;
char n[20];
system("cls");
printf("请输入要修改的毕设名称\n");
scanf("%s",n);
for(i=0;i<T_NUM;i++)
{
if(!strcmp(n,T[i].name))
{
printf("名称 内容 指导教师\n");
printf("%-10s%-14s%s",T[i].name,T[i].course,T[i].tea);
printf("\n");
break;
}
}
if(i==T_NUM)
printf("无此毕设信息!\n");
else
{
printf("请修改毕设名称\n");
scanf("%s",&T[i].name);
printf("请修改毕设内容\n");
scanf("%s",&T[i].course);
printf("请修改毕设指导教师\n");
scanf("%s",&T[i].tea);
printf("修改成功!\n");
}
system("pause");
}
void serach()
{
int i,j,k,n;
char temp[50][20];
system("cls");
k=0;
for(i=0;i<NUM;i++)
{
for(j=i+1;j<NUM;j++)
{
if(!strcmp(p[i].select,p[j].select))
{
strcpy(temp[k++],p[i].select);
break;
}
}
}
for(i=0;i<k;i++)
{
for(j=i+1;j<k;j++)
{
if(!strcmp(temp[i],temp[j]))
{
for(n=j;n<k;n++)
{
strcpy(temp[n],temp[n+1]);
}
k--;
break;
}
}
}
for(i=0;i<k;i++)
{
for(j=0;j<NUM;j++)
{
if(!strcmp(temp[i],p[j].select))
{
printf("毕设题目:%s\n",temp[i]);
printf("学号:%s ",p[j].number);
printf("姓名:%s ",p[j].name);
printf("电话:%s\n",p[j].tel);
}
}
}
system("pause");
}
/*主函数*/
int main()
{
int n,n1,n2;
init();
Open_Stu_File();
Open_Tea_File();
do
{
n=case_menu();
switch(n)
{
case 1:
do
{
n1=stu_menu();
switch(n1)
{
case 1:
add_new_stu();
Save_Stu_File();
break;
case 2:
show_stu();
break;
case 3:
del_stu_menu();
Save_Stu_File();
break;
case 4:
find_stu_menu();
break;
case 5:
modify_stu();
Save_Stu_File();
break;
}
}while(n1!=0);
break;
case 2:
do
{
n2=tea_menu();
switch(n2)
{
case 1:
add_new_tea();
Save_Tea_File();
break;
case 2:
show_tea();
break;
case 3:
del_tea_name();
Save_Tea_File();
break;
case 4:
find_tea_name();
break;
case 5:
modify_tea();
Save_Tea_File();
break;
}
}while(n2!=0);
break;
case 3:
serach();
break;
}
}while(n!=0);
return 0;
}
毕业生选题系统
最新推荐文章于 2024-08-03 13:34:09 发布