c语言程序界面设计(c语言编写界面程序)

http://www.itjxue.com  2023-02-24 01:45  来源:未知  点击次数: 

如何用C语言设计一个程序模拟有图形界面的计算器

首先,打开Vs 2010,如图

然后,找到左上角的新建并点击,给文件为简单计算器,单击确定,点击下一步,注意勾选空项目,点击下一步,点击完成

点击左侧的源文件,右击选择“添加—项目”,选择C++文件,命名为简单计算器,因为是C程序,注意后缀名要加上.c,点击确定完成文件新建工作

输入以下代码,好了,一个简单的计算器便做好了

用C语言设计一个学生信息查询系统程序

1、首先创建一个c语言项目。然后右键头文件,创建一个Stu的头文件。

2、编写头文件的代码。再将数据结构的增删改查和结构体写入头文件。

3、在源文件中创建main源文件和Stu源文件。再main文件中写入int mian()代码。

4、然后在mian主函数中,写入while语句无限循环。再写入Init函数。

5、在Stu源文件的Init函数用printf语句,将学生管理系统输出。再创建链表的头节点head。

6、然后用switch函数对操作进行判断。再执行数据结构的增删改查功能。这样一个学生管理系统的基本框架就完成了。

C语言课程设计的欢迎界面 我做了愿程序,现在需要添加欢迎界面 做成我发的图的样式 不会弄 求帮忙

?#includestdio.h

#includestdlib.h

#includemath.h

#include?windows.h

#define?pi?3.14

int?cc;

int?welcome0(void)

{

?printf("\n\n\n\n\n\n");

?printf("\t\t\t~*************欢迎进入经典算法系统*************~\n");

?printf("\n\n\n");

?printf("\t\t\t~*************制作者:??小路?2013年6月*************~\n");

?printf("\n\n\n");

?printf("\t\t\t~*************按任意键进入主菜单*************~");

?while(getchar()?==?0);

?system("CLS");

?return?0;

}

int?main_menu(void)

{

?int?flag?=?0;

?system("CLS");

?printf("\n\n\n\n\n\n");

?printf("\t\t\t\t~***************************************~\n");

?printf("\n\n\n");

?printf("\t\t\t\t??????????????主菜单?????????????????????\n");

?printf("\n\n\n");

?printf("\t\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?0,退出系统\n");

?printf("\t\t\t?请选择输入选项[0/1/2/3/4]:");

?scanf("%d",?cc);

?while(flag?==?0)

?{

??if((cc==0)||(cc==1)||(cc==2)||(cc==3)||(cc==4))

??{?

???flag?=?1;

??}else

??{

???system("CLS");

???printf("\n\n\n\n\n\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?0,退出系统\n");

???printf("\t\t\t?请选择输入选项[0/1/2/3/4]:");

???fflush(stdin);

???scanf("%d",?cc);

??}

?}

}

float??cfxmj(float?a,float?b)

{

???float?area;

??area=a*b;

return?area;

}

float??zfxmj(float?a)

{

float?area;

area=a*a;

return?area;

}

float?sjxmj(float?a,float?b,float?c)

{

?float?area,s;

?s=(a+b+c)/2;

?area=sqrt(s*(s-a)*(s-b)*(s-c));

return?area;

}

float?arc(float?r)

{

??float?s;

s=pi*r*r;

return?s;

}

void?main()

{

??float?a,b,c,r;

??welcome0();

??while(1)

??{

??main_menu();

??switch(cc)

??{

??case?1:

???fflush(stdin);

????printf("输入长方形的长和宽:");

????scanf("%f%f",a,b);

????printf("长方形面积为:%f\n\n\n\n",cfxmj(a,b));

???break;

??case?2:

???fflush(stdin);

???printf("输入正方形的边长:");

???scanf("%f",a);

???printf("正方形面积为:%f\n\n\n\n",zfxmj(a));

???break;

??case?3:

???fflush(stdin);

?printf("输入三角形的三条边:");

?scanf("%f%f%f",a,b,c);

?printf("三角形面积为:%f\n\n\n\n",sjxmj(a,b,c));

???break;

??case?4:

?fflush(stdin);

?printf("输入圆的半径:");

?scanf("%f",r);

?printf("圆的面积为:%f\n\n\n\n",arc(r));

???break;

??case?0:

???return;

???break;

??}

??system("pause");

??}

}

大神帮忙写一篇C语言程序设计综合性实验

#include?stdio.h

#include?string.h

#include?ctype.h

#define?MAXSIZE?36

struct?Word?{

char?word[MAXSIZE];

unsigned?size;

}words[10000];

int?n?=?0;

void?Sort()?{

//?没有时间写了

}

void?Additive(char?word[])?{

int?i,flag?=?1;

for(i?=?0;?i??n??flag;?++i)?{

if(strcmp(words[i].word,word)?==?0)?{

++words[i].size;

flag?=?0;

}

}

if(flag)?{

strcpy(words[n].word,word);

words[n].size?=?1;

++n;

}

}

int?main()?{

int?i,ch;

char?word[MAXSIZE];

FILE?*fin?=?fopen("case1.in","rt");

if(fin?==?NULL)?{

printf("无法打开数据文件!\n");

return?1;

}

i?=?0;

while((ch?=?fgetc(fin))?!=?EOF)?{

if(isalpha(ch))?word[i++]?=?tolower(ch);

else?if(i)?{

word[i]?=?'\0';

i?=?0;

Additive(word);

}

}

if(i)?{

word[i]?=?'\0';

Additive(word);

}

fclose(fin);

Sort();

return?0;

}

c语言程序设计

具体的设计方法,可以参考如下代码:

#include stdio.h

#include string.h

#include iostream.h

#include stdlib.h

#include windows.h

typedef struct studentinfo //结构体定义

{

int num;//学号

char name[64];//姓名

int sex;//性别,1为男性,0为女性

float math;//数学

float english;//英语

float politic;//政治

float chinese;//语文

float total;//总成绩

struct studentinfo *next;

}STUDENT;

#define FILENAME "D:\\1.txt"

//定义默认的数据库文件

#define DELAYTIME 1500

//显示信息,延时

void create_menu();

STUDENT * new_student();

STUDENT* create_linkbyfile(char *);

STUDENT *del_info(STUDENT *);

int save_info(char *,STUDENT *,int);

int find_infile_printf(char *);

int pri_whole_link(STUDENT *);

STUDENT* printf_sort(STUDENT *);

void free_link(STUDENT *);

void main() //主函数

{

create_menu();

}

void create_menu()

//功能:输出功能菜单,提供人-机接口

{

int menu_Num;

STUDENT *head=NULL;

char ch;

char file_name[256];

while(1)

{

system("cls");

cout"\t\t学生成绩管理系统\n";

cout"##########################################\n";

cout"#\t\t 1.新增学生信息\t\t #\n";

cout"#\t\t 2.加载数据库\t\t #\n";

cout"#\t\t 3.删除学生信息\t\t #\n";

cout"#\t\t 4.保存学生信息\t\t #\n";

cout"#\t\t 5.数据库查询\t\t #\n";

cout"#\t\t 6.原序输出\t\t #\n";

cout"#\t\t 7.排序输出\t\t #\n";

cout"#\t\t 8.退出\t\t\t #\n";

cout"##########################################\n";

cout"请输入操作编号:";

cinmenu_Num;

switch (menu_Num)

{

case 1:

free_link(head);//释放链表空间

head=new_student();//新增学生信息

break;

case 2:

free_link(head);//释放链表空间

cout"请输入要加载的数据库文件的路径"endl;

cinfile_name;

head=create_linkbyfile(file_name);//读取数据文件

if(head!=NULL)

{

cout"数据库"file_name"已加载"endl;

Sleep(DELAYTIME);

}

break;

case 3:

del_info(head);//删除学生信息

break;

case 4://保存学生信息

if (head==NULL)

{

cout"请先生成学生信息"endl;

Sleep(DELAYTIME);

}

else

{

cout"想将学生信息保存到哪个数据库文件?";

cinfile_name;

cout"请选择保存方式:0追加到文件末尾 1覆盖文件\n";

cinmenu_Num;

if(save_info(file_name,head,menu_Num)==0)//0表示追加,1表示覆盖

{

cout"信息保存失败\n";

}

else

{

cout"数据已保存到"file_nameendl;

Sleep(DELAYTIME);

}

}

break;

case 5:

find_infile_printf(FILENAME);//数据库查询

break;

case 6://原序输出信息

pri_whole_link(head);

cout"返回主菜单? Y/N\t";

do

{

cinch;

}while(ch!='Y'ch!='y');

break;

case 7://排序输出信息

do

{

if((head=printf_sort(head))==NULL)

{

cout"数据库未加载"endl;

Sleep(DELAYTIME);

break;

}

else

{

cout"选择其他方式排序? Y/N\t";

cinch;

}

}while(ch=='Y'||ch=='y');

break;

case 8:

free_link(head);//释放链表空间

exit(0);

break;

default:

cout"输入有误!请重新输入!"endl;

break;

}

}

}

STUDENT * new_student()

//功能:创建学生信息(通过链表)

//返回值:头结点指针

{

STUDENT *pnew,*p,*head;

float *pfloat;

char ch;

head=NULL;

do

{

system("cls");

pnew=(STUDENT *)malloc(sizeof(STUDENT)*1);

cout"请输入学生的学号(0表示取消): ";

cinpnew-num;

if(0=pnew-num)

{

break;

}

cout"请输入学生的姓名:";

cinpnew-name;

while(1)

{

cout"请输入学生的性别:0/1\t";

cinpnew-sex;

if(pnew-sexpnew-sex-1)

{

cout"性别输入错误,0表示女性,1表示男性,请重新输入"endl;

}

else

{

break;

}

}

cout"请依次输入学生的数学、英语、政治、语文成绩:"endl;

for(pnew-total=0,pfloat=pnew-math;pfloatpnew-math+4;)

{

cin*pfloat;

if(*pfloat0||*pfloat150)

{

cout"成绩输入错误,只能为0~150"endl;

}

else

{

pnew-total+=*pfloat;

pfloat++;

}

}

if(head==NULL)

{

head=pnew;

}

else

{

p-next=pnew;

}

p=pnew;

pnew-next=NULL;

cout"##########################该学生信息已生成#########################\n";

cout"建立另一个学生的信息? Y/N\t";

cinch;

}while(ch=='Y'||ch=='y');

return head;

}

STUDENT* create_linkbyfile(char *filename)

//功能:读取文件,创建链表

//参数:如果filename不为空,则打开该文件,如果filename为空,要求输入文件位置

//创建的链表的所有结点的next全部修改,指向物理地址上的下一个结点

{

system("cls");

FILE *fp;

STUDENT *head,*ptemp,*pnew;

head=NULL;//初始化head为空

if(filename==NULL)//若filename为空,要求输入文件绝对地址

{

char file_name[256];

cout"请输入数据库文件的路径:"endl;

cinfile_name;

if(NULL==(fp=fopen(file_name,"rb")))

{

cout"数据库连接失败\n";

return 0;

}

}

else

{

if(NULL==(fp=fopen(filename,"rb")))

{

cout"数据库连接失败\n";

return 0;

}

}

for(ptemp=NULL;;)

{

pnew=(STUDENT *)malloc(sizeof(STUDENT)*1);

if(fread(pnew,sizeof(STUDENT),1,fp)!=NULL)

{

if(ptemp!=NULL)

{

ptemp-next=pnew;

}

else

{

head=pnew;

}

ptemp=pnew;

}

else

{

if(ptemp!=NULL)

{

ptemp-next=NULL;

}

else

{

head=NULL;

}

free(pnew);

break;

}

}

fclose(fp);

return head;

}

STUDENT *del_info(STUDENT *head)

//根据学号,删除链表的结点

{

system("cls");

STUDENT *p1,*p2;

int num;

if (head==NULL)

{

cout"数据库未加载"endl;

Sleep(DELAYTIME);

return 0;

}

cout"请输入要删除学生的学号:";

cinnum;

for(p1=head;p1!=NULL;)

{

if(p1-num==num)/到

{

if(p1==head)//要删除的结点是头结点

{

head=p1-next;

}

else

{

p2-next=p1-next;

}

cout"成功删除!!";

}

p2=p1;

p1=p1-next;

}

return head;

}

int save_info(char *filename,STUDENT *head,int flag)

//功能:将链表按Binary写入文件末尾

//参数:

//1.filename文件名,绝对地址

//2.head指向链表的头结点

//3.flag 0追加或1覆盖数据

//返回值:失败则返回0

{

system("cls");

FILE *fp;

STUDENT *p;

char openmethod[8];

if(flag==0)

{

strcpy(openmethod,"ab+");//追加

}

else

{

strcpy(openmethod,"w");//覆盖

}

if(NULL==(fp=fopen(filename,openmethod)))//

{

cout"数据库连接失败"endl;

Sleep(DELAYTIME);

return 0;

}

else

{

for(p=head;p;p=p-next)

{

if((fwrite(p,sizeof(STUDENT),1,fp))==NULL)

{

cout"数据库创建失败"endl;

return 0;

}

}

}

fclose(fp);

return 1;

}

int find_infile_printf(char *filename)

//功能:根据学号和姓名来查询某个学生

//参数:filename数据库文件

//返回值:失败返回0

//直接搜索文件,缺点是速度慢

//也可先根据文件创建链表,再搜索链表,缺点是如果文件较大,占用内存多

{

system("cls");

FILE *fp;

STUDENT stu;

int num;

char stu_name[64];

char ch;

if(filename==NULL)

{

return 0;

}

do

{

memset(stu_name,0,sizeof(stu_name));

cout"查询学号或查询姓名? 1查询学号 0查询姓名";

//flag=1根据学号来查询,flag=0根据姓名来查询

cinnum;

if(num==1)

{

cout"输入要查询的学号:";

cinnum;

cout"正在为您查询学号为"num"的学生……"endl;

}

else if(num==0)

{

cout"输入要查询的姓名:";

cinstu_name;

cout"正在为您查询姓名为"stu_name"的学生……"endl;

}

else

{

cout"输入有误"endl;

return 0;

}

if(NULL==(fp=fopen(filename,"rw")))

{

cout"数据库连接失败\n";

return 0;

}

else

{

while(fread(stu,sizeof(STUDENT),1,fp)!=NULL)

{

if(strcmp(stu.name,stu_name)==0||stu.num==num)

{

cout"学号\t姓名\t性别\t数学\t英语\t政治\t语文\t总成绩\n";

//输出该学生的所有信息

coutstu.num"\t"stu.name"\t"stu.sex"\t"stu.math"\t"stu.english"\t"stu.politic"\t"stu.chinese"\t"stu.totalendl;

//不加break;可支持多个相同数据的索引

}

}

}

cout"##########################查询完毕#########################\n";

cout"查询另一个学生的信息? Y/N\t";

cinch;

}while(ch=='Y'||ch=='y');

fclose(fp);

return 1;

}

int pri_whole_link(STUDENT *head)

//功能:显示整条链表的学生信息

//参数:head 头结点指针,如果head为空,返回空

{

system("cls");

STUDENT* p;

if (head==NULL)

{

cout"数据库未加载"endl;

Sleep(DELAYTIME);

return 0;

}

cout"学号\t姓名\t性别\t数学\t英语\t政治\t语文\t总成绩\n";

for(p=head;p;p=p-next)

{

coutp-num"\t"p-name"\t"p-sex"\t"p-math"\t"p-english"\t"p-politic"\t"p-chinese"\t"p-totalendl;

}

return 1;

}

STUDENT* printf_sort(STUDENT *head)

//功能:根据学号|某科目成绩|总成绩对链表进行排序,然后输出

//参数:head链表头指针,如果head为空,返回空

//返回值:返回新的链表的头结点指针

{

system("cls");

STUDENT *p1,*p2,*ptemp,*pfinished=NULL;

int num;

int flag;

if (head==NULL)

{

return 0;

}

cout"选择排序依据 0.数学成绩1.英语成绩2.政治成绩3.语文成绩4.总成绩\n";

cinnum;

// cout"升序/降序输出? 0.升序1.降序";

// cinflag;

for(p1=head;p1-next!=pfinished;)//对链表进行从大到小排序(这里用冒泡法)

//p1使之总是指向头结点,pfinished使之总是指向已排序好的最前面的结点

//ptemp作为中介,保存p2的上一个结点

{

for(p2=p1;p2-next!=pfinished;)

{

if(*((p2-math)+num)*((p2-next-math)+num))//p2的值小于p2-next的值,交换 ptemp p2 p2-next

{

if(p2==p1)//头结点要交换

{

p1=p2-next;

p2-next=p1-next;

p1-next=p2;

ptemp=p1;

}

else

{

ptemp-next=p2-next;

ptemp=p2-next;

p2-next=ptemp-next;

ptemp-next=p2;

}

}

else//不需要交换,则p2、ptemp前进1位

{

ptemp=p2;

p2=p2-next;

}

}

pfinished=p2;

}

// if(flag==1)

// {

pri_whole_link(p1);

// }

// else

// {

// }

cout"##########################信息显示完毕#########################\n";

return p1;

}

void free_link(STUDENT *head)

//释放链表空间,如果head,什么都不做

{

STUDENT *p1,*p2;

for(p1=head;p1;p1=p2)

{

p2=p1-next;//先保存,否则

free(p1);//free后 p1-next数据丢失

}

}

(责任编辑:IT教学网)

更多

推荐新手入门文章