用C语言开发小型数据库管理系统代码文库样本

合集下载

C语言课程设计---班级成绩管理系统

C语言课程设计---班级成绩管理系统

课程设计报告课程名称C语言程序设计课题名称班级成绩管理系统专业班级学号姓名指导教师年月日湖南工程学院课程设计任务书课程名称C语言程序设计课题班级成绩管理系统专业班级学生姓名学号指导老师审批任务书下达日期年月日任务完成日期年月日目录一、引言 (1)二、总体设计 (2)三、详细设计 (4)四、问题分析及总结 (13)五、参考文献 (15)六、附件 (15)一、设计内容与设计要求1. 设计内容:班级成绩管理系统设计涉及的知识点:①掌握并熟练运用C语言的基本数据类型与各种表达式,程序的流程控制语句;②掌握数组的基本概念。

熟练掌握一维数组、二维数组的应用、掌握字符数组与字符串的关系以及字符串的简单处理。

③掌握函数的定义,函数的返回值,函数的调用,函数的形式参数和实际参数之间的关系;掌握变量的作用域与生存期,了解函数的作用域。

④掌握结构体的概念,结构体类型的定义,结构体变量的定义和初始化,结构体成员的表示,结构体变量的赋值含义,结构体与指针、函数的关系。

⑤掌握文件、文件类型指针的基本概念,熟练掌握文件的打开与关闭以及文件的建立、读写等有关操作。

2.设计要求:1)用C语言实现系统;利用结构体数组实现班级成绩的数据结构设计;系统的各个功能模块要求用函数的形式实现;应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观;各项显示数据均要求以表格的形式输出;在各功能子模块中应设计相应的二级菜单。

2) 建立一个班级学生成绩数据库,文件名为bjcjk.txt,并从该文件中读取数据;3) 班级成绩管理系统应能提供以下功能:(1)主菜单界面设计。

通过提示用户输入一个数字选项,调用相应的功能函数。

(2)学生成绩显示:完成班级全部学生成绩的显示,显示时按表格的形式,且应有表头;(3)学生成绩追加:完成新增一个(或多个)学生的成绩记录,要求在追加过程中有相应的提示信息,完成追加后能重新计算学生平均成绩并显示;(4)学生成绩修改:要求能按学号和按姓名两种定位方式,且可以按用户要求修改记录中除学号和姓名以外的指定内容,并重新计算学生的平均成绩;(5)学生成绩信息的查询;要示系统能按学号、按姓名查询以及能查总分在某一指定范围内的学生信息,且能显示符合条件的所的记录,若所需查询的信息不存在时应有相应的提示信息。

数据库管理系统设计(C语言版)

数据库管理系统设计(C语言版)

数据库管理系统设计(C语言版)简介数据库管理系统(DBMS)是一种用于管理和组织数据库的软件系统。

本文介绍了一个使用C语言开发的简单数据库管理系统设计。

功能特点数据存储* 数据库管理系统使用文件来存储数据。

* 采用B+树索引结构来组织数据,提高数据查询和检索的效率。

数据操作* 支持数据的插入、删除、修改和查询操作。

* 通过SQL语句来操作数据,例如SELECT、INSERT、UPDATE和DELETE。

数据完整性* 数据库管理系统支持数据的完整性约束。

* 通过定义表之间的关系和设置约束条件,确保数据的一致性和准确性。

用户权限管理* 数据库管理系统支持多用户访问和权限管理。

* 通过用户身份验证和权限控制,保护数据的安全性和机密性。

系统架构数据库引擎* 数据库引擎是数据库管理系统的核心组件,负责数据的存储和管理。

* 使用C语言实现数据库引擎,包括数据的读取、写入、索引和事务处理等功能。

SQL解析器* SQL解析器负责解析和执行用户输入的SQL语句。

* 使用C语言编写SQL解析器,将SQL语句转换为底层的数据库操作。

用户界面* 用户界面提供给用户与数据库进行交互的方式。

* 使用C语言编写用户界面,通过命令行或图形界面向用户展示数据库的操作界面。

总结本文介绍了一个使用C语言开发的数据库管理系统设计。

该系统支持数据存储、操作、完整性约束和用户权限管理等功能。

通过数据库引擎、SQL解析器和用户界面等组件实现了一个简单实用的数据库管理系统。

参考文献无。

C语言课程设计图书馆管理系统程序代码

C语言课程设计图书馆管理系统程序代码

#include〈stdio.h〉#include<windows.h〉#include〈string。

h〉#include<conio。

h>#define M 100struct books{char tsmc[12];inttsbh;float dj;char zz[12];char czzt[12];char xm[12];char xb[12];intxh; }s[M];int N;bool flag;intmain (){intsele;flag=0;sele=1;void sr();void cx();void sc();void js();void hs();void tc();void jsh();//system ("tsgl”);printf("\n\n");printf(" ************************\n"); printf(" 1:输入2:查询3:删除\n");printf(”4:借书5:还书0:退出\n");printf(” ************************\n"); while(1){printf(”\n\n请输入功能序号:");scanf (”%d",&sele);if(sele>=0 && sele<=5){switch(sele){case 1:sr();break;case 2:cx();break;case 3:sc();break;case 4:js();break;case 5:hs();break;case 0:jsh();break;}if(flag)break;printf(”\n\n");printf(” ************************\n”); printf(" 1:输入2:查询3:删除\n");printf(”4:借书5:还书0:退出\n”);printf(” ************************\n”);}else{printf(”输入错误请再次输入|\n\n");printf("\n\n");printf(” ************************\n”);printf(" 1:输入2:查询3:删除\n”);printf(”4:借书5:还书0:退出\n");printf(" ************************\n");}printf("\n\n让任意键继续\n”);} //wr_file();}/******主函数***//*********输入*********/void sr(){intn,i;N=0;printf("可输入的书本数:");scanf("%d",&n);N=n+N;printf("请输入相关信息:\n");for(i=1;i<=n;i++){printf(”图书名称:”);scanf(”%s",s[N-n-1+i]。

C语言课程设计仓库管理系统

C语言课程设计仓库管理系统

C语言课程设计仓库管理系统一、教学目标本课程旨在通过学习仓库管理系统,让学生掌握C语言编程的基本概念和方法,培养学生具备一定的软件开发能力。

具体的教学目标如下:1.知识目标:(1)理解C语言的基本语法和数据结构;(2)掌握C语言的函数、指针、 arrays等核心概念;(3)熟悉常用的库函数和预处理指令;(4)了解软件开发的基本流程。

2.技能目标:(1)能够使用C语言编写简单的程序;(2)具备基本的代码调试和优化能力;(3)能够独立完成简单的软件项目。

3.情感态度价值观目标:(1)培养学生对计算机科学的兴趣和热情;(2)培养学生良好的编程习惯和团队协作精神;(3)使学生认识到编程对于解决实际问题的价值。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、函数、指针、数组等核心概念,以及软件开发的基本流程。

具体的教学大纲如下:1.C语言的基本语法和数据结构;2.函数、指针和数组的概念及应用;3.常用的库函数和预处理指令;4.软件开发的基本流程;5.综合实例:仓库管理系统的设计与实现。

三、教学方法为了提高教学效果,我们将采用多种教学方法相结合的方式进行教学。

具体包括:1.讲授法:用于讲解C语言的基本语法、数据结构、函数、指针、数组等核心概念;2.案例分析法:通过分析实际案例,使学生更好地理解仓库管理系统的设计与实现;3.实验法:让学生动手编写代码,巩固所学知识,提高编程能力;4.小组讨论法:分组进行讨论,培养学生的团队协作能力和问题解决能力。

四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用权威、实用的C语言教材;2.参考书:提供丰富的C语言编程参考书籍;3.多媒体资料:制作精美的课件,辅助讲解;4.实验设备:提供足够的计算机设备,让学生进行编程实践。

通过本课程的学习,希望学生能够掌握C语言编程的基本概念和方法,为今后的计算机科学学习和软件开发打下坚实基础。

五、教学评估为了全面、客观地评估学生的学习成果,我们将采用多种评估方式相结合的方法。

C语言财务管理系统源代码

C语言财务管理系统源代码

#include"stdio.h"#include"stdlib.h"#define MAX_NAME 11#define MAX_DETAIL 21#define MENU_COUNT 9#define DATA_FILE "fa.dat" typedef wnum_fi_type ( income=1,payout=-1}fi_type;typedef struct_fi_info (int year;int month;fi_type type;char name[MAX_NAME];float money;char detail[MAX_DETAIL];}fi_info;typedef struct_fi_data (fi_info info;struct_fi_data *next;}fi_data;void add_income();void search_income();void delete_income();void update_income();void add_payout();void search_payout();void delete_payout();void update_payout();void count_total();void quit();void search_data(fi_type type);void delete_data(fi_type type);void update_data(fi_type type);void initialize();void save_to_file();void clear_data();fi_data *get_last();fi_data *get_previous(fi_data *p);void input_info(fi_info *info);void show_info(fi_data *p[],int count);fi_data *head;char menu[]=" ------------------------------------------------ ==\n""|家庭财务管理系统|\n""+ --------------------------------------- +\n""|收入管理|\n""| 1添加收入|\n""| 2查询收入明细|\n""| 3删除收入|\n""| 4修改收入|\n""|支出管理|\n""| 5添加支出|\n""| 6查询支出明细|\n""| 7删除支出|\n""| 8修改支出|\n""|统计|\n""| 9统计总收入总支出|\n"" --------------------------------------- +\n""| 0退出系统|\n""==============================================+\n"; void(*menu_fun[])()= ( quit,add_income, search_income, delete_income, update_income, add_payout, search_payout, delete_payout, update_payout, count_total };int main() (int selected=0;initialize();while(selected>=0 && selected<=MENU_COUNT) ( system("cls");printf(menu);printf("> 请选择要进行的操作(%d - %d):",0,MENU_COUNT);if(scanf("%d”,&selected)!=1llselected<0llselected>MENU_COUNT) (printf(">输入错误!请选择[%d - %d]之间的数字!按任意键重试…",0,MENU_COUNT);fflush(stdin);getchar();) else(menu_fun[selected]();)selected=0;))void add_income()(fi_data *p=(fi_data *)malloc(sizeof(fi_data));memset(p,0,sizeof(fi_data));p->next=NULL;input_info(&(p->info));p->info.type=income;if(head==NULL)( head=p;) else(get_last(head)->next=p;))void search_income()(search_data(income);)void delete_income()(delete_data(income);)void update_income()(update_data(income);)void add_payout() (fi_data *p=(fi_data*)malloc(sizeof(fi_data)); memset(p,0,sizeof(fi_data));input_info(&(p->info));p->info.type=payout;if(head==NULL)( head=p;) else(get_last(head)->next=p;))void search_payout()(search_data(payout);)void delete_payout()(delete_data(payout);)void update_payout()(update_data(payout);)void count_total()(float total_income=0.0;float total_payout=0.0;fi_data *p=head;while(p!=NULL)(if(p->info.type==income)(total_income+=p->info.money;) else(total_payout+=p->info.money;)p=p->next;)printf("+ ------- + ------- + -------- +\n");printf("|合计收入|合计支出| 结余printf("+|\n");---------------- + ------- + -------- +\n");printf("l%12.2fl%12.2fl%12.2fl\n", total_income, total_payout,total_income - total_payout); printf("+ ------- + -------- + ------- +\n");printfC、按任意键继续返回主菜单…) fflush(stdin);getchar();)void search_data(fi_type type) (int year=0;int month=0;fi_data *p=NULL;fi_data *result[9]={NULL}; int count=0; char input='';while(1) {printfC、请输入要查询的年月(例如:2009/1)"); if(scanf("%d/%d”,&year,&month)!=2) { printf(">输入错误。

c语言管理系统设计源代码

c语言管理系统设计源代码

c语言管理系统设计源代码以下是一个简单的C语言管理系统示例,用于管理学生信息。

该系统可以添加、删除、修改和查找学生信息。

c复制代码#include<stdio.h>#include<stdlib.h>#include<string.h>struct student {char name[50];int roll;float marks;};struct student students[100];int count = 0;void add_student() {struct student new_student;printf("Enter name: ");scanf("%s", new_);printf("Enter roll number: ");scanf("%d", &new_student.roll);printf("Enter marks: ");scanf("%f", &new_student.marks);students[count] = new_student;count++;}void delete_student() {int index;printf("Enter index of student to delete: ");scanf("%d", &index);for (int i = index; i < count - 1; i++) {students[i] = students[i + 1];}count--;}void modify_student() {int index;struct student new_student;printf("Enter index of student to modify: "); scanf("%d", &index);printf("Enter new name: ");scanf("%s", new_);printf("Enter new roll number: ");scanf("%d", &new_student.roll);printf("Enter new marks: ");scanf("%f", &new_student.marks);students[index] = new_student;}void find_student() {char name[50];printf("Enter name of student to find: "); scanf("%s", name);for (int i = 0; i < count; i++) {if (strcmp(students[i].name, name) == 0) { printf("Roll number: %d\n", students[i].roll); printf("Marks: %.2f\n", students[i].marks); return;}}printf("Student not found.\n");}int main() {int choice;do {printf("\nMenu:\n");printf("1. Add student\n");printf("2. Delete student\n");printf("3. Modify student\n");printf("4. Find student\n");printf("5. Exit\n");printf("Enter choice: ");scanf("%d", &choice);switch (choice) {case1: add_student(); break;case2: delete_student(); break;case3: modify_student(); break;case4: find_student(); break;case5: exit(0); break; // exit the program here, otherwise the loop will keep running indefinitely, as it is in the do-while loop above. We are not returning, but rather exiting the program completely, so we do not need to return anything. The return value of main is always 0, and this is how the program exits. If you want to return a value other than 0, you can do so like this: return 1; or return -1; or return any other integer value you want to represent an error condition. The operating system will interpret this as the program's exit status. In this case, it will be seen as successful, as it is returning 0. The return value of main is not used for anything in this program, but it can be used in other programs to determine whether the program exited successfully or with an error. For example, if you were writing a shell script that executed this program and needed to know if it was successful or not, you could check the return value of the program and act accordingly. This is a common practice in programming, and it is important to understand how it works so that you can use it effectively in your own programs.。

学生信息管理系统C语言源代码

学生信息管理系统C语言源代码

#include<stdio.h>#include<malloc.h>#include<string.h>#include<stdlib.h>#define len sizeof(struct student)FILE *fp;struct student{long num;char name[15];int age;char sex[3];char chushen[10];char dizhi[20];char phone[11];char email[20];struct student *next;};void menu(){printf("===========学生信息管理系统==========\n\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("=====================================\n");}struct student *creat() //录入学生信息{int n;struct student *head;struct student *p1,*p2;n=0;p1=p2=(struct student *) malloc(len);scanf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s",&p1->num,&p1->age,p1->name,p1->sex,p1->chushen ,p1->dizhi,p1->phone,p1->email);head=NULL;while(p1->num!=0){n=n+1;if(n==1) head=p1;else p2->next=p1;p2=p1;p1=(struct student *)malloc(len);scanf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s",&p1->num,&p1->age,p1->name,p1->sex,p1->chu shen,p1->dizhi,p1->phone,p1->email);}p2->next=NULL;return(head);}void insert(struct student *head) //插入学生信息{int search_num;struct student *p,*q,*s;p=head;printf("在哪个学生前插入请输入学号:\n");scanf("%d",&search_num);while((p!=NULL)&&(p->num!=search_num)){q=p;p=p->next;}s=(struct student *)malloc(len);q->next=s;system("cls");printf("请输入学生信息:\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");scanf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s",&s->num,&s->age,s->name,s->sex,s->chushen,s->diz hi,s->phone,s->email);s->next=p;}void printList(struct student *head) //浏览全部学生信息{struct student *p;p=head;if(head==NULL)printf("没有学生信息!!\n");else{do{fread(p,len,1,fp);printf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s\n",p->num,p->age,p->name,p->sex,p->chushen,p->diz hi,p->phone,p->email);p=p->next;}while(p!=NULL);}}void findList_num(struct student *head,long search_num) //按学号查找{struct student *p;p=head;while((p!=NULL)&&(p->num!=search_num))p=p->next;if(p!=NULL)printf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s\n",p->num,p->age,p->name,p->sex,p->chushen,p->diz hi,p->phone,p->email);elseprintf("没有该学生信息!!\n");}void findList_name(struct student *head,char *search_name) //按姓名查找{struct student *p;int cmp1=0,cmp=0;p=head;while(p!=NULL)if(strcmp(p->name,search_name)!=0){p=p->next;cmp++;}else{printf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s\n",p->num,p->age,p->name,p->sex,p->chushen,p->dizhi,p->phone,p->email);p=p->next;cmp1=1;}if(cmp!=0&&cmp1==0)printf("没有该学生信息!!\n");}void xiugai(struct student *p1,long xiu_num) //修改学生信息{struct student *p2;p2=p1;while((p2!=NULL)&&(p2->num!=xiu_num))p2=p2->next;if(p2!=NULL){scanf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s",&p2->num,&p2->age,p2->name,p2->sex,p2->chu shen,p2->dizhi,p2->phone,p2->email);}elseprintf("没有该学生信息!!\n");}struct student *delList(struct student *head,long del_num) // 删除学生信息{struct student *p,*q;p=head;q=head;while(p &&(p->num != del_num)){q=p;p=p->next;}if(p==NULL)printf("无此学号!\n");else{if(p == head){head = p->next;free(p);}else{q->next = p->next;free(p);}}return head;}void paixu(struct student *head) //按学号排序{struct student *p,*f,*t;char ch[100];int i;t=f=p=head;for(p=head;p->next!=NULL;p=p->next){for(t=head,f=t->next;t->next!=NULL;t=t->next,f=f->next){if(t->num>f->num>0){i=t->num;t->num=f->num;f->num=i;i=t->age;t->age=f->age;f->age=i;strcpy(ch,t->name);strcpy(t->name,f->name);strcpy(f->name,ch);strcpy(ch,t->sex);strcpy(t->sex,f->sex);strcpy(f->sex,ch);strcpy(ch,t->chushen);strcpy(t->chushen,f->chushen);strcpy(f->chushen,ch);strcpy(ch,t->dizhi);strcpy(t->dizhi,f->dizhi);strcpy(f->dizhi,ch);strcpy(ch,t->phone);strcpy(t->phone,f->phone);strcpy(f->phone,ch);strcpy(ch,t->email);strcpy(t->email,f->email);strcpy(f->email,ch);}}}// return head;}void save(struct student *head) //保存为磁盘文件{struct student *p;if((fp=fopen("keshe","w"))==NULL){printf("cannot open this file\n");exit(0);}p=head;while(p!=NULL){fprintf(fp,"%d\n",p->num);fprintf(fp,"%d\n",p->age);fprintf(fp,"%s\n",p->name);fprintf(fp,"%s\n",p->sex);fprintf(fp,"%s\n",p->chushen);fprintf(fp,"%s\n",p->dizhi);fprintf(fp,"%s\n",p->phone);fprintf(fp,"%s\n",p->email);p=p->next;}fclose(fp);}struct student *read() //从磁盘读取文件{struct student *head=NULL;struct student *p=NULL;struct student *t=NULL;int a;// fp=fopen("keshe","r");if((fp=fopen("keshe","r"))==NULL){printf("cannot open this file\n");exit(0);}while(1){t=(struct student *)malloc(len);a=fscanf(fp,"%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s",&t->num,&t->age,t->name,t->sex,t->chush en,t->dizhi,t->phone,t->email);if(a==0||a==-1)return head;t->next=NULL;if(p==NULL){p=t;head=t;}else{p->next=t;p=p->next;p->next=NULL;}}fclose(fp);}void main(){int code=0;struct student *pt = NULL;while(code!=8){menu();printf("请输入上述序号进行操作:\n");scanf("%d",&code);system("cls");switch(code){case 1:{system("cls");printf("每个学生的信息之间用Tab键分隔\n");printf("===========================录入学生信息==============================\n");printf("---------------------------------------------------------------------\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");pt=creat();save(pt);system("cls");printf("===========================录入学生信息==============================\n");printf("---------------------------------------------------------------------\n");printf("************录入学生信息成功***********!!\n");printf("按回车键返回主菜单\n");getchar();getchar();system("cls");};break;case 2:{system("cls");printf("===========================学生信息表================================\n");printf("---------------------------------------------------------------------\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");pt=read();printList(pt);printf("================================================================ =====\n");printf("---------------------------------------------------------------------\n");printf("\n按回车键返回主菜单\n");getchar();getchar();system("cls");};break;case 3:{int search=0;system("cls");printf("===========================查询学生信息==============================\n");printf("---------------------------------------------------------------------\n");while(search!=3){printf("1、按学号查询\n2、按姓名查询\n3、退出查询\n");scanf("%d",&search);switch(search){case 1:{long search_num;system("cls");printf("请输入学生学号\n");scanf("%d",&search_num);system("cls");printf("===========================查询结果==================================\n");printf("---------------------------------------------------------------------\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");findList_num(read(),search_num);printf("================================================================ =====\n");printf("---------------------------------------------------------------------\n");printf("\n按回车键返回查询菜单\n");getchar();getchar();system("cls");};break;case 2:{char search_name[15];system("cls");printf("请输入学生姓名\n");scanf("%s",search_name);system("cls");printf("===========================查询结果==================================\n");printf("---------------------------------------------------------------------\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");findList_name(read(),search_name);printf("================================================================ =====\n");printf("---------------------------------------------------------------------\n");printf("\n按回车键返回查询菜单\n");getchar();getchar();system("cls");};}}system("cls");};break;case 4:{long del_num;system("cls");printf("===========================删除学生信息==============================\n");printf("---------------------------------------------------------------------\n");printf("请输入要删除学生信息的学号:\n");scanf("%d",&del_num);system("cls");pt=delList(read(),del_num);save(pt);printf("===========================删除结果================================\n");printf("-------------------------------------------------------------------\n");printf("学号为%d的学生信息成功删除\n",del_num);printf("\n按回车键返回主菜单\n");getchar();getchar();system("cls");};break;case 5:{system("cls");printf("每个学生的信息之间用Tab键分隔\n");printf("===========================插入学生信息==============================\n");printf("---------------------------------------------------------------------\n");insert(pt);save(pt);system("cls");printf("===========================插入学生信息==============================\n");printf("---------------------------------------------------------------------\n");printf("****插入学生信息成功***!!\n\n");printf("按回车键返回主菜单\n");getchar();getchar();system("cls");}break;case 6:{long search_num;system("cls");printf("请输入要修改的学生学号:\n");scanf("%d",&search_num);system("cls");printf("每个学生的信息之间用Tab键分隔\n");printf("===========================修改学生信息==================================\n");printf("-------------------------------------------------------------------------\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");findList_num(read(),search_num);printf("\n");printf("请输入修改信息:\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");pt=read();xiugai(pt,search_num);save(pt);printf("================================================================ =====\n");printf("---------------------------------------------------------------------\n");printf("****修改学生信息成功***!!\n\n");printf("\n按回车键返回查询菜单\n");getchar();getchar();system("cls");};break;case 7:{system("cls");printf(" 按学号从小到大排序\n\n");printf("===========================学生信息表================================\n");printf("---------------------------------------------------------------------\n");printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");pt=read();paixu(pt);printList(pt);save(pt);printf("================================================================ =====\n");printf("---------------------------------------------------------------------\n");printf("\n按回车键返回主菜单\n");getchar();getchar();system("cls");};break;case 8:read();break;}}}。

学生管理系统c语言简单版

学生管理系统c语言简单版

学生管理系统c语言简单版学生管理系统c语言简单版介绍:学生管理系统是一种用于管理学生信息的软件,它可以方便地对学生的基本信息、课程成绩等进行录入、查询、修改和删除等操作。

本文将介绍如何使用C语言编写一个简单的学生管理系统。

功能:1. 添加学生信息2. 查询学生信息3. 修改学生信息4. 删除学生信息5. 显示所有学生信息实现方法:1. 添加学生信息添加学生信息需要输入以下内容:姓名、性别、年龄、班级和电话号码。

我们可以定义一个结构体来存储这些信息,代码如下:```struct Student {char name[20];char sex[10];int age;char class[20];char phone[20];};```然后定义一个数组来存储多个学生的信息:```struct Student students[100];int count = 0; // 学生数量```接下来,我们可以编写一个函数来添加新的学生信息:```void addStudent() {struct Student student;printf("请输入姓名:");scanf("%s", );printf("请输入性别:");scanf("%s", student.sex);printf("请输入年龄:");scanf("%d", &student.age);printf("请输入班级:");scanf("%s", student.class);printf("请输入电话号码:");scanf("%s", student.phone);students[count++] = student; // 将新的学生信息存储到数组中 printf("添加成功!\n");}```2. 查询学生信息查询学生信息可以按照姓名或电话号码进行查询。

用C语言编写的一个学生信息管理系统

用C语言编写的一个学生信息管理系统

用C语言实现线性表的基本操作,能创建一个基于学生信息管理的链表,至少包含数据输入、数据输出、数据处理等操作。

在主函数里能实现以下功能。

运行后出现一个选择提示。

可选择的功能有1)创建新的学生信息链表2)增加一个新的学生信息3)按学号删除某个学生信息4)按学号查找某个学生信息5)可以按照学生成绩对链表排序6)退出系统#include "stdio.h"#include "stdlib.h"#include "string.h"#include "conio.h"jiemian();struct student{char name[50];char sex[5];int age;char num[50];float score1;float score2;float score3;float sum;float ave;}stu[50],del;void gn1(){int i=0;char num1;for(i=0;i<50;i++){printf("请输入要添加的学生资料:\n");printf("学号:");scanf("%s",stu[i].num);printf("姓名:");scanf("%s",stu[i].name);printf("性别:");scanf("%s",&stu[i].sex);printf("年龄:");scanf("%d",&stu[i].age);printf("请输入学生的三门成绩:\n");printf("语文:");scanf("%f",&stu[i].score1);printf("数学:");scanf("%f",&stu[i].score2);printf("英语:");scanf("%f",&stu[i].score3);printf("是否继续添加:y/n\n");scanf("%c",&num1);scanf("%c",&num1);if(num1=='N' || num1=='n'){system("cls");jiemian();}}}void gn2(){int i;char num[50];printf("请输入要查找的学生学号:\n");scanf("%s",num);for(i=0;i<50;i++)if(strcmp(stu[i].num,num)==0){stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;stu[i].ave=stu[i].sum/3;printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);break;}if(i==50)printf("查找不到!请重新输入!\n");getch();system("cls");jiemian();}void gn3(){char num1,i=0;printf("请输入要修改的学生学号:\n");scanf("%s",stu[i].num);printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);printf("姓名:");scanf("%s",stu[i].name);printf("性别:");scanf("%s",stu[i].sex);printf("年龄:");scanf("%d",&stu[i].age);printf("请输入学生的三门成绩:\n");printf("语文:");scanf("%f",&stu[i].score1);printf("数学:");scanf("%f",&stu[i].score2);printf("英语:");scanf("%f",&stu[i].score3);printf("是否继续修改:y/n?\n");scanf("%c",&num1);scanf("%c",&num1);if(num1=='N' || num1=='n')system("cls");jiemian();}void gn4(){int i;char num[50];printf("请输入要删除的学生学号:\n");scanf("%s",num);for(i=0;i<50;i++)if(strcmp(num,stu[i].num)==0){printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);stu[i]=del;printf("信息已删除,按任意键返回..\n");break;}if(i==50)printf("您输入的信息不存在!\n");getch();system("cls");jiemian();}void gn5(){int i=0;stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;stu[i].ave=stu[i].sum/3;printf("学号\t姓名\t性别\t年龄\t语文\t数学\t英语\t总成绩\t 平均成绩\n"); for(i=0;i<50;i++){if(stu[i].age==0)break;printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);}printf("按任意键返回...");getch();system("cls");jiemian();}void gn6(){FILE *fp;int i;char filename[50];printf("\n");printf("\n");printf("请输入要保存的文件名:");scanf("%s",filename);if((fp=fopen(filename,"wb"))==NULL)printf("文件名为空,不能保存!\n");for(i=0;i<50;i++){if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)printf("文件保存失败!\n");}fclose(fp);printf("文件已保存!\n");printf("按任意键返回...\n");getch();system("cls");jiemian();}void gn7(){FILE *fp;int i=0; //打开文件流char filename[50];printf("请输入文件名:");scanf("%s",filename); //输入要载入的文件名if((fp=fopen(filename,"rb"))==0) //如果当前目录下不存在相对应的文件,输出文件不存在,退出系统。

用C语言开发小型数据库管理系统代码文库

用C语言开发小型数据库管理系统代码文库

用C语言开发小型数据库管理系统代码文库.txt如果有来生,要做一棵树,站成永恒,没有悲伤的姿势。

一半在土里安详,一半在风里飞扬,一半洒落阴凉,一半沐浴阳光,非常沉默非常骄傲,从不依靠从不寻找。

#include <stdio.h>#include <string.h>typedef struct count{ /*保存记录条数结构体*/ char name[10];int num;}count;typedef struct st{char name[10];long Number;int Math;int C;int Amount;}st;st record[8];count num[1];char [10]={"0"};char [10]={"0"};int Inputnum[8];void MainMenu(){ /*主菜单*/printf("\n\t\t\t\t* * * * * * * * * *\n");printf("\t\t\t\t* 主菜单 *\n");printf("\t\t\t\t* 1. 创建新文件 *\n");printf("\t\t\t\t* 2. 添加记录 *\n");printf("\t\t\t\t* 3. 删除记录 *\n");printf("\t\t\t\t* 4. 排序 *\n");printf("\t\t\t\t* 5. 查询记录 *\n");printf("\t\t\t\t* 6. 退出 *\n");printf("\t\t\t\t* * * * * * * * * *\n");}void DelMenu(){ /*删除菜单*/printf("\n\t\t\t\t* * * * * * * * * * * *\n");printf("\t\t\t\t* 删除菜单 *\n");printf("\t\t\t\t* 1. 学号查询删除 *\n");printf("\t\t\t\t* 2. 返回到上级菜单 *\n");printf("\t\t\t\t* * * * * * * * * * * *\n");}void RankingMenu(){ /*排序菜单*/printf("\n\t\t\t\t* * * * * * * * * * * *\n");printf("\t\t\t\t* 排序菜单 *\n");printf("\t\t\t\t* 1. 数学成绩排序 *\n");printf("\t\t\t\t* 2. C语言成绩排序 *\n");printf("\t\t\t\t* 3. 总分排序 *\n");printf("\t\t\t\t* 4. 返回到上级菜单 *\n");printf("\t\t\t\t* * * * * * * * * * * *\n");}void InquireMenu(){ /*查讯菜单*/printf("\n\t\t\t\t* * * * * * * * * * * *\n");printf("\t\t\t\t* 查讯菜单 *\n");printf("\t\t\t\t* 1. 学号查讯 *\n");printf("\t\t\t\t* 2. 姓名查讯 *\n");printf("\t\t\t\t* 3. 数学成绩查讯 *\n");printf("\t\t\t\t* 4. C语言成绩查讯 *\n");printf("\t\t\t\t* 5. 总分查讯 *\n");printf("\t\t\t\t* 6. 返回到上级菜单 *\n");printf("\t\t\t\t* * * * * * * * * * * *\n");}char Input(){ /*输入文件名同时产生付本文件名*/char str2[]={"B"};printf("** 请输入文件名 ** : ");scanf("%s",);getchar();strcpy();strcat();}FILE *readfile(){ /*读取文档*/FILE *fp1;if((fp1=fopen(,"rb"))==NULL){printf("\n文件读取错误!!\n");fclose(fp1);}return(fp1);}FILE *foundfile(){ /*新建文档*/FILE *fp1;if((fp1=fopen(,"wb"))==NULL){printf("\n文件创建错误!!\n");fclose(fp1);}return(fp1);}FILE *savefile(){ /*追加文档*/FILE *fp1;if((fp1=fopen(,"ab"))==NULL){printf("\n文件追加错误!!\n");fclose(fp1);}return(fp1);}int InputSave(){ /*添加数据 */int i=0,j;char ch='y';while(ch!='w'){i=i+1;printf("\n** 请输入姓名(字符型) ** :");scanf("%s",record[i].name);Loop1: printf("\n** 请输入学号(长整型) ** :");scanf("%ld",&record[i].Number);if(i!=1)for(j=1;j<i;j++)if(record[i].Number==record[j].Number){printf("\n\t警告! 输入了二个同样的学号! 第%d条和第%d学号相同!\n",i,j);printf("\n\t请重新输入!\n");goto Loop1;}Loop2: printf("\n** 请输入数学成绩(整型) ** :");scanf("%d",&record[i].Math);if(record[i].Math>100||record[i].Math<0){printf("\n\t输入的分数不服合实际要求! 请重新录入!\n");goto Loop2;}Loop3: printf("\n** 请输入C语言成绩(整型) ** :");scanf("%d",&record[i].C);if(record[i].C>100||record[i].C<0){printf("\n\t输入的分数不服合实际要求! 请重新录入!\n");goto Loop3;}record[i].Amount=record[i].Math+record[i].C;printf(" \n'w'=结束录入 's'=重新录入此条记录 'n'=下一条 : ");getchar(); /*吃掉上一个回车符*/if((ch=getchar())=='s')i=i-1;}return(i);}/*void ReadComputer(int i,FILE *fp1){ (文本方式)数据写入机器int j;for(j=1;j<i+1;j++)fscanf(fp1,"%s,%ld,%d,%d,%d",record[j].name,&record[j].Number,&record[j].Math,&r ecord[j].C,&record[j].Amount);}void Save i,FILE *fp1){ (文本方式)数据写到文件中int j;for(j=1;j<i+1;j++)fprintf(fp1,"%s,%ld,%d,%d,%d",record[j].name,record[j].Number,record[j].Math,rec ord[j].C,record[j].Amount);}*/void ReadComputer2(int i,FILE *fp1){ /*(2方式)数据写入机器*/int j;for(j=1;j<i+1;j++)if((fread(&record[j],sizeof(struct st),1,fp1))!=1){printf("\n主文件数据读取错误! \n");fclose(fp1);}}void SaveFile2(int i,FILE *fp1){ /*(2方式)数据写到文件中*/int j;for(j=1;j<i+1;j++)if((fwrite(&record[j],sizeof(struct st),1,fp1))!=1){printf("\n主文件数据写入错误! \n");fclose(fp1);}}/* ************************************************************ *********************************************************** */FILE *readfile2(){ /*读文件付本*/FILE *fp1;if((fp1=fopen(,"rb"))==NULL){printf("\n付本文件读取错误!\n");fclose(fp1);}return(fp1);}FILE *foundfile2(){ /*新建文件付本*/FILE *fp1;if((fp1=fopen(,"wb"))==NULL){printf("\n付本文件创建错误!\n");fclose(fp1);}return(fp1);}FILE *savefile2(){ /*追加文件付本*/FILE *fp1;if((fp1=fopen(,"ab"))==NULL){printf("\n付本文件追加错误!\n");fclose(fp1);}return(fp1);}/*void Additive2(int i,FILE *fp1){ 数据与入付本文件(文本方式)int j;char str2={"0"};if(strcmp()!=0)strcpy(num[0].name,);elsestrcpy(num[0].name,);num[0].num=i;fprintf(fp1,"%s,%d",num[0].name,num[0].num);}int ReadComputer2(FILE *fp1){ 读出付本中的数据(文本方式)int j,k;fscanf(fp1,"%s,%d",num[0].name,&num[0].num);k=num[0].num;return(k);}*/void Additive2Two(int i,FILE *fp1){ /*数据写入付本文件(二进制方式)*/char str2[]={"0"};if(strcmp()!=0)strcpy(num[0].name,);elsestrcpy(num[0].name,);num[0].num=i;if((fwrite(&num[0],sizeof(struct count),1,fp1))!=1){printf("\n付本文件数据写入错误! \n");fclose(fp1);}}int ReadComputer2Two(FILE *fp1){ /*读出付本中的数据(二进制方式)*/int j;if((fread(&num[0],sizeof(struct count),1,fp1))!=1){printf("\n付本文件数据读取错误! \n");fclose(fp1);}j=num[0].num;return(j);}/* ************************************************************ *********************************************************** */void Num_inquire(){ /*学号查询*/int num,j,time;FILE *fp1,*fp2;fp1=readfile(); /*读取文档*/fp2=readfile2(); /*(开打方式'读'**'引用读文件名')读文件付本*/time=ReadComputer2Two(fp2); /*读出付本中的数据(二进制方式)*/ReadComputer2(time,fp1); /*(2方式)数据写入机器*/fclose(fp1);fclose(fp2);printf("输入学号:");scanf("%ld",&num);/*getchar();*/for(j=1;j<time+1;j++){if(record[j].Number==num)printf("\nName:%-10s Num:%3ld Math:%3d C:%3d Amount:%3d\n",record[j].name,record[j].Number,record[j].Math,record[j].C,record[ j].Amount);}}void Name_inquire(){ /*姓名查询*/int j,time;char Name[10];FILE *fp1,*fp2;fp1=readfile();fp2=readfile2(); /*(开打方式'读'**'引用读文件名')读文件付本*/time=ReadComputer2Two(fp2); /*读出付本中的数据(二进制方式)*/ReadComputer2(time,fp1); /*(2方式)数据写入机器*/fclose(fp1);fclose(fp2);printf("输入姓名:");scanf("%s",Name);/*getchar();*/for(j=1;j<time+1;j++){if(strcmp(Name,record[j].name)==0)printf("\nName:%-10s Num:%3ld Math:%3d C:%3d Amount:%3d\n",record[j].name,record[j].Number,record[j].Math,record[j].C,record[ j].Amount);}}void Math_inquire(){ /*数学查询*/int Math,j,time;FILE *fp1,*fp2;fp1=readfile();fp2=readfile2(); /*(开打方式'读'**'引用读文件名')读文件付本*/time=ReadComputer2Two(fp2); /*读出付本中的数据(二进制方式)*/ReadComputer2(time,fp1); /*(2方式)数据写入机器*/fclose(fp1);fclose(fp2);printf("输入数学成绩:");scanf("%d",&Math);/*getchar();*/for(j=1;j<time+1;j++){if(record[j].Math>=Math)printf("\nName:%-10s Num:%3ld Math:%3d C:%3d Amount:%3d\n",record[j].name,record[j].Number,record[j].Math,record[j].C,record[ j].Amount);}}void C_inquire(){ /*C查询*/int C,j,time;FILE *fp1,*fp2;fp1=readfile();fp2=readfile2(); /*(开打方式'读'**'引用读文件名')读文件付本*/time=ReadComputer2Two(fp2); /*读出付本中的数据(二进制方式)*/ReadComputer2(time,fp1); /*(2方式)数据写入机器*/fclose(fp1);fclose(fp2);printf("输入C语言成绩:");scanf("%d",&C);/*getchar();*/for(j=1;j<time+1;j++){if(record[j].C>=C)printf("\nName:%-10s Num:%3ld Math:%3d C:%3d Amount:%3d\n",record[j].name,record[j].Number,record[j].Math,record[j].C,record[j].Amount);}}void Amount_inquire(){ /*总分查询*/int Amount,j,time;FILE *fp1,*fp2;fp1=readfile();fp2=readfile2(); /*(开打方式'读'**'引用读文件名')读文件付本*/time=ReadComputer2Two(fp2); /*读出付本中的数据(二进制方式)*/ReadComputer2(time,fp1); /*(2方式)数据写入机器*/fclose(fp1);fclose(fp2);printf("输入总分:");scanf("%d",&Amount);/*getchar();*/for(j=1;j<time+1;j++){if(record[j].Amount>=Amount)printf("\nName:%-10s Num:%3ld Math:%3d C:%3d Amount:%3d\n",record[j].name,record[j].Number,record[j].Math,record[j].C,record[ j].Amount);}}/* ************************************************************ *********************************************************** */void Num_inquire_Del(){ /*学号查询删除*/char ch;int num,j,k,time;FILE *fp1,*fp2;fp1=readfile(); /*读取文档*/fp2=readfile2(); /*读文件付本*/time=ReadComputer2Two(fp2); /*读出付本中的数据(二进制方式)*/ReadComputer2(time,fp1); /*(2方式)数据写入机器*/fclose(fp1);fclose(fp2);printf("输入学号:");scanf("%ld",&num);getchar();for(j=1;j<=time;j++)if(record[j].Number==num){printf("\nName:%-10s Num:%3ld Math:%3d C:%3d Amount:%3d\n",record[j].name,record[j].Number,record[j].Math,record[j].C,record[ j].Amount);k=j;}printf("\n\t** 删除='y' 不删除='n' ** : ");if((ch=getchar())=='y'){if(k==time)time=time-1;else for(j=k;j<time;j++){record[j]=record[j+1];time=time-1;}fp1=foundfile(); /*新建文档*/ SaveFile2(time,fp1); /*(2方式)数据写到文件中*/fp2=foundfile2(); /*新建文件付本*/Additive2Two(time,fp2); /*数据与入付本文件(二进制方式)*/printf("\n删除成功! 目前共有%d条记录!\n",time);fclose(fp1);fclose(fp2);}else printf("\n没有执行删除操作!\n");}/* ************************************************************ *********************************************************** */void Math_ranking(int i){ /*数学排序函数*/int j,k;st time;for(j=1;j<i;j++)for(k=1;k<=i-j;k++)if(record[k].Math>record[k+1].Math){time=record[k];record[k]=record[k+1];record[k+1]=time;}printf("\n");for(j=1;j<i+1;j++)printf("\nName:%-10s Num:%3ld Math:%3d C:%3dAmount:%3d\n",record[j].name,record[j].Number,record[j].Math,record[j].C,record[ j].Amount);}void C_ranking(int i){ /*C排序函数*/int j,k;st time;for(j=1;j<i;j++)for(k=1;k<=i-j;k++)if(record[k].C>record[k+1].C){time=record[k];record[k]=record[k+1];record[k+1]=time;}printf("\n");for(j=1;j<i+1;j++)printf("\nName:%-10s Num:%3ld Math:%3d C:%3d Amount:%3d\n",record[j].name,record[j].Number,record[j].Math,record[j].C,record[ j].Amount);}void Amount_ranking(int i){ /*总分排序函数*/int j,k;st time;for(j=1;j<i;j++)for(k=1;k<=i-j;k++)if(record[k].Amount>record[k+1].Amount){time=record[k];record[k]=record[k+1];record[k+1]=time;}printf("\n");for(j=1;j<i+1;j++)printf("\nName:%-10s Num:%3ld Math:%3d C:%3d Amount:%3d\n",record[j].name,record[j].Number,record[j].Math,record[j].C,record[ j].Amount);}/* ************************************************************ *********************************************************** */main(){FILE *fp,*ffp;int temp1=0,temp2=0,temp3;char ch,location;MainMenu();location='1';printf("\n请输入选项 1 - 6 (当前在主菜单):");while((ch=getchar())!='0'){if((ch=='6')&&(location=='1')){getchar();printf("\n\n\t\t\t** 'Y'=续继 'n'=退出 **\n");printf("\n\n\t\tINPUT:");if((ch=getchar())=='n'){printf("\n\n\t\t\t 谢谢您的使用!");exit();break;}else {MainMenu();location='1';printf("\n请输入选项 1 - 6 (当前在主菜单):");}}if((ch=='1')&&(location=='1')){temp1=InputSave(); /*添加数据 */getchar();printf("\t\t** 'y'=保存 'n'=不保存 ** : ");if((ch=getchar())=='y'){Input(); /*输入文件名同时产生付本文件名*/fp=foundfile(); /*新建文档*/SaveFile2(temp1,fp); /*(2方式)数据写到文件中*/fclose(fp);ffp=foundfile2(); /*(开打方式'新建')新建文件付本*/Additive2Two(temp1,ffp); /*新建付本文件数据(文本方式)*/fclose(ffp);printf("保存了%d条记录!\n",temp1);}else printf("\t 没有保存!\n");temp1=0;temp2=0;MainMenu();location='1';printf("\n请输入选项 1 - 6 (当前在主菜单):");continue;}if((ch=='2')&&(location=='1')){getchar();printf("\n\t ** 'y'=使用当前文件名 'n'=输入新文件名 ** : ");if((ch=getchar())=='y')追加文档*/else {Input(); /*输入文件名同时产生付本文件名*/fp=savefile();}temp1=InputSave(); /*添加数据 */temp3=temp1;SaveFile2(temp1,fp); /*(2方式)数据写到文件中*/fclose(fp);ffp=readfile2(); /*读文件付本*/temp2=ReadComputer2Two(ffp); /*读出付本中的数据(文本方式)*/fclose(ffp);temp1=temp1+temp2;ffp=foundfile2(); /*新建文件付本*/Additive2Two(temp1,ffp); /*新建付本文件数据(文本方式)*/fclose(ffp);printf("\n添加拉%d条数据!共保存%d条数据!\n",temp3,temp1);temp1=0;temp2=0;MainMenu();location='1';printf("\n请输入选项 1 - 6 (当前在主菜单):");continue;}if((ch=='3')&&(location=='1')){DelMenu();location='2';printf("\n请输入选项 1 - 3 (当前在删除菜单):");while((ch=getchar())!='0'){if((ch=='1')&&(location=='2')){getchar();printf("\n\t\t **现在位置在删除菜单 - 学号删除**\n");printf("\n\t ** 'y'=使用当前文件名 'n'=输入新文件名 ** : ");if((ch=getchar())=='y'){} /*追加文档*/else Input(); /*输入文件名同时产生付本文件名*/号查询删除*/DelMenu();location='2';printf("\n请输入选项 1 - 3 (当前在删除菜单):");continue;}if((ch=='2')&&(location=='2')){MainMenu();location='1';printf("\n请输入选项 1 - 6 (当前在主菜单):");break;}}}if((ch=='4')&&(location=='1')){RankingMenu();location='3';printf("\n请输入选项 1 - 4 (当前在排序菜单):");while((ch=getchar())!='0'){if((ch=='1')&&(location=='3')){getchar();printf("\n\t\t **现在位置在排序菜单 - 数学排序**\n");printf("\n\t ** 'y'=使用当前文件名 'n'=输入新文件名 ** : ");if((ch=getchar())=='y'){} /*追加文档*/else Input();fp=readfile(); /*读取文档*/ffp=readfile2(); /*(开打方式'读'**'引用读文件名')读文件付本*/temp1=ReadComputer2Two(ffp); /*读出付本中的数据(二进制方式)*/fclose(ffp);ReadComputer2(temp1,fp); /*(2方式)数据写入机器*/fclose(fp);Math_ranking(temp1); /*数学排序函数*/temp1=0;temp2=0;RankingMenu();location='3';printf("\n请输入选项 1 - 4 (当前在排序菜单):");continue;}if((ch=='2')&&(location=='3')){getchar();printf("\n\t\t **现在位置在排序菜单 - C语言排序**\n");printf("\n\t ** 'y'=使用当前文件名 'n'=输入新文件名 ** : ");if((ch=getchar())=='y'){} /*追加文档*/else Input();fp=readfile(); /*读取文档*/ffp=readfile2(); /*(开打方式'读'**'引用读文件名')读文件付本*/temp1=ReadComputer2Two(ffp);/*读出付本中的数据(二进制方式)*/fclose(ffp);ReadComputer2(temp1,fp);/*(2方式)数据写入机器*/fclose(fp);C_ranking(temp1); /*数学排序函数*/temp1=0;temp2=0;RankingMenu();location='3';printf("\n请输入选项 1 - 4 (当前在排序菜单):");continue;}if((ch=='3')&&(location=='3')){getchar();printf("\n\t\t **现在位置在排序菜单 - 总分排序**\n");printf("\n\t ** 'y'=使用当前文件名 'n'=输入新文件名 ** : ");if((ch=getchar())=='y'){} /*追加文档*/else Input();fp=readfile(); /*读取文档*/ffp=readfile2(); /*(开打方式'读'**'引用读文件名')读文件付本*/temp1=ReadComputer2Two(ffp);/*读出付本中的数据(二进制方式)*/fclose(ffp);ReadComputer2(temp1,fp);/*(2方式)数据写入机器*/fclose(fp);Amount_ranking(temp1); /*数学排序函数*/temp1=0;temp2=0;RankingMenu();location='3';printf("\n请输入选项 1 - 4 (当前在排序菜单):");continue;}if((ch=='4')&&(location=='3')){MainMenu();location='1';printf("\n请输入选项 1 - 6 (当前在主菜单):");break;}}}if((ch=='5')&&(location=='1')){InquireMenu();location='4';printf("\n请输入选项 1 - 6 (当前在查询菜单):");while((ch=getchar())!='0'){if((ch=='1')&&(location=='4')){getchar();printf("\n\t\t **现在位置在查询菜单 - 学号查询**\n");printf("\n\t ** 'y'=使用当前文件名 'n'=输入新文件名 ** : ");if((ch=getchar())=='y'){} /*追加文档*/else Input();Num_inquire(); /*学号查询*/InquireMenu();location='4';printf("\n请输入选项 1 - 6 (当前在查询菜单):");continue;}if((ch=='2')&&(location=='4')){getchar();printf("\n\t\t **现在位置在查询菜单 - 姓名查询**\n");printf("\n\t ** 'y'=使用当前文件名 'n'=输入新文件名 ** : ");if((ch=getchar())=='y'){} /*追加文档*/else Input();Name_inquire(); /*姓名查询*/InquireMenu();location='4';printf("\n请输入选项 1 - 6 (当前在查询菜单):");continue;}if((ch=='3')&&(location=='4')){getchar();printf("\n\t\t **现在位置在查询菜单 - 数学成绩查询**\n");printf("\n\t ** 'y'=使用当前文件名 'n'=输入新文件名 ** : ");if((ch=getchar())=='y'){} /*追加文档*/else Input();Math_inquire(); /*数学查询*/InquireMenu();location='4';printf("\n请输入选项 1 - 6 (当前在查询菜单):");continue;}if((ch=='4')&&(location=='4')){getchar();printf("\n\t\t **现在位置在查询菜单 - C成绩查询**\n");printf("\n\t ** 'y'=使用当前文件名 'n'=输入新文件名 ** : ");if((ch=getchar())=='y'){} /*追加文档*/else Input();C_inquire(); /*C查询*/InquireMenu();location='4';printf("\n请输入选项 1 - 6 (当前在查询菜单):");continue;}if((ch=='5')&&(location=='4')){getchar();printf("\n\t\t **现在位置在查询菜单 - 总分查询**\n");printf("\n\t ** 'y'=使用当前文件名 'n'=输入新文件名 ** : ");if((ch=getchar())=='y'){} /*追加文档*/else Input();Amount_inquire(); /*总分查询*/InquireMenu();location='4';printf("\n请输入选项 1 - 6 (当前在查询菜单):");continue;}if((ch=='6')&&(location=='4')){MainMenu();location='1';printf("\n请输入选项 1 - 6 (当前在主菜单):");break;}}}}}。

C语言操作MYSQL

C语言操作MYSQL

C语言操作MYSQLC语言是一种强大的编程语言,可以用于各种应用程序的开发。

在许多应用程序中,数据库是一个重要的组成部分。

MySQL是一个流行的开源数据库管理系统,提供了高性能、可靠性和可扩展性。

在C语言中,我们可以使用各种API来操作MySQL数据库。

在本文中,我们将讨论如何在C语言中使用MySQLAPI连接到数据库、执行SQL语句以及处理结果。

完成安装后,我们可以在C代码中包含"mysql.h"头文件,然后使用mysql_init(函数初始化一个MYSQL结构体。

```c#include <mysql.h>int mainMYSQL *conn;conn = mysql_init(NULL);//...return 0;```接下来,我们需要用mysql_real_connect(函数连接到数据库。

我们需要提供主机名、用户名、密码以及数据库名称。

成功连接后,函数将返回一个非空的MYSQL指针,代表与数据库的连接。

//...MYSQL *conn;conn = mysql_init(NULL);mysql_real_connect(conn, "localhost", "root", "password", "database", 0, NULL, 0);//...```有了连接,我们可以执行SQL语句来操作数据库。

使用mysql_query(函数可以执行任意的SQL语句,如SELECT、INSERT、UPDATE等。

```c//...mysql_query(conn, "SELECT * FROM table");//...```执行完查询后,我们需要获取并处理结果。

使用mysql_use_result(函数可以获取结果集,并使用mysql_fetch_row(函数来逐行提取结果。

学生社团管理系统数据库设计c语言

学生社团管理系统数据库设计c语言

学生社团管理系统数据库设计随着社团活动的日益丰富和多样化,学校内的学生社团管理系统也成为了一项重要的工作。

为了更好地管理学生社团的信息,提高管理效率,我们决定设计一个学生社团管理系统数据库,采用C语言编程实现。

1. 对象和属性的设计我们需要设计数据库中的对象和它们的属性。

在学生社团管理系统中,我们可以将学生、社团、活动等作为对象进行设计。

每个对象都有一些属性,例如学生的学号、尊称、性莂等,社团的名称、指导老师、成立时间等,活动的名称、时间、地点等。

2. 数据表的设计在数据库中,每个对象都需要对应一个数据表。

我们可以设计学生表、社团表、活动表等多个数据表。

在C语言中,我们可以采用结构体来表示每个数据表。

学生表可以包括学号、尊称、性莂等字段,活动表可以包括名称、时间、地点等字段。

3. 数据库的关系设计学生、社团和活动之间存在着一定的关系。

一个学生可以加入多个社团,一个社团可以举办多个活动等。

在数据库设计中,我们需要考虑这些关系,并设计相应的关系表。

在C语言中,我们可以利用指针来表示不同数据表之间的关系,实现数据的关联查询。

4. 数据库的操作在学生社团管理系统中,我们需要实现对数据库的增、删、改、查等操作。

在C语言中,我们可以通过封装相应的函数来实现这些操作。

我们可以编写一个函数来向学生表中插入新的学生信息,编写一个函数来删除指定的社团信息,编写一个函数来修改活动的时间地点等。

5. 数据库的安全性在设计数据库时,我们也需要考虑数据的安全性。

我们需要设计合适的数据结构,对数据库进行合理的权限控制,以防止未经授权的访问和恶意操作。

在C语言中,我们可以使用加密算法来对敏感数据进行加密保护,确保数据的安全性。

总结通过以上的设计和实现,我们可以建立一个高效、安全、易用的学生社团管理系统数据库。

采用C语言编程,我们可以充分发挥其高效性和灵活性,在实现学生社团管理系统的数据库功能时,也能够更好地应对各种复杂的业务需求。

简单的银行管理系统的C语言代码

简单的银行管理系统的C语言代码

简单的银行管理系统的C语言代码#include <stdio.h>#include <stdlib.h>#include <string.h>#include <conio.h>#define N 10000struct chuhu //储户结构信息{char idnum[9]; //帐号char password[7]; //密码char name[11]; //储户姓名char idnumber[19]; //储户身份证号码double cunkuan; //存款金额int lei; //储种char address[51]; //储户地址char Tel[15]; //储户的联系电话double lilv; //利率}hu[N]; //储户结构数组void xitong();int rrekey();void kaifa(); //开发人员void cekong();int yanzheng(); //验证帐号和密码void date(); //显示当前日期和时间void insert(); //开户函数void display(); //显示查询帐户信息的函数void in(int); //存款函数void out(int); //取款函数void lilvbiao(); //查看利率表void menu();int A=0,key; //A为开户数double jin;char ch='y'; //控制是否继续的变量char id[11],password[7];void xitong(){FILE *fkey = fopen("key.txt","w+");int k;printf("请创建原始密码:");scanf("%d",&k);fprintf(fkey,"%d\n",k);fclose(fkey);}int main() //输出主菜单{FILE *fkey = fopen("key.txt","r");int t=0;int mima; //输入的密码system("cls");system("color f0"); //设置系统背景为白色date();kaifa();printf("\n\n\n\n\n");printf("\t\t 银行定期储蓄管理系统\n"); //界面1 printf("\n\n\n\n\n\n\n\n");printf("按ENTER键进入下一界面→");fflush(stdin); //功能:清空输入缓冲区scanf("%c",&ch);if(!fkey){printf("密码文件不存在,系统已自创\n");xitong();menu();return 0;}system("cls");fscanf(fkey,"%d",&key);printf("请输入管理员登录密码:\n");scanf("%d",&mima);if(mima==key)t=1;system("cls");for(;t!=1;){printf("管理员密码错误,请重新输入:\n");scanf("%d",&mima);if(mima==key)t=1;system("cls");}//认证成功fclose(fkey);menu();return 0;}void menu(){int a,b;//选择功能的变量do{printf("\n\n按ENTER键进入/返回主菜单→:");fflush(stdin);scanf("%c",&ch);system("cls"); //清屏system("color f0");date();printf("\n\t\t\t\t主菜单\n\n");printf("\t\t 1、开户\n");//主菜单界面(界面3)printf("\t\t 2、查询\n");printf("\t\t 3、用户密码验证\n");printf("\t\t 4、存款\n");printf("\t\t 5、取款\n");printf("\t\t 6、查看利率表\n");printf("\t\t 7、管理员修改密码\n");printf("\t\t 0、退出程序\n");printf("请选择功能(0-7):→");fflush(stdin);scanf("%d",&a);switch(a) //选择功能{case 1: //选择功能后调用相应的函数insert();break;case 2:display();break;case 3:b=yanzheng();break;case 4:b=yanzheng();in(b);break;case 5:b=yanzheng();out(b);break;case 6:lilvbiao();break;case 7:rrekey();break;case 0:system("cls");system("color f0");date();printf("\n\n\n\t==========================================================\n"); printf("\t‖‖\n"); printf("\t‖‖\n"); printf("\t‖‖\n");printf("\t‖‖\n"); printf("\t‖谢谢使用‖\n"); printf("\t‖‖\n");printf("\t‖‖\n"); printf("\t‖‖\n"); printf("\t‖‖\n"); printf("\t‖‖\n"); printf("\t==========================================================");cekong();printf("您真的要退出吗(y/n)? ");fflush(stdin);scanf("%c",&ch);system("cls");break;default:system("cls");printf("\n\n\t您的输入有误,请正确选择功能!!!……");break;}if(a==0&&(ch=='y'||ch=='Y')){system("color f0");date();kaifa();printf("\n\n\n\n\t 欢迎下次再使用! ");cekong();break;}}while(1);}void insert() //开户{FILE *nchuhu = fopen("chuhu.txt","r");FILE *fchuhu = fopen("chuhu.txt","a");int i;if((nchuhu=fopen("chuhu.txt","r"))==NULL){printf("文件不存在,系统将创建.\n");}do{system("cls"); //清屏system("color f0"); //设置系统背景为白色date();printf("\n\n\t\t请输入新储户的信息:");fscanf(nchuhu,"%s\t%s\t%s\t%s\t%lf\t%s\t%s\t%d\t%lf\n",&hu[A].idnum,&hu[A].password,&hu[A].name,&hu[A].idnumber,&hu[A].cunkuan,&hu[A].Tel,&hu[A].address,&hu[A].lei,&hu[A].lil v);printf("\n\n\t\t储户存单: ");fflush(stdin);gets(hu[A].idnum);printf("\n\t\t储户密码(6位): ");for(i=0;i<6;i++){fflush(stdin);hu[A].password[i]=getch();printf("*");}hu[A].password[6]='\0';fflush(stdin);scanf("%c",&ch);printf("\n\t\t姓名:");fflush(stdin);gets(hu[A].name);do{printf("\n\t\t储户身份证号码(18位): ");fflush(stdin);gets(hu[A].idnumber);if(strlen(hu[A].idnumber)!=18)printf("\n\t\t输入错误!\n\t\t身份证请输入18位数字或字母\n");for(i=0;i<A;i++)if(strcmp(hu[A].idnumber,hu[i].idnumber)==0&&strcmp(hu[A].name,hu[i].name)!=0)break;if(i<A)printf("\n\n\t\t前面已有一个不同姓名的储户的身份证号为此号码,\n\t\t同一个身份证号不可以有不同的姓名,\n\n\t\t请重新输入身份证号:\n");}while(strlen(hu[A].idnumber)!=18||(strcmp(hu[A].idnumber,hu[i].idnumber)==0&&str cmp(hu[A].name,hu[i].name)!=0));printf("\n\t\t存单金额: ");fflush(stdin);scanf("%lf",&hu[A].cunkuan);printf("\n\t\t储户电话: ");fflush(stdin);gets(hu[A].Tel);printf("\n\t\t储户地址: ");fflush(stdin);gets(hu[A].address);printf("\n\t\t储种: ");printf("\n\t\t\t1、一年定期");printf("\n\t\t\t2、两年定期");printf("\n\t\t\t3、三年定期");printf("\n\t\t\t4、四年定期");printf("\n\t\t\t5、五年定期");do{printf("\n\t\t请选择(1-5):");fflush(stdin);scanf("%d",&hu[A].lei);if(hu[A].lei<1||hu[A].lei>5)printf("\n\n\t\t您选择错误,请正确选择!!");}while(hu[A].lei<1||hu[A].lei>5);if(hu[A].lei==5) hu[A].lilv=0.0279 ;if(hu[A].lei==4) hu[A].lilv=0.0252 ;if(hu[A].lei==3) hu[A].lilv=0.0225 ;if(hu[A].lei==2) hu[A].lilv=0.0198 ;if(hu[A].lei==1) hu[A].lilv=0.0125 ;printf("\n\t\t利率为:%f",hu[A].lilv);fprintf(fchuhu,"%s\t%s\t%s\t%s\t%lf\t%s\t%s\t%d\t%f\n",hu[A].idnum,hu[A].password,hu[ A].name,hu[A].idnumber,hu[A].cunkuan,hu[A].Tel,hu[A].address,hu[A].lei,hu[A].lilv);A++;printf("\n是否继续(y/n)? ");fflush(stdin);scanf("%c",&ch);}while(ch=='y'||ch=='Y');printf("存入成功\n");system("pause");system("cls");fclose(nchuhu);fclose(fchuhu);}void display() //按存单号查询{FILE *fchuhu = fopen("chuhu.txt","r");int i,n=0;char fnumb[9];system("cls");for(i=0;i<=100;i++){fscanf(fchuhu,"%s\t%s\t%s\t%s\t%lf\t%s\t%s\t%d\t%lf\n",&hu[i].idnum,&hu[i].password,& hu[i].name,&hu[i].idnumber,&hu[i].cunkuan,&hu[i].Tel,&hu[i].address,&hu[i].lei,&hu[i].lilv);}printf("请输入您需要查找的存单号:");scanf("%s",&fnumb);printf("\t\t\t存单信息:\n");for(i=0;i<=99;i++)if(strcmp(fnumb,hu[i].idnum)==0){printf("存单编号:%s\n密码:******(已隐藏)\n用户姓名:%s\n身份证号:%s\n存入金额:%f\n手机号码:%s\n用户住址:%s\n储种:%d\n利率:%f\n\n\n",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].cunkuan,hu[i].Tel,hu[i].address,hu[i].le i,hu[i].lilv);n=1;break;}if(n==0)printf("此存单不存在\n");printf("\n\n\t注: 储种中数字的含义为:\n\n\t0: 活期1: 一年定期2: 两年定期3: 三年定期4: 五年定期");fclose(fchuhu);}void in(int count) //存款{FILE *fchuhu = fopen("chuhu.txt","r");FILE *achuhu = fopen("back.txt","w");char id[9];int i;if(!fchuhu){printf("不能打开文件");}if(!achuhu){printf("不能创建新文件");}for(i=0;i<=100;i++){fscanf(fchuhu,"%s\t%s\t%s\t%s\t%lf\t%s\t%s\t%d\t%lf\n",&hu[i].idnum,&hu[i].password,& hu[i].name,&hu[i].idnumber,&hu[i].cunkuan,&hu[i].Tel,&hu[i].address,&hu[i].lei,&hu[i].lilv);}if(count<1){date();printf("请再次输入并确认存单:");scanf("%s",&id);for(i=0;i<=100;i++){if(strcmp(id,hu[i].idnum)==0 ){do{printf("\n\n\t\t请输入存款金额: ");fflush(stdin);scanf("%lf",&jin);if(jin<0)printf("\n\n\n\t\t存款不能为负数");}while(jin<0);if(jin>=0){hu[i].cunkuan+=jin;printf("\n\n\t\t\t您存款成功!\n\n\t\t本次存入金额为:%.2f\n",jin);printf("存单上共有:%f",hu[i].cunkuan);}}fprintf(achuhu,"%s\t%s\t%s\t%s\t%f\t%s\t%s\t%d\t%f\n",hu[i].idnum,hu[i].password,hu[i].name,hu[i].idnumber,hu[i].cunkuan,hu[i].Tel,hu[i].address,hu[i].lei,hu[i].lilv);}}fclose(fchuhu);fclose(achuhu);system("del chuhu.txt");rename("back.txt","chuhu.txt");}void out(int count) //取款{FILE *fchuhu = fopen("chuhu.txt","r");FILE *achuhu = fopen("back.txt","w");int i;char id[9];if(!fchuhu){printf("不能打开文件");}if(!achuhu){printf("不能创建新文件");}for(i=0;i<=100;i++){fscanf(fchuhu,"%s\t%s\t%s\t%s\t%lf\t%s\t%s\t%d\t%lf\n",&hu[i].idnum,&hu[i].password,& hu[i].name,&hu[i].idnumber,&hu[i].cunkuan,&hu[i].Tel,&hu[i].address,&hu[i].lei,&hu[i].lilv);}if(count<1){date();printf("请再次输入并确认存单:");scanf("%s",&id);for(i=0;i<=99;i++){if(strcmp(id,hu[i].idnum)==0 ){hu[i].cunkuan+=hu[i].lilv*hu[i].lei*hu[i].cunkuan;printf("取出%f元",hu[i].cunkuan);hu[i].cunkuan=0;printf("\n\n\n\t 取款成功");}fprintf(achuhu,"%s\t%s\t%s\t%s\t%f\t%s\t%s\t%d\t%f\n",hu[i].idnum,hu[i].password,hu[i]. name,hu[i].idnumber,hu[i].cunkuan,hu[i].Tel,hu[i].address,hu[i].lei,hu[i].lilv);}}fclose(fchuhu);fclose(achuhu);system("del chuhu.txt");rename("back.txt","chuhu.txt");}void lilvbiao() //利率表{system("cls");system("color f0");date();printf("\n\n\n\t\t\t利率对照表:\n");printf("\t≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡\n");printf("\t‖‖定期‖\n");printf("\t‖储种‖ˉˉ‖ˉˉˉˉ‖ˉˉˉˉ‖ˉˉˉˉ‖ˉˉˉˉ‖\n");printf("\t‖‖一年‖二年‖三年‖四年‖五年‖\n");printf("\t‖ˉˉˉˉ‖ˉˉˉ‖ˉˉˉˉ‖ˉˉˉˉ‖ˉˉˉˉ‖ˉˉˉ‖\n");printf("\t‖利率(%%%)‖1.25 ‖ 1.98 ‖ 2.25 ‖ 2.52 ‖ 2.79‖\n");printf("\t≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡\n");printf("\n\t说明:定期只能在储年到期时取出\n");}int yanzheng() //验证存单号或密码{FILE *fchuhu = fopen("chuhu.txt","r");int count=0,i;char id[9];for(i=0;i<=100;i++){fscanf(fchuhu,"%s\t%s\t%s\t%s\t%lf\t%s\t%s\t%d\t%lf\n",&hu[i].idnum,&hu[i].password,&hu[i].name,&hu[i].idnumber,&hu[i].cunkuan,&hu[i].Tel,&hu[i].address,&hu[i].lei,&hu[i].lilv);}do{system("cls");system("color f0");printf("存单号或密码错误将自动返回\n");printf("\n\n\t\t 请输入您的存单号:");scanf("%s",&id);printf("\n\n\t\t 请输入您的密码:");for(i=0;i<6;i++){fflush(stdin);password[i]=getch();printf("*");}password[6]='\0';fflush(stdin);scanf("%c",&ch);printf("\n\n\t\t");for(i=0;i<=99;i++){if(strcmp(id,hu[i].idnum)==0 &&strcmp(password,hu[i].password)==0){fclose(fchuhu);return 0;}}} while(count==0);fclose(fchuhu);return count;}int rrekey(){FILE *rekey=fopen("key.txt", "r" );FILE *rkey=fopen("keynew.txt", "w" );int mima,mima1,mima2,t;system("cls");printf("请输入原密码\n密码:");scanf("%d",&mima);fscanf(rekey,"%d",&key);if(mima==key)t=1;system("cls");for(;t!=1;){printf("密码错误,请重新输入\n密码:");scanf("%d",&mima);if(mima==key)t=1;system("cls");}/*认证成功*/printf("请输入新密码:\n");scanf("%d",&mima1);system("cls");printf("请再次输入新密码:\n");scanf("%d",&mima2);system("cls");if(mima1==mima2){fprintf(rkey,"%d",mima1);printf("修改成功\n");system("pause");}else{printf("输入错误密码,终止修改密码操作");system("pause");}system("cls");fclose(rekey);fclose(rkey);system("del key.txt");rename("keynew.txt","key.txt");return 0;}void date() //显示当前日期和时间{printf("当前日期:");system("date/t");printf("当前时间:");system("time/t");}void kaifa(){printf("开发者\n");}void cekong() //相当于页脚{printf("\n\n\n\t\t==========※感谢使用※==========\n\n");}。

图书管理系统C语言实现代码

图书管理系统C语言实现代码
int number;
char telephone[20];
int NO;
char bookname[20];
int borrowdate;
int returndate;
if((fp=fopen("jieshujilu.txt","r"))==NULL){
scanf("%s",);
fprintf(fp,"%s",);
printf("请输入借书人班级:");
scanf("%s",p.classes);
fprintf(fp," %s",p.classes);
printf("请输入借书人学号:");
scanf("%d",&p.number);
/*随代码必须新建一下文件:jieshujilu.txt shuku.txt tempbook.txt tempshuku.txt */
#include<stdio.h>
#include<stdlib.h>
struct book{
char bookname[20]; //书名
exit(0);
}
printf("请输入此次收到的书本总数:");
scanf("%d",&i);
for(j=0;j<i;j++){
printf("请输入书名:");
scanf("%s",b.bookname);
fprintf(fp,"%s",b.bookname);

C语言 学生信息管理系统(完整版)

C语言 学生信息管理系统(完整版)

电子科技大学成都学院程序综合设计论文论文题目学生信息管理系统学生姓名魏国学号1340840625专业机械设计制造及其自动化系(分院)电子工程系授课教师杜娥2015年12月制摘要随着经济的发展,社会的进步,计算机越来越深入到我们日常的工作学习及生活中,成为我们日常生活不可或缺的辅助工具。

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已成为人们深刻认识,它已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

现在由于学校规模进一步扩大,学生人数逐渐上升,在学校的学生信息管理中,虽然已经存在许多学生信息管理系统,但由于学校之间的管理差异很信息的不同,各个学校的学生信息管理的要求不一致,这样我们需要根据具体学习的具体要求来开发学生信息管理系统以方便学生管理。

本系统主要对学生各种信息进行处理。

本系统采用C语言编写,设计从实用性出发,设计开发出一个操作简单且符合实际需要的学生信息管理系统。

本文设计出一个可以添加、修改、查询、删除、统计的学生信息管理系统;最后,通过测试分析,力求将学到的只是在学生信息管理系统的得到全面运用,并使系统在实际的操作中能按照设计的要求安全有效的正确运行。

学生信息管理系统是为了实现学校对学生信息管理的系统化、规范化和自动化,从而提高学校管理效率而设计的。

它完全取代了原来一直用人工管理的工作方式,避免了由于管理人员的工作疏忽以及管理质量问题所造成的各种错误,为及时、准确、高效的完成学生信息管理提供了强有力的工具和管理手段。

学生信息管理系统是一个中小型数据库管理系统,它界面美观、操作简单、安全性高,基本满足了学生信息管理的要求。

学生信息管理系统在运行阶段,效果好,数据准确性高,提高了工作效率,同时也实现了学生信息管理计算机化。

关键字:学生信息,管理系统,数据库,C语言编写第一章系统功能和组成模块1.1系统功能学生信息管理系统存放了每个学生的学号,姓名,性别,年龄,出生年月,家庭住址,政治面貌等信息的数据库。

用C语言开发小型数据库管理系统的代码库.doc

用C语言开发小型数据库管理系统的代码库.doc

用C语言开发小型数据库管理系统的代码库。

用C语言开发一个小型数据库管理系统代码库。

如果有来世,做一棵树,站到永恒,没有悲伤的姿势。

一半在地球上平静,一半在风中飞翔,一半在阴凉处,一半沐浴在阳光中,非常安静,非常骄傲,从不依赖,从不寻找。

# include # include def struct count {/*用于保存记录数的结构*/char名称[10];int num}计数;typedef struct ST { char name[10];长数字;国际数学;国际商会;整数;} st[8];[伯爵1];char文件名[10]={ ' 0 ' };char文件名2[10]={ ' 0 ' };国际输入[8];V oid MainMenu(){ /*主菜单*/printf(' \ n \ t \ t \ t \ t * * * * * * * * * * \ n ');printf(“\ t \ t \ t \ t *主菜单* \ n”);Printf('\t\t\t\t* 1。

创建新文件* \ n ');Printf('\t\t\t\t* 2。

添加记录* \ n ');Printf('\t\t\t\t* 3。

删除记录* \ n ');Printf('\t\t\t\t* 4。

排序* \ n ');Printf('\t\t\t\t* 5。

查询记录* \ n ');Printf('\t\t\t\t* 6。

exit * \ n ');printf(' \ t \ t \ t \ t * * * * * * * * \ n ');" } void DelMenu(){/* delete MENU */Printf(' \ n \ t \ t \ t \ t * * * * * * * * * * * * * * * * * * * * * * * * \ n ')" Printf(' \ t \ t \ t \ t * delete MENU * \ n ');Printf('\t\t\t\t* 1。

学生成绩管理系统(数据结构C语言版源代码)

学生成绩管理系统(数据结构C语言版源代码)

学生成绩管理系统(数据结构C语言版源代码)-标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII#include<stdio.h>#include<string.h>#include<stdlib.h>struct students{char Num[10]; /*字符型学生学号*/char Name[20]; /*字符型学生姓名*/char Sex[3]; /*字符型学生性别*/double English; /*双精度实型英语成绩*/double Java; /*双精度实型Java成绩*/double Sjjg; /*双精度实数据结构*/double Szdl; /*双精度实型数字电路*/double Jsj; /*计算机组成原理*/struct students *next; /*用与构建连表指向下一结点*/};FILE *fp; /*定义全局变量fp*/void Revisemenu();/*修改菜单*/void Sortmenu();/*排序菜单*/void menu();/*主菜单*/void secret();/*安全验证*/struct students * Input();/*新建学生信息*/void fprint(struct students *head);/*将信息导入文件可追加*/void fprint_(struct students *head);/*将信息导入文件并覆盖*/void Browse(struct students *head);/*浏览全部学生信息*/struct students * create(struct students *head,int *n);/*从tushu_list中读取数据构建链表*/void FindofNum(struct students *head);/*按学号查询学生信息*/void FindofNname(struct students *head);/*按姓名查询学生信息*/void SortEnglish(struct students * head);/*按英语成绩排序*/void SortJava(struct students * head);/*按Java成绩排序*/void SortSjjg(struct students * head);/*按数据结构成绩排序*/void SortSzdl(struct students * head);/*按数字逻辑电路成绩排序*/void SortJsj(struct students * head);/*按计算机组成原理成绩排序*/struct students * Delete(struct students * head,char m[15]);/*按学号删除学生成绩信息*/struct students * Revise();/*修改学生信息(按编号修改)*//*主菜单*/void menu(){printf("\n\n");printf("***************************************************\n");printf(" 学生成绩管理系统 \n");printf("---------------------------------------------------\n");printf(" 1-添加新同学 2-浏览学生信息 \n");printf(" 3-按学号查询 4-按姓名查询 \n");printf(" 5-按成绩排序 6-修改学生信息 \n");printf(" 7-删除学生信息 0-退出系统 \n");printf("---------------------------------------------------\n");printf("___________________________________________________\n");}/*排序菜单*/void Sortmenu(){printf("\n\n");printf("***************************************************\n");printf(" 按成绩排序 \n");printf(" 1-大学英语 2-JAVA编程 \n");printf(" 3-数据结构 4-数字逻辑电路 \n");printf(" 5-计算机组成原理 0-返回上级菜单 \n");printf("***************************************************\n");}/*修改菜单*/void Revisemenu(){printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");printf(" 1--修改学生姓名 2--修改学生学号 \n");printf(" 3--修改学生性别 4--修改英语成绩 \n");printf(" 5--修改JAVA成绩 6--修改数据结构 \n");printf(" 7--修改数字电路 8--修改计算计 \n");printf(" 0--返回上级菜单 \n");printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");}/*安全验证*/void secret(){char a[20];printf("**欢迎来到学生信息管理系统,进入系统前请先进行密码验证---");printf(" ");do{gets(a); /*输入密码*/system("cls"); /*调用库函数清屏*/printf("对不起!您输入的密码有误,请重新输入---");}while(strcmp(a,"0605")!=0); /*单一密码"0605"*/system("cls");}/*新建学生信息*/struct students * Input(){struct students *p1,*p2,*head; /*建立辅助结点及头结点*/char Name;int n=0,x;printf("\n请按对应项输入学生信息以#结束:\n");printf("姓名学号性别英语 Java 数据结构数字电路计算机组成原理\n");p1=(struct students *)malloc(sizeof(struct students));head=p2=p1;do{ /*使用do while语句输入学生信息*/scanf("%s",&p1->Name);if(strcmp(p1->Name,"#")==0)break; /*判断结束符*/elsescanf("%s%s%lf%lf%lf%lf%lf",p1->Num,p1->Sex,&p1->English,&p1->Java,&p1->Sjjg,&p1->Szdl,&p1->Jsj);Name='#';p1=(struct students *)malloc(sizeof(struct students));p2->next=p1;p2=p1;n++;}while(1);p1->next=NULL;printf("学生信息输入结束!\n");getchar();printf("是否保存学生信息(1.是/2.否):");scanf("%d",&x);if(x==1)fprint(head); /*调用函数保存至文件*/elseprintf("\n文件没有被保存!\n");return head; /*返回头指针*/}/*将信息导入文件可追加*/void fprint(struct students *head){struct students *p1;if((fp=fopen("students_list.txt","a"))==NULL){printf("File open error!\n");exit(0);}for(p1=head;p1->next!=NULL;p1=p1->next) /*遍历*/fprintf(fp,"%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n", p1->Name,p1->Num,p1->Sex,p1->English,p1->Java,p1->Sjjg,p1->Szdl,p1->Jsj);/*将学生信息写入文件*/fclose(fp); /*关闭文件*/printf("\n学生信息已成功保存到文件 students_list.txt 中!\n");getchar();}/*将信息导入文件并覆盖*/void fprint_(struct students *head){struct students *p1;if((fp=fopen("students_list.txt","w"))==NULL){printf("File open error!\n");exit(0);}for(p1=head;p1!=NULL;p1=p1->next) /*遍历*/fprintf(fp,"%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n", p1->Name,p1->Num,p1->Sex,p1->English,p1->Java,p1->Sjjg,p1->Szdl,p1->Jsj);/*将学生信息写入文件*/fclose(fp); /*关闭文件*/;getchar();}/*浏览全部学生信息*/void Browse(struct students *head){char Num[10]; /*字符型学生学号*/char Name[20]; /*字符型学生姓名*/char Sex[3]; /*字符型学生性别*/double English; /*双精度实型英语成绩*/double Java; /*双精度实型Java成绩*/double Sjjg; /*双精度实数据结构*/double Szdl; /*双精度实型数字电路*/double Jsj; /*计算机组成原理*/if((fp=fopen("students_list.txt","a+"))==NULL){printf("File open error!\n");exit(0);}printf("-------------------------------------------------------------\n");printf("姓名学号性别英语 Java 数据结构数字电路计算机\n");while(!feof(fp))/*读取并输出*/{fscanf(fp,"%s%s%s%lf%lf%lf%lf%lf",Name,Num,Sex,&English,&Java,&Sjjg,&Sz dl,&Jsj);printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",Name,Num,Sex,English,Java,Sjjg,Szdl,Jsj);};if(fclose(fp)){printf("Can not close the file!\n");exit(0);}}/*从tushu_list中读取数据构建链表*/struct students * create(struct students * head,int *n){FILE *fp;struct students*p,*p1,*p2;if((fp=fopen("students_list.txt","a+"))==NULL){printf("File open error!\n");exit(0);}while(!feof(fp)){(*n)++;p=(struct students *)malloc(sizeof(struct students));fscanf(fp,"%s%s%s%lf%lf%lf%lf%lf",p->Name,p->Num,p->Sex,&p->English,&p->Java,&p->Sjjg,&p->Szdl,&p->Jsj);if(head==NULL){head=p;p1=p;}else{p1->next=p;p2=p1;p1=p;}}p2->next=NULL;free(p);(*n)--;fclose(fp);return head;}/*按姓名查询学生信息*/void FindofName(struct students *head){int i=0,n=0;char b[20];struct students *p;head=create(head,&n);p=head;printf("\n请输入要查询的学生姓名:");scanf("%s",b);while(p!=NULL){if(strcmp(p->Name,b)==0){printf("姓名学号性别英语 Java 数据结构数字电路计算机\n");printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);i++;}p=p->next;}if(i==0)printf("\n对不起!没有找到名为“%s”的学生信息!\n",b);}/*按学号查询学生信息*/void FindofNum(struct students *head){int i=0,n;char b[20];struct students *p;head=create(head,&n);p=head;printf("\n请输入要查询的学生学号:");scanf("%s",b);while(p!=NULL){if(strcmp(p->Num,b)==0){printf("姓名学号性别英语 Java 数据结构数字电路计算机\n");printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);i++;}p=p->next;}if(i==0)printf("\n对不起!没有找到学号为“%s”学生信息!\n",b);}/*按英语成绩排序*/void SortEnglish(struct students * head){struct students *p,*tail; /*定义中间变量*/int n;double English;p=(struct students *)malloc(sizeof(struct students));head=create(head,&n);printf("姓名学号性别英语 Java 数据结构数字电路计算机\n");while(head->next!=NULL) /*利用选择法排序*/{tail=NULL;p=head;English=p->English; /*将链表中第一个成绩赋给English*/while(p!=NULL){if((p->English)>English)/*比较*/English=p->English;tail=p;p=p->next;}tail=NULL;p=head;while(p->next!=NULL){if(p->English==English){printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);if(p==head)head=head->next;elsetail->next=p->next;}tail=p;p=p->next;}if(p->English==English){ /*分数相同时无需比较*/printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);tail->next=NULL;}}p=head; /*将链表赋给结构体指针*/printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);/*浏览排序后的信息*/printf("按英语成绩排序后输出如上(注:此过程不保存至文件):\n");return;}/*按JAVA成绩排序*/void SortJava(struct students * head){struct students *p,*tail; /*定义中间变量*/int n;double Java;p=(struct students *)malloc(sizeof(struct students));head=create(head,&n);printf("姓名学号性别英语 Java 数据结构数字电路计算机\n");while(head->next!=NULL) /*利用选择法排序*/{tail=NULL;p=head;Java=p->Java; /*将链表中第一个成绩赋给Java*/while(p!=NULL){if((p->Java)>Java)/*比较*/Java=p->Java;tail=p;p=p->next;}tail=NULL;p=head;while(p->next!=NULL){if(p->Java==Java){printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);if(p==head)head=head->next;elsetail->next=p->next;}tail=p;p=p->next;}if(p->Java==Java){ /*成绩相同时无需比较*/printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);tail->next=NULL;}}p=head; /*将链表赋给结构体指针*/printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);/*浏览排序后的信息*/printf("按Java成绩排序后输出如上(注:此过程不保存至文件):\n");return;}/*按数据结构排序*/void SortSjjg(struct students * head){struct students *p,*tail; /*定义中间变量*/int n;double Sjjg;p=(struct students *)malloc(sizeof(struct students));head=create(head,&n);printf("姓名学号性别英语 Java 数据结构数字电路计算机\n");while(head->next!=NULL) /*利用选择法排序*/{tail=NULL;p=head;Sjjg=p->Sjjg; /*将链表中第一个成绩赋给Sjjg*/while(p!=NULL){if((p->Sjjg)>Sjjg)/*比较*/Sjjg=p->Sjjg;tail=p;p=p->next;}tail=NULL;p=head;while(p->next!=NULL){if(p->Sjjg==Sjjg){printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);if(p==head)head=head->next;elsetail->next=p->next;}tail=p;p=p->next;}if(p->Sjjg==Sjjg){ /*成绩相同时无需比较*/printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);tail->next=NULL;}}p=head; /*将链表赋给结构体指针*/printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);/*浏览排序后的信息*/printf("按数据结构成绩排序后输出如上(注:此过程不保存至文件):\n");return;}/*按数字电路排序*/void SortSzdl(struct students * head){struct students *p,*tail; /*定义中间变量*/int n;double Szdl;p=(struct students *)malloc(sizeof(struct students));head=create(head,&n);printf("姓名学号性别英语 Java 数据结构数字电路计算机\n");while(head->next!=NULL) /*利用选择法排序*/{tail=NULL;p=head;Szdl=p->Szdl; /*将链表中第一个成绩赋给Szdl*/while(p!=NULL){if((p->Szdl)>Szdl)/*比较*/Szdl=p->Szdl;tail=p;p=p->next;}tail=NULL;p=head;while(p->next!=NULL){if(p->Szdl==Szdl){printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);if(p==head)head=head->next;elsetail->next=p->next;}tail=p;p=p->next;}if(p->Szdl==Szdl){ /*成绩相同时无需比较*/printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);tail->next=NULL;}}p=head; /*将链表赋给结构体指针*/printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);/*浏览排序后的信息*/printf("按数字电路成绩排序后输出如上(注:此过程不保存至文件):\n");return;}/*按计算机组成原理排序*/void SortJsj(struct students * head){struct students *p,*tail; /*定义中间变量*/int n;double Jsj;p=(struct students *)malloc(sizeof(struct students));head=create(head,&n);printf("姓名学号性别英语 Java 数据结构数字电路计算机\n");while(head->next!=NULL) /*利用选择法排序*/{tail=NULL;p=head;Jsj=p->Jsj; /*将链表中第一个成绩赋给Jsj*/while(p!=NULL){if((p->Jsj)>Jsj)/*比较*/Jsj=p->Jsj;tail=p;p=p->next;}tail=NULL;p=head;while(p->next!=NULL){if(p->Jsj==Jsj){printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);if(p==head)head=head->next;elsetail->next=p->next;}tail=p;p=p->next;}if(p->Jsj==Jsj){ /*成绩相同时无需比较*/printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);tail->next=NULL;}}p=head; /*将链表赋给结构体指针*/printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);/*浏览排序后的信息*/printf("按计算机组成原理成绩排序后输出如上(注:此过程不保存至文件):\n");return;}/*按学号删除学生成绩信息*/struct students * Delete(struct students * head,char m[15]){struct students *ptr1,*ptr2;int n;printf("\n所有学生信息如下:\n");Browse(head);printf("\n请输入想要删除的学生学号:");scanf("%s",m);head=create(head,&n);if(head==NULL){printf("无学生信息!\n");return head;}if((strcmp(head->Num,m)==0)&&head!=NULL){ptr2=head;head=head->next;free(ptr2);}if(strcmp(head->Num,m)!=0){ptr1=head;ptr2=head->next;while(ptr2!=NULL){if(strcmp(ptr2->Num,m)==0){ptr1->next=ptr2->next;free(ptr2);}elseptr1=ptr2;ptr2=ptr1->next;}}fprint_(head);printf("\n学号为' %s '学生信息已被删除,并保存至文件!\n",m);return head;}/*修改学生信息(按编号修改)*/struct students * Revise(){int n=0,t;char num[10];char Num[10]; /*字符型学生学号*/char Name[20]; /*字符型学生姓名*/char Sex[3]; /*字符型学生性别*/double English; /*双精度实型英语成绩*/double Java; /*双精度实型Java成绩*/double Sjjg; /*双精度实数据结构*/double Szdl; /*双精度实型数字电路*/double Jsj; /*计算机组成原理*/struct students *head=NULL;struct students *p;printf("\n所有学生信息如下:\n");Browse(head);head=create(head,&n);printf("\n输入需要修改的学生的学号:");scanf("%s",num);p=head;while(head!=NULL){if(strcmp(p->Num,num)==0){system("cls");Revisemenu();printf("编号为%s的学生信息如下:\n",num);printf("姓名学号性别英语 Java 数据结构数字电路计算机\n");printf("%s\t%s\t%s\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n",p->Name,p->Num,p->Sex,p->English,p->Java,p->Sjjg,p->Szdl,p->Jsj);while(1){printf("请选择需要修改的信息:");scanf("%d",&t);switch(t){case 1:printf("请输入新姓名:");scanf("%s",Name);strcpy(p->Name,Name);break;case 2:printf("请输入新学号:");scanf("%s",&Num);strcpy(p->Num,Num);break;case 3:printf("请输入新性别:");scanf("%s",Sex);strcpy(p->Sex,Sex);break;case 4:printf("请输入新英语成绩:");scanf("%lf",&English);p->English=English;break;case 5:printf("请输入新Java成绩:");scanf("%lf",&Java);p->Java=Java;break;case 6:printf("请输入新数据结构成绩:");scanf("%lf",&Sjjg);p->Sjjg=Sjjg;break;case 7:printf("请输入新数字电路成绩:");scanf("%lf",&Szdl);p->Szdl=Szdl;break;case 8:printf("请输入新计算机组成原理成绩:");scanf("%lf",&Jsj);p->Jsj=Jsj;break;case 0:system("cls");menu();goto lab;break;default:printf("对不起,输入有误!");break;}}}elsep=p->next;}lab:fprint_(head);printf("修改完成,并储存至文件!\n");return head;}/*主函数*/void main(){int choice,ch;char m[15];struct students *head=NULL;secret();menu();while(1){printf("请输入选项:");scanf("%d",&choice);switch(choice){case 1:Input();break;case 2:system("cls");menu();Browse(head);break;case 3:system("cls");menu();FindofNum(head);break;case 4:system("cls");menu();FindofName(head);break;case 5:system("cls");Sortmenu();do{printf("请输入您的选择:");scanf("%d",&ch);switch(ch){case 1:system("cls");Sortmenu();SortEnglish(head);break;case 2:system("cls");Sortmenu();SortJava(head);break;case 3:system("cls");Sortmenu();SortSjjg(head);break;case 4:system("cls");Sortmenu();SortSzdl(head);break;case 5:system("cls");Sortmenu();SortJsj(head);break;}}while(ch!=0);system("cls");menu();break;case 6:system("cls");menu();Revise();break;case 7:system("cls");menu();head=Delete(head,m);break;case 0:system("cls");printf("\t\t欢迎下次再来!");exit(0);default:printf("对不起,输入有误!");break;}}return ;}。

用C语言开发小型数据库管理系统

用C语言开发小型数据库管理系统

综合性程序‎设计试验‎实验名称‎:用C语‎言开发小型‎数据库管理‎系统【‎目的】‎1.利用‎所学的三种‎程序基本结‎构以及数组‎、指针、结‎构体、用户‎自定义函数‎、文件进行‎一个中型程‎序的设计,‎进一步理解‎和掌握C语‎言的语法以‎及三种基本‎程序结构的‎综合应用。

‎2.‎通过程序中‎涉及到的排‎序、查找、‎求和等操作‎加深对算法‎、程序设计‎思路、常用‎程序设计技‎巧的理解与‎掌握,逐步‎培养学生的‎程序开发能‎力。

‎【内容】‎设某班‎有n位同学‎,每位同学‎的数据包括‎以下内容:‎学号(字符‎串)、姓名‎(字符串)‎、数学成绩‎(字符串)‎、程序设计‎成绩(字符‎串)。

设计‎程序完成以‎下五项功能‎:新建数据‎档案、添加‎数据、删除‎数据、对输‎入的数据进‎行排序和查‎询。

注‎:1.‎采用模块‎化程序设计‎思想对系统‎进行设计;‎2.‎学生的数据‎要求用文件‎保存;‎3.学生‎的学号作为‎关键字段,‎不能相同,‎姓名可以相‎同。

4‎.要求使‎用结构体,‎链或数组等‎实现。

‎【步‎骤】1‎.画出程‎序流程图;‎2.‎编制程序‎;3.‎调试程序‎,对调试程‎序时出现的‎错误进行分‎析,思考导‎致错误的原‎因;4‎.写出通‎过调试并修‎改后的正确‎程序代码。

‎5.‎提交实验报‎告(电子文‎档)【‎规范】‎一、文件名‎规定1‎.数据库‎文件名:‎‎s tude‎n ts.d‎a t(文本‎文件)‎2.数学‎成绩排序文‎件名:sx‎c j.da‎t(文本文‎件)3‎.程序设‎计成绩排序‎名:cxs‎j.dat‎(文本文件‎)二、‎宏定义、记‎录结构和全‎局变量‎#defi‎n e ‎N ULL ‎ 0‎#def‎i ne ‎LEN ‎ s‎i zof(‎S TD)‎type‎d ef ‎s truc‎t {‎‎‎‎char‎xh[1‎2]; ‎‎/*学号*‎/‎‎‎ c‎h ar x‎m[12]‎;‎ /*姓‎名*/‎‎‎‎char‎sxcj‎[5]; ‎‎/*数学成‎绩*/‎‎‎‎c har ‎c xsj[‎5]; ‎ /‎*程序设计‎成绩*/‎‎‎‎ cha‎r zf[‎5]; ‎‎/*总分‎*/‎‎‎‎s truc‎t std‎*nex‎t /‎*指向下条‎记录*/‎‎‎‎ str‎u ct s‎t d *p‎r ev ‎ /*指‎向上条记录‎*/}‎S TD;‎STD ‎*head‎=NULL‎;‎/*链表头‎指针,定义‎为全局变量‎*/S‎T D *t‎a il=N‎U LL; ‎ /‎*链表尾指‎针,定义为‎全局变量*‎/ST‎D *cu‎r rent‎=NULL‎; /*‎链表当前结‎点指针,定‎义为全局变‎量*/ ‎三、自定义‎函数规范‎1.vo‎i d c‎r eate‎(void‎)‎该函数‎在打开数据‎库文件并读‎取记录时动‎态创建链表‎,同时初始‎化表头、表‎尾,置当前‎指针指向表‎头。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用C语言开发小型数据库管理系统代码的文库.txt如果有来生, 要做一棵树, 站成永恒, 没有悲伤的姿势。

一半在土里安详, 一半在风里飞扬, 一半洒落阴凉, 一半沐浴阳光, 非常沉默非常骄傲, 从不依靠从不寻找。

#include <stdio.h>
#include <string.h>
typedef struct count{ /*保存记录条数结构体*/
char name[10];
int num;
}count;
typedef struct st{
char name[10];
long Number;
int Math;
int C;
int Amount;
}st;
st record[8];
count num[1];
char filename[10]={"0"};
char filename2[10]={"0"};
int Inputnum[8];
void MainMenu(){ /*主菜单*/ printf("\n\t\t\t\t* * * * * * * * * *\n");
printf("\t\t\t\t* 主菜单*\n");
printf("\t\t\t\t* 1. 创立新文件*\n");
printf("\t\t\t\t* 2. 添加记录*\n");
printf("\t\t\t\t* 3. 删除记录*\n");
printf("\t\t\t\t* 4. 排序*\n");
printf("\t\t\t\t* 5. 查询记录*\n");
printf("\t\t\t\t* 6. 退出*\n");
printf("\t\t\t\t* * * * * * * * * *\n");
}
void DelMenu(){ /*删除菜单*/
printf("\n\t\t\t\t* * * * * * * * * * * *\n");
printf("\t\t\t\t* 删除菜单*\n");
printf("\t\t\t\t* 1. 学号查询删除*\n");
printf("\t\t\t\t* 2. 返回到上级菜单*\n");
printf("\t\t\t\t* * * * * * * * * * * *\n");
}
void RankingMenu(){ /*排序菜单*/
printf("\n\t\t\t\t* * * * * * * * * * * *\n");
printf("\t\t\t\t* 排序菜单*\n");
printf("\t\t\t\t* 1. 数学成绩排序*\n");
printf("\t\t\t\t* 2. C语言成绩排序*\n");
printf("\t\t\t\t* 3. 总分排序*\n");
printf("\t\t\t\t* 4. 返回到上级菜单*\n");
printf("\t\t\t\t* * * * * * * * * * * *\n");
}
void InquireMenu(){ /*查讯菜单*/
printf("\n\t\t\t\t* * * * * * * * * * * *\n");
printf("\t\t\t\t* 查讯菜单*\n");
printf("\t\t\t\t* 1. 学号查讯*\n");
printf("\t\t\t\t* 2. 姓名查讯*\n");
printf("\t\t\t\t* 3. 数学成绩查讯*\n");
printf("\t\t\t\t* 4. C语言成绩查讯*\n");
printf("\t\t\t\t* 5. 总分查讯*\n");
printf("\t\t\t\t* 6. 返回到上级菜单*\n");
printf("\t\t\t\t* * * * * * * * * * * *\n");
}
char Inputfilename(){ /*输入文
件名同时产生付本文件名*/
char str2[]={"B"};
printf("** 请输入文件名** : ");
scanf("%s",filename);
getchar();
strcpy(filename2,filename);
strcat(filename2,str2);
}
FILE *readfile(){ /*读取文档*/
FILE *fp1;
if((fp1=fopen(filename,"rb"))==NULL)
{printf("\n文件读取错误!!\n");
fclose(fp1);
}
return(fp1);
}
FILE *foundfile(){ /*新建文档*/
FILE *fp1;
if((fp1=fopen(filename,"wb"))==NULL)
{printf("\n文件创立错误!!\n");
fclose(fp1);
}
return(fp1);
}
FILE *savefile(){ /*追加文档*/
FILE *fp1;
if((fp1=fopen(filename,"ab"))==NULL)
{printf("\n文件追加错误!!\n");
fclose(fp1);
}
return(fp1);
}
int InputSave(){ /*添加数据*/
int i=0,j;
char ch='y';
while(ch!='w')
{i=i+1;
printf("\n** 请输入姓名(字符型) ** :");
scanf("%s",record[i].name);
Loop1: printf("\n** 请输入学号(长整型) ** :");
scanf("%ld",&record[i].Number);
if(i!=1)
for(j=1;j<i;j++)
if(record[i].Number==record[j].Number)
{printf("\n\t警告! 输入了二个同样的学号! 第%d 条和第%d学号相同!\n",i,j);
printf("\n\t请重新输入!\n");
goto Loop1;
}
Loop2: printf("\n** 请输入数学成绩(整型) ** :");
scanf("%d",&record[i].Math);
if(record[i].Math>100||record[i].Math<0)
{printf("\n\t输入的分数不服合实际要求! 请重新录入!\n");
goto Loop2;
}
Loop3: printf("\n** 请输入C语言成绩(整型) ** :");
scanf("%d",&record[i].C);
if(record[i].C>100||record[i].C<0)
{printf("\n\t输入的分数不服合实际要求! 请重新录入!\n");
goto Loop3;。

相关文档
最新文档