.编写一个小型学生成绩管理系统。

要求:系统操作通过菜单的形式完成。包括:数据的输入、数据输出、数据编辑、数据插入、数据删除、数据查找、数据排序等。

用VB 或C语言都可以

不知道哪位大侠有这水平???
我们这个星期是C语言课程设计
是个作业把。
因为上课没怎么认真听,所以不怎么会拉~~~

#include<stdio.h>
#include<string.h>
#include<malloc.h>
#include<conio.h>
#define len (sizeof(struct Student))
#define isdigest(c) ((c)>='0'&&(c)<='9')
typedef struct Student
{
int num;
int number;
char name[80];
int chinese;
int English;
int Math;
int term;
int score;
char grade_class[20];
struct Student *next;
}Stud;
//Stud *create_list();
int insert_list(Stud *head,int term,char *grade_class,int number,char *name,int chinese,int English,int Math,int n);
int del_list(Stud *head,int number);
del_list_class(Stud *head,char *grade_class);
Stud *find_list(Stud *head,int number);
Stud *find_list1(Stud *head,char *name);
Stud *find_list2(Stud *head,int term);
void brow_list(Stud *head);
int change_number(Stud *p);
int choice;
int mark1;
int number;
int term;
char name[80];
char grade_class[20];
char choice_char[1];
int fan_list(Stud *head);
int chinese_list(Stud *head);
int English_list(Stud *head);
int Math_list(Stud *head);
int grade_class_list(Stud *head);
int term_list(Stud *head);
void paixu_list(Stud *head,int mark_sub);
void main_menu();
void son_menu(Stud *head);
void view_menu(Stud *head);
void view_menu_view();
void save_list(Stud *head);
Stud *open_list();
void main()///////////////////////////////////////////////////////////////////////////主函数
{
Stud * head;
char *yes_no;
int chinese;
int English;
int Math;
head=NULL;
yes_no=(char*)malloc(sizeof(char)*10);
main_menu();
do
{
printf("\n请选则操作(输入0~9):");
gets(choice_char);
if(strlen(choice_char)>1||!isdigest(choice_char[0]))
{
printf("输入错误!\07\n");
continue;
}
switch(choice_char[0])
{
case '1':
if(head==NULL)
{
head=open_list();
// head=create_list();
}
else
{
printf("库已存在连接!\07\n");
// printf("\n\n\t\t按任意键返回....");
// getch();
}
break;
case '2':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
break;
}
while(1)
{
printf("请输入班级:");
scanf("%s",grade_class);
fflush(stdin);
if(strcmp(grade_class,"0")==0)
{
break;
}
lable1: printf("请输入学号(输入0结束!):");
scanf("%d",&number);
fflush(stdin);
if(number==0)
{
break;
}
printf("请录入学期:");
scanf("%d",&term);
printf("姓名:");
scanf("%s",name);
printf("请录入语文成绩:");
scanf("%d",&chinese);
printf("请录入英语成绩:");
scanf("%d",&English);
printf("请录入数学成绩:");
scanf("%d",&Math);
insert_list(head,term,grade_class,number,name,chinese,English,Math,-1);
printf("是否为同一班级?(Y)or(N):");
fflush(stdin);
gets(yes_no);
fflush(stdin);
if(yes_no[0]=='Y'||yes_no[0]=='y')
{
goto lable1;
}
else
{

}
}
break;
case '3':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
break;
}
son_menu(head);
// printf("输入姓名:");
// scanf("%s",name);
// find_list(head,name);
break;
case '4':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
break;
}
brow_list(head);
break;
case '5':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
break;
}
fan_list(head);
break;
case '6':
main_menu();
break;
case '7':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
}
else
{
view_menu(head);
}
break;
case '8':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
}
else
{
save_list(head);
}
break;
case '9':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
}
else
{
head=NULL;
printf("已经断开连接!\n");
printf("\n\n\t\t按任意键返回....");
getch();
}
break;
default:
return;
}
}while(1);
}
void main_menu()///////////////////////////////////////////////////////////////主菜单
{
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("* 7、高级排列查询窗口. *\n");
printf("* 8、保存数据. *\n");
printf("* 9、断开连接. *\n");
printf("* 0、退出程序. *\n");
printf("* *\n");
printf("*****************************************************************************\n");
}

void view_menu_view()
{
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("* 7、保存信息. *\n");
printf("* 8、查看菜单内容. *\n");
printf("* 9、浏览数据. *\n");
printf("* 0、回到主菜单. *\n");
printf("* *\n");
printf("*****************************************************************************\n");
}
void son_menu_view()
{
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("* 7、浏览数据. *\n");
printf("* 8、保存数据. *\n");
printf("* 0、回到主菜单. *\n");
printf("* *\n");
printf("*****************************************************************************\n");
}
void view_menu(Stud *head)/////////////////////////////////////排列子菜单
{
view_menu_view();
do
{
printf("\n请选则操作(输入0~9):");
gets(choice_char);
if(strlen(choice_char)>1||!isdigest(choice_char[0])||choice_char[0]>'9')
{
printf("输入有误,请重新输入!\n");
continue;
}
switch(choice_char[0])
{
case '1':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
}
else
{
chinese_list(head);
printf("排列成功!\n");
}
break;
case '2':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
}
else
{
English_list(head);
printf("排列成功!\n");
}
break;
case '3':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
}
else
{
Math_list(head);
printf("排列成功!\n");
}
break;
case '4':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
}
else
{
grade_class_list(head);
printf("排列成功!\n");
}
break;
case '5':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
}
else
{
term_list(head);
printf("排列成功!\n");
}
break;
case '6':
printf("对不起,此功能靠你自己实现了\07\n");
break;
case '7':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
}
else
{
save_list(head);
}
break;
case '8':
view_menu_view();
break;
case '9':
if(head==NULL)
{
printf("库未建立连接!\07\n");
break;
}
brow_list(head);
break;
default:
main_menu();
return;
}
}while(1);
}
void son_menu(Stud *head)////////////////////////////////////////////////查询子菜单
{
son_menu_view();
do
{
printf("\n请选则操作(输入0~8):");
gets(choice_char);
if(strlen(choice_char)>1||!isdigest(choice_char[0])||choice_char[0]>'8')
{
printf("输入有误,请重新输入!\n");
continue;
}
switch(choice_char[0])
{
case '1':
do{
printf("\n请输入学号(按0结束):");
scanf("%d",&number);
fflush(stdin);
if(number==0)
{
break;
}
find_list(head,number);
}while(1);
break;
case '2':
do{
printf("\n请输入姓名(按0结束):");
scanf("%s",&name);
fflush(stdin);
if(strcmp(name,"0")==0)
{
break;
}
find_list1(head,name);
}while(1);
break;
case '3':
do{
printf("\n请输入学期(按0结束):");
scanf("%d",&term);
fflush(stdin);
if(term==0)
{
break;
}
find_list2(head,term);
}while(1);
break;
case '4':
if(head==NULL)
{
printf("库未建立连接!\007\n");
break;
}
printf("输入学号:");
scanf("%d",&number);
fflush(stdin);
del_list(head,number);
break;
case '5':
if(head==NULL)
{
printf("库未建立连接!\07\n");
}
printf("输入班级:");
scanf("%s",&grade_class);
fflush(stdin);
del_list_class(head,grade_class);
break;
case '6':
son_menu_view();
break;
case '7':
if(head==NULL)
{
printf("库未建立!\07\n");
break;
}
brow_list(head);
break;
case '8':
if(head==NULL)
{
printf("库没有建立连接!\07\n");
}
else
{
save_list(head);
}
break;
default:
main_menu();
return;
}
}while(1);
}
Stud *open_list()//////////////////////////////////////////载入数据
{
Stud *head;
char temp_char[8
温馨提示:答案为网友推荐,仅供参考
第1个回答  2006-12-26
我有现成的原代码,还是有点错误。不知道你是干什么用的?
第2个回答  2006-12-26
这个才30分?
相似回答