资源描述
- .
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct
{
char num[15];
char name[20];
char credit[10];
char clas[20];
char teacher[20];
}student;
student pe[80];
int menu_select()
{
char c;
do{
system("cls");
printf("+---------------------------+\n");
printf("| |\n");
printf("| 欢送使用课程信息管理系统 |\n");
printf("| |\n");
printf("+---------------------------+\n");
printf("\t\t *****课程信息管理系统***** \n");
printf("\t\t ┌───────┐\n");
printf("\t\t │ 1. 增加记录 │\n");
printf("\t\t │ 2. 显示记录 │\n");
printf("\t\t │ 3. 查询记录 │\n");
printf("\t\t │ 4. 修改记录 │\n");
printf("\t\t │ 5. 删除记录 │\n");
printf("\t\t │ 6. 存储记录 │\n");
printf("\t\t │ 0. 退出程序 │\n");
printf("\t\t └───────┘\n");
printf("\t\t请您选择(0-6):");
c=getchar();
}while(c<'0'||c>'6');
return(c-'0');
}
int Input(student per[],int n)
{
int i=0;
char sign,x[10];
while(sign!='n'&&sign!='N')
{
printf("\t课程编号:");
scanf("\t%s",per[n+i].num);
printf("\t课程名称:");
scanf("\t%s",per[n+i].name);
printf("\t学分:");
scanf("\t%s",per[n+i].credit);
printf("\t选修课号:");
scanf("\t%s",per[n+i].clas);
printf("\t任课教师:");
scanf("\t%s",per[n+i].teacher);
gets(x);
printf("\n\t是否继续添加?(Y/N)");
scanf("\t%c",&sign);
i++;
}
return(n+i);
}
void Display(student per[],int n)
{
int i;
printf("-------------------------------------------------------------------------------\n"); /*格式*/
printf("课程编号 课程名称 学分 选修课号 任课教师 \n");
printf("-------------------------------------------------------------------------------\n");
for(i=1;i<n+1;i++)
{
printf("%-12s%-12s%-15s%-18s%s\n",per[i-1].num,per[i-1].name,per[i-1].credit,per[i-1].clas,per[i-1].teacher);
if(i>1&&i%10==0)
{
printf("\t-----------------------------------------\n");
printf("\t");
system("pause");
printf("\t-----------------------------------------\n");
}
}
printf("------------------------------------------------------------------------------\n");
system("pause");
}
int Delete_a_record(student per[],int n) //删除学生记录函数
{
char s[20];
int i=0,j;
printf("\t请输入想删除记录中的课程编号:");
scanf("%s",s);
while(strcmp(per[i].num,s)!=0&&i<n) i++;
if(i==n)
{
printf("\t系统中没有此科目!\n");
return(n);
}
for(j=i;j<n-1;j++)
{
strcpy(per[j].num,per[j+1].num);
strcpy(per[j].name,per[j+1].name);
strcpy(per[j].credit,per[j+1].credit);
strcpy(per[j]. clas,per[j+1]. clas);
strcpy(per[j]. teacher,per[j+1]. teacher);
}
printf("\t\t\t已经成功删除!\n");
return(n-1);
}
void Query_a_record(student per[],int n) //查询学生记录
{
int m;
printf("\t\n请选择查询方式:\n");
printf("\t┌─────----─┐\n");
printf("\t│1------课 程 编 号│\n");
printf("\t│2------课 程 名 称│\n");
printf("\t│3------返 回 │\n");
printf("\t└───--─--──┘\n");
printf("请选择:");
scanf("%d",&m);
while(m!=1&&m!=2&&m!=3)
{
printf("输入错误,请重新选择:");
scanf("%d",&m);
}
if(m==1) // 按课程编号查询
{
char s[20];
int i=0;
printf("\t请输入想查询的课程编号:");
scanf("\t%s",s);
while(strcmp(per[i].num,s)!=0&&i<n) i++;
if(i==n)
{
printf("\t系统中没有这个科目!\n");
return;
}
printf("\t课程名称: %s\n",per[i].name);
printf("\t学分: %s\n",per[i]. credit);
printf("\t选修课号: %s\n",per[i].clas);
printf("\t任课教师: %s\n",per[i].teacher);
} ;
if(m==2) //按课程名称查询
{
char s[20];
int i=0;
printf("\t请输入想查询的课程名称:");
scanf("\t%s",s);
while(strcmp(per[i].name,s)!=0&&i<n) i++;
if(i==n)
{
printf("\t系统中没有该科目!\n");
return;
}
printf("\t课程编号 %s\n",per[i].num);
printf("\t学分: %s\n",per[i].credit);
printf("\t选修课号: %s\n",per[i].clas);
printf("\t任课教师: %s\n",per[i].teacher);
} ;
}
void Change(student per[],int n) //修改课程记录
{
char s[20];
int i=0;
printf("\t请输入想修改的课程信息管理系统中的课程编号:");
scanf("%s",s);
while(strcmp(per[i].num,s)!=0&&i<n) i++;
if(i==n)
{
printf("\t系统中没有该科目!\n");
return;
}
printf("\t课程编号:");
scanf("\t%s",per[i].num);
printf("\t课程名称:");
scanf("\t%s",per[i].name);
printf("\t学分:");
scanf("\t%s",per[i].credit);
printf("\t选修课号:");
scanf("\t%s",per[i].clas);
printf("\t任课教师:");
scanf("\t%s",per[i].teacher);
printf("\t修改成功!");
}
void WritetoText(student per[],int n)
{
int i=0;
FILE *fp; //定义文件指针
char filenum[20]; //定义文件名
printf("\t保存到文件\n"); //输入文件名
printf("\t请输入所保存的文件名:");
scanf("\t%s",filenum);
if((fp=fopen(filenum,"w"))==NULL)
{
printf("\t无法翻开文件\n");
system("pause");
return;
}
fprintf(fp,"****************************************** 课程信息管理系统**********************************\n");
fprintf(fp," 课程编号 课程名称 学分 选修课号 任课教师 \n");
fprintf(fp,"------------------------------------------------------------------------------------------\n");
while(i<=n)
{
fprintf(fp,"%-10s%-10s%-15s%-18s%%s\n",per[i-1].num,per[i-1].name,per[i-1].credit,per[i-1].clas,per[i-1].teacher);
i++;
}
fprintf(fp,"------------------------------------------------------------------------------------------\n");
fprintf(fp,"***************************************共有%d条记录****************************************\n",n);
fclose(fp); /*关闭文件*/
printf("成功保存!!!\n");
}
int main()
{
int n=0;
for(;;)
{
switch(menu_select())
{
case 1:
printf("\n\t请增加记录到系统\n");
n=Input(pe,n);
break;
case 2:
printf("\n\t\t\t 课程信息管理系统记录表\n");
Display(pe,n);
break;
case 5:
printf("\n\t从系统中删除记录\n");
n=Delete_a_record(pe,n);
printf("\t");
system("pause");
break;
case 3:
printf("\n\t在系统中查找记录\n");
Query_a_record(pe,n);
printf("\t");
system("pause");
break;
case 4:
printf("\n\t修改系统中的记录\n");
Change(pe,n);
printf("\t");
system("pause");
break;
case 6:
printf("\n\t保存功能\n");
WritetoText(pe,n);
printf("\t");
system("pause");
break;
case 0:
printf("\n\t\t谢谢您的使用,欢送下次再来!!再见!!\n");
printf("\n\t\t");
system("pause");
exit(0);
}
}
return 0;
}
#include<stdio.h>
#include<string.h>
struct link
{
char o[10],ame[10],cforecourse[10],cunitno[10],cunitname[10];
int ia;
struct link *next;
};
struct link *head;
int menu()
{
int ii;
printf("please choose a number:\n");
printf("******************************************:\n");
printf("1: create :\n");
printf("2: search :\n");
printf("3: delete :\n");
printf("4: view :\n");
printf("5: quit :\n");
printf("******************************************:\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
scanf("%d",&ii);
return ii;
}
struct link create()
{
int icount,ij=1;
struct link *p,*new;
while(1)
{
if(icount)
{
printf("输入头结点");
}
new=(struct link *)malloc(sizeof(struct link));
printf("input the course no:\n");
scanf("%s",new->o);
printf("input the course :\n");
scanf("%s",new->ame);
printf("input the forecourse :\n");
scanf("%s",new->cforecourse);
printf("input the course grade:\n");
scanf("%d",&new->ia);
printf("input the unit no. grade:\n");
scanf("%s",new->cunitno);
printf("input the unit name:\n");
scanf("%s",new->cunitname);
new->next=NULL;
if(icount)
{
head=new;
p=new;
printf("the fist add success:\n");
getchar();
getchar();
icount=0;
}
else
{
p->next=new;
printf("\n");
p=p->next;
printf("add success:\n");
printf("\n");
getchar();
}
printf("input 0 to end input:\n");
scanf("%d",&ij);
if(ij==0)
{
break;
}
}
}
struct link search()
{
struct link *p;char ckeyname[10];
p=head;
printf("please input the name you want to view:\n");
scanf("%s",ckeyname);
while(strcmp(ckeyname,p->ame)!=0&&p->next!=NULL)
{
p=p->next;
}
if(p->next==NULL)
{
printf("no this position:\n");
}
else
{
printf("found it:\n");
printf("%s,%s,%s,%d,%s,%s",p->o,p->ame,p->cforecourse,p->ia,p->cunitno,p->cunitname);
}
}
struct link delete()
{
struct link *p,*q,*r;char ckeyname[10];
r=head;
p=r->next;
q=p->next;
printf("please input the name you want to del:\n");
scanf("%s",ckeyname);
while(strcmp(ckeyname,p->ame)!=0&&r->next!=NULL)
{
r=r->next;
p=p->next;
q=q->next;
}
if(r->next==NULL)
{
printf("no this position:\n");
}
else
{
printf("found it:\n");
printf("%s,%s,%s,%d,%s,%s",p->o,p->ame,p->cforecourse,p->ia,p->cunitno,p->cunitname);
r->next=p->next;
printf("delete success:\n");
getchar();
getchar();
}
}
void output()
{
struct link *p,*q;
p=head;
p=p->next;
q=head;
if(q->next==NULL)
{
printf("no record:\n");
}
else
{
while(p->next)
{
printf("%s,%s,%s,%d,%s,%s",p->o,p->ame,p->cforecourse,p->ia,p->cunitno,p->cunitname);
printf("\n");
p=p->next;
}
printf("%s,%s,%s,%d,%s,%s",p->o,p->ame,p->cforecourse,p->ia,p->cunitno,p->cunitname);
}
}
void quit()
{
exit(0);
}
void main()
{
int ia=1;
head=NULL;
while(ia!=5)
{
ia=menu();
switch(ia)
{
case 1:create();break;
case 2:search();break;
case 3:delete();break;
case 4:output();break;
case 5:quit();break;
default:printf("input wrong:\n");
}
}
}
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct
{
char num[15];
char name[20];
char credit[10];
char clas[20];
char teacher[20];
}student;
student pe[80];
int menu_select()
{
char c;
do{
system("cls");
printf("\n");
printf("\n");
printf(" 欢送使用课程信息管理系统 \n");
printf("\n");
printf("\n");
printf(" 课程信息管理系统 \n");
printf("\n");
printf(" 1. 增加记录 \n");
printf(" 2. 显示记录 \n");
printf(" 3. 查询记录 \n");
printf(" 4. 修改记录 \n");
printf(" 5. 删除记录 \n");
printf(" 6. 存储记录 \n");
printf(" 0. 退出程序 \n");
printf("\n");
printf("\t\t请您选择(0-6):");
c=getchar();
}while(c<'0'||c>'6');
return(c-'0');
}
int Input(student per[],int n)
{
int i=0;
char sign,x[10];
while(sign!='n'&&sign!='N')
{
printf("\t课程编号:");
scanf("\t%s",per[n+i].num);
printf("\t课程名称:");
scanf("\t%s",per[n+i].name);
printf("\t学分:");
scanf("\t%s",per[n+i].credit);
printf("\t选修课号:");
scanf("\t%s",per[n+i].clas);
printf("\t任课教师:");
scanf("\t%s",per[n+i].teacher);
gets(x);
printf("\n\t是否继续添加?(Y/N)");
scanf("\t%c",&sign);
i++;
}
return(n+i);
}
void Display(student per[],int n)
{
int i;
printf("-------------------------------------------------------------------------------\n"); /*格式*/
printf("课程编号课程名称学分选修课号任课教师 \n");
printf("-------------------------------------------------------------------------------\n");
for(i=1;i<n+1;i++)
{
printf("%-12s%-12s%-15s%-18s%s\n",per[i-1].num,per[i-1].name,per[i-1].credit,per[i-1].clas,per[i-1].teacher);
if(i>1&&i%10==0)
{
printf("\t-----------------------------------------\n");
printf("\t");
system("pause");
printf("\t-----------------------------------------\n");
}
}
printf("------------------------------------------------------------------------------\n");
system("pause");
}
int Delete_a_record(student per[],int n) //删除学生记录函数
{
char s[20];
int i=0,j;
printf("\t请输入想删除记录中的课程编号:");
scanf("%s",s);
while(strcmp(per[i].num,s)!=0&&i<n) i++;
if(i==n)
{
printf("\t系统中没有此科目!\n");
return(n);
}
for(j=i;j<n-1;j++)
{
strcpy(per[j].num,per[j+1].num);
strcpy(per[j].name,per[j+1].name);
strcpy(per[j].credit,per[j+1].credit);
strcpy(per[j]. clas,per[j+1]. clas);
strcpy(per[j]. teacher,per[j+1]. teacher);
}
printf("\t\t\t已经成功删除!\n");
return(n-1);
}
void Query_a_record(student per[],int n) //查询学生记录
{
int m;
printf("\t\n请选择查询方式:\n");
printf("\\n");
printf("1------课程编号\n");
printf("2------课程名称\n");
printf("3------返回\n");
printf("\n");
printf("请选择:");
scanf("%d",&m);
while(m!=1&&m!=2&&m!=3)
{
printf("输入错误,请重新选择:");
scanf("%d",&m);
}
if(m==1) // 按课程编号查询
{
char s[20];
int i=0;
printf("\t请输入想查询的课程编号:");
scanf("\t%s",s);
while(strcmp(per[i].num,s)!=0&&i<n) i++;
if(i==n)
{
printf("\t系统中没有这个科目!\n");
return;
}
printf("\t课程名称: %s\n",per[i].name);
printf("\t学分: %s\n",per[i]. credit);
printf("\t选修课号: %s\n",per[i].clas);
printf("\t任课教师: %s\n",per[i].teacher);
} ;
if(m==2) //按课程名称查询
{
char s[20];
int i=0;
printf("\t请输入想查询的课程名称:");
scanf("\t%s",s);
while(strcmp(per[i].name,s)!=0&&i<n) i++;
if(i==n)
{
printf("\t系统中没有该科目!\n");
return;
}
printf("\t课程编号 %s\n",per[i].num);
printf("\t学分: %s\n",per[i].credit);
printf("\t选修课号: %s\n",per[i].clas);
printf("\t任课教师: %s\n",per[i].teacher);
} ;
}
void Change(student per[],int n) //修改课程记录
{
char s[20];
int i=0;
printf("\t请输入想修改的课程信息管理系统中的课程编号:");
scanf("%s",s);
while(strcmp(per[i].num,s)!=0&&i<n) i++;
if(i==n)
{
printf("\t系统中没有该科目!\n");
return;
}
printf("\t课程编号:");
scanf("\t%s",per[i].num);
printf("\t课程名称:");
scanf("\t%s",per[i].name);
printf("\t学分:");
scanf("\t%s",per[i].credit);
printf("\t选修课号:");
scanf("\t%s",p
展开阅读全文