学生成绩管理系统毕业论文c语言
发布时间:
2023-12-09 12:28:40
#include #include
#include #define MAX 1000/*定义学生成绩信息结构*/struct stu{
char id[8];char name[8];
扩展资料:
short:修饰int,短整型数据,可省略被修饰的int。(K&R时期引入)
long:修饰int,长整型数据,可省略被修饰的int。(K&R时期引入)
long long:修饰int,超长整型数据,可省略被修饰的int。(C99标准新增)
signed:修饰整型数据,有符号数据类型。(C89标准新增)
unsigned:修饰整型数据,无符号数据类型。(K&R时期引入)
restrict:用于限定和约束指针,并表明指针是访问一个数据对象的唯一且初始的方式。(C99标准新增)
复杂类型关键字
struct:结构体声明。(K&R时期引入)
union:联合体声明。(K&R时期引入)
enum:枚举声明。(C89标准新增)
typedef:声明类型别名。(K&R时期引入)
sizeof:得到特定类型或特定类型变量的大小。(K&R时期引入)
inline:内联函数用于取代宏定义,会在任何调用它的地方展开。(C99标准新增)
参考资料来源:百度百科-c语言
看你要做多好了。简单的就是成绩录入与查询,角色大概分为教师、学生、管理员。想做NB的,不仅是成绩录入与输出,还可以做查询统计报表,对各个成绩段、年级段、时间段等条件进行统计,生成柱状图饼状图,对于老师成绩上传发出过期提醒等等人性化操作。。
#include /*引用库函数*/ #include #include #include typedef struct /*定义结构体数组*/ { char num[10]; /*学号*/ char name[20]; /*姓名*/ int score; /*成绩*/ }Student; Student stu[80]; /*结构体数组变量*/ int menu_select() /*菜单函数*/ { char c; do{ system("cls"); /*运行前清屏*/ printf("\t\t****Students' Grade Management System****\n"); /*菜单选择*/ printf("\t\t | 1. Input Records |\n"); printf("\t\t | 2. Display All Records |\n"); printf("\t\t | 3. Sort |\n"); printf("\t\t | 4. Insert a Record |\n"); printf("\t\t | 5. Delete a Record |\n"); printf("\t\t | 6. Query |\n"); printf("\t\t | 7. Statistic |\n"); printf("\t\t | 8. Add Records from a Text File|\n"); printf("\t\t | 9. Write to a Text file |\n"); printf("\t\t | 0. Quit |\n"); printf("\t\t*****************************************\n"); printf("\t\t\tGive your Choice(0-9):"); c=getchar(); /*读入选择*/ }while(c<'0'||c>'9'); return(c-'0'); /*返回选择*/ } int Input(Student stud[],int n) /*输入若干条记录*/ {int i=0; char sign,x[10]; /*x[10]为清除多余的数据所用*/ while(sign!='n'&&sign!='N') /*判断*/ { printf("\t\t\tstudent's num:"); /*交互输入*/ scanf("\t\t\t%s",stud[n+i].num); printf("\t\t\tstudent's name:"); scanf("\t\t\t%s",stud[n+i].name); printf("\t\t\tstudent's score:"); scanf("\t\t\t%d",&stud[n+i].score); gets(x); /*清除多余的输入*/ printf("\t\t\tany more records?(Y/N)"); scanf("\t\t\t%c",&sign); /*输入判断*/ i++; } return(n+i); } void Display(Student stud[],int n) /*显示所有记录*/ { int i; printf("\t\t\t-----------------------------------\n"); /*格式头*/ printf("\t\t\tnumber name score\n"); printf("\t\t\t-----------------------------------\n"); for(i=1;i1&&i%10==0) /*每十个暂停*/ {printf("\t\t\t-----------------------------------\n"); /*格式*/ printf("\t\t\t"); system("pause"); printf("\t\t\t-----------------------------------\n"); } } printf("\t\t\t"); system("pause"); } void Sort_by_num(Student stud[],int n) /*按学号排序*/ { int i,j,*p,*q,s; char t[10]; for(i=0;i0) {strcpy(t,stud[j+1].num); strcpy(stud[j+1].num,stud[j].num); strcpy(stud[j].num,t); strcpy(t,stud[j+1].name); strcpy(stud[j+1].name,stud[j].name); strcpy(stud[j].name,t); p=&stud[j+1].score; q=&stud[j].score; s=*p; *p=*q; *q=s; } } int Insert_a_record(Student stud[],int n) /*插入一条记录*/ {char x[10]; /*清除多余输入所用*/ printf("\t\t\tstudent's num:"); /*交互式输入*/ scanf("\t\t\t%s",stud[n].num); printf("\t\t\tstudent's name:"); scanf("\t\t\t%s",stud[n].name); printf("\t\t\tstudent's score:"); scanf("\t\t\t%d",&stud[n].score); gets(x); n++; Sort_by_num(stud,n); /*调用排序函数*/ printf("\t\t\tInsert Successed!\n"); /*返回成功信息*/ return(n); } int Delete_a_record(Student stud[],int n) /*按姓名查找,删除一条记录*/ { char s[20]; int i=0,j; printf("\t\t\ttell me his(her) name:"); /*交互式问寻*/ scanf("%s",s); while(strcmp(stud[i].name,s)!=0&&istud[i].score) j=i; if(stud[k].score /*引用库函数*/#include#include#includetypedef struct /*定义结构体数组*/{ char num[10]; /*学号*/ char name[20]; /*姓名*/ int score; /*成绩*/}Student;Student stu[80]; /*结构体数组变量*/int menu_select() /*菜单函数*/{ char c; do{ system("cls"); /*运行前清屏*/ printf("\t\t****Students' Grade Management System****\n"); /*菜单选择*/ printf("\t\t | 1. Input Records |\n"); printf("\t\t | 2. Display All Records |\n"); printf("\t\t | 3. Sort |\n"); printf("\t\t | 4. Insert a Record |\n"); printf("\t\t | 5. Delete a Record |\n"); printf("\t\t | 6. Query |\n"); printf("\t\t | 7. Statistic |\n"); printf("\t\t | 8. Add Records from a Text File|\n"); printf("\t\t | 9. Write to a Text file |\n"); printf("\t\t | 0. Quit |\n"); printf("\t\t*****************************************\n"); printf("\t\t\tGive your Choice(0-9):"); c=getchar(); /*读入选择*/ }while(c<'0'||c>'9'); return(c-'0'); /*返回选择*/}int Input(Student stud[],int n) /*输入若干条记录*/{int i=0;char sign,x[10]; /*x[10]为清除多余的数据所用*/while(sign!='n'&&sign!='N') /*判断*/{ printf("\t\t\tstudent's num:"); /*交互输入*/ scanf("\t\t\t%s",stud[n+i].num); printf("\t\t\tstudent's name:"); scanf("\t\t\t%s",stud[n+i].name); printf("\t\t\tstudent's score:"); scanf("\t\t\t%d",&stud[n+i].score); gets(x); /*清除多余的输入*/ printf("\t\t\tany more records?(Y/N)"); scanf("\t\t\t%c",&sign); /*输入判断*/ i++;}return(n+i);}void Display(Student stud[],int n) /*显示所有记录*/{int i;printf("\t\t\t-----------------------------------\n"); /*格式头*/printf("\t\t\tnumber name score\n");printf("\t\t\t-----------------------------------\n");for(i=1;i1&&i%10==0) /*每十个暂停*/ {printf("\t\t\t-----------------------------------\n"); /*格式*/ printf("\t\t\t"); system("pause"); printf("\t\t\t-----------------------------------\n"); }}printf("\t\t\t");system("pause");}void Sort_by_num(Student stud[],int n) /*按学号排序*/{ int i,j,*p,*q,s; char t[10]; for(i=0;i0) {strcpy(t,stud[j+1].num); strcpy(stud[j+1].num,stud[j].num); strcpy(stud[j].num,t); strcpy(t,stud[j+1].name); strcpy(stud[j+1].name,stud[j].name); strcpy(stud[j].name,t); p=&stud[j+1].score; q=&stud[j].score; s=*p; *p=*q; *q=s; }}int Insert_a_record(Student stud[],int n) /*插入一条记录*/{char x[10]; /*清除多余输入所用*/ printf("\t\t\tstudent's num:"); /*交互式输入*/ scanf("\t\t\t%s",stud[n].num); printf("\t\t\tstudent's name:"); scanf("\t\t\t%s",stud[n].name); printf("\t\t\tstudent's score:"); scanf("\t\t\t%d",&stud[n].score); gets(x); n++; Sort_by_num(stud,n); /*调用排序函数*/ printf("\t\t\tInsert Successed!\n"); /*返回成功信息*/ return(n);}int Delete_a_record(Student stud[],int n) /*按姓名查找,删除一条记录*/{ char s[20]; int i=0,j; printf("\t\t\ttell me his(her) name:"); /*交互式问寻*/ scanf("%s",s); while(strcmp(stud[i].name,s)!=0&&istud[i].score) j=i; if(stud[k].score#include #include #include #define MAX 1000/*定义学生成绩信息结构*/struct stu{ char id[8]; char name[8]; double Chinese; double Math; double English; double average; double total;};/*学生结构数组,用于存储学生成绩信息*/struct stu students[MAX];/*当前学生人数*/int current;void input(){ int i; printf("请输入学生人数:"); scanf("%d", & current); for (i = 0; i < current; i++) { printf("\n请输入学生学号,最多为7位数: "); scanf("%s", students[i].id); printf("请输入学生姓名:"); scanf("%s", students[i].name); printf("请输入语文成绩:"); scanf("%lf", &students[i].Chinese); printf("请输入数学成绩:"); scanf("%lf", &students[i].Math); printf("请输入英语成绩:"); scanf("%lf", &students[i].English); students[i].total = students[i].Chinese + students[i].Math + students[i].English; students[i].average = students[i].total / 3; }}/*排名次,即对学生结构数组排序*/void sort(struct stu array[], int n){ int i, j; struct stu temp; for (i = 0; i < n; i++) { for (j = i+1; j < n; j++) { if (array[i].average - array[j].average < 1e-16) { temp = array[i]; array[i] = array[j]; array[j] = temp; } } }}/*统计平均成绩,并输出各分数段的人数*/void print_score(struct stu array[], int n){ int i; double ave = 0; int sum1 = 0, sum2 = 0, sum3 = 0, sum4 = 0; for (i = 0; i < n; i++) { ave += array[i].average; switch ((int)(array[i].average / 10)) { case 10: case 9: sum1++; break; case 8: sum2++; break; case 7: case 6: sum3++; break; default: sum4++; } } printf("全班的平均分为:%.1f\n", ave/n); printf("平均分在90分以上的人数为:%d\n", sum1); printf("平均分在80~89的人数为:%d\n", sum2); printf("平均分在60~79的人数为:%d\n", sum3); printf("平均分在60分以下的人数为:%d\n", sum4);}/*输出不及格科目及学生名单*/void print_unreach(struct stu array[], int n){ int i; printf("科目\t学号\t名字\n"); for (i = 0; i < n; i++) { if (array[i].Chinese < 60) { printf("语文\t%s\t%s\n", array[i].id, array[i].name); } if (array[i].Math < 60) { printf("数学\t%s\t%s\n", array[i].id, array[i].name); } if (array[i].English < 60) { printf("英语\t%s\t%s\n", array[i].id, array[i].name); } }}/*打印优等生名单*/void print_good(struct stu array[], int n){ int i; char mark = 0; if (n > 3) { n = 3; } printf("学号\t姓名\t语文\t数学\t英语\t平均分\t名次\n"); for (i = 0; i < n; i++) { if ((array[i].Chinese > 60) && (array[i].Math > 60) && (array[i].English > 60)) { if (array[i].average > 90) mark = 1; else if (array[i].average > 85) { if (array[i].Chinese == 100) mark = 1; if (array[i].Math == 100) mark = 1; if (array[i].English == 100) mark = 1; if (array[i].Chinese > 95 && array[i].English > 95) mark = 1; if (array[i].Chinese > 95 && array[i].Math > 95) mark = 1; if (array[i].Math > 95 && array[i].English > 95) mark = 1; } if (mark == 1) { printf("%s\t%s\t", array[i].id, array[i].name); printf("%.f\t%.f\t%.f\t%.1f\t", array[i].Chinese, array[i].Math, array[i].English, array[i].average); printf("%d\n", i+1); } } }}/*按学生姓名查询成绩*/void search_name(struct stu array[], int n, char* name){ int i; char mark = 1; for (i = 0; i < n; i++) { if (strcmp(name, array[i].name) == 0) { printf("学生姓名:%s\n", name); printf("学生学号:%s\n", array[i].id); printf("语文:%.f\n", array[i].Chinese); printf("数学:%.f\n", array[i].Math); printf("英语:%.f\n", array[i].English); printf("平均分:%.1f\n", array[i].average); mark = 0; } } if (mark == 1) puts("不存在该学生记录");}/*按学生学号查询成绩*/void search_id(struct stu array[], int n, char* id){ int i; char mark = 1; for (i = 0; i < n; i++) { if (strcmp(id, array[i].id) == 0) { printf("学生姓名:%s\n", array[i].name); printf("学生学号:%s\n", array[i].id); printf("语文:%.f\n", array[i].Chinese); printf("数学:%.f\n", array[i].Math); printf("英语:%.f\n", array[i].English); printf("平均分:%.1f\n", array[i].average); mark = 0; break; } } if (mark == 1) puts("不存在该学生记录");}void print_menu(){ system("cls"); printf("1.输入学生信息\n"); puts("2.统计全班学生成绩"); puts("3.按学号查询学生成绩"); puts("4.按姓名查询学生成绩"); puts("5.输出不及格情况"); puts("6.输出优等生名单"); puts("0.退出本程序"); printf("\n\n 请输入你的选择:");}int main(int argc, char **argv){ char ch = 0; char id[8], name[8]; while (ch != '0') { print_menu(); ch = getchar(); switch (ch) { case '1': { system("cls"); input(); sort(students, current); break; } case '2': { system("cls"); print_score(students, current); break; } case '3': { system("cls"); printf("请输入学号:"); scanf("%s", id); search_id(students, current, id); break; } case '4': { system("cls"); printf("请输入姓名:"); scanf("%s", name); search_name(students, current, name); break; } case '5': { system("cls"); print_unreach(students, current); break; } case '6': { system("cls"); print_good(students, current); break; } case '0': exit(0); } printf("\n\n按任意键返回主菜单……"); getchar(); getchar(); } return 0;}
Hu118391 徊 c语言课程设计。
希望我的回答你能喜欢
百度,貌似有相关源码
. C语言学生信息管理系统程序相映论文系统概述本学生信息管理系统可以说是一个综合性的学校学生管理系统,这它集成了学生学籍管理系统、学生成绩管理系统、学生档案管理系统、学生缴费管理系统等多种功能,因而具有较强的实用性和先进性。1.1 系统及需求分析 1.1.1 系统需求 通过调查,要求系统需要有以下功能: ⑴ 由于操作人员的计算机知识普遍较差,要求有良好的人机界面; ⑵ 由于该系统的使用对象多,要求有较好的权限管理; ⑶ 原始数据修改简单方便,支持多条件修改⑷ 方便的数据查询,支持多条件查询;⑸ 在相应的权限下,删除数据方便简单,数据稳定性好;⑹ 数据计算自动完成,尽量减少人工干预;1.1.2可行性分析由于本系统管理的对象单一,都是在校学生,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。因此,比较适合于采用数据库管理。且学校用于学生管理的微机都是PIII以上的机器,在存储量、速度方面都能满足数据库运行的要求。在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因此完全可以实现。本系统的设计是在Windows 98中文版操作系统环境下,使用Visual Basic 6.0中文版开发成功的。数据库是MIS中的重要支持技术,在MIS开发过程中,如何选择数据库管理是一个重要的问题,目前,数据库产品较多,每种产品都具有各自的特点和适用范围,因此,在选择数据库时,应考虑数据库应用的特点及适用范围,本系统选用的数据库语言介绍如下:Visual Basic语言Visual Basic是一种可视化的、面对对象和条用事件驱动方式的结构化高级程序设计,可用于开发Windows环境下的种类应用程序。它简单易学、效率高,且功能强大,可以与Windows的专业开发工具SDK相媲美,而且程序开发人员不必具有C/C++编程基础
#ifndef H_STUDENT_HH #define H_STUDENT_HH #include "stdio.h" #include "string.h" #include "malloc.h" #define LEN sizeof(struct message_student) /*一个结构体数组元素的长度*/ #define numsubs 5 /*学科数目*/ typedef struct message_student /*结构体定义*/ { char number[6]; char name[20]; char sex[4]; float subject[numsubs]; float score; float average; int index; }student; extern int numstus; /*学生数目*/ extern student *pointer; /*指向结构体数组*/ extern int lens; int menu_select(); /*函数声明*/ int openfile(student stu[]); int findrecord(student stud[]); int writetotext(student stud[]); void welcome(); void display1(); void showtable(); void sort(student stu[]); void deleterecord(student stu[],int i); void addrecord(student stud[]); void display(student stud[],int n1,int n2); void amendrecord(student stud[]); void count(student stud[]); void sortnum(student stud[]); void sortnum2(student stud[]); void sortname(student stud[]); void sortname2(student stud[]); void sortcount(student stud[]); void sortcount2(student stud[]); void statistic(student stud[]); void display1(); #endif //#include "head.h" int menu_select() { char c; printf("\n\n"); printf(" | 1. 增加学生记录 5.统计信息 |\n"); printf(" | 2. 查询学生记录 6.打开文件 |\n"); printf(" | 3. 修改学生记录 7.保存文件 |\n"); printf(" | 4. 学生纪录排序 8.显示记录 |\n"); printf(" | 0.退出系统 |\n"); printf("\n\n"); printf("请选择(0-8):"); c=getchar(); getchar(); return (c-'0'); } //#include "head.h" int findrecord(student stud[]) /*查找信息*/ { char str[2]; int i,num; if(numstus==0) { printf("没有可被查找的记录\n"); return -1; } else { printf("以何种方式查找?\n1.学号\t2.姓名\t3.名次\n"); gets(str); if(str[0]=='1') /*按学号查找*/ { printf("请输入学号:"); gets(str); for(i=0;i<=numstus;i++) if(strcmp(str,stud[i].number)==0) { display(stud,i,i); break; } else continue; } else if(str[0]=='2') /*按姓名查找*/ { printf("请输入姓名:"); gets(str); for(i=0;i<=numstus;i++) if(strcmp(str,stud[i].name)==0) { display(stud,i,i); break; } else continue; } else if(str[0]=='3') /*按名次查找*/ { printf("请输入名次:"); scanf("%d",&num); getchar(); for(i=0;i<=numstus;i++) if(num==stud[i].index) { display(stud,i,i); break; } else continue; } if(i>numstus) { printf("没有查找所要的信息。\n"); return -1; } return i; } } //#include"head.h" int openfile(student stu[]) { int i=0,j; FILE *fp; char filename[20],str[2]; if(numstus!=0) { printf("已经有记录存在,是否保存?(y/n)"); gets(str); if(str[0]=='y'||str[0]=='Y') writetotext(stu); } printf("请输入文件名:"); gets(filename); numstus=0; if((fp=fopen(filename,"rb+"))==NULL) { printf("无法打开该文件\n"); return(-1); } fscanf(fp,"%d",&numstus); fgetc(fp); while(i0) { temp=*(p+j); *(p+j)=*(p+j+1); *(p+j+1)=temp; } } } void sortnum2(student stud[]) { int i,j; student temp; student *p; p=stud; for(i=0;i0) { temp=*(p+j); *(p+j)=*(p+j+1); *(p+j+1)=temp; } } } void sortname(student stud[]) { int i,j; student temp; student *p; p=stud; for(i=0;i0) { temp=*(p+j); *(p+j)=*(p+j+1); *(p+j+1)=temp; } } } void sortname2(student stud[]) { int i,j; student temp; student *p; p=stud; for(i=0;i0) { temp=*(p+j); *(p+j)=*(p+j+1); *(p+j+1)=temp; } } } void sortcount(student stud[]) { int i,j; student temp; student *p; p=stud; for(i=0;istud[j].index) { temp=*(p+j); *(p+j)=*(p+j+1); *(p+j+1)=temp; } } } void sortcount2(student stud[]) { int i,j; student temp; student *p; p=stud; for(i=0;istud[j+1].index) { temp=*(p+j); *(p+j)=*(p+j+1); *(p+j+1)=temp; } } } //#include"head.h" void statistic(student stud[]) /*新增功能,输出统计信息*/ { int i,j=0,k=0; char c1,str[2]; float average[numsubs],sum=0; if(numstus==0) printf("没有可被查找的记录\n"); else { while(1) { printf("下面将统计考试成绩\n"); printf("请选择你要统计哪科的成绩 1.A\t2.B\t3.C\t4.D\t5.E\n"); c1=getchar(); printf("\t一共有个%d记录\n",numstus); /*总共记录数*/ switch(c1) { case '1': for(i=0;istud[i].subject[0]) k=i; if(stud[j].subject[0]stud[i].subject[1]) k=i; if(stud[j].subject[1]stud[i].subject[2]) k=i; if(stud[j].subject[2]stud[i].subject[3]) k=i; if(stud[j].subject[3]stud[i].subject[4]) k=i; if(stud[j].subject[4] void amendrecord(student stud[]) { char str[5]; /*供用户输入*/ int i=-1,j; if(numstus==0) /*没有记录返回*/ printf("没有可供修改的记录!"); while(i<0) { i=findrecord(stud); if(i>=0) { printf("要删除这个学生的信息吗?(y/n)"); gets(str); if(str[0]=='y'||str[0]=='Y') { deleterecord(stud,i); count(stud); } else { printf("确定要修改这个学生的信息吗?(y/n)"); gets(str); if(str[0]=='y'||str[0]=='Y') { printf("下面请重新输入学生的信息:\n"); printf("请输入学号:"); gets(stud[i].number); printf("请输入姓名:"); gets(stud[i].name); printf("请输入性别(男/女 1/0):"); gets(str); if(str[0]=='0') strcpy(stud[i].sex,"女"); else strcpy(stud[i].sex,"男"); stud[i].score=0; printf("请按顺序输入成绩:"); for(j=0;j=0) { for(j=i;jstud[i].score) stud[i].index++; } } void addrecord(student stud[]) { int i=0,j,num; char str[5]; if(numstus!=0) { printf("已有记录存在是否覆盖?(y/n)\n"); gets(str); if(str[0]=='Y'||str[0]=='y') i=0; else i=numstus; } printf("请输入增加的学生信息条目数:"); scanf("%d",&num); if(i==0) numstus=num; else numstus+=num; if(numstus>lens) { lens+=50; pointer=(student *)realloc(pointer,lens*LEN); } printf("请输入学生信息:\n"); for(;i0) { i=menu_select(); /*控制菜单*/ switch(i) { case 1:addrecord(pointer);break; /*增加学生信息*/ case 2:findrecord(pointer);break; /*查询学生信息*/ case 3:amendrecord(pointer);break; /*修改学生信息*/ case 4:sort(pointer);break; /*学生信息排序*/ case 5:statistic(pointer);break; /*统计信息*/ case 6:openfile(pointer);break; /*打开文件*/ case 7:writetotext(pointer);break; /*保存文件*/ case 8:display(pointer,0,numstus-1);break; /*显示记录*/ case 0: if(numstus!=0) printf("是否保存当前记录?(y/n)"); gets(str); if(str[0]=='y'||str[0]=='Y') writetotext(pointer); i=-1;break; /*退出系统*/ default:printf("请输入数字0~8:\n");i=1; /*输入错误*/ } } printf("\t\t欢迎再次使用本系统。\n\n"); display1(); }
直接用个txt文件保存吧,比较简单
真是奇怪,管理软件为什么不用VF来写了。标准化的界面,就用VB好了,微软工程师 都用 这些的。造出来 的都是标准化窗口。
纯手工。望采纳!!#include #include #include#define MENU_NUM 7#define N 3typedef struct s1{ char no[11]; /*学号由10个字符组成*/ char name[15]; /*学生姓名*/ float score[N]; /*各门课成绩*/ float sum; /*总分*/ float average; /*平均分*/ int order; /*名次*/ struct s1 *next; /*指向后继结点的指针*/}STUDENT; /*定义结构体类型*/STUDENT * head=NULL;void InputData( STUDENT * ptr );void PrintMenu( );int Menu_Select( );void Init( );void create( );void print( ) ;void Delete( );void append();void computer();main(){ int key; while(1) { key=Menu_Select(); switch(key) { case 0: Init(); //初试化链表。也就是若链表不为空则释放链表中所有数据,将head置为空(NULL) break; case 1: create(); //创建链表,输入数据 break; case 2: Delete(); //删除一个指定学号的记录数据 break; case 3: print(); //打印链表中所有数据 break; case 4: computer(); //计算链表中所有人的总分和平均分 break; case 5: append(); //追加一个数据到链表的尾部 break; case 6: Init(); //释放链表 exit(0); } };}void PrintMenu( ){ int i; char * menu[]={ "0. Init list", "1. Enter list", "2. Delete a record from list", "3. Print list", "4. Compute the score", "5. Insert record to list", "6. Quit" }; printf("\n\n"); for (i=0;inext;//ptr指向下一个结构数据 free(p);//释放p所指向的结构数据的内存 p=ptr;//将p指向ptr所指向的数据 } head=NULL;//将head指向NULL}void create( ) //创建单链表{ STUDENT *pt, *pth=NULL; //定义两个指针变量:pt指向即将申请新的数据内存,pth指向当前数据 while(1) { pt=(STUDENT *)malloc(sizeof(STUDENT));//让pt指向新申请的内存空间 InputData(pt);//输入数据,存放到pt所指向的结构数据。注意让pt的next指向NULL if (strcmp(pt->no,"@")==0) { free(pt);//释放pt所指向的内存空间 break;//退出循环 } else if (head==NULL) { pth=pt; head=pt;//将头指针head和pth指向pt } else { pth->next=pt; //将pth的next指向pt; pth=pt; //将pth指向pt; } };}void print( ) //打印单链表中所有数据{ int i=0; STUDENT *p;//第一个指针p p=head;//将p指向head printf("\n"); printf("******************************STUDENT******************************\n"); printf("|rec|no | name | sc1| sc2| sc3| sum | ave |order|\n"); printf("|---|----------|----------------|----|----|----|------|-----|-----|\n"); //打印表头 while (p!=NULL) { printf("|%3d|%10s|%-16s|%4.1f|%4.1f|%4.1f|%6.2f|%5.1f|%5d|\n", ++i,p->no,p->name,p->score[0],p->score[1],p->score[2], p->sum,p->average,p->order); //打印p所指向的结构中的所有数据。注意打印数据间的分隔线 p=p->next;//将p指向p的下一个结构数据 } printf("********************************END********************************\n");//打印表尾}void Delete( ) //删除一个记录{ STUDENT *p,*pth;//定义两个指针p,pth char no[11];//定义一个整数no(用来存储输入的学号) printf("intput delete no\n"); scanf("%s",no);//用输入语句输入一个学号存储到no中 p=head;pth=head;//将p和pth都指向头指针 if (strcmp(p->no,no)==0) //也就是若头指针指向的数据需要删除 { head=head->next;//将head指针指向head的下一个数据; free(p);//释放p所指向的数据 } else { p=p->next;//将p指向p的下一个数据 while ( p!=NULL) { if (strcmp(p->no,no)==0) //找到了要删除的数据 { pth->next=p->next;//将pth的next指向p的next free(p);//释放p break;//退出循环 } else { pth=pth->next;//将pth指向pth的next 或 将pth指向p p=p->next;//将p指向p的next } } }}void append(){ STUDENT *p,*pth;//定义两个指针变量p,pth pth=head;//将pth指向head while ( pth->next!=NULL) { pth=pth->next;//ptr指向ptr的next } p=(STUDENT *)malloc(sizeof(STUDENT));//将p指向新申请的内存空间 InputData(p);p->next=NULL;//数据数据存储到p所指向的内存空间,注意将p的next置为NULL pth->next=p;//将ptr的next指向p}void InputData( STUDENT *ptr ){ int i; printf("enter no:"); scanf("%s",ptr->no); if (strcmp(ptr->no,"@")==0 ) return; printf("enter name:"); scanf("%s",ptr->name); for(i=0;i<3;i++) { printf("shuru chengji\n"); scanf("%f",&ptr->score[i]); } ptr->sum=0; ptr->average=0; ptr->order=0; ptr->next=NULL;}void computer(){ STUDENT *p; p=head; for(;p;p=p->next) { p->sum=p->score[0]+p->score[1]+p->score[2]; p->average=(p->score[0]+p->score[1]+p->score[2])/3; }}请采纳。
鄙视 鄙视
摘 要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。 本文介绍了在Visual C++6.0环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发一个管理信息系统的过程。通过分析某一学校学生管理的不足,创建了一套行之有效的计算机管理学生的方案。文章介绍了学生管理信息系统的系统分析部分,包括可行性分析、业务流程分析等;系统设计部分主要介绍了系统功能设计和数据库设计及代码设计;系统实现部分说明了几个主要模块的算法,并附带了一些主要的窗口和程序。 本系统界面友好,操作简单,比较实用。 【关键字: 管理信息系统、学生管理、Visual C++应用。 Summary With more and more widespread and profound application of information technology in management the implement of management information system has become mature in technology step by step. Managing information system is a new subject. Enterprise needs existence and development so enterprise activities should be organized efficiently and organically which means tightening up the enterprise management and strengthening effective management of any resource (staff finance property etc.) internal the enterprise and also establishing a management information system fitting in with its own characteristics. This article introduces the detailed process of exploring a management information system under the environment of visual foxpro utilizing “Top-Bottom” overall plan and a strategy according to “Bottom-Top” application and exploitation. That is to establish a set of effective scheme for student management by computer through analyzing disadvantages of student management by human resources. This article emphasizes on three sections. The system analysis section of student management information includes feasible analysis management function analysis.The system design section mainly focuses on system function design and data base design and data number design. And the system realization section has provided several major function together with the main windows and programs. This economical and pragmatic system has explicit interface with simple operation. [Keywords] : MIS、student management、Visual C++ application
一、课题来源、目的与要求:课题来源:指导老师提供课题,自己组织材料。目的:通过这次课题设计掌握用软件工程方法开发一款软件。运用B/S方式,WEB技术,ASP编程技术,了解Internet的TCP/IP协议。学会运用ASP的动态网页和SQL Server大型的数据库架构系统。学会使用多种种开发工具。培养相互合作,大胆创新的精神。要求:学生成绩管理系统的主要目的是为学校的学生成绩管理提供一种高效的事物处理。本系统用户角色主要有两类:系统管理员与普通用户。其中系统管理员可进行用户管理。普通用户可分为学生,老师,教务处等用户。系统管理员:可进行用户管理,组权限分配,信息查询等工作。教师:可进行学生信息管理,课程信息管理,成绩管理,授课信息管理,信息查询,成绩统计等工作。学生:可进行成绩查询等操作。 二、主要设计内容:学生成绩管理系统的主要目的是为学校的学生成绩管理提供一种高效的事物处理。本系统用户角色主要有两类:系统管理员与普通用户。其中系统管理员可进行用户管理。普通用户可分为学生,老师,教务处等用户。系统管理员:可进行用户管理,组权限分配,信息查询等工作。教师:可进行学生信息管理,课程信息管理,成绩管理,授课信息管理,信息查询,成绩统计等工作。学生:可进行成绩查询等操作。 三、主要设计技术指标与参数:普通PC安装有vs2005和SQLServer2000CPU:P4 1.8GHz以上内存:256MB以上能运行IE5.0以上或Ntscape4.0以上版本的机器分辨率:推荐使用1024×768像素 四、分阶段指导性进度计划:1-4周 查阅资料,准备开题报告。5-6周 进行学生管理系统的需求分析。7-8周 进行学生成绩管理系统的概要设计。9-11周 进行学生成绩管理系统的详细设计。12-13周 完成学生成绩管理系统的源代码编写。14周 进行学生成绩管理系统系统的测试15周 组织相关材料完成毕业论文 16周 学生成绩管理系统答辩。 五、主要参考文献资料:[1] 魏峥,王军,崔同良. ADO.NET程序设计教程与实验. 北京:清华大学出版社,2007.9 [2] 李万宝.ASP.NET技术详解与应用实例.北京:机械工业出版社,2005.9[3] Dannien Foggon,Danniel Maharry(编),杨浩(译).ASP.NET1.1数据库入门经典.北京:清华大学出版社,2005.9 [4] 苏贵洋,黄穗,何莉,倪春雨等.ASP.NET网络编程从基础到实践.北京:电子工业出版社,2005.10[5] 凯际资讯工作室.ASP.NET程序与数据库设计入门.北京:清华大学出版社,2004.9[6] 求是科技.ASP.NET数据库管理系统开发实例导航.北京:人民邮电出版社,2005.6[7] 卢镇波,李青.ASP.NET程序设计专家门诊.北京:清华大学出版社,2005.5[8] 陈娴,刘志宝,李岱.ASP.NET项目开发实践(第2版).北京:中国铁道出版社,2005.6[9] 王保健.ASP.NET网站建设专家.北京:清华大学出版社,2005.7[10] Julia Case Bradley,Anita C.Millspaugh(编),天宏工作室(译).C#.NET程序设计.北京:清华大学出版社,2005.1[11] 曹斌,韩中孝.ASP.NET数据库系统项目开发实践.北京:科学出版社,2005.6[12] 南泰电脑,吕文达.精通C#程序设计.北京:清华大学出版社,2004.11[13] 吉根林,崔海源.ASP.NET程序设计教程.北京:电子工业出版社,2004,5. [14] 陈志泊.ASP.NET数据库应用程序开发.北京:人民邮电出版社,2005,8.[15] 启明工作室.ASP.NET+SQL Server网络应用系统开发与实例.北京:人民邮电出版社,2005.2.
一、课题来源、目的与要求:课题来源:指导老师提供课题,自己组织材料。目的:通过这次课题设计掌握用软件工程方法开发一款软件。运用B/S方式,WEB技术,ASP编程技术,了解Internet的TCP/IP协议。学会运用ASP的动态网页和SQL Server大型的数据库架构系统。学会使用多种种开发工具。培养相互合作,大胆创新的精神。要求:学生成绩管理系统的主要目的是为学校的学生成绩管理提供一种高效的事物处理。本系统用户角色主要有两类:系统管理员与普通用户。其中系统管理员可进行用户管理。普通用户可分为学生,老师,教务处等用户。系统管理员:可进行用户管理,组权限分配,信息查询等工作。教师:可进行学生信息管理,课程信息管理,成绩管理,授课信息管理,信息查询,成绩统计等工作。学生:可进行成绩查询等操作。 二、主要设计内容:学生成绩管理系统的主要目的是为学校的学生成绩管理提供一种高效的事物处理。本系统用户角色主要有两类:系统管理员与普通用户。其中系统管理员可进行用户管理。普通用户可分为学生,老师,教务处等用户。系统管理员:可进行用户管理,组权限分配,信息查询等工作。教师:可进行学生信息管理,课程信息管理,成绩管理,授课信息管理,信息查询,成绩统计等工作。学生:可进行成绩查询等操作。 三、主要设计技术指标与参数:普通PC安装有vs2005和SQLServer2000CPU:P4 1.8GHz以上内存:256MB以上能运行IE5.0以上或Ntscape4.0以上版本的机器分辨率:推荐使用1024×768像素 四、分阶段指导性进度计划:1-4周 查阅资料,准备开题报告。5-6周 进行学生管理系统的需求分析。7-8周 进行学生成绩管理系统的概要设计。9-11周 进行学生成绩管理系统的详细设计。12-13周 完成学生成绩管理系统的源代码编写。14周 进行学生成绩管理系统系统的测试15周 组织相关材料完成毕业论文16周 学生成绩管理系统答辩。 五、主要参考文献资料:[1] 魏峥,王军,崔同良. ADO.NET程序设计教程与实验. 北京:清华大学出版社,2007.9 [2] 李万宝.ASP.NET技术详解与应用实例.北京:机械工业出版社,2005.9[3] Dannien Foggon,Danniel Maharry(编),杨浩(译).ASP.NET1.1数据库入门经典.北京:清华大学出版社,2005.9 [4] 苏贵洋,黄穗,何莉,倪春雨等.ASP.NET网络编程从基础到实践.北京:电子工业出版社,2005.10[5] 凯际资讯工作室.ASP.NET程序与数据库设计入门.北京:清华大学出版社,2004.9[6] 求是科技.ASP.NET数据库管理系统开发实例导航.北京:人民邮电出版社,2005.6[7] 卢镇波,李青.ASP.NET程序设计专家门诊.北京:清华大学出版社,2005.5[8] 陈娴,刘志宝,李岱.ASP.NET项目开发实践(第2版).北京:中国铁道出版社,2005.6[9] 王保健.ASP.NET网站建设专家.北京:清华大学出版社,2005.7[10] Julia Case Bradley,Anita C.Millspaugh(编),天宏工作室(译).C#.NET程序设计.北京:清华大学出版社,2005.1[11] 曹斌,韩中孝.ASP.NET数据库系统项目开发实践.北京:科学出版社,2005.6[12] 南泰电脑,吕文达.精通C#程序设计.北京:清华大学出版社,2004.11[13] 吉根林,崔海源.ASP.NET程序设计教程.北京:电子工业出版社,2004,5. [14] 陈志泊.ASP.NET数据库应用程序开发.北京:人民邮电出版社,2005,8.[15] 启明工作室.ASP.NET+SQL Server网络应用系统开发与实例.北京:人民邮电出版社,2005.2.
分太少了··
摘 要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。 本文介绍了在Visual C++6.0环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发一个管理信息系统的过程。通过分析某一学校学生管理的不足,创建了一套行之有效的计算机管理学生的方案。文章介绍了学生管理信息系统的系统分析部分,包括可行性分析、业务流程分析等;系统设计部分主要介绍了系统功能设计和数据库设计及代码设计;系统实现部分说明了几个主要模块的算法,并附带了一些主要的窗口和程序。 本系统界面友好,操作简单,比较实用。 【关键字: 管理信息系统、学生管理、Visual C++应用。 Summary With more and more widespread and profound application of information technology in management the implement of management information system has become mature in technology step by step. Managing information system is a new subject. Enterprise needs existence and development so enterprise activities should be organized efficiently and organically which means tightening up the enterprise management and strengthening effective management of any resource (staff finance property etc.) internal the enterprise and also establishing a management information system fitting in with its own characteristics. This article introduces the detailed process of exploring a management information system under the environment of visual foxpro utilizing “Top-Bottom” overall plan and a strategy according to “Bottom-Top” application and exploitation. That is to establish a set of effective scheme for student management by computer through analyzing disadvantages of student management by human resources. This article emphasizes on three sections. The system analysis section of student management information includes feasible analysis management function analysis.The system design section mainly focuses on system function design and data base design and data number design. And the system realization section has provided several major function together with the main windows and programs. This economical and pragmatic system has explicit interface with simple operation. [Keywords] : MIS、student management、Visual C++ application