[速求:C课程设计班级人事管理系统!谢谢各位了!]你可以看看这个。这个是学籍信息管理系统,实现方式和你的差不多,改一点点就行了。我以前做过一个学生宿舍管理系统,和这个差不多。你自己试着改改看。就改一下变量名称之类的,程...+阅读
C语言设计:学生选修课程系统设计
#include#include#includetypedef struct subjects { int num; char name[20]; char kind[10]; int stime; int ttime; int etime; int score; int term; struct subjects *next; }SUB; SUB *create_form() { SUB *head,*tail,*p; int num,stime,ttime; int etime,score,term; char name[20],kind[10]; int size=sizeof(SUB); head=tail=NULL; printf("输入选修课程信息:\n"); scanf("%d %s %s %d %d %d %d %d",&num,&name,&kind,&stime,&ttime,&etime,&score,&term); while(num!=0){ p=(SUB *)malloc(size); p->num=num; strcpy(p->name,name); strcpy(p->kind,kind); p->stime=stime; p->ttime=ttime; p->etime=etime; p->score=score; p->term=term; if(head==NULL) head=p; else tail->next=p; tail=p; scanf("%d %s %s %d %d %d %d %d",&num,&name,&kind,&stime,&ttime,&etime,&score,&term); } tail->next=NULL; return head; } void savefile(SUB *head) { SUB *p; FILE *fp; fp=fopen("subjects.txt","w"); fprintf(fp,"课程编号 课程名称 课程性质 总学时 授课学时 实验或上机学时 学分 开课学期\n"); for(p=head;p;p=p->next) fprintf(fp,"%5d%12s%9s%9d%9d%11d%11d%7d\n",p->num,p->name,p->kind,p->stime,p->ttime,p->etime,p->score,p->term); fclose(fp); } void savefileadd(SUB *head) { SUB *p; FILE *fp; fp=fopen("subjectsadd.txt","w"); fprintf(fp,"课程编号 课程名称 课程性质 总学时 授课学时 实验或上机学时 学分 开课学期\n"); for(p=head;p;p=p->next) fprintf(fp,"%5d%12s%9s%9d%9d%11d%11d%7d\n",p->num,p->name,p->kind,p->stime,p->ttime,p->etime,p->score,p->term); fclose(fp); } void savefiledel(SUB *head) { SUB *p; FILE *fp; fp=fopen("subjectsdel.txt","w"); fprintf(fp,"课程编号 课程名称 课程性质 总学时 授课学时 实验或上机学时 学分 开课学期\n"); for(p=head;p;p=p->next) fprintf(fp,"%5d%12s%9s%9d%9d%11d%11d%7d\n",p->num,p->name,p->kind,p->stime,p->ttime,p->etime,p->score,p->term); fclose(fp); } void prin(SUB *head) { SUB *ptr; if(head==NULL){ printf("没有此门课程记录!\n"); return; } printf("课程编号 课程名称 课程性质 总学时 授课学时 实践或上机学时 学分 开课学期\n"); for(ptr=head;ptr;ptr=ptr->next) printf("%5d%12s%9s%9d%9d%11d%11d%7d\n",ptr->num,ptr->name,ptr->kind,ptr->stime,ptr->ttime,ptr->etime,ptr->score,ptr->term); } void search(SUB *head) { int a,num; int t=1; char type[10]; char,ch1; SUB *ptr; while(ch!=' '){ printf("若要按课程性质查找请输入1,若要按学分查找请输入2:\n"); scanf("%d",&a); switch(a){ case 1:printf("请输入要查找的课程的性质:\n"); scanf("%s",type); printf("课程编号 课程名称 课程性质 总学时 授课学时 实践或上机学时 学分 开课学期\n"); for(ptr=head;ptr;ptr=ptr->next) if(strcmp(type,ptr->kind)==0){ printf("%5d%12s%9s%9d%9d%11d%11d%7d\n",ptr->num,ptr->name,ptr->kind,ptr->stime,ptr->ttime,ptr->etime,ptr->score,ptr->term); t=0; } if(t) printf("未找到!\n"); t=1; break; case 2:printf("输入要查找的课程的学分\n"); scanf("%d",&num); printf("课程编号 课程名称 课程性质 总学时 授课学时 实践或上机学时 学分 开课学期\n"); for(ptr=head;ptr;ptr=ptr->next) if(ptr->score==num){ printf("%5d%12s%9s%9d%9d%11d%11d%7d\n",ptr->num,ptr->name,ptr->kind,ptr->stime,ptr->ttime,ptr->etime,ptr->score,ptr->term); t=0; } if(t) printf("未找到!\n"); t=1; } printf("继续查找请按回车键,结束请按空格键:\n"); ch1=getchar(); //将回车键赋给CH1,否则CASE里面最后输入的回车键会赋给CH,因此用CH1填补。
ch=getchar(); } } SUB *insert(SUB *head) { SUB *ptr,*ptr2,*subj; int size=sizeof(SUB); char,ch1; while(ch!=' '){ subj=(SUB *)malloc(size); ptr=subj; printf("输入要插入的课程信息:\n"); scanf("%d%s%s%d%d%d%d%d",&subj->num,subj->name,subj->kind,&subj->stime,&subj->ttime,&subj->etime,&subj->score,&subj->term); if(head==NULL){ head=ptr; head->next=NULL; } else{ for(ptr2=head;ptr2;ptr2=ptr2->next) if(ptr2->next==NULL){ ptr2->next=subj; subj->next=NULL; break; } } printf("继续插入请按回车,结束请按空格:\n"); ch1=getchar(); //将回车键赋给CH1,否则subj->term输完后输入的回车键会赋给CH,因此用CH1填补。 ch=getchar(); } return head; } SUB *del(SUB *head) { SUB *p1,*p2; char,ch1; int num; while(ch!=' '){ printf("输入想要删除的课程编号:\n"); scanf("%d",&num); if(head->num==num){ p2=head; head=head->next; free(p2); } if(head==NULL) return NULL; p1=head; p2=head->next; while(p2){ if(p2->num==num){ p1->next=p2->next; free(p2); } else p1=p2; p2=p1->next; } printf("继续删除请按回车,结束请按空格:\n"); ch1=getchar(); //将回车键赋给CH1,否则num输完后再输入的回车键会赋给CH,因此用CH1填补。
ch=getchar(); } ...
请详细描述网上选课系统的设计过程不少于500字
2.4 系统主要功能
实验选课系统分为教师,学生及系统管理员三类用户,学生的功能包括选课、退选、查询选课信息等,教师的功能包括学生成绩录入,查询实验信息等。管理员的功能包括新建教师、学生账户,添加课程信息,其系统功能模块如图:
图2-1 系统功能模块
三、E-R图
本章节主要包含概念设计、E-R图,以及如何将E-R图转换为实际的物理模型等内容。
3.1 概念设计
在我们的数据库系统中共有6个实体:学生、教师、管理员、专业、院系、课程。
(1)学生的属性:学号、姓名、性别、生日、密码
(2)教师的属性:工号、姓名、性别、生日、密码、职称
(3)管理员的属性:工号、姓名、性别、生日、密码、权限标志
(4)专业的属性:专业号码、专业名、辅导员、联系方式、专业说明
(5)院系的属性:系号码、系名称、系主任、联系方式、系说明
(6)课程的属性:课程号码、学时、学分、课程说明
(7)控制设置属性:选课控制、成绩录入控制
3.2 E-R图
各个实体的E-R图
学生
教师
管理员
专业
系
课程
然后,将以上实体之间联系表示出来,画出数据库系统的E-R图,
四、逻辑结构
4.1 逻辑转换
根据3.2节中的E-R图可以将系统中的概念模型转换为具体的表(即关系)结构,共分为7个关系,详细信息如下所示:
学生(学号、专业号码、姓名、性别、生日、密码)
教师(教师工号、系号码、姓名、性别、生日、密码、职称)
管理员(管理员工号、姓名、性别、生日、密码、权限标志)
专业(专业号码、系号码、专业名、辅导员、联系方式、专业说明)
院系(系号码、系名称、系主任、联系方式、系说明)
课程(课程号码、学时、学分、课程说明)
选课信息(学号、课程号码、教师工号、成绩)
跪求一个c语言学生选课管理系统急用!不要文库的我要个程
#include#include#includeint N1,N2;struct student { int num2; char name2[20]; int nelenum[50]; //所选课程编号 int nelen; //所选课程学分和 struct student * next; }; struct course { int num1; //课程编号 char name1[20]; char major[20]; char type[20]; int credit; int period; char teacher[20]; int people; //选此门课程的人数 struct course *next; //结构体指针 }; struct course * head1; struct student * head2; void zhang() //从键盘录入课程信息 { struct course *p1,*p2; N1=0; p1=p2=(struct course *)malloc(sizeof(struct course)); printf("课程编号\t 课程名称\t 主修\t 课程性质\t 学分\t 课时\t 教师\n"); scanf("%d%s%s%s%d%d%s",&p1->num1,p1->name1,p1->major,p1->type,&p1->cr edit,&p1->period,p1->teacher); p1->people=0; head1=NULL; while(p1->num1!=0) { N1=N1+1; if(N1==1)head1=p1; else p2->next=p1; p2=p1; p1=(struct course * )malloc(sizeof(struct course)); scanf("%d%s%s%s%d%d%s",&p1->num1,p1->name1,p1->major,p1->type,&p1->cr edit,&p1->period,p1->teacher); p1->people=0; 17 } p2->next=NULL; } void zhang1() //从文件录入课程信息 { FILE * fp; char filepath[20]; struct course *p1,*p2; N1=0; printf("请输入您要读取的路径:"); getchar(); gets(filepath); if((fp=fopen(filepath,"r"))==NULL) { printf("找不到 %s 文件!\n",filepath); exit(0); } p1=p2=(struct course*)malloc(sizeof(struct course)); fscanf(fp,"%d%s%s%s%d%d%s%d",&p1->num1,p1->name1,p1->major,p1->type,& p1->credit,&p1->period,p1->teacher,&p1->people); while(!feof(fp)) { N1=N1+1; if(N1==1) head1=p1; else p2->next=p1; p2=p1; p1=(struct course * )malloc(sizeof(struct course)); fscanf(fp,"%d%s%s%s%d%d%s%d",&p1->num1,p1->name1,p1->major,p1->type,& p1->credit,&p1->period,p1->teacher,&p1->people); } p2->next=NULL; } void load() //录入课程信息函数 { int i; printf("\t\t\t 录入课程信息\n"); printf("\n1.从键盘录入"); printf("\n2.从文件录入"); printf("\n3.返回主菜单\n"); printf("请选择1-3:"); scanf("%d",&i); switch(i) { case 1: zhang(); break; case 2:zhang1();break; case 3:break; } } void insert(struct course *incourse) //增加课程信息 { struct course *p0,*p1,*p2; p1=head1; p0=incourse; if(head1==NULL) { head1=p0; p0->next=NULL; } else { while((p0->num1>p1->num1) & (p1->next!=NULL)) { p2=p1; p1=p1->next; } if(p0->num1num1) { if(head1==p1) head1=p0; else p2->next=p0; p0->next=p1; } else { p1->next=p0; p0->next=NULL; } } N1=N1+1; } void delc(int num1) //删除课程信息 { struct course *p1,*p2; if(head1==NULL) { printf("\n 无法删除!\n"); goto end; }p1=head1; while(num1!=p1->num1 & p1->next!=NULL) { p2=p1; p1=p1->next; } if(num1==p1->num1) { if(p1==head1) head1=p1->next; else p2->next=p1->next; printf("已删除\n"); N1=N1-1; } else printf("没有此课程\n"); end:; } void managementc() //课程信息管理函数 { struct course * p1; int i,num1; printf("\t\t\t 课程信息管理\n"); printf("1.添加课程\n"); printf("2.删除课程\n"); printf("3.返回\n"); printf("请输入1-3:\n"); scanf("%d",&i); switch(i) { case 1:{p1=(struct course *)malloc(sizeof(struct course)); printf("课程编号\t 课程名称\t 主修\t 课程性质\t 学分\t 课时\t 教师\n"); scanf("%d%s%s%s%d%d%s",&p1->num1,p1->name1,p1->major,p1->type,&p1->cr edit,&p1->period,p1->teacher); p1->people=0; insert(p1); } break; case 2:printf("请输入您要删除的课程编号:\n"); scanf("%d",&num1); delc(num1); break; case 3:break; } } void putin(void) //从键盘录入学生信息 { int i; struct student *p1,*p2; N2=0; p1=p2=(struct student *)malloc(sizeof(struct student)); printf("学号\t 姓名\n"); scanf("%d%s",&p1->num2,p1->name2); p1->nelen=0; for(i=0;inelenum[i]=0; head2=NULL; while(p1->num2!=0) { N2=N2+1; if(N2==1) head2=p1; else 22 p2->next=p1; p2=p1; p1=(struct student * )malloc(sizeof(struct student)); scanf("%d%s",&p1->num2,p1->name2); p1->nelen=0; for(i=0;inelenum[i]=0; } p2->next=NULL;} void putin2() //从文件录入学生信息 { int i=0; FILE * fp; char filepath[20]; struct student *p1,*p2; N2=0; printf("请输入您要读取的路径:"); getchar(); gets(filepath); if((fp=fopen(filepath,"rt"))==NULL) { printf("找不到 %s 文件!\n",filepath); exit(0); } p1=p2=(struct student*)malloc(sizeof(struct student)); fread(p1,sizeof(struct student),1,fp); head2=NULL; while(!feof(fp)) { i=0; N2=N2+1; ...
请高手用C语言给我编个学生选课系统
#include#include#include#define ERROR 0 #define OK 1 #define EQUAL 1 #define OVERFLOW -1 #define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 struct STU{ char name[20]; char stuno[10]; int age; int score; }stu[50]; typedef struct STU ElemType; struct LIST { ElemType *elem; int length; int listsize; }; typedef struct LIST List; int init(List *L) { L->elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType)); if(!L->elem) exit(OVERFLOW); L->length=0; L->listsize=LIST_INIT_SIZE; return OK; }/*init */ int ListLength(List *L) { return L->length; } void GetElem(List L,int i,ElemType *e) { *e=L.elem[i]; } int EqualList(ElemType *e1,ElemType *e2) { if (strcmp(e1->name,e2->name)==0) return 1; else return 0; } int Less_EqualList(ElemType *e1,ElemType *e2) { if (strcmp(e1->name,e2->name)elem[i],&e)) return 1; break; default: break; } return 0; } void MergeList(List *La,List *Lb,List *Lc) { ElemType *pa,*pb,*pc,*pa_last,*pb_last; pa=La->elem;pb=Lb->elem; Lc->listsize = Lc->length = La->length + Lb->length; pc = Lc->elem = (ElemType *)malloc(Lc->listsize * sizeof(ElemType)); if(!Lc->elem) exit(OVERFLOW); pa_last = La->elem + La->length - 1; pb_last = Lb->elem + Lb->length - 1; while(palength; return OK; }/*ListInsert Before i */ main() { struct STU e; List La,Lb,Lc; clrscr(); printf("First is InsertList function.\n"); init(&La); strcpy(e.name,"stu1"); strcpy(e.stuno,"100001"); e.age=80; e.score=1000; ListInsert(&La,1,e); strcpy(e.name,"stu3"); strcpy(e.stuno,"100002"); e.age=80; e.score=1000; ListInsert(&La,2,e); printlist(La); printf("List A length now is %d.\n\n",La.length); getch(); strcpy(e.name,"stu5"); strcpy(e.stuno,"100003"); e.age=80; e.score=1000; ListInsert(&La,3,e); printlist(La); printf("List A length now is %d.\n\n",La.length); getch(); init(&Lb); strcpy(e.name,"stu2"); strcpy(e.stuno,"100001"); e.age=80; e.score=1000; ListInsert(&Lb,1,e); strcpy(e.name,"stu4"); strcpy(e.stuno,"100002"); e.age=80; e.score=1000; ListInsert(&Lb,2,e); strcpy(e.name,"stu6"); strcpy(e.stuno,"100001"); e.age=80; e.score=1000; ListInsert(&Lb,3,e); printlist(Lb); printf("List B length now is %d.\n\n",Lb.length); getch(); MergeList(&La,&Lb,&Lc); printlist(Lc); getch(); printf("Second is UnionList function.\n"); printf("Now union List A and List B..\n"); UnionList(&La,&Lb); printlist(La); printf("List A length now is %d.\n\n",La.length); getch(); }
延伸阅读:
数据结构c语言版的课程设计一、问题描述: 利用哈夫曼编码进行信息通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的...
跪求数据结构课程设计C语言版代码感激不尽在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时...
c程序设计设计题目:计目的:实现简单的学生成绩管理系统在#includeusing namespace std; typedef struct record { char name[20]; /* 姓名 */ char code[20]; /* 学号 */ int mathmark; /* 数学课程成绩 */ int englishmark; /* 英语课...
用c语言设计这样的学生成绩统计系统!急#include#include#include#define MAX 1000/*定义学生成绩信息结构*/struct stu{ char id[8]; char name[8]; double Chinese; double Math; double English; double averag...
帮忙搞C语言课程设计上课没学好拜托保安值班管理系统//.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "string.h" #includechar *WEEK[7] = {"星期天", "星期一", "星期二", "星期三","星期四","...
如何用C语言编译学生成绩管理系统设计一个成绩管理程序分别用函#include "stdafx。h"#include "stdio。h"#include "string。h"int main(int argc, char* argv[]){ struct days { int year; int mon; int day; }; struct max { int num; char n...
c语言程序设计c语言程序设计,C程序设计:方法1: 启动VC时不要用图形界面,通过在命令提示符下输入:Msdev /useenv运行(注意啦/前面有个空格).它会强制使系统环境变量全高设置成正确值.而且,只需要使...
C语言程序设计:电气设备管理系统设计C语言程序设计:电气设备管理系统设计,电力自动化系统:大体是这个样子,如果有细节问题你自己修改就行了。#include #include #include struct electrical_device_management{ cha...
课程设计职工信息管理系统设计课程设计职工信息管理系统设计,管理信息系统课程设计:本程序包括八个组要模块 (1) 主程序模块 main() { 清屏并显示主菜单提示用户选择所要执行的操作 根据用户的选择执行相应模...