C语言系统用户管理系统

合集下载

c语言学生成绩管理系统设计报告

c语言学生成绩管理系统设计报告

c语言学生成绩管理系统设计报告C语言是计算机领域最为重要的编程语言之一,用于许多应用系统的开发。

这里我将围绕C语言学生成绩管理系统的设计报告,分步骤阐述该系统的设计与实现。

第一步:需求分析在进行设计之前,必须先进行需求分析,明确系统所需的功能和性能。

针对学生成绩管理系统,我们需要实现以下功能:1. 学生信息管理:包括学生姓名,学号等信息。

2. 成绩信息管理:包括课程分数,总分、平均分等信息。

3. 数据录入和修改:教师可以输入学生的成绩信息,并对已有的信息进行修改。

4. 成绩查询功能:学生可以查询自己的成绩情况。

第二步:系统设计根据需求分析,我们可以对系统进行具体设计。

该系统主要分为以下模块:1. 学生信息管理模块:用于录入和管理学生的信息。

2. 成绩信息管理模块:用于录入和管理学生的成绩信息。

3. 数据操作模块:用于操作学生和成绩信息的增删改查。

4. 用户管理模块:用于管理系统用户,包括学生和教师。

第三步:系统实现在进行系统实现时,我们需要注意以下几个方面:1. 界面设计:尽量简洁明了,易于使用。

2. 数据库设计:需要对数据进行分类储存,便于操作。

3. 数据库连接:需要通过C语言的数据库API来连接数据库。

4. 代码编写:需要根据设计要求进行代码编写,并进行测试调整,确保系统的稳定性和性能。

第四步:系统测试完成系统的设计和实现后,就需要对系统进行测试。

测试主要包括以下几个方面:1. 单元测试:对系统各个功能模块进行单独测试,确保每个模块的运行效果。

2. 集成测试:对系统各个模块进行集成测试,确保各个模块之间的相互交互正常。

3. 用户测试:邀请用户来测试系统,听取他们的反馈和建议,进行调整和改进。

总结:本文围绕C语言学生成绩管理系统的设计报告,分步骤阐述了系统的设计、实现和测试。

这对于开发人员在进行类似系统开发时具有一定的指导意义。

不过,由于每个系统都具有其独特性和特点,因此具体实现还需根据具体情况而定。

学生管理系统c语言源代码

学生管理系统c语言源代码

int main()
{
initLinkTable(&head);//初始化表头
readStu();//读入源文件
while (1)
{
menu();
system("cls");
}
}
void initLinkTable(studentLinkPoint *p)
int sum(studentLinkPoint);//求和
void avg(studentLinkPoint);//求平均分
void disAvgSum(studentLinkPoint);//显示总分和平均分
char *inputNumber();//专门用来输入一个学生的学号,返回该字符串的指针
char name[20];
char number[18];
int i;
if(temp==0)
{
error("input");
return 0;
}
else
{
temp->student=(studentPint)malloc(sizeof(studentNod));
break;
case 0:
del(head,end);
break;
}
if(c==0)
exit(1);
}
void del(studentLinkPoint p,studentLinkPoint End)
{
studentLinkPoint q;
if(end==head)
printf(" %3.1f %3.1f\n",p->student->sum,p->student->avg);

学生管理系统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程序学生管理系统以下是用c语言编写的学生成绩管理系统的简单代码,可以用vc运行(供参考) #include"stdio.h"#include”stdlib。

h"#include"string。

h”typedef struct student//定义学生{char name[10];int number;char sex[2];int math;int eglish;int clanguge;int average;}student;typedef struct unit//定义接点{student date;struct unit *next;}unit;unit* build()//建立链表并返回指针{unit *p;if((p=(unit*)malloc(sizeof(unit)))==NULL){ printf("=>初始化失败!”);return 0;}else{p—>next=NULL;p-〉date.number=0;//头结点存放学生人数printf("初始化成功!\n");return p;}}void add(unit *head)//增加学生{unit *p,*q;int m,n=0;q=head-〉next;p=(unit*)malloc(sizeof(unit));printf(”=〉请输入新生姓名!\n");gets(p—>);fflush(stdin);printf("=〉请输入学号!\n");while(n==0){scanf("%d",&m);fflush(stdin);if(q==NULL) n=1;while(q){if(q->date.number==m){printf("=>你输入的学号与已有同学的学号相同,请重新输入!\n");q=head-〉next;break;}else{q=q->next;if(q==NULL) n=1;}}}p—〉date。

C语言课程设计 学生饭卡管理系统

C语言课程设计 学生饭卡管理系统

getch();return;}exit(0);}fseek(fp,0,2);if (ftell(fp)>0) /*文件非空*/{rewind(fp);for (num=0;!feof(fp) && fread(&student[num],sizeof(struct record),1,fp);num++);return;}}void select() /* 主菜单*/{char choic;system("cls");printf("\n\t\t******************** 主菜单********************");printf("\n\t\t*********** 1-添加用户2-查询用户************");printf("\n\t\t*********** 3- 充值4- 消费************");printf("\n\t\t*********** 5-删除用户6-退出系统************");printf("\n\t\t************************************************");printf("\n\t\t请选择:");choic=getch();switch (choic){case '1':addnewcard();break;case '2':searchcard();break;case '3':addbalance();break;case '4':charge();break;case '5':deletecard();break;case '6':exit(0);default:select();}}void addnewcard() /*添加用户*/{printf("\n\t\t*************** 请输入学生信息***************\n");printf("\n\t\t输入学号:");scanf("%s",&student[num].cardnumber);printf("\n\t\t输入姓名:");scanf("%s",&student[num].name);printf("\n\t\t输入电话号码:");scanf("%s",&student[num].phone);printf("\n\t\t输入班级:");scanf("%s",&student[num].classn);printf("\n\t\t输入密码:");scanf("%s",&student[num].password);printf("\n\t\t输入添加金额:");scanf("%d",&student[num].balance);num++;printf("\n\t\t是否继续添加?(Y/N):");if (getch()=='y')addnewcard();return;}void searchcard() /*查询用户*/{int mark=0;int i;int a=0;printf("\n\t\t***************** 按学号查找*****************\n");char cardnumber[10];printf("\n\t\t请输入学号:");scanf("%s",cardnumber);for(i=0;i<num;i++){if (strcmp(student[i].cardnumber,cardnumber)==0){printf("\n\t\t************** 以下是您查找的学生信息**********");printf("\n\t\t学号:%s",student[i].cardnumber);printf("\n\t\t姓名:%s",student[i].name);printf("\n\t\t电话:%s",student[i].phone);printf("\n\t\t班级:%s",student[i].classn);printf("\n\t\t余额:%d",student[i].balance);printf("\n\t\t密码:%s",student[i].password);printf("\n\t\t************************************************");printf("\n\t\t按任意键返回主菜单:");mark++;getch();return;}}if (mark==0){printf("\n\t\t没有改学生的信息");printf("\n\t\t按任意键返回主菜单");getch();return;}}void addbalance() /*充值*/{int i;int m;int a=0;printf("\n\t\t*************** 按学号添加金额***************\n");char cardnumber[10];printf("\n\t\t请输入学号:");scanf("%s",cardnumber);for(i=0;i<num;i++){if (strcmp(student[i].cardnumber,cardnumber)==0){printf("\n\t\t************* 以下是您所选择学生信息***********");printf("\n\t\t学号:%s",student[i].cardnumber);printf("\n\t\t姓名:%s",student[i].name);printf("\n\t\t电话:%s",student[i].phone);printf("\n\t\t班级:%s",student[i].classn);printf("\n\t\t余额:%d",student[i].balance);printf("\n\t\t密码:%s",student[i].password);printf("\n\t\t************************************************");printf("\n\t\t是否添加金额?(y/n)");if (getch()=='y'){printf("\n\t\t请输入你要添加金额:");scanf("%d",&m);printf("\t\t确认添加%d元给%s(y/n)?",m,student[i].name);if (getch()=='y') {student[i].balance=student[i].balance+m;}printf("\n\t\t添加金额成功");}printf("\n\t\t******** 以下是您选择学生添加金额后信息********");printf("\n\t\t学号:%s",student[i].cardnumber);printf("\n\t\t姓名:%s",student[i].name);printf("\n\t\t电话:%s",student[i].phone);printf("\n\t\t班级:%s",student[i].classn);printf("\n\t\t余额:%d",student[i].balance);printf("\n\t\t密码:%s",student[i].password);printf("\n\t\t************************************************");printf("\n\t\t按任意键返回主菜单");getch();return;}}}void charge() /*收费*/{int i;int k;int a=0;printf("\n\t\t***************** 按学号扣费*****************\n");char cardnumber[10];printf("\n\t\t请输入学号:");scanf("%s",cardnumber);for(i=0;i<num;i++){if (strcmp(student[i].cardnumber,cardnumber)==0){printf("\n\t\t************** 以下是您选择学生信息************");printf("\n\t\t学号:%s",student[i].cardnumber);printf("\n\t\t姓名:%s",student[i].name);printf("\n\t\t电话:%s",student[i].phone);printf("\n\t\t班级:%s",student[i].classn);printf("\n\t\t余额:%d",student[i].balance);printf("\n\t\t密码:%s",student[i].password);printf("\n\t\t************************************************");printf("\n\t\t是否扣除金额?(y/n)");if (getch()=='y'){printf("\n\t\t请输入你要扣除金额:");scanf("%d",&k);printf("\t\t确认扣除%d元给%s?(y/n)",k,student[i].name);if (getch()=='y'){student[i].balance=student[i].balance-k;}printf("\n\t\t扣除金额成功");}printf("\n\t\t****** 以下是您所选择学生扣除金额后信息********");printf("\n\t\t学号:%s",student[i].cardnumber);printf("\n\t\t姓名:%s",student[i].name);printf("\n\t\t电话:%s",student[i].phone);printf("\n\t\t班级:%s",student[i].classn);printf("\n\t\t余额:%d",student[i].balance);printf("\n\t\t密码:%s",student[i].password);printf("\n\t\t************************************************");printf("\n\t\t按任意键返回主菜单");getch();return;}}}void deletecard() /*删除用户*/{int i,j;int deletemark=0;char cardnumber[10];printf("\n\t\t请输入要删除学生学号:");scanf("%s",cardnumber);if(num==0){printf("\n\t\t对不起,文件中无任何纪录");printf("\n\t\t按任意键返回主菜单");getch();return;}for (i=0;i<num;i++){if (strcmp(student[i].cardnumber,cardnumber)==NULL){printf("\n\t\t以下是您要删除的学生纪录:");printf("\n\t\t学号:%s",student[i].cardnumber);printf("\n\t\t姓名:%s",student[i].name);printf("\n\t\t电话:%s",student[i].phone);printf("\n\t\t班级:%s",student[i].classn);printf("\n\t\t余额:%d",student[i].balance);printf("\n\t\t密码:%s",student[i].password);printf("\n\t\t是否删除?(y/n)");if (getch()=='y'){printf("\n\n\t\t退还%d 元给%s.\n\n",student[i].balance,student[i].name);for (j=i;j<num-1;j++) /*纪录移动,从stud数组中删除*/student[j]=student[j+1];num--;deletemark++;printf("\n\t\t删除成功");printf("\n\t\t是否继续删除?(y/n)");if (getch()=='y')deletecard();return;}elsereturn;}3.设计结果与分析①在Microsoft Visual C++ 软件中输入源程序,在没有提示错误的情况下编译,生成相应的后缀为“jiucankaguanli.exe”的可执行文件。

基于C语言控制台的管理系统菜单制作

基于C语言控制台的管理系统菜单制作
void ProcessMenu(int nSel);//具体处理菜单消息
void ShowMenu(int argc, const char *argv[], int nSel);//显示菜单
void TransferSysColor(); //根据当前选择 切换颜色
void Add(); //增加信息
}
void TransferSysColor()
{
system(g_sSysColor[g_nSel + 1]);
}
void Add()
{
system("cls");
TransferSysColor();
printf("增加界面\n");
//TO DO
system("pause");
const char *g_sMenu[] = {"增加信息", "删除信息", "修改信息", "查找信息", "退出系统"};
const char *g_sTittle = "管理系统"; //菜单标题
const char *g_sSysColor[] = {"color 0a", "color 0b", "color 0c", "color 0d", "color 0e", "color 0f"}; //控制台颜色参数
int g_nSel = -1; //当前菜单选择行 初始值为-1
bool g_bExit; //是否退出while(1)循环,从而退出系统

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

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

学生信息管理系统c语言版源代码#include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> #define N 1000typedef struct student {int number;char name[20];int grade;int gaoshu;int yingyu;int jisuanji;int sum;}STUDENT;STUDENT student[N]; int shuliang=0;void menu();void fhzjm(){char biaozhi[20];printf("\n");printf("还需要操作么,如果需要操作请输入:yes,否则请输入:no\n");scanf("%s",biaozhi);if(strcmp(biaozhi,"yes")==0){menu();}else if(strcmp(biaozhi,"no")==0)exit(0);else{printf("请输入正确的字符,谢谢~\n"); fhzjm();}}void DengJi(){int rs;int i,k=1;system("CLS");printf("请输入需要输入几个学生信息:"); scanf("%d",&rs);for(i=shuliang;i<shuliang+rs;i++,k++) {printf("请输入第%d个学生的学号:",k); scanf("%d",&student[i].number);printf("请输入学生的姓名:");scanf("%s",student[i].name);printf("请输入学生3门课的成绩:"); printf("请输入第1门课的成绩:");scanf("%d",&student[i].gaoshu);printf("请输入第2门课的成绩:");scanf("%d",&student[i].yingyu);printf("请输入第3门课的成绩:");scanf("%d",&student[i].jisuanji);}shuliang=shuliang+rs;fhzjm();}void ShanChu(){char shanchuinfo[10];system("CLS");printf("删除全部学生信息请输入\"all\",删除指定学号的学生信息请输入\"one\"\n");scanf("%s",shanchuinfo);if(strcmp(shanchuinfo,"all")==0){int j;printf("你删除的学生信息如下:\n");printf("-----------学号-------------姓名-------------高数--------------英语--------------计算机\t\n");for(j=0;j<shuliang;j++)printf("----%d-------%s-------%d-------%d-------%d\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].jisuanji);shuliang=0;printf("删除成功\n\n");}else if(strcmp(shanchuinfo,"one")==0){struct student *p=NULL;int choice;int i,j,k=0;printf("请输入你要删除的人的学号:");scanf("%d",&choice);for(i=0;i<shuliang;i++){if(choice==student[i].number){k=1;j=i;break;}}if(k){if(shuliang==1){p=&student[0];free(p);shuliang=0;}else{for(i=j;i<shuliang;i++) {student[i]=student[i+1];}shuliang=shuliang-1;}printf("删除成功\n\n");}else{printf("输入数据错误~\n"); }}fhzjm();}void LiuLan(){int i;system("CLS");if(shuliang==0){printf("系统里面没有任何学生的信息~\n");}else{for(i=0;i<shuliang;i++){printf("第%d个学生的学号为:%d\n",i+1,student[i].number);printf("第%d个学生的姓名为:%s\n",i+1,student[i].name);printf("第%d个学生的第一门课的成绩为:%d\n",i+1,student[i].gaoshu);printf("第%d个学生的第二门课的成绩为:%d\n",i+1,student[i].yingyu);printf("第%d个学生的第三门课的成绩为:%d\n",i+1,student[i].jisuanji);student[i].sum=student[i].gaoshu+student[i].yingyu+student[i].jisuan ji;printf("第%d个学生的总成绩为:%d\n",i+1,student[i].sum);}}fhzjm();}void ChaZhao(){int xx;char choice,yy[20];int i,j,k=0;system("CLS");if(shuliang==0){printf("系统里面没有任何学生的信息~\n");fhzjm();}printf("三种查找方式:学号,姓名,成绩\n");printf("如果按学号查找请输1,如果按姓名查找请输2,如果按成绩查找请输3\n");printf("请输入您查找的方式:");scanf("%s",&choice);if(choice=='1'){printf("请输入需要查找学生的学号:");scanf("%d",&xx);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数成绩----英语成绩----计算机成绩----\t\n");for(i=0;i<shuliang;i++){if(xx==student[i].number){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[i].jis uanji);}}if(k==0)printf("输入信息有误:\n");}else if(choice=='2'){printf("请输入需要查找学生的姓名:\n");scanf("%s",yy);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数成绩----英语成绩----计算机成绩----\t\n");for(i=0;i<shuliang;i++){if(strcmp(yy,student[i].name)==0){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[j].jis uanji);}}if(k==0)printf("输入信息有误:\n");}else if(choice=='3'){printf("请输入需要查找学生的成绩:\n");scanf("%d",&xx);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数----英语----计算机----\t\n");for(i=0;i<shuliang;i++){if(xx==student[i].grade){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[i].jis uanji);}}if(k==0)printf("输入信息有误:\n");}fhzjm();}void PaiXu(){struct student *p1[N],**p2,*temp;int i,j;system("CLS");p2=p1;for( i=0;i<shuliang;i++){p1[i]=student+i;}for( i=0;i<shuliang;i++){for( j=i+1;j<shuliang;j++){if((*(p2+i))->sum<(*(p2+j))->sum){temp=*(p2+i);*(p2+i)=*(p2+j);*(p2+j)=temp;} }}printf("按照总成绩排序之后的信息为:\n");printf("----学号----姓名----总成绩----\t\n");for( i=0;i<shuliang;i++){student[i].sum=student[i].gaoshu+student[i].yingyu+student[i].jisuan ji;printf("----%d-----%s----%d-----\n",(*(p2+i))->number,(*(p2+i))->name,(*(p2+i))->sum);}fhzjm();}void CunChu(){int i;FILE *rs;if((rs=fopen("student.txt","w"))==NULL){printf("not open");exit(0);}for(i=0;i<shuliang;i++){fwrite(&student[i], sizeof(student[i]), 1, rs); }if(ferror(rs)){fclose(rs);perror("写文件失败~\n");return;}printf("存储文件成功~\n");fclose(rs);fhzjm();}void DaoChu(){struct student t;int i=0;FILE* fp = fopen("student.txt", "r");shuliang=0;if(NULL==fp){perror("读取文件打开失败~\n");return;}memset(student,0x0,sizeof(student));while(1){fread(&t,sizeof(t),1,fp);if(ferror(fp)){fclose(fp);perror("读文件过程失败~\n");return;}if(feof(fp)){break;}student[i]=t;i++;}fclose(fp);shuliang=i; printf("导出文件成功~\n"); fhzjm();}void menu(){int n=0;system("CLS");printf(" 学生信息管理系统\n");printf(" 作者:陈椿\n");printf("-------------------MENU-----------------\n"); printf(" 1.登记学生信息\n");printf(" 2.删除学生信息\n");printf(" 3.浏览所有已经登记的学生\n");printf(" 4.查找\n");printf(" 4.1按学号查找\n");printf(" 4.2按姓名查找\n");printf(" 4.3按成绩查找\n");printf(" 5.根据总成绩排序\n");printf(" 6.存储到文件\n");printf(" 7.从文件导出\n");printf(" 8.退出系统\n");a: printf(" 请选择:");scanf("%d",&n);switch (n){case 1:DengJi();break;case 2:ShanChu();break;case 3:LiuLan();break;case 4:ChaZhao();break;case 5:PaiXu();break;case 6:CunChu();break;case 7:DaoChu();break;case 8:exit(0);break;default:{printf("请输入1-8之间的数字,谢谢~\n"); goto a;}}}main() {menu();}。

学生管理系统c语言源代码

学生管理系统c语言源代码

学生管理系统c语言源代码学生管理系统c语言源代码#include stdio.h#include dos.h#include string.h#include stdlib.h#include malloc.h#define SIZE 8struct student{char name;char num;int score;float ave;struct student *next;}stu[SIZE],temp,s;void shuru(){int i,j,sum,length,flag=1,a;FILE *fp;while(flag==1){printf(“Define a rangeclass number:");scanf("%d",printf("Input the total number of the class(a):"); scanf("%d",length);if(lengtha)flag=0;}for(i=0;ilength;i++){printf("\n请输入学生的信息:");printf("\n输入姓名:");scanf("%s",stu[i].name);printf("\n输入序号.:");scanf("%s",stu[i].num);printf("\n输入成绩:\n");sum=0;for(j=0;jj++){printf("score %d:",j+1);scanf("%d",stu[i].score[j]);sum+=stu[i].score[j];}stu[i].ave=sum/3.0;}学生管理系统c语言源代码fp=fopen("stu1.txt","w");for(i=0;ilength;i++)if(fwrite(stu[i],sizeof(struct student),1,fp)!=1)printf("File write error\n");fclose(fp);fp=fopen("stu1.txt","r");printf("\name\ NO. score1 score2 score3 sum ave\n");for(i=0;ilength;i++){fread(stu[i],sizeof(struct student),1,fp);printf("%3s%5s%7d%7d%7d%7d%10.2f\n",stu[i].name,stu[i].num,stu[i ].score,stu[i].score,stu[i].score,sum=stu[i].score+stu[i].score+stu[i].score,stu[i].ave);}}void chaxun(){ FILE *fp, *fp1;char n,name;int i,j,k,t,m,flag=1;if((fp=fopen("stu1.txt","r"))==NULL){printf("Can not open the file.");exit(0);}printf("\noriginal data:\n");k=i;printf("\nPlease select the menu(1.number ):"); scanf("%d",switch(m){case 1:printf("\nchaxun number:");scanf("%s",n);for(flag=1,i=0;ii++){if(strcmp(n,stu[i].num)==0){j=i;flag=0;break;}}break;case 2:printf("\nchaxun name:");scanf("%s",name);for(flag=1,i=0;ii++){if(strcmp(name,stu[i].name)==0){j=i;flag=0;break;学生管理系统c语言源代码}}}if(!flag){printf("\nYou can find:\n");fp1=fopen("stu2.txt","w");printf(" name NO. score1 score2 score3ave\n");fwrite(stu[j],sizeof(struct student),1,fp1);printf("%-15s%11s%7d%7d%7d%10.2f",stu[j].name,stu[j].num,stu[j].score,stu[j].score,stu[j].score,stu[j].ave);}else printf("\nNot found!");fclose(fp);fclose(fp1);}xiugai(){ int a;printf("\nplease select the menu(1.CHARU 2.__ ):");scanf("%d",switch(a){case 1:Insert(); break;case 2:Delete(); break;}}Insert(){ FILE *fp;int i,j,t,n;printf("\nNO.:");scanf("%s",s.num);printf("name:");scanf("%s",);printf("score1,score2,score3:");scanf("%d,%d,%d",s.score,s.score,s.score);s.ave=(s.score+s.score+s.score)/3.0;if((fp=fopen("stu1.txt","r"))==NULL){printf("Can not open the file.");exit(0);}printf("\noriginal data:\n");for(i=0;fread(stu[i],sizeof(struct student),1,fp)!=0;i++) {printf("\n%-15s%11s",stu[i].name,stu[i].num);for(j=0;jj++)学生管理系统c语言源代码printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fclose(fp);n=i;for(t=0;stu[t].aves.avett++);printf("\nnow:\n");fp=fopen("stu1.txt","w");for(i=0;ii++){fwrite(stu[i],sizeof(struct student),1,fp);printf("\n%-15s%11s",stu[i].name,stu[i].num);for(j=0;jj++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fwrite(s,sizeof(struct student),1,fp);printf("\n%-15s%11s%7d%7d%7d%10.2f",,s.num,s.score,s.score, s.score,s.ave);for(i=t;ii++){fwrite(stu[i],sizeof(struct student),1,fp);printf("\n%-15s%11s",stu[i].name,stu[i].num);for(j=0;jj++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fclose(fp);}Delete(){ FILE *fp;int i,j,t,n,flag;char number;if((fp=fopen("stu1.txt","rb"))==NULL){printf("Can not open the file.");exit(0);}printf("\noriginal data:");for(i=0;fread(stu[i],sizeof(struct student),1,fp)!=0;i++) {printf("\n%-15s%11s",stu[i].name,stu[i].num);for(j=0;jj++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fclose(fp);n=i;学生管理系统c语言源代码printf("\nInput number deleted:");scanf("%s",number);for(flag=1,i=0;flagii++){if(strcmp(number,stu[i].num)==0){for(t=i;tt++){strcpy(stu[t].num,stu[t+1].num);strcpy(stu[t].name,stu[t+1].name);for(j=0;jj++)stu[t].score[j]=stu[t+1].score[j];stu[t].ave=stu[t+1].ave;}n=n-1;elseprintf("\n Not found!");printf("\nNow,the content of file:\n");fp=fopen("stu1.txt","wb");for(i=0;ii++)fwrite(stu[i],sizeof(struct student),1,fp);fclose(fp);fp=fopen("stu1.txt","r");for(i=0;fread(stu[i],sizeof(struct student),1,fp)!=0;i++)printf("%-15s%11s%7d%7d%7d%10.2f\n",stu[i].name,stu[i].num,stu[i].score, stu[i].score,stu[i].score,stu[i].ave);fclose(fp);}paixu(){FILE *fp;int i,j,n;if((fp=fopen("stu1.txt","r"))==NULL){printf("Can not open the file.");exit(0);}printf("\nfile'stu1.txt':");for(i=0;fread(stu[i],sizeof(struct student),1,fp)!=0;i++) {printf("\n%-15s%11s",stu[i].name,stu[i].num);for(j=0;jj++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fclose(fp);n=i;for(i=0;ii++)for(j=i+1;jj++)学生管理系统c语言源代码if(stu[i].avestu[j].ave){temp=stu[i];stu[i]=stu[j];stu[j]=temp;}printf("\nnow:");fp=fopen("stu1.txt","w");for(i=0;ii++){fwrite(stu[i],sizeof(struct student),1,fp);printf("\n%-15s%11s",stu[i].name,stu[i].num);tongji(){ FILE *fp;int i,j,k,labe1,b;int a5=0;int a6=0;int a7=0;int a8=0;int a9=0; int a10=0; float t;if((fp=fopen("stu1.txt","r"))==NULL){printf("Can not open the file.");exit(0);}printf("\nfile'stu1.txt':");for(i=0;fread(stu[i],sizeof(struct student),1,fp)!=0;i++){printf("\n%-15s%11s",stu[i].name,stu[i].num); for(j=0;jj++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fclose(fp);k=i;for(i=0;ii++){labe1=0;if(stu[i].ave60){labe1++;t=labe1/(float)k*100;}}printf("\nbujigelv:");printf("%f%",t);printf("\n");for(j=0;jj++){a5=0;a6=0;a7=0;a8=0;a9=0;a10=0;k=i;printf("kemu is %d:\n",j);for(i=0;ii++)学生管理系统c语言源代码{b=stu[i].score[j]/10;if(b6)a5++;elseif(b=6b7)a6++;elseif(b=7b8)a7++;elseif(b=8b9)a8++;if(b=9b10)a9++;elseif(b==10)a10++;}printf(" 不及格is %d\n",a5);printf(" 60--69 is %d\n",a6);printf(" 70--79 is %d\n",a7);printf(" 80--89 is %d\n",a8);printf(" 90--99 is %d\n",a9);printf(" 100 is %d\n",a10);}}main(){int a;printf(" ____\n"); printf(" 欢迎进入学生成绩管理系统\n");printf(" ____\n"); while(1){printf("\n选择菜单:\n");printf("\n");printf(" 1.输入 2.查询 3.排序 4.修改 5.统计 6.退出\n"); scanf("%d",switch(a){case 1: shuru();break;case 2: chaxun(); break;case 3: paixu(); break;case 4: xiugai(); break;学生管理系统c语言源代码case 5: tongji();break; case 6: exit(0); }。

银行卡管理系统C语言实现

银行卡管理系统C语言实现

银⾏卡信息包括:卡号、持卡⼈姓名、身份证号码、密码、标志该卡是否启⽤、账户⾦额、积分、收⽀记录等。

制卡指申请⼀张新的银⾏卡。

账户信息存储到账户信息⽂件中,当制作⼀新卡时,就把该新卡追加到账户信息⽂件。

⼀个⼈可以有多张卡。

实现对账户各项信息的查询。

实现卡⾦融交易积分功能。

实现卡报表功能。

读账户信息⽂件,分屏输出所有账户的帐号和交易⾦额。

#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX_ACCOUNTS 1000#define FILENAME "accounts.txt"struct Account {char card_number[20];char name[50];char id_number[20];char password[20];int enabled;double balance;int points;char transactions[1000];};struct Account accounts[MAX_ACCOUNTS];int num_accounts = 0;void load_accounts() {FILE *file = fopen(FILENAME, "r");if (file != NULL) {while (fscanf(file, "%s %s %s %s %d %lf %d %s",accounts[num_accounts].card_number,accounts[num_accounts].name,accounts[num_accounts].id_number,accounts[num_accounts].password,&accounts[num_accounts].enabled,&accounts[num_accounts].balance,&accounts[num_accounts].points,accounts[num_accounts].transactions) != EOF) {num_accounts++;}fclose(file);}}void save_accounts() {FILE *file = fopen(FILENAME, "w");if (file != NULL) {for (int i = 0; i < num_accounts; i++) {fprintf(file, "%s %s %s %s %d %lf %d %s\n",accounts[i].card_number,accounts[i].name,accounts[i].id_number,accounts[i].password,accounts[i].enabled,accounts[i].balance,accounts[i].points,accounts[i].transactions);}fclose(file);}}void create_account() {struct Account account;printf("Enter card number: ");scanf("%s", account.card_number);printf("Enter name: ");scanf("%s", );printf("Enter ID number: ");scanf("%s", account.id_number);printf("Enter password: ");scanf("%s", account.password);account.enabled = 1;account.balance = 0;account.points = 0;account.transactions[0] = '\0';accounts[num_accounts] = account;num_accounts++;save_accounts();printf("Account created successfully.\n");}void show_account() {char card_number[20];printf("Enter card number: ");scanf("%s", card_number);struct Account *account = NULL;for (int i = 0; i < num_accounts; i++) {if (strcmp(accounts[i].card_number, card_number) == 0) { account = &accounts[i];break;}}if (account == NULL) {printf("Account not found.\n");return;}printf("Card number: %s\n", account->card_number);printf("Name: %s\n", account->name);printf("ID number: %s\n", account->id_number);printf("Enabled: %d\n", account->enabled);printf("Balance: %.2lf\n", account->balance);printf("Points: %d\n", account->points);printf("Transactions:\n%s\n", account->transactions);}void print_all_accounts() {printf("Card number\tBalance\tTransactions\n");for (int i = 0; i < num_accounts; i++) {printf("%s\t%.2lf\t%s\n",accounts[i].card_number,accounts[i].balance,accounts[i].transactions);}}struct Account *find_account(char *card_number) {for (int i = 0; i < num_accounts; i++) {if (strcmp(accounts[i].card_number, card_number) == 0) { return &accounts[i];}}return NULL;}void deposit() {char card_number[20];double amount;printf("Enter card number: ");scanf("%s", card_number);struct Account *account = find_account(card_number);if (account == NULL) {printf("Account not found.\n");return;}printf("Enter amount: ");scanf("%lf", &amount);account->balance += amount;sprintf(account->transactions + strlen(account->transactions), "Deposit: +%.2lf\n", amount);save_accounts();printf("Deposit completed successfully.\n");}void withdraw() {char card_number[20];double amount;printf("Enter card number: ");scanf("%s", card_number);struct Account *account = find_account(card_number);if (account == NULL) {printf("Account not found.\n");return;}printf("Enter amount: ");scanf("%lf", &amount);if (amount > account->balance) {printf("Insufficient balance.\n");return;}account->balance -= amount;sprintf(account->transactions + strlen(account->transactions),"Withdrawal: -%.2lf\n", amount);save_accounts();printf("Withdrawal completed successfully.\n");}void transfer() {char sender_card_number[20];char receiver_card_number[20];double amount;printf("Enter sender's card number: ");scanf("%s", sender_card_number);struct Account *sender_account = find_account(sender_card_number);if (sender_account == NULL) {printf("Sender's account not found.\n");return;}printf("Enter receiver's card number: ");scanf("%s", receiver_card_number);struct Account *receiver_account = find_account(receiver_card_number); if (receiver_account == NULL) {printf("Receiver's account not found.\n");return;}printf("Enter amount: ");scanf("%lf", &amount);if (amount > sender_account->balance) {printf("Insufficient balance.\n");return;}sender_account->balance -= amount;receiver_account->balance += amount;sprintf(sender_account->transactions + strlen(sender_account->transactions),"Transfer to %s: -%.2lf\n", receiver_card_number, amount);sprintf(receiver_account->transactions + strlen(receiver_account->transactions), "Transfer from %s: +%.2lf\n", sender_card_number, amount);save_accounts();printf("Transfer completed successfully.\n");}void add_points() {char card_number[20];int points;printf("Enter card number: ");scanf("%s", card_number);struct Account *account = find_account(card_number);if (account == NULL) {printf("Account not found.\n");return;}printf("Enter points to add: ");scanf("%d", &points);account->points += points;save_accounts();printf("Points added successfully.\n");}void print_report() {printf("Card number\tName\tBalance\tPoints\n");for (int i = 0; i < num_accounts; i++) {printf("%s\t%s\t%.2lf\t%d\n",accounts[i].card_number,accounts[i].name,accounts[i].balance,accounts[i].points);}}int main() {load_accounts();while (1) {int choice;printf("\n1. Create account\n");printf("2. Show account details\n");printf("3. Show all accounts\n");printf("4. Deposit\n");printf("5. Withdraw\n");printf("6. Transfer\n");printf("7. Add points\n");printf("8. Print report\n");printf("9. Exit\n");printf("Enter your choice: ");scanf("%d", &choice);switch (choice) {case 1:create_account();break;case 2:show_account();break;case 3:print_all_accounts();break;case 4:deposit();break;case 5:withdraw();break;case 6:transfer();break;case 7:add_points();break;case 8:print_report();break;case 9:printf("Exiting...\n");return 0;default:printf("Invalid choice.\n"); }}}。

学生管理系统 C语言代码

学生管理系统 C语言代码

#include"stdio.h"#include"stdlib.h"#include"string.h"struct stu_info1{char num[13];//学号char name[10];//姓名char sex[5];//性别char cls[20];//班级}stu1[6];struct stu_info2{char counum[6];//课程号char counam[20];//课程名称int credit;//学分}stu2[6];struct stu_info3{char num[13];//学号char counum[6];//课程号float results;//分数}stu3[12];struct stu_info4{char num[13];//学号char counum[6];//课程号float results;//分数}stu4[12];int n=11;void main(){void gengxin();void input1();void input2();void input3();void output();void xianshi();void chaxun();void printf1();void printf2();input1();input2();output();int i;loop: ;printf("*************欢迎使用分数查询系统*************\n");printf("** 请选择**\n");printf("** 1.录入2.删除无用信息(管理员功能) **\n");printf("** 3.显示4.查询(学生功能) **\n");printf("** 5.显示学生信息6.显示课程信息**\n");printf("** 7.退出**\n");printf("**********************************************\n");scanf("%d",&i);switch(i){case 1: input3();break;case 2:gengxin();break;case 3:xianshi();goto loop;case 4: chaxun();goto loop;case 5: printf1();goto loop;case 6: printf2();goto loop;case 7:break;default:printf("error");break;}}void input1()//录入结构体stu1[]{int i;FILE *fp;if((fp=fopen("A.txt","r"))==NULL){printf("can not open file\n");exit(0);}/* printf(" 学号姓名性别班级\n");*/for(i=0;i<=5;i++){fscanf(fp,"%s%s%s%s",&stu1[i].num,&stu1[i].name,&stu1[i].sex,&stu1[i].cls);/*printf("%-13s %-10s %-5s %-20s\n",stu1[i].num,stu1[i].name,stu1[i].sex,stu1[i] .cls);*/}fclose(fp);}void input2()//录入结构体stu2[]{int i;FILE *fp;if((fp=fopen("B.txt","r"))==NULL){printf("can not open file\n");exit(0);}for(i=0;i<=5;i++){fscanf(fp,"%s%s%d",&stu2[i].counum,&stu2[i].counam,&stu2[i].credit);}fclose(fp);}void input3()//录入成绩{FILE *fp;fp=fopen("C.txt","w");int a,i,j,k;float cetss;char number[13],cnum[6],mima[10];printf("请输入管理员密码\n");scanf("%s",mima);if(strcmp(mima,"abc111")==0){printf("请输入要录入学生成绩的个数\n");scanf("%d",&a);for(i=1;i<=a;i++){printf("请输入要录入的第%d同学的学号:",i);scanf("%s",number);printf("请输入要录入的第%d同学的课程号:",i);scanf("%s",cnum);for(j=0;j<=5;j++)//学号{if((strcmp(number,stu1[j].num)==0))break;}if(j<=5){for(k=0;k<=5;k++)//课程号{if(strcmp(cnum,stu2[k].counum)==0){printf("请输入要录入同学的成绩:");scanf("%f",&cetss);fprintf(fp,"%s %s %f\n",number,cnum,cetss);break;}}}if(j>5||k>5){printf("Error,please input again");i=i-1;}printf("录入成功\n");}}else{printf("密码错误\n");}}void output()// 录入结构体stu3[]{int i;FILE *fp=fopen("C.txt","r");for(i=0;i<n;i++){fscanf(fp,"%s%s%f",&stu3[i].num,&stu3[i].counum,&stu3[i].results);/*printf("%s%s%f\n",stu3[i].num,stu3[i].counum,stu3[i].results);*/ }fclose(fp);}void xianshi()// 显示成绩{int i,j;for(i=0;i<n;i++){for(j=0;j<6;j++){if((strcmp(stu3[i].num,stu1[j].num))==0)printf("%s\t",stu1[j].name);}for(j=0;j<6;j++){if(strcmp(stu3[i].counum,stu2[j].counum)==0)printf("%s\t",stu2[j].counam);}printf("%3.1f\n",stu3[i].results);}}void chaxun()//查询功能{char number[13],c;int i,j,k,a,b,d;while((c=getchar())!='Q'){a=0,b=0;//a记录学分b记录学科printf("请输入要查询同学的学号\n");scanf("%s",number);for(i=0;i<n;i++){if(strcmp(number,stu3[i].num)==0){printf("学号:%s\t",stu3[i].num);for(j=0;j<6;j++){if(strcmp(stu3[i].num,stu1[j].num)==0){printf("姓名:%s\n",stu1[j].name);}}break;}}d=i;for(i=0;i<n;i++)if(strcmp(number,stu3[i].num)==0){b=b+1;for(j=0;j<6;j++){if(strcmp(stu3[i].num,stu1[j].num)==0){for(k=0;k<6;k++){if(strcmp(stu3[i].counum,stu2[k].counum)==0)break;}break;}}if(stu3[i].results>=60){a=a+stu2[k].credit;printf("课程号:%s\t课程名称:%s\t成绩:%3.1f\t实得学分:%d\n",stu3[i].counum,stu2[k].counam,stu3[i].results,stu2[k].credit);}elseprintf("课程号:%s\t课程名称:%s\t成绩:%3.1f\t实得学分:%d\n",stu3[i].counum,stu2[k].counam,stu3[i].results,0);}if(d<n){printf("共修%d科\t\t实得总学分:%d\n",b,a);}else{printf("学号输入错误\n");}getchar();printf("退出请按Q+回车,继续查询请按回车键");}}void gengxin()//更新信息,删除C.txt中无用信息{FILE *fp;int i,j,k;char mima[10];printf("请输入管理员密码\n");scanf("%s",mima);if(strcmp(mima,"abc111")==0){fp=fopen("C.txt","w");for(i=0;i<n;i++){for(j=0;j<6;j++)if(strcmp(stu3[i].num,stu1[j].num)==0){for(k=0;k<=5;k++)if(strcmp(stu3[i].counum,stu2[k].counum)==0)break;if(k<=5){fprintf(fp,"%s %s %f\n",stu3[i].num,stu3[i].counum,stu3[i].results);}}}printf("更新C.txt成功\n");fclose(fp);}else{printf("密码错误\n");}}void printf1()//显示学生信息{int i;printf(" 学号姓名性别班级\n");for(i=0;i<=5;i++){printf("%-13s%-10s%-5s %-20s\n\n",stu1[i].num,stu1[i].name,stu1[i].sex,stu1[i].cls);}}void printf2()//显示课程信息{int i;printf(" 课程编号课程名称学分\n");for(i=0;i<=5;i++){printf("%-6s%-20s %-4d\n\n",stu2[i].counum,stu2[i].counam,stu2[i].credit);}}。

c语言课程设计教务管理系统

c语言课程设计教务管理系统

c语言课程设计教务管理系统一、教学目标本课程的目标是使学生掌握C语言的基本语法、数据结构、算法和编程思想,能够运用C语言设计和实现简单的教务管理系统。

具体分为以下三个部分:1.知识目标:学生需要掌握C语言的基本语法、数据结构、算法和编程思想,了解教务管理系统的原理和实现方法。

2.技能目标:学生能够运用C语言进行编程,设计和实现一个简单的教务管理系统。

3.情感态度价值观目标:培养学生对计算机科学的兴趣和热情,提高学生的问题解决能力和创新意识。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、算法和编程思想,以及教务管理系统的原理和实现方法。

具体安排如下:1.C语言的基本语法:包括变量、数据类型、运算符、表达式、控制语句等。

2.数据结构:包括数组、链表、栈、队列等。

3.算法:包括排序算法、查找算法等。

4.编程思想:包括结构化编程、面向对象编程等。

5.教务管理系统的原理和实现方法:包括学生信息管理、课程信息管理、成绩管理等。

三、教学方法本课程的教学方法主要包括讲授法、讨论法、案例分析法和实验法。

具体安排如下:1.讲授法:用于讲解C语言的基本语法、数据结构、算法和编程思想。

2.讨论法:用于讨论教务管理系统的原理和实现方法。

3.案例分析法:通过分析典型的教务管理系统案例,让学生了解和掌握教务管理系统的实现方法。

4.实验法:让学生动手实践,设计和实现一个简单的教务管理系统。

四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。

具体安排如下:1.教材:选用《C程序设计语言》作为主要教材,辅助以《C语言编程实例解析》等参考书。

2.多媒体资料:包括PPT课件、教学视频等。

3.实验设备:包括计算机、网络设备等,用于实验和实践教学。

五、教学评估本课程的评估方式包括平时表现、作业和考试。

具体安排如下:1.平时表现:通过课堂参与、提问、讨论等环节评估学生的学习态度和积极性。

2.作业:布置适量的作业,评估学生的理解和应用能力。

C语言程序设计个人财务管理系统

C语言程序设计个人财务管理系统

C语言程序设计个人财务管理系统个人财务管理系统是一款帮助个人进行财务管理和分析的软件,能够帮助用户记录、分类、统计和分析个人的收入和支出。

本文将介绍一个使用C语言编写的简单个人财务管理系统。

首先,我们需要定义几个结构体来表示财务记录和分类信息:```c//定义财务记录结构体struct financial_recordint id; // 编号int year; // 年份int month; // 月份int day; // 日期char type[20]; // 类型double amount; // 金额};//定义分类信息结构体struct categorychar name[20]; // 分类名称double total; // 总金额int count; // 记录数量};//定义财务管理系统结构体struct financial_management_systemstruct financial_record records[100]; // 财务记录数组struct category categories[10]; // 分类信息数组int record_count; // 记录数量};```接下来,我们可以实现几个基本的功能,如添加记录、删除记录、查询记录和分类汇总等:```c//添加财务记录void add_record(struct financial_management_system *system) printf("请输入年份:");scanf("%d", &(system->records[system->record_count].year));//省略其他输入信息的代码printf("请输入金额:");scanf("%lf", &(system->records[system->record_count].amount));system->record_count++;//删除财务记录void delete_record(struct financial_management_system*system, int id)for (int i = 0; i < system->record_count; i++)if (system->records[i].id == id)for (int j = i; j < system->record_count - 1; j++)system->records[j] = system->records[j + 1];}system->record_count--;break;}}//查询财务记录void query_record(struct financial_management_system system, int year, int month, int day)for (int i = 0; i < system.record_count; i++)if (system.records[i].year == year &&system.records[i].month == month &&system.records[i].day == day)printf("编号:%d\n", system.records[i].id);//输出其他信息的代码}}//分类汇总void summarize_category(struct financial_management_system system)for (int i = 0; i < system.record_count; i++)//查找分类信息是否存在int category_index = -1;for (int j = 0; j < 10; j++)if (strcmp(system.records[i].type, system.categories[j].name) == 0)category_index = j;break;}}//如果分类信息不存在,则添加分类信息if (category_index == -1)strcpy(system.categories[system.category_count].name, system.records[i].type);system.categories[system.category_count].count = 1;system.categories[system.category_count].total = system.records[i].amount;system.category_count++;} elsesystem.categories[category_index].count++;system.categories[category_index].total +=system.records[i].amount;}}for (int i = 0; i < system.category_count; i++)printf("分类:%s\t总金额:%lf\t记录数量:%d\n",system.categories[i].name,system.categories[i].total,system.categories[i].count);}```最后,我们可以编写主函数来完成用户和系统的交互:```cint maistruct financial_management_system system; system.record_count = 0;system.category_count = 0;while (1)printf("\n请选择操作:\n");printf("1. 添加记录\n");printf("2. 删除记录\n");printf("3. 查询记录\n");printf("4. 分类汇总\n");printf("0. 退出\n");int choice;scanf("%d", &choice);switch (choice)case 1:add_record(&system);break;case 2:printf("请输入要删除的记录编号:");int id;scanf("%d", &id);delete_record(&system, id);break;case 3:printf("请输入查询的日期(年月日):"); int year, month, day;scanf("%d %d %d", &year, &month, &day); query_record(system, year, month, day); break;case 4:summarize_category(system);break;case 0:return 0;default:printf("无效的操作!\n");break;}}```通过以上代码,我们实现了一个简单的个人财务管理系统。

C语言学生管理系统(绍兴文理学院可用)

C语言学生管理系统(绍兴文理学院可用)

上机内容:学生成绩管理姓名:陈雯学号:11101105姓名:吴立立学号:11101129一、上机内容:w1.有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号、姓名、三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。

w2.将上题“stud”文件中的学生数据,按平均分进行排序处理,将已排序的学生数据存入一个新文件“stu-sort”中。

w3.将上题已排序的学生成绩文件进行插入处理。

插入一个学生的三门课成绩。

程序先计算新插入学生的平均成绩,然后将它按成绩高低顺序插入,插入后建立一个新文件。

w学生的原有数据为:w91101 Wang 89,98,67.5w91103 Li 60,80,90w91106 Fun 75.5,91.5,99w91110 Ling 100,50,62.5w91113 Yuan 58,68,71w要插入的学生数据为:w91108 Xin 90,95,60利用printf( )函数和switch( )函数来分别输出学生的学号、班级和各科成绩和及格情况。

在做学生的排名和成绩平均值时要用到自定义函数和数组的知识。

在学生管理系统中插入一个学生然后再进行排名(冒泡法、选择法), 可以用折半查找的方法来完成二、源程序#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<string.h>#include<iostream>#include<iomanip>#include<windows.h>using namespace std;int COUNT[100];struct Student //定义学生结构体{int xuehao;char name[20];int age;int computer;int math;int english;}students[100];int geshu=0; //学生的个数void inter_face(char *menu_item){system("color F0");system("cls");printf(" oooooooooooooooooooooooooooooooooooo\n");printf(" ******** 欢迎来到数理信息学院学生成绩管理系统 ********\n");printf(" oooooooooooooooooooooooooooooooooooo\n");printf("\n \t\t<< %s >>\n\n",menu_item);}void return_tip(){printf("\n\t按任意键可返回系统最初界面……!!\n");getch();}void student_information() //输入学生的基本信息(学号、姓名、年龄){inter_face("录入学生基本信息");for(;;){printf("\t学生学号、姓名、年龄 :");scanf("%d%s%d",&students[geshu].xuehao,students[geshu].name,&students[geshu].age);cout<<"\t****************************************"<<endl;cout<<"\t 亲,返回可继续插入哦! "<<endl;cout<<"\t****************************************"<<endl;geshu++;if(students[geshu].xuehao==0) break;printf("\n");}return_tip();}int search_xuehao(){int n,i;printf("请输入学生的学号:");scanf("%d",&i);for(n=0;n<geshu;n++){if(students[n].xuehao==i&&students[n].xuehao!=0){printf("学号:%d\n",students[n].xuehao);printf("姓名:%s\n",students[n].name);printf("年龄:%d\n",students[n].age);return n;}}printf("\n您输入学号不存在或重复错误.\n");system("color 40");return -1;}void input_score(){int n;inter_face("输入学生成绩");printf("\n请分别输入学生的计算机、数学、英语成绩:\n"); //输入学生的成绩for(n=0;n<geshu;n++){if(students[n].xuehao!=0){printf("学号:%d 姓名:%s 成绩:",students[n].xuehao,students[n].name);scanf("%d%d%d",&students[n].computer,&students[n].math,&students[n].english);cout<<"~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~"<<endl;}}return_tip();}void modify_score(){int n;inter_face("修改学生成绩");if((n=search_xuehao())!=-1){printf("计算机:%d 数学:%d 英语:%d\n",students[n].computer,students[n].math,students[n].english);printf("\n请重新输入成绩:\n计算机:");scanf("%d",&students[n].computer);printf("数学:");scanf("%d",&students[n].math);printf("英语:");scanf("%d",&students[n].english);cout<<" O(∩_∩)O~ 恭喜你成功修改学生成绩!"<<endl;}return_tip();}void Insert_score(Student students[]) //插入一条学生信息。

C语言实现超市管理系统

C语言实现超市管理系统

C语⾔实现超市管理系统本⽂实例为⼤家分享了C语⾔实现超市管理系统的具体代码,供⼤家参考,具体内容如下超市管理系统1.包括管理员和顾客2.管理员有登⼊,录⼊商品信息,显⽰所有商品信息功能3.顾客有购物车和结算功能4.购物车具有显⽰商品列表,显⽰购物车商品,往购物车添加商品的功能函数void UpdateKu();//更新购物车信息函数void calculate();//计算所购商品价格并修改保存int menu1();//打印主菜单函数int menu2();//打印管理员菜单函数int menu3();//打印顾客函数void CreateGoods();//录⼊商品信息函数void ShowGoods();//显⽰库存信息函数void ShopCart();//对购物车进⾏操作int ShopCartMenu();//打印购物车菜单void ShowCart();//显⽰购物列表void add();//在购物车⾥添加商品建⽴库存函数void CreateGoods(){//⼿动建⽴库存信息FILE *fp;//定义⽂件指针int i;printf("请输⼊需要录⼊的商品个数:\n");scanf("%d",&n);//输⼊数量printf("请依次输⼊货物信息:\n");printf("--------------------------------------------\n");for(i=0;i<n;i++){//向⽂件中写⼊信息printf("第%d个商品:\n",i+1);printf("货号:");fflush(stdin);//清空输⼊流gets(goods[i].ID);//输⼊货号printf("品名:");fflush(stdin);//清空输⼊流gets(goods[i].brand);//输⼊品名printf("进价: ");fflush(stdin);//清空输⼊流scanf("%lf",&goods[i].inprice);//输⼊进价printf("售价:");fflush(stdin);//清空输⼊流scanf("%lf",&goods[i].outprice);//输⼊售价printf("数量:");fflush(stdin);//清空输⼊流scanf("%d",&goods[i].storage);//输⼊数量printf("保质期:");fflush(stdin);//清空输⼊流gets(goods[i].date);//输⼊货号printf("\n");}if((fp=fopen("kucun.txt","w"))==NULL){//判断⽂件是否创建失败printf("创建⽂件失败。

简单的c语言程序设计班级通讯录管理系统

简单的c语言程序设计班级通讯录管理系统

简单的c语言程序设计班级通讯录管理系统一、引言班级通讯录管理系统是一款基于C语言的简单程序,旨在帮助班级管理者更好地管理班级通讯录信息。

本文将从需求分析、系统设计、代码实现等方面详细介绍该系统。

二、需求分析1. 功能需求(1)添加联系人:可以添加新的联系人信息,包括姓名、性别、电话号码等。

(2)删除联系人:可以删除已有的联系人信息。

(3)修改联系人:可以修改已有的联系人信息,包括姓名、性别、电话号码等。

(4)查询联系人:可以根据姓名或电话号码查询已有的联系人信息。

(5)显示所有联系人:可以查看当前所有已有的联系人信息。

2. 性能需求(1)稳定性:程序应该具有较高的稳定性,不会因为输入错误或其他异常情况导致崩溃。

(2)响应速度:程序应该具有较快的响应速度,不会因为数据量过大或其他原因导致卡顿或延迟。

3. 可靠性需求(1)数据安全:程序应该具有较高的数据安全性,保证用户输入的数据不会被损坏或丢失。

(2)用户友好性:程序应该具有较好的用户友好性,使用户能够轻松使用。

三、系统设计1. 总体设计(1)系统结构:本系统采用单层结构,包含若干个函数模块。

(2)数据结构:本系统采用链表数据结构,将每个联系人信息存储在一个节点中,并通过指针将各个节点连接起来。

(3)界面设计:本系统采用命令行界面,用户可以通过输入不同的命令实现不同的功能。

2. 模块设计(1)添加联系人模块:该模块用于添加新的联系人信息,包括姓名、性别、电话号码等。

用户需要输入相应的信息后,程序将新建一个节点并将其插入到链表中。

(2)删除联系人模块:该模块用于删除已有的联系人信息。

用户需要输入要删除的联系人姓名或电话号码后,程序将在链表中查找相应节点并将其删除。

(3)修改联系人模块:该模块用于修改已有的联系人信息。

用户需要输入要修改的联系人姓名或电话号码后,程序将在链表中查找相应节点并允许用户修改其中的信息。

(4)查询联系人模块:该模块用于根据姓名或电话号码查询已有的联系人信息。

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

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

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

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

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

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

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

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

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

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

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

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

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

C语言程序的设计医院信息管理系统附源代码

C语言程序的设计医院信息管理系统附源代码

C语言程序的设计医院信息管理系统附源代码一、引言医院信息管理系统是一个用于管理医院内部各项业务的软件系统。

它能够帮助医院实现患者信息管理、医生排班管理、药品库存管理等功能。

本文将介绍如何使用C语言设计一个简单的医院信息管理系统,并提供相应的源代码。

二、系统功能需求1. 患者信息管理:包括患者基本信息的录入、查询和修改功能,如姓名、性别、年龄、联系方式等。

2. 医生排班管理:包括医生信息的录入、查询和修改功能,如姓名、专业、职称等,并能够根据日期查询医生的排班情况。

3. 挂号管理:包括患者挂号、退号和查询挂号信息的功能,如挂号日期、挂号费用等。

4. 病历管理:包括患者病历的录入、查询和修改功能,如病历编号、病历内容等。

5. 药品库存管理:包括药品信息的录入、查询和修改功能,如药品名称、库存数量、进货价格等,并能够根据药品名称查询库存情况。

6. 药品销售管理:包括药品销售、退货和查询销售信息的功能,如销售日期、销售数量、销售金额等。

三、系统设计1. 数据结构设计在设计医院信息管理系统时,我们可以使用结构体来表示患者、医生、挂号、病历和药品等相关信息。

例如,可以定义如下结构体:```ctypedef struct {char name[20];char gender[10];int age;char contact[20];} Patient;typedef struct {char name[20];char specialty[20];char title[20];} Doctor;typedef struct {char date[20];int fee;} Registration;typedef struct {int id;char content[100];} MedicalRecord;typedef struct {char name[20];int quantity;float price;} Drug;```2. 功能模块设计根据系统功能需求,我们可以将系统划分为以下几个功能模块:- 患者信息管理模块:实现患者信息的录入、查询和修改功能。

基于C语言实现个人通讯录管理系统

基于C语言实现个人通讯录管理系统

基于C语⾔实现个⼈通讯录管理系统之前利⽤C语⾔完成了⼀个关于个⼈通讯录管理系统的课题,主要是关于联系⼈的添加、查找、删除、修改、输出以及⽂件的写⼊与读出,还有⼀个甜点功能—模拟通话,它的实现原理也很容易理解,⽂章末尾会介绍到。

主框架:1、函数声明关于这⾥的函数声明,主要是为了可以清楚的了解整个系统的功能,这⾥不做过多介绍。

还有结构体链表的创建,贯穿了各个功能代码部分,必不可少。

2、联系⼈的添加这部分主要涉及联系⼈的姓名、地址、电话、QQ号和邮箱(当然需要其他功能可⾃⾏添加),考虑到数组操作不便前提下,使⽤链表的尾插法,通过不断开创新的结点,然后不断将新的结点的地址指向尾结点,使尾结点不断后移,⽽新创的结点时按照添加的先后顺序进⾏连接(参考下图可快速理解,此图⽚来源于⽹络),当然其中某些项的条件限制也是必不可少的。

⽐如:电话、QQ号、邮箱int Addpeo() //添加联系⼈{int t,n,a;char flag='y'; //仅作为第⼀次执⾏条件ptcs p=head,q;while(flag!='n'&&flag!='N') //判断是否继续添加{q=(ptcs)malloc(sizeof(pcs)); //申请内存p->next=q; //赋予下⼀个节点p=q;q->next=NULL; //尾结点地址赋空值,尾插法printf("\n\t请输⼊:\n");printf("\t\t姓名:");scanf("\t\t%s",q->);printf("\t\t地址:");scanf("\t\t%s",q->chat.add);printf("\t\t⼿机号:");scanf("\t\t%s",q->chat.tel);do{n=0; //仅做记录if(strlen(q->chat.tel)!=11) //计算⼿机号的长度,判断是否输⼊规范 {n=1;printf("\t\t您输⼊的⼿机号格式不存在,请重新输⼊:");scanf("\t\t%s",q->chat.tel);}else{for(t=0;t<11;t++){if(q->chat.tel[t]<'0'||q->chat.tel[t]>'9'){n=1;printf("\t\t您输⼊的⼿机号格式不合理,请重新输⼊:");scanf("\t\t%s",q->chat.tel);break;}}}}while(n);//输⼊QQ号printf("\t\tQQ号:");scanf("\t\t%s",q->chat.tecent);do{n=0;if(strlen(q->chat.tecent)>10) //以10位QQ号为准,判断是否符合规范 {n=1;printf("\t\t您输⼊的QQ号格式不存在,请重新输⼊:");scanf("\t\t%s",q->chat.tecent);}else{for(t=0;t<10;t++){if(q->chat.tecent[t]<'0'||q->chat.tecent[t]>'9'){n=1;printf("\t\t您输⼊的QQ号格式不合理,请重新输⼊:");scanf("\t\t%s",q->chat.tecent);break;}}}}while(n);//输⼊邮箱printf("\t\tEmail:");scanf("\t\t%s",q->chat.email);do{//判断邮箱 @符号输⼊规范(这⾥不限定邮箱号码位数)a=0;for(t=0;q->chat.email[t]!='\0';t++){if(q->chat.email[t]=='@')a++; //@数为1}if(a!=1){printf("\t\t输⼊的邮箱格式不合理,请重新输⼊:");scanf("\t\t%s",q->chat.email);}}while(a!=1); //是否输⼊@ ,为1则终⽌循环printf("\n\t是否继续添加?(Y/N)");scanf("\t%c",&flag);}return 0;}3、联系⼈的查询这步使⽤的是遍历查询,共设置了三种⽅式,在定义链表指针的前提下,通过遍历链表进⾏信息的对⽐,从⽽判断联系⼈是否存在,如果存在就直接显⽰给⽤户,不存在就直接退回功能选项。

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

/****************************************************************************** *************************//****************************************************************************** *************************//*题目十八系统用户管理系统【说明及要求】设系统用户信息(用户代码,用户名,密码,系统身份)存放在一个名为user.txt的文件中,请编写程序实现用户信息的新增、修改密码、删除功能(实现新增和删除时,用户的系统身份必须是“系统管理员”),并能模拟用户的登陆。

如果输入的用户代码和密码在文件中存在,则显示欢迎某某用户登陆的界面和操作菜单(N.新增、M.修改密码、D.删除),以便用户完成相应操作,如果输入错误则提示用户重新输入(最多可以尝试3次)。

【提示】(1)定义一个结构体表示用户信息;(2)分别编写函数实现用户信息的新增、修改密码、删除、用户登陆等功能;(3)用户的尝试登陆的次数要通过一个静态变量实现;(4)编写main函数进行演示。

*//****************************************************************************** *************************//****************************************************************************** *************************/#include<stdio.h>#include<windows.h>#include <stdlib.h>#include<string.h>#include<conio.h>#include <process.h>#define H 100 /*最大允许保存学生信息数*/#define pr printf#define S scanfstruct yonghuxx/*用户信息*/{int daima;//用户代码char sname [17];//用户名char mima[17];//密码char shengf[9]; //系统省份};struct yonghuxx s;int p=0;//普通用户p=0;管理员用户p=1int h;//信息数int u=0;//强制管理员标记,如果系统使用时数据库还没有任何用户信息,则把第一个打开系统的用户设置为管理员权限u=1int xiugai();//修改密码int shanchu();//删除void denglu();//用户登陆int shenqing();//新增,申请账号int fuzhi(char *sFile, char *dFile) ;//将一个文件复制到另一个文件int guanliyuan();/*管理员*/int putongyh();/*普通用户*//****************************************************************************** *************************//****************************************************************************** *************************//*************//***主函数****//*************/main(){char n;char v;//清空缓冲区暂存变量pr("\n\007");for(;;){pr("主菜单:\nD登录;");pr("S申请账号;");//觉得应该允许普通用户申请账号pr("Q退出\n\007");scanf("%c",&n);/* 清空输入流,通过while 循环把输入流中的余留数据“吃”掉*/while ( (v= getchar()) != '\n' && v != EOF ) ;//清空缓冲区if(n=='D')denglu();else if(n=='S')shenqing();else if(n=='Q')break;else pr("输入不正确,请重新输入,(注意区分大小写)");Sleep(1000);system("cls"); /*清屏,stdlib.h中函数*/}pr("你按了Q,系统即将关闭\n");Sleep(1000);/*沉睡1秒,windows.h中的函数*/return 0;}/****************************************************************************** *************************//****************************************************************************** *************************//***************//*****复制******//***************/int fuzhi(char *dFile, char *sFile) //将sFile指向的文件复制到dFile中{FILE *sfp,*dfp;if ((sfp=fopen(sFile,"r"))==NULL)return 0;if ((dfp=fopen(dFile,"w"))==NULL)return 0;while(!feof(sfp)){fscanf(sfp,"%d %s %s %s\n",&s.daima,s.sname,s.mima,s.shengf);fprintf(dfp,"%d %s %s %s\n",s.daima,s.sname,s.mima,s.shengf);}fclose(sfp);fclose(dfp);return(0);}/****************************************************************************** *************************//****************************************************************************** *************************//**************//***用户登录***//**************/void denglu(){FILE *fp;char v;//清空缓冲区暂存变量char c[18],d[18];int e,f,i,j,k=0;if((fp=fopen("user.txt","r"))==NULL||feof(fp)){pr("由于你是第一个进入本系统的用户,\n你自动成为管理员\n请设置自己的管理员账号和密码\n");p=1;u=1;shenqing();guanliyuan();}//自动成为管理员else{for(i=0;i<3;i++){puts("请输入用户名:");scanf("%s",c);while ( (v = getchar()) != '\n' && v!= EOF ) ;//清空缓冲区puts("请输入密码:");scanf("%s",d);while ( (v= getchar()) != '\n' && v != EOF ) ;//清空缓冲区rewind(fp);while(!feof(fp)){j++;fscanf(fp,"%d %s %s %s",&s.daima,s.sname,s.mima,s.shengf);e=strcmp(s.sname,c);f=strcmp(s.mima,d);system("cls"); /*清屏,stdlib.h中函数*/if (e==0,f==0){if(s.daima==1){printf("欢迎管理员%s:\n",s.sname);p=1;guanliyuan();}/*管理员*/else{pr("欢迎%s使用用户管理系统",s.sname);p=0;putongyh();}/*普通用户*/ }elseprintf("用户名或密码错误!请重新输入!!!:\n");}}pr("您的输入次数超过3次,系统关闭");Sleep(2000);/*沉睡2秒,windows.h中的函数*/exit(0);/*关闭系统,process.h*/}}/****************************************************************************** *************************//****************************************************************************** *************************//**************//***申请账号***//**************/int shenqing()//申请账号{char v;//清空缓冲区暂存变量char m[18],a[18],b[18];int i=0,j=0;FILE *fp;if(u==1){s.daima=1;strcpy( s.shengf,"系统管理员");}else{if(p==1){for(;;){pr("申请管理员请输入1,申请普通用户请输入0\n");scanf("%d",&i);if(i==1){s.daima=1;strcpy( s.shengf,"系统管理员");break;}if(i==0){s.daima=0;strcpy( s.shengf,"普通用户");break;}else pr("输入错误,请重新输入");}}if(p==0)/*普通用户权限*/{s.daima=0;strcpy( s.shengf,"普通用户");}}for(;;){j=0;pr("请输入用户名(16个以下字母或数字,注意区分大小写:)\n");scanf("%s",m);while ( (v= getchar()) != '\n' && v != EOF ) ;//清空缓冲区if((fp=fopen("user.txt","r"))==NULL){fp=fopen("user.txt","w");goto lable;}rewind(fp);while(!feof(fp)){fscanf(fp,"%d %s %s %s\n",&s.daima,s.sname,s.mima,s.shengf);if(strcmp(s.sname,m)==0){j=1;break;}}fclose(fp);if(j==1)pr("用户名已存在,请重新输入");elselable: {pr("该用户名可以使用!\n");for(;;){for(;;){pr("请输入密码(6至16个字母或数字,注意区分大小写:):\n");scanf("%s",a);while ( (v= getchar()) != '\n' && v != EOF ) ;//清空缓冲区{for(i=0;i<18;i++)if(a[i]=='\0')break;if(i>=6&&i<=16)break;pr("密码长度不正确,请重新输入\n");}}pr("请再次输入密码\n");scanf("%s",b);while ( (v= getchar()) != '\n' && v != EOF ) ;//清空缓冲区if(strcmp(a,b)==0)break;else pr("您输入的密码与第一次输入不相同,");}fp=fopen("user.txt","at");fprintf(fp,"%d %s %s %s\n",s.daima,m,a,s.shengf);fclose(fp);pr("恭喜你申请账号成功\n你的账号是%s,密码是%s\n请妥善保管你的账号和密码\n\n任意键返回",m,a);getchar();system("cls"); /*清屏,stdlib.h中的函数*/return 0;}}}/****************************************************************************** *************************//****************************************************************************** *************************//****************************************************************************** *************************//****************************************************************************** *************************//*******************//****管理员权限*****//*******************/int guanliyuan(){char v;//清空缓冲区暂存变量char n;pr("\n\007");for(;;){pr("管理员菜单:\nD修改用户信息;X新增;S删除;Q退出\n\007");scanf("%c",&n);while ( (v= getchar()) != '\n' && v != EOF ) ;//清空缓冲区if(n=='D')xiugai();//修改密码else if(n=='X')shenqing();//新增,申请账号else if(n=='S')shanchu();//删除else if(n=='Q')break;else pr("输入不正确,请重新输入,(注意区分大小写)");Sleep(1000);system("cls"); /*清屏,stdlib.h中函数*/}pr("你按了Q,系统即将关闭\n");Sleep(1000);/*沉睡1秒,windows.h中的函数*/return 0;}/*******************//***普通用户权限****//*******************/int putongyh(){char v;//清空缓冲区暂存变量char n;pr("\n\007");for(;;){pr("用户菜单:\nD修改密码;");pr("S申请账号;");//觉得应该允许普通用户申请账号pr("Q退出\n\007");scanf("%c",&n);while ( (v= getchar()) != '\n' && v != EOF ) ;//清空缓冲区if(n=='D')xiugai();//修改密码else if(n=='S')shenqing();//新增,申请账号else if(n=='Q')break;else pr("输入不正确,请重新输入,(注意区分大小写)");Sleep(1000);system("cls"); /*清屏,stdlib.h中函数*/}pr("你按了Q,系统即将关闭\n");Sleep(1000);/*沉睡1秒,windows.h中的函数*/return 0;}int xiugai(){char v;//清空缓冲区暂存变量char *dFile="user.txt";char *sFile="fuser.txt";int a;//用户代码char b[17];//用户名char c[17];//密码char d[9]; //系统省份char e[17];//用户名2char f[17];//密码2int g=0;FILE *sfp,*dfp;if((dfp=fopen(dFile,"r"))==NULL) //打开user.txtreturn 0;if(p=1){strcpy(e,s.sname);pr("请输入你要修改密码的用户名");scanf("%s",b);while ( (v= getchar()) != '\n' && v != EOF ) ;//清空缓冲区while(!feof(dfp)){fscanf(dfp,"%d %s %s %s\n",&s.daima,s.sname,s.mima,s.shengf);if(strcmp(s.sname,b)==0){g=1;break;} //找到所输入的用户名}fclose(dfp); //关闭user.txtif(g==1){pr("没有%s\n\n任意键返回");getchar();return 0;}if(s.daima==1 && strcmp(e,b)!=0){pr("对不起:%s是管理员,你不可以修改对方的资料\n\n任意键返回",a);getchar();return 0;}if(s.daima==1){pr("你现在是管理员,不修改管理权限请输入1,降低管理权限请输入0;\n\n");for(;;){scanf("%d",&a);if(a ==1){pr("你仍然是管理员\n\n");strcpy(d,"系统管理员");break;}else if(a ==0){pr("你将成为普通用户\n\n");strcpy(d,"普通用户");break;}else pr("输入错误,请重新输入\n\n");}}else{pr("%s是普通用户,提高他的管理权限请输入1,否则输入0;\n\n",b);for(;;){scanf("%d",&a );while ( (v= getchar()) != '\n' && v != EOF ) ;//清空缓冲区if(a ==1){pr("%s成为管理员\n\n",s.sname );strcpy(s.shengf ,"系统管理员");break;}else if(a ==0){pr("%s仍然是普通用户\n\n",s.sname );break;}else pr("输入错误,请重新输入\n\n");}}}else{a=0;strcpy(d,"普通用户");}for(;;){pr("现在请输入新密码\n");scanf("%s",c);while ( (v= getchar()) != '\n' && v != EOF ) ;//清空缓冲区pr("请再次输入新密码\n");scanf("%s",f);while ( (v= getchar()) != '\n' && v != EOF ) ;//清空缓冲区if(strcmp(f,c)==0)break;pr("两次输入不相同,请重新输入\n");}fuzhi(sFile,dFile);if((sfp=fopen(sFile,"r"))==NULL)return 0;if((dfp=fopen(dFile,"w"))==NULL)return 0;while(!feof(sfp)){fscanf(sfp,"%d %s %s %s\n",&s.daima,s.sname,s.mima,s.shengf);if(strcmp(s.sname,b)==0){s.daima =a;strcpy(s.mima,c);strcpy(s.shengf,d);}fprintf(dfp,"%d %s %s %s\n",s.daima,s.sname,s.mima,s.shengf);}fclose(dfp);fclose(sfp);pr("恭喜你修改用户信息成功,%s的新密码是%s;系统身份是%s\n\n按任意键返回",b,c,d);getchar();return(0);}int shanchu(){char *dFile="user.txt";char *sFile="fuser.txt";char a[18];FILE *sfp,*dfp;if(p=1){pr("请输入你要删除的用户名");scanf("%s",a);}else strcpy(a,s.sname);fuzhi(sFile,dFile);if ((sfp=fopen(sFile,"r"))==NULL)return 0;if ((dfp=fopen(dFile,"w"))==NULL)return 0;while(!feof(sfp)){fscanf(sfp,"%d %s %s %s\n",&s.daima,s.sname,s.mima,s.shengf);if(strcmp(s.sname,a)==0){continue;}fprintf(dfp,"%d %s %s %s\n",s.daima,s.sname,s.mima,s.shengf);}fclose(sfp);fclose(dfp);pr("恭喜你删除用户%s成功\n\n任意键返回",a);getchar();return(0); }。

相关文档
最新文档