赞
踩
//大学生选课管理系统
#include <stdio.h>
#include <cstring>
#include <stdlib.h>
#include<malloc.h>
#define MAXSIZE 100
#define error 0
#define ok 1
typedef struct{
char name[10];
char id[15];
char course_name[10];
int xuefen;
}ElemType;
typedef struct{
ElemType *elem;
int length;
}SqList;
int chuangjian(SqList &L){
L.elem=new ElemType[MAXSIZE];
if(L.elem==NULL)
return error;
L.length=0;
return ok;
}
int tianjia(SqList &L,int n){
if(L.elem==NULL)return error;
for(int i=0;i<n;i++){
printf("请输入第%d个数据:\n",i+1);
printf("姓名:");
scanf("%s",L.elem[i].name);
printf("学号:");
scanf("%s",L.elem[i].id);
printf("课程名称:");
scanf("%s",L.elem[i].course_name);
printf("课程学分:");
scanf("%d",&L.elem[i].xuefen);
L.length++;
}
}
int print(SqList L,int n){
if(L.elem==NULL)return error;
if(n<=L.length){
printf("\t\t\t\t学生选课详情\n");
printf("编号\t 姓名 \t学号 \t选课名称 \t课程学分\n");
for(int i=0;i<n;i++){
printf("%d%12s%12s%12s%12d\n",i+1,L.elem[i].name,L.elem[i].id,L.elem[i].course_name,L.elem[i].xuefen);
}
return ok;
}
}
int increase(SqList &L,int n){
int i=L.length;
int j=L.length;
if((MAXSIZE-L.length)>=n){
for(i;i<n+j;i++){
printf("请输入第%d个数据:\n",i+1);
printf("姓名:");
scanf("%s",L.elem[i].name);
printf("学号:");
scanf("%s",L.elem[i].id);
printf("课程名称:");
scanf("%s",L.elem[i].course_name);
printf("课程学分:");
scanf("%d",&L.elem[i].xuefen);
L.length++;
}
}
}
void chakan(SqList L){
int n;
printf("存储空间为%d,已用%d\n",MAXSIZE,L.length);
printf("请输入查看数据个数:");
scanf("%d",&n);
if(n<=L.length)
print(L,n);
else{
do{
printf("数据超标!请重新输入查看数据个数:");
scanf("%d",&n);
}while(n>L.length);
print(L,n);
}
}
int insert(SqList &L,ElemType e,int n){
if(n<1||n>L.length+1)
return error;
if(L.length==MAXSIZE)return error;
if(MAXSIZE>=n>0){
for(int i=L.length-1;i>=n-1;i--){
L.elem[i+1]=L.elem[i];
}
L.elem[n-1]=e;
L.length++;
return ok;
}
}
int chazhao(SqList L,ElemType e){
if(L.elem==NULL)return error;
for(int i=0;i<L.length;i++){
if(strcmp(L.elem[i].name,e.name)==0){
printf("查找成功!\n该数据在表单的第:%d个位置\n",i+1);
return ok;
}
}
return error;
}
int xiugai(SqList &L,ElemType e,int n){
if(L.elem==NULL)return error;
L.elem[n]=e;
return ok;
}
int shanchu(SqList &L,int n){
if((n<1)||(n>L.length))return error;
for(int i=n;i<L.length;i++)
L.elem[n-1]=L.elem[n];
L.length--;
return ok;
}
int main(){
SqList L;
int n;
char k;
ElemType e;
while(1){
printf("\t\t大学生选课管理系统\n--------------------------------------\n");
printf("请输入你的操作:(添加0,增加1,插入2,查看3,查找4,修改5,创建6,删除7,退出8):");
scanf("%d",&n);
switch (n) {
case 0:
printf("请输入添加元素的个数:") ;
scanf("%d",&n);
n=tianjia(L,n);
if(n==error)printf("未创建线性表请创建!\n");
break;
case 1:
printf("请输入增加数据的个数");
scanf("%d",&n);
increase(L,n);
break;
case 2:
printf("总空间%d已用空间%d",MAXSIZE,L.length);
printf("插入到第i位置:i=");
scanf("%d",&n);
printf("姓名:");
scanf("%s",e.name);
printf("学号:");
scanf("%s",e.id);
printf("课程名称:");
scanf("%s",e.course_name);
printf("课程学分:");
scanf("%d",&e.xuefen);
insert(L,e,n);
break;
case 3:
chakan(L);
break;
case 4:
printf("请输入你要查找的数据:\n");
printf("姓名:");
scanf("%s",e.name);
printf("学号:");
scanf("%s",e.id);
printf("课程名称:");
scanf("%s",e.course_name);
printf("课程学分:");
scanf("%d",&e.xuefen);
if(chazhao(L,e)==0);
printf("查无此果!");
break;
case 5:
printf("请输入你要修改数据的位置:\n");
scanf("%d",&n);
printf("姓名:");
scanf("%s",e.name);
printf("学号:");
scanf("%s",e.id);
printf("课程名称:");
scanf("%s",e.course_name);
printf("课程学分:");
scanf("%d",&e.xuefen);
xiugai(L,e,n);
break;
case 6:
int m;
m = chuangjian(L);
if(m=ok)printf("创建成功!\n");
else printf("数组已经存在,无需创建!");
break;
case 7:
printf("请输入你要删除数据的位置:\n");
scanf("%d",&n);
shanchu(L,n);
break;
case 8:
printf("安全退出!");
return 0;
default:
printf("你输入的不在0-7之间请重新输入!");
}
}
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。