大家帮个忙啊小弟我是数学专业的,学校要小弟我们做这写课程设计,多谢啦
大家帮个忙啊,我是数学专业的,学校要我们做这写课程设计,谢谢啦
题目1:成绩管理系统
问题描述:
对一个班的多门课程的成绩进行管理,能够实现一个班级学生信息的输入,输出,查找、删除,修改,排序,求平均分和及格率等操作。
(对数据的以上操作不要使用Sql语句完成,要使用数据结构中讲授的排序或查找方法完成。)
题目2:图书馆管理系统的设计
问题描述:
对图书进行管理,系统具有如下功能:
1.图书入库:新购一种书,确定书好后,登记到图书目录中,如果表中已有,则只将库存量增加;图书数据包括图书书号、书名、作者,数量,单价等。
2.排序:以书号按升序排序(可以按其他的字段进行升降排序,排序方法任选)
3.查找:能按照书名、书号进行查找(使用顺序查找或折半查找或其他查找方式)
4.删除:从表中删除指定的图书
借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的借书证号和归还期限,改变现存量。
归还:注销对借阅者的登记,改变该图书的现存量。
------解决方案--------------------
发个代码你自己参考去修改,这样比较容易些,你觉得呢?
题目1:成绩管理系统
问题描述:
对一个班的多门课程的成绩进行管理,能够实现一个班级学生信息的输入,输出,查找、删除,修改,排序,求平均分和及格率等操作。
(对数据的以上操作不要使用Sql语句完成,要使用数据结构中讲授的排序或查找方法完成。)
题目2:图书馆管理系统的设计
问题描述:
对图书进行管理,系统具有如下功能:
1.图书入库:新购一种书,确定书好后,登记到图书目录中,如果表中已有,则只将库存量增加;图书数据包括图书书号、书名、作者,数量,单价等。
2.排序:以书号按升序排序(可以按其他的字段进行升降排序,排序方法任选)
3.查找:能按照书名、书号进行查找(使用顺序查找或折半查找或其他查找方式)
4.删除:从表中删除指定的图书
借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的借书证号和归还期限,改变现存量。
归还:注销对借阅者的登记,改变该图书的现存量。
------解决方案--------------------
发个代码你自己参考去修改,这样比较容易些,你觉得呢?
- C/C++ code
#include<stdio.h> #include<stdlib.h> #include<string.h> #define N 1 typedef struct studentchange//定义结构体,将student中的定长记录改成变长记录 { char name[10]; char num[10]; char tel[20]; char age[3]; char sex[2]; }stud; struct studentindex { int namelen; int numlen; int tellen; int agelen; int sexlen; int toallen; }studindex[N]; stud studchange2[N]; char buffer[1024]; int contentlen; int contentlentotal=0; void strcopy(char a[],char b[],int n,int m); int main() { char content[100]; int op; int i; stud stud[]= { "Li","1001","18810366100","18","f", "Fun","1002","18810366101","19","m", "Wang1","1003","18810366102","17","f", "hei","1004","18810366103","18","f", "Gao","1005","18810366104","19","m", "Yu","1006","18810366105","17","f", "Feng","1007","18810366103","18","f", "Dou","1008","18810366104","19","m", "Wang2","1009","18810366105","17","f" , "Er","1010","18810366103","18","f", "San","1011","18810366104","19","m", "Zhao","1012","18810366105","17","f", "Qian","1013","18810366103","18","f", "Sun","1014","18810366104","19","m", "Li2","1015","18810366105","17","f", "Zhou","1016","18810366103","18","f", "Zheng","1017","18810366104","19","m", "Zhu","1018","18810366105","17","f" , "Xiaobai","1019","18810366103","18","f", "Meng","1020","18810366105","17","f" }; FILE *pf; if((pf=fopen("studchange.dat","ab+"))==NULL) //判断文件是否打开成功,一条记录一条记录追加 printf("无法打开文件!"); for(i=0;i<N;i++) { studindex[i].namelen=strlen(stud[i].name); studindex[i].numlen=strlen(stud[i].num); studindex[i].tellen=strlen(stud[i].tel); studindex[i].agelen=strlen(stud[i].age); studindex[i].sexlen=strlen(stud[i].sex); studindex[i].toallen=studindex[i].namelen+studindex[i].numlen+studindex[i].tellen+studindex[i].agelen+studindex[i].sexlen; strcpy(content,stud[i].name); strcat(content,stud[i].num); strcat(content,stud[i].tel); strcat(content,stud[i].age); strcat(content,stud[i].sex); printf("总计%d条记录的信息为:%s\n",i+1,content); contentlen=strlen(content);//一条记录的长度 fwrite(content,contentlen,1,pf);//将所有的记录写入文件中 contentlentotal+=contentlen; contentlen=0; } fclose(pf); printf("\n"); void query(); void display(); void update(); display(); while(1) { printf("* Menu selection *\n"); printf("* 1.query *\n"); printf("* 2.display *\n"); printf("* 3.update *\n"); printf("* 4.exit *\n"); printf("* ****************************************\n"); printf("* Please enter selection:*"); scanf("%d",&op); switch(op) { case 1:query(); break; case 2:display(); break; case 3:update(); break; case 4:return 0; } getchar(); } return 0; } void display() //打印文件中通讯录信息,并把读出来得记录放到结果体对象studchange2中。 { int i; FILE *pf2; if((pf2=fopen("studchange.dat","r+b"))==NULL)//判断文件是否打开成功,一条记录一条记录追加 printf("无法打开文件!"); char name[10]; char num[10]; char tel[20]; char age[10]; char sex[10]; //将的信息输出到一个字符串中即可。 int bufferlen=0; fread(buffer,contentlentotal,1,pf2);//将文件中的记录信息读到缓冲区中。 printf("所有内容的长度是:%d\n",contentlentotal); printf("所有的记录信息是:%s\n",buffer); printf("**************** 通讯录 ******************\n"); printf("姓名 学号 电话 年龄 性别\n"); for(i=0;i<N;i++) { strcopy(name,buffer,bufferlen,studindex[i].namelen); memcpy(studchange2[i].name,name,studindex[i].namelen); bufferlen+=studindex[i].namelen; strcopy( num,buffer,bufferlen,studindex[i].numlen); memcpy(studchange2[i].num,num,studindex[i].numlen); bufferlen+=studindex[i].numlen; strcopy(tel,buffer,bufferlen,studindex[i].tellen); memcpy(studchange2[i].tel,tel,studindex[i].tellen); bufferlen+=studindex[i].tellen; strcopy(age,buffer,bufferlen,studindex[i].agelen); memcpy(studchange2[i].age,age,studindex[i].agelen); bufferlen+=studindex[i].agelen; strcopy( sex,buffer,bufferlen,studindex[i].sexlen); memcpy(studchange2[i].sex,sex,studindex[i].sexlen); bufferlen+=studindex[i].sexlen; printf("%s,%s,%s,%s,%s\n",studchange2[i].name,studchange2[i].num,studchange2[i].tel,studchange2[i].age,studchange2[i].sex); printf("\n"); } } void query() { int i; //void see1(struct student *p); // struct student *p; int method; char name_test[10]; char num_test[10]; char tel_test[20]; char age_test[10]; char sex_test[10]; while(1) { printf("* Menu selection *\n"); printf("* 请选择查询方式 *\n"); printf("* 1.按姓名查询 *\n"); printf("* 2.按学号查询 *\n"); printf("* 3.按电话查询 *\n"); printf("* 4.按年龄查询 *\n"); printf("* 5.按性别查询 *\n"); printf("* 6.返回主菜单 *\n"); printf("* *********************************************************\n"); scanf("%d",&method); switch(method) { case 1: printf("请输入要查询的name:\n"); scanf("%s",&name_test); //printf("看看比较结果是:%d\n",strcmp(studchange2[0].name,name)); for(i=0;i<N;i++) { //首先将信息提取出 //if(memcmp(studchange2[i].name,name,strlen(name)==0)) // { printf("name:%s\n",studchange2[i].name); printf("num:%s\n",studchange2[i].num); printf("tel:%s\n",studchange2[i].tel); printf("age:%s\n",studchange2[i].age); printf("sex:%s\n",studchange2[i].sex); printf("\n"); // } } break; case 2: printf("* 请输入要查询的学号:\n"); scanf("%s",&num_test); for(i=0;i<N;i++) { if(!strcmp(studchange2[i].num,num_test)) { printf("name:%s\n",studchange2[i].name); printf("num:%s\n",studchange2[i].num); printf("name:%s\n",studchange2[i].tel); printf("age:%s\n",studchange2[i].age); printf("sex:%s\n",studchange2[i].sex); printf("\n"); } } break; case 3: printf("* 请输入要查询的电话\n"); scanf("%s",&tel_test); for(i=0;i<N;i++) { if(!strcmp(studchange2[i].tel,tel_test)) { printf("name:%s\n",studchange2[i].name); printf("num:%s\n",studchange2[i].num); printf("name:%s\n",studchange2[i].tel); printf("age:%s\n",studchange2[i].age); printf("sex:%s\n",studchange2[i].sex); printf("\n"); } } break; case 4: printf("* 请输入要查询的年龄\n"); scanf("%s",&age_test); for(i=0;i<N;i++) { //首先将信息提取出来 if(!strcmp(studchange2[i].age,age_test)) { printf("name:%s\n",studchange2[i].name); printf("num:%s\n",studchange2[i].num); printf("name:%s\n",studchange2[i].tel); printf("age:%s\n",studchange2[i].age); printf("sex:%s\n",studchange2[i].sex); printf("\n"); } } break; case 5: printf("* 请输入要查询的性别\n"); scanf("%s",&sex_test); printf("姓名 学号 电话 年龄 性别\n"); for(i=0;i<N;i++) { if(!strcmp(studchange2[i].sex,sex_test)) { printf("%s,%s,%s,%s,%s",studchange2[i].name,studchange2[i].num,studchange2[i].tel,studchange2[i].age,studchange2[i].sex); printf("\n"); } } break; default:return; } } } //将字符数组第m个到第n个字符copy到另外一个字符数组中 void strcopy(char a[],char b[],int n,int m) { memcpy(a,&b[n],m); a[m]='\0'; } void update() {}