#include <stdioh> /包含输入/输出头文件/
#include <stringh> /包含字符串处理头文件/
#include <stdlibh>
#define MAXSIZE 100 /能够处理的学生总人数,可以随意修改/
typedef struct {/用于存放生日信息的结构体/
int year;
int month;
int day;
}Date;
typedef struct Stud{/用于存放学生信息的结构体/
char Num[12]; /学号/
char Name[10]; /姓名/
char Sex[2]; /性别/
Date Birthday; /出生日期/
float English, DataStructure, CPlusPlus; /三门课成绩/
float Sum, Average; /总成绩、平均成绩/
}Student;
char CurFile[40]; /存放当前正在 *** 作的磁盘文件的文件名/
int IsOpen=0; /当前是否有磁盘文件被打开标志/
int found=0; /在查找学生信息时是否找到标志/
Student stud[MAXSIZE]; /用于存放读入内存中的所有学生信息的全局数组/
int Index=0; /存放实际学生人数的全局变量/
/各自定义函数原型声明/
void Create(); /新建学生信息文件/
void Open(); /打开学生信息文件,并读取学生信息到全局数组stud中/
void Display(); /显示学生信息/
void Search(); /查询学生信息/
int SearchNum(char Num); /按学号查询学生信息/
int SearchName(char Name); /按姓名查询学生信息/
void Append(); /添加学生信息/
void Modify(); /修改学生信息/
void Delete(); /删除学生信息/
void Total(); /统计所有学生某一科目总成绩/
void Sort(); /学生信息排序/
void Backup(); /备份学生信息/
void menu() /系统功能菜单/
{
int choice;/用于保存用户对功能菜单的选择结果/
for( ; ; )
{ /显示系统功能菜单/
printf("\n\n");
printf(" 学生信息管理系统 \n");
printf("\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(" 9.学生信息排序 \n");
printf(" 10.备份学生信息 \n");
printf(" 0.退出系统 \n");
printf("\n");
printf(" 请选择要执行的 *** 作(0~8):_");
scanf("%d", &choice);
switch(choice){
case 1: Create();break;
case 2: Open();break;
case 3: Display();break;
case 4: Search();break;
case 5: Append();break;
case 6: Modify();break;
case 7: Delete();break;
case 8: Total();break;
case 9: Sort();break;
case 10: Backup();break;
case 0: return;
default: printf("选择错误!请重新选择。\n");
}/switch结束/
}/for结束/
}
void ReOrEx()/在用户执行完一项系统功能后,可以选择:是继续运行系统,还是退出系统/
{
int n;
printf("\n\n");
printf(" 1 返回上级菜单 \n");
printf(" 0 退出系统 \n");
printf("\n");
printf(" 请选择(1/0)_");
scanf("%d",&n);
if(n==0)
{
printf("\n\n");
printf(" 谢谢使用本系统! \n");
printf("\n");
exit(1);
}
}
void main()
{
printf("\n");
printf(" 欢迎使用学生信息管理系统! \n");
printf("\n");
system("pause");
menu();/系统功能以菜单的形式提供给用户/
printf("\n\n");
printf(" 谢谢使用本系统! \n");
printf("\n");
}/main函数结束/
/各自定义函数实现代码/
int New(char FileName)//创建磁盘文件
{
FILE fp;
if((fp=fopen(FileName,"w"))==NULL)
{
return 0;
}
else
{
fclose(fp);
Index=0;
return 1;
}
}
void Create()/新建学生信息文件/
{
char FileName[40];
printf("请输入新建文件的名称:");
scanf("%s",&FileName);
if(strcmp(FileName,"studentbackup"))
{
strcat(FileName,"dat");
if(!New(FileName))
printf("%s文件创建失败!\n",FileName);
else
{
strcpy(CurFile,FileName);
printf("%s文件创建成功!\n",FileName);
}
}
else
{
printf("%s是备份文件,禁止创建与此文件同名的文件!\n",FileName);
}
ReOrEx();
}
void Open()/打开学生信息文件/
{
char FileName[40];
printf("请输入要打开的数据文件的名称:");
scanf("%s",&FileName);
if(strcmp(FileName,"studentbackup"))
{
strcat(FileName,"dat");
if(IsOpen==0)
{
FILE fp;
if((fp=fopen(FileName,"rb"))==NULL)
{
printf("%s文件打开失败!\n",FileName);
}
else
{
IsOpen=1;
Index=0;
while(!feof(fp))
{
fread(&stud[Index],sizeof(struct Stud),1,fp);
Index++;
}
Index--;
printf("学生总人数为:%d\n",Index);
fclose(fp);
printf("%s文件打开成功!\n",FileName);
strcpy(CurFile,FileName);
}
}
else
printf("%s文件已经打开!\n",FileName);
}
else
printf("%s是备份文件,禁止打开此文件!\n",FileName);
ReOrEx();
}
void Display()/显示全部学生信息/
{
int i;
if(!strcmp(CurFile,""))
{
printf("当前并未打开或新建文件,无法显示!\n");
}
else
{
printf("\n 显示所有学生成绩信息\n\n");
printf("%--12s%--11s%--5s%--14s%--12s%--15s%--12s%--12s%--12s\n","Num","Name","Sex","Birthday",
"English","DataStructure","CPlusPlus","Sum","Average");
for(i=0;i<Index;i++)
{
printf("%--12s%--11s%--5s%4d/%2d/%2d%102f%152f%122f%122f%122f\n\n",stud[i]Num,
stud[i]Name,stud[i]Sex,stud[i]Birthdayyear,stud[i]Birthdaymonth,
stud[i]Birthdayday,stud[i]English,stud[i]DataStructure,stud[i]CPlusPlus,
stud[i]Sum,stud[i]Average);
}
}
ReOrEx();
}
int SearchNum(char Num)/按学号查询学生信息/
{
int i;
for(i=0;i<Index;i++)
{
if(!strcmp(stud[i]Num,Num))
{
printf("对应此学号的学生信息存在!\n");
found=1;
return i;
}
}
printf("没有此学生的信息!\n");
found=0;
return 0;
}
int SearchName(char Name)/按姓名查询学生信息/
{
int i;
for(i=0;i<Index;i++)
{
if(!strcmp(stud[i]Name,Name))
{
printf("对应此学号的学生信息存在!\n");
found=1;
return i;
}
}
printf("没有此学生的信息!\n");
found=0;
return 0;
}
void Search()/查询学生信息/
{
int n;
int i;
char Num[12];
char Name[10];
if(!strcmp(CurFile,""))
{
printf("当前并未打开或新建文件,无法查询!\n");
}
else
{
printf("\n 查询某一学生信息\n");
printf("\n");
printf(" 1 按学号查询 \n");
printf(" 2 按姓名查询 \n");
printf("\n");
printf(" 请选择(1/2)_");
scanf("%d",&n);
if(n==1)
{
printf("请输入学生学号:\n");
scanf("%s",Num);
i=SearchNum(Num);
}
else if(n==2)
{
printf("请输入学生姓名:\n");
scanf("%s",&Name);
i=SearchName(Name);
}
printf("该学生的具体信息为:\n\n");
printf("%--12s%--11s%--5s%--14s%--12s%--15s%--12s%--12s%--12s\n","Num","Name","Sex","Birthday",
"English","DataStructure","CPlusPlus","Sum","Average");
printf("%--12s%--11s%--5s%4d/%2d/%2d%102f%152f%122f%122f%122f\n\n",stud[i]Num,
stud[i]Name,stud[i]Sex,stud[i]Birthdayyear,stud[i]Birthdaymonth,
stud[i]Birthdayday,stud[i]English,stud[i]DataStructure,stud[i]CPlusPlus,
stud[i]Sum,stud[i]Average);
}
ReOrEx();
}
void AddData()/添加一条学生信息/
{
char Num[12];
char Name[10];
char Sex[2];
int Year,Month,Day;
float English,DataStructure,CPP;
int location;
if(Index>=MAXSIZE)
{
printf("错误! 学生信息已满,不能添加!\n");
}
else
{ printf("执行添加学生信息 *** 作!\n");
printf("\n请输入学生学号:");
scanf("%s",Num);
location=SearchNum(Num);
if (!found)
{
printf("可以进行添加 *** 作!\n");
printf("\n请输入学生姓名:");
scanf("%s",Name);
printf("\n请输入学生性别:");
scanf("%s",&Sex);
printf("\n请输入学生出生年份:");
scanf("%d",&Year);
printf("\n请输入学生出生月份:");
scanf("%d",&Month);
printf("\n请输入学生出生日:");
scanf("%d",&Day);
printf("\n请输入学生英语成绩:");
scanf("%f",&English);
printf("\n请输入学生数据结构成绩:");
scanf("%f",&DataStructure);
printf("\n请输入学生C++成绩:");
scanf("%f",&CPP);
printf("\n");
strcpy(stud[Index]Num,Num);
strcpy(stud[Index]Name,Name);
strcpy(stud[Index]Sex,Sex);
stud[Index]Birthdayyear=Year;
stud[Index]Birthdaymonth=Month;
stud[Index]Birthdayday=Day;
stud[Index]English=English;
stud[Index]DataStructure=DataStructure;
stud[Index]CPlusPlus=CPP;
stud[Index]Sum=English+DataStructure+CPP;
stud[Index]Average=stud[Index]Sum/3;
Index++;
printf("插入一条学生信息 *** 作成功!\n");
}
else printf("不能进行添加学生信息 *** 作!\n");
}
}
void Save(char FileName)/学生信息存盘/
{
FILE fp;
int i;
if((fp=fopen(FileName,"wb"))==NULL)
{
printf("文件打开失败!");
return;
}
for(i=0;i<Index;i++)
{
fwrite(&stud[i],sizeof(struct Stud),1,fp);
}
fclose(fp);
}
void Append()/添加学生信息/
{
if(!strcmp(CurFile,""))
{
printf("当前并未打开或新建文件,无法添加!\n");
}
else
{
AddData();
Save(CurFile);
}
ReOrEx();
}
void ModifyData()/修改一条学生信息/
{
char Num[12];
char Name[10];
char Sex[2];
float English,DataStructure,CPP;
int Year,Month,Day;
int location;
printf("\n执行修改学生信息 *** 作!\n\n");
printf("请输入将要修改的学生的学号:");
scanf("%s",Num);
location=SearchNum(Num);
if (found)
{
printf("可以进行修改学生信息 *** 作!\n");
printf("\n请输入学生姓名:");
scanf("%s",Name);
printf("\n请输入学生性别:");
scanf("%s",&Sex);
printf("\n请输入学生出生年份:");
scanf("%d",&Year);
printf("\n请输入学生出生月份:");
scanf("%d",&Month);
printf("\n请输入学生出生日:");
scanf("%d",&Day);
printf("\n请输入学生英语成绩:");
scanf("%f",&English);
printf("\n请输入学生数据结构成绩:");
scanf("%f",&DataStructure);
printf("\n请输入学生C++成绩:");
scanf("%f",&CPP);
printf("\n");
strcpy(stud[location]Num,Num);
strcpy(stud[location]Name,Name);
strcpy(stud[location]Sex,Sex);
stud[location]Birthdayyear=Year;
stud[location]Birthdaymonth=Month;
stud[location]Birthdayday=Day;
stud[location]English=English;
stud[location]DataStructure=DataStructure;
stud[location]CPlusPlus=CPP;
stud[location]Sum=English+DataStructure+CPP;
stud[location]Average=stud[Index]Sum/3;
printf("执行修改学生信息 *** 作成功!\n");
}
else printf("不能进行修改学生信息 *** 作!\n");
}
void Modify()/修改学生信息/
{
if(!strcmp(CurFile,""))
{
printf("当前并未打开或新建文件,无法修改!\n");
}
else
{
ModifyData();
Save(CurFile);
}
ReOrEx();
}
int DeleteData()/删除一条学生信息/
{
char Num[12];
int location,i;
printf("\n 执行删除学生信息 *** 作!\n\n");
printf("警告!学生信息一旦删除,将不可恢复。请小心使用该 *** 作!\n\n");
printf("请输入将要删除的学生的学号:\n");
scanf("%s",Num);
location=SearchNum(Num);
if(found)
{
if(location!=MAXSIZE)
{
for(i=location;i<MAXSIZE;i++)
{
strcpy(stud[i]Num,stud[i+1]Num);
strcpy(stud[i]Name,stud[i+1]Name);
strcpy(stud[i]Sex,stud[i+1]Sex);
stud[i]Birthdayyear=stud[i+1]Birthdayyear;
stud[i]Birthdaymonth=stud[i+1]Birthdaymonth;
stud[i]Birthdayday=stud[i+1]Birthdayday;
stud[i]English=stud[i+1]English;
stud[i]DataStructure=stud[i+1]DataStructure;
stud[i]CPlusPlus=stud[i+1]CPlusPlus;
stud[i]Sum=stud[i+1]Sum;
stud[i]Average=stud[i+1]Average;
}
}
Index--;
return 1;
}
return 0;
}
void Delete()/删除学生信息/
{
if(!strcmp(CurFile,""))
{
printf("当前并未打开或新建文件,无法删除!\n");
}
else
{
if(DeleteData())
{
Save(CurFile);
printf("删除一条学生信息 *** 作成功!\n");
}
else
{
printf("不能进行删除 *** 作!\n");
printf("删除一条学生信息 *** 作失败!\n");
}
}
ReOrEx();
}
float GetOneCourseSum(int n)/计算所有学生某一科目的总成绩/
{
float N=0;
int i;
switch(n){
case 1://计算英语总成绩
{
for(i=0;i<Index;i++)
{
N+=stud[i]English;
}
}
break;
case 2://计算数据结构总成绩
{
for(i=0;i<Index;i++)
{
N+=stud[i]DataStructure;
}
}
break;
case 3://计算C++总成绩
{
for(i=0;i<=Index;i++)
{
N+=stud[i]CPlusPlus;
}
}
break;
}
return N;
}
float GetOneCourseAverage(int n)/计算所有学生某一科目的平均成绩/
{
float temp=0;
temp=GetOneCourseSum(n)/Index;
return temp;
}
void Total()//统计某一科目总成绩
{
int x;
if(!strcmp(CurFile,""))
{
printf("当前并未打开或新建文件,无法统计成绩!\n");
}
else
{
printf("\n 统计某一科目总成绩及平均成绩\n");
printf("\n");
printf("\n");
printf(" 1 统计《英语》课程总成绩及平均成绩 \n");
printf(" 2 统计《数据结构》课程总成绩及平均成绩 \n");
printf(" 3 统计《C++》课程总成绩及平均成绩 \n");
printf("\n");
printf(" 请选择(1-3)_");
scanf("%d",&x);
switch(x)
{
case 1:
printf("\n英语总成绩为:%52f\n\n",GetOneCourseSum(1));
printf("英语平均成绩为:%52f\n",GetOneCourseAverage(1));
break;
case 2:
printf("\n数据结构总成绩为:%52f\n\n",GetOneCourseSum(2));
printf("数据结构平均成绩为:%52f\n",GetOneCourseAverage(2));
break;
case 3:
printf("\nC++总成绩为:%52f\n\n",GetOneCourseSum(3));
printf("c++平均成绩为:%52f\n",GetOneCourseAverage(3));
break;
default: printf("选择错误!\n");
}
}
ReOrEx();
}
void Bubble(int N)/冒泡排序/
{
Student temp;
int change=1;
int i,j;
switch(N){
case 1://按英语成绩排序
{
for(i=Index-1;i>=1 && change;--i)
{
change=0;
for(j=0;j<i;++j)
if(stud[j]English>stud[j+1]English)
{
strcpy(tempNum,stud[j]Num);
strcpy(tempName,stud[j]Name);
strcpy(tempSex,stud[j]Sex);
tempBirthdayyear=stud[j]Birthdayyear;
tempBirthdaymonth=stud[j]Birthdaymonth;
tempBirthdayday=stud[j]Birthdayday;
tempEnglish=stud[j]English;
tempDataStructure=stud[j]DataStructure;
tempCPlusPlus=stud[j]CPlusPlus;
tempSum=stud[j]Sum;
tempAverage=stud[j]Average;
strcpy(stud[j]Num,stud[j+1]Num);
strcpy(stud[j]Name,stud[j+1]Name);
strcpy(stud[j]Sex,stud[j+1]Sex);
stud[j]Birthdayyear=stud[j+1]Birthdayyear;
stud[j]Birthdaymonth=stud[j+1]Birthdaymonth;
stud[j]Birthdayday=stud[j+1]Birthdayday;
这是学生信息系统一部分,想要的话把你邮箱留下,我把全部发给你
/13 bookc源程序/
#include <dosh>
#include <biosh>
#include <conioh>
#include <stdioh>
#include <stdlibh>
#include <mathh>
#define LEFT 0x4b00 /左/
#define RIGHT 0x4d00 /右/
#define DOWN 0x5000 /下/
#define UP 0x4800 /上/
#define SPACE 0x3920 /空格/
#define ESC 0x011b / ESC键/
#define ENTER 0x1c0d /回车键/
#define Backspace 0xe08 /擦除键/
#define ALT_B 12288 /组合键ALT_B /
#define ALT_M 12800/组合键ALT_M /
#define ALT_H 8960/组合键ALT_H /
int key;/按键变量/
int textx,texty;/光标坐标,x行,y列/
struct menustruct/菜单用的结构体/
{
char name[10];/主菜单名/
char str[10][20];/选项/
int n;/选项数/
}ml[3];/使用了3个,可根据需要增删/
typedef struct BookList/书的结构体/
{
char num[20];/图书编号/
char name[20];/书名/
int price;/书的价格/
char person[20];/借阅人/
int yes;/判断书是否存在或者已经借出,1存在,0借出/
struct BookList next;
}Book;
typedef struct MemberList/会员的结构体/
{
char name[20];/会员的姓名/
char sex[2];/会员的性别/
int age;/会员的年龄/
struct MemberList next;
}Member;
char save[4096];/保存文本区域空间/
/char sav1[4096];/
char c[4096];/清屏专用空间/
int i,j;/常用变量/
void Menu();/初始化界面/
void Selectitem();/定义菜单/
void DrawSelectitem();/显示主菜单/
void BlackText(int x,int y,char z);/选中菜单/
void RedText(int x,int y,char z);/正常菜单/
void Run();/具体 *** 作过程/
void DrawMl(int n);/显示下拉菜单/
void MoveMl(int n,int x);/菜单选项的控制/
void Enter(int m,int n);/菜单选项的具体功能/
void BookAdd();/添加图书/
void BookConsult();/图书查询/
void BookDel();/删除图书资料/
void BookBorrow();/借书/
void BookReturn(); /还书/
void MemberAdd(); /增加会员/
void MemberConsult();/查询会员/
void MemberDel(); /删除会员/
void MemberBook(); /查询会员借书信息/
void Help(); /帮助/
void Ver(); /版本信息/
void ClrScr();/自定义清屏函数/
void DrawFrame(int left,int up,int right,int down,int textcolor,int backgroundcolor);/画边框/
/主函数/
void main(void)
{
Menu();/初始化界面/
Run();/具体 *** 作过程/
}
/初始化界面/
void Menu()
{
system("cls"); /调用系统的清屏命令/
textbackground(BLUE);/将背景设置为蓝色/
window(1,1,25,80);
clrscr();
textx=3;/光标初始化位置/
texty=2;
gotoxy(1,2);
printf("%c",218);/画左上角/
for(i=0;i<78;i++)
printf("%c",196); /画水平直线/
printf("%c",191);/画右上角/
for(i=3;i<=23;i++)
{
gotoxy(1,i);
printf("%c",179); /画垂直线/
gotoxy(80,i);
printf("%c",179);
}
printf("%c",192); /画左下角/
for(i=0;i<78;i++)
printf("%c",196);
printf("%c",217); /画右下角/
gotoxy(1,1);
textcolor(7); /设置灰色/
for(i=0;i<80;i++)
cprintf("%c",219);/用符号实现画主菜单的灰色背景区/
Selectitem(); /调用选项函数/
DrawSelectitem(); /画选项/
gettext(2,3,78,23,c); /保存当前文本区域/
}
/定义菜单/
void Selectitem()
{
strcpy(ml[0]name,"Book");/下面的具体选项补空格是为了各菜单黑色背景相同/
strcpy(ml[0]str[0],"Add ");/添加图书/
strcpy(ml[0]str[1],"Consult ");/查询图书/
strcpy(ml[0]str[2],"Del ");/删除图书资料/
strcpy(ml[0]str[3],"Borrow ");/借书/
strcpy(ml[0]str[4],"Return ");/还书/
strcpy(ml[0]str[5],"Exit ");/退出系统/
ml[0]n=6; /保存菜单的项数/
strcpy(ml[1]name,"Member");
strcpy(ml[1]str[0],"Add ");/添加新会员/
strcpy(ml[1]str[1],"Consult ");/查询会员资料/
strcpy(ml[1]str[2],"Del ");/删除会员资料/
strcpy(ml[1]str[3],"Member&book ");
ml[1]n=4;
strcpy(ml[2]name,"Help");/系统帮助/
strcpy(ml[2]str[0],"This System ");
strcpy(ml[2]str[1],"Ver ");
ml[2]n=2;
}
/显示主单名/
void DrawSelectitem()
{
for(i=0;i<3;i++)
RedText(i,1,ml[i]name); /显示主菜单名,且首字母为红色/
}
/正常显示菜单/
void RedText(int x,int y,char z)
{
textbackground(7); /设置背景颜色为浅灰色/
gotoxy(3+x20,y);
for(j=0;z[j];j++)
{
if(j==0)
textcolor(RED);/第一个字母显示红色/
else
textcolor(BLACK); /设置黑色/
cprintf("%c",z[j]); /输出菜单名/
}
}
/显示选中菜单/
void BlackText(int x,int y,char z)
{
textbackground(0); /设置背景颜色为黑色/
textcolor(15); /设置文本颜色为白色/
gotoxy(3+20x,y);/定位坐标/
cputs(z); /输出菜单名字符串/
}
/按键 *** 作过程/
void Run()
{
while(1)
{
gotoxy(texty,textx);
key=bioskey(0);/接收按键/
switch(key)
{
case ALT_B:
case ESC: DrawMl(0);break; /显示下拉菜单1/
case ALT_M: DrawMl(1);break;/显示下拉菜单2/
case ALT_H: DrawMl(2);/显示下拉菜单3/
case UP: /上光标键的 *** 作控制/
{
if(textx==3)
textx=23;
textx--;
gotoxy(texty,textx);
}break;
case DOWN: /下光标键的 *** 作控制/
{
if(textx==23)
textx=3;
textx++;
gotoxy(texty,textx);
}break;
case LEFT: /左光标键的 *** 作控制/
{
if(texty==2)
texty=79;
texty--;
gotoxy(texty,textx);
}break;
case Backspace: /擦除键的设置/
{
if(texty==2&&textx==3)
continue;
else
{
if(texty!=2)
texty--; /擦除键的细节问题,先擦去东西,然后光标还要往后退一格/
else
if(texty==2)
{
texty=78;
textx--;
}
gotoxy(texty,textx);
printf(" ");
gotoxy(texty,textx);
}
}break;/end case 0xe08/
case RIGHT: /右光标键的 *** 作控制/
{
if(texty==79)
texty=2;
texty++;
gotoxy(texty,textx);
}break;
case SPACE: /空格键的 *** 作/
{
if(texty==79)
continue;
else
{
gotoxy(texty,textx); /空格的细节 *** 作/
printf(" ");
texty++;
gotoxy(texty,textx);
}
}break;
case ENTER: /回车的控制 *** 作/
{
if(textx==23)
continue;
textx++;
texty=2;
gotoxy(texty,textx);
}break;
default : /非控制键的结果/
{
if(texty==79&&textx==23)/到达最后就不再输出/
continue;
else
if(texty==79&&textx!=23) /到行的最后/
{
textx++;
texty=2;
}
gotoxy(texty,textx);/输出结果/
printf("%c",key);
if(texty==79) /如果texty==79就不执行/
continue;
else /如果没到行尾就继续执行,使光标向前移动一位/
texty++;
}
}
}/大循环的大括号/
}
/画边框函数/
void DrawFrame(int l,int u,int r,int d,int tcolor,int bcolor)
{
textbackground(bcolor); /背景颜色/
textcolor(bcolor); /文本颜色/
for(i=l;i<=r;i++) /输出背景区域/
{
for(j=u;j<=d;j++)
{
gotoxy(i,j);
printf("%c",219); /输出背景字符/
}
}
textcolor(tcolor);/边框颜色/
for(i=u+1;i<d;i++) /在背景区域内输出边框线/
{
gotoxy(l,i);
cprintf("%c",179); /垂直线/
gotoxy(r,i);
cprintf("%c",179);
}
for(i=l+1;i<r;i++)
{
gotoxy(i,u);
cprintf("%c",196); /水平线/
gotoxy(i,d);
cprintf("%c",196);
}
gotoxy(l,u);
cprintf("%c",218);/左上角/
gotoxy(r,u);
cprintf("%c",191);/右上角/
gotoxy(l,d);
cprintf("%c",192);/左下角/
gotoxy(r,d);
cprintf("%c",217); /右下角/
/ gettext(l+1,u+1,r-1,d-1,save1);//保存边框内区域/
}
/显示具体下拉选择项目/
void DrawMl(int n)
{
gettext(1,1,80,25,save);/保存被掩盖的地方/
BlackText(n,1,ml[n]name);/反选显示主菜单/
DrawFrame(3+20n-1,2,3+20n+19,3+ml[n]n,0,7);/下拉菜单的边框/
for(i=3;i<3+ml[n]n;i++)/输出所选菜单各选项/
{
if(i==3)
BlackText(n,i,ml[n]str[i-3]);/默认选中第一项/
else
RedText(n,i,ml[n]str[i-3]);/其余各项首字符红色显示/
}
gotoxy(79,1);
MoveMl(n,3);/菜单选项的控制/
}
/菜单选项的控制,n决定水平项,x决定下拉的选项/
void MoveMl(int n,int x)
{
int flag=1;
while(flag)
{
gotoxy(79,1);
key=bioskey(0);/接收按键/
gotoxy(79,1);
switch(key)
{
case ESC:/退出循环/
puttext(1,1,80,25,save);/恢复打开菜单前的样子/
flag=0;
break;
case LEFT:/移到左边的选项/
puttext(1,1,80,25,save);/恢复打开菜单前的样子/
if(n==0)/往左移动越界的话移到最后一个选项/
DrawMl(2);
else
DrawMl(n-1);
flag=0;
break;
case RIGHT:/移动右边的选项/
puttext(1,1,80,25,save);/恢复打开菜单前的样子/
if(n==2)/往右移动越界的话移到第一个选项/
DrawMl(0);
else
DrawMl(n+1);
flag=0;
break;
case UP:/具体选项往上移动/
RedText(n,x,ml[n]str[x-3]);/输出红色字体/
if(x==3)/移到最上面再按上键,就移到最下面/
x=3+ml[n]n-1;
else
x--;/移动到新的要显示的内容/
BlackText(n,x,ml[n]str[x-3]);/输出黑色字体/
flag=1;
break;
case DOWN:/具体选项往下移动/
RedText(n,x,ml[n]str[x-3]);
if(x==(3+ml[n]n-1))/移动到最底下再按下键就移到最上面/
x=3;
else
x++;/移动到新的要显示的内容/
BlackText(n,x,ml[n]str[x-3]);
flag=1;
break;
case ENTER:
puttext(1,1,80,25,save);/恢复打开菜单前的样子/
Enter(n,x-3);/菜单选项的具体功能/
flag=0;
break;
}
gotoxy(79,1);
}
}
/菜单选项的具体功能/
void Enter(int m,int n)
{
switch(m)
{
case 0:switch(n) /选择了图书菜单选项/
{
case 0:BookAdd();break;/添加图书/
case 1:BookConsult();break;/图书查询/
case 2:BookDel();break;/删除一本图书资料/
case 3:BookBorrow();break;/借书/
case 4:BookReturn();break;/还书/
case 5:exit(0);break;
} break;/退出系统/
case 1: switch(n) /选择了会员菜单选项/
{
case 0: MemberAdd();break;/添加会员/
case 1: MemberConsult();break;/会员查询/
case 2:MemberDel();break;/删除一个会员资料/
case 3:MemberBook();/查询某个会员所借图书情况/
}break;
case 2:switch(n) /选择了帮助菜单选项/
{
case 0:Help();break;
case 1:Ver();
}
}/结束外switch/
}
课程设计说明书规范要求
说明书是体现和总结课程设计成果的载体,一般不应少于3000字。
1、说明书基本格式
说明书手写或打印均可。手写要用统一的课程设计用纸,用黑或蓝黑墨水书写工整;打印时统一使用word文档,正文采用小4号宋体,A4开纸,页边距均为20mm,行间距采用18磅,装订线留5mm。
正文各级标题编号的示例如下图所示。
一级标题:小三号,宋体加粗,居左,18磅行距,段后05行,段前为0。
二级标题:四号,黑体,居左,18磅行距,段后为05,段前0行。
三级标题:小四号,黑体,居左,18磅行距,段后为05,段前0行。
正文内容起首空两格。
2、说明书结构及要求
(1)封面,包括题目、系(部)、班级、学生姓名、学号、指导教师及时间(年、月、日)等项。
(2)摘要(仅对论文),摘要是论文内容的简短陈述。关键词应为反映论文主题内内容的通用技术词汇,一般为3--4个左右,一定要在摘要中出现。
(3)目录,要求层次清晰,给出标题及页次。其最后一项是无序号的“参考文献”。
(4)正文,正文应按照目录所定的顺序依次撰写,要求计算准确,论述清楚、简练、通顺,插图清晰,书写整洁。文中图、表及公式应规范地绘制和书写。
(5)参考文献,参考文献必须是学生在课程设计中真正阅读过和运用过的,文献按照在正文中的出现顺序排列。要求参考《毕业设计工作规程》。
(6)课程设计资料的装订,课程设计按以下顺序装订成册:封面、课程设计任务书、成绩评定表、目录、摘要、正文、设计体会及今后的改进意见、参考文献、图纸。
以上就是关于求写一个 计算机程序设计(c语言) 课程设计报告 要求200行、程序难度定为初级难度。全部的内容,包括:求写一个 计算机程序设计(c语言) 课程设计报告 要求200行、程序难度定为初级难度。、求-c语言程序设计作业。请大家帮帮忙-_-~、求C语言课程设计报告 程序已经写好了 就是报告不知道怎么写 T-T等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)