串口驱动程序设计课程设计
Ⅰ 课程设计-----串口通信实验的设计目的与任务要求怎么写
1、预备项目1(2学时)
项目任务:认识单片机
项目目的:了解单片机及其应用,明确课程学习内容及目标,初步掌握DP-51PRO单片机综合仿真实验仪使用方法。
知识要求:单片机概念、单片机系列、单片机应用、DP-51PRO单片机综合仿真实验仪使用方法。
2、预备项目2(4学时)
项目任务:设备实时参数存储
项目目的:了解单片机引脚及存储器体系,初步具备单片机指令使用能力,进一步掌握DP-51PRO单片机综合仿真实验仪使用方法。
知识要求:单片机芯片引脚及存储器、传送类指令、DP-51PRO单片机综合仿真实验仪使用。
3、预备项目3(4学时)
项目任务:设备实时参数处理
项目目的:进一步掌握单片机指令使用能力,初步具备单片机编程能力,进一步掌握DP-51PRO单片机综合仿真实验仪使用方法。
知识要求:算术运算类指令、控制转移类指令、逻辑运算及移位类指令、位操作类指令、DP-51PRO单片机综合仿真实验仪使用。
4、预备项目4(2学时)
项目任务:报警器
项目目的:掌握单片机最小系统组成,进一步具备单片机编程能力
知识要求:单片机时钟电路、复位电路、包含子程序的程序体系。
Ⅱ C语言程序设计课程设计都需要做什么啊
我这有相似的程序,在我的作业里 给我个邮箱 我发过去
Ⅲ C语言程序设计 (学生选修课程设计)
这是我做的,你看是否满意?可能有点大,但也没办法呀,你的题目也比较大,呵呵!所以,如果满意,多给我追加点分!
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
typedef struct course
{
char number[15],name[25];
int kind,time,lessontime,practicetime,credit,term;
}type;
FILE *fp1;
void overview(); //浏览函数,负责浏览整个课程信息
void seek(); //查询函数,负责查询课程信息
void choose_course();//选课函数,负责让用户选课
void out(type temp);
void input();
int main()
{
int n,i;
if((fp1=fopen("course_information.txt","wb"))==NULL)
{printf("创建文件失败!\n");exit(0);}
printf("请输入要存储的课程数目:\n");
scanf("%d",&n);
printf("开始创建文件,请输入课程信息:\n\n");
for(i=0;i<n;i++)
{
printf("请输入第%d门课程的信息:\n",i+1);
input();
printf("\n");
}
printf("如想浏览整个课程信息,请输入1;如想查询课程信息,请输入2; 如想进行选课,请输入3;如想结束选修课系统,请输入0!\n");
while((scanf("%d",&n))!=EOF)
{
if(n==1)
overview();
if(n==2)
seek();
if(n==3)
choose_course();
if(n==0)
exit(0);
printf("\n\n如想继续操作,只要按规则输入你要进行的操作即可!\n规则:如想浏览整个课程信息,请输入1;如想查询课程信息,请输入2;如想进行选课,请输入3!\n");
}
printf("欢迎您使用此程序进行选课,谢谢!\n");
fclose(fp1);
return 0;
}
void input()
{
course c_a;
printf("请输入课程编码: ");
scanf("%s",c_a.number);
printf("请输入课程名: ");
scanf("%s",c_a.name);
printf("请输入课程性质:限选课,请输入1;选修课,请输入2;必修课,请输入3! ");
scanf("%d",&c_a.name);
printf("请输入课程总学时: ");
scanf("%d",&c_a.time);
printf("请输入课程授课时间: ");
scanf("%d",&c_a.lessontime);
printf("请输入课程实验或实践时间: ");
scanf("%d",&c_a.practicetime);
printf("请输入课程学分: ");
scanf("%d",&c_a.credit);
printf("请输入课程所在的学期,比如第二学期,就输入2即可。");
scanf("%d",&c_a.term);
fwrite(&c_a,sizeof(struct course),1,fp1);//将一个结构体元素写入文件中
}
void out(type temp)
{
printf("课程代码: %s\n课程名: %s\n",temp.number,temp.name);
printf("课程名: %s\n",temp.name);
if(temp.kind==1)
printf("课程性质: Limited optional course\n");
else if(temp.kind==2)
printf("课程性质: Optional course\n");
else if(temp.kind==3)
printf("课程性质: Required Courses\n");
else
printf("该编码系统不认识,即无对应的课程性质存在!\n");
printf("课程总学时: %d\n课程授课学时: %d\n实验或上机学时: %d\n学分: %d\n课程开课学期: %d\n\n",temp.time,temp.lessontime,temp.practicetime,temp.credit,temp.term);
}
void overview()
{
rewind(fp1);
course temp;
printf("整个课程信息如下:\n");
while((fread(&temp,sizeof(type),1,fp1))!=0)
out(temp);
}
void seek()
{
int judge,credit=0,kind=0;
char a='N';
course temp;
printf("如想按学分查询,请输入1;如想按课程性质,请输入2:\n");
scanf("%d",&judge);
rewind(fp1); //将文件指针位置置为开头
if(judge==1)
{
printf("请输入要查询的学分:\n");
scanf("%d",&credit);
while((fread(&temp,sizeof(type),1,fp1))!=0)
if(credit==temp.credit)
out(temp);
}
else if(judge==2)
{
printf("请输入你要查找课程的性质(限选课,请输入1;选修课,请输入2;必修课,请输入3):");
scanf("%d",&kind);
while((fread(&temp,sizeof(type),1,fp1))!=0)
if(temp.kind==kind)
out(temp);
}
else
printf("不好意思,无此类查询!\n");
}
void choose_course()
{
rewind(fp1);
course temp;
int judge=1,n=0,time=0,credit=0;
char choose[20][20];
r1: printf("请开始填写课程编号进行选课:\n");
while(judge==1)
{
printf("请输入你所选课程的标号: ");
scanf("%s",choose[n]);
n++;
printf("如想继续选课,请输入1;如想提交,请输入0!\n");
scanf("%d",&judge);
}
while((fread(&temp,sizeof(type),1,fp1))!=0)
{
for(int i=0;i<n;i++)
if(strcmp(temp.number,choose[i])==0)
{time=time+temp.time;credit=temp.credit;break;}
}
if(time<270||credit<40)
goto r1;
printf("你所选的课为:\n");
while((fread(&temp,sizeof(type),1,fp1))!=0)
{
for(int i=0;i<n;i++)
if(strcmp(temp.number,choose[i])==0)
{out(temp);break;}
}
}
Ⅳ C语言程序设计课程设计!
图书借阅管理,C语言编程的,只要设计部分的,,m
Ⅳ 课程设计操作系统模拟软件的设计与开发 设备驱动程序设计, 要求如下: (1) 设计Windows XP或者Linux操作系
学校教的C语言基础,一般都是在Windows系统下的命令行界面下运行的,可以输出一些字符,也可以输入一些字符。因为Windows下的操作都可以通过鼠标点击来实现,所以就很少回去用到命令行的程序,因此Windows系统提供的命令行程序就会很少。
其实命令行程序的功能是非常强大的,LZ可以去学习使用一下Ubuntu这个操作系统,就会体会到命令行程序的强大,像VIM命令行编辑器,这个类似于记事本,当然功能超级强大,还有很多很多。
LZ说的图形化的小程序,说的应该是Windows的窗口界面的程序,可以缩小、也可以放大,还可以拖来拖去。这个你用VB或C#来做最简单了,直接拖放控件,然后写几个事件响应函数,比如鼠标单击一个按钮回去执行你自己定义的函数,这就是所谓的事件驱动机制。
如果LZ想使用C语言来编写Windows图形界面程序的话,就需要去学习一下WIN32 API的使用,介绍这方面内容的书已经很少了。LZ也可以去学习一下MFC,经典书籍是《MFC深入浅出》,这个需要LZ具有C++面向对象语言的基础,也是直接拖放控件,然后注册事件处理函数。
另外,团IDC网上有许多产品团购,便宜有口碑
Ⅵ 《C语言程序设计》课程设计实验报告
呵呵~!竟然把作业也搞上来了~!我只能告诉你怎么做.不可以帮你做~!分为版三步. 秒针 一个原点权 60个秒点分针 一个原点 60个分点时针 一个原点 12个时点三个原点可以是同一个变量,分针\秒针的秒点和分点可以用同一个60个数的数组很简单的.然后用date函数复制..只要做三个循环就可以了..如果厉害的话。 一个循环就搞定了~!
Ⅶ 《C语言程序设计》课程设计
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#define BUFFERSIZE 1024
#define MAXACCOUNT 1000
typedef struct BankAccount
{
int account;
int key;
char name[32];
float balance;
}BANKACCOUNT;
BANKACCOUNT accountCollection[MAXACCOUNT];
int curAccount = 0;
void InsertAccount(FILE *fp)
{
BANKACCOUNT newaccount;
printf("please input the account information\n");
printf(">>account num:");
scanf("%d",&(newaccount.account));
printf(">>key:");
scanf("%d",&(newaccount.key));
printf(">>name:");
scanf("%s",newaccount.name);
printf(">>balance:");
scanf("%f",&(newaccount.balance));
fseek(fp,0L,SEEK_END);
fprintf(fp,"%d %d %s %.2f\n",newaccount.account,newaccount.key,newaccount.name,newaccount.balance);
}
void GetAccount(FILE *fp)
{
int accountnum;
int key;
char name[32];
float balance;
int i =0,j;
char buffer[BUFFERSIZE];
int len;
curAccount = 0;
fseek(fp,0,SEEK_SET);
while(!feof(fp)) /* 因为feof()最后会读2遍,所以最后curAccount多加了1 */
{
fscanf(fp,"%d %d %s %f",&accountnum,&key,name,&balance);
accountCollection[curAccount].account = accountnum;
accountCollection[curAccount].key = key;
strcpy(accountCollection[curAccount].name ,name);
accountCollection[curAccount].balance = balance;
curAccount++;
}
}
void ListAccount(FILE *fp)
{
int i =0;
printf("There is %d accounts at all:\n",curAccount-1);/* curAccount减去多加的1 */
for(i = 0;i< curAccount-1;i++)
{
printf("ACCOUNT[%d]:\n",i+1);
printf("account:%d\n",accountCollection[i].account);
printf("name:%s\n",accountCollection[i].name);
printf("balance:%.2f\n",accountCollection[i].balance);
}
}
int SearchAccount(FILE *fp,int accountnum)
{
int i =0;
for(i = 0;i< curAccount-1;i++)
{
if(accountCollection[i].account == accountnum)
{
printf("ACCOUNT[%d]:\n",i+1);
printf("account:%d\n",accountCollection[i].account);
printf("name:%s\n",accountCollection[i].name);
printf("balance:%.2f\n",accountCollection[i].balance);
return 1;
}
}
return 0;
}
void DelAccount(FILE *fp,int accountnum)
{
int i;
if(SearchAccount(fp,accountnum)==0)
printf("Can't find the account\n");
else
{
for(i = 0;i<curAccount-1;i++)
{
if(accountCollection[i].account != accountnum)
fprintf(fp,"%d %d %s %.2f\n",accountCollection[i].account,accountCollection[i].key,accountCollection[i].name,accountCollection[i].balance);
}
printf("delete successfully!\n");
}
}
int main()
{
FILE *fp;
int accountnum;
int i;
do{
system("cls"); //清屏
puts("********************************************");
puts("* You can choose : *");
puts("* 1 : Insert a new Account *");
puts("* 2 : List all Accounts *");
puts("* 3 : Find a Account *");
puts("* 4 : Delete a Account *");
puts("* 5 : quit *");
puts("********************************************");
printf("Please input your choice:");
scanf("%d",&i);
system("cls"); //清屏
switch(i)
{
case 1:
if(!(fp = fopen("account.txt","a+")))
{
printf("can't open the file account.txt\n");
exit(0);
}
InsertAccount( fp);
printf("press any key to continue.....\n");
getch();
fclose(fp);
break;
case 2:
if(!(fp = fopen("account.txt","r")))
{
printf("can't open the file account.txt\n");
exit(0);
}
GetAccount(fp);
ListAccount(fp);
fclose(fp);
printf("press any key to continue.....\n");
getch();
break;
case 3:
printf("please input the account num:\n");
scanf("%d",&accountnum);
if(!(fp = fopen("account.txt","r")))
{
printf("can't open the file account.txt\n");
exit(0);
}
GetAccount(fp);
if(!SearchAccount(fp,accountnum))
printf("There is not the account:%d\n",accountnum);
fclose(fp);
printf("press any key to continue.....\n");
getch();
break;
case 4:
printf("please input the account num:\n");
scanf("%d",&accountnum);
if(!(fp = fopen("account.txt","r")))
{
printf("can't open the file account.txt\n");
exit(0);
}
GetAccount(fp);
fclose(fp);
if(!(fp = fopen("account.txt","w+")))
{
printf("can't open the file account.txt\n");
exit(0);
}
DelAccount(fp,accountnum);
fclose(fp);
printf("press any key to continue.....\n");
getch();
break;
default:
break;
}
}while(i != 5);
return 0;
}
账户数据文件名已经设定为account.txt,这个文件要和上面这个程序放在同一个文件夹下面,不然就得用绝对路径(比如"d:\\book\\account.txt"),account内容可以用记事本打开自己改动,然后运行程序后就可以在程序中添加或删除
Ⅷ 急!!!!!!汇编程序设计课程设计
data segment
year db "year:",0ah,0dh,"$"
month db "month:",0ah,0dh,"$"
day db "day:",0ah,0dh,"$"
hour db "hour:",0ah,0dh,"$"
minute db "minute:",0ah,0dh,"$"
second db "second:",0ah,0dh,"$"
shuchu macro
mov bl,al
mov ah,al
mov cl,4
shr ah,cl
and al,0fh
add ax,3030h
push ax
mov dl,ah
mov ah,2
int 21h
pop ax
mov ah,2
mov dl,al
int 21h
endm
rcmos macro jk
mov al,jk
out 70h,al
in al,71h
cmp al,bl ;秒输出时,是否相同
endm
ymdhm macro dz,jk1
writes dz
rcmos jk1
shuchu
cr
endm
data ends
writes macro a
lea dx,a
mov ah,9
int 21h
endm
cr macro
push ax
push dx
mov dl,0ah
mov ah,2
int 21h
mov dl,0dh
mov ah,2
int 21h
pop dx
pop ax
endm
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
ymdhm year,9
ymdhm month,8
ymdhm day,7
ymdhm hour,4
ymdhm minute,2
writes second
begin: rcmos 0
je begin ;若相同则返回
cmp al,0
jne next
push bx
push ax
ymdhm minute,2
writes second
pop ax
pop bx
next: shuchu
cr
mov ah,0bh
int 21h
cmp al,0
jnz done
jmp begin
done: mov ah,4ch
int 21h
code ends
end start