当前位置:首页 » 编程语言 » c语言项目背景怎么写
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言项目背景怎么写

发布时间: 2023-04-15 03:04:31

c语言项目背景什么意思

c语言项目背景意思是项目设想的形成基因。根据查询相关资料信息,为保证可行性研究的成功,从事项目可行性研究者必须清楚地了解项目背景,必侍羡须对项目所经营的对象详细地予以叙述衫誉,对项目发起人对项目或谈段感兴趣的理由加以审定。

⑵ 什么是软件的开发背景

一、背景:是开发现状,要开发的东西如今的状况发展历史。
1、 项目的提出原因
2、项目环境背景
3、 项目优势分析(资源、技术、人才、管理等方面)
4、 项目运作的可行性
5、 项目的独特与创新分析
二、目的:是开发后有什么作用,准备实现什么功能,为了满足什么需求和愿望,给人们带来哪些好处。
三、意义:从重要性和必要性两方面写,项目开发带来的好处,和未来发展前景如何。

(2)c语言项目背景怎么写扩展阅读:

1、项目启动阶段
需要做好前期的需求分析工作,系统架构师作为客户与项目团队兆清旦之间的桥梁,应该和客户进行很好的沟通,了解业务,为接下来的系统设计做好业务基础。一般采取的方法是到客户那里进行实地问族扰卷,考察交流。
当系统架构师向客户描绘系统应该实现的功能与客户达成共识后,才进入系统的设计。进入设计阶段,架构师不能够只为了实现业务而随意的设置系统构件,这个时候不但要考虑系统的功能,还要考虑系统的性能和系统的扩展性。
当所有的构件已经设计完成后,可以宣布系统的基础模型已经构建成功,这个时候应该用实例去测试这个模型。当系统的业务要求和性能要求满足客户的需求后,进入下一个阶段,如果不符合,则继续进行这一个阶段。
在这个阶段可以预见将来在系统的实现过程中会遇到一些技术难点,这个时候应该把技术难点摘录出来,并且对其标明优先级别,让程序员去调查这些技术难点,并提供相应的解决方案。
在这个阶段花大力气是值得的,因为现在花掉一两天的成本,可以避免在后期多花费十天或者是更多的成本。项目的启动阶段以系统蓝图,系统设计图纸的完成来宣布该阶段的结束。
2、项目计划阶段
在这个阶段,应该做的是完成项目进度表,人员的组建,系统的环境的设置,还有的是项目的风险分析,开发采用的语言,代码的编码规约。这些基本上可以通过系统设计图纸所描述的系统架构来设置。
3、项目实施阶段
在这个阶段,编码与测试是主要的任务。程序员编写系统设计图纸中的构件的具体实现。编写出来的代码应符合编码规约中的要求。为了防止错误,程序员之间可以互相检查编写出来的代码。好的编码方式是采用测试驱动开发的方法。
编写完代码后,程序员还应该自己进行测试,测试通过后才能够提交。为了跟踪项目的进度情况,应该在每天结束工作以前开会,在会议上登记当日工作的完成进度,登记遇到的问题,并且在会议上进行解决。正大
4、项目交付阶段
大的项目交付一般采用的是分期交付。当完成某一个模

⑶ c语言怎样实现运行屏幕的白底黑字

windows下面最简单的办法就是调用:\x0d\x0asystem("color F0");\x0d\x0a这样就黑底白字了!!!\x0d\x0a以下是color命令的帮助:\x0d\x0a设置默认的控制台前景和背景颜色。\x0d\x0a\x0d\x0aCOLOR [attr]\x0d\x0a\x0d\x0a attr 指定控制台输出的颜色属性\x0d\x0a\x0d\x0a颜色属性由两个十六进制数字指定 -- 第一个为背景,第二个则为\x0d\x0a前景。每个数字可以为以下任何值之一:\x0d\x0a\x0d\x0a 0 = 黑色 8 = 灰色\x0d\x0a 1 = 蓝色 9 = 淡蓝色\x0d\x0a 2 = 绿色 A = 淡绿色\x0d\x0a 3 = 浅绿色 B = 淡浅绿色\x0d\x0a 4 = 红色 C = 淡红色\x0d\x0a 5 = 紫色 D = 淡紫色\x0d\x0a 6 = 黄色 E = 淡黄色\x0d\x0a 7 = 白色 F = 亮白色\x0d\x0a\x0d\x0a如果没有给定任何参数,该命令会将颜色还原到 CMD.EXE 启动时\x0d\x0a的颜色。这个值来自当前控制台窗口、/T 命令行开关或\x0d\x0aDefaultColor 注册表值。\x0d\x0a\x0d\x0a如果用相同的前景和背景颜色来执行 COLOR 命令,COLOR 命令\x0d\x0a会将 ERRORLEVEL 设置为 1。\x0d\x0a\x0d\x0a例如: "COLOR fc" 在亮白色上产生亮红色\x0d\x0a\x0d\x0a如果你不想用color来做那么\x0d\x0a\x0d\x0aTC 下可以这么做:\x0d\x0a在开始的时候要调用graphics.h这个头文件\x0d\x0a\x0d\x0a setbackcolor() 设置背景颜色函数\x0d\x0a\x0d\x0a功能: 函数setbackcolor()把当前调色板颜色的第一个值改成指定的颜色值,以设置背景颜色。\x0d\x0a用法: 此函数调用方式为void setbackcolor(int color);\x0d\x0a说明: 参数color为指定的背景色,其有效值可以是颜色符号名,也可以是色彩值。表1-8列出了背景颜色供选取。\x0d\x0a\x0d\x0a表1-8 背景颜色值\x0d\x0a-----------------------------------------------------------------\x0d\x0a 颜色符号名 色彩值 颜色符号名 色彩值\x0d\x0a-----------------------------------------------------------------\x0d\x0a BLACK(黑色) 0 DARKGRAY(深灰) 8\x0d\x0a BLUE(蓝色) 1 LIGHTBLUE(淡蓝) 9\x0d\x0a GREEN(绿色) 2 LIGHTGREEN(淡绿) 10\x0d\x0a CYAN(青色) 3 LIGHTCYAN(淡青) 11\x0d\x0a RED(红色) 4 LIGHTRED(淡红) 12\x0d\x0a MAGENTA(品红) 5 LIGHTMAGENTA(粉红) 13\x0d\x0a BROWN(棕色) 6 YELLOW(黄色) 14\x0d\x0a LIGHTGRAY(淡灰) 7 WHITE(白色) 15\x0d\x0a-----------------------------------------------------------------\x0d\x0a 调用该函数,将改变整个屏幕的颜色,如果新的背景色与原来屏幕的图形颜色相同,尽管图形信息不会丢失,但是看不见图形了。如果所选背景色为对比鲜明的颜色,看不见的图形就会重新清晰地显现出来。\x0d\x0a\x0d\x0a 这个函数的头文件为graphics.h\x0d\x0a\x0d\x0a返回值: 无\x0d\x0a\x0d\x0a例: 把背景色置为淡蓝色\x0d\x0a\x0d\x0a setbackcolor(LIGHTBLUE);\x0d\x0a\x0d\x0a设置前景色(文字颜色)\x0d\x0a setcolor() 设置颜色函数\x0d\x0a\x0d\x0a功能: 函数setcolor()设置当前绘图颜色(或称做前景色)。\x0d\x0a用法: 该函数调用方式为voids setcolor(int color);\x0d\x0a说明: 参数color为选择的当前绘图颜色。在高分辨率显示模式下,选取的color是实际色彩值,也可以用颜色符号名表示。如果已经摇篮函数setpalette()改变了调色板色彩值,那么符号名就不可能产生预期作用了。\x0d\x0a 在低分辨率显示模式(320X200)下,选取的color是调色板颜色号,不是实际色彩值。\x0d\x0a 此函数相应的头文件为graphics.h\x0d\x0a返回值: 无\x0d\x0a\x0d\x0a例: 设置16种不同的颜色,显示16段直线:\x0d\x0a\x0d\x0a#include\x0d\x0avoid main()\x0d\x0a{\x0d\x0a int driver,mode;\x0d\x0a int i;\x0d\x0a driver=DETECT;\x0d\x0a mode=0;\x0d\x0a initgraph(&driver,&mode,"");\x0d\x0a moveto(0,200);\x0d\x0a for(i=0;i<16;i++)\x0d\x0a {\x0d\x0a setcolor(i);\x0d\x0a linerel(20,0);\x0d\x0a }\x0d\x0a getch();\x0d\x0a restorecrtmode();\x0d\x0a}\x0d\x0a\x0d\x0aVC 下面可以用\x0d\x0aSetConsoleTextAttribute这个Window SDK API

⑷ 图书管理系统C语言设计(c#免入)

#include <dos.h>
#include <bios.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>

#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],"Find ");/*查询图书*/
strcpy(ml[0].str[2],"Delete ");/*删除图书资料*/
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],"Register ");/*添加新会员*/
strcpy(ml[1].str[1],"Find ");/*查询会员资料*/
strcpy(ml[1].str[2],"Delete ");/*删除会员资料*/
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+x*20,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+20*x,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+20*n-1,2,3+20*n+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*/
}void BookAdd()
{
FILE *fp;
Book consultbook;
fp=fopen("book.txt","rb");/*读方式打开文件*/
if(fp==NULL)
fp=fopen("book.txt","wb"); /*写方式打开文件*/
else/*如果有书就添加*/
{
fclose(fp);
fp=fopen("book.txt","ab");/*追加方式打开文件*/
}
ClrScr();/*清屏*/
printf("Please intput a new book num: ");/*逐个输入新图书的资料*/
gets(consultbook.num);
gotoxy(2,4);
printf("Please input the new book name: ");
gets(consultbook.name);
gotoxy(2,5);
printf("Please input the new book's price: ");
scanf("%d%*c",&consultbook.price);
strcpy(consultbook.person,"");
consultbook.yes=1;/*表示书存在未借出*/
consultbook.next=NULL;
fwrite(&consultbook,sizeof(Book),1,fp);/*块写*/
fclose(fp); /*关闭文件*/
ClrScr();
}
/*图书查询*/
void BookConsult()
{
FILE *fp;
Book consultbook;
char bookname[20]; /*书名*/
int flag=0,i=0;
ClrScr();
gotoxy(2,3);
printf("Please input the book name: ");
gets(bookname); /*输入要查询的图书名*/
fp=fopen("book.txt","rb");
if(fp==NULL)/*没找到文件*/
{
ClrScr();
gotoxy(2,3);
printf("Error!");
fclose(fp);
return;
}
else
while(!feof(fp))/*查询图书资料*/
{
fread(&consultbook,sizeof(Book),1,fp);
if(strcmp(consultbook.name,bookname)==0)/*如果查找到*/
{
ClrScr();
gotoxy(2,3+i*5);
printf("This book %s information as follow:",consultbook.name);
gotoxy(2,4+i*5);
printf("This book num is %s.",consultbook.num);
gotoxy(2,5+i*5);
printf("This book's price is %d.",consultbook.price);
gotoxy(2,6+i*5);
printf("This book is browwed by %s.",consultbook.person);
gotoxy(2,7+i*5);
printf("This book's state is %d.",consultbook.yes);
i++;
flag=1; /*查找数据标志*/
}
}
if(flag==0)
{
ClrScr();
gotoxy(2,3);
printf("Sorry, %s doesn't exist in the library!",bookname);
}
fclose(fp);
}
/*删除图书资料*/
void BookDel()
{
FILE *fp;
Book *head,*p,*q;
char bookname[20];
fp=fopen("book.txt","rb");/*读方式打开文件*/
if(fp==NULL)/*没找到文件*/
{
gotoxy(2,3);
printf("Error!");
fclose(fp);
return;
}
head=p=q=(Book*)malloc(sizeof(Book));/*将文件内容放入链表*/
fread(p,sizeof(Book),1,fp); /*读第一条记录*/
while(!feof(fp))
{
q=p;
p=(Book*)malloc(sizeof(Book));
fread(p,sizeof(Book),1,fp); /*读记录*/
q->next=p;/*新记录插入到链表的尾*/
}
p->next=NULL;/*最后一个结点的后继为空*/
fclose(fp);
ClrScr();
printf("Input the book name: ");
gets(bookname); /*输入图书名*/
p=head;
while(p!=NULL)/*按名字查找要删除的图书*/
{
if(strcmp(p->name,bookname)==0)/*找到要删除的图书*/
{
if(p==head) /*如果是第一个结点*/
head=head->next;
else
q->next=p->next;/*不是第一个结点*/
break;
}
q=p; /*指针后移*/
p=p->next;
}
fp=fopen("book.txt","wb");/*删除后从链表的头开始重新保存*/
while(head!=NULL)
{
fwrite(head,sizeof(Book),1,fp);/*块写*/
head=head->next;
}
fclose(fp);
ClrScr();
}
/*借书*/
void BookBorrow()
{
FILE *fp;
Book consultbook;
Member consultmember;
char bookname[20],membername[20];
int flag=0,mflag=0;
ClrScr();
gotoxy(2,3);
printf("Please input the mermber name: ");
gets(membername); /*输入会员名*/
if((fp=fopen("member.txt","rb"))==NULL)/*没找到文件*/
{
gotoxy(2,3);
printf("Cannot open file!\n");
return;
}
else
while(!feof(fp))/*查询会员资料*/
{
fread(&consultmember,sizeof(Member),1,fp);
if(strcmp(consultmember.name,membername)==0)
{
mflag=1; /*是会员标志*/
break;
}
}
fclose(fp);
if(mflag==0)
{
gotoxy(2,4);
printf("You are not a member now,pleas register first!");/*不是会员不能借书*/
return;
}
gotoxy(3,5);
printf("Please input the book name: ");
gets(bookname); /*输入图书名*/
ClrScr();
if((fp=fopen("book.txt","rb+"))==NULL)/*没找到文件*/
{
gotoxy(2,3);
printf("Cannot open file!\n");
return;
}
while(!feof(fp))/*查询图书资料*/
{
fread(&consultbook,sizeof(Book),1,fp);
if(strcmp(consultbook.name,bookname)==0)
{
if(consultbook.yes==0)/*图书已经借出的判断*/
{
gotoxy(2,3);
printf("This book has borrowed!\n");
break;
}
else
{
consultbook.yes=0; /*作借出标志*/
strcpy(consultbook.person,membername);/*登记借书会员*/
fseek(fp,-1L*sizeof(Book),1);/*从当前位置前移一条记录指针*/
fwrite(&consultbook,sizeof(Book),1,fp);/*写记录*/
gotoxy(2,3);
printf("Borrowed success!\n");
flag=1;/*借出书标志*/
break;
}
}
}
if(flag!=1)
{
ClrScr();
gotoxy(2,3);
printf("Borrowed fail!\n");/*借书失败*/
}
fclose(fp);
}
/*还书*/
void BookReturn()
{
FILE *fp;
Book consultbook;
char bookname[20];
int flag=0;
ClrScr();
if((fp=fopen("book.txt","rb+"))==NULL)/*没找到文件*/
{
gotoxy(2,3);
printf("Can't open file!\n");
return;
}
printf("Please input the book name: ");
gets(bookname); /*输入图书名*/
ClrScr();
while(!feof(fp))/*查询图书资料*/
{
fread(&consultbook,sizeof(Book),1,fp);
if(strcmp(consultbook.name,bookname)==0)
{
if(consultbook.yes==0)/*图书已经借出的判断*/
{
consultbook.yes=1;/*作图书未借书标志,表示已还书*/
strcpy(consultbook.person,"");
fseek(fp,-1L*sizeof(Book),1);
fwrite(&consultbook,sizeof(Book),1,fp);
gotoxy(2,3);
printf("Return book success!\n");
flag=1;
break;
}
}
}
if(flag!=1)
printf("Return fail!\n");
fclose(fp);
}
/*清除屏幕*/
void ClrScr()
{
int i,j;
puttext(2,3,78,23,c);/*刚开始已经用gettext把蓝色的一块地方保存下来,现在再还原*/
gotoxy(2,3);
}
/*会员注册*/
void MemberAdd()
{
FILE *fp;
Member consultmember;
fp=fopen("member.txt","rb");
if(fp==NULL)/*如果没会员就新建*/
fp=fopen("member.txt","wb");
else/*如果有会员就添加*/
{
fclose(fp);
fp=fopen("member.txt","ab");/*追加方式打开*/
}
ClrScr();
gotoxy(2,3);
printf("Please intput new member's name: ");/*逐个输入会员的资料*/
gets(consultmember.name);
gotoxy(2,4);
printf("Please input new member's sex: ");
gets(consultmember.sex);
gotoxy(2,5);
printf("Please input new member's age: ");
scanf("%d%*c",&consultmember.age);
fwrite(&consultmember,sizeof(Member),1,fp);/*写入记录*/
fclose(fp);
ClrScr();
}
/*查询会员*/
void MemberConsult()
{
FILE *fp;
Member consultmember;
char membername[20];
int flag=0;
ClrScr();
gotoxy(2,3);
printf("Please input the member's name: ");/*输入要查询的会员名*/
gets(membername);
fp=fopen("member.txt","rb");
if(fp==NULL)/*没找到文件*/
{
ClrScr();
gotoxy(2,3);
printf("Error!\n");
fclose(fp);
return;
}
while(!feof(fp))/*查询会员资料*/
{
fread(&consultmember,sizeof(Member),1,fp);
if(strcmp(consultmember.name,membername)==0)/*比较*/
{
ClrScr();
gotoxy(2,3);
printf("The member %s 's information as follow:",consultmember.name);
gotoxy(2,4);
printf("This member'sex is %s.",consultmember.sex);
gotoxy(2,5);
printf("This member 's age is %d.",consultmember.age);
flag=1;
break;
}
}
if(flag==0)
{
ClrScr();
gotoxy(2,3);
printf("The member %s doesn't exist in the library!",membername);
}
fclose(fp);
}
/*删除会员资料*/
void MemberDel()
{
FILE *fp;
Member *head,*p,*q;
char membername[20];
fp=fopen("member.txt","rb");
if(fp==NULL)/*没找到文件*/
{
gotoxy(2,3);
printf("Error!");
fclose(fp);
return;
}
head=p=q=(Member*)malloc(sizeof(Member));/*将文件内容放入链表*/
fread(p,sizeof(Member),1,fp);
while(!feof(fp))
{
q=p;
p=(Member*)malloc(sizeof(Member));
fread(p,sizeof(Member),1,fp);/*读记录*/
q->next=p;/*链入到链表的尾部*/
}
p->next=NULL;
fclose(fp);
ClrScr();
printf("Please input the member's name: ");/*输入会员名*/
gets(membername);
p=head;
while(p!=NULL)/*按名字查找要删除的书*/
{
if(strcmp(p->name,membername)==0)/*查找会员*/
{
if(p==head)
head=head->next;/*如果是第一条记录*/
else
q->next=p->next;/*不是第一条记录*/
break;
}
q=p; /*没找到,则指针后移继续找*/
p=p->next;
}
fp=fopen("member.txt","wb");/*删除后重新保存*/
while(head!=NULL)
{
fwrite(head,sizeof(Member),1,fp);/*块写*/
head=head->next;
}
fclose(fp);
ClrScr();
}
字数超了。。。。留个邮箱吧

⑸ 软件测试简历包装项目名字怎么写

一、简历重要性以及编写原则
能力,经验,技能和工作态度的提现。 对自身的说明书。 主要是提现你的价值。 包装简历的原则:(不失真的包装)

1.合适原则:需要的是合适,能够为企业带来价值的人。

2.营销原则:不是说需要陈述一个真实而全面的你,而是一个简短的营销稿,需要扬长避 短,突出重点和优势。

二、简历模板
简单大气,清晰整洁。最好上下结构。不要花里胡哨。

三、简历包装
1.个人信息
七要素必备:姓名,性别,年龄(男生接近32,女生接近30,可以考虑稍微包装一下), 电话,邮箱,住址(精确到市),求职意向。

优势必填:英语四六级,学历:211,985本科。

女生:婚姻:已婚已育。

照片:一般不放。 身高,籍贯,工作年限(测试之前有3年,测试4年),政治面貌。么有意义的不要写

2.教育经历
2006.9-2009.6 湖南大学 专业/学历

注意:

1.计算机相关专业可以写专业,非计算机相关专业只写学历,计算机科学与技术,软件开 发,软件工程,网络工程。

2.如果既有专科学历,又有自考本科学历。 情况一:专科学历和本科学历毕业时间很近。只写本科学历。 情况二:专科学历和本科学历毕业时间很远。两者都要写。 情况三:民教网(写了可以增加面试机会,但是会有面试通过了,也会被筛的情况)

3.写一些加分项

证书,核心课程(python,c语言,计算机技术,数据结构),励志奖学金,活动的组织。

3.专业技能
(简历最核心之一:50%-80%)

错误示范:(不能看出你的技能深度)

1.熟悉软件测试流程和理论,熟练掌握测试方法。

2.熟练使用Postman,jmeter等接口测试工具。

3.熟练seleniun+webdriver的自动化测试。

4.熟练requests的接口自动化测试。

一、专业技能 正确示范:

(技能至少8-10条左右,熟练的写上面,不熟练的写下面。包括:功能测试, Linux,数据库,接口测试,自动化测试,性能测试等。其他的特别的技能写1-2条在最后 面。)

1.熟练测试理论,测试方法,测试流程以及常用的测试文档的编写,如:测试计划,方案, 用例,报告等,能够根据项目需求提取测试点,设计合理的测试用例,执行用例以及提交测 试报告。保证软件的质量。

2.熟练Centos操作系统,熟练使用Linux常用命令,如:查看进程,查看端口,查看内存和 进程,动态日志等。熟练通过xshell远程连接linux服务器查看错误日志以及bug定位分析 等。熟练shell编程。熟练搭建测试环境。

3.熟悉http协议,熟悉接口测试流程,接口用例设计,熟练使用Jmeter或Postman执行接 口测试,熟练接口关联,动态参数,接口加密,接口鉴权以及接口签名,熟练 Postman+newman+git+jenkins或Jmeter+Ant+git+jenkins实现持续集成。

到这里薪资封顶在14K。不考虑管理能力!

4.熟练Git,Svn,Github,Gitlib,Gitee等版本控制工具,能够熟练的处理文件以及代码 的版本控制以及各分支和主干的文件冲突。

5.熟练基于Python+requests+pytest+allure+logging+jenkins的接口自动化测试,能够 独立搭建接口自动化测试框架并在实际的项目中开展实施。95%覆盖率。

6.熟练HTML和JS语言,熟练基于 Pytrhon+Selenium+unittest/pytest+htmltestrunner+logging+jenkins的web自动化 测试,熟练POM和关键字驱动设计模式,熟练基于ddt结合exctl的数据驱动并有实际项目 经验。30%覆盖率。 三年的产品:分五期来做,36个月/5=6个多月。web自动化比较合理的介入时间。在第一 期6个月之后才开始写脚本。 一年以内的项目:大部分不考虑web自动化,除非覆盖率很低,低到只做冒烟用例。

7.app自动化一般不写。

8.不会的写自学。

二、管理技能

组织沟通能力,团队建设能力,工作压力,工作业绩。带了多少人的测试团队。

要么根据你的技能来问,要么问的是公司需要的技能。

4.工作经验
2019.9-至今 码尚教育 金牌讲师 2018.9-2019.9 华辰教育 金牌讲师

注意:

1.工作经历必须是从大学到今天所有的经历,不能少、

2.如果是中途通过培训进入的测试行业,那么以前的经历要写和计算机相关的岗位,比如: 网络工程师,运维工程师,系统管理员,技术支持,实施。财务系统管理员。

3.尽量不要超过三家公司,不要出现频繁跳槽,最好是2-3年一家公司。最近的一家的公司 可以写真实的,其他的按前面的写。

4.工作经验里面不要和项目经验混到一起写。看不清楚。

5.项目经历
(4-5个项目) 10年,只写最近的四个项目。后面的项目和时间都不写。

项目一:顺丰CMS全球供应链一站式服务平台

项目时间:XXX

项目描述:XXX

项目职责:XXX

注意:

项目名稍微包装得高大上一点,看起来像一个真实的项目。 项目时间:需要连贯的,可以重叠。时间一般为4-8个月,

项目描述:需要5行,包括项目背景,行业,用户规模,主要业务,主要模块等,

特别是一 定要注意项目的价值。CRM系统,理财项目P2P,区块链技术。

项目职责:(需要8行,提现你在项目中的重要性,技能一定要融入职责)

6.自我评价
不要太泛。 写个人突出的业绩,工作态度,学习能力等。

结尾:附赠高阶软件测试模板一份:具体编写如下
点击下方蓝色字体领取或者添加V:mashang-zz(备注:999)

全套【软件测试/自动化测试】海量资料免费领取(简历模板,测试用例,文档)

高级软件测试工程师简历模板
基本信息:
姓 名:文同学 性 别:男

民 族:汉 出生年月:1991.09

联系电话:168888888 学 历:本科

邮 箱:[email protected] 现居地址:广东省深圳市宝安区西乡街道

教育背景:
2012.09-2016.6 毕业院校:湖北工业大学商贸学院 学历:本科

在学校里面参加过很多社团协会,并且协助组织了足球赛,夏令营,秋游等一系列活动。
组织同学一起去敬老院看望老人,献血等公益活动。
2013年获得优秀大学生称号
工作经历:
2015.9-2018.7 深圳市凯路网络技术有限公司 软件测试工程师

专业技能:
精通测试理论,方法以及常用的文档编写,如:测试计划,测试用例,测试报告等;
精通应用黑盒测试的方法;如边界值、等价类、场景法、因果图判定法、错误推断法等进行用例测试;
项目经验:
一.项目名称:信通借贷平台 2017年6月——2018年7月

项目简介:信通借贷平台,是信通借贷平台与网络借贷相结合的互联网金融服务平台,为有资金需求和理财需求的个人搭建了一个公平、透明、稳定、高效的平台,是目前正在兴起的基于互联网应用的一个相对较新的金融理财模式。该项目属于B/S架构。主要分前端和后台,前端主要模块有,首页,我要投资,我要贷款,新手指引,积分商城,我的帐户等模块;后台主要包括的模块有,系统首页,贷款管理,理财管理,会员管理,资金管理,待办事务,统计模块,部门管理,积分商城,前端设置,系统设置等模块。为管理贷款客户信息提供了很大的便利。

项目职责:

1、了解客户金融项目的需求、项目的流程 、参加项目的评审、需求分析。

2、根据需求规格说明书和设计文档和项目的流程编写测试用例。

3、参与用例的评审,仔细审查项目的用例报告,根据领导的要求完善测试用例。

4、用例评审通过后严格执行测试用例,用禅道缺陷工具提交bug,跟踪缺陷。

5、对开发修复完成后在进行回归测试直到回归关闭。

6、利用jmeter测试web端的接口,并导出接口测试报告,对照接口文档。

7、对主要的业务功能模块编写自动化测试脚本,执行自动化测试。

8、编写测试报告。

二.项目名称:易安支付 2016年10月——2017年6月

项目概述:易安支付项目是一个运营支付和互联网交易的业务平台系统,支持各类线上线下支付应用。致力于个人、企业打造一个“安全、高效、便捷、省钱、赚钱”的电商平台。在易安支付平台上不仅可以进行水电煤的缴费、三网手机话费充值、还信用卡、购火车票电影票等、交交通罚款,而且可以在上面购买各种各样商品,还能够在平台上理财、购买各类保险。该系统主要的功能模块有登录注册、首页、理财、支付、借贷、保险、购物、实名认证、充值、提现、发现等。我主要负责的功能模块是登录注册、理财、购物、支付、借贷等。

责任描述:

1、熟读需求文档和设计说明书,参与项目的需求分析,做需求评审,找有异议的地方以及潜在需求,确定需求。

2、根据需求分析,写出测试点和测试用例,并参与评审,修改完善测试用例。

3、对开发提供的可测试版本进行冒烟测试,验证基本功能正常使用。

4、执行测试用例,发现缺陷并通过禅道提交bug,进行缺陷跟踪和做回归测试。

5、了解性能需求,准备性能软硬件资源,使用LoadRunner录制维护脚本,执行性能测试。

6、对测试工作进行总结,编写测试报告。

7、回顾项目,了解项目当中遇到的问题,并进行会议讨论。

个人评价:
工作主动积极,有强烈责任心和严谨工作作风,积极思考,良好的协作沟通能力和团队合作精神
学习能力强,有较强分析、定位和解决问题的能力,具有较强逻辑思维能力和表达能力
能积极完成领导交代的任务,并且很有条理的按计划完成。
为人活泼开朗,和同事之间容易相处,能很快的和开发人员搞好关系。
有很强的团队意识,能积极的配合同事完成项目。

资料领取请备注:999

微信名片

点击阅读全文
打开CSDN,阅读体验更佳

车载系统简历.xmind
车载系统简历.xmind
软件测试,怎么包装简历?
首先明确的包装简历不等于欺骗,只是把你的最好一面展示出来,给别人一个好的映像;(就相当于相亲,哈哈) 无论如何包装简历,注意简历上的东西一定要会、一定要会、一定要会(面试官一般会针对简历上的问题进行提问,万一不会,多尴尬呢) 包装简历从以下几点出发: 1)整个排版格式:格式一定要适当、合适;不能太花哨、字体不统一、未对齐;你毕竟是面试软件测试岗位属于IT,不能太有创意...
继续访问
最新发布 阿里内部整理,2022接口测试最全面试题(附文档&简历模板)
前天和前同事约出来碰了碰,他现在是阿里P7,大大小小面试都百来回了。正好我最近也需要去面一些新人,所以让他给我整理了这一套接口测试相关的面试题。 大家如果正在面试的话也可以参考一下,技不压身。
继续访问

第1期-软件测试-简历-正确编写测试简历的姿势
大家好,今天我们这期来讲,如何写一份合格的测试简历(上)。 在这期我会说一下,编写简历的原则和技巧:简历是面试第一道关卡,因为hr每天会收到很多简历,那么hr就会快速的审阅每份简历,只有你的简历中亮点, 符合该公司的需求,hr才会给你发送面试邀请。 首先,选择一个美观大方的简历模板,至少这个模板条例清晰,模块分明。因为选择一个美观大方的简历模板,先不说你的简...
继续访问
软件测试项目经验简历包装
里面包含买菜app、摄像app、装修网web项目。 --------------------------------------------------------------------------------------------- 项目内容包含:项目名称、所属行业、项目描述、责任描述、项目情况介绍(如:项目开发时间、经历哪些阶段、开发模式、实战练习参考APP等)不提供测试计划、测试用例、测试报告这些,望知晓! 注意:该测试项目经验适合刚毕业或刚培训出来无实际项目经验的同学,不适合已从事软件测试工作多年的人员,望知晓!如果你的简历长时间投递还是没有收到面试邀请,那就是项目表述、包装、出了问题,不够直观,不妨考虑一下我们这里的测试简历项目经验哦
如何自学软件测试、包装简历实现华丽转行?
随着近几年培训机构的兴起,越来越多的人开始涌入软件测试行业,其中包括不少看B站视频/自己买的小额视频,其实,不管是参加培训还是自学也好,主要会面临以下几个问题:来自培训前的困惑如下:软件测...
继续访问
软件测试简历的包装
测试简历编写
继续访问

面试软件测试的时候,应届生怎么包装自己的简历?
一、自我介绍 进入面试后的第一个问题一定是先让你做下自我介绍,就是简单的介绍一下自己,自我介绍的时长尽量控制在3分钟左右,自我介绍的时间不要太长,不要超过5分钟,内容要精炼些,让面试官对你能有一个直观、全面的了解,切记避免啰嗦、重复的内容。 自我介绍可以从以下几个方面进行切入: 小伙伴儿们注意昂,我上面说的这几个方面是指给你提供一个参考,你可以从这几方面进行切入,并不是说在你的自我介绍中这些方面都必须包括,或是你有更好的自我介绍你甚至可以拿我列出的这些方面当放屁昂。 这里建议小伙伴们在面试前提前就要
继续访问
1000个已成功入职的软件测试工程师简历经验总结:软件测试工程师简历项目经验怎么写?(含真实简历模板)
目录:导读 一、前言:浅谈面试 二、软件测试工程师:简历模板 三、软件测试工程师:简历包装 1.基本信息: 2.教育背景: 3.专业技能 4.工作经历 5.项目经验 6.自我评价 四、软件测试工程师:简历总结 一、前言:浅谈面试 面试是我们进入一个公司的门槛,通过了面试才能进入公司,你的面试结果和你的薪资是息息相关的。那如何才能顺利的通过面试,得到公司的认可呢?面试软件测试要注意哪些问题呢?下面和笔者一起来看看吧。这里分享一下笔者十年测试生涯的面试总结! 软件测试面试常见问题
继续访问

软件测试面试官让你介绍项目你怎么回答?最全模板来了(包含电商项目、在线教育、互联网金融等)
!如果下面这些资料用得到的话可以直接拿走:1、自学开发或者测试必备的完整项目源码与环境2、测试工作中所有模板(测试计划、测试用例、测试报告等)3、软件测试经典面试题4、Python/Java自动化测试实战.pdf5、Jmeter/postman接口测试全套视频获取6、Python学习路线图。
继续访问

5份软件测试简历模板(含项目).zip
软件测试真实简历模板,功能测试、自动化测试简历,每份简历都有多个项目案例信息可供参考。
软件测试 (6)APP项目测试
APP项目需掌握测试点,性能测试工具Solopi和抓包测试工具Charles使用教学
继续访问

软件测试HTML表单常用代码、测试基础理论学习分享
软件测试HTML表单常用代码、测试基础理论学习分享
继续访问

非常完美的软件测试简历——值得一看
适合刚工作不足半年的菜鸟一看的软件测试简历
热门推荐 软件测试工程师简历项目经验怎么写?--1000个已成功入职的软件测试工程师简历范文模板(含真实简历)
目录:导读 一、前言:浅谈面试 二、软件测试工程师:简历模板 三、软件测试工程师:简历包装 1.基本信息: 2.教育背景: 3.专业技能 4.工作经历 5.项目经验 6.自我评价 四、软件测试工程师:简历总结 一、前言:浅谈面试 面试是我们进入一个公司的门槛,通过了面试才能进入公司,你的面试结果和你的薪资是息息相关的。那如何才能顺利的通过面试,得到公司的认可呢?面试软件...
继续访问

【软件测试】包装简历从这几点出发、提升通过率
注意简历上的东西一定要会、一定要会、一定要会(面试官一般会针对简历上的问题进行提问,所以一定要准备充分!)下面是一份高级软件测试工程师简历模板,写作技巧在下方
继续访问

软件测试包装建议
下面有关项目经验的包装提几点建议: ❶、项目要有可行性 所谓可行性,就是项目研发的预期结果和实际实用场景是否成正比,软件行业本来就是烧钱的,如果入不敷出是没人愿意做的,所以在选择和考虑项目经验是首先得进行可行性分析。 ❷、项目要有真实性 虽然现在网上开源项目很多,见到的、用到的软件也是层出不穷,种类很多,金融类、保险类、电商类等等,自己在选择项目时一定要保证真实,不能说都真真切切的使用过,但是一定要了解它的使用场景和业务逻辑以及流程操作,这样,你的项目经验才经得起推敲,才站得住脚。 ❸、项目要有契
继续访问
软件测试工程师简历项目经验怎么写?--1000个已成功入职的软件测试工程师简历范文模板(真实简历)
一、前言:浅谈面试 面试是我们进入一个公司的门槛,通过了面试才能进入公司,你的面试结果和你的薪资是息息相关的。那如何才能顺利的通过面试,得到公司的认可呢?面试软件测试要注意哪些问题呢?下面和笔者一起来看看吧。这里分享一下笔者十年测试生涯的面试总结! 软件测试面试常见问题通常分为两大类,一类是考察你的专业技能,另一类是考察你的稳定性、努力程度、情商等因素。并且所有初级测试工程师的面试题中我发现超过90%都是基础性的面试题,2020年只要掌握功能测试和接口测试,然后有一定的自动化基础,再加上面试的时候态度ok
继续访问

软件测试包装简历项目(医疗类型),适合刚入行的测试小白编写简历。
在传统的医疗行业现状下,患者对医院缺乏了解、信息不对称,而看病难、看病烦、服务不到位导致医患关系紧张,部分医院品牌形象缺乏。在移动互联网时代,只需轻动手指,则一站式改善就医体验。 本项目总共有2个端,前端是提供给患者使用的App端,后端是便于医院管理的web端。 我们的案例主要以“模拟面试情景+项目介绍”的形式给大家进行讲解。项目的重要模块都已经提取出来,会展示模块的测试点,重要的bug阐述,以及相应的项目周期、人员配置、用例、bug数量的输出。 我们也会提供出项目的操作界面地址供大家点击操作,大家可以通过实际操作写一些测试用例练手。 本项目主要适合刚入行的测试小白编写简历和准备项目。
职场和发展
软件测试

⑹ C语言课程设计~~~ 要求编写一段程序,题目是《校际运动会管理系统》

我这是源代码已经调试过了,在VC++上运行成功了。
#include "stdio.h" /*I/O函数*/
#include "stdlib.h" /*其它说明*/
#include "string.h" /*字符串函数*/
#include "conio.h" /*屏幕操作函数*/
#include "mem.h" /*内存操作函数*/
#include "ctype.h" /*字符操作函数*/
#include "alloc.h" /*动态地址分配函数*/
struct score
{
int mingci;
char xuehao[8];
char mingzi[20];
float score[6];
}data,info[1000];
int i,j,k=0;
char temp[20],ch;
FILE *fp,*fp1;

void shuru()
{
if((fp=fopen("s_score.txt","ab+"))==NULL)
{
printf("cannot open this file.\n");
getch();exit(0);
}
for(i=0;i<=1000;i++)
{
printf("\nPlease shuru xuehao:");
gets(data.xuehao);
printf("Please shuru mingzi:");
gets(data.mingzi);
printf("Please shuru yuwen score:");
gets(temp);data.score[0]=atof(temp);
printf("Please shuru shuxue score:");
gets(temp);data.score[1]=atof(temp);
printf("Please input yingyu score:");
gets(temp);data.score[2]=atof(temp);
printf("Please shuru wuli score:");
gets(temp);data.score[3]=atof(temp);
printf("Please shur huaxue score:");
gets(temp);data.score[4]=atof(temp);
data.score[5]=data.score[0]+data.score[1]+data.score[2]+data.score[3]+data.score[4];
fwrite(&data,sizeof(data),1,fp);
printf("another?y/n");
ch=getch();
if(ch=='n'||ch=='N')
break;
} fclose(fp);
}
void xianshi()
{
float s;int n;
if((fp=fopen("s_score.txt","rb+"))==NULL)
{
printf("Cannot reading this file.\n");
exit(0);
}
for(i=0;i<=1000;i++)
{
if((fread(&info[i],sizeof(info[i]),1,fp))!=1)
break;
}
printf("\nxuehao mingzi yuwen shuxue yingyu wuli huauxue zhongfen\n");
for(j=0,k=1;j<i;j++,k++)
{
info[j].mingci=k;
printf("%6s %8s %3.1f %3.1f %3.1f %3.1f %3.1f %3.1f\n",info[j].xuehao,info[j].mingzi,info[j].score[0],info[j].score[1],info[j].score[2],info[j].score[3],info[j].score[4],
info[j].score[5]);
}
getch();
fclose(fp);
}

void xiugai()
{
if((fp=fopen("s_score.txt","rb+"))==NULL||(fp1=fopen("temp.txt","wb+"))==NULL)
{
printf("Cannot open this file.\n");
exit(0);
}
printf("\nPLease shuru xiugai xuehao:");
scanf("%d",&i); getchar();
while((fread(&data,sizeof(data),1,fp))==1)
{
j=atoi(data.xuehao);
if(j==i)
{
printf("xuehao:%s\nmingzi:%s\n",data.xuehao,data.mingzi);
printf("Please shuru mingzi:");
gets(data.mingzi);
printf("Please shuru yuwen score:");
gets(temp);data.score[0]=atof(temp);
printf("Please shuru shuxue score:");
gets(temp);data.score[1]=atof(temp);
printf("Please input yingyu score:");
gets(temp);data.score[2]=atof(temp);
printf("Please input wuli score:");
gets(temp);data.score[3]=atof(temp);
printf("Please input huaxue score:");
gets(temp);data.score[4]=atof(temp);
data.score[5]=data.score[0]+data.score[1]+data.score[2]+data.score[3]+data.score[4];

} fwrite(&data,sizeof(data),1,fp1);
}
fseek(fp,0L,0);
fseek(fp1,0L,0);
while((fread(&data,sizeof(data),1,fp1))==1)
{
fwrite(&data,sizeof(data),1,fp);
}

fclose(fp);
fclose(fp1);
}
void chazhao()
{
if((fp=fopen("s_score.txt","rb"))==NULL)
{
printf("\nCannot open this file.\n");
exit(0);
}
printf("\nPLease shuru xuehao chakan:");
scanf("%d",&i);
while(fread(&data,sizeof(data),1,fp)==1)
{
j=atoi(data.xuehao);
if(i==j)
{
printf("xuehao:%s mingzi:%s\nyuwen:%f\n shuxue:%f\n yingyu:%f\n wuli:%f\n huaxue:%f\n ",data.xuehao,data.mingzi,data.score[0],data.score[1],data.score[2],data.score[3],data.score[4],data.score[5]);
}getch();
}
}
void shanchu()
{
if((fp=fopen("s_score.txt","rb+"))==NULL||(fp1=fopen("temp.txt","wb+"))==NULL)
{
printf("\nopen score.txt was failed!");
getch();
exit(0);
}
printf("\nPlease input ID which you want to del:");
scanf("%d",&i);getchar();
while((fread(&data,sizeof(data),1,fp))==1)
{
j=atoi(data.xuehao);
if(j==i)
{

printf("Anykey will delet it.\n");
getch();
continue;
}
fwrite(&data,sizeof(data),1,fp1);
}
fclose(fp);
fclose(fp1);
remove("s_score.txt");
rename("temp.txt","s_score.txt");
printf("Data delet was succesful!\n");
printf("Anykey will return to main.");
getch();
}
main()
{
while(1)
{
clrscr(); /*清屏幕*/
gotoxy(1,1); /*移动光标*/
textcolor(YELLOW); /*设置文本显示颜色为黄色*/
textbackground(BLUE); /*设置背景颜色为蓝色*/
window(1,1,99,99); /* 制作显示菜单的窗口,大小根据菜单条数设计*/
clrscr();
printf("*************welcome to use student manage******************\n");
printf("*************************menu********************************\n");
printf("* ========================================================= * \n");
printf("* 1>shuru 2>xiugai * \n");
printf("* 3>shanchu 4>chazhao * \n");
printf("* 5>xianshi 6>exit * \n");
printf("* * \n");
printf("* --------------------------------------------------------- * \n");
printf(" Please input which you want(1-6):");
ch=getch();
switch(ch)
{
case '1':shuru();break;
case '2':xiugai(); break;
case '3':shanchu(); break;
case '4':chazhao(); break;
case '5':xianshi(); break;
case '6':exit(0);
default: continue;
}
}

⑺ c语言课程设计学分管理程序

程序设计基础实训

项目名称:
学生学分管理

系 别: 计算机工程系
专 业: 计算机网络技术
班 级: 0922211
学生姓名:
指导教师: 韦立蓉

北 京 信 息 职 业 技 术 学 院
2010年 1 月 日

一、项目背景介绍
(概要介绍此项目设计的意义和毁闭要含磨求)
本程序为学生学分管理系统。本程序根据现实中的问题通过c语言形式编程。本程序要求能够登记学分,显示学分查询学分,修改学分,删除学分,统计学分。

二、程序功能描述:
(描述基本程序中每个函数的功能,给处各函数流程图)

1、
登记单流程图

2、
显示学分流程图
3、
查询学分流程图

4、
修改信息流程图

5、
删除信息流程图

6、
统计信息流程图

三、设计方案介绍
(基本思想函数调用的思路介绍)
1、主流程图

2、界面设计
(界面设计,函数的定义,功能设计、,罗列出所有需要解决的问题
函数调用问题,循环问题,查找问题,修改问题,查询问题,删除问题,比较问题。

3、变量定义
序号 变量名 变量性质(局部/全局) 功能 作用范围
1 typedef 全局 定义结构体类型 整体
2 Int 全局 定义五门课类型 整体
... Char 全局 定义学号班级姓名类型 整体

5、函数调用的类型

四、测试与分析
(简要介绍测试的作用及意义)
测试可以知道所编写的程序是否可行,通过实际的测试可以找出程序是否符合现实。通过测试和反复修改可以使程序更加人性化。
(一)测试列表
(以表格的形式给出,不少于10个)
测试数据或执行操作 执行结果 是否正确 测试人签名
调用主菜单 显示了主菜单 正确
选择主菜单里的1 请输入学生学生信息纤老裂…. 正确
输出 有重复有乱码 否
查询 无 否
修改 按学号修改……. 是
按学号查询 显示了该信息 是
按班级查询 只显示里一名同学的信息 否
按学好删除 删除成功 是
须补考基础课的 所有学生信息都显示 否
可升学学生 显示了该显示的信息 是

(二)测试结果分析
(根据以下表格,如实填写并签名)
bug个数 错误类型 错误原因分析 是否修改 设计者签名
1 与count声名中的类型不匹配 少了void count() 是
2 错误 jia.c 19: 表达式语法错在 main 函数中 Scanf中少了&s 是
4 错误 jia.c 31: do语句中必须有while关键字在 main 函数中 没写while 是
5 错误 jia.c 30: 未定义的符号's'在 main 函数中 上面没int I; 是
6 错误 1.c 335: 表达式语法错在 count 函数中 Switch() 括号里没有变量 是
7

五、实训总结
(总结实训过程中的所使用的知识和已实现的功能,总结自己掌握理论知识和动手能力的程度,提出自己的不足之处及改进措施)

通过这一周的实训。我们充分运用了所学的东西编出了解决实际问题的程序。我们运用了函数的调用,循环,定义,比较,查找,删除等知识。通过实际动手,我更加深入的了解了课本上的知识。同时提高了我的动手能力。
实训中我找到了我许多的不足,以前我遇到不董的就会直接去问别人,不独自思考。试训中我学会了独自思考和团队合作。虽然我在编程当中遇到许多问题,但经过独自思考和学习解决了问题。最后编出了管理程序。
C语言学生学分管理程序代码

typedef struct student
{ char num[11],name[7],class[10];
int jichu,renwen,xuanxiu,zhuanye,shiyan;
}STU;
STU st[37];
static int n;
void menu();
void input();
void print();
void query();
void modi();
void del();
void count();
main()
{ int s;
do{
menu();
printf("\n\t\t\t\t 请选择:");
scanf("%d",&s);
switch(s)
{ case 0:break;
case 1:input();break;
case 2:print();break;
case 3:query();break;
case 4:modi();break;
case 5:del();break;
case 6:count();break;
default:printf("选择无效!");
}
}while(s!=0);
getch();
}
void menu()
{ clrscr();
printf("\t\t\t****************************\n");
printf("\t\t\t********欢迎您的使用********\n");
printf("\t\t\t******学生学分管理程序******\n");
printf("\t\t\t*** 1-登记学生学分 ***\n");
printf("\t\t\t*** 2-显示学生学分 ***\n");
printf("\t\t\t*** 3-查询学生学分 ***\n");
printf("\t\t\t*** 4-修改学生学分 ***\n");
printf("\t\t\t*** 5-删除学生学分 ***\n");
printf("\t\t\t*** 6-统计学生学分 ***\n");
printf("\t\t\t*** 0-退出 ***\n");
printf("\t\t\t****************************\n");
}
void input()
{ do
{ printf("请输入学生信息:学号 姓名 班级 基础课 专业课 选修课 人文课 实验课\n");
scanf("%s%s%s%d%d%d%d%d",st[n].num,st[n].name,st[n].class,&st[n].jichu,&st[n].zhuanye,&st[n].xuanxiu,&st[n].renwen,&st[n].shiyan);
n++;
printf("是否继续输入?(n-退出,任意键继续):");
}while(getche()!='n');
}
void print()
{ int i;
printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n");
for(i=0;i<n;i++)
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);
getch();
}
void menu1()
{ clrscr();
printf("\t\t\t*****************************\n");
printf("\t\t\t***********查询模块**********\n");
printf("\t\t\t*** 1-按学号查询 ***\n");
printf("\t\t\t*** 2-按姓名查询 ***\n");
printf("\t\t\t*** 3-按班级查询 ***\n");
printf("\t\t\t*** 0-退出 ***\n");
printf("\t\t\t*****************************\n");
}
void query1()
{ char sn[11];
int i;
printf("请输入要查询的学号:");
scanf("%s",sn);
for(i=0;i<n;i++)
if(strcmp(sn,st[i].num)==0)
{printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n");
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);
printf("\按任意键继续");
break;
}
else printf("\n对不起!没有该学号,任意键继续");
getch();
}
void query2()
{ char sn[7];
int i;
printf("请输入要查询的姓名:");
scanf("%s",sn);
for(i=0;i<n;i++)
if(strcmp(sn,st[i].name)==0)
{printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n");
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);
printf("\按任意键继续");
break;
}else printf("\n对不起!没有该姓名,任意键继续");
getch();
}
void query3()
{ char sn[10];
int i;
printf("请输入要查询的班级:");
scanf("%s",sn);
for(i=0;i<n;i++)
if(strcmp(sn,st[i].class)==0)
{printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n");
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);
printf("\按任意键继续");
break;
}
else printf("\n对不起!没有该班,任意键继续");
getch();
}
void query()
{ int s;
do{
menu1();
printf("\n\t\t\t\t 请选择:");
scanf("%d",&s);
switch(s)
{ case 0:break;
case 1:query1();break;
case 2:query2();break;
case 3:query3();break;
default:printf("选择无效!");
}
}while(s!=0);
getch();
}
void menu2()
{ clrscr();
printf("\t\t\t*****************************\n");
printf("\t\t\t***********修改模块**********\n");
printf("\t\t\t*** 1-按学号修改 ***\n");
printf("\t\t\t*** 2-按姓名修改 ***\n");
printf("\t\t\t*** 3-按班级修改 ***\n");
printf("\t\t\t*** 0-退出 ***\n");
printf("\t\t\t*****************************\n");
}
void modi1()
{ char sn[11];
int i;
printf("请输入要修改学分学生的学号:");
scanf("%s",sn);
for(i=0;i<n;i++)
if(strcmp(sn,st[i].num)==0)
{printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n");
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);
{printf("请输入学生学分信息:学号 姓名 班级 基础课 专业课 选修课 人文课 实验课\n");
scanf("%s%s%s%d%d%d%d%d",st[i].num,st[i].name,st[i].class,&st[i].jichu,&st[i].zhuanye,&st[i].xuanxiu,&st[i].renwen,&st[i].shiyan);

printf("是否继续输入?(n-退出,任意键继续):");
}while(getche()!='n');
break;
}
getch();
}
void modi2()
{ char sn[7];
int i;
printf("请输入要修改学分学生的姓名:");
scanf("%s",sn);
for(i=0;i<n;i++)
if(strcmp(sn,st[i].name)==0)
{printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n");
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);

{printf("请输入学生学分信息:学号 姓名 班级 基础课 专业课 选修课 人文课 实验课\n");
scanf("%s%s%s%d%d%d%d%d",st[i].num,st[i].name,st[i].class,&st[i].jichu,&st[i].zhuanye,&st[i].xuanxiu,&st[i].renwen,&st[i].shiyan);

printf("是否继续输入?(n-退出,任意键继续):");
}while(getche()!='n');
break;
}
getch();
}
void modi3()
{ char sn[10];
int i;
printf("请输入要修改学分学生的班级:");
scanf("%s",sn);
for(i=0;i<n;i++)
if(strcmp(sn,st[i].class)==0)
{printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n");
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);

{printf("请输入学生学分信息:学号 姓名 班级 基础课 专业课 选修课 人文课 实验课\n");
scanf("%s%s%s%d%d%d%d%d",st[i].num,st[i].name,st[i].class,&st[i].jichu,&st[i].zhuanye,&st[i].xuanxiu,&st[i].renwen,&st[i].shiyan);

printf("是否继续输入?(n-退出,任意键继续):");
} while(getche()!='n');
break;
}
getch();
}
void modi()
{ int s;
do{
menu2();
printf("\n\t\t\t\t 请选择:");
scanf("%d",&s);
switch(s)
{ case 0:break;
case 1:modi1();break;
case 2:modi2();break;
case 3:modi3();break;
default:printf("选择无效!");
}
}while(s!=0);
getch();
}
void menu3()
{ clrscr();
printf("\t\t\t*****************************\n");
printf("\t\t\t***********删除模块**********\n");
printf("\t\t\t*** 1-按学号删除 ***\n");
printf("\t\t\t*** 2-按姓名删除 ***\n");
printf("\t\t\t*** 3-按班级删除 ***\n");
printf("\t\t\t*** 0-退出 ***\n");
printf("\t\t\t*****************************\n");
}
void del1()
{ char sn[11];
int i,j;
printf("请输入要删除学分学生的学号:");
scanf("%s",sn);
for(i=0;i<n;i++)
if(strcmp(sn,st[i].num)==0)
{printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n");
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);
printf("\n是否删除(任意键确认,n\取消)");
if(getche()!='n');
{if(i!=n-1);
for(j=i;j<n-1;j++)
st[j]=st[j+1];
n--;
printf("\n该记录已删除");
getch();
break ;
}

}
else printf("\n对不起!没有该学号,任意键继续");
}
void del2()
{ char sn[7];
int i,j;
printf("请输入要删除学分学生的姓名:");
scanf("%s",sn);
for(i=0;i<n;i++)
if(strcmp(sn,st[i].name)==0)
{printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n");
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);
printf("\n是否删除(任意键确认,n\取消)");
if(getche()!='n');
{if(i!=n-1);
for(j=i;j<n-1;j++)
st[j]=st[j+1];
n--;
printf("\n该记录已删除");
getch();
break ;
}

}
else printf("\n对不起!没有该学号,任意键继续");
}
void del3()
{ char sn[10];
int i,j;
printf("请输入要删除学分学生的班级:");
scanf("%s",sn);
for(i=0;i<n;i++)
if(strcmp(sn,st[i].class)==0)
{printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n");
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);
printf("\n是否删除(任意键确认,n\取消)");
if(getche()!='n');
{if(i!=n-1);
for(j=i;j<n-1;j++)
st[j]=st[j+1];
n--;
printf("\n该记录已删除");
getch();
break ;
}

}
else printf("\n对不起!没有该学号,任意键继续");
}
void del()
{ int s;
do{
menu3();
printf("\n\t\t\t\t 请选择:");
scanf("%d",&s);
switch(s)
{ case 0:break;
case 1:del1();break;
case 2:del2();break;
case 3:del3();break;
default:printf("选择无效!");
}
}while(s!=0);
getch();
}
void menu4()
{ clrscr();
printf("\t\t\t*****************************\n");
printf("\t\t\t***********统计模块**********\n");
printf("\t\t\t*** 1- 可升学的学生 ***\n");
printf("\t\t\t*** 2-需补考基础课的 ***\n");
printf("\t\t\t*** 3-需补考专业课的 ***\n");
printf("\t\t\t*** 4-需补考选修课的 ***\n");
printf("\t\t\t*** 5-需补考人文课的 ***\n");
printf("\t\t\t*** 6-需补考实验课的 ***\n");
printf("\t\t\t*** 0-退出 ***\n");
printf("\t\t\t*****************************\n");
}

void count1()
{ int i;
printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n");
for(i=0;i<n;i++)
if(st[i].jichu>=60&st[i].zhuanye>=60&st[i].xuanxiu>=60&st[i].renwen>=60&st[i].shiyan>=60)
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);

getch();

}
void count2()
{ int i;
printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n");
for(i=0;i<n;i++)
if(st[i].jichu<60&st[i].zhuanye>=60&st[i].xuanxiu>=60&st[i].renwen>=60&st[i].shiyan>=60)
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);

getch();
}void count3()
{ int i;
printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n");
for(i=0;i<n;i++)
if(st[i].jichu>=60&st[i].zhuanye<60&st[i].xuanxiu>=60&st[i].renwen>=60&st[i].shiyan>=60)
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);

getch();
}
void count4()
{ int i;
printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n");
for(i=0;i<n;i++)
if(st[i].jichu>=60&st[i].zhuanye>=60&st[i].xuanxiu<60&st[i].renwen>=60&st[i].shiyan>=60)
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);

getch();
}
void count5()
{ int i;
printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n");
for(i=0;i<n;i++)
if(st[i].jichu>=60&st[i].zhuanye>=60&st[i].xuanxiu>=60&st[i].renwen<60&st[i].shiyan>=60)
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);

getch();
}
void count6()
{ int i;
printf("\n序号\t学号\t 姓名\t班级\t基础课\t专业课\t选修课\t人文课\t实验课\n");
for(i=0;i<n;i++)
if(st[i].jichu>=60&st[i].zhuanye>=60&st[i].xuanxiu>=60&st[i].renwen>=60&st[i].shiyan<60)
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);

getch();
}
void count()
{ int s;
do{
menu4();
printf("\n\t\t\t\t 请选择:");
scanf("%d",&s);
switch(s)
{ case 0:break;
case 1:count1();break;
case 2:count2();break;
case 3:count3();break;
case 4:count4();break;
case 5:count5();break;
case 6:count6();break;

default:printf("选择无效!");
}
}while(s!=0);
getch();
}

⑻ 用C语言编写一个程序,来解决你们化学、生物专业(行业)内的一个问题。

1. 输入分子式 得到分子咐枝槐式个数 确定变搭缺量 2.左右截取字符 大写字母为界限 3 平衡原则 确定方程 4 解方程 ex: 2Al+3CuSO4=3Cu+Al2(SO4)3 4个分子式 确定变量 abcd 截取字符 得到AL Cu S O 左右同时截取 得到 方程 a=d*2 b=c b=3*d 解方程 选择最小的INT型衡友

⑼ 学c语言如何做出有界面的程序

1、新建一个C项目,点击文件,新建,项目,选择C++Win32控制台应用。

⑽ C语言程序设计 学生成绩管理信息系统

我还有代码呢,要的话,马上帖出来..给个红棋吧,呵呵

一、 课题设计名称
学生成绩管理信息系统分析设计
二、 课题设计目的
通过本次课程的设计,加深对信息系统基础理论和基本知识的理解,掌握使用信息系统分析、设计的基本方法,提高解决实际管理问题、开发信息系统的实践能力。
三、 任务要求:
用信息系统开发工具(例如Visual Foxpro、Visual Basic、Delphi等)开发一个实用的中小型管理信息系统。
1、根据课程设计时间选择适当规模大小的设计课题。
2、根据合理的进度安排,按照系统开发的流程及方法,踏实地开展课程设计活动。
3、课程设计过程中,根据选题的具体需求,在开发各环节中撰写相关的技术文档(小组各成员可分别完成某阶段的技术文档),最后要求提交详细的课程设计报告。
4、开发出可以运行的管理信息系统,通过上机检查。
四、 课题设计报告书要求:
1、 课题设计报告书第一页为封面,封面上写清楚标题、班级、姓名、指导老师、完成日期,格式自己设计。
2、 课题设计报告书第二页为本任务书。
3、 课题设计报告书第三页为教师评语。
4、 课题设计报告书第四页为目录。
5、 课题设计报告书第五页开始为具体内容:

(1)可行性分析
(2)系统分析部分
1)业务流程图
2)数据流程图
3)功能分析图
4)数据字典
5)数据加工处理的描述
6)管理信息系统流程设想图(新系统模型)
(3)系统设计部分
1)功能结构图设计
2)新系统信息处理流程设计
3)输出设计(主要指打印输出设计)
4)存储文件格式设计(数据库结构设计)
5)输入设计(主要指数据录入卡设计)
6)代码设计(职工证号和部门代号等)
7)程序设计说明书
(4)附录或参考资料

6、课题设计报告书最后一页是本次课程设计的小节和参考文献。
7、字数要求不少于4000字。
8、打印纸张使用B5纸,页边距设为上、下、左2厘米,右1.5厘米,
五、 如有雷同,将作不及格处理。
六、 完成时间:2007.1.5
计算机二系
尚晋
2007.10.28
教师评语

评分模块 评分标准及分值 得分
平时成绩(20分) 1. 态度(10分)
2. 考勤(10分)
分析与设计部分
(65分) 3. 需求分析(5分)
4. 系统复杂度(5分)
系统分析部分(20分) 5. 业务流程图(5分)
6. 数据流程图(5分)
7. 功能分析图(3分)
8. 数据字典(7分)
系统设计部分
(35分) 9. 系统配置方案设计(5分)
10. 用户界面导航图(5分)
11. 界面设计(5分)
12. 有效性验证(5分)
13. 错误处理(5分)
14. 编码设计(5分)
15. 数据库设计(5分)
报告部分(10分) 16. 条理清晰、语言精练准确(5分)
17. 描述图形工具使用恰当(5分)
组长加分(5分) 18. 组织得力,合作完成情况好(5分)
总分(100分)

成绩:

学生成绩管理信息系统
1. 系统规划

1.1项目开发的背景
伴随着信息社会的到来,信息的极大丰富必然要求人们适应信息社会,信息和材料、能源一样成为一种社会的基本生产资料,在人类的社会生产活动中发挥着重要的作用,其中最重要的前提就是充分利用人们的才智和学习能力。传统的教学只教会了学生相关的知识,没有教会学生如何利用这些知识,以及再学习的能力。特别对于“管理信息系统”这类实用性比较强的课程,更需要培养学生的实际动手能力。.教与学互动与结合,强调应用,不仅让学生了解课程上讲授的管理信息系统方法和原理,而且让学生们利用这些知识解决实际问题。这对学生的实际工作能力是一个很好的锻炼。密切结合学生独立完成的系统开发作业,通过指导教师的点评,使学生能够在较短的时间内,通过实践,真正掌所学的知识。同时人们对信息和数据的利用与处理也已经进入了自动化、网络化和社会化的阶段,因此,开发相关的管理信息系统已经成为各行各业的必要和必需了,管理信息系统作为一门边缘学科,集管理科学、信息科学、系统科学、现代通信技术和电子计算机技术于一体,可以解决企业或组织所面临的问题,对于成绩管理员的劳动强度、提高工作质量和效率;方便管理人员对信息的查询、提高信息资源的利用效率和管理水平都具有重要意义。
1.2 可行性分析
基于以上对问题的调查和分析,利用计算机给我们提供的信息,及时地了解学生的信息,并且形成一整套动态的管理就十分必要了。本系统开发的主要目的是对学生信息和成绩的实现计算机管理。学生管理系统的建立,是在进行对大量用户需求与调查分析得到的。
(1)技术可行性
成绩管理系统主要是用于计算机教育部关于教学计划、课程、教师信息、成绩的查询和管理。通过使用Microsoft公司提供的Visual FoxPro 6.0工具以及SQL Server数据库可以实现对有关课的教学计划、课程等的网上查询和管理,主要目的是对学生成绩实现计算机管理。
(2)经济可行性
开发学生成绩管理系统费用较底,可利用现有的微机设备,经济上是可行的,非常适合于成绩管理,因为该系统实现了将管理和查询网络
化,极大地方便了管理员、教师、学生。
(3)操作可行性
本系统的界面设计简单直观,易于理解。它使用的控件都是用户常用的或常见的,操作起来很容易上手。不需要特别的培训和讲解,用户便能使用该系统。
(4)组织与管理可行性
成绩管理员是对学生的成绩进行管理的,但过去由于采用人工方法进行管理,工作效率低,劳动强度大,所以他们希望采用计算机管理,将已有的管理经验转化到管理软件中。这就使得系统调查、需求分析能够得到有关人员的大力支持和积极配合。
1.3 制定系统开发计划
开发学生成绩管理系统的计划见表1-1
表1-1 实验小学学生成绩管理系统开发简略计划表

序号 项目内容 时间进度 项目负责人
1 系统规划和可行性分析 2007年12月 向万秀
2 系统分析 2007年12月 张春先、向万秀、刁胜
3 系统设计 2007年12月 向万秀、张春先
4 系统实施与测试 2007年12月 向万秀
5 系统评价与维护 2007年12月 张春先
6 安全保障措施 2007年12月 向万秀、张春先

2系统分析
1现行系统业务流程的调查
对某学校进行实地调查,其现行的成绩管理工作都是采用传统的手工管理,经过对成绩管理员、学生和教师的全面的调查研究,手工工作效率低,工作质量差,不适合现在学校成绩管理系统的需求,所以需要改进传统的成绩管理模式。实现科学化管理。
对现行系统的调查业务流程图如下图1-1所示:

学生

1-1 业务流程图
2 需求分析
(1) 功能描述
本系统包括用户管理、学生注册、班级信息录入、学生信息录入、班级课程录入、学校专业信息录入、课程信息录入、学生成绩录入、教师信息录入、各方面的查询等等。
1.教学管理功能
① 新本学期所开设课程的录入与查询:例如在2006年上学期开设课程:C语言与经济数学。
说明:所有的课程成绩均由三部分组成:平时成绩,上机成绩, 笔试成绩。所占的比重分别为:30%,10%,60%,在该系统中这三部分及其比重是固定不变的。
② 对各系科的课程安排的录入与查询,课程安排即是该学期每个学科
的选课课程、任课教师以及上课时间和上课地点。
说明:每一个院系中所有的不同专业所选的课程都是一样的。但是同一院系的学生不一定有同一个教师授课。
(2).成绩管理的功能(教师使用)如下:
① 录入成绩:既可以单个录入也可以批量录入,其中批量录入以成绩单单位,每次从系统中调出一张成绩单,编辑完成后一次性提交。
成绩单:成绩单包括学期、院系、专业、课程、任课教师、学生成绩。
② 查询成绩:单个查询(学生可使用),根据学生的学号或姓名查询出该学生的所有课程的成绩信息。批量查询以成绩单为单位,每次查询出一张成绩单。
③ 打印成绩:可以一次打印一张成绩单,也可以按要求批量打印。
④ 统计调整:对成绩单中的成绩进行统计,指出各个分数段的人数分布情况。因为有时学生的成绩整体上偏低,需要进行调整,一次系统可以按照用户设置的规则对成绩单中的成绩进行调整。
成绩调整规则:将成绩单中总分在某一分数段的学生成绩调整到另外一个分数段。例如将50到60分的学生成绩全部调整到60到65分之间。为了使调整过程尽可能合理,还可以对待调整分数段的学生成绩进行限制,例如设置其笔试成绩必须在50分以上,而平时成绩则可以适当放宽。
⑤ 每学期考试不及各的学生自动纳入新学期的跟考或辅修教学计划中。
(3).权限说明:
① 管理员可使用功能:教师信息管理、系科显示、课程管理、教学计划管理、学生成绩查询;
② 教师可使用成绩管理各项功能:对学生成绩的添、删除、修改、查询、分析、调整;
③ 学生可使用的功能:查询单个学生所有成绩,班级成绩,学生平均成绩,最高分,最低分等。
为学校教师和学生提供快捷的查询手段,让老师和学生能够及时查询学生成绩信息,更快而又方便的进行查询。
(4).性能要求
本系统采用计算机对学生成绩进行管理,进一步提高办学效益和现代化水平。帮助广大教师提高工作效率,实现学生成绩信息管理工作流程的系统化、规范化和自动化。如果本系统能被学校所采用,将会改变以前靠手工管理学生成绩的状况,可以树立良好的办学形象,提高工作效率。由于现在实行九年义务教育,学校学生不断增加,该系统可高效的进行大规模的查询。系统的安全保密性高,能防止非法访问。
3新系统的逻辑模型的建立

(1) 新开发的学生成绩管理系统的功能分析
在学生成绩管理信息系统中,主要有三类外部实体:学生、教师、教务处工作人员。学生成绩管理信息系统的大部分功能是为教务处工作人员设置的。经调查分析,新开发飞的学生成绩管理信息系统应具有以下的功能。
(1.1) 查询学生的基本信息和成绩信息,包括学生信息的添加、修改、删除等。
(1.2) 管理学生成绩,包括考试管理,成绩管理等。
(1.3) 成绩的处理,即统计成绩、分析成绩等。

(2) 绘制数据流图
绘制数据流图时,只考虑学生和教务处两个外部实体,顶层数据流图如图1-2所示。

学生成绩录入 教师课程信息

学生成绩单
学生登录信息
学生选课信息 辅修/跟考通知单

用户名、密码 部门信息
课程类型 学生成绩信息
课程信息 学生考试信息

图1-2 顶层数据流图
0层数据流如图1-3所示。由于1层图没有完整绘制,0层图中只属于一个加工的文件(例如权限表)也在0层图上出现。
0层数据流图通过反应整个系统中不同数据流向,来揭示系统的组成结构以及各组成部门之间的关系,这种关系主要体现在对数据的操作和处理上。

用户名、密码
学生信息
部门信息
学生成绩
学生信息

学生成绩单
成绩类型 辅修/跟考通知

学生成绩 不及格成绩
缺考

图1-3 0层数据流图
学生信息数据流程图如图1-4、1-5所示。

学生信息 审查1.1 合格单 是否新生1.2 新生信息

学生纪录

学生成绩

总学生纪录表及成绩

图1-4 1层数据流图
(3) 数据字典
数据字典是进行数据收集和数据分析所获得的主要成果,是系统中各类数据描述的集合。数据字典通常包括数据项、数据流、数据存储、处理逻辑。

数据项
名称:学生信息
别名:学生信息
说明:学生信息=学生基本信息+学生记录+学生成绩记录
类型:字符型
长度:12
取值范围:0000000000001~99999999999

数据流条目:
合格单=姓名+系别+班级+专业
新生信息=入学时间+姓名+性别+年龄+专业+系别+班级
加工条目:
加工名:审查
编号:1.1
输入:学生信息
输出:合格单
加工逻辑:根据学生信息判断是否是新生

加工逻辑

加工逻辑
加工名:是否是新生
编号:1.2
输入:合格单
输出:新生信息
加工逻辑:根据合格单建立新生信息
加工名:录入、存储学生信息、各科成绩
编号:1。3
输入:新生信息、考试成绩
输出:本次考试成绩

2层数据流图

学号、课程号 有效查询 成绩

考试成绩 成绩单

学生纪录 班级 统计成绩

各科

本次成绩 升留级名单 学生纪录

成绩标准

图1-5 2 层数据流图
数据字典:
数据项
名称:学号、课程号
别名:编号
说明:惟一标识一个学生编号
类型:字符型
长度:12
取值范围:0000000000001~9999999999999

数据存储文件
数据存储条目:
数据存储名称:考试成绩

组成:姓名+班级+专业+系别+成绩+学号

组织方式:索引文件,以学号为关键字

加工处理
加工逻辑
加工名:有效性检查
编号:2。1
输入信息:学号、课程号
输出信息:有效查询
加工逻辑:根据所输入的信息来检查有效性
加工名:查询成绩
编号:2。2
输入信息:考试成绩
输出信息:成绩
加工逻辑:根据考试成绩查询成绩

加工条目:
加工名:统计选择
编号:3。1
输入信息:学生记录
输出信息:按规定统计成绩
加工逻辑:根据所输入学生记录,按班级、单科统计成绩
数据存储条目:
文件名:成绩标准 组成:成绩

加工条目:
加工名:是否升级
编号:4。1
输入信息:本次成绩、成绩标准
输出信息:升留级名单
加工逻辑:根据本次成绩
IF 大于等于标准成绩 ELSE 降级
ENDLF THEN 升级

加工名:更新记录
编号:4。2
输入信息:升留级名单
输出信息:学生记录
加工逻辑:根据升留级名单修学生记录

3.系统设计
1. 系统总体结构设计与功能模块划分及系统功能描述
本系统的主要任务是实现对学校教导处的学生信息管理、成绩管理、课程管理及相关查询。其主要功能包括:
学生成绩管理模块,学生信息管理模块、系统模块等等。
学生信息管理功能
(1)班级管理。提供给班主任进行本班学生的信息更新、删除。
(2)添加学生。以班级为单位,进行学生入库。其中分为单个添加和成批添加。单个添加学生供数量较少的学生信息入库;成批添加可以从现存的学生信息EXCEL文件中成批录入到数据库中。
(3)删除学生。当学生毕业后,学生信息转移备份数据库中,系统的基本数据库中需要删除学生信息。该功能主要进行成批地删除学生信息,如连续学号区段的多位学生信息删除,整个班级的删除,所有学生信息的删除。
(4)新生管理。本部分的功能主要有新生导入、分班、及设置学号。新生导入实现从现存的EXCEL新生名单中录入学生信息。分班功能实现按新生的报考专业、成绩及性别进行分班。设置学号实现自动为各班学生编发学号。
学生信息备份。在学生信息删除前,将其按班级为单位保存到备份数据库。
(5)学生信息模块主要包括对学生信息的存储,审查记录以及学生对学生整个信息的调查进行分类和查找。可以实现添加、修改、删除、查询学生信息管理的调查。
(6)学生基本信息管理功能包括:学生信息、学生记录、学生成绩、总学生记录表和成绩。
(7)学生基本信息包括:学生学号、学生班级号、课程号、学生联系方式等等
(8)课程管理。提供本学期各年级各专业所开课程名称的录入、修改、删除。它是学生成绩管理的基础。用以保证数据库中一致性原则。
2.系统功能分析
系统开发的总体任务是实现学生信息关系的系统化,规范化和自动化。
学生基本信息所需要完成的功能主要有:
●学生信息的输入,包括输入学生基本信息、所在班级、所学课和 成 绩等。
● 学生信息的查询,包括输入学生基本信息、所在班级、已学课程和成绩 等。
● 学生信息的修改。
● 班级管理信息的输入、查询、修改,包括输入班级设置,年级信息等。
● 基本课程信息的输入、查询、修改。
● 学生成绩信息的输入、查询、修改。
对上述各功能进行集中、分块、按照结构化程序设计的要求。
2.绘制学生信息管理模块功能结构图如图

图1-6 学生信息系统管理的功能结构图

3.系统配置方案设计
鉴于本系统的业务性质,必须选择具有较高的可靠性、稳定性和必要的容错能力的计算机硬件和软件系统,以保证任何情况下都不至于丢失、损坏数据。
必须具有较高的响应速度,以保证各项具体业务的顺利进行。
应考虑具有良好的可维护性,可操作性和可扩充性,以保证将来系统规模的扩展和升级的需要。
4.开发与运行环境的使用
开发前台工具:Visual FoxPro 6.0
操作系统对整个网络起着重要的作用,Windows 2000作为一种强健的、多用途的操作系统,不仅能够运行强有力的客户/服务器应用软件,还可以提供可靠的文件与打印服务,再加其内置的通信与Internet/Internet服务功能,以及安装、使用、管理和维护的方便性,因此,本系统采用Microsoft Windows 2000Server作为操作系统。
本系统准备采用客户机/服务器(C/S)结构模式。C/S结构的最大优势在于广泛采用了网络技术,将系统中的各部分任务分配给分布在网络上的担任不同角色的计算机。把较复杂的计算机管理任务交给服务器完成。再把一些频繁与用户打交道的任务交给客户机完成。通过这种结构完全实现了网络上信息资源的共享。
开发基于C/S结构的管理系统所用到的开发工具包括前台开发工具和后台数据库管理系统,主要根据开发者对开发工具的熟悉程度而定。本系统的前端开发工具采用Visual FoxPro 6.0。
5.编码(Code)设计
6.数据库设计
(1) 概念结构设计
经过本次实验,概念结构设计的主要工作是根据用户需求设计概论性数据模型。概念模型是一个面向问题的模型,它独立于具体的数据库管理系统,从用户的角度看待数据库,反映用户的现实环境,与将来数据库如何实现无关。概念模型设计的典型方法是E-R方法,即用实体—联系模型表示。
E-R方法使用E-R图来描述现实世界,E-R图包含三个基本成分:实体、联系、属性。E-R图直观易懂,能够比较准备地反映现实世界的信息联系,从概念上表示一个数据库的信息组织情况。
实体:是指客观世界存在的事物,可以是人或物,也可以是抽象概念。E-R图中各实体的关系说明如下。
学号记载学生成绩管理系统中所登记的一类编号,而所有的学生姓名是所代表的是学生的代码。中两个实体之间为一对多关系。
学生可以选择多门课程,一门课程可以有多个学生选择。其中本系统中E-R图包括学生性别、出生日期等等。课程中包括课程号、课程名、教师姓名等等。

M N

学生与课程之间的关系

课程名是惟一的,而选课的学生是多个的,这两个实体之间为一对一关系。
一个学校有多位老师,这两个实体之间为一对多关系。
学生与课程表中的同一课程对应多个不同的老师与学生,这两个实体间为一对多关系。