C语言数据库-学生成绩统计管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学生成绩统计管理系统
C语言数据结构课程作品
指导老师:
学生:
学号:
班级:
一、代码
#include"stdafx、h"
#include
#include
#include
#include
#include
#include
#include
struct grade
{
int score;
struct grade *next;
}; /*定义成绩的结构*/ struct address{
char stu_num[4]; /*学号*/
char hname[10]; /*性别*/
char ename[20]; /*姓名*/
char depart[30]; /*系别*/
char paddress[30]; /*地址*/
char phone[13] /*联系电话*/;
struct grade *head;
struct address *next;
} ;
void loaddata (struct address **had);
void printm (struct address *head);
struct address * seek (struct address *head);
void revise (struct address *hp);
void delate (struct address **head);
void saveda (struct address *tou );
void addnew (struct address **had );
void moveg (int i,struct grade **move);
void gotoxy(int x,int y);
void sortp(struct address **head);
int main ( void )
{
char ch;
int c;
struct address *head=NULL;
loaddata(&head);
do
{
system("cls");
printf(" \n");
printf("学生信息与成绩统计:\n");
printf(" 岳鹏程制作\n"); printf(" ===============================================\n"); printf("‖ Menu: ‖\n"); printf("‖ 1:print all the personal information、‖\n"); printf("‖ 2:insert some or one person、‖\n"); printf("‖ 3:revire some information、‖\n"); printf("‖ 4:delate some information or a person、‖\n"); printf("‖ 5:exit、‖\n"); printf(" ===============================================\n"); printf("\tInput :");
do
{
scanf("%d",&c);
getchar( );
}while(c<0||c>6);
switch ( c )
{
case 1:
printm(head);
break;
case 2:
addnew(&head);
break;
case 3:
revise(head);
break;
case 4:
delate(&head);
break;
break;
case 5:
return 0;
default:
break;
}
fflush(stdin);
printf("continue or not: input y or n\n");
ch=getchar( );
saveda(head);
}while(ch=='y'||ch=='Y');
return 0;
}
void loaddata (struct address **had )
{
FILE *afhead;
FILE *gfhead;
struct address *p1,*hp1=NULL,*head=NULL;
struct grade *p2 , *hp2 = NULL;
int i=0;
int j=6;
if( !(afhead = fopen("d:\\information、dat","rb")))
{
return;
}
if( !(gfhead = fopen("d:\\grade、dat" , "rb")) )
{
return;
}
while (!feof(afhead))
{
p1 = (struct address *)malloc(sizeof(struct address));
fread(p1,sizeof(struct address),1,afhead);
if(feof(afhead))
{
if(!p1)
free(p1);
break;
}
if(i==0)
{
p1->next = NULL;
p1->head = NULL;
head = p1;
hp1 = p1;
i++;
} /*使头指针指向第一个创建的节点*/ else
{
p1->next = NULL;
p1->head = NULL;
hp1->next = p1;
hp1 = hp1->next;
}
}
*had = head;
p1 = *had;